diff --git a/.gitignore b/.gitignore index 08d1bfe..77cdc12 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,4 @@ __pycache__/ build/ dist/ ex/ +!_static/build diff --git a/_static/SHA256SUMS b/_static/SHA256SUMS new file mode 100644 index 0000000..6a7186a --- /dev/null +++ b/_static/SHA256SUMS @@ -0,0 +1,877 @@ +643aec99785678fdf5eed7ec2bb4e15463da0eb82250ca0e311333f291bf4551 api/translations/all.json +1295a6ab872892e6b2b2f063e7f7fe454c71e905b8a6be2ae2cffc51614f8711 api/translations/en.json +ce2f463a0cdf5b8834993c479ab0a438ed1b8f0d31a4c751227d9bddcb93aa75 bootstrap.js +f4ca9c109eea8338684c881875b1183708d68e7061a25c6ff15acf592a3922ce build/1037.51967a2.js +97eb1c83b04e160ed0e06b6e759792231b03b79687570dc19c3144cb2e7ec647 build/1037.51967a2.js.map +5aa9029a3ab424c87f60bd1765813e720520030aa754100972fdf18aeeec70d4 build/1079.cdbaf67.js +7e6d508f2a794ef8099c04895a4cceaa9e7d00477673c92092c42077397e4f96 build/1079.cdbaf67.js.map +c384f5a05f6a9f4d3fe8cec889df68ac9e27178aa24732fa32ef3a6d15c73c5a build/1084.4cd1c89.js +4398b248ef6935613ef2a886fa0d5835092a0152ff4cbd236811a0eb6de39bf5 build/1084.4cd1c89.js.map +0bb725eaa99fcda3b2279051c501314e225c776a6396b163a5a5e7fece17be58 build/1113.23c9417.js +a066d321b081fc62f330fd6c2c17fe1623212900f927ae1df534b51b6acdf0d1 build/1113.23c9417.js.map +b65ce214a0df40295043af6376efbd0971f280b0edab443cf6335b6dbcebe649 build/1125.129d070.js +4d28776d41d91dc18dcf87168b4bb14a17f99ffa57aba72786650f407ecb8870 build/1125.129d070.js.map +7800a818f266f7bc86e390e3a0c357577a4fe478fb5c97168dd7d35510bff522 build/1163.ac28297.js +138beafcc9308b5c7b6cf09891bb1b9865667786aefb61d744ba313a6b025e76 build/1163.ac28297.js.map +27d5b97d544894e0d309ed6a51b753130532798e37c0f379c6a54d7779ab5275 build/1221.c51249a.js +3dfa17ba67f663749b29c3da5d70ca1e18b81cda43b073f21c6ebf1ae86a2b0b build/1221.c51249a.js.map +afca34c261d2a9037bcceb1700b05a833908276123ef56279b69867a20d5dc1b build/1245.cbc7a54.js +0f8e29a5b32de3c9afc5c98f31ed5feabd7445ae91496c27aa4b09ceba7b7353 build/1245.cbc7a54.js.map +824d8c1fe2e5569e5b38b49480dbc06f16d99bb3e91020f4fca1fc27596ce168 build/1261.199fc1d.js +6dd8144d88d94edd29c771a18b669d258e33c37a8f432e4b0a4b9acc073a555b build/1261.199fc1d.js.map +93fe875a31bd3d1b8e550d8cda0ac4a0302688e9f852b8e7f1efdba9611a4ec4 build/1272.f334098.js +6145baf6e209fe9f374b20ab752f2a3ebb0f44c3102d3c5f4e9ac93ec5c0413b build/1272.f334098.js.map +47ed7f5b35a14c3e4863df07b3516b08bbbed31d10c941ae31ffd7cacc5cb622 build/1278.0524a4a.js +0d8f66cd4afb566cb5b7e1540c68f43b939d3eba12ace290f18abc4f4cb53ed0 build/1278.0524a4a.js.LICENSE.txt +b87ccc047bf69efc226a23fef896232f3797c49eeb418a03edf6b43042d4a2f7 build/1278.0524a4a.js.map +c5082e2e545889896b2eff5253d2435a830444150bc1e8713a144ea0cc9d56b6 build/1290.3981211.js +4be65337438c778892ffb96f8f880ef08c00fc965c51f6c2aa3a7c529625498d build/1290.3981211.js.map +1e463b93eb6688799a2b14c49a9387d5246533b1112e9baf958b898df1f721db build/1295.46e72b8.js +d85de4c44fea58b65b21d36085a4e5717773cfec65f7fcab17452520c540ef6b build/1295.46e72b8.js.map +90f5f0fbf7517c282ee8eba4aa7ca934d0851473753b11253e64538c10271868 build/1310.23bbe67.js +287f6e79ea4fd56f98ab5a14fdbebeb6a3abd8d7711149d0605b68fbe48254e7 build/1310.23bbe67.js.map +fd89e603f6261cd9ee92476d996408a86f4f63d78268975fdb04fc03fbec4c80 build/1320.21effe3.js +ae06b28bc64529a928acb1066dbb3dda95861cb3ef2d4533eee6838f43b03268 build/1320.21effe3.js.map +b067dec5b15e826cd8be70f4add343edb18373a63c8b43e3247ec15e599430a5 build/1325.f76267c.js +766e3d3a9c991af95af2c889d3319899a509abfb8c565c88305533cd2092f696 build/1325.f76267c.js.map +0582faa38dd6efb77014aab2794105722b48112ffbbe988ba253660a5363abe6 build/1408.cf2b958.js +f3e8918d331c6b64c5d5377a3fccce0548cf018055d92ce5d225f6f906de93a5 build/1408.cf2b958.js.map +b0714dfc36cc32f259fbc90888d9ab202ed4334fd1d920dc906b72dccc181d7b build/1440.a9e7ea1.js +89934bd245dcde1487e29248cdaaf9838697fe54fcf42a48715140de3d97e521 build/1440.a9e7ea1.js.map +616d9ab0d010de3506ed2c089399af6e5eaf943ac6b4051a220b620e6408c520 build/1483.616d9ab.js +8e6098e132c4ba9aa1632b0c56df0b4323c758fa4aaf84a4ecf1e94011e4151f build/1489.e50b6d4.js +f2d01bda421244419e44a2c007f47b6ed04085b37daaa4fc83ab3ae4cc0b442e build/1489.e50b6d4.js.map +0d6f3bed4e677e2daf877904c04bee180abff1c752c651155d870a1e6de84557 build/1507.5705605.js +e5530a99389e1ac9c03bc6a122cefd3bffe7ccb5aa583672bc6704235dd177e9 build/1507.5705605.js.map +4506b4483e3626f9de3539c8f5023d1667f0877745fc9765a8da98017bd66c8d build/152.525d460.js +3d2af9335cd64f2967da18acbc0be4adcc449c59124601e387a3d25a05846e33 build/152.525d460.js.map +57bcd87730341bf494745d20eefc282b1d46777d8fe93dfd0507e554e35246f8 build/1520.4e2eb21.js +ef411c81f6140d26b3839388e4533bf3b0c25fd591faef775f9c912e5f603b36 build/1520.4e2eb21.js.map +311df01c180b7481155e2bfeb2714fdf6a5f0c7f228f7f099f1ce057ef9e361c build/1555.e188f3f.js +13f772e05298d93fe5db8680ae2871d13f72c69a14bdda480d0f80edc5003d35 build/1555.e188f3f.js.map +8de2d6203e563f12a379d495289603a135735a566db3904ecba31ea98b12c1fa build/1559.7c89925.js +3c0aa4dc3bb500bd4cec7ad8982fc7a5cc390ab60d862fdcd55f9bc62d721f83 build/1559.7c89925.js.map +cef48215e3359942cda77d8187dfb89af71b0240cc19d0a0b2038174bc23e6f0 build/160.5f28731.js +447d63bd88906e519f7c86decc6136f2f7fb04f6dda173d02a6d492b0cc40642 build/160.5f28731.js.map +82041c4d746e9c2194616fa66a1057e494a7f751372baa2c91df2f91cee1089b build/1603.370a2a6.js +ed0770cf81443af656100691a8025b9226783c5a36bc3f33494b30930b9c1aad build/1603.370a2a6.js.map +69cc3446dedd4974cf6cd27fabf1c27d22a7ec2a2064a9d4736f7d64fbab37ee build/1644.0e49167.js +09edc24845904b9eb210697492e55ff3115bdd41d8322c1faad40dab40b96c4a build/1644.0e49167.js.map +f7b551819051921765b02318ec5c828f75334b7c2e4db65df0c49013464e14bb build/1667.f0afb2b.js +252062e240f27245266ba8608690f8b5282a91eb6e7068926716b425b9a1bc34 build/1667.f0afb2b.js.map +63518b3e2edb206e5263352864bc6918a6283efc21f7fc0ec3446d0bc3b3365b build/1687.27f1ad6.js +a92259033da24fee2f67bf3bb88d9adff979224c826b2463b031df8593c5092c build/1687.27f1ad6.js.map +b3b2f14e53995c59bdef573b29d8e6ff2cd5e3ed64a99d566ed628863a9fe00d build/1725.f151c33.js +4a964350aeb4970a9b7c21c4d03621338d6daada87c11de1184fac6ba3dcaf7b build/1725.f151c33.js.map +6babd5acf08ceb51bf24d9025b7a23ef5e26b4233b711617c2a0132be40ec083 build/1767.c8c2f26.js +2c474c53f1816a8e46e1e0f0281eb0bee86e13d87cfc37c1485dd298b1875a82 build/1767.c8c2f26.js.map +184016605fdaa307499282aa8b36aa5117d561e74e3819cec984b65a5db07ed5 build/1806.1aaf66b.js +3f9ddb8457622193bd5a098c37f17cbbc9401489c05f261889bc82ed0351e82f build/1806.1aaf66b.js.map +abe663620b7097d2e3d1bf797c4e87bfbcf8f2da34ce0f188b57922f56551333 build/1838.1202b16.js +76a1a08ca798dfe0b8ac3705637239b9e5054c341d39d5ea6e60e4c6678a100d build/1838.1202b16.js.map +461719f5cb270011894b21fd0003a6de7683cdcc05bd04e686057e8130a72be9 build/1909.28a2def.js +7b83da61fee880913f5a6d1809947f821dd396e9fa4b61a041d3ab90f041f130 build/1909.28a2def.js.map +da37ffb8f6be0e3497d79a26686dd72fa93f5e9ff35d1a9430bd616bf49e6eda build/1989.88d258f.js +4f30347799a0a93d6fa13cce5913f1694a68722061192d93f0b361e5eff99847 build/1989.88d258f.js.map +ed5068c1bfaf7d88cf8cf86dbf68039cd348389eaaa70b5e581f23c4a098343e build/2030.1562cc6.js +5017c50931a1a2e51ef77c3bc0283d371bfe319f22255254049f50ca55f3f151 build/2030.1562cc6.js.map +c7010fec8670160676ea9043e6095fc6ffd421f56f49ff94c3a7e4fa7988996a build/2047.baed97b.js +98a827e5a96570b6040d533209eee69d28f1ac93ccd208b1b00b94e98c5fdb67 build/2047.baed97b.js.map +51f7e69076eef60b66129ac841677e32c31b9201994b252160498863d2c82c28 build/2099.f4b6fcd.js +1fbefe10c40e0c7c8d599b91f7eff76f1088e9e25180790bf7736a223affaa9f build/2099.f4b6fcd.js.map +ece097c8ed65b96bc152812077c76145dd1583779d6f16ddcbcf3b68b8d77ca6 build/2118.5b65f70.js +0b80f05f23371765ce7a891d0dcece1fa202f9aa2cf110e7163e098089125457 build/2118.5b65f70.js.map +7bfeaaeddbb3291f6a6471cda794951aa5e7f3387242e50d530cf68e7efdc3aa build/213.5769e57.js +3da88ad32370a519710b019879a995bcfec7a365c989ea7c7b6baf12d247a6a0 build/213.5769e57.js.map +c3cab0b5256f534b9fca3ac5668b7458916cea96093ccb87de39e906ac0110c1 build/2161.dcb27b8.js +9fb0deaf08132e11af80032ec43de5edcb86ffa2bd1636bdfcb9c4c178e764c3 build/2161.dcb27b8.js.map +6bffcd40006121e8aed49d4190ce211f1ce141e8cd1e9ce750cc4e8c11318a11 build/2169.635c88e.js +517c4442f71df66db0234b81602d74489ee2c5957b798664efae1044af0b72f8 build/2169.635c88e.js.map +bfa4b2ebe4e1074da9972d73f0e1ead0baa6abf1d92aa4b036006c366f2b73b2 build/217.90d10e2.js +6d8990b0eef0c260c090f8b92191fea020f18fc60be300792fcfde9cce71224d build/217.90d10e2.js.map +fd5d0eeba1da333fb18402c30f9217246eb59ebb1c60d63619e6d98e5b483cb6 build/2212.72be094.js +47db7d400a6f1146d1b4dd4f76d5676b2125f6888b7d9dbedb9615d53740123c build/2212.72be094.js.map +52325cbf75c03ef926eb19b5cca9622dcd438bf3c0e7c2e80ae52c504e2c2978 build/2287.997c38e.js +9fa92ee02006887aeac98fb55dc7569e901fec682a5c63a8691ed07315897c8f build/2287.997c38e.js.LICENSE.txt +f6e34a04bbf9b44306ad3989dbad98affcccca37206e6df12b87a19e38bcf0e5 build/2287.997c38e.js.map +e3a3d14e1da6eff471857cf38db8ba8306bd2dc08902cd1af5a6c344d6c6adb2 build/2303.9ff8710.js +7db9e0e706e9162593d0c473401ea221e259a78fad23d67b5667f0184d744813 build/2303.9ff8710.js.map +aa01824f41fe2ace111aa27f2507bc6d012d2a75d9ef76c82a585628b36ebe80 build/2319.6b4cbb7.js +1043003962bad8e0503f807f57e0581bc3c7f8c2fb288fd85117ad1f4af8c537 build/2319.6b4cbb7.js.map +63c3aae419a5fe137b143df4bed09b7138cd93b38daac13762113e1006878d47 build/2329.4c5ca6d.js +8aedc7810d9816e7eb5e02050886a39e59290fb39d973492cef966cdd89a25d6 build/2329.4c5ca6d.js.map +1e8193c336b622b8cf1f42dc33b6be876b24e20fb1de2ce9bc1d4b537a8d01bc build/2351.fbd96d8.js +796da5171835759e8ff20a22b01c93cb23550213bf5e8a9c1a1fec4297132d77 build/2351.fbd96d8.js.map +7cbae8ec863def6ed89eb2977fc22117756319e084177eab96b13e7fb23fb189 build/2358.d5cf7c8.js +1f78bfea6e20d6a57207c8adfff0b2498d873213ada0159776b3a60cd6653806 build/2358.d5cf7c8.js.map +8108fad87a4e32bef515f689471b85a75d4b766c5236ef7dd073c70aa2bfc995 build/2359.6451c3e.js +d88ea0555ac631a38c25e42f10937428344d369d5098d8efd074b81823c62cba build/2359.6451c3e.js.map +290d54edb34d16efccb6f259bb487066fc26936754fc2a97af7664d4521ffc3d build/237.f765e77.js +5785b8f3f0660ad7e54d9f91386046b9524709c988a693c89df4666827000b54 build/237.f765e77.js.map +00619d337dc2898bcdcaaf7c21e3ca021830002f1560fd5e2e810ebf1fa1bcae build/2384.71782be.js +5dcb85d32332b2c6aed0833d005c2c1fc4e97a863fd97191242ea82db3fd6c1d build/2384.71782be.js.map +9ace77f9eced760b0634cee015f8acd363bb5488128a974d513af87bebba0ca8 build/240.cddc46b.js +ddbe43fad43c9329c68cbadaca65353c6ae3c39c0f87df9d00f1f7ab128af12d build/240.cddc46b.js.map +67943af71c43e0cd8b3bac3481a6e1a6e4787abc6a76296f9aa4c4bce389420e build/2431.648d237.js +18ec6c1590c241ae0861ec1b987d0ee17418b2772866d7010acb61fbe03d91f1 build/2431.648d237.js.map +8cac351050fd418a6f12c224b97e2a877ced09088f3bdce6d111f4847209598f build/2546.e7c3d46.js +ca80b9355d59c2bb599510fe0b09142db16da8ca2ab5c01b254297756ba284a8 build/2546.e7c3d46.js.map +b7ccdbb2664dc5f8ca535b166922738a2bfc7d04e39f195d09e5d2c209090efb build/2557.e1c50fd.js +1659d6237d9dbd3086b4e04d1d6aeae64c2f598eaa4bdefa8228a5c6578cfa46 build/2557.e1c50fd.js.map +c8624c22da27baf96d9056e29871d6335af5bd4edd4c5658681c96369acc05df build/261.5f53c0e.js +6faab9022d45c19c109246ca521faec6e809f11d8c13098fce18f711295ee0a4 build/261.5f53c0e.js.map +67d6525cee17aa16af9224c71b4bfa58cf27650dfe1f17f162fdfd84ab7579af build/2629.c0e1cd6.js +467857fb98c041fbd697367191e699697776ac5931489550ef02fa0e303b460c build/2629.c0e1cd6.js.map +d0dac97a1f8f2f78495bb036981ad4b44c7eedb1d5f76bac53b30b43c3051cd1 build/2788.46acc8a.js +e7bf1ca46c37f4913752d50201a5ef18d40797d9e3fbb48ceaef798f24ca6380 build/2788.46acc8a.js.map +e66a4682a633237fa1efac8373becb742075d37b7da4e3cbd9405071e0ba0781 build/2834.942acc6.js +42b98c49c1b16d555da24075ccd71529aed8879accacd3fa0fdb7762f5cc6ed0 build/2834.942acc6.js.map +9ee2ecc4ad0b060d373e623a42fad24283254fffeea84ca5d274045d7b94a84d build/2887.47ba752.js +40da7cdd86e2d3c4550474253553cc878a0ab4d7d72b5dd7995c95d24e01c9e1 build/2887.47ba752.js.map +8d2325daeeb959761b877b810486ea038602702b0ca720013390a19d340c19d5 build/2956.8880209.js +641aed8c09707b19986e0cd92f920e75d33656a457786a21fe7663f6139819b7 build/2956.8880209.js.map +626eae452ade9ed1065e3128bca940fa401d1d016cf8319de6a63d5208989ede build/2973.2a51dc4.js +9ebcac4cfe84b00d6538748e915c65e010fafa80678f5aef7c458359e7812ab0 build/2973.2a51dc4.js.map +e2503616cbd08973e0dd118f9944672160c079ef40bf65dd20574ec1c3f92530 build/3004.255e79c.js +aa033212431f6323aa2ef2e862e7d5e8621bca0855d284323e766eca8c0a297a build/3004.255e79c.js.map +606a7d2d9241a46edd0c92bae2741ebc270018b360e838fd3959fba461be556c build/302.bafc132.js +17abb127d5aaeccea40b8cd67daf712bbfe450e22045c3b96cc259ce0c2ea881 build/302.bafc132.js.map +8789c0adb9783482f3f0a35f9302444f2d300c1e3a4de795ad681a30135b4041 build/3037.70ee38d.js +2f4e5c4a442742d22b636fafb997646c2dda91c732d6fcf54cb3bba388f9fa71 build/3037.70ee38d.js.map +f7376bf2a69241ae4827390d46f9d6fe87ad4f04cdd57c072276f72f31ba512b build/3042.7cfad84.js +7c40ae5e6ba4d97c2e8c9264dae3892f3933e655544c63bdbe846c045e4da2ef build/3042.7cfad84.js.map +1ec164c38b64f5ebe4e28d7dfd0af97ad8d79f419d3c837058725e232aa6ab7e build/3051.34fac68.js +beaa1d4b854836577b30846fcf95bc7cb9c8e5851c6bae58268db6107248e569 build/3051.34fac68.js.map +242e7b548b51454ae5a984796e865bbe249b68fb71a98eb95251d4f5f33156ae build/3122.2289fca.js +0c075cd3100ae910a09bee4a1dd77c5ccd5e4e2ac15c3e75a6fbbb92ab0226dd build/3122.2289fca.js.map +75aad444ff6cc698177de25db7cafc3f306b308d4aa43d0f9cea4eb2ef071d12 build/3151.10ef4de.js +88df915c6c349a28cfe629b42ddaf6f6444ae21137d023a7ecc576eb636e8c2b build/3151.10ef4de.js.map +db99ef479db5234f6d1473b929a0b49b152d3cda62b6fede7c390f425096f181 build/316.c850a76.js +0ff89234dcb972f93fc6ada17958f7ecb44b5e1fa734ae9d53852cc210e466b2 build/316.c850a76.js.map +e42cbfe4814474725641bf9bd756c10de747ffc2339349de9c785090bf515474 build/3196.4e35a17.js +ca5e4a107c3a4fa03d06f9c8c1eaaa48703702e377bf59777768c81d873ae6f9 build/3196.4e35a17.js.map +4c18bb70971f0688ff78979bd7e1931bce7bfb057b22625a2033a0b33fe5c02d build/3265.a80440a.js +8993f6fd3daaf45720fde97eacee7ab8c0c4924255f2ea7b527e52e4ddd5da2b build/3265.a80440a.js.map +ebbbb849ac2235cab15f4eabd1cdb7f1a7bf353d733fa835475152c426356d83 build/3277.9c04e75.js +ac04cc21e2f7d97b0609d21bb51d14f2d42a04f4c2c9b815ddb3a1464ab3dc9e build/3277.9c04e75.js.map +7d51ae2ac2aa861dc013d6ec67dcf72348d1cb589f35729848be1609c508385e build/330.126fa98.js +2f6c45d80c4d513f8b799edf8d9752601834c54d5dc231f7c521e26193e70d21 build/330.126fa98.js.map +4e17b62313310518083e7e3e7be543c097fe59cf058559bd522240e4c5ee8680 build/3392.29fe6b9.js +a67ea5b64da91834f0106d893a6ec0f27ffd1ef6a555c077179d180bb330cf47 build/3392.29fe6b9.js.map +9c679eb26948423f9fdd8ab16daa8d5cfc811231088f7fcf4a6a43f78a1a2063 build/3413.480a49d.js +82ea75afe2a206a17c4d67d17bbbc556b616b3254de33e120eadfc67c5d877ff build/3413.480a49d.js.map +de0dc025451ddce4234cec725edf79c5883ffd7c2f686f6b9e2d25fde3642caa build/3444.2b662fb.js +1a8b05ed92149e2283d7ce403c5b942e369a768fd50400ae6ed1192f65a4b8a2 build/3444.2b662fb.js.map +421b0ce00638e3797cb0ab71522d22205692609f3b423407409fb0e14e1c4cb4 build/3469.7d14d0b.js +42307a82935d755264d5c4f08bcd55f048be0b5ddd58ea97fab905287afaae53 build/3469.7d14d0b.js.map +57e23eadbd2b2a19b8ac510986f1ffba5bcc3f023f6dcd39ac327500f20ed274 build/3546.fee1bd7.js +b909c182ae70c584baea61cd4a2d52610e60db18da61551fffd1197b8dc60506 build/3546.fee1bd7.js.map +753f20f102d26579813c408398afba2ae242d50a1b498ea0625c36d4a79bf3df build/362.6716970.js +13a669162c959e07051f5e1c65457c25a413c95615d5a43824489eba0368053b build/362.6716970.js.map +040e63aaff487398ee4913fae8b32654d0e4318fda8ed6339ecd571152e401aa build/3708.410d087.js +f3fba5b2ff060d117a9d777ff17e903ad5a5116308bb253f43c217407ff585ad build/3708.410d087.js.map +8735345f4bb662ec6163dd6b70266b6e483ebfe2dd596b38bab81687051792dd build/3752.8735345.js +325c12e9abde234832a32c49a2d938896d14515a6d25e45aba87f675c54a7159 build/3850.903abc2.js +0d8f66cd4afb566cb5b7e1540c68f43b939d3eba12ace290f18abc4f4cb53ed0 build/3850.903abc2.js.LICENSE.txt +da8ca5a5adbe5b45d7cc9f0fc7a45176931504212a10a07370868a8fcf08febe build/3850.903abc2.js.map +867e068eaa92564d3efbe0a86798aaf736ee664b1c0a461d32148fd3d5d7aca0 build/3880.bd39dce.js +beb38afa80b7d7eec2f5e91d2f7126e3459f6c9838d563c1ce4d7a09f525b78d build/3880.bd39dce.js.map +f1b1eb8c3d6faccf5744d0b0f03c6538aff8e4840bae9428d1883176bdd3fe21 build/3970.236586f.js +9c891f94a71c193246e9f87dce6aa6ddd6fa7ad1037b5aedffaded0f6392c33f build/3970.236586f.js.map +c5c3c3ea4955763ea3a571907ebd881203d4900884470663c22d27b53205830b build/3976.58893b9.js +30eb3d351a7525ec67c94538a2c9b690e6e3a78d2e04c7a686bbd2eefdcb3a29 build/3976.58893b9.js.LICENSE.txt +97933d3b96e92fdc006080d113656e94148dfd84c4a790835d97f94d2aed730c build/3976.58893b9.js.map +b46fe812e6946cace3c5d38a6248f77ca5cdb76f9720cfdd48a6fc388e8ec6ba build/3979.385527e.js +e61780e417117a30a279225894187368236fff0cbf32562169ecf9c1f46c9a9d build/3979.385527e.js.map +fa98353dc6be36f703afb7fcf3bb40c302f4e22585d7bfcd4f764fb734e66fb9 build/400.d72234b.js +d6430ae77874b11f5ea938fed05352174a2eca25df144cb963f336cec5bf4a6c build/400.d72234b.js.map +d7d050e98f58ab0fce4e709d3415b11feaa8980542b5517c7d637e04fd2bbc4d build/4018.1a35967.js +819836ca592c1dc15500cb5c6ff1f1b87c3ccfec33b24d504a115c6975f7aff2 build/4018.1a35967.js.map +3d91ab6510746225547c2f3b3467b4ee9bb7ba7c1e12468e8588d29b2a340a3d build/406.9b7af92.js +ba3a8e89aa233564dbcbdb8b492d22ae2df92efb3fd7f910dd7cba6e526744ef build/406.9b7af92.js.map +80371bf5b08d78bee387d70ebadfb9ffe7002f4939183650a02371b3bc527a8a build/4117.a8107fd.js +d31ba5d303fd5030b08c083669b43793e618174d119086961fbbed167ed62f2a build/4117.a8107fd.js.map +49490333c67c0f1e21bcd3897fc034dc9d793aafb6223940437408909eadfae4 build/4182.e2430f9.js +7fd76292a42c43aeda6f99c6580a073f15c968f0802e6b626ae9113cea30dde5 build/4182.e2430f9.js.map +83968fd55acd8241b2d916b9e9fdab6cd5155a4865bcc8cd368bd473e519cb7d build/4191.02bbea8.js +a674220cef45836e992564b2d3c882030e2922d1b359623e33817bfd66d6e9f1 build/4191.02bbea8.js.map +ebf1b03d03bdf8019caa3324e8ef1760c055aadcfb09ca4b11abfe05db847338 build/4197.53ab10b.js +760eb2124c9e93e5b39e979f78ec7e2a34be6c9f58e08c0fda56b0a419f9ef40 build/4197.53ab10b.js.map +1e4ac4882b86d65d065eb9d6daf088263f3c8e6e73b0b039231d8bcd71399054 build/4206.a5f8bb0.js +f8dba00e78922311b50627bd1dff3b6d4a44a47360b42ce865ccf9bbeba91d9f build/4206.a5f8bb0.js.map +79125b0cdbd3b3ec0172fb373bff16d0493cade92befe0f64ac07c6ede208428 build/4207.0d0580b.js +344d3147d2978199698d6569cf752ad34ef7e4b03fa0f51823c53c36fda221d0 build/4207.0d0580b.js.map +aa703d253c7c319cd5cab3422bf776b7f1931b320e803edb2d05b277174d7889 build/4262.bb73457.js +cae29cac349ab82828adc0eb72c0d2544bdcb91175e9856252044473f0767bd5 build/4262.bb73457.js.map +7b5cadad9cdce45fa8b3716eac7a640befb8381ce0f48157c560dfc2718bdb2a build/4298.5ee510c.js +9f207db3c9aede26a0809cb5ed5709319555572f6912f4c49574ce5765dbd623 build/4298.5ee510c.js.map +3251afa154efa70a67722d8cf7dde67030549391ec30933e6a784d6ca5ca0c9e build/44.0cfa785.js +6903c5c5f8013b35f45d4dddb9598b798aabdec800b3cd94d377a4662a6e1861 build/44.0cfa785.js.LICENSE.txt +73974350f6590d8b84be8098cd3d6f9c162643140891bebe84048397a2edde0b build/44.0cfa785.js.map +2e187e0cf028d066cbc6dd856b7d9d7e6eb28615fcfbf23db95aa865d72c88cf build/4410.1d37235.js +a2d40a507fa60d502cd4dc2e7423d50005cbcfe006aa41cd624ad495b8983cfe build/4410.1d37235.js.map +a38c1c5e215c1d7248fd6a78d9830689e1e39282e3f973549f5b270f919883e1 build/4466.64d23d1.js +0d6b88919396930d09c94542a95f7fbc82151ba8c595413dcd18488bde1452ed build/4466.64d23d1.js.map +8b41ef4c8624880f26addcc81087523e2dfb643f6bfb3b145c9bcf612a097107 build/4507.8b41ef4.js +57ebbc8b0b8b5afcfa0fba1726ddd8821723c068e949fc5becb7b5dbd922099d build/451.d9683ad.js +9a05c32dbf36cce0fac515bb12fc54c7fba7977d62e7b0cd9f3b9378643e2a5a build/451.d9683ad.js.map +98a2a7145a30ab69341e02e48ac48bb912bf8f7a516c91ebf556c64b45590ebd build/4535.34b060a.js +150a15cf38ece12b140628ffdaa52ed198b583fbe5c18e5bf138764a3567e781 build/4535.34b060a.js.map +724903b5ed4f35509cb8305689592c8bc5d417ed2e47d64856024734bb6b8be9 build/4565.43bdb91.js +e1d2a437efc9633a1239a812e8c147bd5a641feee2e3ca9746e3add6f2ccb093 build/4565.43bdb91.js.map +3908c04d46949f521fe951e18a672c59f2c5b907270392955c51440e65d347e7 build/4569.f374f9d.js +781b44fe9519b34dfcdfcf6a347411eb752454e9a4f4f3942475290a0da02c7e build/4569.f374f9d.js.map +237d6e7e2560b88a9d80b6b71bb7becfaced0e524f3e1c7f60244e1c93ab03bf build/4615.eb5d40a.js +84f2844e36f975a768ac4b7996f86496176115412c4612efbe6ea35981ecf534 build/4615.eb5d40a.js.map +92b97147542aea60250c02d07da3ab59e5929f073de56f839c1ab9a08c123221 build/4658.090d4a9.js +7b9ad72a521593d3d19fc7103ebf247c27f3d4f69a92ddaeada7e968cee51468 build/4658.090d4a9.js.LICENSE.txt +763fe0316dc8b1d5170d98dce308c557cdadada5e4884b7a4a155c6a5b8a3ef7 build/4658.090d4a9.js.map +b849e60cba816b5cead3f03598a9e8c212a70b7503fb753b3c0731e177ba2c74 build/4665.aa19a41.js +6c8c0374929553cd9ad1fe3a07c62596c2a7f2d4b6f5cf62442291d63051b69a build/4665.aa19a41.js.map +f65690b11a002a7f7985f1b2239b892bce1ace5fe3f170f3b8a90905bf3f3eeb build/4668.f65690b.js +bac7874c851b86521448b87ce6d38021a3384d730b2dd6a7b480051952afe994 build/4690.3dd4096.js +adccfc3895910e64f566f25cb27ffd7c8fee4decf31da523334ec515600a0375 build/4690.3dd4096.js.map +8c4b375355b50e7c073e665c37effa260a440a488600ff91d0eebf3e5ae09996 build/4715.e7690b9.js +4a0f6d6b492e73520f439394613192afe8f5b6d639d5be84a556738d8decc79a build/4715.e7690b9.js.map +feedd52f07b43018e787bedc35d0cea580b694a70c75e4021c9556ff628c40fd build/4749.46ebbb2.js +2b494e21bcf2594b514ca86f1d9411b0a5d63868c3bb4e8cfd546e7e3400d4b9 build/4749.46ebbb2.js.map +ac66e806a8a2fb06b022497162976daf9b0544b7d8fc7dd626a2d9e05649bd7d build/4750.56c06ab.js +ea2fab74791647898bb5a746d55c2c90f68b8a7d8e09202c996c8b5f0afc1e25 build/4750.56c06ab.js.map +e82c09e7e6680cbb34e7606215964beb8f25eb952ba99ce13db4e6a5180106f9 build/4856.2d7415f.js +ca0181f6249359f376737bdc76162074cce07f15fbcc3598441cfc8d36ce3128 build/4856.2d7415f.js.map +d89781b1a6247e324ba6b4f9867c72b79a36bdfdb7575b0c182473fa8504ccf8 build/4875.375150e.js +201c92f1b1f25f711cef94caee669560dd33854d690a5bdbd1001ebf514a8dfa build/4875.375150e.js.map +07c75546737014b35941da75e917e0bcccd58e5843ba23ef391b29ac071a5832 build/489.b981dea.js +54291615678da6aea1cd22fd35dcb8ddc23cfdc1ee488f4c7a958c197967baf6 build/489.b981dea.js.map +f7aab29a0108fa13f04eba763224297db9cea9bb8f4b5b1fa349bbb804875399 build/490.c2624d4.js +5e82580cc414ee21a4a109b283aea62236bdb9e22fc4151ecde99d5e3ea5606c build/490.c2624d4.js.map +d5f90b05f339cb8115c7228af3251d2c008d99d470ded50b8a3a8d49758257dc build/4905.667bf33.js +72150e27f1825e6ce53adcc129bef411aedf4447b7416817ff97000aab245248 build/4905.667bf33.js.map +f1aaf87e823bc64c73d980e0bce3930fab56ee57cdedd9a0c855b3a84db89cb4 build/4931.c1705a1.js +d508f85658e69bf59592f4374a0abe37606d0c02c78f1aaadb44d6ad836c52f3 build/4931.c1705a1.js.map +3c8a3143c64903ae83143f916bccf1220b61174418dc430edeab85f7d611a410 build/4942.b96c164.js +4797ed33c711c455738db5ef51041735a4da7a086813fd308ef237feede1f637 build/4942.b96c164.js.map +8182b6fbeef398b1afd86f0974d2d972f0e663b12b05583e52350d1f0093b819 build/5016.dd2fe83.js +bc89b5f031043b7061a9777384cdab22744943db2ebb0e2f07d9139ca982fb34 build/5016.dd2fe83.js.map +1745b267e9c9a0f311676199c0b57ce0c4e02a2fcdbed6f42e10ef22f5fba45c build/5072.733a1b5.js +b5190d72deea88864311272538813fa3c49d5badc52527a6cb5f5b81ef9758ba build/5072.733a1b5.js.map +acdf5a13ccbc70d0db4da15746f02eb1a8433b1fb33e9f68f921cc29646844a7 build/509.6448878.js +f883be81d20bf6b2f74ee517d042f9842c5fe32c054ca9aacf359f36af2885ed build/509.6448878.js.map +1c8d0db57788e90797aa3162ff3c0b4d4fcbf471a49a12ab041c951e0bd8421e build/5096.8ed0d8e.js +1340335cd2f2207721deecc3da0b4a157da429b33d7373b1f318dae25c66df8d build/5096.8ed0d8e.js.map +dd548b1b681b2c403f166230d2f09feb0da78c45bc06e4cae9b478d835055464 build/5126.eecad7a.js +2f4cd7101ecf932c508657cfaa58e3bda89cbee3a976189164e6167790a82f4d build/5126.eecad7a.js.map +2f1961b896f7a89848ea764868652e904bdc5de3efe80bfb9381d7a017cfd575 build/5129.1ba4763.js +2841b206c536acb6e0ed72dca94f089f25fb42e9f8791a3b3b6e7350acb5a637 build/5129.1ba4763.js.map +a7f40211187a5be9b104541e5ef83cfd512b5938ae981ab3789d27b6e0c04650 build/5153.763d8fa.js +498ecd65d8f769dac7edd448d2db33449c6dfd1e35a3d993a435b29bcc7ac3d3 build/5153.763d8fa.js.map +e94a3c25fb4fd9d1f11d9ac3e5e67f9864b3ed3422010e9a7095d3963967c274 build/5155.06b4ea9.js +b103847f867449a3eb38968c5cbe988a07cc4225d8585e01dd894a9afcd41641 build/5155.06b4ea9.js.map +bbc450a242d25d1c84525ad1f977fd011e2bfab65b7b295dc6fb2c410d0847e1 build/5193.e9f6866.js +74898265c2368025541cf30eccd9310783b07115e16f9f5d5f85d3c62f7b1feb build/5193.e9f6866.js.map +49d36b0b291674b36671f53debe2465812ada3f978b513260f9d52591d6db436 build/5213.3e1a360.js +c51604c275b614ab73786e68c0dcdf380bc21e20468e586a22283c2d41582040 build/5213.3e1a360.js.map +0d840e7b079919ffce06fbb6b3d5dddc215a0736e5b78728075826fe4de47cfc build/5227.8c8acd8.js +be23d4a0b2dd3e0902139059641643a459e8400b7c0eaa35ed465d78a75b1265 build/5227.8c8acd8.js.map +104c9aa8f583e492aedadca921e0c3e1550e0d275d1fbdad742159b454881478 build/5238.02db84e.js +c3188f683b94476242ecb51db3aaaf4fcc18c3e6bef33d3ed915bd2ba0ab0526 build/5238.02db84e.js.map +a6f98b92c92531bcf65378d80f39c17240f2c7a7058c72271927edcda65344b2 build/528.2262cb0.js +97662ab108e4f67f3cbff8e39c8a4bab780502444b2ded81cf988641eab08c83 build/528.2262cb0.js.map +2640de724bcb1afeb11e31b1002c8af774bac987f53785f3f852734bd8420e7c build/5292.79d4aba.js +779955e3dd2e8dc9d0a09197f85a9f96a763f094c933b4bf5861145e09e367a7 build/5292.79d4aba.js.map +1fd054a2daf94b76c62b458dede35659a65ceebff0b67958f2989ae4e9990575 build/5437.31236f7.js +a045c459140104cd1270bd1a203e18273a661ecff4260a6260b02c1c83e2da6e build/5437.31236f7.js.map +473083f1320d2de04a4aa09a8ba3cacd8142f0d10e15bda7ee9229daa1d6bf72 build/5489.848a8cf.js +e8f335eb6c46bbfd09fa77b38fa9cf6daf113f85ea7052c01ab400ad7a285c21 build/5489.848a8cf.js.map +7a4828113a2ca7c3443336ce6e627cb7444c262d75a4c83efe9f2ca1147668b8 build/5508.317fca3.js +1b3b41cd0ebe77af0815a87352e81c2985d6aac99f6f2e1746f31b8651f472ff build/5508.317fca3.js.map +54250d2cbca9f5777c83da0098217d20791522fbbb2c8a6c878fcee2725dc924 build/554.ac98303.js +40abdfa00f9130015494b53ed629d968ad9aa76ed647e36ac77aad6a2cae0c84 build/554.ac98303.js.map +2bc0ecc6870bd2d656e6efc735449350bd16cdeb9f61f54fed9160514f94a553 build/555.2cd31dd.js +ada72fb8a1ea37398de4fe1487d00e2ea14e4b464273b3ec8cc9a5e0334e96be build/555.2cd31dd.js.map +041cb76b896ad1b0b717ff0227414eef6d7b758d5a38553fd8374e89ede3413c build/5573.ebcdb93.js +0428d9d06d663c0c671785064f94e64e4c352f5c98891e22af6d408d5278ec7e build/5573.ebcdb93.js.map +ca52042c0646295da3105fd5f116b6e18bc14c6eb9223e3e2e2ddf6221c7d398 build/5666.c5e5324.js +13df7a566f02a1610414880b20238e2064e40e4c5bc39b225288e1a504ce47b7 build/5666.c5e5324.js.map +2c6eccd90d7016b0122a6288b4ca5883bdf40fd61b050b62a5efa1efe09918fb build/5710.70d0b1d.js +d083f68ee383dd4d887adf28013a4c5fc648cedfcd6188e30e3a5fa3098da0ca build/5710.70d0b1d.js.map +c30b3098e396424b17585b08594afa616256d485713d422fb532d3e39d2758ff build/5747.94ad626.js +c24097597d0b0b066f800aa25f603d1c5e0dbb4fb06149b16c4d69af582fb24a build/5747.94ad626.js.map +02743daeee845dfa2fce1b29dfdc9fe1a11dff41a924e021d07b1415d314a82d build/582.21b8e7d.js +ae5a40311962dcac697f0e4cfa785e8276b34f483e37070b715bf0e24b942ab7 build/582.21b8e7d.js.map +eca484a25b7b849cbf551f154333a35ec1e0a48aa147f84dba2d2905ec029a51 build/5823.5045bdb.js +7d4c5598fb428d87048bb4f1e18d4fbe45e04b17899c8f8f0fed36b81e501dd2 build/5823.5045bdb.js.map +68f7152f6b46ca3411c13f7bfcec9b6d9530fc749380fe40b02372d97486589e build/5851.30b7b2a.js +4437e3b5051c029ee877e28f410a69d7588c12791a8ee74975225331ce3b9e30 build/5851.30b7b2a.js.map +5fe04839bfdcba0bc407c17448e1ece36c1037c30b04741719de36bdba07b162 build/5878.32d92fa.js +e402942e71643ddffb0e9e881524bfdd0f35a92ff89795ceb0a273031c5243d0 build/5878.32d92fa.js.map +60ad585467f798ae51bf3448095dccfbc2671c691e2f5947b4a4fed5beb833e4 build/5880.68f975b.js +9eaba5417c611c2740f1e487f8ae50a74167ca229e506c8952e0246ffdf26a7f build/5880.68f975b.js.map +120b3449eddbd95d8d3ea232efcc7aa9911a5c7317afedb826ed09db057573e1 build/5955.88508f7.js +ba1d8dd0793f735ef5518b8bda5d46a8637088092f3f2cc4278db6e6db1f4819 build/5955.88508f7.js.map +babd66eeff2066813bcb9704f76cb3e757bb120688ac0093f7986e5c3c63e237 build/5971.88c5642.js +4fb6b27424b724d5dce23d949253c40fbe381fda2bc6ec9214f6ed6795e1a29a build/5971.88c5642.js.map +25e854eb6a69a6cd59a20d759a560233eb30eaa814fdf9624151d5e17fb55ef0 build/6080.aa0ff24.js +77f10f1347f53599e2164020bdb017d342fd8eaa830a77bc87eb67facf4d6b6a build/6080.aa0ff24.js.map +05acf74f20a89dfdb33c2fb467835f074108fd251608db1363967e9a4f642b33 build/61.2808a0d.js +45130cc9691c84525aaf4f1e360dae373b828884dd12c25b0a46229cbea72cd9 build/61.2808a0d.js.map +50db1bb044280716aa33b9a91f1a73ca435722d25da398d0b0bf487f28346352 build/6136.b8ba2b2.js +f0ebad3032aa348bd139521094b4f5eb8786b018f25b2ade970d88224c725162 build/6136.b8ba2b2.js.map +2dad1a74ff43a519be7d853b2db1c76379091cc990827e104e0316e3be9df777 build/6141.9831d58.js +e88245a0fda0b525cf5330021ba78959cad8d0a82ea4c8726d8afd54aa08256e build/6141.9831d58.js.map +9ea2c1c72cd80ddd89f3751b02dc32481d30b3de2dc88f253ed364c20969e820 build/6475.7ee8de7.js +877e13ea5690073f5bb981c45774c33ea65707684d7fb4d9952b86e59bd5275c build/6475.7ee8de7.js.map +7ff66a526cd5dc7562ea69fd0f5bfff721953401f6fbeeca7edd3aed7870c569 build/6493.d796aa5.js +e62795f492a59d4fecbb0c231df31f1f42f38d1385ed6ca92ab13bd8f08fccd8 build/6493.d796aa5.js.map +11bb30f28b67381070f06f49a75f596bd27e6e8d108b80ace0da6f9cd35ea690 build/6556.b3d9293.js +866610c4f82646b5a2d44fd09a6cd13ea064307c41fa95e44c2aea064e6b2ba8 build/6556.b3d9293.js.map +7e959c51a16cc3612ca0c02317400809b45dc1692de63fb6b793880cb22af91f build/6571.2c8884e.js +add3578e9e523c31e00a4eb200a04662bb3d3bf1e0bc5e8043abde3369cce9ec build/6571.2c8884e.js.map +7ccaba657950e9c52780b20c233cfb2fad3686d7d6b489aa5f71f5821eab8734 build/6576.3ea568e.js +784c143c44a191f171b3a99c31b123c6582b5db955f8c09d1d91477f688a6f75 build/6576.3ea568e.js.map +b05aa7648e3adf170c899b796494f5a9f246cd5ff0d9df3f76b35fdfd46db9f1 build/6591.94ed352.js +bf943f1815ef70e8286568541e16610b99d3e5951a1ef1d91f54ac257ce03424 build/6591.94ed352.js.map +86b623c1080187aeb316195620130a816813e033c02d5adde28e095e3773841a build/6612.1632879.js +add15b0f81268b3cc73d0fab5c27417fa4b2d1f79bdeacf22a3671a53401ed54 build/6612.1632879.js.map +c6a7605e0e37df9fbc06473a84e042122e2c1461ca4400d1e96bf6b59696e94e build/6623.ae3b3cc.js +d49fb5cb77f2f622f79fbfee49eec4d3dab51570ad119d054242acd0535b98d7 build/6623.ae3b3cc.js.LICENSE.txt +f533c360a0be4ab7b71beb8506c65db1056ade4ba7b6d1ea99240e2ade812d73 build/6623.ae3b3cc.js.map +9f6b5ee8ac5e126ca600d268a1e07cb24af1228df7c5a067086c3b595fdc9f8e build/6664.2160109.js +c9943e3d916a9408d1b59613bef925b98a8f2df9335d7eb565127ae06c7a7e77 build/6664.2160109.js.map +f3c00bb563528b0b3e0ed9bfca19c2a0753c8e037e44bf467c5924ece2ed1379 build/6747.47be7f5.js +15a42992fbff1ee407ac190cddd2e410feff87f6d9ee8c864a40ca8ea2b192a1 build/6747.47be7f5.js.map +a75617ba7a428304dc4c2b1e2c5b776e4515466c8926bef82727129a9bd29481 build/6748.be68f5f.js +8d2a7329d6c636928f2a3728be38527ef789e9297fda183ec20b8b1809fb8ffc build/6748.be68f5f.js.map +779c49ac2caf85a2dcd9c37d3c4a4932ea649b528cb9317fb6ff12c86462bb9b build/6870.7940288.js +58eb540fa6709dac6acee4d79d1671f1ae845ecc582cdb48fdd8934b7e9ce79c build/6870.7940288.js.map +3387ce924f57d5123a4f2db85d1a52bf14d0027dc5ef54b3e2da6960b3449b18 build/6879.c8367a5.js +ff0e03577425d8a15b996ea503c99d2125074f8126d1341546fd9a283584f92d build/6879.c8367a5.js.map +634186e47ba3a8f40ed58fb265939c578aeffdb561c1fa1d43ad95de7c018894 build/6898.9bbc12a.js +1e42c23d91a8f025434b31eac089bb0f29d4084e3cb8dfb8ef628cd11a055b2f build/6898.9bbc12a.js.map +9ffb67e780561ace6457013e3a4d8da27df33e9d1a542af9f4d36cf7782dc670 build/6952.f68b818.js +85760f6da97c38e6d4d98801776b93dfa88308e519c00c5045f113ea1f41979a build/6952.f68b818.js.map +e8e7208267d461b5bca2c00e3c73c7b590d621b29c885372b8c02bec37e212d8 build/6985.321ad92.js +34575c35fabf5f8b93e1690274644513adb7e3b3af96a9d295e67ed1cf8204ca build/6985.321ad92.js.map +f94a1e43d98d2e263e97d461c5bec90341433e60623b05cc39be4d1528cf74ff build/6993.32cf9a6.js +db6e87bfc089f705f5cbcf248bf5dd1b72831bff6d9f8627f6c1b8e5930cbcbb build/6993.32cf9a6.js.map +a75a11cf14621c1a98e2679a66708b489088cd1c6828d4a2aefd7a2961e88369 build/6997.b06fe71.js +b26d8417556e5197f03683128e4e9429cec2be9c51f9f77357d368f12578c377 build/6997.b06fe71.js.map +8a3f0c5bed429982b358569e7767efb554e2a30fcc8ac1b4843ac65c86bbc3dd build/7041.d4f561e.js +76af22c7022cfb74f517fdb54f067ec1bcd9ac764ca8a0cdb38e64d6014259cb build/7041.d4f561e.js.map +501e5aa74ff7a33f65f78e25d8cd4f0fcfa5ffbf80e0eba86aa6b924576a727d build/7058.805c88e.js +7f120b36a6d7ef14095f9914b827edc456ef54f2c096a4cb2d7b98e797a25982 build/7058.805c88e.js.LICENSE.txt +9fe62eef4fecf57a82a864766f9fc3845d2b4de09f70cc87b888776f199e71bf build/7058.805c88e.js.map +4aaf038913e59b7ecc9dd11f2df591e1acae9df6c154e30d99f26bb2108e5a4e build/7174.6c45206.js +57d4b765f4547a52d7b2671bd8920808e0713e6fb2f6011268763c773a2b1c5d build/7174.6c45206.js.map +671cb3ccd42fa8aa474bf7495fea6c64f42a7b3e1772c3fe14cb47f7f9ed94c9 build/7334.8859b1b.js +255c6b7af347796e91dfc8ff07c7a1e5eab5a99746eab143499bca4fac87078f build/7334.8859b1b.js.map +4046ac8bee7d15b84ed3efeb73b953dc79aaee68c340de65875e7478cd34a554 build/7359.6ee65ec.js +eb980fa5afd908d9a497dd72ce84013f5b8a93fc7b083b549291a510a618d39e build/7359.6ee65ec.js.map +a46360fd759da579f56d3dccfc7509b5dcaa6e75325f0749c13edc716def0109 build/7364.195178b.js +29de108eceee63d38bc92310db240891720021aa85ddbe78d99f12b9379f1c5e build/7364.195178b.js.map +016530ae96aaf332d1ad800d5cdc3c57dd754ce3c97d3babe34ca3828c4ba4fb build/7380.58a4413.js +e9e6c393f47fad8b761007579295636096bcc112627e599288dfa4260088631b build/7380.58a4413.js.map +7ac1a12154dcf09739ab13222aaa775968fb62f5df40f882ae49c42408670338 build/7427.f9c2017.js +a0afb13901feb154dfc10c9a6abe98149a16665a1dd5855ad83a098eeb4adbf6 build/7427.f9c2017.js.LICENSE.txt +791da271c1b010ec5d920a09f14459a302d3703206bba7af01acbe2587f2be5d build/7427.f9c2017.js.map +985dc12ccbb69f640bb03bfa4057d991a0ac427f4bc1cce1cdf47310aa6fb2d9 build/7463.18fd278.js +f5c14603ad615a06dcb1d2b5cfdef0b51df5d1e9f884c100708f5af8dd6d6611 build/7463.18fd278.js.map +f94fd6b5cbc7d3fc4353d8c31545c5a7e7b71849596aa6bb6d86450bb6247118 build/7509.1e0189e.js +5073d746d1ebd56359de9d88aded231e1284d62a906099380791de056d4a4515 build/7509.1e0189e.js.map +1f85382a081402c17e50ef728f69b197de9c23a32574b1e0d029ab65b6b663c4 build/7526.1a303e5.js +8a6d66b9178c6a46ed7c7e280a8cb78fde0e6a5a8ded075366587808088536a3 build/7526.1a303e5.js.map +aa580b136f6705480d042d54e5be7510e20958ae5040def650778896f07ef0b9 build/7537.1323a15.js +34d96f6cd55e74d6766805fcbd1a26e851f8aab4087fcd4da39f475870fe71c3 build/7537.1323a15.js.map +9ef3968e08a684a689126c6f96e3858503c970d2caedc1714269fe1e4eb9c0ab build/7692.33d5169.js +5bd9b9baa1c01ae771bd84d33ea13897cd5dfe24586e3a551f69a5674b1a3a94 build/7692.33d5169.js.map +2ff1ab5388124eaba64f0d22b6c89e19c01f406ff4213f12987ac04f5311a64d build/7746.5908d29.js +c6b8b57c82098386f0e723e64459fa5e1181952fa2d9bfff47828caf94ce3b98 build/7746.5908d29.js.map +2cfa2efef6a5ca80b5bb2b7da48be98f5a47ac5c6b63c704deaf4e2e54687b7e build/7808.1d582a2.js +602b21b3e6602348131f08ce0c3bd9704ea58dfcc21778a3ba456c29e0cd10b1 build/7808.1d582a2.js.map +106f9a50144cb39fec16d2aa2ae6e2c5f22d426ea652bb2324a4f051462bd394 build/783.c156751.js +63a1ad3a29fc59445751722b179712a4f57a2da980b284fefbf800e3c471a9a0 build/783.c156751.js.map +63853469c0416bbb8a8993e457ddb0c360511263a71658826efc93f17aca3cf1 build/7858.2386e4d.js +32503c4ac7a0aa6294032bfa6e3fa6e2b51394090e51a1daeb8446ee2a74ea87 build/7858.2386e4d.js.map +9f25f11502c396b8a1f3764bf37bea29f924757605f943049483789da1fe4ff5 build/7941.01ea680.js +59a810e7ebed1ea35a7d53d191320b5c904d9ebc66b60c8fc523099503ae4ba9 build/7941.01ea680.js.map +4dbaea0c9c4de4fb35af4a5708205aeaf2f7b31266467fcb5e69e6caf22c83a7 build/8005.c5ad7b2.js +e9bab61ab3694df23f685f24f616d56da82a3e3c34eae5094784cad99bb12bdc build/8005.c5ad7b2.js.map +73839702a7d7f64d833c852dd1148715561767a2851950c1f0b52ac1c1800449 build/8028.39e2fa1.js +fbbf7fb9db8f8e300a120e196529998679be6c259e5a46eb7f4b74c91143b467 build/8028.39e2fa1.js.map +252f2bf5c5f7bbb6610b2e16683b4881f9c377b4939a1bcdaba45e613745135a build/8061.cc62561.js +7f42790aeb4c4aaddf41b55ff69eabefefc7fe86ebd05b5d9581b40993660e27 build/8061.cc62561.js.map +da4b699fbc3d2a394013cc1b02a94f23d9475e4e00d9c9715f79792f51ca8f8e build/8101.cf46d02.js +03ebf59709ae217d43a4d275303cca0cc5afedffdde9c8c794638212fb6185d6 build/8101.cf46d02.js.LICENSE.txt +57c0b0450b9db2f03e93e66d7260d647d1e17e572e909de7717f9b0705f7c37d build/8101.cf46d02.js.map +12c270c4e8f40fc7b2289a1ba5f5ad8eeb747d55c7ab4683d4d266b52c3fc369 build/812.9b0e86e.js +90d36c771659b101e4fc329c486213d8bca06b99b52babb6288922290c810695 build/812.9b0e86e.js.map +203990eeaaab300144c1ced2e11f998c2771a0440671873b63fb8185f0180a46 build/816.c8050f2.js +ebde904f597a981846d8cd74689098dae699fa50bc3ea0cd69f111166f0050b8 build/816.c8050f2.js.map +ffb416f99582a26899ad34ef3cda453f544aba27266c61be5b5932834790cf9b build/8165.b2c3285.js +6590c6674fc4a28e3b852f03d379b4a52a87890c00fe7d05d4f4f68fc33d2b51 build/8165.b2c3285.js.map +f7ed762a94d0f9e0c7de384506510cdfc4bdba93584927b1253a3ea039b6bea7 build/8232.a578bf9.js +63ae4ad79e5d1c57c800585106ae9fe16b3725d93dd861c23612d4d819f95e95 build/8232.a578bf9.js.map +021bdb6ad541965b1a3ce0ebe31509b63f80f57d67465f232d55742dbde98bf9 build/824.8678196.js +7b5b4077105647b185e0314f8326a48a8839217db8d4934df7d1474ff1150ad9 build/824.8678196.js.map +554faaa95aaf5a9c8792f88230b6e5c8a8f96950291dcb927e51aaa072331e9e build/8270.89fe7e1.js +c5cd8be08cf1c3978387487e8502ae4f02e9e78883ae69ead81ef70254d3eed1 build/8270.89fe7e1.js.map +33680ba40f130ee75b7b411425642790f259ea78b145a7a6f4f7954032ad60b4 build/833.9cc6653.js +627c32c0292fc9879aede9c55ac100fd5a2eb31eae56fa62bb23cfc7e36dfe50 build/833.9cc6653.js.map +2a701878e6fe9fe5b1b8acd0afff453e968ce90d190d62e25c440325db0483dd build/8370.6b181f4.js +709c1432f85b74efb932f4a99c34afdaa655b7ce851acf592ef1392b2fef5fd5 build/8370.6b181f4.js.map +5957595b8e169918319868537b163db5fb874cfb5db19d77de2cba8921230b89 build/8373.96b0b3a.js +4364971a345ef424f2440afb2d42979a93da35573be6fefdb5c0c5057c694128 build/8373.96b0b3a.js.map +c820fd107ea3e60b4ec76657b8b034ed77f386f52fcea4b542e0d6ae2fd0acd8 build/8389.ffe031f.js +4a0f8a1c1a6879d61441f108a63f018e407e8f143b520910900facf19a159ec8 build/8389.ffe031f.js.map +d5920e471722e23452814cf64c766c873f583461bb41ecaae9cc494bc8aaf0fc build/8412.1528057.js +b0925b2238c3463cc278affc0500eff4a2016921b539572ea6245ef81b04ea21 build/8412.1528057.js.map +57e1ccee85538415e946d45cc7f3907054226c0d3d7839af204bdd885fa79e05 build/8427.4923f43.js +f433d104cf4c35243f3b8807d22e6a134c075e8b18735dea7d0f1a436c13908e build/8427.4923f43.js.map +bc97d0e95fb8c9bdd64bde216598e4806ee4740e71b8d8f67d27953a74b4cdc8 build/8542.027afdc.js +8f13586ef52c1bb28b85b746a3c5490316d122bf670089c22a7327d03105acdf build/8542.027afdc.js.map +6c04cc19f8fcfc8fdcfee6c896dc677230e29eb1b5d83b2d013c85e8ab63c44e build/8594.0112f03.js +5da8ee2fd2f4046a6839c4f54ec273a081a1055d91d47a7e4fa6a3e65fddefd0 build/8594.0112f03.js.map +f92e200aeec98e838b3e916ef8a565a76875f2c5f413b3ae8f092bffe4bc8e12 build/8656.d5b8e92.js +60696b23568f07b514bf38f75ec2c80c9915130c499333c07d4b4041f8422a34 build/8656.d5b8e92.js.map +d85a5586b9e259ac6aa69ac1e83099472dac7a44d60cb9638b35d40de51c0869 build/8685.8a50bd1.js +8373df9d65bb024be221618dcb79506bd43134fa6c707315ee752797f7084049 build/8685.8a50bd1.js.map +3b039dffc86c2c3b68db4985dee67ba7e3108e19d39c5ec4372aeacb340d226e build/8698.9817d75.js +9710fc58938e74288ca7aa8beb670e19c350f448b3e25c0535246cc8106a8854 build/8698.9817d75.js.map +6c76f179fe137a3a274e742acdec3d2d19a80f138b8d3fe37c63eb2b587180c2 build/8732.d449cc9.js +e96a278cf4fd05fc3fc91ae1dd4b1886a58dc36b226f57d94692f5e62bae1466 build/8732.d449cc9.js.map +b138cb8e0586313a12fdd21b502d705a1a9c65a3a95419a124fa058e28664742 build/8741.b138cb8.js +cc97634c2e2d542db97aa9eb5bf6f04e9a96e3298a47b1d464867c42692399aa build/8785.cf4fe95.js +9d1899c9d42af9af0b8fed2e9c96fbaec94b7327db905fecbebb0c9249b6b4ed build/8785.cf4fe95.js.map +2ec3374462981030ec981d9fce8bd873620015a5b6b1b0997e37e808fa409229 build/8828.77c71d0.js +0063a1fa3cf3e476b9ebff2e470348b0937fcb29bd7dc6ec4fe3d791cc867687 build/8828.77c71d0.js.map +eba6a241d50e6f19221ecee0986c0c5aa523d9bd4127189abd996580c128c17d build/8883.80c7b63.js +e434e6ba55a7ab443213bb39a6fc4201e75c90993ce75f21259c72a05bc6d560 build/8883.80c7b63.js.map +184318a09f9a7c0832e2fab2d3052f6a77eb81d370de31f1f4863e527f9f8f11 build/8976.3816942.js +205d42a7df07e9dd40cff6201277524084a77164a1f29b326e3ab2f7059e8961 build/8976.3816942.js.map +2808470023360aff0236b14cc5f5b9538fe04a3fb261d2dcdbc5069d6b467b06 build/8981.99a4275.js +d1de41d3d873b8d66021d802e3ee6503dd6b56211f5dfd8916b1ce421f870d26 build/8981.99a4275.js.map +63f1bc27c26f82d45803a29c4ae5d54af11fe4b038a2e28d3a20aa5231000f4d build/8990.2a453cf.js +9fc234af2692e6dcc784a8afad2d2f8c431f37e8e755e2a6969cf5842d18843e build/8990.2a453cf.js.map +f803b87cccc049d9b186c4eb3edda31fb0e130ab86b36f9e57fe66846439ebba build/9035.1e45c1b.js +f93fce7db59578b64e060404d3bddb160d9fd83c765d0c8266a4812b04cd6be6 build/9035.1e45c1b.js.map +2d8e3877dd06aa364c8b6e7c9a23fc62ec7c77b6a21a3d1a51bd75afcdac4753 build/9053.45b77fc.js +255ae03515f7cf842fae3c2335aed5cccb923b56dbc8ac962aeb01b9317c7a7d build/9053.45b77fc.js.map +ce703881030737441e834d0153367413115f8a96ba13a9dde0a94df2de5d1d06 build/9077.fefb6ca.js +36b450e9bd58532b97b2a354ba16f14d5af4d1ce6566286a0be29c09dbbb52b9 build/9077.fefb6ca.js.map +e03f9b893ba7852e00d0682c3ab5a658d99bb5527c3894ccc0954da63782fd74 build/9128.b8fa6f0.js +5e9ae9cb76ad31385cb4372dabe876702e0a81cccdcb9a511d22c88606b709f5 build/9128.b8fa6f0.js.map +c7afcbfc465e60457b27b44e964f90c48bfe6a4cc5cc94d10067f4ae4596d0ce build/9156.0cefbd3.js +94f6e4d36aaa507834ed2d45c9bbe6bf318a6f8ff0f13874c1f7cbfcde20a43e build/9156.0cefbd3.js.map +814938987503021e9388ed87540bf3c21d932a4ae5c6ae9c5da8a5d5c62ceb39 build/9170.0023587.js +71677bb6d06018337605173a4f0c1452b03401f78e15f68fb0ebdf5468f38b0e build/9170.0023587.js.map +b9e15c8536c77699a9408cb7a08f46f2b34561b98f1f19c4bca936babd61342a build/9196.315f9f9.js +000007cf9d6ab7a4f6e8269bdeb0793ca865a3ae004e9583a39635980225eaf8 build/9196.315f9f9.js.map +4b8ee1fc8b84f82f1e9706bbf0b27cb89c9321dc468b7b0cffe67a1f299523fc build/9198.9971d70.js +79d49ed1e5d7cf350fcb7333594056498ebad54f8d3119af791fa66bf64611f4 build/9198.9971d70.js.map +618b74797460e5bf21cb70dd0748224da33eee57a9fe19214758ee7ad20d20f1 build/920.d15c177.js +bb915fa8648400c1d26103f46e3dcbca746e7de9fda39a8c1e1bf62b3580c5fc build/920.d15c177.js.map +21cdc8bc583b7fa74102cdef22e0378b43ec754789d5b59971d10467080c8be0 build/9253.0b31caa.js +ef169e62b2d9b2e6f7437c504f76a2b2407570cf492706fd9f917528c5a72366 build/9253.0b31caa.js.map +9a6f7c297004e49653ac364f5d1aa9b2de56b36fd231dbd1b06879f4e255eccc build/9266.bacd0dd.js +9c99273931b44bf6c29147944ecb87fb339668fcc28f84fe1d051f17cf65402b build/9266.bacd0dd.js.map +dafa6c72c7ef3becbd24e550ef75e988892f9c9c84d5c95700d8a0a93cf8986a build/9307.c3a00ed.js +f6605e47fc21dde5b6ded5f4639d9ea3ae12347874862e166b9ef012eb686863 build/9307.c3a00ed.js.map +22011576542849de4061859243e420594852eb1243f990009ac3fbe999ee7729 build/9321.869e413.js +31f221b8003248ea45bbe40e521a131b7671d67980ea0b0287d29752abe14bdc build/9321.869e413.js.map +00f7673feca4df66ad26736b043585ef1e7a7815941a2be1fa3de38f54f06dff build/9344.ba0abcf.js +aafb8f37bd7b60fc34c201e8f64e72c08be648e6b3808d0ae41c687a87957150 build/9344.ba0abcf.js.map +4b54856bca8b58174931915dd60c690e8899492324a9a15dcebd257ef9bb2117 build/9382.5b58f02.js +2b8ae8f5806f6cbc65306727370b5c1e7be7c206c82e7a596bda627f81d0b328 build/9382.5b58f02.js.map +62a51ee08a3af948e5c465e7ef63587377220e23ba870d305fe3875a3f473120 build/9440.1b10b8f.js +843c744616c171f24616375dfbdbc61c8c66f37e7dfd33f901bba90842db8b24 build/9440.1b10b8f.js.LICENSE.txt +520b2eb1860b18e47198e388957ad2f38f71d4b94857015e9a8c1672035ca3ea build/9440.1b10b8f.js.map +a3facd11353c49e96b3d3628182d20231fd86cdf116cd0d1770a8cf95f1f741b build/9464.79e6ac5.js +10fff342bc1553de9d2244c8fdc577d9fa8e7b72923309d15217e733444cbee4 build/9464.79e6ac5.js.map +9e5dccd0963179dfdf30b7120e18bc04eeadae2821a3c4c62921d881fc2f1893 build/9502.9a24831.js +87c8e2c61da4d24ab1b2f1be8112441cbbabc8ae63e20bf8b8bc295ab5589a49 build/9502.9a24831.js.map +38f665d461c6e977237a41757cbd633a679ad7126d9bf4adb9aa76202371f8bc build/9507.1e6cc5d.js +78e9ef279920ed86b0468a8f35f166842a36475995943127f9e85ad493f3b6c9 build/9507.1e6cc5d.js.map +8fa49aec4dc5dbd43e42f6f1625d7cf668bacba50630ef99e96eaf4e7dc08948 build/9602.62bf0f1.js +8f88fb7216de3d9750f8a9e0e35fb0b36448ab588367c415055c49a017434488 build/9602.62bf0f1.js.map +967a0636955f244597879ea2de7edb9a3d77531d36a78a357435255acbbfdbdd build/9621.e2e8b5d.js +05474ad0514612b7896340739673e8d4517db4639291780991b8cbb7fffc8c1e build/9621.e2e8b5d.js.map +1a69c2f04118a01f9bcb49dc25e1c14a25a93bdf218567617e02c81acdf67994 build/9622.ccab065.js +c1cd076ca876f330554e4b3341ca894e39d8f92925b5f6ae4d63b5968e37f236 build/9622.ccab065.js.map +1cf0b08a3aa6628d180e42a31177ea9d14f81f29448184fa9df40e206fc397d7 build/9626.a178bd0.js +0d70588427dbdbb85f749c1039bc7fb44f35c540da549feec6513d121421507d build/9626.a178bd0.js.map +9e1fdd688620dba1c948fa59b02546f2f8e936b337c9a53a02fca1de500961e0 build/9647.ed91993.js +0391fbd79b113ac8038b43653a9ff483afb002729634bad60db4f71e961674bd build/9647.ed91993.js.map +b641a1298c3752878d969d1a87e02ccbd6b151005b5924b19d69d2f940e9b63a build/9657.bc5c60e.js +428f2fc979117e87f9314ea66f1f79d874302384265b8988336c24450e347d96 build/9657.bc5c60e.js.map +592f85e5a250bacddc9f25f3d816d81b2a313296e1d26cb0e1c34765d3ce7bba build/97.ad126b0.js +2a915695565457539d881a53e0199c295e83e3b06f2920e3e74229a03f8360a3 build/97.ad126b0.js.map +4821274c86c04d478c43582b682e8d48e87f4a04cbd0e80b18e35ac978b90c6b build/9712.796a0a1.js +351e73d11800170dd7a17b53e90ddb3b0e3c2555a6eb13cd4cca50f3f4b93aa8 build/9712.796a0a1.js.map +368766b2be298f113971d32be75b7a7cf7e39047d16d699977234e6fb2d588ef build/9733.a3b2a7f.js +f06bbe36fc4a0a3968c0c211f0ef84c8cdf863050f976fabc93d32f9a4f40793 build/9733.a3b2a7f.js.map +234889f90a071f1ff1ca59edc951472e116b02e374e0a66feb55fb88bdbe378d build/9737.7dc8f98.js +b358318637a0f9e69a2c80a6a00c5ee3e8e73bc161dd1b1f05ee2b06c3e448ab build/9737.7dc8f98.js.map +74bb9771c8aa3f79b77eaa16d785743a9eb207d6986794f7e4a88f439200d4a7 build/9777.0b8a504.js +30bd06e603aadd22816000c2adcb0e2aea8a14e38c526596b094e3a88dfe4f23 build/9777.0b8a504.js.map +1ce0ff59575ee245c6946c376a38cc4d8a5410e0e835280079d57fcd1f95d4a4 build/9793.6d63a85.js +4a2789d3df48b9d894f60459fd0f0bae784771508ba29e885e8e1b4f649b7f20 build/9793.6d63a85.js.map +de3ad4a3ec7baffa3c07d236eeb4c00df22ccea0fee7959db640ecedcb612bad build/9806.652c162.js +852479e1908494e56a9c01ef12e10aa33b2ddba8e9665c5bdc2d4051f1f23490 build/9806.652c162.js.map +15dcf40ab9ebec562fb413ef4f6c55a9ff185a1de38b74cb7d6575cc4cfb278f build/9865.2e3db6f.js +96a525187855637cf799c57eb13c11119466d4a43b99a4a257af869bc45240d6 build/9865.2e3db6f.js.LICENSE.txt +1fe0e95a979780a81fe3147b137799043653898127e8814973f510b33bbbc496 build/9865.2e3db6f.js.map +08b69393ee3c561e05347547320dc73606cb2957fd49573f6a374b21f4d165e6 build/989.bcca86a.js +2fb43bad26d0264fc8daadeb055de47f16813430e1eb11cad465e5de87b1ad62 build/989.bcca86a.js.map +2ea755356257426e9cc4b9852ad09b80e428affd7debf78a3640946f8a562243 build/9943.f3f35c7.js +1f356ac7a0c6924c6f2d482e1b9875da59fec42fd38fb79366bc547a126313a2 build/9943.f3f35c7.js.map +ffa4102e95e4ff876c6246b39923849f8f4da9f97239d003b4f6b99ac22a0e80 build/9958.25c8c06.js +03665c03e05c7d13600d19ab5a45ddc1bc730fc6e18fa324e04782ed288b6c5a build/9958.25c8c06.js.map +b59004ad6e0c710cf47b5c4932ecf5ba9e6f9fc48b19a061b8ebd5897dfa905d build/9960.d19737e.js +9e5373f80797be8e97109ec0ac8bcd971bbf8a2ccf5f80f164977332f36a4ac8 build/9960.d19737e.js.map +0c2df17764062a60c2fd20687699f6386d36de39aa9e1c158df96f5f2898cf68 build/add-above.svg +a15568e80ab2b45d19c42c0b80c2c5f172d00138339414eadc672bb3f5de1ed5 build/add-below.svg +5e00a10a1b8060e9a43242fa489058744c152d3ce73538f7d2a4b775f45d4521 build/add.svg +8ad0ef31c2194ea8a2572c101bb6a4c61f004d54603c0be1bbb5bc9d3cdc82fc build/bug-dot.svg +bd7f8d0382810fde64c938032dbbe91dd952646388240d8e75fcf6a5ba350836 build/bug.svg +e174fa1adefca3935ccf38fe13105ddab550175f2d1a4a6f87efdb7d5dc6f313 build/build.svg +3a59008d8543ce4088e4954b414405dc76e5993ca1b26b32a25e603bf3e35030 build/caret-down-empty-thin.svg +a3be83ad25a313791a9f7c3673c37104141e7cbf0eaaa619e94d7cd57c7a5514 build/caret-down-empty.svg +2098b629a60282e11d8919c877d4d094816d838451c6a2fa9bd3789061d0fff3 build/caret-down.svg +3fa65f0c6ead6581587fc3be184c213e65992ee8c7f55371e636e4e0a4858506 build/caret-left.svg +2550dcac78f8766bb3f5b1afcbc0059cc47abc7920a727285867ca9a253dc66b build/caret-right.svg +134c2412c9aa693309d7498b4fcd1901f4578b21091d4444f9bb0eb5da69be0b build/caret-up-empty-thin.svg +a78b8c310c431866aecbd8b4a15a25f8410df013b9946cc6c759a5fbdf817b76 build/caret-up.svg +ffbcfc49cc33cd818faeab1a9d3d81a4db38ae21fb4b6d0e97b49a4b83479549 build/case-sensitive.svg +8cf0a319cc3e61da9e3abbd52394100b9a82920e6088f20d4480c0506760a904 build/check.svg +4c13d7d5044a5214b655afd65d9997862333e52544eccd612aca6d52e7de9d32 build/circle-empty.svg +0c1b4f69e1fb8f791242b4181f30c875a5891ecfe510eb3fe6f5426bc2972d9a build/circle.svg +b0c4b1fb273df5114a20e97b4fe1a16719f2daa8ce2d3e79c141077932bc1f32 build/clear.svg +6639b72597c5faa8d32a75773836240f2ff9da7d930fc65710abae57e2fcfebb build/close.svg +af11436eeec513ce562cfd7ae4ba237e7614b3dbb3d10e30e94124f5dd9c5677 build/code.svg +73db818a7308d7a36739336211784d95b4ca1acc0f49d6a383e31a72404773af build/console.svg +720e54c372e18d5fcd1a0df3d4f1b4f15115dee124ebf8439d9f4be552724421 build/copy.svg +72c77705a1bc4ff840b481b5fe338cf22ed28acfcde6dd9d3503afd166f3deec build/copyright.svg +ddc41a2acfbf731680242a50c4cac65a968551ede8b59776cf30c8aab562acbf build/cut.svg +b407b521a69db3e8772ebf0f3c008e49f987f11ef782fae18b3c085abf8b2551 build/delete.svg +c6229b0469fa8459a9a4728a8046f7963216460de6f37903224402b50d5ef7dc build/download.svg +70621935621d6a94e1299af79d3a3e0a2efce0641fb118f000c8209c9867c2d3 build/duplicate.svg +5e091df2a2de56237b74fbdef8d0db15c189d457682d99d3e83b3d89f999ecfc build/edit.svg +3be025043c8bdd7381861b7f3bb9fa85e6e78781ff39d9696ac3f0d3cf38f0cd build/ellipses.svg +cc247abdc6143e55439ae9d90507e3ddf5da2a9607155b7b737eed1a59efed01 build/extension.svg +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 build/fa-brands-400.eot +9c128cb74751b338c6504e4283d3d3c0fcd1b7801350a94d838e61714799403e build/fa-brands-400.svg +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 build/fa-brands-400.ttf +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 build/fa-brands-400.woff +8ea8791754915a898a3100e63e32978a6d1763be6df8e73a39d3a90d691cdeef build/fa-brands-400.woff2 +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 build/fa-regular-400.eot +9c128cb74751b338c6504e4283d3d3c0fcd1b7801350a94d838e61714799403e build/fa-regular-400.svg +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 build/fa-regular-400.ttf +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 build/fa-regular-400.woff +e42a88444448ac3d60549cc7c1ff2c8a9cac721034c073d80a14a44e79730cca build/fa-regular-400.woff2 +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 build/fa-solid-900.eot +9c128cb74751b338c6504e4283d3d3c0fcd1b7801350a94d838e61714799403e build/fa-solid-900.svg +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 build/fa-solid-900.ttf +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 build/fa-solid-900.woff +9834b82ad26e2a37583d22676a12dd2eb0fe7c80356a2114d0db1aa8b3899537 build/fa-solid-900.woff2 +dc6dc1dd2dcc319e8db2c1ca1b22b1bcf7840809683cd0f238fd42e9a5dbc88e build/fast-forward.svg +cd3ac22c9e8d503ee640c149b79782d7ea6dad2217ed995d4ad882f5f1ca977c build/file-upload.svg +56188326604b0eca0be114e49907fa2450efdcf7faa22764fbaecd0c4183c489 build/file.svg +f7cc89877d7a638c6a05c330582f24fb4a08c17b664114019137fe8eb022bb46 build/filter-list.svg +ae79069093daabafc80dd55e181640586487d0d50980717af0ba2bf0e59e2bde build/folder-favorite.svg +20dd249fad61f0610158aabf8729a3cb66d1eea0d252cde37c21d866b61307b7 build/folder.svg +b70daff35fb9c3cec7876173dd529123485d6e8475adfc2deb00d39d93da9357 build/home.svg +33cbcbdb7fe54344679337f7cc46d173edb2a6a6f01916d64ee63fb82954d1c8 build/html5.svg +08f372cc3dc6e8921b30fefcdb365f1edba20ea1cdc39464e77a42b829b1582b build/image.svg +8ac582c501c50cb341521d9773bce3b2db2c74a519647a442e895913f336cd9c build/inspector.svg +dfd38979810f2f0e0f890bc1779465a8671427a5262ca36d3e58e038dac5e2df build/json.svg +dc34902b53bd10ba37e54d6529e7749df9a0ee4a43ea8336d4f9d0472b743b9b build/julia.svg +5501dc4661c6b1162fcebedf48df0f098ee5dfe55b20dbd5b0408ed54d100a5c build/jupyter-favicon.svg +3930328020ae48beed1cf536340f23616e5dd0f11f13539bd93eb20621da201d build/jupyter.svg +a64b9680911c83b90a3dbfccb939b792224a6f7337812cb6e366cc1ff9d1dde9 build/jupyterlab-wordmark.svg +8bc9342024209d99c77e2230ce823b217d5129555f52eeedfe3fa9f05f340dd6 build/kernel.svg +6ea926b81e21de44929cbf26581de450b1427fa8ba65f90773650b4999fb8d98 build/keyboard.svg +f5272e3860b1001a893010d4ce45584f7db8ed569cb356672892a688a1697917 build/lab/bundle.js +f06522a1bb1cdbfbd1657223a0e611f7e0fef134ab22a550b8e858dd3f40de5b build/lab/bundle.js.map +79ec7b541ef25b3e269e8258bc95ec53b3f216b3ba4a6fa537b7346aa4e01238 build/launch.svg +1dd581e3d231e75a46097b61b5c46f4fa0e6cf89c8d6769d06cd885a17431836 build/launcher.svg +6f3edfe931c37532c4cb1c12f3140d42a8c2ccd2467fdb69ca6b363980a6ecfa build/line-form.svg +61ede0a5ca157048d3bf6b9dd1036d1b54d0297c84e5c090848fe56ca240169f build/link.svg +9ca335b2041216adcfaddbf7fe8bd081b7ea2f8d6395d948ff8b80ce36758c4c build/list.svg +4b6c542bd4cb0ae4f5d4b460fcf7849ae827f7ecaeda872066ed16848f656240 build/listings-info.svg +cab40005074fa2527dec9e7373316c27b54f0fc9b9eff0f01b155dd619a75baf build/markdown.svg +624908d61efc39c02b5d8c9d2139852d6042628269e516c092f9964e9150cee5 build/move-down.svg +e5e5223124e06a3873456bb5be246e23f64e7688d8dd0a42328c1cc8aa587289 build/move-up.svg +be7d553eeaaf7c569583530c49f05757a4b07b08566004c786aa0150b3008039 build/new-folder.svg +ffa0589f9abdf5e4ea2571abfc8f106b7e9971990319f0f62f1179cbee43b887 build/not-trusted.svg +efa632fe37fb153c431c7532a6e268471291c6b12b9dc1571beabfc44cbdd952 build/notebook.svg +39ded3eb0c2eb5dd02fbc866a3bf6cca4ca08e3d0523a77ce1a65899cfaf8186 build/numbering.svg +2f25d41694f8276df79b763bb5a1fa9bf19f6ab01579fa7e1a13c4fa23827bea build/offline-bolt.svg +1c93a0af7e3ceb4b344b00aa1094d94145bfac0461d06845aed0f836e795cb57 build/palette.svg +0c64af16ebe9ca2ff0525ef99f7dcedda376f7098b1b78e9c5d40e5a576ffb19 build/paste.svg +b96a2b495e025a89ed75fc119f9e5c0780aec3362b07027d504ef2d286631811 build/pdf.svg +f3b45526d22813f25bf284074cc4622bb60fa3f883996490f580f77bf46bbfe7 build/python.svg +6860751a10a8458b540eee2002bc8eab9b04d667e0ab23c4ad9d137ca6820958 build/r-kernel.svg +d9ef28b461f4cd6379e796060ae19b1ea4e47070b4257bf6dd199302cb9a46b3 build/react.svg +da00a00f0e63be2e3cc19a1c11ab18126d3913f6c6b820fdc41f1e41d5e4aa54 build/redo.svg +f80bcf80473101f4a080ec9d80c45e373f12a2aaa7895f9c6b1ff6e781354b92 build/refresh.svg +3b7ac0de4cdbd19157e43aa55e020fe42f13959354d37f12db2033b73046c47b build/regex.svg +1efb41b2378bda0abda9a59ca26a583a9224cf8b9c848a3d4a574d0abd91e06a build/repl/bundle.js +dff06f2f226c3844248b7f6e86546fe3e4d177944aabd1222339135b17715bf0 build/repl/bundle.js.map +43f85cab9ddd805a17b1aef76841f2c9675f50fdfc3846f3d19357c8ef843b3a build/retro/bundle.js +ed058653aa696df1f0f62bbe86645a3237b2e5f1859ced160545164a7d1de64e build/retro/bundle.js.map +0c805a2aa444bd6a109d1d0fc75c8db278bf53b3d6f0dd5755d66b9ea1008f58 build/run.svg +27231479e33894c3acb5c46d579eab09191a091cc9553f2510b5dae27b629d4c build/running.svg +0dc7fec7ff3cb09831584a4c9b3c1823aff0169caef9504f1e33984e3cb6402e build/save.svg +70fa12214dd1ed7b5100972d12f9b0a0ff3a71508261c5c44e1c6478f3cdf26c build/schemas/@jupyterlab/application-extension/commands.json +aff548698a6470ac392e67f88218c851df04e95653d3f69a4f4a23ef9aa9c6cc build/schemas/@jupyterlab/application-extension/context-menu.json +f26a2852ce97f31a57a654ca45e5f93c8db72939bf3d358e538f80c37cc0c556 build/schemas/@jupyterlab/application-extension/shell.json +35455cafc50ddd05ce4eee495cbe355980a882d36662994f6c5c5d90373d6f69 build/schemas/@jupyterlab/application-extension/sidebar.json +61138fe9d61aca464ac5060fc422e8966d0dd477f092322d5324fa655fc70540 build/schemas/@jupyterlab/apputils-extension/palette.json +04a906bfcf7cb6a7ab3ef1af6e8cb64d925f7f09b44b1b12cd5ebf70b8942957 build/schemas/@jupyterlab/apputils-extension/print.json +9c812520940790d75cf6418922850e27e02d104303b4ac67080e0efa070f2bc8 build/schemas/@jupyterlab/apputils-extension/themes.json +4524b552dab7c2afb6aa513c821a52f75e5787a1f6ed9f29899e0ea0d549feb4 build/schemas/@jupyterlab/apputils-extension/workspaces.json +d188b0dfafff34139a4c06be340fe067f3adcabf3ab975abb820b4c59f22c454 build/schemas/@jupyterlab/cell-toolbar-extension/plugin.json +9fb92d7773284d531e8a207b2cb17cacb8dd7d2fb826a7d556af54cef711ed21 build/schemas/@jupyterlab/codemirror-extension/commands.json +1b734292e664b2017eab4b1fdd503436df1a70a2a64afaaae6b9b8e9c59f8403 build/schemas/@jupyterlab/completer-extension/consoles.json +58bbc3d4e452846a52d45705e3a69278e4a61ebc50d93bbeddef2b996544d82a build/schemas/@jupyterlab/completer-extension/files.json +66cafd20d981c8205eec5284cb512b4f7d274c808e8a9a1f899df68997c68a1e build/schemas/@jupyterlab/completer-extension/notebooks.json +fea945ea574f795c6a29ef45398cfa2d04ba265e7580d039c2a4db2820c5f573 build/schemas/@jupyterlab/console-extension/foreign.json +71a8e8c43253df0a17bb0ce50afbda61265873698a886ae19be345832a035356 build/schemas/@jupyterlab/console-extension/tracker.json +6107e6ba7f9d0ea86465ccba26cae314df1f37693db675e038a6ba515d327246 build/schemas/@jupyterlab/csvviewer-extension/csv.json +1886198620e2bc8d78861c99eff74e63692529bd42c2e2ea48af8c8f7739d367 build/schemas/@jupyterlab/csvviewer-extension/tsv.json +9672bf1b954a58bd40b1e4875d7656aaa4a4f65ac5752578150cf64ab141faa6 build/schemas/@jupyterlab/docmanager-extension/download.json +c98fae25e8710d00788a6fc34c1acb1f93ea419f4c05521912b0f007f74ff9f2 build/schemas/@jupyterlab/docmanager-extension/plugin.json +8a0b0daf3e7897f2cb67346fa96b64a3ebd113ca57a47bed36753e02339ffae7 build/schemas/@jupyterlab/documentsearch-extension/plugin.json +ab130ef2241350164912d6f906321d3cd620bc9a0bb7ce6bd5b2825859bdc902 build/schemas/@jupyterlab/filebrowser-extension/browser.json +2f8d328a68633c0bcaf6bd9bc2ed7a46527d64d769b5570b26a873772677dd72 build/schemas/@jupyterlab/filebrowser-extension/download.json +adc0a22f6b1c80d20bc2485f9e828a4ad2d9971022d073226bd29c48a379719e build/schemas/@jupyterlab/filebrowser-extension/open-browser-tab.json +9c673b810cbaf79d5220df635a7a19825c464c9668ba75bb156f458289b139b3 build/schemas/@jupyterlab/filebrowser-extension/open-with.json +2f21b93dff01305c10d4b59d8a44d41c1210897897274ce96f2dccee25f62ef0 build/schemas/@jupyterlab/filebrowser-extension/widget.json +2373fabc4e9694b115c01192bd770bd039cc9c8cb53441981b6d15356110dcb4 build/schemas/@jupyterlab/fileeditor-extension/plugin.json +c95b0e4cfa435d30fd1ea47103aafd102d0fa0618cee23704eabc08cf83b746a build/schemas/@jupyterlab/help-extension/about.json +166bf15c61d4a0d6cdb55da436132bbf5a6741bddb87cb567630ede3a995019a build/schemas/@jupyterlab/help-extension/jupyter-forum.json +011cd9216eadda0deb9def1157268586e9e533b6586fe80232b27900f8c06401 build/schemas/@jupyterlab/help-extension/launch-classic.json +fb12887f41b9fd9235bfb67decf477c4a41499ce23a443a75825bc3930bb2a7e build/schemas/@jupyterlab/htmlviewer-extension/plugin.json +6d8187f70daacc1c575520933b9295e6c6d159af3f02653b3117fadffed73c46 build/schemas/@jupyterlab/imageviewer-extension/plugin.json +6456b35953b7d1857549872c7fa6bcd3fc0d222e3f444dcc89b548ca05c7397b build/schemas/@jupyterlab/inspector-extension/consoles.json +0a8fc7c0da4d868d88bd987020065b10fd5d6b4880b294eb32dc4c89d84aa5e3 build/schemas/@jupyterlab/inspector-extension/inspector.json +7a170f748f1e0650df894bfc98f0b6e987e2039c7ca17b6cb4c22f85585963fa build/schemas/@jupyterlab/inspector-extension/notebooks.json +783a4550eb8dd3752f19ac0ac8f545a42ccbf56da69973bf14dddf92cd0cfdef build/schemas/@jupyterlab/launcher-extension/plugin.json +62b706bb1c5bc55c0f05d67cbb2d3f60fd9fe2a663728cd9c5240be4cfd0652b build/schemas/@jupyterlab/logconsole-extension/plugin.json +d27da8d1a369c6dcb31dfe0dee63f949b19f90383099a8510adb58ba421bad3e build/schemas/@jupyterlab/mainmenu-extension/plugin.json +09c8b09620f3475a000a365b9acebde5bcac5c1ed4ea9a61833ab000c47a6965 build/schemas/@jupyterlab/markdownviewer-extension/plugin.json +f4da53118f40492d6c44ab0f658ab410cf6c7a600d056253d04da01b954240a1 build/schemas/@jupyterlab/notebook-extension/export.json +a9d125cb73cf275ffd0096b99b2210b9b4221284ebd6009d8d069f66268dbae4 build/schemas/@jupyterlab/notebook-extension/panel.json +4d1464dae5d2d8c24a050db181d709bd840366f38c05ad5f77ffb73c89a62d87 build/schemas/@jupyterlab/notebook-extension/tracker.json +cf6642d8ef9602c6fcf7a802c73b8048ca1f2596daccc24af167993cc9c2084d build/schemas/@jupyterlab/settingeditor-extension/form-ui.json +79c45056b7d0cd230a03719640da12ea1497bcec9d18b882426afe4364298f04 build/schemas/@jupyterlab/settingeditor-extension/plugin.json +23bd7735d4427f0910d3629adad33ad53e463a4733283a3f697dd8364deb256a build/schemas/@jupyterlab/shortcuts-extension/shortcuts.json +cc07fee421176d935575609413d04ff6b9650f8637422f9f66ffebf6906af2ae build/schemas/@jupyterlab/statusbar-extension/plugin.json +f2b7515898bcb464b531055fde546d610935206e3aa502ad1eabcfe19d2d743a build/schemas/@jupyterlab/toc-extension/plugin.json +8a52789021f4122a008ef492aebd50fc7bf1c74a4355b328dc810ef49ccf97b1 build/schemas/@jupyterlab/tooltip-extension/consoles.json +c04fa1aa038c0ad04c4e0b19a216ebc7a300d36fc8f141cf4e2a5c116f8a2bcd build/schemas/@jupyterlab/tooltip-extension/files.json +f04fda8d54ecc1ebbb057cd326554c317363872d72ab3a63ba9eee7406f80e8e build/schemas/@jupyterlab/tooltip-extension/notebooks.json +141a725afe37e903782b8743a2b8309e5899cf95d2dde4c32a4e4df13547fde6 build/schemas/@jupyterlab/translation-extension/plugin.json +9b903e229678225d7fbd53d0e1f92a9b7a7b5831551c849c6508c3baeb7b8129 build/schemas/@retrolab/application-extension/menus.json +6b1291f821e379822fc7a377c0f9612ffb01dc0bc4b174930e244cc8bd59fab9 build/schemas/@retrolab/application-extension/top.json +87e8fe92ef779f51dcb82158ea17b225258546367570cb732ca1ce9cf8ff7014 build/schemas/@retrolab/notebook-extension/scroll-output.json +101195c0c3ad212613d79dfbf453aa0ad6d34bbf651ed078898184b44bc816a6 build/schemas/all.json +66c7eb68b20726cf10aa11b7a86c9d225ce4d899970551c3d1052fa3befe47a1 build/search.svg +ddb3ca2dce51cba09f2ffdb7574ec246498965a37ba83e816f5bb76f3e6a7ef2 build/service-worker-f7de73d.js +b491b64f790535a118c05185f2c36cd48ef046fdfc79191bdf2da8101e287174 build/settings.svg +f7c216723a6ba934c2d028cf341778a2ae9bdcca9186f5e9d65af7b19e753eee build/spreadsheet.svg +ab7304c0cea575ef112b42a485afd9579218221786f663cbbb7eea1d54b9aea6 build/stop.svg +fdb37ffe258addac93a81f5123d473859eaea88db88ad186cca090eb3bc73016 build/tab.svg +e70bd242cfda4beac94495da24504af6dcb0caeb6c676f3950bc8c03080580d9 build/table-rows.svg +593033f4e563befd73c014b0b502919f19e7a2938714d3b96a7fd3205f354141 build/tag.svg +a400f277bcb0fac961e6757953fbf2320f4cc620fab557630e7d23dc90c7e399 build/terminal.svg +135e2465dd622e2aba35d88c424869e5bf72ec34fc8161861fbe2b14b8097ff4 build/text-editor.svg +c36d92594fd377db7a5405604099eb47f006ea4c3f93ba77211df9d89e1e2176 build/themes/@jupyterlab/theme-dark-extension/index.css +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 build/themes/@jupyterlab/theme-dark-extension/index.js +2a5ae4987f03b8ff6a735ba883286369084b973e9e6eb2d725712620c7bf4687 build/themes/@jupyterlab/theme-light-extension/index.css +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 build/themes/@jupyterlab/theme-light-extension/index.js +3d6315eb6bcbd99e3622c636b11628fb0dca4a118efc426eb2108cf349f3e4fc build/third-party-licenses.json +273a32ab58ae98baf02e34d50d7b9078df2e0fa005d097782805e620b40de594 build/toc.svg +0b71143ce8dc345aa9aa6dc99e0c0618d3186eab2f8af134ec34ce36ad2dd2b1 build/tree-view.svg +d391bffb612724fa631d94e870d8856feeb9625e4a8feee3320bc02153c3accc build/trusted.svg +6a516cd43724837b4bcd947c694f9708e8fd511b25667d147e41ab9b883aa26d build/undo.svg +d47522dd19827a2fc19cdb8686623f5b73c813c7c47d48e7464b397eaea68bc2 build/vega.svg +c710e6e371738fcd75078eb1b46418456ed87a4523efe5ff216bf8800b660d62 build/yaml.svg +8b92f7f5829a9e0648e9675739987617af3a958aa6da798228b249b762ad4df4 config-utils.js +3ab603499031b6ab9dd6933bd1cc2ef0a27580407fbc8b15a1553ff187cc9d6f doc/workspaces/index.html +7bae4a70336d75a038699805d662c7221c1aa08ce91fd2e652e786e22258988d extensions/@jupyter-widgets/jupyterlab-manager/install.json +9a6daf572b5b89b6f7d99947ad64543a6bdfac709bd303a4a94a6c3686988ca4 extensions/@jupyter-widgets/jupyterlab-manager/package.json +607b7ece973cd45610fdbde8ac8e2a4f9f81a15cd88d81691edd0d4aa59863f0 extensions/@jupyter-widgets/jupyterlab-manager/schemas/@jupyter-widgets/jupyterlab-manager/package.json.orig +2163419819be1930130abce16b99be2a1d06b7a1f82b31ac9f372e4a2823c760 extensions/@jupyter-widgets/jupyterlab-manager/schemas/@jupyter-widgets/jupyterlab-manager/plugin.json +2b4b51b83ad10b166559d5c7d9874a3863ebdf31951bf614bcf0f9f892e08698 extensions/@jupyter-widgets/jupyterlab-manager/static/113.6113d19fca7ff66ccc66.js +d49fb5cb77f2f622f79fbfee49eec4d3dab51570ad119d054242acd0535b98d7 extensions/@jupyter-widgets/jupyterlab-manager/static/113.6113d19fca7ff66ccc66.js.LICENSE.txt +b4eddbb09f5fd50a4007476b0ffb9c2a164f27a64831267a3e4631353d073787 extensions/@jupyter-widgets/jupyterlab-manager/static/134.b4eddbb09f5fd50a4007.js +e0174b46b7467c2a21f4f06475bcbed8b28476de16f162132759bcee2a1bf5fc extensions/@jupyter-widgets/jupyterlab-manager/static/291.cff5ef71b29e18850479.js +b396f13a41869ccc527fffdb79ea357e45cd433fdaf81763aff596b2a2a1b72b extensions/@jupyter-widgets/jupyterlab-manager/static/291.cff5ef71b29e18850479.js.LICENSE.txt +9f709c2076672b1bfe2be8dfcac6cbfbc0161d47081036620dc2e7dabd585c25 extensions/@jupyter-widgets/jupyterlab-manager/static/336.9f709c2076672b1bfe2b.js +17494fea1ff555b262947b3dccbe226300596810dbded0805b37a5db1a9d90c5 extensions/@jupyter-widgets/jupyterlab-manager/static/345.17494fea1ff555b26294.js +b58859516292ffe4bc96bb11321c5de8f93b2260e80307bdbe40a9412b571cd1 extensions/@jupyter-widgets/jupyterlab-manager/static/495.b58859516292ffe4bc96.js +942a65706d9bc281d5ca3459e1268c1a385331a6ac5131e039f73ab390f2bc63 extensions/@jupyter-widgets/jupyterlab-manager/static/595.942a65706d9bc281d5ca.js +1f32fb4ed861227b46e2045c5857a52d634e8c406f68784da60a88a17ac4a46c extensions/@jupyter-widgets/jupyterlab-manager/static/596.1f32fb4ed861227b46e2.js +21f571face17e35076c20654e3204ab75578f9b288c58ca1eb1ceb24d1899d48 extensions/@jupyter-widgets/jupyterlab-manager/static/61.21f571face17e35076c2.js +52a1098a3a5f3e45abffc93fcbdc2c3b6eb50e15bcd4714a991e3ee89bc61310 extensions/@jupyter-widgets/jupyterlab-manager/static/644.52a1098a3a5f3e45abff.js +e966b1425a7d4e8c3f4edee3d263961685d0932b80ee6423d9d5cec53947efeb extensions/@jupyter-widgets/jupyterlab-manager/static/699.e966b1425a7d4e8c3f4e.js +22fa53da8ad2a8da593af81b78a34b857720c4bac349c78588e18c89eec8d613 extensions/@jupyter-widgets/jupyterlab-manager/static/965.22fa53da8ad2a8da593a.js +98b8a827bfc5f86e95d231d95867abb0b095a7ebd5c02ebaaf5ce40360d8bdd8 extensions/@jupyter-widgets/jupyterlab-manager/static/remoteEntry.98b8a827bfc5f86e95d2.js +f8242dd194cf6824efad188b7339f17e501b7ef20a94e5738cea2cfa6b9a5d0f extensions/@jupyter-widgets/jupyterlab-manager/static/style.js +5d82912ac7805954a8930e251b2618a705f6aa25a8e35edd74e9b282811287cc extensions/@jupyter-widgets/jupyterlab-manager/static/third-party-licenses.json +2b5174ed859fdc907d41de03c7a62f634dbd50abed56780868b57c55c880e6c3 extensions/@jupyterlite/javascript-kernel-extension/package.json +b17cfbc4c662a8c3822a18182e256b662a7812105bc0a400db4ea7fcae7e12bd extensions/@jupyterlite/javascript-kernel-extension/static/102.b17cfbc4c662a8c3822a.js +d3baa4e12f728a48f3c408d5cc7f2f8787d983ca9fda2208fa04d68e4ab1f6fd extensions/@jupyterlite/javascript-kernel-extension/static/290.d3baa4e12f728a48f3c4.js +e1bac0e80e50f9e303dc34c56aa235d87493540f4f83d6ab83b8cc914ca39725 extensions/@jupyterlite/javascript-kernel-extension/static/322.e1bac0e80e50f9e303dc.js +4368412449ba90ea922550b4b272e4255d281dbde40c6d90c148cbb31434e340 extensions/@jupyterlite/javascript-kernel-extension/static/441.4368412449ba90ea9225.js +97f5f068dbbebd2b6486cc9500f47327c89197bd2f13bcc3d970b26b0137e331 extensions/@jupyterlite/javascript-kernel-extension/static/568.97f5f068dbbebd2b6486.js +1ce3c77b50c9eb671961b6cb9f8e6bb2c8be1dc7a19130c571316edf8ac4aa6d extensions/@jupyterlite/javascript-kernel-extension/static/866.1ce3c77b50c9eb671961.js +e75039073a726197e8476a01b4c504314b78b51319dbde1de9b88c13759d966c extensions/@jupyterlite/javascript-kernel-extension/static/remoteEntry.e75039073a726197e847.js +f8242dd194cf6824efad188b7339f17e501b7ef20a94e5738cea2cfa6b9a5d0f extensions/@jupyterlite/javascript-kernel-extension/static/style.js +15e7bdf13bf5a0f177893cf82e71bccfd565e685c35832349e0e18f96de2f3d1 extensions/@jupyterlite/javascript-kernel-extension/static/third-party-licenses.json +71789b00a8b1daf7e4a1118976e81d13c7a902f036abb69c3b90803f26845c35 extensions/@jupyterlite/pyodide-kernel-extension/install.json +1132873be0a42a20d918a89743dec72a5e9f1dc4d8921a7d27916460fabf534b extensions/@jupyterlite/pyodide-kernel-extension/package.json +7b3e47af604cc5639fcd7a2e1039a4cc25dc580cace20d0a3d058e16b39f5720 extensions/@jupyterlite/pyodide-kernel-extension/static/460.f65c68deb6893d389ad8.js +dba78b782510f3d51a4915d2f0ecc6996a5504a1aa7836848b0bf8e5fae6ba99 extensions/@jupyterlite/pyodide-kernel-extension/static/460.f65c68deb6893d389ad8.js.LICENSE.txt +0c22b468fb9908d7b090f15f0d9f9cf98b88d5191e97e33b316382f2953c8470 extensions/@jupyterlite/pyodide-kernel-extension/static/460.f65c68deb6893d389ad8.js.map +31d74886d1b5a5348c204bad4075ae03ccfc7eeebaa17e11ffa49c2d028b1869 extensions/@jupyterlite/pyodide-kernel-extension/static/568.a366db64685210602f09.js +dba78b782510f3d51a4915d2f0ecc6996a5504a1aa7836848b0bf8e5fae6ba99 extensions/@jupyterlite/pyodide-kernel-extension/static/568.a366db64685210602f09.js.LICENSE.txt +26c07741ccf2b5bffabed218a3bd6ce106121f41b50b81e33c64164fdd733f08 extensions/@jupyterlite/pyodide-kernel-extension/static/568.a366db64685210602f09.js.map +b544c6395c91e449f5eb81b2432e826e4d27b0a7108c97d9467be4358bfb75c9 extensions/@jupyterlite/pyodide-kernel-extension/static/652.9eeb1d40d049d5db167c.js +c306d494fac55f1e10249796f697e85f3c6ab8fb54b16f43ec0b12013555db8b extensions/@jupyterlite/pyodide-kernel-extension/static/652.9eeb1d40d049d5db167c.js.map +6aa84550825e26ebf7fe1fc4de30bb03e9f5471db92b80d4f81492384448fd85 extensions/@jupyterlite/pyodide-kernel-extension/static/951.f415b4c2ffe9eaeaa16c.js +bb3456f1d11e2eef78615f5abe5934892a7adb44f38239b807e002781dd44b8a extensions/@jupyterlite/pyodide-kernel-extension/static/951.f415b4c2ffe9eaeaa16c.js.LICENSE.txt +289f7bc51d003abf79df2dc217ecb845d06c9fed4e6c42848c65687bb6c80888 extensions/@jupyterlite/pyodide-kernel-extension/static/951.f415b4c2ffe9eaeaa16c.js.map +5e9ce9e49c39bfa29aa60dbee0e272614a3111b97116f8902630cf36bdc58634 extensions/@jupyterlite/pyodide-kernel-extension/static/pypi/all.json +3024d4ac0f91cb909d0d74e8be144ab2edf2c8b3a8c46df68c3efd910b15699f extensions/@jupyterlite/pyodide-kernel-extension/static/pypi/ipykernel-6.9.2-py3-none-any.whl +95ec2f128ad4e1c7d8bde13bb5261b669c72746094e128297c478e75adf24b5e extensions/@jupyterlite/pyodide-kernel-extension/static/pypi/piplite-0.1.1-py3-none-any.whl +cf50220493bf2bd6f1dfc5f0c10c64476c5c5fb93c5bab154fac0fe5f47f968a extensions/@jupyterlite/pyodide-kernel-extension/static/pypi/pyodide_kernel-0.1.1-py3-none-any.whl +d5ca0fd4e1aac03f5abd4935e621e5cfc110b3c7e8433e117079bbe44057cad9 extensions/@jupyterlite/pyodide-kernel-extension/static/pypi/widgetsnbextension-3.6.4-py3-none-any.whl +5fd374049672a5350eb999956f3051dde5523983f8a611b11a6ffabc32a794df extensions/@jupyterlite/pyodide-kernel-extension/static/pypi/widgetsnbextension-4.0.7-py3-none-any.whl +82f439ec4ae1584dabb2215b0b1a331f53de4aee8b82e42e49bc55ddbb1e6f64 extensions/@jupyterlite/pyodide-kernel-extension/static/remoteEntry.1c8491cf58b5de6123d1.js +c8c6ca2a166f5435d755e0ffb21936354207df8a9ceaa62e6593fac4e66ff3cd extensions/@jupyterlite/pyodide-kernel-extension/static/remoteEntry.1c8491cf58b5de6123d1.js.map +b3010ace24cc998869207487f69981721d9e66f58ac82cc04278d9a7d20ebdde extensions/@jupyterlite/pyodide-kernel-extension/static/schema/kernel.v0.schema.json +e91c4ab11ed48f751bf84d4ab289c5f7b532899e29d2d257df2ac7718e60c291 extensions/@jupyterlite/pyodide-kernel-extension/static/schema/piplite.v0.schema.json +f8242dd194cf6824efad188b7339f17e501b7ef20a94e5738cea2cfa6b9a5d0f extensions/@jupyterlite/pyodide-kernel-extension/static/style.js +b19e51182d991edc6883acad162adcb6ddf7392aa8ab4bbd47c55bb41f237e36 extensions/@jupyterlite/pyodide-kernel-extension/static/third-party-licenses.json +23e02b053b495eff9a22fd7da42e3ddaaaa614d550a61c12ef5ebb23d747f190 extensions/bqplot/install.json +73735f231807f3b29fc2452da7d77bf703bbba1a13be8d517f4fddde018a183b extensions/bqplot/package.json +184b7ff4eeea6053c218cae688aa6f8859f700444ac66ea6447d036ac1ceb55c extensions/bqplot/static/133.184b7ff4eeea6053c218.js +9b9dd2ec059faa78e980c7dbad332f8dd97ae37d59095c411913e9659bbc557a extensions/bqplot/static/212.898d3b3da016aa77edc1.js +2355fa961337587bcf330cdd5fffa4bc73fb8758b9a62b43cfb618aea465f125 extensions/bqplot/static/212.898d3b3da016aa77edc1.js.LICENSE.txt +6c13f92ce49688bde79047502f171a9e101a8602fb277f363748a161419a5651 extensions/bqplot/static/501.6c13f92ce49688bde790.js +9ad93b156f9ecf44191d8ac02e337320766c36f3a51077f04fa20d8a966bfe4e extensions/bqplot/static/568.9ad93b156f9ecf44191d.js +d928d9e888427c5996be9ad6a35a5b5e7bdd7d9b7970fad38ddb5a3e77cf1397 extensions/bqplot/static/662.d928d9e888427c5996be.js +8d6261fd8a7307e156f7513414a42767652c35f9083f6ab7f71bec34d08744aa extensions/bqplot/static/794.8d6261fd8a7307e156f7.js +4fcd9a1489787115f9300f18231f15d4571bcda0e83c58a07195484100bab776 extensions/bqplot/static/815.4fcd9a1489787115f930.js +a94bbf6f3349e982fb8bbd6629f21f57388066982f747c466f3b443151a11c15 extensions/bqplot/static/842.a94bbf6f3349e982fb8b.js +cc5d175e0ffc0d125bd53e3fdbc9a876a6b3ab9ac6aca2fe9ed30ada87ca24b2 extensions/bqplot/static/87.cc5d175e0ffc0d125bd5.js +3eb8076dae15637e508741491e31341f0c423b3c45a52e126cef67f4afb48e29 extensions/bqplot/static/981.3f93685e278b785a3338.js +a5575483e0d910f7e5ca737628948a4144ca883fed7ac486dbc5d50153ab1272 extensions/bqplot/static/981.3f93685e278b785a3338.js.LICENSE.txt +ade722230aea9b7793b20ad5f512dba58e17ba124c9ef47c4372ad1508dbe4ee extensions/bqplot/static/remoteEntry.ade722230aea9b7793b2.js +f8242dd194cf6824efad188b7339f17e501b7ef20a94e5738cea2cfa6b9a5d0f extensions/bqplot/static/style.js +c4bdaec4ecbff0cf4a304985dfea87bf60f8ec2cc8b7807cc1d93cb75bc6515a extensions/bqplot/static/third-party-licenses.json +219afdf31ba8c346ebbc0e33887849d44d60bea65a31b1782e4c3679ba5d9570 extensions/ipydatagrid/package.json +1627bbe6e3bd1b150cfb8dbd89e0a82f1b223aaa8497d9d0a08ecfa3fde2169b extensions/ipydatagrid/static/130.1627bbe6e3bd1b150cfb.js +025e64e0cbb8aa528385a8e6c9ad3d4bce27abd02b9d4633865deca5ec6ea1cc extensions/ipydatagrid/static/142.025e64e0cbb8aa528385.js +171db67c9b56d395ae64227d5b80dd1da60f543b26084a5535caac6b0c503f60 extensions/ipydatagrid/static/143.171db67c9b56d395ae64.js +14ad542071f6e259fbe218923136e6938d56b0d52702bb294907b3b8b0ecf38e extensions/ipydatagrid/static/14ad542071f6e259fbe218923136e6938d56b0d52702bb294907b3b8b0ecf38e.png +c6d995708c863e1b27ed73e64db9a0ae7f0ea3d4fff024be7f522c848b12cd2e extensions/ipydatagrid/static/271.c6d995708c863e1b27ed.js +a4aab9e3718f10fd8b66cde977aeb8cbbe57b327869b4ab118640a959dec93fd extensions/ipydatagrid/static/284.a4aab9e3718f10fd8b66.js +372e5eec3c9010a57cf38e1356d7244c95aba8047ef08dde396cdb01c3b281dc extensions/ipydatagrid/static/351.372e5eec3c9010a57cf3.js +3546b939aba74f121f34a2f20ee7b20488e8365680c595d22bd5d6f4a5ed9d19 extensions/ipydatagrid/static/3546b939aba74f121f34a2f20ee7b20488e8365680c595d22bd5d6f4a5ed9d19.png +95b73fc6eb3f120b823f262e72367999f75509886a45d2b66e182bc8d94ae4ca extensions/ipydatagrid/static/400.95b73fc6eb3f120b823f.js +afd75d5e116998d22e5655a2948817cc1a50a2c698aa7011e6cb36dacb39faab extensions/ipydatagrid/static/456.afd75d5e116998d22e56.js +68e4d74f02bf2411528e870f0b8bd2291688929708143fb3b1df26b8fdd30bef extensions/ipydatagrid/static/462.68e4d74f02bf2411528e.js +732e43cec274cf5b8cf585d96e881bcb68825aa01dc2b27984e6fae6767e67a2 extensions/ipydatagrid/static/48.732e43cec274cf5b8cf5.js +1335093f4212d0224bd57c484e819d87f85cfe9bb439dd33732441b6d8749506 extensions/ipydatagrid/static/480.1335093f4212d0224bd5.js +911a23288443c8041987b6acd3fe7e5faa67fbbac98ef3f44c0141e1e4faae22 extensions/ipydatagrid/static/481.911a23288443c8041987.js +fa08f8a94327ef47fd438e050fecd24d27e9bb9e05fab09a7fd1f7c636949fce extensions/ipydatagrid/static/498.fa08f8a94327ef47fd43.js +2205a874de0a8daf2fd24b69757c04b93974fbfc828ec002e676298a4bf36145 extensions/ipydatagrid/static/568.2205a874de0a8daf2fd2.js +82c436d9ed33fa1eeb09f8e0152b99de1d43b038880ca205424ae873bc38cf82 extensions/ipydatagrid/static/57.82c436d9ed33fa1eeb09.js +5b5469a81198fb5e6aa1696bf25b1d138202b839d81ba71d00158edaa4467f79 extensions/ipydatagrid/static/5b5469a81198fb5e6aa1696bf25b1d138202b839d81ba71d00158edaa4467f79.png +730227a42292c5f89120f6e7f0dd38a53699b42f8421d1e7ffb48068562cbd24 extensions/ipydatagrid/static/642.730227a42292c5f89120.js +efe59705c1680a8f8b3ac87f573075990d53829fdeeeb39a0c044fc64c4ee6bc extensions/ipydatagrid/static/683.efe59705c1680a8f8b3a.js +c2c94fc61e0f066974fe50d9ac4f8ce530a9227e6a991591c9831564ea98641c extensions/ipydatagrid/static/700.c2c94fc61e0f066974fe.js +03b63c4ddca5a6c51239c7084c2a5deb82d40d12267c34d5254d2dde1865afd5 extensions/ipydatagrid/static/723.03b63c4ddca5a6c51239.js +733684aa1ae47c885305752829814da98236533c8dc93c663bc1ca1428f93b7e extensions/ipydatagrid/static/733684aa1ae47c885305752829814da98236533c8dc93c663bc1ca1428f93b7e.png +99660434599c02f0b72d43a6ce3f1ad255c5790aed2012040663e46392334281 extensions/ipydatagrid/static/76.99660434599c02f0b72d.js +8e42ab14a450aebad588434c801201e9d930e0cea8a9fac613cab33fdfa7b4fa extensions/ipydatagrid/static/762.65f6f1cb96cf372620f3.js +03ebf59709ae217d43a4d275303cca0cc5afedffdde9c8c794638212fb6185d6 extensions/ipydatagrid/static/762.65f6f1cb96cf372620f3.js.LICENSE.txt +c7bdeaec10d13ee80dac097f574d47440a09870b95e244500929bbc050cb4a58 extensions/ipydatagrid/static/778.c7bdeaec10d13ee80dac.js +ef3f9c2a235c4a40bdc002a4dcc241450bd60826a8d6e0ed3c7197edc24344e2 extensions/ipydatagrid/static/781.ef3f9c2a235c4a40bdc0.js +171fd32dda5eb9ad0c25a4beed46edfb58f493643122f47e7f66a582b544aeb4 extensions/ipydatagrid/static/787.171fd32dda5eb9ad0c25.js +d7c23e15137c8752365eb06b4a30cba6e5661a1fe859a56cfb1ad0fc935fd572 extensions/ipydatagrid/static/794.d7c23e15137c8752365e.js +a135ebc21be585e6d76d1b550a853b281f10568fe3f1769fdef3cb233b638b4a extensions/ipydatagrid/static/811.a135ebc21be585e6d76d.js +18e09aad57c7797df9875cffe2a778d139281d6a7c28b5d7f7c6c4e84e97b0b7 extensions/ipydatagrid/static/823.18e09aad57c7797df987.js +3c908c99565b9239edc610fc02d258b330b99d21bf216e9e410a6f46282e6000 extensions/ipydatagrid/static/84.3c908c99565b9239edc6.js +581e914499b9bc9d538edf1ef9d4e6e295fee6da1b277c6d83f6be5afc892859 extensions/ipydatagrid/static/847.581e914499b9bc9d538e.js +b972bc5b41fae8990bff4ba5230860bc98f6e86050486a12d4ec391c1fb1749d extensions/ipydatagrid/static/917.b972bc5b41fae8990bff.js +23c8b1f0eb18afd531e9730c611a6801adff267ac60817bfa30eaed72a01167f extensions/ipydatagrid/static/941.23c8b1f0eb18afd531e9.js +e35c256305f259cdaeb99b17a01d451a3afb44a8eda7c32d3024d0ad3f57a1a8 extensions/ipydatagrid/static/990.e35c256305f259cdaeb9.js +e66d09bd2a32f6ddaf26a16693deaedf6f07414d31638ac6ebcc113d17fe9071 extensions/ipydatagrid/static/999.e66d09bd2a32f6ddaf26.js +61e8508824209171af0b4919328ce8713feeb696ae74877315c7a8bc9bb3c3d0 extensions/ipydatagrid/static/remoteEntry.61e8508824209171af0b.js +f8242dd194cf6824efad188b7339f17e501b7ef20a94e5738cea2cfa6b9a5d0f extensions/ipydatagrid/static/style.js +f3e79c8a1e9a5940c0d9cccd236aa0f1c2ed4fff34e9de9773c75e96c83ff15a extensions/ipydatagrid/static/third-party-licenses.json +00d92172f8ab893b0a973ba1b30a21ab8927665f4c3fb45256ac989e212dc54d extensions/ipylab/install.json +b20cf87e6e1c4066cb3f50a5f8fc606f56d33ddbf3ebd5d86ded08fc0ebef2ef extensions/ipylab/package.json +65104e3518cc2846229afae38ec12d58c35d967dc37e78f4eebd74b99f2ea20a extensions/ipylab/static/223.65104e3518cc2846229a.js +16044a8abb039e4c2a69d17baf15d4a6c791d1f0d26b7d696b9100885ef3c839 extensions/ipylab/static/480.16044a8abb039e4c2a69.js +9ba08c8aad161a412b389898fd76db0182ae2f9810e454c85930c497ddf99421 extensions/ipylab/static/568.9ba08c8aad161a412b38.js +fdad245823675affa79e13289f122809a6d03c29880ecc6392f803eef6f819c2 extensions/ipylab/static/755.097126830783dc2ceab2.js +90df5fb90a66efeeba4a18886bb6c62bdc1389f8ea14d8e1531acd42f160d344 extensions/ipylab/static/755.097126830783dc2ceab2.js.LICENSE.txt +bae6a35721d5e73092282521884e97b5b7a01da332b0c35bd46c94d994f2f308 extensions/ipylab/static/78.bae6a35721d5e7309228.js +9dc62dfa1fc2e1667e5a9f73bfc4e1ac112d5bdbcef0c852b2b60255dd0d536e extensions/ipylab/static/856.9dc62dfa1fc2e1667e5a.js +1c9b77c557d03a2498f48d3fb030eeb821165a49c08e1c0cd737ccc28491ec83 extensions/ipylab/static/remoteEntry.1c9b77c557d03a2498f4.js +b918b1c5b96c9496ab148177dcb9a02bb5b80486013eec2213b4cc04152d38b2 extensions/ipylab/static/style.js +6103eefb6e2f3b43ef69b933adf6d494408db940d5023d15d8440d963bfc8b85 extensions/ipylab/static/third-party-licenses.json +5b90c1a3c707e0358fbf90b5708a606bd2462d82bb68a99efc8c471527e23cac extensions/jupyterlab_pygments/install.json +767f13b688136457613b8a92042d27458da3dea128ae5e89415f54e5ea293ae1 extensions/jupyterlab_pygments/package.json +1e2faa2ba0bbe59c478051deae97846f78131976aa98eb4ffdfa24b62624d8ef extensions/jupyterlab_pygments/static/568.1e2faa2ba0bbe59c4780.js +8eb3ddccc7ec4987bff977b8d08cd6363d18d9358865fb9859dfb88218a854ca extensions/jupyterlab_pygments/static/747.8eb3ddccc7ec4987bff9.js +aa1060b2d1221f8e56881edb9c97f25c237d6a8c23e6f85e9a6435831fbfbafd extensions/jupyterlab_pygments/static/remoteEntry.aa1060b2d1221f8e5688.js +e3b0092f744dcfb50677cb8ef548ba825c2c39c593cd0888260434bf03744636 extensions/jupyterlab_pygments/static/style.js +3ff5632ca092319dec5ee3dc920f1b0f207c5e7f090fb12c888a11aaf48fde1d extensions/jupyterlab_pygments/static/third-party-licenses.json +61107269d3d589dce6276bea9d431b1e5f9617cc7c1e4e6ab721ca6f8a802596 icon-120x120.png +00e924b892be5ab55bcae0723af5b58b9a112be5581333a2f22fc1d8fc03a823 icon-512x512.png +18686b756f0d484c2cacd6341bcaf11838c27545afc63365fea999549e2a6706 index.html +a0be8c339022b0274d470e9cad95a2219990e9a52e3546fa1cfb03796e7ca271 jupyter-lite.ipynb +9794f42766e978662c479c0016bf9ece08bfd60a3558a7e6cee348946ad6cb2d jupyter-lite.json +07c6b7f64a85cdfea5711c7e1ca3d1bb85677e900ede823e5c67dc8f9236358d jupyterlite.schema.v0.json +77ac37c2dddf508511cbde591c04669dee88b674e5a96c55346ab0c3859c3a44 kernelspecs/javascript.svg +269dbffc9f6da7ec050f8842545913297253a0b1948c2096d4a1125eb726a1f0 lab/favicon.ico +2f53d6455a90296e127ab47009406b886ac034c1395a85d0f35bdd71cf74658f lab/index.html +a0be8c339022b0274d470e9cad95a2219990e9a52e3546fa1cfb03796e7ca271 lab/jupyter-lite.ipynb +16af44981003cdcacf052ea97053d74433898b3e4b3cfefddc8b76308a914199 lab/jupyter-lite.json +a2699c5d16d89cb45f07e1a6c89d32b5e020ef1062bda54ed2708cc9b7bb503a lab/package.json +a7895c1613b4b5f7d8862ec913159d71175145d6ad1f43bbb87cc0d37a888292 lab/tree/index.html +00c81a3b301fcee4ede5803e68a238348adbe096ac3000e62c6b7e44756903b5 lab/workspaces/index.html +914311af1964b53158390d84b5fb130814a8d6015d81d13169c07d78d979fe10 manifest.webmanifest +bdc9953d2d1269811c8c036354fc55cd7ee8a1ddc7cfe7e9ec539d339da91a02 package.json +a0f333b61345deb7991d26ff5d00d7d75b69e91cbfe23eebff8e45bc47019524 repl/index.html +a0be8c339022b0274d470e9cad95a2219990e9a52e3546fa1cfb03796e7ca271 repl/jupyter-lite.ipynb +16af44981003cdcacf052ea97053d74433898b3e4b3cfefddc8b76308a914199 repl/jupyter-lite.json +9e3d4935e10d93927d486c2f2880bd33b163f5a8fc130b269e8b612087ee8238 repl/package.json +4f3790b5ffd133fcabb8601cfd1b2b193e192d2c4561ee2e6893e2e473222e01 retro/consoles/favicon.ico +e6ad1a2bb87f7e1bf49f2cc1ff2d95d31c3a136ccdacd10d107fcb0a6975d8d2 retro/consoles/index.html +a0be8c339022b0274d470e9cad95a2219990e9a52e3546fa1cfb03796e7ca271 retro/consoles/jupyter-lite.ipynb +9b5af5ec9240a4f92845d8679eeb693113d5e2fdf094addd8a75346b10ad4605 retro/consoles/jupyter-lite.json +8d19ae451c9f411a6c60124ac750e3bee8719ff26f405de1c5abff629c51b329 retro/edit/favicon.ico +ed66eb70af1bd8bf499714aed4d0d21439e7d3468c590d6f2ebe611aa4965789 retro/edit/index.html +a0be8c339022b0274d470e9cad95a2219990e9a52e3546fa1cfb03796e7ca271 retro/edit/jupyter-lite.ipynb +7d1c468f1718e46075aee33164848a0a3e7db3efbc37c62280ca1093748cf0f3 retro/edit/jupyter-lite.json +c2638a89fde3633617ec624088730c1dbe4daf18d4f2e44729ece89df3e60176 retro/favicon.ico +8f8d0a6cc71ce3687662b5f4c9f1c73afa71046a6a8a86dc665e6bd056c5965c retro/index.html +a0be8c339022b0274d470e9cad95a2219990e9a52e3546fa1cfb03796e7ca271 retro/jupyter-lite.ipynb +f99c3873115ee2185aca6e974bacfb56cbd3089932a8acb7a07c197d18546729 retro/jupyter-lite.json +e3d7b23e611172246668523675a107764d13fe65d0110de3d399de851515fe1c retro/notebooks/favicon.ico +c22d29a7057ef601200e04bedc675ba3ba73ae9dd90d3a7c4fc73c809d43232d retro/notebooks/index.html +a0be8c339022b0274d470e9cad95a2219990e9a52e3546fa1cfb03796e7ca271 retro/notebooks/jupyter-lite.ipynb +694291933e0ebaa2512ecec7094dbf922d452964bffec062aa1313004698b70f retro/notebooks/jupyter-lite.json +c2fa8471b09dcaeac91f0537d37ddda8a0ea8909ce12c8edd78e799de689a056 retro/package.json +eaabb3eb432669ed2cf9768b639368447e24c0736245a23cbfe7de74a4ac6c3e retro/tree/index.html +a0be8c339022b0274d470e9cad95a2219990e9a52e3546fa1cfb03796e7ca271 retro/tree/jupyter-lite.ipynb +103c611e51e2af5b51a2b5984c3e0831063b548a65f0ba511d955024fc7c57ff retro/tree/jupyter-lite.json +ddb3ca2dce51cba09f2ffdb7574ec246498965a37ba83e816f5bb76f3e6a7ef2 service-worker-f7de73d.js +667f3e9f1646657dba450cd8bb05eb315e955c116152a20bf23cb7bdc46e5755 tree/index.html \ No newline at end of file diff --git a/_static/api/translations/all.json b/_static/api/translations/all.json new file mode 100644 index 0000000..0f1a90e --- /dev/null +++ b/_static/api/translations/all.json @@ -0,0 +1,9 @@ +{ + "data": { + "en": { + "displayName": "English", + "nativeName": "English" + } + }, + "message": "" +} \ No newline at end of file diff --git a/_static/api/translations/en.json b/_static/api/translations/en.json new file mode 100644 index 0000000..2d378ee --- /dev/null +++ b/_static/api/translations/en.json @@ -0,0 +1,4 @@ +{ + "data": {}, + "message": "" +} \ No newline at end of file diff --git a/_static/bootstrap.js b/_static/bootstrap.js new file mode 100644 index 0000000..917b4f5 --- /dev/null +++ b/_static/bootstrap.js @@ -0,0 +1,93 @@ +/*----------------------------------------------------------------------------- +| Copyright (c) Jupyter Development Team. +| Distributed under the terms of the Modified BSD License. +|----------------------------------------------------------------------------*/ + +// We copy some of the pageconfig parsing logic in @jupyterlab/coreutils +// below, since this must run before any other files are loaded (including +// @jupyterlab/coreutils). + +/** + * Get global configuration data for the Jupyter application. + * + * @param name - The name of the configuration option. + * + * @returns The config value or an empty string if not found. + * + * #### Notes + * All values are treated as strings. For browser based applications, it is + * assumed that the page HTML includes a script tag with the id + * `jupyter-config-data` containing the configuration as valid JSON. + */ + +let _CONFIG_DATA = null; +function getOption(name) { + if (_CONFIG_DATA === null) { + let configData = {}; + // Use script tag if available. + if (typeof document !== 'undefined' && document) { + const el = document.getElementById('jupyter-config-data'); + + if (el) { + configData = JSON.parse(el.textContent || '{}'); + } + } + _CONFIG_DATA = configData; + } + + return _CONFIG_DATA[name] || ''; +} + +// eslint-disable-next-line no-undef +__webpack_public_path__ = getOption('fullStaticUrl') + '/'; + +function loadScript(url) { + return new Promise((resolve, reject) => { + const newScript = document.createElement('script'); + newScript.onerror = reject; + newScript.onload = resolve; + newScript.async = true; + document.head.appendChild(newScript); + newScript.src = url; + }); +} + +async function loadComponent(url, scope) { + await loadScript(url); + + // From https://webpack.js.org/concepts/module-federation/#dynamic-remote-containers + await __webpack_init_sharing__('default'); + const container = window._JUPYTERLAB[scope]; + // Initialize the container, it may provide shared modules and may need ours + await container.init(__webpack_share_scopes__.default); +} + +void (async function bootstrap() { + // This is all the data needed to load and activate plugins. This should be + // gathered by the server and put onto the initial page template. + const extension_data = getOption('federated_extensions'); + + // We first load all federated components so that the shared module + // deduplication can run and figure out which shared modules from all + // components should be actually used. We have to do this before importing + // and using the module that actually uses these components so that all + // dependencies are initialized. + let labExtensionUrl = getOption('fullLabextensionsUrl'); + const extensions = await Promise.allSettled( + extension_data.map(async data => { + await loadComponent(`${labExtensionUrl}/${data.name}/${data.load}`, data.name); + }) + ); + + extensions.forEach(p => { + if (p.status === 'rejected') { + // There was an error loading the component + console.error(p.reason); + } + }); + + // Now that all federated containers are initialized with the main + // container, we can import the main function. + let main = (await import('./index.js')).main; + void main(); +})(); diff --git a/_static/build/1037.51967a2.js b/_static/build/1037.51967a2.js new file mode 100644 index 0000000..b0afdf0 --- /dev/null +++ b/_static/build/1037.51967a2.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[1037,9321],{49321:(t,e,s)=>{s.r(e),s.d(e,{IInspector:()=>C,InspectionHandler:()=>c,InspectorPanel:()=>u,KernelConnector:()=>g});var n=s(55941),i=s(20040),o=s(26169),r=s(61313),d=s(70942);class c{constructor(t){this._cleared=new d.Signal(this),this._disposed=new d.Signal(this),this._editor=null,this._inspected=new d.Signal(this),this._isDisposed=!1,this._pending=0,this._standby=!0,this._lastInspectedReply=null,this._connector=t.connector,this._rendermime=t.rendermime,this._debouncer=new r.Debouncer(this.onEditorChange.bind(this),250)}get cleared(){return this._cleared}get disposed(){return this._disposed}get inspected(){return this._inspected}get editor(){return this._editor}set editor(t){if(t===this._editor)return;d.Signal.disconnectReceiver(this);const e=this._editor=t;e&&(this._cleared.emit(void 0),this.onEditorChange(),e.model.selections.changed.connect(this._onChange,this),e.model.value.changed.connect(this._onChange,this))}get standby(){return this._standby}set standby(t){this._standby=t}get isDisposed(){return this._isDisposed}dispose(){this.isDisposed||(this._isDisposed=!0,this._debouncer.dispose(),this._disposed.emit(void 0),d.Signal.clearData(this))}onEditorChange(t){if(this._standby)return;const e=this.editor;if(!e)return;const s=t||e.model.value.text,r=e.getCursorPosition(),d=n.Text.jsIndexToCharIndex(e.getOffsetAt(r),s),c={content:null},a=++this._pending;this._connector.fetch({offset:d,text:s}).then((t=>{if(!t||this.isDisposed||a!==this._pending)return this._lastInspectedReply=null,void this._inspected.emit(c);const{data:e}=t;if(this._lastInspectedReply&&o.JSONExt.deepEqual(this._lastInspectedReply,e))return;const s=this._rendermime.preferredMimeType(e);if(s){const t=this._rendermime.createRenderer(s),n=new i.MimeModel({data:e});t.renderModel(n),c.content=t}this._lastInspectedReply=t.data,this._inspected.emit(c)})).catch((t=>{this._lastInspectedReply=null,this._inspected.emit(c)}))}_onChange(){this._debouncer.invoke()}}var a=s(2814),h=s(4265),l=s(94519);const p="jp-Inspector-content";class u extends l.Panel{constructor(t={}){super(),this._source=null,this.translator=t.translator||h.nullTranslator,this._trans=this.translator.load("jupyterlab"),t.initialContent instanceof l.Widget?this._content=t.initialContent:"string"==typeof t.initialContent?this._content=u._generateContentWidget(`

${t.initialContent}

`):this._content=u._generateContentWidget("

"+this._trans.__("Click on a function to see documentation.")+"

"),this.addClass("jp-Inspector"),this.layout.addWidget(this._content)}[a.Printing.symbol](){return()=>a.Printing.printWidget(this)}get source(){return this._source}set source(t){this._source!==t&&(this._source&&(this._source.standby=!0,this._source.inspected.disconnect(this.onInspectorUpdate,this),this._source.disposed.disconnect(this.onSourceDisposed,this)),t&&t.isDisposed&&(t=null),this._source=t,this._source&&(this._source.standby=!1,this._source.inspected.connect(this.onInspectorUpdate,this),this._source.disposed.connect(this.onSourceDisposed,this)))}dispose(){this.isDisposed||(this.source=null,super.dispose())}onInspectorUpdate(t,e){const{content:s}=e;s&&s!==this._content&&(this._content.dispose(),this._content=s,s.addClass(p),this.layout.addWidget(s))}onSourceDisposed(t,e){this.source=null}static _generateContentWidget(t){const e=new l.Widget;return e.node.innerHTML=t,e.addClass(p),e.addClass("jp-Inspector-default-content"),e}}var _=s(63050);class g extends _.DataConnector{constructor(t){super(),this._sessionContext=t.sessionContext}fetch(t){var e;const s=null===(e=this._sessionContext.session)||void 0===e?void 0:e.kernel;if(!s)return Promise.reject(new Error("Inspection fetch requires a kernel."));const n={code:t.text,cursor_pos:t.offset,detail_level:1};return s.requestInspect(n).then((t=>{const e=t.content;if("ok"!==e.status||!e.found)throw new Error("Inspection fetch failed to return successfully.");return{data:e.data,metadata:e.metadata}}))}}const C=new o.Token("@jupyterlab/inspector:IInspector")}}]); +//# sourceMappingURL=1037.51967a2.js.map \ No newline at end of file diff --git a/_static/build/1037.51967a2.js.map b/_static/build/1037.51967a2.js.map new file mode 100644 index 0000000..7820d18 --- /dev/null +++ b/_static/build/1037.51967a2.js.map @@ -0,0 +1 @@ +{"version":3,"file":"1037.51967a2.js","mappings":"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","sources":["webpack://_JUPYTERLAB.CORE_OUTPUT/../src/handler.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/inspector.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/kernelconnector.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/tokens.ts"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/_static/build/1079.cdbaf67.js b/_static/build/1079.cdbaf67.js new file mode 100644 index 0000000..7b23c00 --- /dev/null +++ b/_static/build/1079.cdbaf67.js @@ -0,0 +1,2 @@ +(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[1079],{11079:function(t,e,o){!function(t){"use strict";var e="undefined"!=typeof window?window:void 0!==o.g?o.g:"undefined"!=typeof self?self:{},r=function(t,e){if(e=e.split(":")[0],!(t=+t))return!1;switch(e){case"http":case"ws":return 80!==t;case"https":case"wss":return 443!==t;case"ftp":return 21!==t;case"gopher":return 70!==t;case"file":return!1}return 0!==t},n=Object.prototype.hasOwnProperty;function i(t){try{return decodeURIComponent(t.replace(/\+/g," "))}catch(t){return null}}function s(t){try{return encodeURIComponent(t)}catch(t){return null}}var a={stringify:function(t,e){e=e||"";var o,r,i=[];for(r in"string"!=typeof e&&(e="?"),t)if(n.call(t,r)){if((o=t[r])||null!=o&&!isNaN(o)||(o=""),r=s(r),o=s(o),null===r||null===o)continue;i.push(r+"="+o)}return i.length?e+i.join("&"):""},parse:function(t){for(var e,o=/([^=?#&]+)=?([^&]*)/g,r={};e=o.exec(t);){var n=i(e[1]),s=i(e[2]);null===n||null===s||n in r||(r[n]=s)}return r}},c=/^[A-Za-z][A-Za-z0-9+-.]*:\/\//,p=/^([a-z][a-z0-9.+-]*:)?(\/\/)?([\\/]+)?([\S\s]*)/i,u=new RegExp("^[\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF]+");function h(t){return(t||"").toString().replace(u,"")}var l=[["#","hash"],["?","query"],function(t,e){return y(e.protocol)?t.replace(/\\/g,"/"):t},["/","pathname"],["@","auth",1],[NaN,"host",void 0,1,1],[/:(\d+)$/,"port",void 0,1],[NaN,"hostname",void 0,1,1]],f={hash:1,query:1};function d(t){var o,r=("undefined"!=typeof window?window:void 0!==e?e:"undefined"!=typeof self?self:{}).location||{},n={},i=typeof(t=t||r);if("blob:"===t.protocol)n=new E(unescape(t.pathname),{});else if("string"===i)for(o in n=new E(t,{}),f)delete n[o];else if("object"===i){for(o in t)o in f||(n[o]=t[o]);void 0===n.slashes&&(n.slashes=c.test(t.href))}return n}function y(t){return"file:"===t||"ftp:"===t||"http:"===t||"https:"===t||"ws:"===t||"wss:"===t}function v(t,e){t=h(t),e=e||{};var o,r=p.exec(t),n=r[1]?r[1].toLowerCase():"",i=!!r[2],s=!!r[3],a=0;return i?s?(o=r[2]+r[3]+r[4],a=r[2].length+r[3].length):(o=r[2]+r[4],a=r[2].length):s?(o=r[3]+r[4],a=r[3].length):o=r[4],"file:"===n?a>=2&&(o=o.slice(2)):y(n)?o=r[4]:n?i&&(o=o.slice(2)):a>=2&&y(e.protocol)&&(o=r[4]),{protocol:n,slashes:i||y(n),slashesCount:a,rest:o}}function E(t,e,o){if(t=h(t),!(this instanceof E))return new E(t,e,o);var n,i,s,c,p,u,f=l.slice(),b=typeof e,g=this,m=0;for("object"!==b&&"string"!==b&&(o=e,e=null),o&&"function"!=typeof o&&(o=a.parse),n=!(i=v(t||"",e=d(e))).protocol&&!i.slashes,g.slashes=i.slashes||n&&e.slashes,g.protocol=i.protocol||e.protocol||"",t=i.rest,("file:"===g.protocol||!i.slashes&&(i.protocol||i.slashesCount<2||!y(g.protocol)))&&(f[3]=[/(.*)/,"pathname"]);m=0?t.slice(0,e):t}w.prototype.addEventListener=function(t,e){"function"==typeof e&&(Array.isArray(this.listeners[t])||(this.listeners[t]=[]),0===function(t,e){void 0===t&&(t=[]);var o=[];return t.forEach((function(t){e(t)&&o.push(t)})),o}(this.listeners[t],(function(t){return t===e})).length&&this.listeners[t].push(e))},w.prototype.removeEventListener=function(t,e){var o=this.listeners[t];this.listeners[t]=S(o,(function(t){return t===e}))},w.prototype.dispatchEvent=function(t){for(var e=this,o=[],r=arguments.length-1;r-- >0;)o[r]=arguments[r+1];var n=t.type,i=this.listeners[n];return!!Array.isArray(i)&&(i.forEach((function(r){o.length>0?r.apply(e,o):r.call(e,t)})),!0)};var C=function(){this.urlMap={}};C.prototype.attachWebSocket=function(t,e){var o=O(e),r=this.urlMap[o];if(r&&r.server&&-1===r.websockets.indexOf(t))return r.websockets.push(t),r.server},C.prototype.addMembershipToRoom=function(t,e){var o=this.urlMap[O(t.url)];o&&o.server&&-1!==o.websockets.indexOf(t)&&(o.roomMemberships[e]||(o.roomMemberships[e]=[]),o.roomMemberships[e].push(t))},C.prototype.attachServer=function(t,e){var o=O(e);if(!this.urlMap[o])return this.urlMap[o]={server:t,websockets:[],roomMemberships:{}},t},C.prototype.serverLookup=function(t){var e=O(t),o=this.urlMap[e];if(o)return o.server},C.prototype.websocketsLookup=function(t,e,o){var r,n=O(t),i=this.urlMap[n];return r=i?i.websockets:[],e&&(r=i.roomMemberships[e]||[]),o?r.filter((function(t){return t!==o})):r},C.prototype.removeServer=function(t){delete this.urlMap[O(t)]},C.prototype.removeWebSocket=function(t,e){var o=O(e),r=this.urlMap[o];r&&(r.websockets=S(r.websockets,(function(e){return e===t})))},C.prototype.removeMembershipFromRoom=function(t,e){var o=this.urlMap[O(t.url)],r=o.roomMemberships[e];o&&null!==r&&(o.roomMemberships[e]=S(r,(function(e){return e===t})))};var k=new C,L=1e3,R=1005,T=1006,N={CONSTRUCTOR_ERROR:"Failed to construct 'WebSocket':",CLOSE_ERROR:"Failed to execute 'close' on 'WebSocket':",EVENT:{CONSTRUCT:"Failed to construct 'Event':",MESSAGE:"Failed to construct 'MessageEvent':",CLOSE:"Failed to construct 'CloseEvent':"}},_=function(){};_.prototype.stopPropagation=function(){},_.prototype.stopImmediatePropagation=function(){},_.prototype.initEvent=function(t,e,o){void 0===t&&(t="undefined"),void 0===e&&(e=!1),void 0===o&&(o=!1),this.type=""+t,this.bubbles=Boolean(e),this.cancelable=Boolean(o)};var A=function(t){function e(e,o){if(void 0===o&&(o={}),t.call(this),!e)throw new TypeError(N.EVENT_ERROR+" 1 argument required, but only 0 present.");if("object"!=typeof o)throw new TypeError(N.EVENT_ERROR+" parameter 2 ('eventInitDict') is not an object.");var r=o.bubbles,n=o.cancelable;this.type=""+e,this.timeStamp=Date.now(),this.target=null,this.srcElement=null,this.returnValue=!0,this.isTrusted=!1,this.eventPhase=0,this.defaultPrevented=!1,this.currentTarget=null,this.cancelable=!!n&&Boolean(n),this.cancelBubble=!1,this.bubbles=!!r&&Boolean(r)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(_),I=function(t){function e(e,o){if(void 0===o&&(o={}),t.call(this),!e)throw new TypeError(N.EVENT.MESSAGE+" 1 argument required, but only 0 present.");if("object"!=typeof o)throw new TypeError(N.EVENT.MESSAGE+" parameter 2 ('eventInitDict') is not an object");var r=o.bubbles,n=o.cancelable,i=o.data,s=o.origin,a=o.lastEventId,c=o.ports;this.type=""+e,this.timeStamp=Date.now(),this.target=null,this.srcElement=null,this.returnValue=!0,this.isTrusted=!1,this.eventPhase=0,this.defaultPrevented=!1,this.currentTarget=null,this.cancelable=!!n&&Boolean(n),this.canncelBubble=!1,this.bubbles=!!r&&Boolean(r),this.origin=""+s,this.ports=void 0===c?null:c,this.data=void 0===i?null:i,this.lastEventId=""+(a||"")}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(_),P=function(t){function e(e,o){if(void 0===o&&(o={}),t.call(this),!e)throw new TypeError(N.EVENT.CLOSE+" 1 argument required, but only 0 present.");if("object"!=typeof o)throw new TypeError(N.EVENT.CLOSE+" parameter 2 ('eventInitDict') is not an object");var r=o.bubbles,n=o.cancelable,i=o.code,s=o.reason,a=o.wasClean;this.type=""+e,this.timeStamp=Date.now(),this.target=null,this.srcElement=null,this.returnValue=!0,this.isTrusted=!1,this.eventPhase=0,this.defaultPrevented=!1,this.currentTarget=null,this.cancelable=!!n&&Boolean(n),this.cancelBubble=!1,this.bubbles=!!r&&Boolean(r),this.code="number"==typeof i?parseInt(i,10):0,this.reason=""+(s||""),this.wasClean=!!a&&Boolean(a)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(_);function j(t){var e=t.type,o=t.target,r=new A(e);return o&&(r.target=o,r.srcElement=o,r.currentTarget=o),r}function W(t){var e=t.type,o=t.origin,r=t.data,n=t.target,i=new I(e,{data:r,origin:o});return n&&(i.target=n,i.srcElement=n,i.currentTarget=n),i}function x(t){var e=t.code,o=t.reason,r=t.type,n=t.target,i=t.wasClean;i||(i=e===L||e===R);var s=new P(r,{code:e,reason:o,wasClean:i});return n&&(s.target=n,s.srcElement=n,s.currentTarget=n),s}function M(t,e,o){t.readyState=B.CLOSING;var r=k.serverLookup(t.url),n=x({type:"close",target:t.target,code:e,reason:o}),i=x({type:"server::close",target:t,code:e,reason:o});g((function(){k.removeWebSocket(t,t.url),t.readyState=B.CLOSED,t.dispatchEvent(n),t.dispatchEvent(i),r&&r.dispatchEvent(n,r)}),t)}function D(t){return"[object Blob]"===Object.prototype.toString.call(t)||t instanceof ArrayBuffer||(t=String(t)),t}var U=new WeakMap;function G(t){if(U.has(t))return U.get(t);var e=new Proxy(t,{get:function(o,r){return"close"===r?function(t){void 0===t&&(t={});var o=t.code||L,r=t.reason||"";M(e,o,r)}:"send"===r?function(e){e=D(e),t.dispatchEvent(W({type:"message",data:e,origin:this.url,target:t}))}:"on"===r?function(e,o){t.addEventListener("server::"+e,o)}:"target"===r?t:o[r]}});return U.set(t,e),e}var B=function(t){function e(o,r){t.call(this),this._onopen=null,this._onmessage=null,this._onerror=null,this._onclose=null,this.url=function(t){var e=new b(t),o=e.pathname,r=e.protocol,n=e.hash;if(!t)throw new TypeError(N.CONSTRUCTOR_ERROR+" 1 argument required, but only 0 present.");if(o||(e.pathname="/"),""===r)throw new SyntaxError(N.CONSTRUCTOR_ERROR+" The URL '"+e.toString()+"' is invalid.");if("ws:"!==r&&"wss:"!==r)throw new SyntaxError(N.CONSTRUCTOR_ERROR+" The URL's scheme must be either 'ws' or 'wss'. '"+r+"' is not allowed.");if(""!==n)throw new SyntaxError(N.CONSTRUCTOR_ERROR+" The URL contains a fragment identifier ('"+n+"'). Fragment identifiers are not allowed in WebSocket URLs.");return e.toString()}(o),r=function(t){if(void 0===t&&(t=[]),!Array.isArray(t)&&"string"!=typeof t)throw new SyntaxError(N.CONSTRUCTOR_ERROR+" The subprotocol '"+t.toString()+"' is invalid.");"string"==typeof t&&(t=[t]);var e=t.map((function(t){return{count:1,protocol:t}})).reduce((function(t,e){return t[e.protocol]=(t[e.protocol]||0)+e.count,t}),{}),o=Object.keys(e).filter((function(t){return e[t]>1}));if(o.length>0)throw new SyntaxError(N.CONSTRUCTOR_ERROR+" The subprotocol '"+o[0]+"' is duplicated.");return t}(r),this.protocol=r[0]||"",this.binaryType="blob",this.readyState=e.CONNECTING;var n=G(this),i=k.attachWebSocket(n,this.url);g((function(){if(i)if(i.options.verifyClient&&"function"==typeof i.options.verifyClient&&!i.options.verifyClient())this.readyState=e.CLOSED,m("error","WebSocket connection to '"+this.url+"' failed: HTTP Authentication failed; no valid credentials available"),k.removeWebSocket(n,this.url),this.dispatchEvent(j({type:"error",target:this})),this.dispatchEvent(x({type:"close",target:this,code:L}));else{if(i.options.selectProtocol&&"function"==typeof i.options.selectProtocol){var t=i.options.selectProtocol(r),o=""!==t,s=-1!==r.indexOf(t);if(o&&!s)return this.readyState=e.CLOSED,m("error","WebSocket connection to '"+this.url+"' failed: Invalid Sub-Protocol"),k.removeWebSocket(n,this.url),this.dispatchEvent(j({type:"error",target:this})),void this.dispatchEvent(x({type:"close",target:this,code:L}));this.protocol=t}this.readyState=e.OPEN,this.dispatchEvent(j({type:"open",target:this})),i.dispatchEvent(j({type:"connection"}),n)}else this.readyState=e.CLOSED,this.dispatchEvent(j({type:"error",target:this})),this.dispatchEvent(x({type:"close",target:this,code:L})),m("error","WebSocket connection to '"+this.url+"' failed")}),this)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var o={onopen:{},onmessage:{},onclose:{},onerror:{}};return o.onopen.get=function(){return this._onopen},o.onmessage.get=function(){return this._onmessage},o.onclose.get=function(){return this._onclose},o.onerror.get=function(){return this._onerror},o.onopen.set=function(t){this.removeEventListener("open",this._onopen),this._onopen=t,this.addEventListener("open",t)},o.onmessage.set=function(t){this.removeEventListener("message",this._onmessage),this._onmessage=t,this.addEventListener("message",t)},o.onclose.set=function(t){this.removeEventListener("close",this._onclose),this._onclose=t,this.addEventListener("close",t)},o.onerror.set=function(t){this.removeEventListener("error",this._onerror),this._onerror=t,this.addEventListener("error",t)},e.prototype.send=function(t){var o=this;if(this.readyState===e.CLOSING||this.readyState===e.CLOSED)throw new Error("WebSocket is already in CLOSING or CLOSED state");var r=W({type:"server::message",origin:this.url,data:D(t)}),n=k.serverLookup(this.url);n&&g((function(){o.dispatchEvent(r,t)}),n)},e.prototype.close=function(t,o){if(void 0!==t&&("number"!=typeof t||1e3!==t&&(t<3e3||t>4999)))throw new TypeError(N.CLOSE_ERROR+" The code must be either 1000, or between 3000 and 4999. "+t+" is neither.");if(void 0!==o&&(r=o,n=encodeURIComponent(r).match(/%[89ABab]/g),r.length+(n?n.length:0)>123))throw new SyntaxError(N.CLOSE_ERROR+" The message must not be greater than 123 bytes.");var r,n;if(this.readyState!==e.CLOSING&&this.readyState!==e.CLOSED){var i=G(this);this.readyState===e.CONNECTING?function(t,e,o){t.readyState=B.CLOSING;var r=k.serverLookup(t.url),n=x({type:"close",target:t.target,code:e,reason:o,wasClean:!1}),i=x({type:"server::close",target:t,code:e,reason:o,wasClean:!1}),s=j({type:"error",target:t.target});g((function(){k.removeWebSocket(t,t.url),t.readyState=B.CLOSED,t.dispatchEvent(s),t.dispatchEvent(n),t.dispatchEvent(i),r&&r.dispatchEvent(n,r)}),t)}(i,t||T,o):M(i,t||R,o)}},Object.defineProperties(e.prototype,o),e}(w);B.CONNECTING=0,B.prototype.CONNECTING=B.CONNECTING,B.OPEN=1,B.prototype.OPEN=B.OPEN,B.CLOSING=2,B.prototype.CLOSING=B.CLOSING,B.CLOSED=3,B.prototype.CLOSED=B.CLOSED;function q(){return"undefined"!=typeof window?window:"object"==typeof o.g?o.g:this}var F={mock:!0,verifyClient:null,selectProtocol:null},V=function(t){function e(e,o){void 0===o&&(o=F),t.call(this);var r=new b(e);if(r.pathname||(r.pathname="/"),this.url=r.toString(),this.originalWebSocket=null,!k.attachServer(this,this.url))throw this.dispatchEvent(j({type:"error"})),new Error("A mock server is already listening on this url");this.options=Object.assign({},F,o),this.options.mock&&this.mockWebsocket()}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.mockWebsocket=function(){var t=q();this.originalWebSocket=t.WebSocket,t.WebSocket=B},e.prototype.restoreWebsocket=function(){var t=q();null!==this.originalWebSocket&&(t.WebSocket=this.originalWebSocket),this.originalWebSocket=null},e.prototype.stop=function(t){void 0===t&&(t=function(){}),this.options.mock&&this.restoreWebsocket(),k.removeServer(this.url),"function"==typeof t&&t()},e.prototype.on=function(t,e){this.addEventListener(t,e)},e.prototype.close=function(t){void 0===t&&(t={});var e=t.code,o=t.reason,r=t.wasClean,n=k.websocketsLookup(this.url);k.removeServer(this.url),n.forEach((function(t){t.readyState=B.CLOSED,t.dispatchEvent(x({type:"close",target:t.target,code:e||L,reason:o||"",wasClean:r}))})),this.dispatchEvent(x({type:"close"}),this)},e.prototype.emit=function(t,e,o){var r=this;void 0===o&&(o={});var n=o.websockets;n||(n=k.websocketsLookup(this.url)),e="object"!=typeof o||arguments.length>3?(e=Array.prototype.slice.call(arguments,1,arguments.length)).map((function(t){return D(t)})):D(e),n.forEach((function(o){Array.isArray(e)?o.dispatchEvent.apply(o,[W({type:t,data:e,origin:r.url,target:o.target})].concat(e)):o.dispatchEvent(W({type:t,data:e,origin:r.url,target:o.target}))}))},e.prototype.clients=function(){return k.websocketsLookup(this.url)},e.prototype.to=function(t,e,o){var r=this;void 0===o&&(o=[]);var n=this,i=o.concat(k.websocketsLookup(this.url,t,e)).reduce((function(t,e){return t.indexOf(e)>-1?t:t.concat(e)}),[]);return{to:function(t,e){return r.to.call(r,t,e,i)},emit:function(t,e){n.emit(t,e,{websockets:i})}}},e.prototype.in=function(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];return this.to.apply(null,t)},e.prototype.simulate=function(t){var e=k.websocketsLookup(this.url);"error"===t&&e.forEach((function(t){t.readyState=B.CLOSED,t.dispatchEvent(j({type:"error"}))}))},e}(w);V.of=function(t){return new V(t)};var z=function(t){function e(o,r){var n=this;void 0===o&&(o="socket.io"),void 0===r&&(r=""),t.call(this),this.binaryType="blob";var i=new b(o);i.pathname||(i.pathname="/"),this.url=i.toString(),this.readyState=e.CONNECTING,this.protocol="",this.target=this,"string"==typeof r||"object"==typeof r&&null!==r?this.protocol=r:Array.isArray(r)&&r.length>0&&(this.protocol=r[0]);var s=k.attachWebSocket(this,this.url);g((function(){s?(this.readyState=e.OPEN,s.dispatchEvent(j({type:"connection"}),s,this),s.dispatchEvent(j({type:"connect"}),s,this),this.dispatchEvent(j({type:"connect",target:this}))):(this.readyState=e.CLOSED,this.dispatchEvent(j({type:"error",target:this})),this.dispatchEvent(x({type:"close",target:this,code:L})),m("error","Socket.io connection to '"+this.url+"' failed"))}),this),this.addEventListener("close",(function(t){n.dispatchEvent(x({type:"disconnect",target:t.target,code:t.code}))}))}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var o={broadcast:{}};return e.prototype.close=function(){if(this.readyState===e.OPEN){var t=k.serverLookup(this.url);return k.removeWebSocket(this,this.url),this.readyState=e.CLOSED,this.dispatchEvent(x({type:"close",target:this,code:L})),t&&t.dispatchEvent(x({type:"disconnect",target:this,code:L}),t),this}},e.prototype.disconnect=function(){return this.close()},e.prototype.emit=function(t){for(var o=[],r=arguments.length-1;r-- >0;)o[r]=arguments[r+1];if(this.readyState!==e.OPEN)throw new Error("SocketIO is already in CLOSING or CLOSED state");var n=W({type:t,origin:this.url,data:o}),i=k.serverLookup(this.url);return i&&i.dispatchEvent.apply(i,[n].concat(o)),this},e.prototype.send=function(t){return this.emit("message",t),this},o.broadcast.get=function(){if(this.readyState!==e.OPEN)throw new Error("SocketIO is already in CLOSING or CLOSED state");var t=this,o=k.serverLookup(this.url);if(!o)throw new Error("SocketIO can not find a server at the specified URL ("+this.url+")");return{emit:function(e,r){return o.emit(e,r,{websockets:k.websocketsLookup(t.url,null,t)}),t},to:function(e){return o.to(e,t)},in:function(e){return o.in(e,t)}}},e.prototype.on=function(t,e){return this.addEventListener(t,e),this},e.prototype.off=function(t,e){this.removeEventListener(t,e)},e.prototype.hasListeners=function(t){var e=this.listeners[t];return!!Array.isArray(e)&&!!e.length},e.prototype.join=function(t){k.addMembershipToRoom(this,t)},e.prototype.leave=function(t){k.removeMembershipFromRoom(this,t)},e.prototype.to=function(t){return this.broadcast.to(t)},e.prototype.in=function(){return this.to.apply(null,arguments)},e.prototype.dispatchEvent=function(t){for(var e=this,o=[],r=arguments.length-1;r-- >0;)o[r]=arguments[r+1];var n=t.type,i=this.listeners[n];if(!Array.isArray(i))return!1;i.forEach((function(r){o.length>0?r.apply(e,o):r.call(e,t.data?t.data:t)}))},Object.defineProperties(e.prototype,o),e}(w);z.CONNECTING=0,z.OPEN=1,z.CLOSING=2,z.CLOSED=3;var J=function(t,e){return new z(t,e)};J.connect=function(t,e){return J(t,e)};var Y=V,Z=B,$=J;t.Server=Y,t.WebSocket=Z,t.SocketIO=$,Object.defineProperty(t,"__esModule",{value:!0})}(e)}}]); +//# sourceMappingURL=1079.cdbaf67.js.map \ No newline at end of file diff --git a/_static/build/1079.cdbaf67.js.map b/_static/build/1079.cdbaf67.js.map new file mode 100644 index 0000000..26731cc --- /dev/null +++ b/_static/build/1079.cdbaf67.js.map @@ -0,0 +1 @@ +{"version":3,"file":"1079.cdbaf67.js","mappings":"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","sources":["webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/mock-socket/dist/mock-socket.js"],"sourcesContent":["(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n\ttypeof define === 'function' && define.amd ? define(['exports'], factory) :\n\t(factory((global.Mock = global.Mock || {})));\n}(this, (function (exports) { 'use strict';\n\nvar commonjsGlobal = typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\n\n/**\n * Check if we're required to add a port number.\n *\n * @see https://url.spec.whatwg.org/#default-port\n * @param {Number|String} port Port number we need to check\n * @param {String} protocol Protocol we need to check against.\n * @returns {Boolean} Is it a default port for the given protocol\n * @api private\n */\nvar requiresPort = function required(port, protocol) {\n protocol = protocol.split(':')[0];\n port = +port;\n\n if (!port) { return false; }\n\n switch (protocol) {\n case 'http':\n case 'ws':\n return port !== 80;\n\n case 'https':\n case 'wss':\n return port !== 443;\n\n case 'ftp':\n return port !== 21;\n\n case 'gopher':\n return port !== 70;\n\n case 'file':\n return false;\n }\n\n return port !== 0;\n};\n\nvar has = Object.prototype.hasOwnProperty;\nvar undef;\n\n/**\n * Decode a URI encoded string.\n *\n * @param {String} input The URI encoded string.\n * @returns {String|Null} The decoded string.\n * @api private\n */\nfunction decode(input) {\n try {\n return decodeURIComponent(input.replace(/\\+/g, ' '));\n } catch (e) {\n return null;\n }\n}\n\n/**\n * Attempts to encode a given input.\n *\n * @param {String} input The string that needs to be encoded.\n * @returns {String|Null} The encoded string.\n * @api private\n */\nfunction encode(input) {\n try {\n return encodeURIComponent(input);\n } catch (e) {\n return null;\n }\n}\n\n/**\n * Simple query string parser.\n *\n * @param {String} query The query string that needs to be parsed.\n * @returns {Object}\n * @api public\n */\nfunction querystring(query) {\n var parser = /([^=?#&]+)=?([^&]*)/g\n , result = {}\n , part;\n\n while (part = parser.exec(query)) {\n var key = decode(part[1])\n , value = decode(part[2]);\n\n //\n // Prevent overriding of existing properties. This ensures that build-in\n // methods like `toString` or __proto__ are not overriden by malicious\n // querystrings.\n //\n // In the case if failed decoding, we want to omit the key/value pairs\n // from the result.\n //\n if (key === null || value === null || key in result) { continue; }\n result[key] = value;\n }\n\n return result;\n}\n\n/**\n * Transform a query string to an object.\n *\n * @param {Object} obj Object that should be transformed.\n * @param {String} prefix Optional prefix.\n * @returns {String}\n * @api public\n */\nfunction querystringify(obj, prefix) {\n prefix = prefix || '';\n\n var pairs = []\n , value\n , key;\n\n //\n // Optionally prefix with a '?' if needed\n //\n if ('string' !== typeof prefix) { prefix = '?'; }\n\n for (key in obj) {\n if (has.call(obj, key)) {\n value = obj[key];\n\n //\n // Edge cases where we actually want to encode the value to an empty\n // string instead of the stringified value.\n //\n if (!value && (value === null || value === undef || isNaN(value))) {\n value = '';\n }\n\n key = encode(key);\n value = encode(value);\n\n //\n // If we failed to encode the strings, we should bail out as we don't\n // want to add invalid strings to the query.\n //\n if (key === null || value === null) { continue; }\n pairs.push(key +'='+ value);\n }\n }\n\n return pairs.length ? prefix + pairs.join('&') : '';\n}\n\n//\n// Expose the module.\n//\nvar stringify = querystringify;\nvar parse = querystring;\n\nvar querystringify_1 = {\n\tstringify: stringify,\n\tparse: parse\n};\n\nvar slashes = /^[A-Za-z][A-Za-z0-9+-.]*:\\/\\//;\nvar protocolre = /^([a-z][a-z0-9.+-]*:)?(\\/\\/)?([\\\\/]+)?([\\S\\s]*)/i;\nvar whitespace = '[\\\\x09\\\\x0A\\\\x0B\\\\x0C\\\\x0D\\\\x20\\\\xA0\\\\u1680\\\\u180E\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200A\\\\u202F\\\\u205F\\\\u3000\\\\u2028\\\\u2029\\\\uFEFF]';\nvar left = new RegExp('^'+ whitespace +'+');\n\n/**\n * Trim a given string.\n *\n * @param {String} str String to trim.\n * @public\n */\nfunction trimLeft(str) {\n return (str ? str : '').toString().replace(left, '');\n}\n\n/**\n * These are the parse rules for the URL parser, it informs the parser\n * about:\n *\n * 0. The char it Needs to parse, if it's a string it should be done using\n * indexOf, RegExp using exec and NaN means set as current value.\n * 1. The property we should set when parsing this value.\n * 2. Indication if it's backwards or forward parsing, when set as number it's\n * the value of extra chars that should be split off.\n * 3. Inherit from location if non existing in the parser.\n * 4. `toLowerCase` the resulting value.\n */\nvar rules = [\n ['#', 'hash'], // Extract from the back.\n ['?', 'query'], // Extract from the back.\n function sanitize(address, url) { // Sanitize what is left of the address\n return isSpecial(url.protocol) ? address.replace(/\\\\/g, '/') : address;\n },\n ['/', 'pathname'], // Extract from the back.\n ['@', 'auth', 1], // Extract from the front.\n [NaN, 'host', undefined, 1, 1], // Set left over value.\n [/:(\\d+)$/, 'port', undefined, 1], // RegExp the back.\n [NaN, 'hostname', undefined, 1, 1] // Set left over.\n];\n\n/**\n * These properties should not be copied or inherited from. This is only needed\n * for all non blob URL's as a blob URL does not include a hash, only the\n * origin.\n *\n * @type {Object}\n * @private\n */\nvar ignore = { hash: 1, query: 1 };\n\n/**\n * The location object differs when your code is loaded through a normal page,\n * Worker or through a worker using a blob. And with the blobble begins the\n * trouble as the location object will contain the URL of the blob, not the\n * location of the page where our code is loaded in. The actual origin is\n * encoded in the `pathname` so we can thankfully generate a good \"default\"\n * location from it so we can generate proper relative URL's again.\n *\n * @param {Object|String} loc Optional default location object.\n * @returns {Object} lolcation object.\n * @public\n */\nfunction lolcation(loc) {\n var globalVar;\n\n if (typeof window !== 'undefined') { globalVar = window; }\n else if (typeof commonjsGlobal !== 'undefined') { globalVar = commonjsGlobal; }\n else if (typeof self !== 'undefined') { globalVar = self; }\n else { globalVar = {}; }\n\n var location = globalVar.location || {};\n loc = loc || location;\n\n var finaldestination = {}\n , type = typeof loc\n , key;\n\n if ('blob:' === loc.protocol) {\n finaldestination = new Url(unescape(loc.pathname), {});\n } else if ('string' === type) {\n finaldestination = new Url(loc, {});\n for (key in ignore) { delete finaldestination[key]; }\n } else if ('object' === type) {\n for (key in loc) {\n if (key in ignore) { continue; }\n finaldestination[key] = loc[key];\n }\n\n if (finaldestination.slashes === undefined) {\n finaldestination.slashes = slashes.test(loc.href);\n }\n }\n\n return finaldestination;\n}\n\n/**\n * Check whether a protocol scheme is special.\n *\n * @param {String} The protocol scheme of the URL\n * @return {Boolean} `true` if the protocol scheme is special, else `false`\n * @private\n */\nfunction isSpecial(scheme) {\n return (\n scheme === 'file:' ||\n scheme === 'ftp:' ||\n scheme === 'http:' ||\n scheme === 'https:' ||\n scheme === 'ws:' ||\n scheme === 'wss:'\n );\n}\n\n/**\n * @typedef ProtocolExtract\n * @type Object\n * @property {String} protocol Protocol matched in the URL, in lowercase.\n * @property {Boolean} slashes `true` if protocol is followed by \"//\", else `false`.\n * @property {String} rest Rest of the URL that is not part of the protocol.\n */\n\n/**\n * Extract protocol information from a URL with/without double slash (\"//\").\n *\n * @param {String} address URL we want to extract from.\n * @param {Object} location\n * @return {ProtocolExtract} Extracted information.\n * @private\n */\nfunction extractProtocol(address, location) {\n address = trimLeft(address);\n location = location || {};\n\n var match = protocolre.exec(address);\n var protocol = match[1] ? match[1].toLowerCase() : '';\n var forwardSlashes = !!match[2];\n var otherSlashes = !!match[3];\n var slashesCount = 0;\n var rest;\n\n if (forwardSlashes) {\n if (otherSlashes) {\n rest = match[2] + match[3] + match[4];\n slashesCount = match[2].length + match[3].length;\n } else {\n rest = match[2] + match[4];\n slashesCount = match[2].length;\n }\n } else {\n if (otherSlashes) {\n rest = match[3] + match[4];\n slashesCount = match[3].length;\n } else {\n rest = match[4];\n }\n }\n\n if (protocol === 'file:') {\n if (slashesCount >= 2) {\n rest = rest.slice(2);\n }\n } else if (isSpecial(protocol)) {\n rest = match[4];\n } else if (protocol) {\n if (forwardSlashes) {\n rest = rest.slice(2);\n }\n } else if (slashesCount >= 2 && isSpecial(location.protocol)) {\n rest = match[4];\n }\n\n return {\n protocol: protocol,\n slashes: forwardSlashes || isSpecial(protocol),\n slashesCount: slashesCount,\n rest: rest\n };\n}\n\n/**\n * Resolve a relative URL pathname against a base URL pathname.\n *\n * @param {String} relative Pathname of the relative URL.\n * @param {String} base Pathname of the base URL.\n * @return {String} Resolved pathname.\n * @private\n */\nfunction resolve(relative, base) {\n if (relative === '') { return base; }\n\n var path = (base || '/').split('/').slice(0, -1).concat(relative.split('/'))\n , i = path.length\n , last = path[i - 1]\n , unshift = false\n , up = 0;\n\n while (i--) {\n if (path[i] === '.') {\n path.splice(i, 1);\n } else if (path[i] === '..') {\n path.splice(i, 1);\n up++;\n } else if (up) {\n if (i === 0) { unshift = true; }\n path.splice(i, 1);\n up--;\n }\n }\n\n if (unshift) { path.unshift(''); }\n if (last === '.' || last === '..') { path.push(''); }\n\n return path.join('/');\n}\n\n/**\n * The actual URL instance. Instead of returning an object we've opted-in to\n * create an actual constructor as it's much more memory efficient and\n * faster and it pleases my OCD.\n *\n * It is worth noting that we should not use `URL` as class name to prevent\n * clashes with the global URL instance that got introduced in browsers.\n *\n * @constructor\n * @param {String} address URL we want to parse.\n * @param {Object|String} [location] Location defaults for relative paths.\n * @param {Boolean|Function} [parser] Parser for the query string.\n * @private\n */\nfunction Url(address, location, parser) {\n address = trimLeft(address);\n\n if (!(this instanceof Url)) {\n return new Url(address, location, parser);\n }\n\n var relative, extracted, parse, instruction, index, key\n , instructions = rules.slice()\n , type = typeof location\n , url = this\n , i = 0;\n\n //\n // The following if statements allows this module two have compatibility with\n // 2 different API:\n //\n // 1. Node.js's `url.parse` api which accepts a URL, boolean as arguments\n // where the boolean indicates that the query string should also be parsed.\n //\n // 2. The `URL` interface of the browser which accepts a URL, object as\n // arguments. The supplied object will be used as default values / fall-back\n // for relative paths.\n //\n if ('object' !== type && 'string' !== type) {\n parser = location;\n location = null;\n }\n\n if (parser && 'function' !== typeof parser) { parser = querystringify_1.parse; }\n\n location = lolcation(location);\n\n //\n // Extract protocol information before running the instructions.\n //\n extracted = extractProtocol(address || '', location);\n relative = !extracted.protocol && !extracted.slashes;\n url.slashes = extracted.slashes || relative && location.slashes;\n url.protocol = extracted.protocol || location.protocol || '';\n address = extracted.rest;\n\n //\n // When the authority component is absent the URL starts with a path\n // component.\n //\n if (\n url.protocol === 'file:' ||\n (!extracted.slashes &&\n (extracted.protocol ||\n extracted.slashesCount < 2 ||\n !isSpecial(url.protocol)))\n ) {\n instructions[3] = [/(.*)/, 'pathname'];\n }\n\n for (; i < instructions.length; i++) {\n instruction = instructions[i];\n\n if (typeof instruction === 'function') {\n address = instruction(address, url);\n continue;\n }\n\n parse = instruction[0];\n key = instruction[1];\n\n if (parse !== parse) {\n url[key] = address;\n } else if ('string' === typeof parse) {\n if (~(index = address.indexOf(parse))) {\n if ('number' === typeof instruction[2]) {\n url[key] = address.slice(0, index);\n address = address.slice(index + instruction[2]);\n } else {\n url[key] = address.slice(index);\n address = address.slice(0, index);\n }\n }\n } else if ((index = parse.exec(address))) {\n url[key] = index[1];\n address = address.slice(0, index.index);\n }\n\n url[key] = url[key] || (\n relative && instruction[3] ? location[key] || '' : ''\n );\n\n //\n // Hostname, host and protocol should be lowercased so they can be used to\n // create a proper `origin`.\n //\n if (instruction[4]) { url[key] = url[key].toLowerCase(); }\n }\n\n //\n // Also parse the supplied query string in to an object. If we're supplied\n // with a custom parser as function use that instead of the default build-in\n // parser.\n //\n if (parser) { url.query = parser(url.query); }\n\n //\n // If the URL is relative, resolve the pathname against the base URL.\n //\n if (\n relative\n && location.slashes\n && url.pathname.charAt(0) !== '/'\n && (url.pathname !== '' || location.pathname !== '')\n ) {\n url.pathname = resolve(url.pathname, location.pathname);\n }\n\n //\n // Default to a / for pathname if none exists. This normalizes the URL\n // to always have a /\n //\n if (url.pathname.charAt(0) !== '/' && isSpecial(url.protocol)) {\n url.pathname = '/' + url.pathname;\n }\n\n //\n // We should not add port numbers if they are already the default port number\n // for a given protocol. As the host also contains the port number we're going\n // override it with the hostname which contains no port number.\n //\n if (!requiresPort(url.port, url.protocol)) {\n url.host = url.hostname;\n url.port = '';\n }\n\n //\n // Parse down the `auth` for the username and password.\n //\n url.username = url.password = '';\n if (url.auth) {\n instruction = url.auth.split(':');\n url.username = instruction[0] || '';\n url.password = instruction[1] || '';\n }\n\n url.origin = url.protocol !== 'file:' && isSpecial(url.protocol) && url.host\n ? url.protocol +'//'+ url.host\n : 'null';\n\n //\n // The href is just the compiled result.\n //\n url.href = url.toString();\n}\n\n/**\n * This is convenience method for changing properties in the URL instance to\n * insure that they all propagate correctly.\n *\n * @param {String} part Property we need to adjust.\n * @param {Mixed} value The newly assigned value.\n * @param {Boolean|Function} fn When setting the query, it will be the function\n * used to parse the query.\n * When setting the protocol, double slash will be\n * removed from the final url if it is true.\n * @returns {URL} URL instance for chaining.\n * @public\n */\nfunction set(part, value, fn) {\n var url = this;\n\n switch (part) {\n case 'query':\n if ('string' === typeof value && value.length) {\n value = (fn || querystringify_1.parse)(value);\n }\n\n url[part] = value;\n break;\n\n case 'port':\n url[part] = value;\n\n if (!requiresPort(value, url.protocol)) {\n url.host = url.hostname;\n url[part] = '';\n } else if (value) {\n url.host = url.hostname +':'+ value;\n }\n\n break;\n\n case 'hostname':\n url[part] = value;\n\n if (url.port) { value += ':'+ url.port; }\n url.host = value;\n break;\n\n case 'host':\n url[part] = value;\n\n if (/:\\d+$/.test(value)) {\n value = value.split(':');\n url.port = value.pop();\n url.hostname = value.join(':');\n } else {\n url.hostname = value;\n url.port = '';\n }\n\n break;\n\n case 'protocol':\n url.protocol = value.toLowerCase();\n url.slashes = !fn;\n break;\n\n case 'pathname':\n case 'hash':\n if (value) {\n var char = part === 'pathname' ? '/' : '#';\n url[part] = value.charAt(0) !== char ? char + value : value;\n } else {\n url[part] = value;\n }\n break;\n\n default:\n url[part] = value;\n }\n\n for (var i = 0; i < rules.length; i++) {\n var ins = rules[i];\n\n if (ins[4]) { url[ins[1]] = url[ins[1]].toLowerCase(); }\n }\n\n url.origin = url.protocol !== 'file:' && isSpecial(url.protocol) && url.host\n ? url.protocol +'//'+ url.host\n : 'null';\n\n url.href = url.toString();\n\n return url;\n}\n\n/**\n * Transform the properties back in to a valid and full URL string.\n *\n * @param {Function} stringify Optional query stringify function.\n * @returns {String} Compiled version of the URL.\n * @public\n */\nfunction toString(stringify) {\n if (!stringify || 'function' !== typeof stringify) { stringify = querystringify_1.stringify; }\n\n var query\n , url = this\n , protocol = url.protocol;\n\n if (protocol && protocol.charAt(protocol.length - 1) !== ':') { protocol += ':'; }\n\n var result = protocol + (url.slashes || isSpecial(url.protocol) ? '//' : '');\n\n if (url.username) {\n result += url.username;\n if (url.password) { result += ':'+ url.password; }\n result += '@';\n }\n\n result += url.host + url.pathname;\n\n query = 'object' === typeof url.query ? stringify(url.query) : url.query;\n if (query) { result += '?' !== query.charAt(0) ? '?'+ query : query; }\n\n if (url.hash) { result += url.hash; }\n\n return result;\n}\n\nUrl.prototype = { set: set, toString: toString };\n\n//\n// Expose the URL parser and some additional properties that might be useful for\n// others or testing.\n//\nUrl.extractProtocol = extractProtocol;\nUrl.location = lolcation;\nUrl.trimLeft = trimLeft;\nUrl.qs = querystringify_1;\n\nvar urlParse = Url;\n\n/*\n * This delay allows the thread to finish assigning its on* methods\n * before invoking the delay callback. This is purely a timing hack.\n * http://geekabyte.blogspot.com/2014/01/javascript-effect-of-setting-settimeout.html\n *\n * @param {callback: function} the callback which will be invoked after the timeout\n * @parma {context: object} the context in which to invoke the function\n */\nfunction delay(callback, context) {\n setTimeout(function (timeoutContext) { return callback.call(timeoutContext); }, 4, context);\n}\n\nfunction log(method, message) {\n /* eslint-disable no-console */\n if (typeof process !== 'undefined' && process.env.NODE_ENV !== 'test') {\n console[method].call(null, message);\n }\n /* eslint-enable no-console */\n}\n\nfunction reject(array, callback) {\n if ( array === void 0 ) array = [];\n\n var results = [];\n array.forEach(function (itemInArray) {\n if (!callback(itemInArray)) {\n results.push(itemInArray);\n }\n });\n\n return results;\n}\n\nfunction filter(array, callback) {\n if ( array === void 0 ) array = [];\n\n var results = [];\n array.forEach(function (itemInArray) {\n if (callback(itemInArray)) {\n results.push(itemInArray);\n }\n });\n\n return results;\n}\n\n/*\n * EventTarget is an interface implemented by objects that can\n * receive events and may have listeners for them.\n *\n * https://developer.mozilla.org/en-US/docs/Web/API/EventTarget\n */\nvar EventTarget = function EventTarget() {\n this.listeners = {};\n};\n\n/*\n * Ties a listener function to an event type which can later be invoked via the\n * dispatchEvent method.\n *\n * @param {string} type - the type of event (ie: 'open', 'message', etc.)\n * @param {function} listener - callback function to invoke when an event is dispatched matching the type\n * @param {boolean} useCapture - N/A TODO: implement useCapture functionality\n */\nEventTarget.prototype.addEventListener = function addEventListener (type, listener /* , useCapture */) {\n if (typeof listener === 'function') {\n if (!Array.isArray(this.listeners[type])) {\n this.listeners[type] = [];\n }\n\n // Only add the same function once\n if (filter(this.listeners[type], function (item) { return item === listener; }).length === 0) {\n this.listeners[type].push(listener);\n }\n }\n};\n\n/*\n * Removes the listener so it will no longer be invoked via the dispatchEvent method.\n *\n * @param {string} type - the type of event (ie: 'open', 'message', etc.)\n * @param {function} listener - callback function to invoke when an event is dispatched matching the type\n * @param {boolean} useCapture - N/A TODO: implement useCapture functionality\n */\nEventTarget.prototype.removeEventListener = function removeEventListener (type, removingListener /* , useCapture */) {\n var arrayOfListeners = this.listeners[type];\n this.listeners[type] = reject(arrayOfListeners, function (listener) { return listener === removingListener; });\n};\n\n/*\n * Invokes all listener functions that are listening to the given event.type property. Each\n * listener will be passed the event as the first argument.\n *\n * @param {object} event - event object which will be passed to all listeners of the event.type property\n */\nEventTarget.prototype.dispatchEvent = function dispatchEvent (event) {\n var this$1 = this;\n var customArguments = [], len = arguments.length - 1;\n while ( len-- > 0 ) customArguments[ len ] = arguments[ len + 1 ];\n\n var eventName = event.type;\n var listeners = this.listeners[eventName];\n\n if (!Array.isArray(listeners)) {\n return false;\n }\n\n listeners.forEach(function (listener) {\n if (customArguments.length > 0) {\n listener.apply(this$1, customArguments);\n } else {\n listener.call(this$1, event);\n }\n });\n\n return true;\n};\n\nfunction trimQueryPartFromURL(url) {\n var queryIndex = url.indexOf('?');\n return queryIndex >= 0 ? url.slice(0, queryIndex) : url;\n}\n\n/*\n * The network bridge is a way for the mock websocket object to 'communicate' with\n * all available servers. This is a singleton object so it is important that you\n * clean up urlMap whenever you are finished.\n */\nvar NetworkBridge = function NetworkBridge() {\n this.urlMap = {};\n};\n\n/*\n * Attaches a websocket object to the urlMap hash so that it can find the server\n * it is connected to and the server in turn can find it.\n *\n * @param {object} websocket - websocket object to add to the urlMap hash\n * @param {string} url\n */\nNetworkBridge.prototype.attachWebSocket = function attachWebSocket (websocket, url) {\n var serverURL = trimQueryPartFromURL(url);\n var connectionLookup = this.urlMap[serverURL];\n\n if (connectionLookup && connectionLookup.server && connectionLookup.websockets.indexOf(websocket) === -1) {\n connectionLookup.websockets.push(websocket);\n return connectionLookup.server;\n }\n};\n\n/*\n * Attaches a websocket to a room\n */\nNetworkBridge.prototype.addMembershipToRoom = function addMembershipToRoom (websocket, room) {\n var connectionLookup = this.urlMap[trimQueryPartFromURL(websocket.url)];\n\n if (connectionLookup && connectionLookup.server && connectionLookup.websockets.indexOf(websocket) !== -1) {\n if (!connectionLookup.roomMemberships[room]) {\n connectionLookup.roomMemberships[room] = [];\n }\n\n connectionLookup.roomMemberships[room].push(websocket);\n }\n};\n\n/*\n * Attaches a server object to the urlMap hash so that it can find a websockets\n * which are connected to it and so that websockets can in turn can find it.\n *\n * @param {object} server - server object to add to the urlMap hash\n * @param {string} url\n */\nNetworkBridge.prototype.attachServer = function attachServer (server, url) {\n var serverUrl = trimQueryPartFromURL(url);\n var connectionLookup = this.urlMap[serverUrl];\n\n if (!connectionLookup) {\n this.urlMap[serverUrl] = {\n server: server,\n websockets: [],\n roomMemberships: {}\n };\n\n return server;\n }\n};\n\n/*\n * Finds the server which is 'running' on the given url.\n *\n * @param {string} url - the url to use to find which server is running on it\n */\nNetworkBridge.prototype.serverLookup = function serverLookup (url) {\n var serverURL = trimQueryPartFromURL(url);\n var connectionLookup = this.urlMap[serverURL];\n\n if (connectionLookup) {\n return connectionLookup.server;\n }\n};\n\n/*\n * Finds all websockets which is 'listening' on the given url.\n *\n * @param {string} url - the url to use to find all websockets which are associated with it\n * @param {string} room - if a room is provided, will only return sockets in this room\n * @param {class} broadcaster - socket that is broadcasting and is to be excluded from the lookup\n */\nNetworkBridge.prototype.websocketsLookup = function websocketsLookup (url, room, broadcaster) {\n var serverURL = trimQueryPartFromURL(url);\n var websockets;\n var connectionLookup = this.urlMap[serverURL];\n\n websockets = connectionLookup ? connectionLookup.websockets : [];\n\n if (room) {\n var members = connectionLookup.roomMemberships[room];\n websockets = members || [];\n }\n\n return broadcaster ? websockets.filter(function (websocket) { return websocket !== broadcaster; }) : websockets;\n};\n\n/*\n * Removes the entry associated with the url.\n *\n * @param {string} url\n */\nNetworkBridge.prototype.removeServer = function removeServer (url) {\n delete this.urlMap[trimQueryPartFromURL(url)];\n};\n\n/*\n * Removes the individual websocket from the map of associated websockets.\n *\n * @param {object} websocket - websocket object to remove from the url map\n * @param {string} url\n */\nNetworkBridge.prototype.removeWebSocket = function removeWebSocket (websocket, url) {\n var serverURL = trimQueryPartFromURL(url);\n var connectionLookup = this.urlMap[serverURL];\n\n if (connectionLookup) {\n connectionLookup.websockets = reject(connectionLookup.websockets, function (socket) { return socket === websocket; });\n }\n};\n\n/*\n * Removes a websocket from a room\n */\nNetworkBridge.prototype.removeMembershipFromRoom = function removeMembershipFromRoom (websocket, room) {\n var connectionLookup = this.urlMap[trimQueryPartFromURL(websocket.url)];\n var memberships = connectionLookup.roomMemberships[room];\n\n if (connectionLookup && memberships !== null) {\n connectionLookup.roomMemberships[room] = reject(memberships, function (socket) { return socket === websocket; });\n }\n};\n\nvar networkBridge = new NetworkBridge(); // Note: this is a singleton\n\n/*\n * https://developer.mozilla.org/en-US/docs/Web/API/CloseEvent\n */\nvar CLOSE_CODES = {\n CLOSE_NORMAL: 1000,\n CLOSE_GOING_AWAY: 1001,\n CLOSE_PROTOCOL_ERROR: 1002,\n CLOSE_UNSUPPORTED: 1003,\n CLOSE_NO_STATUS: 1005,\n CLOSE_ABNORMAL: 1006,\n UNSUPPORTED_DATA: 1007,\n POLICY_VIOLATION: 1008,\n CLOSE_TOO_LARGE: 1009,\n MISSING_EXTENSION: 1010,\n INTERNAL_ERROR: 1011,\n SERVICE_RESTART: 1012,\n TRY_AGAIN_LATER: 1013,\n TLS_HANDSHAKE: 1015\n};\n\nvar ERROR_PREFIX = {\n CONSTRUCTOR_ERROR: \"Failed to construct 'WebSocket':\",\n CLOSE_ERROR: \"Failed to execute 'close' on 'WebSocket':\",\n EVENT: {\n CONSTRUCT: \"Failed to construct 'Event':\",\n MESSAGE: \"Failed to construct 'MessageEvent':\",\n CLOSE: \"Failed to construct 'CloseEvent':\"\n }\n};\n\nvar EventPrototype = function EventPrototype () {};\n\nEventPrototype.prototype.stopPropagation = function stopPropagation () {};\nEventPrototype.prototype.stopImmediatePropagation = function stopImmediatePropagation () {};\n\n// if no arguments are passed then the type is set to \"undefined\" on\n// chrome and safari.\nEventPrototype.prototype.initEvent = function initEvent (type, bubbles, cancelable) {\n if ( type === void 0 ) type = 'undefined';\n if ( bubbles === void 0 ) bubbles = false;\n if ( cancelable === void 0 ) cancelable = false;\n\n this.type = \"\" + type;\n this.bubbles = Boolean(bubbles);\n this.cancelable = Boolean(cancelable);\n};\n\nvar Event = (function (EventPrototype$$1) {\n function Event(type, eventInitConfig) {\n if ( eventInitConfig === void 0 ) eventInitConfig = {};\n\n EventPrototype$$1.call(this);\n\n if (!type) {\n throw new TypeError(((ERROR_PREFIX.EVENT_ERROR) + \" 1 argument required, but only 0 present.\"));\n }\n\n if (typeof eventInitConfig !== 'object') {\n throw new TypeError(((ERROR_PREFIX.EVENT_ERROR) + \" parameter 2 ('eventInitDict') is not an object.\"));\n }\n\n var bubbles = eventInitConfig.bubbles;\n var cancelable = eventInitConfig.cancelable;\n\n this.type = \"\" + type;\n this.timeStamp = Date.now();\n this.target = null;\n this.srcElement = null;\n this.returnValue = true;\n this.isTrusted = false;\n this.eventPhase = 0;\n this.defaultPrevented = false;\n this.currentTarget = null;\n this.cancelable = cancelable ? Boolean(cancelable) : false;\n this.cancelBubble = false;\n this.bubbles = bubbles ? Boolean(bubbles) : false;\n }\n\n if ( EventPrototype$$1 ) Event.__proto__ = EventPrototype$$1;\n Event.prototype = Object.create( EventPrototype$$1 && EventPrototype$$1.prototype );\n Event.prototype.constructor = Event;\n\n return Event;\n}(EventPrototype));\n\nvar MessageEvent = (function (EventPrototype$$1) {\n function MessageEvent(type, eventInitConfig) {\n if ( eventInitConfig === void 0 ) eventInitConfig = {};\n\n EventPrototype$$1.call(this);\n\n if (!type) {\n throw new TypeError(((ERROR_PREFIX.EVENT.MESSAGE) + \" 1 argument required, but only 0 present.\"));\n }\n\n if (typeof eventInitConfig !== 'object') {\n throw new TypeError(((ERROR_PREFIX.EVENT.MESSAGE) + \" parameter 2 ('eventInitDict') is not an object\"));\n }\n\n var bubbles = eventInitConfig.bubbles;\n var cancelable = eventInitConfig.cancelable;\n var data = eventInitConfig.data;\n var origin = eventInitConfig.origin;\n var lastEventId = eventInitConfig.lastEventId;\n var ports = eventInitConfig.ports;\n\n this.type = \"\" + type;\n this.timeStamp = Date.now();\n this.target = null;\n this.srcElement = null;\n this.returnValue = true;\n this.isTrusted = false;\n this.eventPhase = 0;\n this.defaultPrevented = false;\n this.currentTarget = null;\n this.cancelable = cancelable ? Boolean(cancelable) : false;\n this.canncelBubble = false;\n this.bubbles = bubbles ? Boolean(bubbles) : false;\n this.origin = \"\" + origin;\n this.ports = typeof ports === 'undefined' ? null : ports;\n this.data = typeof data === 'undefined' ? null : data;\n this.lastEventId = \"\" + (lastEventId || '');\n }\n\n if ( EventPrototype$$1 ) MessageEvent.__proto__ = EventPrototype$$1;\n MessageEvent.prototype = Object.create( EventPrototype$$1 && EventPrototype$$1.prototype );\n MessageEvent.prototype.constructor = MessageEvent;\n\n return MessageEvent;\n}(EventPrototype));\n\nvar CloseEvent = (function (EventPrototype$$1) {\n function CloseEvent(type, eventInitConfig) {\n if ( eventInitConfig === void 0 ) eventInitConfig = {};\n\n EventPrototype$$1.call(this);\n\n if (!type) {\n throw new TypeError(((ERROR_PREFIX.EVENT.CLOSE) + \" 1 argument required, but only 0 present.\"));\n }\n\n if (typeof eventInitConfig !== 'object') {\n throw new TypeError(((ERROR_PREFIX.EVENT.CLOSE) + \" parameter 2 ('eventInitDict') is not an object\"));\n }\n\n var bubbles = eventInitConfig.bubbles;\n var cancelable = eventInitConfig.cancelable;\n var code = eventInitConfig.code;\n var reason = eventInitConfig.reason;\n var wasClean = eventInitConfig.wasClean;\n\n this.type = \"\" + type;\n this.timeStamp = Date.now();\n this.target = null;\n this.srcElement = null;\n this.returnValue = true;\n this.isTrusted = false;\n this.eventPhase = 0;\n this.defaultPrevented = false;\n this.currentTarget = null;\n this.cancelable = cancelable ? Boolean(cancelable) : false;\n this.cancelBubble = false;\n this.bubbles = bubbles ? Boolean(bubbles) : false;\n this.code = typeof code === 'number' ? parseInt(code, 10) : 0;\n this.reason = \"\" + (reason || '');\n this.wasClean = wasClean ? Boolean(wasClean) : false;\n }\n\n if ( EventPrototype$$1 ) CloseEvent.__proto__ = EventPrototype$$1;\n CloseEvent.prototype = Object.create( EventPrototype$$1 && EventPrototype$$1.prototype );\n CloseEvent.prototype.constructor = CloseEvent;\n\n return CloseEvent;\n}(EventPrototype));\n\n/*\n * Creates an Event object and extends it to allow full modification of\n * its properties.\n *\n * @param {object} config - within config you will need to pass type and optionally target\n */\nfunction createEvent(config) {\n var type = config.type;\n var target = config.target;\n var eventObject = new Event(type);\n\n if (target) {\n eventObject.target = target;\n eventObject.srcElement = target;\n eventObject.currentTarget = target;\n }\n\n return eventObject;\n}\n\n/*\n * Creates a MessageEvent object and extends it to allow full modification of\n * its properties.\n *\n * @param {object} config - within config: type, origin, data and optionally target\n */\nfunction createMessageEvent(config) {\n var type = config.type;\n var origin = config.origin;\n var data = config.data;\n var target = config.target;\n var messageEvent = new MessageEvent(type, {\n data: data,\n origin: origin\n });\n\n if (target) {\n messageEvent.target = target;\n messageEvent.srcElement = target;\n messageEvent.currentTarget = target;\n }\n\n return messageEvent;\n}\n\n/*\n * Creates a CloseEvent object and extends it to allow full modification of\n * its properties.\n *\n * @param {object} config - within config: type and optionally target, code, and reason\n */\nfunction createCloseEvent(config) {\n var code = config.code;\n var reason = config.reason;\n var type = config.type;\n var target = config.target;\n var wasClean = config.wasClean;\n\n if (!wasClean) {\n wasClean = code === CLOSE_CODES.CLOSE_NORMAL || code === CLOSE_CODES.CLOSE_NO_STATUS;\n }\n\n var closeEvent = new CloseEvent(type, {\n code: code,\n reason: reason,\n wasClean: wasClean\n });\n\n if (target) {\n closeEvent.target = target;\n closeEvent.srcElement = target;\n closeEvent.currentTarget = target;\n }\n\n return closeEvent;\n}\n\nfunction closeWebSocketConnection(context, code, reason) {\n context.readyState = WebSocket$1.CLOSING;\n\n var server = networkBridge.serverLookup(context.url);\n var closeEvent = createCloseEvent({\n type: 'close',\n target: context.target,\n code: code,\n reason: reason\n });\n var serverCloseEvent = createCloseEvent({\n type: 'server::close',\n target: context,\n code: code,\n reason: reason\n });\n\n delay(function () {\n networkBridge.removeWebSocket(context, context.url);\n\n context.readyState = WebSocket$1.CLOSED;\n context.dispatchEvent(closeEvent);\n context.dispatchEvent(serverCloseEvent);\n\n if (server) {\n server.dispatchEvent(closeEvent, server);\n }\n }, context);\n}\n\nfunction failWebSocketConnection(context, code, reason) {\n context.readyState = WebSocket$1.CLOSING;\n\n var server = networkBridge.serverLookup(context.url);\n var closeEvent = createCloseEvent({\n type: 'close',\n target: context.target,\n code: code,\n reason: reason,\n wasClean: false\n });\n var serverCloseEvent = createCloseEvent({\n type: 'server::close',\n target: context,\n code: code,\n reason: reason,\n wasClean: false\n });\n\n var errorEvent = createEvent({\n type: 'error',\n target: context.target\n });\n\n delay(function () {\n networkBridge.removeWebSocket(context, context.url);\n\n context.readyState = WebSocket$1.CLOSED;\n context.dispatchEvent(errorEvent);\n context.dispatchEvent(closeEvent);\n context.dispatchEvent(serverCloseEvent);\n\n if (server) {\n server.dispatchEvent(closeEvent, server);\n }\n }, context);\n}\n\nfunction normalizeSendData(data) {\n if (Object.prototype.toString.call(data) !== '[object Blob]' && !(data instanceof ArrayBuffer)) {\n data = String(data);\n }\n\n return data;\n}\n\nvar proxies = new WeakMap();\n\nfunction proxyFactory(target) {\n if (proxies.has(target)) {\n return proxies.get(target);\n }\n\n var proxy = new Proxy(target, {\n get: function get(obj, prop) {\n if (prop === 'close') {\n return function close(options) {\n if ( options === void 0 ) options = {};\n\n var code = options.code || CLOSE_CODES.CLOSE_NORMAL;\n var reason = options.reason || '';\n\n closeWebSocketConnection(proxy, code, reason);\n };\n }\n\n if (prop === 'send') {\n return function send(data) {\n data = normalizeSendData(data);\n\n target.dispatchEvent(\n createMessageEvent({\n type: 'message',\n data: data,\n origin: this.url,\n target: target\n })\n );\n };\n }\n\n if (prop === 'on') {\n return function onWrapper(type, cb) {\n target.addEventListener((\"server::\" + type), cb);\n };\n }\n\n if (prop === 'target') {\n return target;\n }\n\n return obj[prop];\n }\n });\n proxies.set(target, proxy);\n\n return proxy;\n}\n\nfunction lengthInUtf8Bytes(str) {\n // Matches only the 10.. bytes that are non-initial characters in a multi-byte sequence.\n var m = encodeURIComponent(str).match(/%[89ABab]/g);\n return str.length + (m ? m.length : 0);\n}\n\nfunction urlVerification(url) {\n var urlRecord = new urlParse(url);\n var pathname = urlRecord.pathname;\n var protocol = urlRecord.protocol;\n var hash = urlRecord.hash;\n\n if (!url) {\n throw new TypeError(((ERROR_PREFIX.CONSTRUCTOR_ERROR) + \" 1 argument required, but only 0 present.\"));\n }\n\n if (!pathname) {\n urlRecord.pathname = '/';\n }\n\n if (protocol === '') {\n throw new SyntaxError(((ERROR_PREFIX.CONSTRUCTOR_ERROR) + \" The URL '\" + (urlRecord.toString()) + \"' is invalid.\"));\n }\n\n if (protocol !== 'ws:' && protocol !== 'wss:') {\n throw new SyntaxError(\n ((ERROR_PREFIX.CONSTRUCTOR_ERROR) + \" The URL's scheme must be either 'ws' or 'wss'. '\" + protocol + \"' is not allowed.\")\n );\n }\n\n if (hash !== '') {\n /* eslint-disable max-len */\n throw new SyntaxError(\n ((ERROR_PREFIX.CONSTRUCTOR_ERROR) + \" The URL contains a fragment identifier ('\" + hash + \"'). Fragment identifiers are not allowed in WebSocket URLs.\")\n );\n /* eslint-enable max-len */\n }\n\n return urlRecord.toString();\n}\n\nfunction protocolVerification(protocols) {\n if ( protocols === void 0 ) protocols = [];\n\n if (!Array.isArray(protocols) && typeof protocols !== 'string') {\n throw new SyntaxError(((ERROR_PREFIX.CONSTRUCTOR_ERROR) + \" The subprotocol '\" + (protocols.toString()) + \"' is invalid.\"));\n }\n\n if (typeof protocols === 'string') {\n protocols = [protocols];\n }\n\n var uniq = protocols\n .map(function (p) { return ({ count: 1, protocol: p }); })\n .reduce(function (a, b) {\n a[b.protocol] = (a[b.protocol] || 0) + b.count;\n return a;\n }, {});\n\n var duplicates = Object.keys(uniq).filter(function (a) { return uniq[a] > 1; });\n\n if (duplicates.length > 0) {\n throw new SyntaxError(((ERROR_PREFIX.CONSTRUCTOR_ERROR) + \" The subprotocol '\" + (duplicates[0]) + \"' is duplicated.\"));\n }\n\n return protocols;\n}\n\n/*\n * The main websocket class which is designed to mimick the native WebSocket class as close\n * as possible.\n *\n * https://html.spec.whatwg.org/multipage/web-sockets.html\n */\nvar WebSocket$1 = (function (EventTarget$$1) {\n function WebSocket(url, protocols) {\n EventTarget$$1.call(this);\n\n this._onopen = null;\n this._onmessage = null;\n this._onerror = null;\n this._onclose = null;\n\n this.url = urlVerification(url);\n protocols = protocolVerification(protocols);\n this.protocol = protocols[0] || '';\n\n this.binaryType = 'blob';\n this.readyState = WebSocket.CONNECTING;\n\n var client = proxyFactory(this);\n var server = networkBridge.attachWebSocket(client, this.url);\n\n /*\n * This delay is needed so that we dont trigger an event before the callbacks have been\n * setup. For example:\n *\n * var socket = new WebSocket('ws://localhost');\n *\n * If we dont have the delay then the event would be triggered right here and this is\n * before the onopen had a chance to register itself.\n *\n * socket.onopen = () => { // this would never be called };\n *\n * and with the delay the event gets triggered here after all of the callbacks have been\n * registered :-)\n */\n delay(function delayCallback() {\n if (server) {\n if (\n server.options.verifyClient &&\n typeof server.options.verifyClient === 'function' &&\n !server.options.verifyClient()\n ) {\n this.readyState = WebSocket.CLOSED;\n\n log(\n 'error',\n (\"WebSocket connection to '\" + (this.url) + \"' failed: HTTP Authentication failed; no valid credentials available\")\n );\n\n networkBridge.removeWebSocket(client, this.url);\n this.dispatchEvent(createEvent({ type: 'error', target: this }));\n this.dispatchEvent(createCloseEvent({ type: 'close', target: this, code: CLOSE_CODES.CLOSE_NORMAL }));\n } else {\n if (server.options.selectProtocol && typeof server.options.selectProtocol === 'function') {\n var selectedProtocol = server.options.selectProtocol(protocols);\n var isFilled = selectedProtocol !== '';\n var isRequested = protocols.indexOf(selectedProtocol) !== -1;\n if (isFilled && !isRequested) {\n this.readyState = WebSocket.CLOSED;\n\n log('error', (\"WebSocket connection to '\" + (this.url) + \"' failed: Invalid Sub-Protocol\"));\n\n networkBridge.removeWebSocket(client, this.url);\n this.dispatchEvent(createEvent({ type: 'error', target: this }));\n this.dispatchEvent(createCloseEvent({ type: 'close', target: this, code: CLOSE_CODES.CLOSE_NORMAL }));\n return;\n }\n this.protocol = selectedProtocol;\n }\n this.readyState = WebSocket.OPEN;\n this.dispatchEvent(createEvent({ type: 'open', target: this }));\n server.dispatchEvent(createEvent({ type: 'connection' }), client);\n }\n } else {\n this.readyState = WebSocket.CLOSED;\n this.dispatchEvent(createEvent({ type: 'error', target: this }));\n this.dispatchEvent(createCloseEvent({ type: 'close', target: this, code: CLOSE_CODES.CLOSE_NORMAL }));\n\n log('error', (\"WebSocket connection to '\" + (this.url) + \"' failed\"));\n }\n }, this);\n }\n\n if ( EventTarget$$1 ) WebSocket.__proto__ = EventTarget$$1;\n WebSocket.prototype = Object.create( EventTarget$$1 && EventTarget$$1.prototype );\n WebSocket.prototype.constructor = WebSocket;\n\n var prototypeAccessors = { onopen: {},onmessage: {},onclose: {},onerror: {} };\n\n prototypeAccessors.onopen.get = function () {\n return this._onopen;\n };\n\n prototypeAccessors.onmessage.get = function () {\n return this._onmessage;\n };\n\n prototypeAccessors.onclose.get = function () {\n return this._onclose;\n };\n\n prototypeAccessors.onerror.get = function () {\n return this._onerror;\n };\n\n prototypeAccessors.onopen.set = function (listener) {\n this.removeEventListener('open', this._onopen);\n this._onopen = listener;\n this.addEventListener('open', listener);\n };\n\n prototypeAccessors.onmessage.set = function (listener) {\n this.removeEventListener('message', this._onmessage);\n this._onmessage = listener;\n this.addEventListener('message', listener);\n };\n\n prototypeAccessors.onclose.set = function (listener) {\n this.removeEventListener('close', this._onclose);\n this._onclose = listener;\n this.addEventListener('close', listener);\n };\n\n prototypeAccessors.onerror.set = function (listener) {\n this.removeEventListener('error', this._onerror);\n this._onerror = listener;\n this.addEventListener('error', listener);\n };\n\n WebSocket.prototype.send = function send (data) {\n var this$1 = this;\n\n if (this.readyState === WebSocket.CLOSING || this.readyState === WebSocket.CLOSED) {\n throw new Error('WebSocket is already in CLOSING or CLOSED state');\n }\n\n // TODO: handle bufferedAmount\n\n var messageEvent = createMessageEvent({\n type: 'server::message',\n origin: this.url,\n data: normalizeSendData(data)\n });\n\n var server = networkBridge.serverLookup(this.url);\n\n if (server) {\n delay(function () {\n this$1.dispatchEvent(messageEvent, data);\n }, server);\n }\n };\n\n WebSocket.prototype.close = function close (code, reason) {\n if (code !== undefined) {\n if (typeof code !== 'number' || (code !== 1000 && (code < 3000 || code > 4999))) {\n throw new TypeError(\n ((ERROR_PREFIX.CLOSE_ERROR) + \" The code must be either 1000, or between 3000 and 4999. \" + code + \" is neither.\")\n );\n }\n }\n\n if (reason !== undefined) {\n var length = lengthInUtf8Bytes(reason);\n\n if (length > 123) {\n throw new SyntaxError(((ERROR_PREFIX.CLOSE_ERROR) + \" The message must not be greater than 123 bytes.\"));\n }\n }\n\n if (this.readyState === WebSocket.CLOSING || this.readyState === WebSocket.CLOSED) {\n return;\n }\n\n var client = proxyFactory(this);\n if (this.readyState === WebSocket.CONNECTING) {\n failWebSocketConnection(client, code || CLOSE_CODES.CLOSE_ABNORMAL, reason);\n } else {\n closeWebSocketConnection(client, code || CLOSE_CODES.CLOSE_NO_STATUS, reason);\n }\n };\n\n Object.defineProperties( WebSocket.prototype, prototypeAccessors );\n\n return WebSocket;\n}(EventTarget));\n\nWebSocket$1.CONNECTING = 0;\nWebSocket$1.prototype.CONNECTING = WebSocket$1.CONNECTING;\nWebSocket$1.OPEN = 1;\nWebSocket$1.prototype.OPEN = WebSocket$1.OPEN;\nWebSocket$1.CLOSING = 2;\nWebSocket$1.prototype.CLOSING = WebSocket$1.CLOSING;\nWebSocket$1.CLOSED = 3;\nWebSocket$1.prototype.CLOSED = WebSocket$1.CLOSED;\n\nvar dedupe = function (arr) { return arr.reduce(function (deduped, b) {\n if (deduped.indexOf(b) > -1) { return deduped; }\n return deduped.concat(b);\n }, []); };\n\nfunction retrieveGlobalObject() {\n if (typeof window !== 'undefined') {\n return window;\n }\n\n return typeof process === 'object' && typeof require === 'function' && typeof global === 'object' ? global : this;\n}\n\nvar defaultOptions = {\n mock: true,\n verifyClient: null,\n selectProtocol: null\n};\n\nvar Server$1 = (function (EventTarget$$1) {\n function Server(url, options) {\n if ( options === void 0 ) options = defaultOptions;\n\n EventTarget$$1.call(this);\n var urlRecord = new urlParse(url);\n\n if (!urlRecord.pathname) {\n urlRecord.pathname = '/';\n }\n\n this.url = urlRecord.toString();\n\n this.originalWebSocket = null;\n var server = networkBridge.attachServer(this, this.url);\n\n if (!server) {\n this.dispatchEvent(createEvent({ type: 'error' }));\n throw new Error('A mock server is already listening on this url');\n }\n\n this.options = Object.assign({}, defaultOptions, options);\n\n if (this.options.mock) {\n this.mockWebsocket();\n }\n }\n\n if ( EventTarget$$1 ) Server.__proto__ = EventTarget$$1;\n Server.prototype = Object.create( EventTarget$$1 && EventTarget$$1.prototype );\n Server.prototype.constructor = Server;\n\n /*\n * Attaches the mock websocket object to the global object\n */\n Server.prototype.mockWebsocket = function mockWebsocket () {\n var globalObj = retrieveGlobalObject();\n\n this.originalWebSocket = globalObj.WebSocket;\n globalObj.WebSocket = WebSocket$1;\n };\n\n /*\n * Removes the mock websocket object from the global object\n */\n Server.prototype.restoreWebsocket = function restoreWebsocket () {\n var globalObj = retrieveGlobalObject();\n\n if (this.originalWebSocket !== null) {\n globalObj.WebSocket = this.originalWebSocket;\n }\n\n this.originalWebSocket = null;\n };\n\n /**\n * Removes itself from the urlMap so another server could add itself to the url.\n * @param {function} callback - The callback is called when the server is stopped\n */\n Server.prototype.stop = function stop (callback) {\n if ( callback === void 0 ) callback = function () {};\n\n if (this.options.mock) {\n this.restoreWebsocket();\n }\n\n networkBridge.removeServer(this.url);\n\n if (typeof callback === 'function') {\n callback();\n }\n };\n\n /*\n * This is the main function for the mock server to subscribe to the on events.\n *\n * ie: mockServer.on('connection', function() { console.log('a mock client connected'); });\n *\n * @param {string} type - The event key to subscribe to. Valid keys are: connection, message, and close.\n * @param {function} callback - The callback which should be called when a certain event is fired.\n */\n Server.prototype.on = function on (type, callback) {\n this.addEventListener(type, callback);\n };\n\n /*\n * Closes the connection and triggers the onclose method of all listening\n * websockets. After that it removes itself from the urlMap so another server\n * could add itself to the url.\n *\n * @param {object} options\n */\n Server.prototype.close = function close (options) {\n if ( options === void 0 ) options = {};\n\n var code = options.code;\n var reason = options.reason;\n var wasClean = options.wasClean;\n var listeners = networkBridge.websocketsLookup(this.url);\n\n // Remove server before notifications to prevent immediate reconnects from\n // socket onclose handlers\n networkBridge.removeServer(this.url);\n\n listeners.forEach(function (socket) {\n socket.readyState = WebSocket$1.CLOSED;\n socket.dispatchEvent(\n createCloseEvent({\n type: 'close',\n target: socket.target,\n code: code || CLOSE_CODES.CLOSE_NORMAL,\n reason: reason || '',\n wasClean: wasClean\n })\n );\n });\n\n this.dispatchEvent(createCloseEvent({ type: 'close' }), this);\n };\n\n /*\n * Sends a generic message event to all mock clients.\n */\n Server.prototype.emit = function emit (event, data, options) {\n var this$1 = this;\n if ( options === void 0 ) options = {};\n\n var websockets = options.websockets;\n\n if (!websockets) {\n websockets = networkBridge.websocketsLookup(this.url);\n }\n\n if (typeof options !== 'object' || arguments.length > 3) {\n data = Array.prototype.slice.call(arguments, 1, arguments.length);\n data = data.map(function (item) { return normalizeSendData(item); });\n } else {\n data = normalizeSendData(data);\n }\n\n websockets.forEach(function (socket) {\n if (Array.isArray(data)) {\n socket.dispatchEvent.apply(\n socket, [ createMessageEvent({\n type: event,\n data: data,\n origin: this$1.url,\n target: socket.target\n }) ].concat( data )\n );\n } else {\n socket.dispatchEvent(\n createMessageEvent({\n type: event,\n data: data,\n origin: this$1.url,\n target: socket.target\n })\n );\n }\n });\n };\n\n /*\n * Returns an array of websockets which are listening to this server\n * TOOD: this should return a set and not be a method\n */\n Server.prototype.clients = function clients () {\n return networkBridge.websocketsLookup(this.url);\n };\n\n /*\n * Prepares a method to submit an event to members of the room\n *\n * e.g. server.to('my-room').emit('hi!');\n */\n Server.prototype.to = function to (room, broadcaster, broadcastList) {\n var this$1 = this;\n if ( broadcastList === void 0 ) broadcastList = [];\n\n var self = this;\n var websockets = dedupe(broadcastList.concat(networkBridge.websocketsLookup(this.url, room, broadcaster)));\n\n return {\n to: function (chainedRoom, chainedBroadcaster) { return this$1.to.call(this$1, chainedRoom, chainedBroadcaster, websockets); },\n emit: function emit(event, data) {\n self.emit(event, data, { websockets: websockets });\n }\n };\n };\n\n /*\n * Alias for Server.to\n */\n Server.prototype.in = function in$1 () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n return this.to.apply(null, args);\n };\n\n /*\n * Simulate an event from the server to the clients. Useful for\n * simulating errors.\n */\n Server.prototype.simulate = function simulate (event) {\n var listeners = networkBridge.websocketsLookup(this.url);\n\n if (event === 'error') {\n listeners.forEach(function (socket) {\n socket.readyState = WebSocket$1.CLOSED;\n socket.dispatchEvent(createEvent({ type: 'error' }));\n });\n }\n };\n\n return Server;\n}(EventTarget));\n\n/*\n * Alternative constructor to support namespaces in socket.io\n *\n * http://socket.io/docs/rooms-and-namespaces/#custom-namespaces\n */\nServer$1.of = function of(url) {\n return new Server$1(url);\n};\n\n/*\n * The socket-io class is designed to mimick the real API as closely as possible.\n *\n * http://socket.io/docs/\n */\nvar SocketIO$1 = (function (EventTarget$$1) {\n function SocketIO(url, protocol) {\n var this$1 = this;\n if ( url === void 0 ) url = 'socket.io';\n if ( protocol === void 0 ) protocol = '';\n\n EventTarget$$1.call(this);\n\n this.binaryType = 'blob';\n var urlRecord = new urlParse(url);\n\n if (!urlRecord.pathname) {\n urlRecord.pathname = '/';\n }\n\n this.url = urlRecord.toString();\n this.readyState = SocketIO.CONNECTING;\n this.protocol = '';\n this.target = this;\n\n if (typeof protocol === 'string' || (typeof protocol === 'object' && protocol !== null)) {\n this.protocol = protocol;\n } else if (Array.isArray(protocol) && protocol.length > 0) {\n this.protocol = protocol[0];\n }\n\n var server = networkBridge.attachWebSocket(this, this.url);\n\n /*\n * Delay triggering the connection events so they can be defined in time.\n */\n delay(function delayCallback() {\n if (server) {\n this.readyState = SocketIO.OPEN;\n server.dispatchEvent(createEvent({ type: 'connection' }), server, this);\n server.dispatchEvent(createEvent({ type: 'connect' }), server, this); // alias\n this.dispatchEvent(createEvent({ type: 'connect', target: this }));\n } else {\n this.readyState = SocketIO.CLOSED;\n this.dispatchEvent(createEvent({ type: 'error', target: this }));\n this.dispatchEvent(\n createCloseEvent({\n type: 'close',\n target: this,\n code: CLOSE_CODES.CLOSE_NORMAL\n })\n );\n\n log('error', (\"Socket.io connection to '\" + (this.url) + \"' failed\"));\n }\n }, this);\n\n /**\n Add an aliased event listener for close / disconnect\n */\n this.addEventListener('close', function (event) {\n this$1.dispatchEvent(\n createCloseEvent({\n type: 'disconnect',\n target: event.target,\n code: event.code\n })\n );\n });\n }\n\n if ( EventTarget$$1 ) SocketIO.__proto__ = EventTarget$$1;\n SocketIO.prototype = Object.create( EventTarget$$1 && EventTarget$$1.prototype );\n SocketIO.prototype.constructor = SocketIO;\n\n var prototypeAccessors = { broadcast: {} };\n\n /*\n * Closes the SocketIO connection or connection attempt, if any.\n * If the connection is already CLOSED, this method does nothing.\n */\n SocketIO.prototype.close = function close () {\n if (this.readyState !== SocketIO.OPEN) {\n return undefined;\n }\n\n var server = networkBridge.serverLookup(this.url);\n networkBridge.removeWebSocket(this, this.url);\n\n this.readyState = SocketIO.CLOSED;\n this.dispatchEvent(\n createCloseEvent({\n type: 'close',\n target: this,\n code: CLOSE_CODES.CLOSE_NORMAL\n })\n );\n\n if (server) {\n server.dispatchEvent(\n createCloseEvent({\n type: 'disconnect',\n target: this,\n code: CLOSE_CODES.CLOSE_NORMAL\n }),\n server\n );\n }\n\n return this;\n };\n\n /*\n * Alias for Socket#close\n *\n * https://github.com/socketio/socket.io-client/blob/master/lib/socket.js#L383\n */\n SocketIO.prototype.disconnect = function disconnect () {\n return this.close();\n };\n\n /*\n * Submits an event to the server with a payload\n */\n SocketIO.prototype.emit = function emit (event) {\n var data = [], len = arguments.length - 1;\n while ( len-- > 0 ) data[ len ] = arguments[ len + 1 ];\n\n if (this.readyState !== SocketIO.OPEN) {\n throw new Error('SocketIO is already in CLOSING or CLOSED state');\n }\n\n var messageEvent = createMessageEvent({\n type: event,\n origin: this.url,\n data: data\n });\n\n var server = networkBridge.serverLookup(this.url);\n\n if (server) {\n server.dispatchEvent.apply(server, [ messageEvent ].concat( data ));\n }\n\n return this;\n };\n\n /*\n * Submits a 'message' event to the server.\n *\n * Should behave exactly like WebSocket#send\n *\n * https://github.com/socketio/socket.io-client/blob/master/lib/socket.js#L113\n */\n SocketIO.prototype.send = function send (data) {\n this.emit('message', data);\n return this;\n };\n\n /*\n * For broadcasting events to other connected sockets.\n *\n * e.g. socket.broadcast.emit('hi!');\n * e.g. socket.broadcast.to('my-room').emit('hi!');\n */\n prototypeAccessors.broadcast.get = function () {\n if (this.readyState !== SocketIO.OPEN) {\n throw new Error('SocketIO is already in CLOSING or CLOSED state');\n }\n\n var self = this;\n var server = networkBridge.serverLookup(this.url);\n if (!server) {\n throw new Error((\"SocketIO can not find a server at the specified URL (\" + (this.url) + \")\"));\n }\n\n return {\n emit: function emit(event, data) {\n server.emit(event, data, { websockets: networkBridge.websocketsLookup(self.url, null, self) });\n return self;\n },\n to: function to(room) {\n return server.to(room, self);\n },\n in: function in$1(room) {\n return server.in(room, self);\n }\n };\n };\n\n /*\n * For registering events to be received from the server\n */\n SocketIO.prototype.on = function on (type, callback) {\n this.addEventListener(type, callback);\n return this;\n };\n\n /*\n * Remove event listener\n *\n * https://github.com/component/emitter#emitteroffevent-fn\n */\n SocketIO.prototype.off = function off (type, callback) {\n this.removeEventListener(type, callback);\n };\n\n /*\n * Check if listeners have already been added for an event\n *\n * https://github.com/component/emitter#emitterhaslistenersevent\n */\n SocketIO.prototype.hasListeners = function hasListeners (type) {\n var listeners = this.listeners[type];\n if (!Array.isArray(listeners)) {\n return false;\n }\n return !!listeners.length;\n };\n\n /*\n * Join a room on a server\n *\n * http://socket.io/docs/rooms-and-namespaces/#joining-and-leaving\n */\n SocketIO.prototype.join = function join (room) {\n networkBridge.addMembershipToRoom(this, room);\n };\n\n /*\n * Get the websocket to leave the room\n *\n * http://socket.io/docs/rooms-and-namespaces/#joining-and-leaving\n */\n SocketIO.prototype.leave = function leave (room) {\n networkBridge.removeMembershipFromRoom(this, room);\n };\n\n SocketIO.prototype.to = function to (room) {\n return this.broadcast.to(room);\n };\n\n SocketIO.prototype.in = function in$1 () {\n return this.to.apply(null, arguments);\n };\n\n /*\n * Invokes all listener functions that are listening to the given event.type property. Each\n * listener will be passed the event as the first argument.\n *\n * @param {object} event - event object which will be passed to all listeners of the event.type property\n */\n SocketIO.prototype.dispatchEvent = function dispatchEvent (event) {\n var this$1 = this;\n var customArguments = [], len = arguments.length - 1;\n while ( len-- > 0 ) customArguments[ len ] = arguments[ len + 1 ];\n\n var eventName = event.type;\n var listeners = this.listeners[eventName];\n\n if (!Array.isArray(listeners)) {\n return false;\n }\n\n listeners.forEach(function (listener) {\n if (customArguments.length > 0) {\n listener.apply(this$1, customArguments);\n } else {\n // Regular WebSockets expect a MessageEvent but Socketio.io just wants raw data\n // payload instanceof MessageEvent works, but you can't isntance of NodeEvent\n // for now we detect if the output has data defined on it\n listener.call(this$1, event.data ? event.data : event);\n }\n });\n };\n\n Object.defineProperties( SocketIO.prototype, prototypeAccessors );\n\n return SocketIO;\n}(EventTarget));\n\nSocketIO$1.CONNECTING = 0;\nSocketIO$1.OPEN = 1;\nSocketIO$1.CLOSING = 2;\nSocketIO$1.CLOSED = 3;\n\n/*\n * Static constructor methods for the IO Socket\n */\nvar IO = function ioConstructor(url, protocol) {\n return new SocketIO$1(url, protocol);\n};\n\n/*\n * Alias the raw IO() constructor\n */\nIO.connect = function ioConnect(url, protocol) {\n /* eslint-disable new-cap */\n return IO(url, protocol);\n /* eslint-enable new-cap */\n};\n\nvar Server = Server$1;\nvar WebSocket = WebSocket$1;\nvar SocketIO = IO;\n\nexports.Server = Server;\nexports.WebSocket = WebSocket;\nexports.SocketIO = SocketIO;\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n})));\n"],"names":["exports","commonjsGlobal","window","g","self","requiresPort","port","protocol","split","has","Object","prototype","hasOwnProperty","decode","input","decodeURIComponent","replace","e","encode","encodeURIComponent","querystringify_1","stringify","obj","prefix","value","key","pairs","call","isNaN","push","length","join","parse","query","part","parser","result","exec","slashes","protocolre","left","RegExp","trimLeft","str","toString","rules","address","url","isSpecial","NaN","undefined","ignore","hash","lolcation","loc","location","finaldestination","type","Url","unescape","pathname","test","href","scheme","extractProtocol","rest","match","toLowerCase","forwardSlashes","otherSlashes","slashesCount","slice","this","relative","extracted","instruction","index","instructions","i","indexOf","charAt","base","path","concat","last","unshift","up","splice","resolve","host","hostname","username","password","auth","origin","set","fn","pop","char","ins","qs","urlParse","delay","callback","context","setTimeout","timeoutContext","log","method","message","console","reject","array","results","forEach","itemInArray","EventTarget","listeners","trimQueryPartFromURL","queryIndex","addEventListener","listener","Array","isArray","filter","item","removeEventListener","removingListener","arrayOfListeners","dispatchEvent","event","this$1","customArguments","len","arguments","eventName","apply","NetworkBridge","urlMap","attachWebSocket","websocket","serverURL","connectionLookup","server","websockets","addMembershipToRoom","room","roomMemberships","attachServer","serverUrl","serverLookup","websocketsLookup","broadcaster","removeServer","removeWebSocket","socket","removeMembershipFromRoom","memberships","networkBridge","CLOSE_CODES","ERROR_PREFIX","CONSTRUCTOR_ERROR","CLOSE_ERROR","EVENT","CONSTRUCT","MESSAGE","CLOSE","EventPrototype","stopPropagation","stopImmediatePropagation","initEvent","bubbles","cancelable","Boolean","Event","EventPrototype$$1","eventInitConfig","TypeError","timeStamp","Date","now","target","srcElement","returnValue","isTrusted","eventPhase","defaultPrevented","currentTarget","cancelBubble","__proto__","create","constructor","MessageEvent","data","lastEventId","ports","canncelBubble","CloseEvent","code","reason","wasClean","parseInt","createEvent","config","eventObject","createMessageEvent","messageEvent","createCloseEvent","closeEvent","closeWebSocketConnection","readyState","WebSocket$1","CLOSING","serverCloseEvent","CLOSED","normalizeSendData","ArrayBuffer","String","proxies","WeakMap","proxyFactory","get","proxy","Proxy","prop","options","cb","EventTarget$$1","WebSocket","protocols","_onopen","_onmessage","_onerror","_onclose","urlRecord","SyntaxError","urlVerification","uniq","map","p","count","reduce","a","b","duplicates","keys","protocolVerification","binaryType","CONNECTING","client","verifyClient","selectProtocol","selectedProtocol","isFilled","isRequested","OPEN","prototypeAccessors","onopen","onmessage","onclose","onerror","send","Error","close","m","errorEvent","failWebSocketConnection","defineProperties","retrieveGlobalObject","defaultOptions","mock","Server$1","Server","originalWebSocket","assign","mockWebsocket","globalObj","restoreWebsocket","stop","on","emit","clients","to","broadcastList","deduped","chainedRoom","chainedBroadcaster","in","args","simulate","of","SocketIO$1","SocketIO","broadcast","disconnect","off","hasListeners","leave","IO","connect","defineProperty","factory"],"sourceRoot":""} \ No newline at end of file diff --git a/_static/build/1084.4cd1c89.js b/_static/build/1084.4cd1c89.js new file mode 100644 index 0000000..e504736 --- /dev/null +++ b/_static/build/1084.4cd1c89.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[1084],{51084:(e,t,r)=>{r.r(t),r.d(t,{Drag:()=>i});var n,o=r(43231),i=function(){function e(e){var t=this;this._onScrollFrame=function(){if(t._scrollTarget){var e=t._scrollTarget,r=e.element,o=e.edge,i=e.distance,s=n.SCROLL_EDGE_SIZE-i,a=Math.pow(s/n.SCROLL_EDGE_SIZE,2),d=Math.max(1,Math.round(a*n.SCROLL_EDGE_SIZE));switch(o){case"top":r.scrollTop-=d;break;case"left":r.scrollLeft-=d;break;case"right":r.scrollLeft+=d;break;case"bottom":r.scrollTop+=d}requestAnimationFrame(t._onScrollFrame)}},this._disposed=!1,this._dropAction="none",this._override=null,this._currentTarget=null,this._currentElement=null,this._promise=null,this._scrollTarget=null,this._resolve=null,this.document=e.document||document,this.mimeData=e.mimeData,this.dragImage=e.dragImage||null,this.proposedAction=e.proposedAction||"copy",this.supportedActions=e.supportedActions||"all",this.source=e.source||null}return e.prototype.dispose=function(){if(!this._disposed){if(this._disposed=!0,this._currentTarget){var e=n.createMouseEvent("pointerup",-1,-1);n.dispatchDragLeave(this,this._currentTarget,null,e)}this._finalize("none")}},Object.defineProperty(e.prototype,"isDisposed",{get:function(){return this._disposed},enumerable:!0,configurable:!0}),e.prototype.start=function(e,t){var r=this;if(this._disposed)return Promise.resolve("none");if(this._promise)return this._promise;this._addListeners(),this._attachDragImage(e,t),this._promise=new Promise((function(e,t){r._resolve=e}));var o=n.createMouseEvent("pointermove",e,t);return document.dispatchEvent(o),this._promise},e.prototype.handleEvent=function(e){switch(e.type){case"mousemove":case"pointermove":this._evtMouseMove(e);break;case"mouseup":case"pointerup":this._evtMouseUp(e);break;case"keydown":this._evtKeyDown(e);break;default:e.preventDefault(),e.stopPropagation()}},e.prototype.moveDragImage=function(e,t){if(this.dragImage){var r=this.dragImage.style;r.top=t+"px",r.left=e+"px"}},e.prototype._evtMouseMove=function(e){e.preventDefault(),e.stopPropagation(),this._updateCurrentTarget(e),this._updateDragScroll(e),this.moveDragImage(e.clientX,e.clientY)},e.prototype._evtMouseUp=function(e){if(e.preventDefault(),e.stopPropagation(),0===e.button)if(this._updateCurrentTarget(e),this._currentTarget){if("none"===this._dropAction)return n.dispatchDragLeave(this,this._currentTarget,null,e),void this._finalize("none");var t=n.dispatchDrop(this,this._currentTarget,e);this._finalize(t)}else this._finalize("none")},e.prototype._evtKeyDown=function(e){e.preventDefault(),e.stopPropagation(),27===e.keyCode&&this.dispose()},e.prototype._addListeners=function(){document.addEventListener("mousedown",this,!0),document.addEventListener("mousemove",this,!0),document.addEventListener("mouseup",this,!0),document.addEventListener("mouseenter",this,!0),document.addEventListener("mouseleave",this,!0),document.addEventListener("mouseover",this,!0),document.addEventListener("mouseout",this,!0),document.addEventListener("pointerdown",this,!0),document.addEventListener("pointermove",this,!0),document.addEventListener("pointerup",this,!0),document.addEventListener("pointerenter",this,!0),document.addEventListener("pointerleave",this,!0),document.addEventListener("pointerover",this,!0),document.addEventListener("pointerout",this,!0),document.addEventListener("keydown",this,!0),document.addEventListener("keyup",this,!0),document.addEventListener("keypress",this,!0),document.addEventListener("contextmenu",this,!0)},e.prototype._removeListeners=function(){document.removeEventListener("mousedown",this,!0),document.removeEventListener("mousemove",this,!0),document.removeEventListener("mouseup",this,!0),document.removeEventListener("mouseenter",this,!0),document.removeEventListener("mouseleave",this,!0),document.removeEventListener("mouseover",this,!0),document.removeEventListener("mouseout",this,!0),document.removeEventListener("pointerdown",this,!0),document.removeEventListener("pointermove",this,!0),document.removeEventListener("pointerup",this,!0),document.removeEventListener("pointerenter",this,!0),document.removeEventListener("pointerleave",this,!0),document.removeEventListener("pointerover",this,!0),document.removeEventListener("pointerout",this,!0),document.removeEventListener("keydown",this,!0),document.removeEventListener("keyup",this,!0),document.removeEventListener("keypress",this,!0),document.removeEventListener("contextmenu",this,!0)},e.prototype._updateDragScroll=function(e){var t=n.findScrollTarget(e);(this._scrollTarget||t)&&(this._scrollTarget||setTimeout(this._onScrollFrame,500),this._scrollTarget=t)},e.prototype._updateCurrentTarget=function(e){var t=this._currentTarget,r=this._currentTarget,o=this._currentElement,i=this.document.elementFromPoint(e.clientX,e.clientY);this._currentElement=i,i!==o&&i!==r&&n.dispatchDragExit(this,r,i,e),i!==o&&i!==r&&(r=n.dispatchDragEnter(this,i,r,e)),r!==t&&(this._currentTarget=r,n.dispatchDragLeave(this,t,r,e));var s=n.dispatchDragOver(this,r,e);this._setDropAction(s)},e.prototype._attachDragImage=function(e,t){if(this.dragImage){this.dragImage.classList.add("lm-mod-drag-image"),this.dragImage.classList.add("p-mod-drag-image");var r=this.dragImage.style;r.pointerEvents="none",r.position="fixed",r.top=t+"px",r.left=e+"px",(this.document instanceof Document?this.document.body:this.document.firstElementChild).appendChild(this.dragImage)}},e.prototype._detachDragImage=function(){if(this.dragImage){var e=this.dragImage.parentNode;e&&e.removeChild(this.dragImage)}},e.prototype._setDropAction=function(t){if(t=n.validateAction(t,this.supportedActions),!this._override||this._dropAction!==t)switch(t){case"none":this._dropAction=t,this._override=e.overrideCursor("no-drop",this.document);break;case"copy":this._dropAction=t,this._override=e.overrideCursor("copy",this.document);break;case"link":this._dropAction=t,this._override=e.overrideCursor("alias",this.document);break;case"move":this._dropAction=t,this._override=e.overrideCursor("move",this.document)}},e.prototype._finalize=function(e){var t=this._resolve;this._removeListeners(),this._detachDragImage(),this._override&&(this._override.dispose(),this._override=null),this.mimeData.clear(),this._disposed=!0,this._dropAction="none",this._currentTarget=null,this._currentElement=null,this._scrollTarget=null,this._promise=null,this._resolve=null,t&&t(e)},e}();!function(e){e.overrideCursor=function(e,r){void 0===r&&(r=document);var n=++t,i=r instanceof Document?r.body:r.firstElementChild;return i.style.cursor=e,i.classList.add("lm-mod-override-cursor"),i.classList.add("p-mod-override-cursor"),new o.DisposableDelegate((function(){n===t&&(i.style.cursor="",i.classList.remove("lm-mod-override-cursor"),i.classList.remove("p-mod-override-cursor"))}))};var t=0}(i||(i={})),function(e){e.SCROLL_EDGE_SIZE=20,e.validateAction=function(e,n){return t[e]&r[n]?e:"none"},e.createMouseEvent=function(e,t,r){var n=document.createEvent("MouseEvent");return n.initMouseEvent(e,!0,!0,window,0,0,0,t,r,!1,!1,!1,!1,0,null),n},e.findScrollTarget=function(t){for(var r=t.clientX,n=t.clientY,o=document.elementFromPoint(r,n);o;o=o.parentElement){var i=o.hasAttribute("data-lm-dragscroll");if(i=i||o.hasAttribute("data-p-dragscroll")){var s=0,a=0;o===document.body&&(s=window.pageXOffset,a=window.pageYOffset);var d=o.getBoundingClientRect(),c=d.top+a,u=d.left+s,p=u+d.width,h=c+d.height;if(!(r=p||n=h)){var l=r-u+1,m=n-c+1,v=p-r,g=h-n,_=Math.min(l,m,v,g);if(!(_>e.SCROLL_EDGE_SIZE)){var f=void 0;switch(_){case g:f="bottom";break;case m:f="top";break;case v:f="right";break;case l:f="left";break;default:throw"unreachable"}var E=o.scrollWidth-o.clientWidth,L=o.scrollHeight-o.clientHeight,y=void 0;switch(f){case"top":y=L>0&&o.scrollTop>0;break;case"left":y=E>0&&o.scrollLeft>0;break;case"right":y=E>0&&o.scrollLeft0&&o.scrollTop {\n // If the drag object is already disposed, resolve to `None`.\n if (this._disposed) {\n return Promise.resolve('none' as DropAction);\n }\n\n // If the drag has already been started, return the promise.\n if (this._promise) {\n return this._promise;\n }\n\n // Install the document listeners for the drag object.\n this._addListeners();\n\n // Attach the drag image at the specified client position.\n this._attachDragImage(clientX, clientY);\n\n // Create the promise which will be resolved on completion.\n this._promise = new Promise((resolve, reject) => {\n this._resolve = resolve;\n });\n\n // Trigger a fake move event to kick off the drag operation.\n let event = Private.createMouseEvent('pointermove', clientX, clientY);\n document.dispatchEvent(event);\n\n // Return the pending promise for the drag operation.\n return this._promise;\n }\n\n /**\n * Handle the DOM events for the drag operation.\n *\n * @param event - The DOM event sent to the drag object.\n *\n * #### Notes\n * This method implements the DOM `EventListener` interface and is\n * called in response to events on the document. It should not be\n * called directly by user code.\n */\n handleEvent(event: Event): void {\n switch (event.type) {\n case 'mousemove': // \n this._evtMouseMove(event as MouseEvent);\n break;\n case 'mouseup': // \n this._evtMouseUp(event as MouseEvent);\n break;\n case 'pointermove':\n this._evtMouseMove(event as MouseEvent);\n break;\n case 'pointerup':\n this._evtMouseUp(event as MouseEvent);\n break;\n case 'keydown':\n this._evtKeyDown(event as KeyboardEvent);\n break;\n default:\n // Stop all other events during drag-drop.\n event.preventDefault();\n event.stopPropagation();\n break;\n }\n }\n\n /**\n * Move the drag image element to the specified location.\n *\n * This is a no-op if there is no drag image element.\n */\n protected moveDragImage(clientX: number, clientY: number): void {\n if (!this.dragImage) {\n return;\n }\n let style = this.dragImage.style;\n style.top = `${clientY}px`;\n style.left = `${clientX}px`;\n }\n\n /**\n * Handle the `'mousemove'` event for the drag object.\n */\n private _evtMouseMove(event: MouseEvent): void {\n // Stop all input events during drag-drop.\n event.preventDefault();\n event.stopPropagation();\n\n // Update the current target node and dispatch enter/leave events.\n this._updateCurrentTarget(event);\n\n // Update the drag scroll element.\n this._updateDragScroll(event);\n\n // Move the drag image to the specified client position. This is\n // performed *after* dispatching to prevent unnecessary reflows.\n this.moveDragImage(event.clientX, event.clientY);\n }\n\n /**\n * Handle the `'mouseup'` event for the drag object.\n */\n private _evtMouseUp(event: MouseEvent): void {\n // Stop all input events during drag-drop.\n event.preventDefault();\n event.stopPropagation();\n\n // Do nothing if the left button is not released.\n if (event.button !== 0) {\n return;\n }\n\n // Update the current target node and dispatch enter/leave events.\n // This prevents a subtle issue where the DOM mutates under the\n // cursor after the last move event but before the drop event.\n this._updateCurrentTarget(event);\n\n // If there is no current target, finalize with `'none'`.\n if (!this._currentTarget) {\n this._finalize('none');\n return;\n }\n\n // If the last drop action was `'none'`, dispatch a leave event\n // to the current target and finalize the drag with `'none'`.\n if (this._dropAction === 'none') {\n Private.dispatchDragLeave(this, this._currentTarget, null, event);\n this._finalize('none');\n return;\n }\n\n // Dispatch the drop event at the current target and finalize\n // with the resulting drop action.\n let action = Private.dispatchDrop(this, this._currentTarget, event);\n this._finalize(action);\n }\n\n /**\n * Handle the `'keydown'` event for the drag object.\n */\n private _evtKeyDown(event: KeyboardEvent): void {\n // Stop all input events during drag-drop.\n event.preventDefault();\n event.stopPropagation();\n\n // Cancel the drag if `Escape` is pressed.\n if (event.keyCode === 27) {\n this.dispose();\n }\n }\n\n /**\n * Add the document event listeners for the drag object.\n */\n private _addListeners(): void {\n document.addEventListener('mousedown', this, true); // \n document.addEventListener('mousemove', this, true); // \n document.addEventListener('mouseup', this, true); // \n document.addEventListener('mouseenter', this, true); // \n document.addEventListener('mouseleave', this, true); // \n document.addEventListener('mouseover', this, true); // \n document.addEventListener('mouseout', this, true); // \n document.addEventListener('pointerdown', this, true);\n document.addEventListener('pointermove', this, true);\n document.addEventListener('pointerup', this, true);\n document.addEventListener('pointerenter', this, true);\n document.addEventListener('pointerleave', this, true);\n document.addEventListener('pointerover', this, true);\n document.addEventListener('pointerout', this, true);\n document.addEventListener('keydown', this, true);\n document.addEventListener('keyup', this, true);\n document.addEventListener('keypress', this, true);\n document.addEventListener('contextmenu', this, true);\n }\n\n /**\n * Remove the document event listeners for the drag object.\n */\n private _removeListeners(): void {\n document.removeEventListener('mousedown', this, true); // \n document.removeEventListener('mousemove', this, true); // \n document.removeEventListener('mouseup', this, true); // \n document.removeEventListener('mouseenter', this, true); // \n document.removeEventListener('mouseleave', this, true); // \n document.removeEventListener('mouseover', this, true); // \n document.removeEventListener('mouseout', this, true); // \n document.removeEventListener('pointerdown', this, true);\n document.removeEventListener('pointermove', this, true);\n document.removeEventListener('pointerup', this, true);\n document.removeEventListener('pointerenter', this, true);\n document.removeEventListener('pointerleave', this, true);\n document.removeEventListener('pointerover', this, true);\n document.removeEventListener('pointerout', this, true);\n document.removeEventListener('keydown', this, true);\n document.removeEventListener('keyup', this, true);\n document.removeEventListener('keypress', this, true);\n document.removeEventListener('contextmenu', this, true);\n }\n\n /**\n * Update the drag scroll element under the mouse.\n */\n private _updateDragScroll(event: MouseEvent): void {\n // Find the scroll target under the mouse.\n let target = Private.findScrollTarget(event);\n\n // Bail if there is nothing to scroll.\n if (!this._scrollTarget && !target) {\n return;\n }\n\n // Start the scroll loop if needed.\n if (!this._scrollTarget) {\n setTimeout(this._onScrollFrame, 500);\n }\n\n // Update the scroll target.\n this._scrollTarget = target;\n }\n\n /**\n * Update the current target node using the given mouse event.\n */\n private _updateCurrentTarget(event: MouseEvent): void {\n // Fetch common local state.\n let prevTarget = this._currentTarget;\n let currTarget = this._currentTarget;\n let prevElem = this._currentElement;\n\n // Find the current indicated element at the given position.\n let currElem = this.document.elementFromPoint(event.clientX, event.clientY);\n\n // Update the current element reference.\n this._currentElement = currElem;\n\n // If the indicated element changes from the previous iteration,\n // and is different from the current target, dispatch the exit\n // event to the target.\n if (currElem !== prevElem && currElem !== currTarget) {\n Private.dispatchDragExit(this, currTarget, currElem, event);\n }\n\n // If the indicated element changes from the previous iteration,\n // and is different from the current target, dispatch the enter\n // event and compute the new target element.\n if (currElem !== prevElem && currElem !== currTarget) {\n currTarget = Private.dispatchDragEnter(this, currElem, currTarget, event);\n }\n\n // If the current target element has changed, update the current\n // target reference and dispatch the leave event to the old target.\n if (currTarget !== prevTarget) {\n this._currentTarget = currTarget;\n Private.dispatchDragLeave(this, prevTarget, currTarget, event);\n }\n\n // Dispatch the drag over event and update the drop action.\n let action = Private.dispatchDragOver(this, currTarget, event);\n this._setDropAction(action);\n }\n\n /**\n * Attach the drag image element at the specified location.\n *\n * This is a no-op if there is no drag image element.\n */\n private _attachDragImage(clientX: number, clientY: number): void {\n if (!this.dragImage) {\n return;\n }\n this.dragImage.classList.add('lm-mod-drag-image');\n /* */\n this.dragImage.classList.add('p-mod-drag-image');\n /* */\n let style = this.dragImage.style;\n style.pointerEvents = 'none';\n style.position = 'fixed';\n style.top = `${clientY}px`;\n style.left = `${clientX}px`;\n const body =\n this.document instanceof Document\n ? this.document.body\n : (this.document.firstElementChild as HTMLElement);\n body.appendChild(this.dragImage);\n }\n\n /**\n * Detach the drag image element from the DOM.\n *\n * This is a no-op if there is no drag image element.\n */\n private _detachDragImage(): void {\n if (!this.dragImage) {\n return;\n }\n let parent = this.dragImage.parentNode;\n if (!parent) {\n return;\n }\n parent.removeChild(this.dragImage);\n }\n\n /**\n * Set the internal drop action state and update the drag cursor.\n */\n private _setDropAction(action: DropAction): void {\n action = Private.validateAction(action, this.supportedActions);\n if (this._override && this._dropAction === action) {\n return;\n }\n switch (action) {\n case 'none':\n this._dropAction = action;\n this._override = Drag.overrideCursor('no-drop', this.document);\n break;\n case 'copy':\n this._dropAction = action;\n this._override = Drag.overrideCursor('copy', this.document);\n break;\n case 'link':\n this._dropAction = action;\n this._override = Drag.overrideCursor('alias', this.document);\n break;\n case 'move':\n this._dropAction = action;\n this._override = Drag.overrideCursor('move', this.document);\n break;\n }\n }\n\n /**\n * Finalize the drag operation and resolve the drag promise.\n */\n private _finalize(action: DropAction): void {\n // Store the resolve function as a temp variable.\n let resolve = this._resolve;\n\n // Remove the document event listeners.\n this._removeListeners();\n\n // Detach the drag image.\n this._detachDragImage();\n\n // Dispose of the cursor override.\n if (this._override) {\n this._override.dispose();\n this._override = null;\n }\n\n // Clear the mime data.\n this.mimeData.clear();\n\n // Clear the rest of the internal drag state.\n this._disposed = true;\n this._dropAction = 'none';\n this._currentTarget = null;\n this._currentElement = null;\n this._scrollTarget = null;\n this._promise = null;\n this._resolve = null;\n\n // Finally, resolve the promise to the given drop action.\n if (resolve) {\n resolve(action);\n }\n }\n\n /**\n * The scroll loop handler function.\n */\n private _onScrollFrame = () => {\n // Bail early if there is no scroll target.\n if (!this._scrollTarget) {\n return;\n }\n\n // Unpack the scroll target.\n let { element, edge, distance } = this._scrollTarget;\n\n // Calculate the scroll delta using nonlinear acceleration.\n let d = Private.SCROLL_EDGE_SIZE - distance;\n let f = Math.pow(d / Private.SCROLL_EDGE_SIZE, 2);\n let s = Math.max(1, Math.round(f * Private.SCROLL_EDGE_SIZE));\n\n // Scroll the element in the specified direction.\n switch (edge) {\n case 'top':\n element.scrollTop -= s;\n break;\n case 'left':\n element.scrollLeft -= s;\n break;\n case 'right':\n element.scrollLeft += s;\n break;\n case 'bottom':\n element.scrollTop += s;\n break;\n }\n\n // Request the next cycle of the scroll loop.\n requestAnimationFrame(this._onScrollFrame);\n };\n\n private _disposed = false;\n private _dropAction: DropAction = 'none';\n private _override: IDisposable | null = null;\n private _currentTarget: Element | null = null;\n private _currentElement: Element | null = null;\n private _promise: Promise | null = null;\n private _scrollTarget: Private.IScrollTarget | null = null;\n private _resolve: ((value: DropAction) => void) | null = null;\n}\n\n/**\n * The namespace for the `Drag` class statics.\n */\nexport namespace Drag {\n /**\n * An options object for initializing a `Drag` object.\n */\n export interface IOptions {\n /**\n * The root element for dragging DOM artifacts (defaults to document).\n */\n document?: Document | ShadowRoot;\n\n /**\n * The populated mime data for the drag operation.\n */\n mimeData: MimeData;\n\n /**\n * An optional drag image which follows the mouse cursor.\n *\n * #### Notes\n * The drag image can be any DOM element. It is not limited to\n * image or canvas elements as with the native drag-drop APIs.\n *\n * If provided, this will be positioned at the mouse cursor on each\n * mouse move event. A CSS transform can be used to offset the node\n * from its specified position.\n *\n * The drag image will automatically have the `lm-mod-drag-image`\n * class name added.\n *\n * The default value is `null`.\n */\n dragImage?: HTMLElement;\n\n /**\n * The optional proposed drop action for the drag operation.\n *\n * #### Notes\n * This can be provided as a hint to the drop targets as to which\n * drop action is preferred.\n *\n * The default value is `'copy'`.\n */\n proposedAction?: DropAction;\n\n /**\n * The drop actions supported by the drag initiator.\n *\n * #### Notes\n * A drop target must indicate that it intends to perform one of the\n * supported actions in order to receive a drop event. However, it is\n * not required to *actually* perform that action when handling the\n * drop event. Therefore, the initiator must be prepared to handle\n * any drop action performed by a drop target.\n *\n * The default value is `'all'`.\n */\n supportedActions?: SupportedActions;\n\n /**\n * An optional object which indicates the source of the drag.\n *\n * #### Notes\n * For advanced applications, the drag initiator may wish to expose\n * a source object to the drop targets. That object can be specified\n * here and will be carried along with the drag events.\n *\n * The default value is `null`.\n */\n source?: any;\n }\n\n /**\n * Override the cursor icon for the entire document.\n *\n * @param cursor - The string representing the cursor style.\n *\n * @returns A disposable which will clear the override when disposed.\n *\n * #### Notes\n * The most recent call to `overrideCursor` takes precedence.\n * Disposing an old override has no effect on the current override.\n *\n * This utility function is used by the `Drag` class to override the\n * mouse cursor during a drag-drop operation, but it can also be used\n * by other classes to fix the cursor icon during normal mouse drags.\n *\n * #### Example\n * ```typescript\n * import { Drag } from '@lumino/dragdrop';\n *\n * // Force the cursor to be 'wait' for the entire document.\n * let override = Drag.overrideCursor('wait');\n *\n * // Clear the override by disposing the return value.\n * override.dispose();\n * ```\n */\n export function overrideCursor(\n cursor: string,\n doc: Document | ShadowRoot = document\n ): IDisposable {\n let id = ++overrideCursorID;\n const body =\n doc instanceof Document\n ? doc.body\n : (doc.firstElementChild as HTMLElement);\n body.style.cursor = cursor;\n body.classList.add('lm-mod-override-cursor');\n /* */\n body.classList.add('p-mod-override-cursor');\n /* */\n return new DisposableDelegate(() => {\n if (id === overrideCursorID) {\n body.style.cursor = '';\n body.classList.remove('lm-mod-override-cursor');\n /* */\n body.classList.remove('p-mod-override-cursor');\n /* */\n }\n });\n }\n\n /**\n * The internal id for the active cursor override.\n */\n let overrideCursorID = 0;\n}\n\n/**\n * The namespace for the module implementation details.\n */\nnamespace Private {\n /**\n * The size of a drag scroll edge, in pixels.\n */\n export const SCROLL_EDGE_SIZE = 20;\n\n /**\n * Validate the given action is one of the supported actions.\n *\n * Returns the given action or `'none'` if the action is unsupported.\n */\n export function validateAction(\n action: DropAction,\n supported: SupportedActions\n ): DropAction {\n return actionTable[action] & supportedTable[supported] ? action : 'none';\n }\n\n /**\n * Create a left mouse event at the given position.\n *\n * @param type - The event type for the mouse event.\n *\n * @param clientX - The client X position.\n *\n * @param clientY - The client Y position.\n *\n * @returns A newly created and initialized mouse event.\n */\n export function createMouseEvent(\n type: string,\n clientX: number,\n clientY: number\n ): MouseEvent {\n let event = document.createEvent('MouseEvent');\n event.initMouseEvent(\n type,\n true,\n true,\n window,\n 0,\n 0,\n 0,\n clientX,\n clientY,\n false,\n false,\n false,\n false,\n 0,\n null\n );\n return event;\n }\n\n /**\n * An object which holds the scroll target data.\n */\n export interface IScrollTarget {\n /**\n * The element to be scrolled.\n */\n element: Element;\n\n /**\n * The scroll edge underneath the mouse.\n */\n edge: 'top' | 'left' | 'right' | 'bottom';\n\n /**\n * The distance from the mouse to the scroll edge.\n */\n distance: number;\n }\n\n /**\n * Find the drag scroll target under the mouse, if any.\n */\n export function findScrollTarget(event: MouseEvent): IScrollTarget | null {\n // Look up the client mouse position.\n let x = event.clientX;\n let y = event.clientY;\n\n // Get the element under the mouse.\n let element: Element | null = document.elementFromPoint(x, y);\n\n // Search for a scrollable target based on the mouse position.\n // The null assert in third clause of for-loop is required due to:\n // https://github.com/Microsoft/TypeScript/issues/14143\n for (; element; element = element!.parentElement) {\n // Ignore elements which are not marked as scrollable.\n let scrollable = element.hasAttribute('data-lm-dragscroll');\n /* */\n scrollable = scrollable || element.hasAttribute('data-p-dragscroll');\n /* */\n if (!scrollable) {\n continue;\n }\n\n // Set up the coordinate offsets for the element.\n let offsetX = 0;\n let offsetY = 0;\n if (element === document.body) {\n offsetX = window.pageXOffset;\n offsetY = window.pageYOffset;\n }\n\n // Get the element bounds in viewport coordinates.\n let r = element.getBoundingClientRect();\n let top = r.top + offsetY;\n let left = r.left + offsetX;\n let right = left + r.width;\n let bottom = top + r.height;\n\n // Skip the element if it's not under the mouse.\n if (x < left || x >= right || y < top || y >= bottom) {\n continue;\n }\n\n // Compute the distance to each edge.\n let dl = x - left + 1;\n let dt = y - top + 1;\n let dr = right - x;\n let db = bottom - y;\n\n // Find the smallest of the edge distances.\n let distance = Math.min(dl, dt, dr, db);\n\n // Skip the element if the mouse is not within a scroll edge.\n if (distance > SCROLL_EDGE_SIZE) {\n continue;\n }\n\n // Set up the edge result variable.\n let edge: 'top' | 'left' | 'right' | 'bottom';\n\n // Find the edge for the computed distance.\n switch (distance) {\n case db:\n edge = 'bottom';\n break;\n case dt:\n edge = 'top';\n break;\n case dr:\n edge = 'right';\n break;\n case dl:\n edge = 'left';\n break;\n default:\n throw 'unreachable';\n }\n\n // Compute how much the element can scroll in width and height.\n let dsw = element.scrollWidth - element.clientWidth;\n let dsh = element.scrollHeight - element.clientHeight;\n\n // Determine if the element should be scrolled for the edge.\n let shouldScroll: boolean;\n switch (edge) {\n case 'top':\n shouldScroll = dsh > 0 && element.scrollTop > 0;\n break;\n case 'left':\n shouldScroll = dsw > 0 && element.scrollLeft > 0;\n break;\n case 'right':\n shouldScroll = dsw > 0 && element.scrollLeft < dsw;\n break;\n case 'bottom':\n shouldScroll = dsh > 0 && element.scrollTop < dsh;\n break;\n default:\n throw 'unreachable';\n }\n\n // Skip the element if it should not be scrolled.\n if (!shouldScroll) {\n continue;\n }\n\n // Return the drag scroll target.\n return { element, edge, distance };\n }\n\n // No drag scroll target was found.\n return null;\n }\n\n /**\n * Dispatch a drag enter event to the indicated element.\n *\n * @param drag - The drag object associated with the action.\n *\n * @param currElem - The currently indicated element, or `null`. This\n * is the \"immediate user selection\" from the whatwg spec.\n *\n * @param currTarget - The current drag target element, or `null`. This\n * is the \"current target element\" from the whatwg spec.\n *\n * @param event - The mouse event related to the action.\n *\n * @returns The element to use as the current drag target. This is the\n * \"current target element\" from the whatwg spec, and may be `null`.\n *\n * #### Notes\n * This largely implements the drag enter portion of the whatwg spec:\n * https://html.spec.whatwg.org/multipage/interaction.html#drag-and-drop-processing-model\n */\n export function dispatchDragEnter(\n drag: Drag,\n currElem: Element | null,\n currTarget: Element | null,\n event: MouseEvent\n ): Element | null {\n // If the current element is null, return null as the new target.\n if (!currElem) {\n return null;\n }\n\n // Dispatch a drag enter event to the current element.\n let dragEvent = createDragEvent('lm-dragenter', drag, event, currTarget);\n let canceled = !currElem.dispatchEvent(dragEvent);\n\n // If the event was canceled, use the current element as the new target.\n if (canceled) {\n return currElem;\n }\n\n /* */\n dragEvent = createDragEvent('p-dragenter', drag, event, currTarget);\n canceled = !currElem.dispatchEvent(dragEvent);\n if (canceled) {\n return currElem;\n }\n /* */\n\n // If the current element is the document body, keep the original target.\n const body =\n drag.document instanceof Document\n ? drag.document.body\n : (drag.document.firstElementChild as HTMLElement);\n\n if (currElem === body) {\n return currTarget;\n }\n\n // Dispatch a drag enter event on the document body.\n dragEvent = createDragEvent('lm-dragenter', drag, event, currTarget);\n body.dispatchEvent(dragEvent);\n\n /* */\n dragEvent = createDragEvent('p-dragenter', drag, event, currTarget);\n body.dispatchEvent(dragEvent);\n /* */\n\n // Ignore the event cancellation, and use the body as the new target.\n return body;\n }\n\n /**\n * Dispatch a drag exit event to the indicated element.\n *\n * @param drag - The drag object associated with the action.\n *\n * @param prevTarget - The previous target element, or `null`. This\n * is the previous \"current target element\" from the whatwg spec.\n *\n * @param currTarget - The current drag target element, or `null`. This\n * is the \"current target element\" from the whatwg spec.\n *\n * @param event - The mouse event related to the action.\n *\n * #### Notes\n * This largely implements the drag exit portion of the whatwg spec:\n * https://html.spec.whatwg.org/multipage/interaction.html#drag-and-drop-processing-model\n */\n export function dispatchDragExit(\n drag: Drag,\n prevTarget: Element | null,\n currTarget: Element | null,\n event: MouseEvent\n ): void {\n // If the previous target is null, do nothing.\n if (!prevTarget) {\n return;\n }\n\n // Dispatch the drag exit event to the previous target.\n let dragEvent = createDragEvent('lm-dragexit', drag, event, currTarget);\n prevTarget.dispatchEvent(dragEvent);\n\n /* */\n dragEvent = createDragEvent('p-dragexit', drag, event, currTarget);\n prevTarget.dispatchEvent(dragEvent);\n /* */\n }\n\n /**\n * Dispatch a drag leave event to the indicated element.\n *\n * @param drag - The drag object associated with the action.\n *\n * @param prevTarget - The previous target element, or `null`. This\n * is the previous \"current target element\" from the whatwg spec.\n *\n * @param currTarget - The current drag target element, or `null`. This\n * is the \"current target element\" from the whatwg spec.\n *\n * @param event - The mouse event related to the action.\n *\n * #### Notes\n * This largely implements the drag leave portion of the whatwg spec:\n * https://html.spec.whatwg.org/multipage/interaction.html#drag-and-drop-processing-model\n */\n export function dispatchDragLeave(\n drag: Drag,\n prevTarget: Element | null,\n currTarget: Element | null,\n event: MouseEvent\n ): void {\n // If the previous target is null, do nothing.\n if (!prevTarget) {\n return;\n }\n\n // Dispatch the drag leave event to the previous target.\n let dragEvent = createDragEvent('lm-dragleave', drag, event, currTarget);\n prevTarget.dispatchEvent(dragEvent);\n\n /* */\n dragEvent = createDragEvent('p-dragleave', drag, event, currTarget);\n prevTarget.dispatchEvent(dragEvent);\n /* */\n }\n\n /**\n * Dispatch a drag over event to the indicated element.\n *\n * @param drag - The drag object associated with the action.\n *\n * @param currTarget - The current drag target element, or `null`. This\n * is the \"current target element\" from the whatwg spec.\n *\n * @param event - The mouse event related to the action.\n *\n * @returns The `DropAction` result of the drag over event.\n *\n * #### Notes\n * This largely implements the drag over portion of the whatwg spec:\n * https://html.spec.whatwg.org/multipage/interaction.html#drag-and-drop-processing-model\n */\n export function dispatchDragOver(\n drag: Drag,\n currTarget: Element | null,\n event: MouseEvent\n ): DropAction {\n // If there is no current target, the drop action is none.\n if (!currTarget) {\n return 'none';\n }\n\n // Dispatch the drag over event to the current target.\n let dragEvent = createDragEvent('lm-dragover', drag, event, null);\n let canceled = !currTarget.dispatchEvent(dragEvent);\n\n // If the event was canceled, return the drop action result.\n if (canceled) {\n return dragEvent.dropAction;\n }\n\n /* */\n dragEvent = createDragEvent('p-dragover', drag, event, null);\n canceled = !currTarget.dispatchEvent(dragEvent);\n if (canceled) {\n return dragEvent.dropAction;\n }\n /* */\n\n // Otherwise, the effective drop action is none.\n return 'none';\n }\n\n /**\n * Dispatch a drop event to the indicated element.\n *\n * @param drag - The drag object associated with the action.\n *\n * @param currTarget - The current drag target element, or `null`. This\n * is the \"current target element\" from the whatwg spec.\n *\n * @param event - The mouse event related to the action.\n *\n * @returns The `DropAction` result of the drop event.\n *\n * #### Notes\n * This largely implements the drag over portion of the whatwg spec:\n * https://html.spec.whatwg.org/multipage/interaction.html#drag-and-drop-processing-model\n */\n export function dispatchDrop(\n drag: Drag,\n currTarget: Element | null,\n event: MouseEvent\n ): DropAction {\n // If there is no current target, the drop action is none.\n if (!currTarget) {\n return 'none';\n }\n\n // Dispatch the drop event to the current target.\n let dragEvent = createDragEvent('lm-drop', drag, event, null);\n let canceled = !currTarget.dispatchEvent(dragEvent);\n\n // If the event was canceled, return the drop action result.\n if (canceled) {\n return dragEvent.dropAction;\n }\n\n /* */\n dragEvent = createDragEvent('p-drop', drag, event, null);\n canceled = !currTarget.dispatchEvent(dragEvent);\n if (canceled) {\n return dragEvent.dropAction;\n }\n /* */\n\n // Otherwise, the effective drop action is none.\n return 'none';\n }\n\n /**\n * A lookup table from drop action to bit value.\n */\n const actionTable: { [key: string]: number } = {\n none: 0x0,\n copy: 0x1,\n link: 0x2,\n move: 0x4\n };\n\n /**\n * A lookup table from supported action to drop action bit mask.\n */\n const supportedTable: { [key: string]: number } = {\n none: actionTable['none'],\n copy: actionTable['copy'],\n link: actionTable['link'],\n move: actionTable['move'],\n 'copy-link': actionTable['copy'] | actionTable['link'],\n 'copy-move': actionTable['copy'] | actionTable['move'],\n 'link-move': actionTable['link'] | actionTable['move'],\n all: actionTable['copy'] | actionTable['link'] | actionTable['move']\n };\n\n /**\n * Create a new initialized `IDragEvent` from the given data.\n *\n * @param type - The event type for the drag event.\n *\n * @param drag - The drag object to use for seeding the drag data.\n *\n * @param event - The mouse event to use for seeding the mouse data.\n *\n * @param related - The related target for the event, or `null`.\n *\n * @returns A new object which implements `IDragEvent`.\n */\n function createDragEvent(\n type: string,\n drag: Drag,\n event: MouseEvent,\n related: Element | null\n ): IDragEvent {\n // Create a new mouse event to use as the drag event. Currently,\n // JS engines do now allow user-defined Event subclasses.\n let dragEvent = document.createEvent('MouseEvent');\n\n // Initialize the mouse event data.\n dragEvent.initMouseEvent(\n type,\n true,\n true,\n window,\n 0,\n event.screenX,\n event.screenY,\n event.clientX,\n event.clientY,\n event.ctrlKey,\n event.altKey,\n event.shiftKey,\n event.metaKey,\n event.button,\n related\n );\n\n // Forcefully add the custom drag event properties.\n (dragEvent as any).dropAction = 'none';\n (dragEvent as any).mimeData = drag.mimeData;\n (dragEvent as any).proposedAction = drag.proposedAction;\n (dragEvent as any).supportedActions = drag.supportedActions;\n (dragEvent as any).source = drag.source;\n\n // Return the fully initialized drag event.\n return dragEvent as IDragEvent;\n }\n}\n"],"names":["Private","options","_onScrollFrame","_scrollTarget","element","edge","distance","d","SCROLL_EDGE_SIZE","f","Math","pow","s","max","round","scrollTop","scrollLeft","requestAnimationFrame","_disposed","_dropAction","_override","_currentTarget","_currentElement","_promise","_resolve","this","document","mimeData","dragImage","proposedAction","supportedActions","source","dispose","createMouseEvent","dispatchDragLeave","_finalize","start","clientX","clientY","Promise","resolve","_addListeners","_attachDragImage","reject","event","dispatchEvent","handleEvent","type","_evtMouseMove","_evtMouseUp","_evtKeyDown","preventDefault","stopPropagation","moveDragImage","style","top","left","_updateCurrentTarget","_updateDragScroll","button","action","dispatchDrop","keyCode","addEventListener","_removeListeners","removeEventListener","target","findScrollTarget","setTimeout","prevTarget","currTarget","prevElem","currElem","elementFromPoint","dispatchDragExit","dispatchDragEnter","dispatchDragOver","_setDropAction","classList","add","pointerEvents","position","Document","body","firstElementChild","appendChild","_detachDragImage","parent","parentNode","removeChild","validateAction","Drag","overrideCursor","clear","cursor","doc","id","overrideCursorID","DisposableDelegate","remove","supported","actionTable","supportedTable","createEvent","initMouseEvent","window","x","y","parentElement","scrollable","hasAttribute","offsetX","offsetY","pageXOffset","pageYOffset","r","getBoundingClientRect","right","width","bottom","height","dl","dt","dr","db","min","dsw","scrollWidth","clientWidth","dsh","scrollHeight","clientHeight","shouldScroll","drag","dragEvent","createDragEvent","canceled","dropAction","none","copy","link","move","all","related","screenX","screenY","ctrlKey","altKey","shiftKey","metaKey"],"sourceRoot":""} \ No newline at end of file diff --git a/_static/build/1113.23c9417.js b/_static/build/1113.23c9417.js new file mode 100644 index 0000000..5b0c225 --- /dev/null +++ b/_static/build/1113.23c9417.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[1113],{41113:(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{APPLICATION_JAVASCRIPT_MIMETYPE:()=>APPLICATION_JAVASCRIPT_MIMETYPE,ExperimentalRenderedJavascript:()=>ExperimentalRenderedJavascript,TEXT_JAVASCRIPT_MIMETYPE:()=>TEXT_JAVASCRIPT_MIMETYPE,default:()=>__WEBPACK_DEFAULT_EXPORT__,rendererFactory:()=>rendererFactory});var _jupyterlab_rendermime__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(20040),_jupyterlab_rendermime__WEBPACK_IMPORTED_MODULE_0___default=__webpack_require__.n(_jupyterlab_rendermime__WEBPACK_IMPORTED_MODULE_0__);const TEXT_JAVASCRIPT_MIMETYPE="text/javascript",APPLICATION_JAVASCRIPT_MIMETYPE="application/javascript";function evalInContext(code,element,document,window){return eval(code)}class ExperimentalRenderedJavascript extends _jupyterlab_rendermime__WEBPACK_IMPORTED_MODULE_0__.RenderedJavaScript{render(e){const _=this.translator.load("jupyterlab"),r=()=>{try{const _=e.data[this.mimeType];return _&&evalInContext(_,this.node,document,window),Promise.resolve()}catch(e){return Promise.reject(e)}};if(!e.trusted){const e=document.createElement("pre");e.textContent=_.__("Are you sure that you want to run arbitrary Javascript within your JupyterLab session?");const t=document.createElement("button");return t.textContent=_.__("Run"),this.node.appendChild(e),this.node.appendChild(t),t.onclick=e=>{this.node.textContent="",r()},Promise.resolve()}return r()}}const rendererFactory={safe:!1,mimeTypes:[TEXT_JAVASCRIPT_MIMETYPE,APPLICATION_JAVASCRIPT_MIMETYPE],createRenderer:e=>new ExperimentalRenderedJavascript(e)},extension={id:"@jupyterlab/javascript-extension:factory",rendererFactory,rank:0,dataType:"string"},__WEBPACK_DEFAULT_EXPORT__=extension}}]); +//# sourceMappingURL=1113.23c9417.js.map \ No newline at end of file diff --git a/_static/build/1113.23c9417.js.map b/_static/build/1113.23c9417.js.map new file mode 100644 index 0000000..4d73e05 --- /dev/null +++ b/_static/build/1113.23c9417.js.map @@ -0,0 +1 @@ +{"version":3,"file":"1113.23c9417.js","mappings":"svBAUO,MAAM,yBAA2B,kBAC3B,gCAAkC,yBAE/C,SAAS,cACP,KACA,QACA,SACA,QAGA,OAAO,KAAK,KACd,CAEM,MAAO,uCAAuC,uEAClD,OAAO,GACL,MAAM,EAAQ,KAAK,WAAW,KAAK,cAC7B,EAAmB,KACvB,IACE,MAAM,EAAO,EAAM,KAAK,KAAK,UAI7B,OAHI,GACF,cAAc,EAAM,KAAK,KAAM,SAAU,QAEpC,QAAQ,S,CACf,MAAO,GACP,OAAO,QAAQ,OAAO,E,GAG1B,IAAK,EAAM,QAAS,CAElB,MAAM,EAAM,SAAS,cAAc,OACnC,EAAI,YAAc,EAAM,GACtB,0FAEF,MAAM,EAAS,SAAS,cAAc,UAUtC,OATA,EAAO,YAAc,EAAM,GAAG,OAE9B,KAAK,KAAK,YAAY,GACtB,KAAK,KAAK,YAAY,GAEtB,EAAO,QAAU,IACf,KAAK,KAAK,YAAc,GACnB,GAAkB,EAElB,QAAQ,S,CAEjB,OAAO,GACT,EAMK,MAAM,gBAAgD,CAC3D,MAAM,EACN,UAAW,CAAC,yBAA0B,iCACtC,eAAgB,GAAW,IAAI,+BAA+B,IAG1D,UAAoC,CACxC,GAAI,2CACJ,gBACA,KAAM,EACN,SAAU,UAGZ,oC","sources":["webpack://_JUPYTERLAB.CORE_OUTPUT/../src/index.ts"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/_static/build/1125.129d070.js b/_static/build/1125.129d070.js new file mode 100644 index 0000000..76f61e4 --- /dev/null +++ b/_static/build/1125.129d070.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[1125],{51125:(e,t,s)=>{s.r(t),s.d(t,{IDocumentProviderFactory:()=>h,ProviderMock:()=>c,WebSocketProviderWithLocks:()=>B,getAnonymousUserName:()=>o,getRandomColor:()=>a,moonsOfJupyter:()=>n,userColors:()=>i});const n=["Metis","Adrastea","Amalthea","Thebe","Io","Europa","Ganymede","Callisto","Themisto","Leda","Ersa","Pandia","Himalia","Lysithea","Elara","Dia","Carpo","Valetudo","Euporie","Eupheme","Helike","Euanthe","Hermippe","Praxidike","Thyone","Thelxinoe","Ananke","Mneme","Orthosie","Harpalyke","Iocaste","Erinome","Aitne","Herse","Taygete","Eukelade","Carme","Isonoe","Autonoe","Philophrosyne","Cyllene","Pasithee","Pasiphae","Sponde","Eurydome","Kalyke","Hegemone","Kale","Kallichore","Chaldene","Arche","Eirene","Kore","Megaclite","Aoede","Callirrhoe","Sinope"],o=()=>"Anonymous "+n[Math.floor(Math.random()*n.length)],i=["#12A0D3","#17AB30","#CC8500","#A79011","#ee6352","#609DA9","#4BA749","#00A1B3"],a=()=>i[Math.floor(Math.random()*i.length)];class c{requestInitialContent(){return Promise.resolve(!1)}putInitializedState(){}acquireLock(){return Promise.resolve(0)}releaseLock(e){}destroy(){}setPath(e){}}var r=s(26169);const h=new r.Token("@jupyterlab/docprovider:IDocumentProviderFactory");var l=s(27164),d=s(44918),u=s(79915),w=s(31234),_=s(30996),m=s(99622);const f=new Map,y="undefined"==typeof BroadcastChannel?class{constructor(e){this.room=e,this.onmessage=null,m.z((t=>t.key===e&&null!==this.onmessage&&this.onmessage({data:_.Gh(t.newValue||"")})))}postMessage(e){m.X.setItem(this.room,_.s3(_.eh(e)))}}:BroadcastChannel,p=e=>w.Yu(f,e,(()=>{const t=new Set,s=new y(e);return s.onmessage=e=>t.forEach((t=>t(e.data,"broadcastchannel"))),{bc:s,subs:t}})),g=(e,t,s=null)=>{const n=p(e);n.bc.postMessage(t),n.subs.forEach((e=>e(t,s)))};var v=s(9817);const b=(e,t)=>{d.uE(e,0);const s=u.encodeStateVector(t);d.mP(e,s)},k=(e,t,s)=>{d.uE(e,1),d.mP(e,u.encodeStateAsUpdate(t,s))},C=(e,t,s)=>{try{u.applyUpdate(t,l.HN(e),s)}catch(e){console.error("Caught error while handling a Yjs update",e)}},I=C;var E=s(70528),M=s(32549),L=s(41865),U=s(41042),P=s(18533);const R=[];R[0]=(e,t,s,n,o)=>{d.uE(e,0);const i=((e,t,s,n)=>{const o=l.yg(e);switch(o){case 0:((e,t,s)=>{k(t,s,l.HN(e))})(e,t,s);break;case 1:C(e,s,n);break;case 2:I(e,s,n);break;default:throw new Error("Unknown message type")}return o})(t,e,s.doc,s);n&&1===i&&!s.synced&&(s.synced=!0)},R[3]=(e,t,s,n,o)=>{d.uE(e,1),d.mP(e,E.xq(s.awareness,Array.from(s.awareness.getStates().keys())))},R[1]=(e,t,s,n,o)=>{E.oy(s.awareness,l.HN(t),s)},R[2]=(e,t,s,n,o)=>{((e,t,s)=>{0===l.yg(e)&&s(0,l.kf(e))})(t,s.doc,((e,t)=>q(s,t)))};const q=(e,t)=>console.warn(`Permission denied to access ${e.url}.\n${t}`),A=(e,t,s)=>{const n=l.l1(t),o=d.Mf(),i=l.yg(n),a=e.messageHandlers[i];return a?a(o,n,e,s,i):console.error("Unable to compute message"),o},S=e=>{if(e.shouldConnect&&null===e.ws){const t=new e._WS(e.url);t.binaryType="arraybuffer",e.ws=t,e.wsconnecting=!0,e.wsconnected=!1,e.synced=!1,t.onmessage=s=>{e.wsLastMessageReceived=v.ZG();const n=A(e,new Uint8Array(s.data),!0);d.kE(n)>1&&t.send(d._f(n))},t.onerror=t=>{e.emit("connection-error",[t,e])},t.onclose=t=>{e.emit("connection-close",[t,e]),e.ws=null,e.wsconnecting=!1,e.wsconnected?(e.wsconnected=!1,e.synced=!1,E.Ag(e.awareness,Array.from(e.awareness.getStates().keys()).filter((t=>t!==e.doc.clientID)),e),e.emit("status",[{status:"disconnected"}])):e.wsUnsuccessfulReconnects++,setTimeout(S,L.VV(100*L.sQ(2,e.wsUnsuccessfulReconnects),e.maxBackoffTime),e)},t.onopen=()=>{e.wsLastMessageReceived=v.ZG(),e.wsconnecting=!1,e.wsconnected=!0,e.wsUnsuccessfulReconnects=0,e.emit("status",[{status:"connected"}]);const s=d.Mf();if(d.uE(s,0),b(s,e.doc),t.send(d._f(s)),null!==e.awareness.getLocalState()){const s=d.Mf();d.uE(s,1),d.mP(s,E.xq(e.awareness,[e.doc.clientID])),t.send(d._f(s))}},e.emit("status",[{status:"connecting"}])}},H=(e,t)=>{e.wsconnected&&e.ws.send(t),e.bcconnected&&g(e.bcChannel,t,e)};class T extends M.y{constructor(e,t,s,{connect:n=!0,awareness:o=new E.GL(s),params:i={},WebSocketPolyfill:a=WebSocket,resyncInterval:c=-1,maxBackoffTime:r=2500,disableBc:h=!1}={}){for(super();"/"===e[e.length-1];)e=e.slice(0,e.length-1);const l=(e=>U.UI(e,((e,t)=>`${encodeURIComponent(t)}=${encodeURIComponent(e)}`)).join("&"))(i);this.maxBackoffTime=r,this.bcChannel=e+"/"+t,this.url=e+"/"+t+(0===l.length?"":"?"+l),this.roomname=t,this.doc=s,this._WS=a,this.awareness=o,this.wsconnected=!1,this.wsconnecting=!1,this.bcconnected=!1,this.disableBc=h,this.wsUnsuccessfulReconnects=0,this.messageHandlers=R.slice(),this._synced=!1,this.ws=null,this.wsLastMessageReceived=0,this.shouldConnect=n,this._resyncInterval=0,c>0&&(this._resyncInterval=setInterval((()=>{if(this.ws&&this.ws.readyState===WebSocket.OPEN){const e=d.Mf();d.uE(e,0),b(e,s),this.ws.send(d._f(e))}}),c)),this._bcSubscriber=(e,t)=>{if(t!==this){const t=A(this,new Uint8Array(e),!1);d.kE(t)>1&&g(this.bcChannel,d._f(t),this)}},this._updateHandler=(e,t)=>{if(t!==this){const t=d.Mf();d.uE(t,0),((e,t)=>{d.uE(e,2),d.mP(e,t)})(t,e),H(this,d._f(t))}},this.doc.on("update",this._updateHandler),this._awarenessUpdateHandler=({added:e,updated:t,removed:s},n)=>{const i=e.concat(t).concat(s),a=d.Mf();d.uE(a,1),d.mP(a,E.xq(o,i)),H(this,d._f(a))},this._unloadHandler=()=>{E.Ag(this.awareness,[s.clientID],"window unload")},"undefined"!=typeof window?window.addEventListener("unload",this._unloadHandler):P.on("exit",this._unloadHandler),o.on("update",this._awarenessUpdateHandler),this._checkInterval=setInterval((()=>{this.wsconnected&&3e4{const i=l.Jl(t),a=this._currentLockRequest;this._currentLockRequest=null,a&&a.resolve(i)},this.messageHandlers[125]=(e,t,s,n,o)=>{const i=l.iU(t);i.byteLength>0&&u.applyUpdate(this.doc,i);const a=this._initialContentRequest;this._initialContentRequest=null,a&&a.resolve(i.byteLength>0)},this._isInitialized=!1,this._onConnectionStatus=this._onConnectionStatus.bind(this),this.on("status",this._onConnectionStatus)}setPath(e){if(e!==this._path){this._path=e;const t=d.Mf();d.cW(t,123);const s=unescape(encodeURIComponent(this._contentType+":"+e));for(let e=0;e{var e;return null===(e=this._initialContentRequest)||void 0===e?void 0:e.resolve(!1)}),1e3)),this._initialContentRequest.promise}putInitializedState(){const e=d.Mf();d.uE(e,124),d.HK(e,u.encodeStateAsUpdate(this.doc)),this._sendMessage(d._f(e)),this._isInitialized=!0}acquireLock(){if(this._currentLockRequest)return this._currentLockRequest.promise;let e,t;this._sendMessage(new Uint8Array([127])),this._requestLockInterval&&clearInterval(this._requestLockInterval),this._requestLockInterval=setInterval((()=>{this.wsconnected&&this._sendMessage(new Uint8Array([127]))}),500);const s=new Promise(((s,n)=>{e=s,t=n}));return this._currentLockRequest={promise:s,resolve:e,reject:t},s}releaseLock(e){const t=d.Mf();d.uE(t,126),d.Ep(t,e),this._sendMessage(d._f(t)),this._requestLockInterval&&clearInterval(this._requestLockInterval)}_sendMessage(e){const t=()=>{setTimeout((()=>{this.wsconnected?this.ws.send(e):this.once("status",t)}),0)};t()}async _onConnectionStatus(e){if(this._isInitialized&&"connected"===e.status){const e=await this.acquireLock();await this.requestInitialContent()||this.putInitializedState(),this.releaseLock(e)}}}}}]); +//# sourceMappingURL=1125.129d070.js.map \ No newline at end of file diff --git a/_static/build/1125.129d070.js.map b/_static/build/1125.129d070.js.map new file mode 100644 index 0000000..5c44452 --- /dev/null +++ b/_static/build/1125.129d070.js.map @@ -0,0 +1 @@ +{"version":3,"file":"1125.129d070.js","mappings":"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","sources":["webpack://_JUPYTERLAB.CORE_OUTPUT/../src/awareness.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/mock.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/tokens.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/lib0/broadcastchannel.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/y-protocols/sync.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/y-websocket/src/y-websocket.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/y-protocols/auth.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/lib0/url.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/yprovider.ts"],"sourcesContent":[null,null,null,"/* eslint-env browser */\n\n/**\n * Helpers for cross-tab communication using broadcastchannel with LocalStorage fallback.\n *\n * ```js\n * // In browser window A:\n * broadcastchannel.subscribe('my events', data => console.log(data))\n * broadcastchannel.publish('my events', 'Hello world!') // => A: 'Hello world!' fires synchronously in same tab\n *\n * // In browser window B:\n * broadcastchannel.publish('my events', 'hello from tab B') // => A: 'hello from tab B'\n * ```\n *\n * @module broadcastchannel\n */\n\n// @todo before next major: use Uint8Array instead as buffer object\n\nimport * as map from './map.js'\nimport * as buffer from './buffer.js'\nimport * as storage from './storage.js'\n\n/**\n * @typedef {Object} Channel\n * @property {Set} Channel.subs\n * @property {any} Channel.bc\n */\n\n/**\n * @type {Map}\n */\nconst channels = new Map()\n\nclass LocalStoragePolyfill {\n /**\n * @param {string} room\n */\n constructor (room) {\n this.room = room\n /**\n * @type {null|function({data:ArrayBuffer}):void}\n */\n this.onmessage = null\n storage.onChange(e => e.key === room && this.onmessage !== null && this.onmessage({ data: buffer.fromBase64(e.newValue || '') }))\n }\n\n /**\n * @param {ArrayBuffer} buf\n */\n postMessage (buf) {\n storage.varStorage.setItem(this.room, buffer.toBase64(buffer.createUint8ArrayFromArrayBuffer(buf)))\n }\n}\n\n// Use BroadcastChannel or Polyfill\nconst BC = typeof BroadcastChannel === 'undefined' ? LocalStoragePolyfill : BroadcastChannel\n\n/**\n * @param {string} room\n * @return {Channel}\n */\nconst getChannel = room =>\n map.setIfUndefined(channels, room, () => {\n const subs = new Set()\n const bc = new BC(room)\n /**\n * @param {{data:ArrayBuffer}} e\n */\n bc.onmessage = e => subs.forEach(sub => sub(e.data, 'broadcastchannel'))\n return {\n bc, subs\n }\n })\n\n/**\n * Subscribe to global `publish` events.\n *\n * @function\n * @param {string} room\n * @param {function(any, any):any} f\n */\nexport const subscribe = (room, f) => getChannel(room).subs.add(f)\n\n/**\n * Unsubscribe from `publish` global events.\n *\n * @function\n * @param {string} room\n * @param {function(any, any):any} f\n */\nexport const unsubscribe = (room, f) => getChannel(room).subs.delete(f)\n\n/**\n * Publish data to all subscribers (including subscribers on this tab)\n *\n * @function\n * @param {string} room\n * @param {any} data\n * @param {any} [origin]\n */\nexport const publish = (room, data, origin = null) => {\n const c = getChannel(room)\n c.bc.postMessage(data)\n c.subs.forEach(sub => sub(data, origin))\n}\n","/**\n * @module sync-protocol\n */\n\nimport * as encoding from 'lib0/encoding'\nimport * as decoding from 'lib0/decoding'\nimport * as Y from 'yjs'\n\n/**\n * @typedef {Map} StateMap\n */\n\n/**\n * Core Yjs defines two message types:\n * • YjsSyncStep1: Includes the State Set of the sending client. When received, the client should reply with YjsSyncStep2.\n * • YjsSyncStep2: Includes all missing structs and the complete delete set. When received, the client is assured that it\n * received all information from the remote client.\n *\n * In a peer-to-peer network, you may want to introduce a SyncDone message type. Both parties should initiate the connection\n * with SyncStep1. When a client received SyncStep2, it should reply with SyncDone. When the local client received both\n * SyncStep2 and SyncDone, it is assured that it is synced to the remote client.\n *\n * In a client-server model, you want to handle this differently: The client should initiate the connection with SyncStep1.\n * When the server receives SyncStep1, it should reply with SyncStep2 immediately followed by SyncStep1. The client replies\n * with SyncStep2 when it receives SyncStep1. Optionally the server may send a SyncDone after it received SyncStep2, so the\n * client knows that the sync is finished. There are two reasons for this more elaborated sync model: 1. This protocol can\n * easily be implemented on top of http and websockets. 2. The server shoul only reply to requests, and not initiate them.\n * Therefore it is necesarry that the client initiates the sync.\n *\n * Construction of a message:\n * [messageType : varUint, message definition..]\n *\n * Note: A message does not include information about the room name. This must to be handled by the upper layer protocol!\n *\n * stringify[messageType] stringifies a message definition (messageType is already read from the bufffer)\n */\n\nexport const messageYjsSyncStep1 = 0\nexport const messageYjsSyncStep2 = 1\nexport const messageYjsUpdate = 2\n\n/**\n * Create a sync step 1 message based on the state of the current shared document.\n *\n * @param {encoding.Encoder} encoder\n * @param {Y.Doc} doc\n */\nexport const writeSyncStep1 = (encoder, doc) => {\n encoding.writeVarUint(encoder, messageYjsSyncStep1)\n const sv = Y.encodeStateVector(doc)\n encoding.writeVarUint8Array(encoder, sv)\n}\n\n/**\n * @param {encoding.Encoder} encoder\n * @param {Y.Doc} doc\n * @param {Uint8Array} [encodedStateVector]\n */\nexport const writeSyncStep2 = (encoder, doc, encodedStateVector) => {\n encoding.writeVarUint(encoder, messageYjsSyncStep2)\n encoding.writeVarUint8Array(encoder, Y.encodeStateAsUpdate(doc, encodedStateVector))\n}\n\n/**\n * Read SyncStep1 message and reply with SyncStep2.\n *\n * @param {decoding.Decoder} decoder The reply to the received message\n * @param {encoding.Encoder} encoder The received message\n * @param {Y.Doc} doc\n */\nexport const readSyncStep1 = (decoder, encoder, doc) =>\n writeSyncStep2(encoder, doc, decoding.readVarUint8Array(decoder))\n\n/**\n * Read and apply Structs and then DeleteStore to a y instance.\n *\n * @param {decoding.Decoder} decoder\n * @param {Y.Doc} doc\n * @param {any} transactionOrigin\n */\nexport const readSyncStep2 = (decoder, doc, transactionOrigin) => {\n try {\n Y.applyUpdate(doc, decoding.readVarUint8Array(decoder), transactionOrigin)\n } catch (error) {\n // This catches errors that are thrown by event handlers\n console.error('Caught error while handling a Yjs update', error)\n }\n}\n\n/**\n * @param {encoding.Encoder} encoder\n * @param {Uint8Array} update\n */\nexport const writeUpdate = (encoder, update) => {\n encoding.writeVarUint(encoder, messageYjsUpdate)\n encoding.writeVarUint8Array(encoder, update)\n}\n\n/**\n * Read and apply Structs and then DeleteStore to a y instance.\n *\n * @param {decoding.Decoder} decoder\n * @param {Y.Doc} doc\n * @param {any} transactionOrigin\n */\nexport const readUpdate = readSyncStep2\n\n/**\n * @param {decoding.Decoder} decoder A message received from another client\n * @param {encoding.Encoder} encoder The reply message. Will not be sent if empty.\n * @param {Y.Doc} doc\n * @param {any} transactionOrigin\n */\nexport const readSyncMessage = (decoder, encoder, doc, transactionOrigin) => {\n const messageType = decoding.readVarUint(decoder)\n switch (messageType) {\n case messageYjsSyncStep1:\n readSyncStep1(decoder, encoder, doc)\n break\n case messageYjsSyncStep2:\n readSyncStep2(decoder, doc, transactionOrigin)\n break\n case messageYjsUpdate:\n readUpdate(decoder, doc, transactionOrigin)\n break\n default:\n throw new Error('Unknown message type')\n }\n return messageType\n}\n","/**\n * @module provider/websocket\n */\n\n/* eslint-env browser */\n\nimport * as Y from 'yjs' // eslint-disable-line\nimport * as bc from 'lib0/broadcastchannel'\nimport * as time from 'lib0/time'\nimport * as encoding from 'lib0/encoding'\nimport * as decoding from 'lib0/decoding'\nimport * as syncProtocol from 'y-protocols/sync'\nimport * as authProtocol from 'y-protocols/auth'\nimport * as awarenessProtocol from 'y-protocols/awareness'\nimport { Observable } from 'lib0/observable'\nimport * as math from 'lib0/math'\nimport * as url from 'lib0/url'\n\nexport const messageSync = 0\nexport const messageQueryAwareness = 3\nexport const messageAwareness = 1\nexport const messageAuth = 2\n\n/**\n * encoder, decoder, provider, emitSynced, messageType\n * @type {Array}\n */\nconst messageHandlers = []\n\nmessageHandlers[messageSync] = (\n encoder,\n decoder,\n provider,\n emitSynced,\n _messageType\n) => {\n encoding.writeVarUint(encoder, messageSync)\n const syncMessageType = syncProtocol.readSyncMessage(\n decoder,\n encoder,\n provider.doc,\n provider\n )\n if (\n emitSynced && syncMessageType === syncProtocol.messageYjsSyncStep2 &&\n !provider.synced\n ) {\n provider.synced = true\n }\n}\n\nmessageHandlers[messageQueryAwareness] = (\n encoder,\n _decoder,\n provider,\n _emitSynced,\n _messageType\n) => {\n encoding.writeVarUint(encoder, messageAwareness)\n encoding.writeVarUint8Array(\n encoder,\n awarenessProtocol.encodeAwarenessUpdate(\n provider.awareness,\n Array.from(provider.awareness.getStates().keys())\n )\n )\n}\n\nmessageHandlers[messageAwareness] = (\n _encoder,\n decoder,\n provider,\n _emitSynced,\n _messageType\n) => {\n awarenessProtocol.applyAwarenessUpdate(\n provider.awareness,\n decoding.readVarUint8Array(decoder),\n provider\n )\n}\n\nmessageHandlers[messageAuth] = (\n _encoder,\n decoder,\n provider,\n _emitSynced,\n _messageType\n) => {\n authProtocol.readAuthMessage(\n decoder,\n provider.doc,\n (_ydoc, reason) => permissionDeniedHandler(provider, reason)\n )\n}\n\n// @todo - this should depend on awareness.outdatedTime\nconst messageReconnectTimeout = 30000\n\n/**\n * @param {WebsocketProvider} provider\n * @param {string} reason\n */\nconst permissionDeniedHandler = (provider, reason) =>\n console.warn(`Permission denied to access ${provider.url}.\\n${reason}`)\n\n/**\n * @param {WebsocketProvider} provider\n * @param {Uint8Array} buf\n * @param {boolean} emitSynced\n * @return {encoding.Encoder}\n */\nconst readMessage = (provider, buf, emitSynced) => {\n const decoder = decoding.createDecoder(buf)\n const encoder = encoding.createEncoder()\n const messageType = decoding.readVarUint(decoder)\n const messageHandler = provider.messageHandlers[messageType]\n if (/** @type {any} */ (messageHandler)) {\n messageHandler(encoder, decoder, provider, emitSynced, messageType)\n } else {\n console.error('Unable to compute message')\n }\n return encoder\n}\n\n/**\n * @param {WebsocketProvider} provider\n */\nconst setupWS = (provider) => {\n if (provider.shouldConnect && provider.ws === null) {\n const websocket = new provider._WS(provider.url)\n websocket.binaryType = 'arraybuffer'\n provider.ws = websocket\n provider.wsconnecting = true\n provider.wsconnected = false\n provider.synced = false\n\n websocket.onmessage = (event) => {\n provider.wsLastMessageReceived = time.getUnixTime()\n const encoder = readMessage(provider, new Uint8Array(event.data), true)\n if (encoding.length(encoder) > 1) {\n websocket.send(encoding.toUint8Array(encoder))\n }\n }\n websocket.onerror = (event) => {\n provider.emit('connection-error', [event, provider])\n }\n websocket.onclose = (event) => {\n provider.emit('connection-close', [event, provider])\n provider.ws = null\n provider.wsconnecting = false\n if (provider.wsconnected) {\n provider.wsconnected = false\n provider.synced = false\n // update awareness (all users except local left)\n awarenessProtocol.removeAwarenessStates(\n provider.awareness,\n Array.from(provider.awareness.getStates().keys()).filter((client) =>\n client !== provider.doc.clientID\n ),\n provider\n )\n provider.emit('status', [{\n status: 'disconnected'\n }])\n } else {\n provider.wsUnsuccessfulReconnects++\n }\n // Start with no reconnect timeout and increase timeout by\n // using exponential backoff starting with 100ms\n setTimeout(\n setupWS,\n math.min(\n math.pow(2, provider.wsUnsuccessfulReconnects) * 100,\n provider.maxBackoffTime\n ),\n provider\n )\n }\n websocket.onopen = () => {\n provider.wsLastMessageReceived = time.getUnixTime()\n provider.wsconnecting = false\n provider.wsconnected = true\n provider.wsUnsuccessfulReconnects = 0\n provider.emit('status', [{\n status: 'connected'\n }])\n // always send sync step 1 when connected\n const encoder = encoding.createEncoder()\n encoding.writeVarUint(encoder, messageSync)\n syncProtocol.writeSyncStep1(encoder, provider.doc)\n websocket.send(encoding.toUint8Array(encoder))\n // broadcast local awareness state\n if (provider.awareness.getLocalState() !== null) {\n const encoderAwarenessState = encoding.createEncoder()\n encoding.writeVarUint(encoderAwarenessState, messageAwareness)\n encoding.writeVarUint8Array(\n encoderAwarenessState,\n awarenessProtocol.encodeAwarenessUpdate(provider.awareness, [\n provider.doc.clientID\n ])\n )\n websocket.send(encoding.toUint8Array(encoderAwarenessState))\n }\n }\n\n provider.emit('status', [{\n status: 'connecting'\n }])\n }\n}\n\n/**\n * @param {WebsocketProvider} provider\n * @param {ArrayBuffer} buf\n */\nconst broadcastMessage = (provider, buf) => {\n if (provider.wsconnected) {\n /** @type {WebSocket} */ (provider.ws).send(buf)\n }\n if (provider.bcconnected) {\n bc.publish(provider.bcChannel, buf, provider)\n }\n}\n\n/**\n * Websocket Provider for Yjs. Creates a websocket connection to sync the shared document.\n * The document name is attached to the provided url. I.e. the following example\n * creates a websocket connection to http://localhost:1234/my-document-name\n *\n * @example\n * import * as Y from 'yjs'\n * import { WebsocketProvider } from 'y-websocket'\n * const doc = new Y.Doc()\n * const provider = new WebsocketProvider('http://localhost:1234', 'my-document-name', doc)\n *\n * @extends {Observable}\n */\nexport class WebsocketProvider extends Observable {\n /**\n * @param {string} serverUrl\n * @param {string} roomname\n * @param {Y.Doc} doc\n * @param {object} [opts]\n * @param {boolean} [opts.connect]\n * @param {awarenessProtocol.Awareness} [opts.awareness]\n * @param {Object} [opts.params]\n * @param {typeof WebSocket} [opts.WebSocketPolyfill] Optionall provide a WebSocket polyfill\n * @param {number} [opts.resyncInterval] Request server state every `resyncInterval` milliseconds\n * @param {number} [opts.maxBackoffTime] Maximum amount of time to wait before trying to reconnect (we try to reconnect using exponential backoff)\n * @param {boolean} [opts.disableBc] Disable cross-tab BroadcastChannel communication\n */\n constructor (serverUrl, roomname, doc, {\n connect = true,\n awareness = new awarenessProtocol.Awareness(doc),\n params = {},\n WebSocketPolyfill = WebSocket,\n resyncInterval = -1,\n maxBackoffTime = 2500,\n disableBc = false\n } = {}) {\n super()\n // ensure that url is always ends with /\n while (serverUrl[serverUrl.length - 1] === '/') {\n serverUrl = serverUrl.slice(0, serverUrl.length - 1)\n }\n const encodedParams = url.encodeQueryParams(params)\n this.maxBackoffTime = maxBackoffTime\n this.bcChannel = serverUrl + '/' + roomname\n this.url = serverUrl + '/' + roomname +\n (encodedParams.length === 0 ? '' : '?' + encodedParams)\n this.roomname = roomname\n this.doc = doc\n this._WS = WebSocketPolyfill\n this.awareness = awareness\n this.wsconnected = false\n this.wsconnecting = false\n this.bcconnected = false\n this.disableBc = disableBc\n this.wsUnsuccessfulReconnects = 0\n this.messageHandlers = messageHandlers.slice()\n /**\n * @type {boolean}\n */\n this._synced = false\n /**\n * @type {WebSocket?}\n */\n this.ws = null\n this.wsLastMessageReceived = 0\n /**\n * Whether to connect to other peers or not\n * @type {boolean}\n */\n this.shouldConnect = connect\n\n /**\n * @type {number}\n */\n this._resyncInterval = 0\n if (resyncInterval > 0) {\n this._resyncInterval = /** @type {any} */ (setInterval(() => {\n if (this.ws && this.ws.readyState === WebSocket.OPEN) {\n // resend sync step 1\n const encoder = encoding.createEncoder()\n encoding.writeVarUint(encoder, messageSync)\n syncProtocol.writeSyncStep1(encoder, doc)\n this.ws.send(encoding.toUint8Array(encoder))\n }\n }, resyncInterval))\n }\n\n /**\n * @param {ArrayBuffer} data\n * @param {any} origin\n */\n this._bcSubscriber = (data, origin) => {\n if (origin !== this) {\n const encoder = readMessage(this, new Uint8Array(data), false)\n if (encoding.length(encoder) > 1) {\n bc.publish(this.bcChannel, encoding.toUint8Array(encoder), this)\n }\n }\n }\n /**\n * Listens to Yjs updates and sends them to remote peers (ws and broadcastchannel)\n * @param {Uint8Array} update\n * @param {any} origin\n */\n this._updateHandler = (update, origin) => {\n if (origin !== this) {\n const encoder = encoding.createEncoder()\n encoding.writeVarUint(encoder, messageSync)\n syncProtocol.writeUpdate(encoder, update)\n broadcastMessage(this, encoding.toUint8Array(encoder))\n }\n }\n this.doc.on('update', this._updateHandler)\n /**\n * @param {any} changed\n * @param {any} _origin\n */\n this._awarenessUpdateHandler = ({ added, updated, removed }, _origin) => {\n const changedClients = added.concat(updated).concat(removed)\n const encoder = encoding.createEncoder()\n encoding.writeVarUint(encoder, messageAwareness)\n encoding.writeVarUint8Array(\n encoder,\n awarenessProtocol.encodeAwarenessUpdate(awareness, changedClients)\n )\n broadcastMessage(this, encoding.toUint8Array(encoder))\n }\n this._unloadHandler = () => {\n awarenessProtocol.removeAwarenessStates(\n this.awareness,\n [doc.clientID],\n 'window unload'\n )\n }\n if (typeof window !== 'undefined') {\n window.addEventListener('unload', this._unloadHandler)\n } else if (typeof process !== 'undefined') {\n process.on('exit', this._unloadHandler)\n }\n awareness.on('update', this._awarenessUpdateHandler)\n this._checkInterval = /** @type {any} */ (setInterval(() => {\n if (\n this.wsconnected &&\n messageReconnectTimeout <\n time.getUnixTime() - this.wsLastMessageReceived\n ) {\n // no message received in a long time - not even your own awareness\n // updates (which are updated every 15 seconds)\n /** @type {WebSocket} */ (this.ws).close()\n }\n }, messageReconnectTimeout / 10))\n if (connect) {\n this.connect()\n }\n }\n\n /**\n * @type {boolean}\n */\n get synced () {\n return this._synced\n }\n\n set synced (state) {\n if (this._synced !== state) {\n this._synced = state\n this.emit('synced', [state])\n this.emit('sync', [state])\n }\n }\n\n destroy () {\n if (this._resyncInterval !== 0) {\n clearInterval(this._resyncInterval)\n }\n clearInterval(this._checkInterval)\n this.disconnect()\n if (typeof window !== 'undefined') {\n window.removeEventListener('unload', this._unloadHandler)\n } else if (typeof process !== 'undefined') {\n process.off('exit', this._unloadHandler)\n }\n this.awareness.off('update', this._awarenessUpdateHandler)\n this.doc.off('update', this._updateHandler)\n super.destroy()\n }\n\n connectBc () {\n if (this.disableBc) {\n return\n }\n if (!this.bcconnected) {\n bc.subscribe(this.bcChannel, this._bcSubscriber)\n this.bcconnected = true\n }\n // send sync step1 to bc\n // write sync step 1\n const encoderSync = encoding.createEncoder()\n encoding.writeVarUint(encoderSync, messageSync)\n syncProtocol.writeSyncStep1(encoderSync, this.doc)\n bc.publish(this.bcChannel, encoding.toUint8Array(encoderSync), this)\n // broadcast local state\n const encoderState = encoding.createEncoder()\n encoding.writeVarUint(encoderState, messageSync)\n syncProtocol.writeSyncStep2(encoderState, this.doc)\n bc.publish(this.bcChannel, encoding.toUint8Array(encoderState), this)\n // write queryAwareness\n const encoderAwarenessQuery = encoding.createEncoder()\n encoding.writeVarUint(encoderAwarenessQuery, messageQueryAwareness)\n bc.publish(\n this.bcChannel,\n encoding.toUint8Array(encoderAwarenessQuery),\n this\n )\n // broadcast local awareness state\n const encoderAwarenessState = encoding.createEncoder()\n encoding.writeVarUint(encoderAwarenessState, messageAwareness)\n encoding.writeVarUint8Array(\n encoderAwarenessState,\n awarenessProtocol.encodeAwarenessUpdate(this.awareness, [\n this.doc.clientID\n ])\n )\n bc.publish(\n this.bcChannel,\n encoding.toUint8Array(encoderAwarenessState),\n this\n )\n }\n\n disconnectBc () {\n // broadcast message with local awareness state set to null (indicating disconnect)\n const encoder = encoding.createEncoder()\n encoding.writeVarUint(encoder, messageAwareness)\n encoding.writeVarUint8Array(\n encoder,\n awarenessProtocol.encodeAwarenessUpdate(this.awareness, [\n this.doc.clientID\n ], new Map())\n )\n broadcastMessage(this, encoding.toUint8Array(encoder))\n if (this.bcconnected) {\n bc.unsubscribe(this.bcChannel, this._bcSubscriber)\n this.bcconnected = false\n }\n }\n\n disconnect () {\n this.shouldConnect = false\n this.disconnectBc()\n if (this.ws !== null) {\n this.ws.close()\n }\n }\n\n connect () {\n this.shouldConnect = true\n if (!this.wsconnected && this.ws === null) {\n setupWS(this)\n this.connectBc()\n }\n }\n}\n","\nimport * as Y from 'yjs' // eslint-disable-line\nimport * as encoding from 'lib0/encoding'\nimport * as decoding from 'lib0/decoding'\n\nexport const messagePermissionDenied = 0\n\n/**\n * @param {encoding.Encoder} encoder\n * @param {string} reason\n */\nexport const writePermissionDenied = (encoder, reason) => {\n encoding.writeVarUint(encoder, messagePermissionDenied)\n encoding.writeVarString(encoder, reason)\n}\n\n/**\n * @callback PermissionDeniedHandler\n * @param {any} y\n * @param {string} reason\n */\n\n/**\n *\n * @param {decoding.Decoder} decoder\n * @param {Y.Doc} y\n * @param {PermissionDeniedHandler} permissionDeniedHandler\n */\nexport const readAuthMessage = (decoder, y, permissionDeniedHandler) => {\n switch (decoding.readVarUint(decoder)) {\n case messagePermissionDenied: permissionDeniedHandler(y, decoding.readVarString(decoder))\n }\n}\n","/**\n * Utility module to work with urls.\n *\n * @module url\n */\n\nimport * as object from './object.js'\n\n/**\n * Parse query parameters from an url.\n *\n * @param {string} url\n * @return {Object}\n */\nexport const decodeQueryParams = url => {\n /**\n * @type {Object}\n */\n const query = {}\n const urlQuerySplit = url.split('?')\n const pairs = urlQuerySplit[urlQuerySplit.length - 1].split('&')\n for (var i = 0; i < pairs.length; i++) {\n const item = pairs[i]\n if (item.length > 0) {\n const pair = item.split('=')\n query[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1] || '')\n }\n }\n return query\n}\n\n/**\n * @param {Object} params\n * @return {string}\n */\nexport const encodeQueryParams = params =>\n object.map(params, (val, key) => `${encodeURIComponent(key)}=${encodeURIComponent(val)}`).join('&')\n"],"names":["channels","Map","BC","BroadcastChannel","constructor","room","this","onmessage","storage","e","key","data","buffer","newValue","postMessage","buf","getChannel","map","subs","Set","bc","forEach","sub","publish","origin","c","writeSyncStep1","encoder","doc","sv","writeSyncStep2","encodedStateVector","readSyncStep2","decoder","transactionOrigin","decoding","error","console","readUpdate","messageHandlers","provider","emitSynced","_messageType","syncMessageType","messageType","readSyncStep1","Error","synced","_decoder","_emitSynced","awareness","Array","from","getStates","keys","_encoder","y","permissionDeniedHandler","_ydoc","reason","warn","url","readMessage","messageHandler","setupWS","shouldConnect","ws","websocket","_WS","binaryType","wsconnecting","wsconnected","event","wsLastMessageReceived","time","Uint8Array","send","onerror","emit","onclose","filter","client","clientID","status","wsUnsuccessfulReconnects","setTimeout","math","maxBackoffTime","onopen","getLocalState","encoderAwarenessState","broadcastMessage","bcconnected","bcChannel","WebsocketProvider","serverUrl","roomname","connect","params","WebSocketPolyfill","WebSocket","resyncInterval","disableBc","super","length","slice","encodedParams","object","val","encodeURIComponent","join","_synced","_resyncInterval","setInterval","readyState","OPEN","_bcSubscriber","_updateHandler","update","on","_awarenessUpdateHandler","added","updated","removed","_origin","changedClients","concat","_unloadHandler","window","addEventListener","process","_checkInterval","close","messageReconnectTimeout","state","destroy","clearInterval","disconnect","removeEventListener","off","connectBc","f","add","encoderSync","encoderState","encoderAwarenessQuery","disconnectBc","delete"],"sourceRoot":""} \ No newline at end of file diff --git a/_static/build/1163.ac28297.js b/_static/build/1163.ac28297.js new file mode 100644 index 0000000..d62dcdf --- /dev/null +++ b/_static/build/1163.ac28297.js @@ -0,0 +1,2 @@ +(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[1163],{54695:(e,t,n)=>{"use strict";n.r(t),n.d(t,{Cache:()=>g,FreeStyle:()=>v,Rule:()=>m,Selector:()=>y,Style:()=>p,create:()=>S});let s=0;const r=Object.create(null),i=["animation-iteration-count","border-image-outset","border-image-slice","border-image-width","box-flex","box-flex-group","box-ordinal-group","column-count","columns","counter-increment","counter-reset","flex","flex-grow","flex-positive","flex-shrink","flex-negative","flex-order","font-weight","grid-area","grid-column","grid-column-end","grid-column-span","grid-column-start","grid-row","grid-row-end","grid-row-span","grid-row-start","line-clamp","line-height","opacity","order","orphans","tab-size","widows","z-index","zoom","fill-opacity","flood-opacity","stop-opacity","stroke-dasharray","stroke-dashoffset","stroke-miterlimit","stroke-opacity","stroke-width"];for(const e of i)for(const t of["-webkit-","-ms-","-moz-","-o-",""])r[t+e]=!0;function o(e,t){return t&&"number"==typeof t&&!r[e]?`${e}:${t}px`:`${e}:${t}`}function a(e){return e.sort(((e,t)=>e[0]>t[0]?1:-1))}function h(e){return e.map((([e,t])=>Array.isArray(t)?t.map((t=>o(e,t))).join(";"):o(e,t))).join(";")}function c(e,t){return-1===e.indexOf("&")?`${t} ${e}`:e.replace(/&/g,t)}function l(e,t,n,s,r){const{style:i,nested:o,isUnique:u}=function(e,t){const n=[],s=[];for(const t of Object.keys(e)){const i=t.trim(),o=e[t];36!==i.charCodeAt(0)&&null!=o&&("object"!=typeof o||Array.isArray(o)?n.push([(r=i,r.replace(/[A-Z]/g,(e=>`-${e.toLowerCase()}`)).replace(/^ms-/,"-ms-")),o]):s.push([i,o]))}var r;return{style:h(a(n)),nested:t?s:a(s),isUnique:!!e.$unique}}(t,""!==e);let d=i;if(64===e.charCodeAt(0)){const t={selector:e,styles:[],rules:[],style:r?"":i};n.push(t),i&&r&&t.styles.push({selector:r,style:i,isUnique:u});for(const[e,n]of o)d+=e+l(e,n,t.rules,t.styles,r)}else{const t=r?c(e,r):e;i&&s.push({selector:t,style:i,isUnique:u});for(const[e,r]of o)d+=e+l(e,r,n,s,t)}return d}function u(e,t,n,r,i,o){for(const{selector:n,style:a,isUnique:h}of r){const r=o?c(n,i):n,l=h?`u\0${(++s).toString(36)}`:`s\0${t}\0${a}`,u=new p(a,l);u.add(new y(r,`k\0${t}\0${r}`)),e.add(u)}for(const{selector:s,style:r,rules:a,styles:h}of n){const n=new m(s,r,`r\0${t}\0${s}\0${r}`);u(n,t,a,h,i,o),e.add(n)}}function d(e){let t="";for(let n=0;n{},change:()=>{},remove:()=>{}};class g{constructor(e=f){this.changes=e,this.sheet=[],this.changeId=0,this._keys=[],this._children=Object.create(null),this._counters=Object.create(null)}add(e){const t=this._counters[e.id]||0,n=this._children[e.id]||e.clone();if(this._counters[e.id]=t+1,0===t)this._children[n.id]=n,this._keys.push(n.id),this.sheet.push(n.getStyles()),this.changeId++,this.changes.add(n,this._keys.length-1);else if(n instanceof g&&e instanceof g){const t=this._keys.indexOf(e.id),s=n.changeId;n.merge(e),n.changeId!==s&&(this.sheet.splice(t,1,n.getStyles()),this.changeId++,this.changes.change(n,t,t))}}remove(e){const t=this._counters[e.id];if(t){this._counters[e.id]=t-1;const n=this._children[e.id],s=this._keys.indexOf(n.id);if(1===t)delete this._counters[e.id],delete this._children[e.id],this._keys.splice(s,1),this.sheet.splice(s,1),this.changeId++,this.changes.remove(n,s);else if(n instanceof g&&e instanceof g){const t=n.changeId;n.unmerge(e),n.changeId!==t&&(this.sheet.splice(s,1,n.getStyles()),this.changeId++,this.changes.change(n,s,s))}}}values(){return this._keys.map((e=>this._children[e]))}merge(e){for(const t of e.values())this.add(t);return this}unmerge(e){for(const t of e.values())this.remove(t);return this}clone(){return(new g).merge(this)}}class y{constructor(e,t){this.selector=e,this.id=t}getStyles(){return this.selector}clone(){return this}}class p extends g{constructor(e,t){super(),this.style=e,this.id=t}getStyles(){return`${this.sheet.join(",")}{${this.style}}`}clone(){return new p(this.style,this.id).merge(this)}}class m extends g{constructor(e,t,n){super(),this.rule=e,this.style=t,this.id=n}getStyles(){return`${this.rule}{${this.style}${d(this.sheet)}}`}clone(){return new m(this.rule,this.style,this.id).merge(this)}}function _(e,t){return`f${function(e){let t=5381,n=e.length;for(;n--;)t=33*t^e.charCodeAt(n);return(t>>>0).toString(36)}(e)}`}class v extends g{constructor(e,t){super(t),this.id=e}registerStyle(e){const t=[],n=[],s=l("&",e,t,n),r=_(s);return u(this,s,t,n,`.${r}`,!0),r}registerKeyframes(e){return this.registerHashRule("@keyframes",e)}registerHashRule(e,t){const n=[],s=[],r=l("",t,n,s),i=_(r),o=new m(`${e} ${i}`,"",`h\0${r}\0${e}`);return u(o,r,n,s,"",!1),this.add(o),i}registerRule(e,t){const n=[],s=[];u(this,l(e,t,n,s),n,s,"",!1)}registerCss(e){return this.registerRule("",e)}getStyles(){return d(this.sheet)}clone(){return new v(this.id,this.changes).merge(this)}}function S(e){return new v(`f${(++s).toString(36)}`,e)}},91163:(e,t,n)=>{"use strict";n.r(t),n.d(t,{TypeStyle:()=>u,classes:()=>o,createTypeStyle:()=>R,cssRaw:()=>y,cssRule:()=>p,extend:()=>a,fontFace:()=>_,forceRenderStyles:()=>m,getStyles:()=>v,keyframes:()=>S,media:()=>h,reinit:()=>w,setStylesTarget:()=>g,style:()=>$,stylesheet:()=>x,types:()=>d});var s=n(54695);function r(e){var t={};for(var n in e){var s=e[n];if("$nest"===n){var i=s;for(var o in i){var a=i[o];t[o]=r(a)}}else"$debugName"===n?t.$displayName=s:t[n]=s}return t}var i="undefined"==typeof requestAnimationFrame?function(e){return setTimeout(e)}:"undefined"==typeof window?requestAnimationFrame:requestAnimationFrame.bind(window);function o(){for(var e=[],t=0;t{}}]); +//# sourceMappingURL=1163.ac28297.js.map \ No newline at end of file diff --git a/_static/build/1163.ac28297.js.map b/_static/build/1163.ac28297.js.map new file mode 100644 index 0000000..6f0ec5d --- /dev/null +++ b/_static/build/1163.ac28297.js.map @@ -0,0 +1 @@ +{"version":3,"file":"1163.ac28297.js","mappings":"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","sources":["webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/free-style/src/index.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/typestyle/lib.es2015/internal/formatting.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/typestyle/lib.es2015/internal/utilities.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/typestyle/lib.es2015/internal/typestyle.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/typestyle/lib.es2015/index.js"],"sourcesContent":["/**\n * The unique id is used for unique hashes.\n */\nlet uniqueId = 0;\n\n/**\n * Valid CSS property values.\n */\nexport type PropertyValue = number | boolean | string;\n\n/**\n * Input styles object.\n */\nexport interface Styles {\n $unique?: boolean;\n $displayName?: string;\n [selector: string]:\n | null\n | undefined\n | PropertyValue\n | PropertyValue[]\n | Styles;\n}\n\n/**\n * Hash algorithm interface.\n */\nexport type HashFunction = (str: string) => string;\n\n/**\n * Quick dictionary lookup for unit-less numbers.\n */\nconst CSS_NUMBER: Record = Object.create(null);\n\n/**\n * CSS properties that are valid unit-less numbers.\n *\n * Ref: https://github.com/facebook/react/blob/master/packages/react-dom/src/shared/CSSProperty.js\n */\nconst CSS_NUMBER_KEYS = [\n \"animation-iteration-count\",\n \"border-image-outset\",\n \"border-image-slice\",\n \"border-image-width\",\n \"box-flex\",\n \"box-flex-group\",\n \"box-ordinal-group\",\n \"column-count\",\n \"columns\",\n \"counter-increment\",\n \"counter-reset\",\n \"flex\",\n \"flex-grow\",\n \"flex-positive\",\n \"flex-shrink\",\n \"flex-negative\",\n \"flex-order\",\n \"font-weight\",\n \"grid-area\",\n \"grid-column\",\n \"grid-column-end\",\n \"grid-column-span\",\n \"grid-column-start\",\n \"grid-row\",\n \"grid-row-end\",\n \"grid-row-span\",\n \"grid-row-start\",\n \"line-clamp\",\n \"line-height\",\n \"opacity\",\n \"order\",\n \"orphans\",\n \"tab-size\",\n \"widows\",\n \"z-index\",\n \"zoom\",\n // SVG properties.\n \"fill-opacity\",\n \"flood-opacity\",\n \"stop-opacity\",\n \"stroke-dasharray\",\n \"stroke-dashoffset\",\n \"stroke-miterlimit\",\n \"stroke-opacity\",\n \"stroke-width\"\n];\n\n// Add vendor prefixes to all unit-less properties.\nfor (const property of CSS_NUMBER_KEYS) {\n for (const prefix of [\"-webkit-\", \"-ms-\", \"-moz-\", \"-o-\", \"\"]) {\n CSS_NUMBER[prefix + property] = true;\n }\n}\n\n/**\n * Escape a CSS class name.\n */\nfunction escape(str: string) {\n return str.replace(/[ !#$%&()*+,./;<=>?@[\\]^`{|}~\"'\\\\]/g, \"\\\\$&\");\n}\n\n/**\n * Transform a JavaScript property into a CSS property.\n */\nfunction hyphenate(propertyName: string): string {\n return propertyName\n .replace(/[A-Z]/g, (m: string) => `-${m.toLowerCase()}`)\n .replace(/^ms-/, \"-ms-\"); // Internet Explorer vendor prefix.\n}\n\n/**\n * Generate a hash value from a string.\n */\nfunction stringHash(str: string): string {\n let value = 5381;\n let len = str.length;\n while (len--) value = (value * 33) ^ str.charCodeAt(len);\n return (value >>> 0).toString(36);\n}\n\n/**\n * Transform a style string to a CSS string.\n */\nfunction styleToString(key: string, value: PropertyValue) {\n if (value && typeof value === \"number\" && !CSS_NUMBER[key]) {\n return `${key}:${value}px`;\n }\n\n return `${key}:${value}`;\n}\n\n/**\n * Sort an array of tuples by first value.\n */\nfunction sortTuples(value: T[]): T[] {\n return value.sort((a, b) => (a[0] > b[0] ? 1 : -1));\n}\n\n/**\n * Categorize user styles.\n */\nfunction parseStyles(styles: Styles, hasNestedStyles: boolean) {\n const properties: Array<[string, PropertyValue | PropertyValue[]]> = [];\n const nestedStyles: Array<[string, Styles]> = [];\n\n // Sort keys before adding to styles.\n for (const key of Object.keys(styles)) {\n const name = key.trim();\n const value = styles[key];\n\n if (name.charCodeAt(0) !== 36 /* $ */ && value != null) {\n if (typeof value === \"object\" && !Array.isArray(value)) {\n nestedStyles.push([name, value]);\n } else {\n properties.push([hyphenate(name), value]);\n }\n }\n }\n\n return {\n style: stringifyProperties(sortTuples(properties)),\n nested: hasNestedStyles ? nestedStyles : sortTuples(nestedStyles),\n isUnique: !!styles.$unique\n };\n}\n\n/**\n * Stringify an array of property tuples.\n */\nfunction stringifyProperties(\n properties: Array<[string, PropertyValue | PropertyValue[]]>\n) {\n return properties\n .map(([name, value]) => {\n if (!Array.isArray(value)) return styleToString(name, value);\n\n return value.map(x => styleToString(name, x)).join(\";\");\n })\n .join(\";\");\n}\n\n/**\n * Interpolate CSS selectors.\n */\nfunction interpolate(selector: string, parent: string) {\n if (selector.indexOf(\"&\") === -1) return `${parent} ${selector}`;\n return selector.replace(/&/g, parent);\n}\n\ntype StylizeStyle = { selector: string; style: string; isUnique: boolean };\n\ntype StylizeRule = {\n selector: string;\n style: string;\n rules: StylizeRule[];\n styles: StylizeStyle[];\n};\n\n/**\n * Recursive loop building styles with deferred selectors.\n */\nfunction stylize(\n selector: string,\n styles: Styles,\n rulesList: StylizeRule[],\n stylesList: StylizeStyle[],\n parent?: string\n) {\n const { style, nested, isUnique } = parseStyles(styles, selector !== \"\");\n let pid = style;\n\n if (selector.charCodeAt(0) === 64 /* @ */) {\n const child: StylizeRule = {\n selector,\n styles: [],\n rules: [],\n style: parent ? \"\" : style\n };\n rulesList.push(child);\n\n // Nested styles support (e.g. `.foo > @media > .bar`).\n if (style && parent) {\n child.styles.push({ selector: parent, style, isUnique });\n }\n\n for (const [name, value] of nested) {\n pid += name + stylize(name, value, child.rules, child.styles, parent);\n }\n } else {\n const key = parent ? interpolate(selector, parent) : selector;\n\n if (style) stylesList.push({ selector: key, style, isUnique });\n\n for (const [name, value] of nested) {\n pid += name + stylize(name, value, rulesList, stylesList, key);\n }\n }\n\n return pid;\n}\n\n/**\n * Transform `stylize` tree into style objects.\n */\nfunction composeStylize(\n cache: Cache,\n pid: string,\n rulesList: StylizeRule[],\n stylesList: StylizeStyle[],\n className: string,\n isStyle: boolean\n) {\n for (const { selector, style, isUnique } of stylesList) {\n const key = isStyle ? interpolate(selector, className) : selector;\n const id = isUnique\n ? `u\\0${(++uniqueId).toString(36)}`\n : `s\\0${pid}\\0${style}`;\n const item = new Style(style, id);\n item.add(new Selector(key, `k\\0${pid}\\0${key}`));\n cache.add(item);\n }\n\n for (const { selector, style, rules, styles } of rulesList) {\n const item = new Rule(selector, style, `r\\0${pid}\\0${selector}\\0${style}`);\n composeStylize(item, pid, rules, styles, className, isStyle);\n cache.add(item);\n }\n}\n\n/**\n * Cache to list to styles.\n */\nfunction join(arr: string[]): string {\n let res = \"\";\n for (let i = 0; i < arr.length; i++) res += arr[i];\n return res;\n}\n\n/**\n * Propagate change events.\n */\nexport interface Changes {\n add(style: Container, index: number): void;\n change(style: Container, oldIndex: number, newIndex: number): void;\n remove(style: Container, index: number): void;\n}\n\n/**\n * Noop changes.\n */\nconst noopChanges: Changes = {\n add: () => undefined,\n change: () => undefined,\n remove: () => undefined\n};\n\n/**\n * Cache-able interface.\n */\nexport interface Container {\n id: string;\n clone(): T;\n getStyles(): string;\n}\n\n/**\n * Implement a cache/event emitter.\n */\nexport class Cache> {\n sheet: string[] = [];\n changeId = 0;\n\n private _keys: string[] = [];\n private _children: Record = Object.create(null);\n private _counters: Record = Object.create(null);\n\n constructor(public changes: Changes = noopChanges) {}\n\n add(style: T): void {\n const count = this._counters[style.id] || 0;\n const item: T = this._children[style.id] || style.clone();\n\n this._counters[style.id] = count + 1;\n\n if (count === 0) {\n this._children[item.id] = item;\n this._keys.push(item.id);\n this.sheet.push(item.getStyles());\n this.changeId++;\n this.changes.add(item, this._keys.length - 1);\n } else if (item instanceof Cache && style instanceof Cache) {\n const curIndex = this._keys.indexOf(style.id);\n const prevItemChangeId = item.changeId;\n\n item.merge(style);\n\n if (item.changeId !== prevItemChangeId) {\n this.sheet.splice(curIndex, 1, item.getStyles());\n this.changeId++;\n this.changes.change(item, curIndex, curIndex);\n }\n }\n }\n\n remove(style: T): void {\n const count = this._counters[style.id];\n\n if (count) {\n this._counters[style.id] = count - 1;\n\n const item = this._children[style.id]!;\n const index = this._keys.indexOf(item.id);\n\n if (count === 1) {\n delete this._counters[style.id];\n delete this._children[style.id];\n\n this._keys.splice(index, 1);\n this.sheet.splice(index, 1);\n this.changeId++;\n this.changes.remove(item, index);\n } else if (item instanceof Cache && style instanceof Cache) {\n const prevChangeId = item.changeId;\n\n item.unmerge(style);\n\n if (item.changeId !== prevChangeId) {\n this.sheet.splice(index, 1, item.getStyles());\n this.changeId++;\n this.changes.change(item, index, index);\n }\n }\n }\n }\n\n values(): T[] {\n return this._keys.map(key => this._children[key]!);\n }\n\n merge(cache: Cache) {\n for (const item of cache.values()) this.add(item);\n return this;\n }\n\n unmerge(cache: Cache) {\n for (const item of cache.values()) this.remove(item);\n return this;\n }\n\n clone(): Cache {\n return new Cache().merge(this);\n }\n}\n\n/**\n * Selector is a dumb class made to represent nested CSS selectors.\n */\nexport class Selector implements Container {\n constructor(public selector: string, public id: string) {}\n\n getStyles() {\n return this.selector;\n }\n\n clone(): Selector {\n return this;\n }\n}\n\n/**\n * The style container registers a style string with selectors.\n */\nexport class Style extends Cache implements Container
'),i="
".concat(n,""),a=window.open("");a.document.write(o+e+i),a.document.title="".concat(Jn[r]," JSON Source")}function tr(e,t){if(e.$schema){var n,r=Q(e.$schema);t&&t!==r.library&&console.warn("The given visualization spec is written in ".concat(Jn[r.library],", but mode argument sets ").concat(null!==(n=Jn[t])&&void 0!==n?n:t,"."));var o=r.library;return Cn(Yn[o],"^".concat(r.version.slice(1)))||console.warn("The input spec uses ".concat(Jn[o]," ").concat(r.version,", but the current version of ").concat(Jn[o]," is v").concat(Yn[o],".")),o}return"mark"in e||"encoding"in e||"layer"in e||"hconcat"in e||"vconcat"in e||"facet"in e||"repeat"in e?"vega-lite":"marks"in e||"signals"in e||"scales"in e||"axes"in e?"vega":null!=t?t:"vega"}function nr(e){return(t=e)&&"load"in t?e:Xn.loader(e);var t}function rr(e){var t,n,r=null!==(t=null===(n=e.usermeta)||void 0===n?void 0:n.embedOptions)&&void 0!==t?t:{};return(0,z.isString)(r.defaultStyle)&&(r.defaultStyle=!1),r}function or(e,t){return ir.apply(this,arguments)}function ir(){return ir=Qe(St.mark((function e(t,n){var r,o,i,a,s,l,c,u,h,f,p,d=arguments;return St.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(i=d.length>2&&void 0!==d[2]?d[2]:{},!(0,z.isString)(n)){e.next=10;break}return s=nr(i.loader),e.t0=JSON,e.next=6,s.load(n);case 6:e.t1=e.sent,a=e.t0.parse.call(e.t0,e.t1),e.next=11;break;case 10:a=n;case 11:return l=rr(a),c=l.loader,s&&!c||(s=nr(null!==(u=i.loader)&&void 0!==u?u:c)),e.next=16,ar(l,s);case 16:return h=e.sent,e.next=19,ar(i,s);case 19:return f=e.sent,p=Bn(Bn({},_n(f,h)),{},{config:(0,z.mergeConfig)(null!==(r=f.config)&&void 0!==r?r:{},null!==(o=h.config)&&void 0!==o?o:{})}),e.next=23,cr(t,a,p,s);case 23:return e.abrupt("return",e.sent);case 24:case"end":return e.stop()}}),e)}))),ir.apply(this,arguments)}function ar(e,t){return sr.apply(this,arguments)}function sr(){return(sr=Qe(St.mark((function e(t,n){var r,o,i;return St.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!(0,z.isString)(t.config)){e.next=8;break}return e.t1=JSON,e.next=4,n.load(t.config);case 4:e.t2=e.sent,e.t0=e.t1.parse.call(e.t1,e.t2),e.next=9;break;case 8:e.t0=null!==(r=t.config)&&void 0!==r?r:{};case 9:if(o=e.t0,!(0,z.isString)(t.patch)){e.next=18;break}return e.t4=JSON,e.next=14,n.load(t.patch);case 14:e.t5=e.sent,e.t3=e.t4.parse.call(e.t4,e.t5),e.next=19;break;case 18:e.t3=t.patch;case 19:return i=e.t3,e.abrupt("return",Bn(Bn(Bn({},t),i?{patch:i}:{}),o?{config:o}:{}));case 21:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function lr(e){var t,n=e.getRootNode?e.getRootNode():document;return n instanceof ShadowRoot?{root:n,rootContainer:n}:{root:document,rootContainer:null!==(t=document.head)&&void 0!==t?t:document.body}}function cr(e,t){return ur.apply(this,arguments)}function ur(){return ur=Qe(St.mark((function e(t,n){var r,o,a,s,l,c,u,h,f,p,d,v,g,m,y,E,b,w,x,O,I,N,L,S,T,R,D,C,k,F,P,_,M,U,B,G,X,W,$,V,H,J,q,K,Z,ee,te,ne,re,oe,ie,ae=arguments;return St.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(ie=function(){W&&document.removeEventListener("click",W),_.finalize()},h=ae.length>2&&void 0!==ae[2]?ae[2]:{},f=ae.length>3?ae[3]:void 0,p=h.theme?(0,z.mergeConfig)(i[h.theme],null!==(r=h.config)&&void 0!==r?r:{}):h.config,d=(0,z.isBoolean)(h.actions)?h.actions:_n({},Vn,null!==(o=h.actions)&&void 0!==o?o:{}),v=Bn(Bn({},Hn),h.i18n),g=null!==(a=h.renderer)&&void 0!==a?a:"canvas",m=null!==(s=h.logLevel)&&void 0!==s?s:Xn.Warn,y=null!==(l=h.downloadFileName)&&void 0!==l?l:"visualization",E="string"==typeof t?document.querySelector(t):t){e.next=12;break}throw new Error("".concat(t," does not exist"));case 12:if(!1!==h.defaultStyle&&(b="vega-embed-style",w=lr(E),x=w.root,O=w.rootContainer,x.getElementById(b)||((I=document.createElement("style")).id=b,I.innerHTML=void 0===h.defaultStyle||!0===h.defaultStyle?Pn.toString():h.defaultStyle,O.appendChild(I))),N=tr(n,h.mode),L=qn[N](n,p),"vega-lite"===N&&L.$schema&&(S=Q(L.$schema),Cn(Yn.vega,"^".concat(S.version.slice(1)))||console.warn("The compiled spec uses Vega ".concat(S.version,", but current version is v").concat(Yn.vega,"."))),E.classList.add("vega-embed"),d&&E.classList.add("has-actions"),E.innerHTML="",T=E,d&&((R=document.createElement("div")).classList.add(Kn),E.appendChild(R),T=R),(D=h.patch)&&(L=D instanceof Function?D(L):A(L,D,!0,!1).newDocument),h.formatLocale&&Xn.formatLocale(h.formatLocale),h.timeFormatLocale&&Xn.timeFormatLocale(h.timeFormatLocale),h.expressionFunctions)for(C in h.expressionFunctions)"fn"in(k=h.expressionFunctions[C])?Xn.expressionFunction(C,k.fn,k.visitor):k instanceof Function&&Xn.expressionFunction(C,k);return F=h.ast,P=Xn.parse(L,"vega-lite"===N?{}:p,{ast:F}),(_=new(h.viewClass||Xn.View)(P,Bn({loader:f,logLevel:m,renderer:g},F?{expr:null!==(c=null!==(u=Xn.expressionInterpreter)&&void 0!==u?u:h.expr)&&void 0!==c?c:Y}:{}))).addSignalListener("autosize",((e,t)=>{var n=t.type;"fit-x"==n?(T.classList.add("fit-x"),T.classList.remove("fit-y")):"fit-y"==n?(T.classList.remove("fit-x"),T.classList.add("fit-y")):"fit"==n?T.classList.add("fit-x","fit-y"):T.classList.remove("fit-x","fit-y")})),!1!==h.tooltip&&(M=Zn(h.tooltip)?h.tooltip:new Je(!0===h.tooltip?{}:h.tooltip).call,_.tooltip(M)),void 0===(U=h.hover)&&(U="vega"===N),U&&(G=(B="boolean"==typeof U?{}:U).hoverSet,X=B.updateSet,_.hover(G,X)),h&&(null!=h.width&&_.width(h.width),null!=h.height&&_.height(h.height),null!=h.padding&&_.padding(h.padding)),e.next=37,_.initialize(T,h.bind).runAsync();case 37:if(!1!==d){if($=E,!1!==h.defaultStyle&&((V=document.createElement("details")).title=v.CLICK_TO_VIEW_ACTIONS,E.append(V),$=V,(H=document.createElement("summary")).innerHTML=Qn,V.append(H),W=e=>{V.contains(e.target)||V.removeAttribute("open")},document.addEventListener("click",W)),J=document.createElement("div"),$.append(J),J.classList.add("vega-actions"),!0===d||!1!==d.export){q=jn(["svg","png"]);try{for(Z=function(){var e=K.value;if(!0===d||!0===d.export||d.export[e]){var t=v["".concat(e.toUpperCase(),"_ACTION")],n=document.createElement("a");n.text=t,n.href="#",n.target="_blank",n.download="".concat(y,".").concat(e),n.addEventListener("mousedown",function(){var t=Qe(St.mark((function t(n){var r;return St.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n.preventDefault(),t.next=3,_.toImageURL(e,h.scaleFactor);case 3:r=t.sent,this.href=r;case 5:case"end":return t.stop()}}),t,this)})));return function(e){return t.apply(this,arguments)}}()),J.append(n)}},q.s();!(K=q.n()).done;)Z()}catch(e){q.e(e)}finally{q.f()}}!0!==d&&!1===d.source||((ee=document.createElement("a")).text=v.SOURCE_ACTION,ee.href="#",ee.addEventListener("click",(function(e){var t,r;er(j()(n),null!==(t=h.sourceHeader)&&void 0!==t?t:"",null!==(r=h.sourceFooter)&&void 0!==r?r:"",N),e.preventDefault()})),J.append(ee)),"vega-lite"!==N||!0!==d&&!1===d.compiled||((te=document.createElement("a")).text=v.COMPILED_ACTION,te.href="#",te.addEventListener("click",(function(e){var t,n;er(j()(L),null!==(t=h.sourceHeader)&&void 0!==t?t:"",null!==(n=h.sourceFooter)&&void 0!==n?n:"","vega"),e.preventDefault()})),J.append(te)),!0!==d&&!1===d.editor||(re=null!==(ne=h.editorUrl)&&void 0!==ne?ne:"https://vega.github.io/editor/",(oe=document.createElement("a")).text=v.EDITOR_ACTION,oe.href="#",oe.addEventListener("click",(function(e){kn(window,re,{config:p,mode:N,renderer:g,spec:j()(n)}),e.preventDefault()})),J.append(oe))}return e.abrupt("return",{view:_,spec:n,vgSpec:L,finalize:ie,embedOptions:h});case 39:case"end":return e.stop()}}),e)}))),ur.apply(this,arguments)}},68542:(e,t,n)=>{function r(e,t,n){return e.fields=t||[],e.fname=n,e}function o(e){return null==e?null:e.fname}function i(e){return null==e?null:e.fields}function a(e){return 1===e.length?s(e[0]):l(e)}n.d(t,{$G:()=>Pe,$m:()=>Ae,BB:()=>ke,Ds:()=>ie,Dw:()=>z,EP:()=>h,FP:()=>_e,HD:()=>we,He:()=>C,Hq:()=>E,IX:()=>q,J_:()=>me,Jy:()=>xe,Kj:()=>be,Kn:()=>N,N3:()=>Y,Oj:()=>i,QA:()=>B,Rg:()=>Fe,TS:()=>Ie,TW:()=>ye,We:()=>se,XW:()=>de,Xr:()=>fe,ZE:()=>r,ZU:()=>Ce,Zw:()=>G,_k:()=>u,a9:()=>oe,ay:()=>W,bM:()=>d,bV:()=>H,cG:()=>O,dH:()=>$,dI:()=>le,el:()=>o,fE:()=>S,fj:()=>D,hj:()=>Ee,iL:()=>T,id:()=>f,j2:()=>ee,jj:()=>b,jn:()=>ge,k:()=>m,kI:()=>x,kJ:()=>I,kX:()=>v,kg:()=>A,l$:()=>Q,l7:()=>ae,m8:()=>Te,mJ:()=>U,mK:()=>V,mS:()=>J,mf:()=>K,nr:()=>ue,qu:()=>Z,rx:()=>Ne,sw:()=>Re,t7:()=>Oe,u5:()=>ve,uU:()=>w,vU:()=>c,vk:()=>Le,yP:()=>Se,yR:()=>p,yb:()=>g,yl:()=>pe});const s=e=>function(t){return t[e]},l=e=>{const t=e.length;return function(n){for(let r=0;rr&&u(),s=r=o+1):"]"===i&&(s||c("Access path missing open bracket: "+e),s>0&&u(),s=0,r=o+1):o>r?u():r=o+1}return s&&c("Access path missing closing bracket: "+e),a&&c("Access path missing closing quote: "+e),o>r&&(o++,u()),t}function h(e,t,n){const o=u(e);return e=1===o.length?o[0]:e,r((n&&n.get||a)(o),[e],t||e)}const f=h("id"),p=r((e=>e),[],"identity"),d=r((()=>0),[],"zero"),v=r((()=>1),[],"one"),g=r((()=>!0),[],"true"),m=r((()=>!1),[],"false");function y(e,t,n){const r=[t].concat([].slice.call(n));console[e].apply(console,r)}const E=0,b=1,w=2,x=3,O=4;function A(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:y,r=e||E;return{level(e){return arguments.length?(r=+e,this):r},error(){return r>=b&&n(t||"error","ERROR",arguments),this},warn(){return r>=w&&n(t||"warn","WARN",arguments),this},info(){return r>=x&&n(t||"log","INFO",arguments),this},debug(){return r>=O&&n(t||"log","DEBUG",arguments),this}}}var I=Array.isArray;function N(e){return e===Object(e)}const L=e=>"__proto__"!==e;function S(){for(var e=arguments.length,t=new Array(e),n=0;n{for(const n in t)if("signals"===n)e.signals=R(e.signals,t.signals);else{const r="legend"===n?{layout:1}:"style"===n||null;T(e,n,t[n],r)}return e}),{})}function T(e,t,n,r){if(!L(t))return;let o,i;if(N(n)&&!I(n))for(o in i=N(e[t])?e[t]:e[t]={},n)r&&(!0===r||r[o])?T(i,o,n[o]):L(o)&&(i[o]=n[o]);else e[t]=n}function R(e,t){if(null==e)return t;const n={},r=[];function o(e){n[e.name]||(n[e.name]=1,r.push(e))}return t.forEach(o),e.forEach(o),r}function D(e){return e[e.length-1]}function C(e){return null==e||""===e?null:+e}const k=e=>t=>e*Math.exp(t),F=e=>t=>Math.log(e*t),P=e=>t=>Math.sign(t)*Math.log1p(Math.abs(t/e)),_=e=>t=>Math.sign(t)*Math.expm1(Math.abs(t))*e,M=e=>t=>t<0?-Math.pow(-t,e):Math.pow(t,e);function j(e,t,n,r){const o=n(e[0]),i=n(D(e)),a=(i-o)*t;return[r(o-a),r(i-a)]}function z(e,t){return j(e,t,C,p)}function U(e,t){var n=Math.sign(e[0]);return j(e,t,F(n),k(n))}function B(e,t,n){return j(e,t,M(n),M(1/n))}function G(e,t,n){return j(e,t,P(n),_(n))}function X(e,t,n,r,o){const i=r(e[0]),a=r(D(e)),s=null!=t?r(t):(i+a)/2;return[o(s+(i-s)*n),o(s+(a-s)*n)]}function W(e,t,n){return X(e,t,n,C,p)}function $(e,t,n){const r=Math.sign(e[0]);return X(e,t,n,F(r),k(r))}function V(e,t,n,r){return X(e,t,n,M(r),M(1/r))}function H(e,t,n,r){return X(e,t,n,P(r),_(r))}function J(e){return 1+~~(new Date(e).getMonth()/3)}function Y(e){return 1+~~(new Date(e).getUTCMonth()/3)}function q(e){return null!=e?I(e)?e:[e]:[]}function Q(e,t,n){let r,o=e[0],i=e[1];return i=n-t?[t,n]:[o=Math.min(Math.max(o,t),n-r),o+r]}function K(e){return"function"==typeof e}function Z(e,t,n){n=n||{},t=q(t)||[];const o=[],a=[],s={},l=n.comparator||te;return q(e).forEach(((e,r)=>{null!=e&&(o.push("descending"===t[r]?-1:1),a.push(e=K(e)?e:h(e,null,n)),(i(e)||[]).forEach((e=>s[e]=1)))})),0===a.length?null:r(l(a,o),Object.keys(s))}const ee=(e,t)=>(et||null==t)&&null!=e?1:(t=t instanceof Date?+t:t,(e=e instanceof Date?+e:e)!==e&&t==t?-1:t!=t&&e==e?1:0),te=(e,t)=>1===e.length?ne(e[0],t[0]):re(e,t,e.length),ne=(e,t)=>function(n,r){return ee(e(n),e(r))*t},re=(e,t,n)=>(t.push(0),function(r,o){let i,a=0,s=-1;for(;0===a&&++se}function ie(e,t){let n;return r=>{n&&clearTimeout(n),n=setTimeout((()=>(t(r),n=null)),e)}}function ae(e){for(let t,n,r=1,o=arguments.length;ri&&(i=r))}else{for(r=t(e[a]);ai&&(i=r))}return[o,i]}function le(e,t){const n=e.length;let r,o,i,a,s,l=-1;if(null==t){for(;++l=o){r=i=o;break}if(l===n)return[-1,-1];for(a=s=l;++lo&&(r=o,a=l),i=o){r=i=o;break}if(l===n)return[-1,-1];for(a=s=l;++lo&&(r=o,a=l),ir(e)?n[e]:void 0,set(e,t){return r(e)||(++o.size,n[e]===he&&--o.empty),n[e]=t,this},delete(e){return r(e)&&(--o.size,++o.empty,n[e]=he),this},clear(){o.size=o.empty=0,o.object=n={}},test(e){return arguments.length?(t=e,o):t},clean(){const e={};let r=0;for(const o in n){const i=n[o];i===he||t&&t(i)||(e[o]=i,++r)}o.size=r,o.empty=0,o.object=n=e}};return e&&Object.keys(e).forEach((t=>{o.set(t,e[t])})),o}function pe(e,t,n,r,o,i){if(!n&&0!==n)return i;const a=+n;let s,l=e[0],c=D(e);ca&&(o=i,i=a,a=o),r=void 0===r||r,((n=void 0===n||n)?i<=e:ie.replace(/\\(.)/g,"$1"))):q(e));const o=e&&e.length,i=n&&n.get||a,s=e=>i(t?[e]:u(e));let l;if(o)if(1===o){const t=s(e[0]);l=function(e){return""+t(e)}}else{const t=e.map(s);l=function(e){let n=""+t[0](e),r=0;for(;++r{t={},n={},r=0},i=(o,i)=>(++r>e&&(n=t,t={},r=1),t[o]=i);return o(),{clear:o,has:e=>ue(t,e)||ue(n,e),get:e=>ue(t,e)?t[e]:ue(n,e)?i(e,n[e]):void 0,set:(e,n)=>ue(t,e)?t[e]=n:i(e,n)}}function Ie(e,t,n,r){const o=t.length,i=n.length;if(!i)return t;if(!o)return n;const a=r||new t.constructor(o+i);let s=0,l=0,c=0;for(;s0?n[l++]:t[s++];for(;s=0;)n+=e;return n}function Le(e,t,n,r){const o=n||" ",i=e+"",a=t-i.length;return a<=0?i:"left"===r?Ne(o,a)+i:"center"===r?Ne(o,~~(a/2))+i+Ne(o,Math.ceil(a/2)):i+Ne(o,a)}function Se(e){return e&&D(e)-e[0]||0}function Te(e){return I(e)?"["+e.map(Te)+"]":N(e)||we(e)?JSON.stringify(e).replace("\u2028","\\u2028").replace("\u2029","\\u2029"):e}function Re(e){return null==e||""===e?null:!(!e||"false"===e||"0"===e||!e)}const De=e=>Ee(e)||me(e)?e:Date.parse(e);function Ce(e,t){return t=t||De,null==e||""===e?null:t(e)}function ke(e){return null==e||""===e?null:e+""}function Fe(e){const t={},n=e.length;for(let r=0;r 0) {\n return [start, indent + items.join(\",\\n\" + nextIndent), end].join(\n \"\\n\" + currentIndent\n );\n }\n }\n\n return string;\n })(passedObj, \"\", 0);\n};\n","/*!\n * https://github.com/Starcounter-Jack/JSON-Patch\n * (c) 2017-2022 Joachim Wester\n * MIT licensed\n */\nvar __extends = (this && this.__extends) || (function () {\n var 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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar _hasOwnProperty = Object.prototype.hasOwnProperty;\nexport function hasOwnProperty(obj, key) {\n return _hasOwnProperty.call(obj, key);\n}\nexport function _objectKeys(obj) {\n if (Array.isArray(obj)) {\n var keys_1 = new Array(obj.length);\n for (var k = 0; k < keys_1.length; k++) {\n keys_1[k] = \"\" + k;\n }\n return keys_1;\n }\n if (Object.keys) {\n return Object.keys(obj);\n }\n var keys = [];\n for (var i in obj) {\n if (hasOwnProperty(obj, i)) {\n keys.push(i);\n }\n }\n return keys;\n}\n;\n/**\n* Deeply clone the object.\n* https://jsperf.com/deep-copy-vs-json-stringify-json-parse/25 (recursiveDeepCopy)\n* @param {any} obj value to clone\n* @return {any} cloned obj\n*/\nexport function _deepClone(obj) {\n switch (typeof obj) {\n case \"object\":\n return JSON.parse(JSON.stringify(obj)); //Faster than ES5 clone - http://jsperf.com/deep-cloning-of-objects/5\n case \"undefined\":\n return null; //this is how JSON.stringify behaves for array items\n default:\n return obj; //no need to clone primitives\n }\n}\n//3x faster than cached /^\\d+$/.test(str)\nexport function isInteger(str) {\n var i = 0;\n var len = str.length;\n var charCode;\n while (i < len) {\n charCode = str.charCodeAt(i);\n if (charCode >= 48 && charCode <= 57) {\n i++;\n continue;\n }\n return false;\n }\n return true;\n}\n/**\n* Escapes a json pointer path\n* @param path The raw pointer\n* @return the Escaped path\n*/\nexport function escapePathComponent(path) {\n if (path.indexOf('/') === -1 && path.indexOf('~') === -1)\n return path;\n return path.replace(/~/g, '~0').replace(/\\//g, '~1');\n}\n/**\n * Unescapes a json pointer path\n * @param path The escaped pointer\n * @return The unescaped path\n */\nexport function unescapePathComponent(path) {\n return path.replace(/~1/g, '/').replace(/~0/g, '~');\n}\nexport function _getPathRecursive(root, obj) {\n var found;\n for (var key in root) {\n if (hasOwnProperty(root, key)) {\n if (root[key] === obj) {\n return escapePathComponent(key) + '/';\n }\n else if (typeof root[key] === 'object') {\n found = _getPathRecursive(root[key], obj);\n if (found != '') {\n return escapePathComponent(key) + '/' + found;\n }\n }\n }\n }\n return '';\n}\nexport function getPath(root, obj) {\n if (root === obj) {\n return '/';\n }\n var path = _getPathRecursive(root, obj);\n if (path === '') {\n throw new Error(\"Object not found in root\");\n }\n return \"/\" + path;\n}\n/**\n* Recursively checks whether an object has any undefined values inside.\n*/\nexport function hasUndefined(obj) {\n if (obj === undefined) {\n return true;\n }\n if (obj) {\n if (Array.isArray(obj)) {\n for (var i_1 = 0, len = obj.length; i_1 < len; i_1++) {\n if (hasUndefined(obj[i_1])) {\n return true;\n }\n }\n }\n else if (typeof obj === \"object\") {\n var objKeys = _objectKeys(obj);\n var objKeysLength = objKeys.length;\n for (var i = 0; i < objKeysLength; i++) {\n if (hasUndefined(obj[objKeys[i]])) {\n return true;\n }\n }\n }\n }\n return false;\n}\nfunction patchErrorMessageFormatter(message, args) {\n var messageParts = [message];\n for (var key in args) {\n var value = typeof args[key] === 'object' ? JSON.stringify(args[key], null, 2) : args[key]; // pretty print\n if (typeof value !== 'undefined') {\n messageParts.push(key + \": \" + value);\n }\n }\n return messageParts.join('\\n');\n}\nvar PatchError = /** @class */ (function (_super) {\n __extends(PatchError, _super);\n function PatchError(message, name, index, operation, tree) {\n var _newTarget = this.constructor;\n var _this = _super.call(this, patchErrorMessageFormatter(message, { name: name, index: index, operation: operation, tree: tree })) || this;\n _this.name = name;\n _this.index = index;\n _this.operation = operation;\n _this.tree = tree;\n Object.setPrototypeOf(_this, _newTarget.prototype); // restore prototype chain, see https://stackoverflow.com/a/48342359\n _this.message = patchErrorMessageFormatter(message, { name: name, index: index, operation: operation, tree: tree });\n return _this;\n }\n return PatchError;\n}(Error));\nexport { PatchError };\n","import { PatchError, _deepClone, isInteger, unescapePathComponent, hasUndefined } from './helpers.mjs';\nexport var JsonPatchError = PatchError;\nexport var deepClone = _deepClone;\n/* We use a Javascript hash to store each\n function. Each hash entry (property) uses\n the operation identifiers specified in rfc6902.\n In this way, we can map each patch operation\n to its dedicated function in efficient way.\n */\n/* The operations applicable to an object */\nvar objOps = {\n add: function (obj, key, document) {\n obj[key] = this.value;\n return { newDocument: document };\n },\n remove: function (obj, key, document) {\n var removed = obj[key];\n delete obj[key];\n return { newDocument: document, removed: removed };\n },\n replace: function (obj, key, document) {\n var removed = obj[key];\n obj[key] = this.value;\n return { newDocument: document, removed: removed };\n },\n move: function (obj, key, document) {\n /* in case move target overwrites an existing value,\n return the removed value, this can be taxing performance-wise,\n and is potentially unneeded */\n var removed = getValueByPointer(document, this.path);\n if (removed) {\n removed = _deepClone(removed);\n }\n var originalValue = applyOperation(document, { op: \"remove\", path: this.from }).removed;\n applyOperation(document, { op: \"add\", path: this.path, value: originalValue });\n return { newDocument: document, removed: removed };\n },\n copy: function (obj, key, document) {\n var valueToCopy = getValueByPointer(document, this.from);\n // enforce copy by value so further operations don't affect source (see issue #177)\n applyOperation(document, { op: \"add\", path: this.path, value: _deepClone(valueToCopy) });\n return { newDocument: document };\n },\n test: function (obj, key, document) {\n return { newDocument: document, test: _areEquals(obj[key], this.value) };\n },\n _get: function (obj, key, document) {\n this.value = obj[key];\n return { newDocument: document };\n }\n};\n/* The operations applicable to an array. Many are the same as for the object */\nvar arrOps = {\n add: function (arr, i, document) {\n if (isInteger(i)) {\n arr.splice(i, 0, this.value);\n }\n else { // array props\n arr[i] = this.value;\n }\n // this may be needed when using '-' in an array\n return { newDocument: document, index: i };\n },\n remove: function (arr, i, document) {\n var removedList = arr.splice(i, 1);\n return { newDocument: document, removed: removedList[0] };\n },\n replace: function (arr, i, document) {\n var removed = arr[i];\n arr[i] = this.value;\n return { newDocument: document, removed: removed };\n },\n move: objOps.move,\n copy: objOps.copy,\n test: objOps.test,\n _get: objOps._get\n};\n/**\n * Retrieves a value from a JSON document by a JSON pointer.\n * Returns the value.\n *\n * @param document The document to get the value from\n * @param pointer an escaped JSON pointer\n * @return The retrieved value\n */\nexport function getValueByPointer(document, pointer) {\n if (pointer == '') {\n return document;\n }\n var getOriginalDestination = { op: \"_get\", path: pointer };\n applyOperation(document, getOriginalDestination);\n return getOriginalDestination.value;\n}\n/**\n * Apply a single JSON Patch Operation on a JSON document.\n * Returns the {newDocument, result} of the operation.\n * It modifies the `document` and `operation` objects - it gets the values by reference.\n * If you would like to avoid touching your values, clone them:\n * `jsonpatch.applyOperation(document, jsonpatch._deepClone(operation))`.\n *\n * @param document The document to patch\n * @param operation The operation to apply\n * @param validateOperation `false` is without validation, `true` to use default jsonpatch's validation, or you can pass a `validateOperation` callback to be used for validation.\n * @param mutateDocument Whether to mutate the original document or clone it before applying\n * @param banPrototypeModifications Whether to ban modifications to `__proto__`, defaults to `true`.\n * @return `{newDocument, result}` after the operation\n */\nexport function applyOperation(document, operation, validateOperation, mutateDocument, banPrototypeModifications, index) {\n if (validateOperation === void 0) { validateOperation = false; }\n if (mutateDocument === void 0) { mutateDocument = true; }\n if (banPrototypeModifications === void 0) { banPrototypeModifications = true; }\n if (index === void 0) { index = 0; }\n if (validateOperation) {\n if (typeof validateOperation == 'function') {\n validateOperation(operation, 0, document, operation.path);\n }\n else {\n validator(operation, 0);\n }\n }\n /* ROOT OPERATIONS */\n if (operation.path === \"\") {\n var returnValue = { newDocument: document };\n if (operation.op === 'add') {\n returnValue.newDocument = operation.value;\n return returnValue;\n }\n else if (operation.op === 'replace') {\n returnValue.newDocument = operation.value;\n returnValue.removed = document; //document we removed\n return returnValue;\n }\n else if (operation.op === 'move' || operation.op === 'copy') { // it's a move or copy to root\n returnValue.newDocument = getValueByPointer(document, operation.from); // get the value by json-pointer in `from` field\n if (operation.op === 'move') { // report removed item\n returnValue.removed = document;\n }\n return returnValue;\n }\n else if (operation.op === 'test') {\n returnValue.test = _areEquals(document, operation.value);\n if (returnValue.test === false) {\n throw new JsonPatchError(\"Test operation failed\", 'TEST_OPERATION_FAILED', index, operation, document);\n }\n returnValue.newDocument = document;\n return returnValue;\n }\n else if (operation.op === 'remove') { // a remove on root\n returnValue.removed = document;\n returnValue.newDocument = null;\n return returnValue;\n }\n else if (operation.op === '_get') {\n operation.value = document;\n return returnValue;\n }\n else { /* bad operation */\n if (validateOperation) {\n throw new JsonPatchError('Operation `op` property is not one of operations defined in RFC-6902', 'OPERATION_OP_INVALID', index, operation, document);\n }\n else {\n return returnValue;\n }\n }\n } /* END ROOT OPERATIONS */\n else {\n if (!mutateDocument) {\n document = _deepClone(document);\n }\n var path = operation.path || \"\";\n var keys = path.split('/');\n var obj = document;\n var t = 1; //skip empty element - http://jsperf.com/to-shift-or-not-to-shift\n var len = keys.length;\n var existingPathFragment = undefined;\n var key = void 0;\n var validateFunction = void 0;\n if (typeof validateOperation == 'function') {\n validateFunction = validateOperation;\n }\n else {\n validateFunction = validator;\n }\n while (true) {\n key = keys[t];\n if (key && key.indexOf('~') != -1) {\n key = unescapePathComponent(key);\n }\n if (banPrototypeModifications &&\n (key == '__proto__' ||\n (key == 'prototype' && t > 0 && keys[t - 1] == 'constructor'))) {\n throw new TypeError('JSON-Patch: modifying `__proto__` or `constructor/prototype` prop is banned for security reasons, if this was on purpose, please set `banPrototypeModifications` flag false and pass it to this function. More info in fast-json-patch README');\n }\n if (validateOperation) {\n if (existingPathFragment === undefined) {\n if (obj[key] === undefined) {\n existingPathFragment = keys.slice(0, t).join('/');\n }\n else if (t == len - 1) {\n existingPathFragment = operation.path;\n }\n if (existingPathFragment !== undefined) {\n validateFunction(operation, 0, document, existingPathFragment);\n }\n }\n }\n t++;\n if (Array.isArray(obj)) {\n if (key === '-') {\n key = obj.length;\n }\n else {\n if (validateOperation && !isInteger(key)) {\n throw new JsonPatchError(\"Expected an unsigned base-10 integer value, making the new referenced value the array element with the zero-based index\", \"OPERATION_PATH_ILLEGAL_ARRAY_INDEX\", index, operation, document);\n } // only parse key when it's an integer for `arr.prop` to work\n else if (isInteger(key)) {\n key = ~~key;\n }\n }\n if (t >= len) {\n if (validateOperation && operation.op === \"add\" && key > obj.length) {\n throw new JsonPatchError(\"The specified index MUST NOT be greater than the number of elements in the array\", \"OPERATION_VALUE_OUT_OF_BOUNDS\", index, operation, document);\n }\n var returnValue = arrOps[operation.op].call(operation, obj, key, document); // Apply patch\n if (returnValue.test === false) {\n throw new JsonPatchError(\"Test operation failed\", 'TEST_OPERATION_FAILED', index, operation, document);\n }\n return returnValue;\n }\n }\n else {\n if (t >= len) {\n var returnValue = objOps[operation.op].call(operation, obj, key, document); // Apply patch\n if (returnValue.test === false) {\n throw new JsonPatchError(\"Test operation failed\", 'TEST_OPERATION_FAILED', index, operation, document);\n }\n return returnValue;\n }\n }\n obj = obj[key];\n // If we have more keys in the path, but the next value isn't a non-null object,\n // throw an OPERATION_PATH_UNRESOLVABLE error instead of iterating again.\n if (validateOperation && t < len && (!obj || typeof obj !== \"object\")) {\n throw new JsonPatchError('Cannot perform operation at the desired path', 'OPERATION_PATH_UNRESOLVABLE', index, operation, document);\n }\n }\n }\n}\n/**\n * Apply a full JSON Patch array on a JSON document.\n * Returns the {newDocument, result} of the patch.\n * It modifies the `document` object and `patch` - it gets the values by reference.\n * If you would like to avoid touching your values, clone them:\n * `jsonpatch.applyPatch(document, jsonpatch._deepClone(patch))`.\n *\n * @param document The document to patch\n * @param patch The patch to apply\n * @param validateOperation `false` is without validation, `true` to use default jsonpatch's validation, or you can pass a `validateOperation` callback to be used for validation.\n * @param mutateDocument Whether to mutate the original document or clone it before applying\n * @param banPrototypeModifications Whether to ban modifications to `__proto__`, defaults to `true`.\n * @return An array of `{newDocument, result}` after the patch\n */\nexport function applyPatch(document, patch, validateOperation, mutateDocument, banPrototypeModifications) {\n if (mutateDocument === void 0) { mutateDocument = true; }\n if (banPrototypeModifications === void 0) { banPrototypeModifications = true; }\n if (validateOperation) {\n if (!Array.isArray(patch)) {\n throw new JsonPatchError('Patch sequence must be an array', 'SEQUENCE_NOT_AN_ARRAY');\n }\n }\n if (!mutateDocument) {\n document = _deepClone(document);\n }\n var results = new Array(patch.length);\n for (var i = 0, length_1 = patch.length; i < length_1; i++) {\n // we don't need to pass mutateDocument argument because if it was true, we already deep cloned the object, we'll just pass `true`\n results[i] = applyOperation(document, patch[i], validateOperation, true, banPrototypeModifications, i);\n document = results[i].newDocument; // in case root was replaced\n }\n results.newDocument = document;\n return results;\n}\n/**\n * Apply a single JSON Patch Operation on a JSON document.\n * Returns the updated document.\n * Suitable as a reducer.\n *\n * @param document The document to patch\n * @param operation The operation to apply\n * @return The updated document\n */\nexport function applyReducer(document, operation, index) {\n var operationResult = applyOperation(document, operation);\n if (operationResult.test === false) { // failed test\n throw new JsonPatchError(\"Test operation failed\", 'TEST_OPERATION_FAILED', index, operation, document);\n }\n return operationResult.newDocument;\n}\n/**\n * Validates a single operation. Called from `jsonpatch.validate`. Throws `JsonPatchError` in case of an error.\n * @param {object} operation - operation object (patch)\n * @param {number} index - index of operation in the sequence\n * @param {object} [document] - object where the operation is supposed to be applied\n * @param {string} [existingPathFragment] - comes along with `document`\n */\nexport function validator(operation, index, document, existingPathFragment) {\n if (typeof operation !== 'object' || operation === null || Array.isArray(operation)) {\n throw new JsonPatchError('Operation is not an object', 'OPERATION_NOT_AN_OBJECT', index, operation, document);\n }\n else if (!objOps[operation.op]) {\n throw new JsonPatchError('Operation `op` property is not one of operations defined in RFC-6902', 'OPERATION_OP_INVALID', index, operation, document);\n }\n else if (typeof operation.path !== 'string') {\n throw new JsonPatchError('Operation `path` property is not a string', 'OPERATION_PATH_INVALID', index, operation, document);\n }\n else if (operation.path.indexOf('/') !== 0 && operation.path.length > 0) {\n // paths that aren't empty string should start with \"/\"\n throw new JsonPatchError('Operation `path` property must start with \"/\"', 'OPERATION_PATH_INVALID', index, operation, document);\n }\n else if ((operation.op === 'move' || operation.op === 'copy') && typeof operation.from !== 'string') {\n throw new JsonPatchError('Operation `from` property is not present (applicable in `move` and `copy` operations)', 'OPERATION_FROM_REQUIRED', index, operation, document);\n }\n else if ((operation.op === 'add' || operation.op === 'replace' || operation.op === 'test') && operation.value === undefined) {\n throw new JsonPatchError('Operation `value` property is not present (applicable in `add`, `replace` and `test` operations)', 'OPERATION_VALUE_REQUIRED', index, operation, document);\n }\n else if ((operation.op === 'add' || operation.op === 'replace' || operation.op === 'test') && hasUndefined(operation.value)) {\n throw new JsonPatchError('Operation `value` property is not present (applicable in `add`, `replace` and `test` operations)', 'OPERATION_VALUE_CANNOT_CONTAIN_UNDEFINED', index, operation, document);\n }\n else if (document) {\n if (operation.op == \"add\") {\n var pathLen = operation.path.split(\"/\").length;\n var existingPathLen = existingPathFragment.split(\"/\").length;\n if (pathLen !== existingPathLen + 1 && pathLen !== existingPathLen) {\n throw new JsonPatchError('Cannot perform an `add` operation at the desired path', 'OPERATION_PATH_CANNOT_ADD', index, operation, document);\n }\n }\n else if (operation.op === 'replace' || operation.op === 'remove' || operation.op === '_get') {\n if (operation.path !== existingPathFragment) {\n throw new JsonPatchError('Cannot perform the operation at a path that does not exist', 'OPERATION_PATH_UNRESOLVABLE', index, operation, document);\n }\n }\n else if (operation.op === 'move' || operation.op === 'copy') {\n var existingValue = { op: \"_get\", path: operation.from, value: undefined };\n var error = validate([existingValue], document);\n if (error && error.name === 'OPERATION_PATH_UNRESOLVABLE') {\n throw new JsonPatchError('Cannot perform the operation from a path that does not exist', 'OPERATION_FROM_UNRESOLVABLE', index, operation, document);\n }\n }\n }\n}\n/**\n * Validates a sequence of operations. If `document` parameter is provided, the sequence is additionally validated against the object document.\n * If error is encountered, returns a JsonPatchError object\n * @param sequence\n * @param document\n * @returns {JsonPatchError|undefined}\n */\nexport function validate(sequence, document, externalValidator) {\n try {\n if (!Array.isArray(sequence)) {\n throw new JsonPatchError('Patch sequence must be an array', 'SEQUENCE_NOT_AN_ARRAY');\n }\n if (document) {\n //clone document and sequence so that we can safely try applying operations\n applyPatch(_deepClone(document), _deepClone(sequence), externalValidator || true);\n }\n else {\n externalValidator = externalValidator || validator;\n for (var i = 0; i < sequence.length; i++) {\n externalValidator(sequence[i], i, document, undefined);\n }\n }\n }\n catch (e) {\n if (e instanceof JsonPatchError) {\n return e;\n }\n else {\n throw e;\n }\n }\n}\n// based on https://github.com/epoberezkin/fast-deep-equal\n// MIT License\n// Copyright (c) 2017 Evgeny Poberezkin\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 deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\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 NONINFRINGEMENT. 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 FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n// SOFTWARE.\nexport function _areEquals(a, b) {\n if (a === b)\n return true;\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n var arrA = Array.isArray(a), arrB = Array.isArray(b), i, length, key;\n if (arrA && arrB) {\n length = a.length;\n if (length != b.length)\n return false;\n for (i = length; i-- !== 0;)\n if (!_areEquals(a[i], b[i]))\n return false;\n return true;\n }\n if (arrA != arrB)\n return false;\n var keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length)\n return false;\n for (i = length; i-- !== 0;)\n if (!b.hasOwnProperty(keys[i]))\n return false;\n for (i = length; i-- !== 0;) {\n key = keys[i];\n if (!_areEquals(a[key], b[key]))\n return false;\n }\n return true;\n }\n return a !== a && b !== b;\n}\n;\n","/*!\n * https://github.com/Starcounter-Jack/JSON-Patch\n * (c) 2017-2021 Joachim Wester\n * MIT license\n */\nimport { _deepClone, _objectKeys, escapePathComponent, hasOwnProperty } from './helpers.mjs';\nimport { applyPatch } from './core.mjs';\nvar beforeDict = new WeakMap();\nvar Mirror = /** @class */ (function () {\n function Mirror(obj) {\n this.observers = new Map();\n this.obj = obj;\n }\n return Mirror;\n}());\nvar ObserverInfo = /** @class */ (function () {\n function ObserverInfo(callback, observer) {\n this.callback = callback;\n this.observer = observer;\n }\n return ObserverInfo;\n}());\nfunction getMirror(obj) {\n return beforeDict.get(obj);\n}\nfunction getObserverFromMirror(mirror, callback) {\n return mirror.observers.get(callback);\n}\nfunction removeObserverFromMirror(mirror, observer) {\n mirror.observers.delete(observer.callback);\n}\n/**\n * Detach an observer from an object\n */\nexport function unobserve(root, observer) {\n observer.unobserve();\n}\n/**\n * Observes changes made to an object, which can then be retrieved using generate\n */\nexport function observe(obj, callback) {\n var patches = [];\n var observer;\n var mirror = getMirror(obj);\n if (!mirror) {\n mirror = new Mirror(obj);\n beforeDict.set(obj, mirror);\n }\n else {\n var observerInfo = getObserverFromMirror(mirror, callback);\n observer = observerInfo && observerInfo.observer;\n }\n if (observer) {\n return observer;\n }\n observer = {};\n mirror.value = _deepClone(obj);\n if (callback) {\n observer.callback = callback;\n observer.next = null;\n var dirtyCheck = function () {\n generate(observer);\n };\n var fastCheck = function () {\n clearTimeout(observer.next);\n observer.next = setTimeout(dirtyCheck);\n };\n if (typeof window !== 'undefined') { //not Node\n window.addEventListener('mouseup', fastCheck);\n window.addEventListener('keyup', fastCheck);\n window.addEventListener('mousedown', fastCheck);\n window.addEventListener('keydown', fastCheck);\n window.addEventListener('change', fastCheck);\n }\n }\n observer.patches = patches;\n observer.object = obj;\n observer.unobserve = function () {\n generate(observer);\n clearTimeout(observer.next);\n removeObserverFromMirror(mirror, observer);\n if (typeof window !== 'undefined') {\n window.removeEventListener('mouseup', fastCheck);\n window.removeEventListener('keyup', fastCheck);\n window.removeEventListener('mousedown', fastCheck);\n window.removeEventListener('keydown', fastCheck);\n window.removeEventListener('change', fastCheck);\n }\n };\n mirror.observers.set(callback, new ObserverInfo(callback, observer));\n return observer;\n}\n/**\n * Generate an array of patches from an observer\n */\nexport function generate(observer, invertible) {\n if (invertible === void 0) { invertible = false; }\n var mirror = beforeDict.get(observer.object);\n _generate(mirror.value, observer.object, observer.patches, \"\", invertible);\n if (observer.patches.length) {\n applyPatch(mirror.value, observer.patches);\n }\n var temp = observer.patches;\n if (temp.length > 0) {\n observer.patches = [];\n if (observer.callback) {\n observer.callback(temp);\n }\n }\n return temp;\n}\n// Dirty check if obj is different from mirror, generate patches and update mirror\nfunction _generate(mirror, obj, patches, path, invertible) {\n if (obj === mirror) {\n return;\n }\n if (typeof obj.toJSON === \"function\") {\n obj = obj.toJSON();\n }\n var newKeys = _objectKeys(obj);\n var oldKeys = _objectKeys(mirror);\n var changed = false;\n var deleted = false;\n //if ever \"move\" operation is implemented here, make sure this test runs OK: \"should not generate the same patch twice (move)\"\n for (var t = oldKeys.length - 1; t >= 0; t--) {\n var key = oldKeys[t];\n var oldVal = mirror[key];\n if (hasOwnProperty(obj, key) && !(obj[key] === undefined && oldVal !== undefined && Array.isArray(obj) === false)) {\n var newVal = obj[key];\n if (typeof oldVal == \"object\" && oldVal != null && typeof newVal == \"object\" && newVal != null && Array.isArray(oldVal) === Array.isArray(newVal)) {\n _generate(oldVal, newVal, patches, path + \"/\" + escapePathComponent(key), invertible);\n }\n else {\n if (oldVal !== newVal) {\n changed = true;\n if (invertible) {\n patches.push({ op: \"test\", path: path + \"/\" + escapePathComponent(key), value: _deepClone(oldVal) });\n }\n patches.push({ op: \"replace\", path: path + \"/\" + escapePathComponent(key), value: _deepClone(newVal) });\n }\n }\n }\n else if (Array.isArray(mirror) === Array.isArray(obj)) {\n if (invertible) {\n patches.push({ op: \"test\", path: path + \"/\" + escapePathComponent(key), value: _deepClone(oldVal) });\n }\n patches.push({ op: \"remove\", path: path + \"/\" + escapePathComponent(key) });\n deleted = true; // property has been deleted\n }\n else {\n if (invertible) {\n patches.push({ op: \"test\", path: path, value: mirror });\n }\n patches.push({ op: \"replace\", path: path, value: obj });\n changed = true;\n }\n }\n if (!deleted && newKeys.length == oldKeys.length) {\n return;\n }\n for (var t = 0; t < newKeys.length; t++) {\n var key = newKeys[t];\n if (!hasOwnProperty(mirror, key) && obj[key] !== undefined) {\n patches.push({ op: \"add\", path: path + \"/\" + escapePathComponent(key), value: _deepClone(obj[key]) });\n }\n }\n}\n/**\n * Create an array of patches from the differences in two objects\n */\nexport function compare(tree1, tree2, invertible) {\n if (invertible === void 0) { invertible = false; }\n var patches = [];\n _generate(tree1, tree2, patches, '', invertible);\n return patches;\n}\n","export * from './module/core.mjs';\nexport * from './module/duplex.mjs';\nexport {\n PatchError as JsonPatchError,\n _deepClone as deepClone,\n escapePathComponent,\n unescapePathComponent\n} from './module/helpers.mjs';\n\n\n/**\n * Default export for backwards compat\n */\n\nimport * as core from './module/core.mjs';\nimport * as duplex from './module/duplex.mjs';\nimport {\n PatchError as JsonPatchError,\n _deepClone as deepClone,\n escapePathComponent,\n unescapePathComponent\n} from './module/helpers.mjs';\n\nexport default Object.assign({}, core, duplex, {\n JsonPatchError,\n deepClone,\n escapePathComponent,\n unescapePathComponent\n});","function adjustSpatial (item, encode, swap) {\n let t;\n\n if (encode.x2) {\n if (encode.x) {\n if (swap && item.x > item.x2) {\n t = item.x;\n item.x = item.x2;\n item.x2 = t;\n }\n\n item.width = item.x2 - item.x;\n } else {\n item.x = item.x2 - (item.width || 0);\n }\n }\n\n if (encode.xc) {\n item.x = item.xc - (item.width || 0) / 2;\n }\n\n if (encode.y2) {\n if (encode.y) {\n if (swap && item.y > item.y2) {\n t = item.y;\n item.y = item.y2;\n item.y2 = t;\n }\n\n item.height = item.y2 - item.y;\n } else {\n item.y = item.y2 - (item.height || 0);\n }\n }\n\n if (encode.yc) {\n item.y = item.yc - (item.height || 0) / 2;\n }\n}\n\nvar Constants = {\n NaN: NaN,\n E: Math.E,\n LN2: Math.LN2,\n LN10: Math.LN10,\n LOG2E: Math.LOG2E,\n LOG10E: Math.LOG10E,\n PI: Math.PI,\n SQRT1_2: Math.SQRT1_2,\n SQRT2: Math.SQRT2,\n MIN_VALUE: Number.MIN_VALUE,\n MAX_VALUE: Number.MAX_VALUE\n};\n\nvar Ops = {\n '*': (a, b) => a * b,\n '+': (a, b) => a + b,\n '-': (a, b) => a - b,\n '/': (a, b) => a / b,\n '%': (a, b) => a % b,\n '>': (a, b) => a > b,\n '<': (a, b) => a < b,\n '<=': (a, b) => a <= b,\n '>=': (a, b) => a >= b,\n '==': (a, b) => a == b,\n '!=': (a, b) => a != b,\n '===': (a, b) => a === b,\n '!==': (a, b) => a !== b,\n '&': (a, b) => a & b,\n '|': (a, b) => a | b,\n '^': (a, b) => a ^ b,\n '<<': (a, b) => a << b,\n '>>': (a, b) => a >> b,\n '>>>': (a, b) => a >>> b\n};\n\nvar Unary = {\n '+': a => +a,\n '-': a => -a,\n '~': a => ~a,\n '!': a => !a\n};\n\nconst slice = Array.prototype.slice;\n\nconst apply = (m, args, cast) => {\n const obj = cast ? cast(args[0]) : args[0];\n return obj[m].apply(obj, slice.call(args, 1));\n};\n\nconst datetime = (y, m, d, H, M, S, ms) => new Date(y, m || 0, d != null ? d : 1, H || 0, M || 0, S || 0, ms || 0);\n\nvar Functions = {\n // math functions\n isNaN: Number.isNaN,\n isFinite: Number.isFinite,\n abs: Math.abs,\n acos: Math.acos,\n asin: Math.asin,\n atan: Math.atan,\n atan2: Math.atan2,\n ceil: Math.ceil,\n cos: Math.cos,\n exp: Math.exp,\n floor: Math.floor,\n log: Math.log,\n max: Math.max,\n min: Math.min,\n pow: Math.pow,\n random: Math.random,\n round: Math.round,\n sin: Math.sin,\n sqrt: Math.sqrt,\n tan: Math.tan,\n clamp: (a, b, c) => Math.max(b, Math.min(c, a)),\n // date functions\n now: Date.now,\n utc: Date.UTC,\n datetime: datetime,\n date: d => new Date(d).getDate(),\n day: d => new Date(d).getDay(),\n year: d => new Date(d).getFullYear(),\n month: d => new Date(d).getMonth(),\n hours: d => new Date(d).getHours(),\n minutes: d => new Date(d).getMinutes(),\n seconds: d => new Date(d).getSeconds(),\n milliseconds: d => new Date(d).getMilliseconds(),\n time: d => new Date(d).getTime(),\n timezoneoffset: d => new Date(d).getTimezoneOffset(),\n utcdate: d => new Date(d).getUTCDate(),\n utcday: d => new Date(d).getUTCDay(),\n utcyear: d => new Date(d).getUTCFullYear(),\n utcmonth: d => new Date(d).getUTCMonth(),\n utchours: d => new Date(d).getUTCHours(),\n utcminutes: d => new Date(d).getUTCMinutes(),\n utcseconds: d => new Date(d).getUTCSeconds(),\n utcmilliseconds: d => new Date(d).getUTCMilliseconds(),\n // sequence functions\n length: x => x.length,\n join: function () {\n return apply('join', arguments);\n },\n indexof: function () {\n return apply('indexOf', arguments);\n },\n lastindexof: function () {\n return apply('lastIndexOf', arguments);\n },\n slice: function () {\n return apply('slice', arguments);\n },\n reverse: x => x.slice().reverse(),\n // string functions\n parseFloat: parseFloat,\n parseInt: parseInt,\n upper: x => String(x).toUpperCase(),\n lower: x => String(x).toLowerCase(),\n substring: function () {\n return apply('substring', arguments, String);\n },\n split: function () {\n return apply('split', arguments, String);\n },\n replace: function () {\n return apply('replace', arguments, String);\n },\n trim: x => String(x).trim(),\n // regexp functions\n regexp: RegExp,\n test: (r, t) => RegExp(r).test(t)\n};\n\nconst EventFunctions = ['view', 'item', 'group', 'xy', 'x', 'y'];\nconst Visitors = {\n Literal: ($, n) => n.value,\n Identifier: ($, n) => {\n const id = n.name;\n return $.memberDepth > 0 ? id : id === 'datum' ? $.datum : id === 'event' ? $.event : id === 'item' ? $.item : Constants[id] || $.params['$' + id];\n },\n MemberExpression: ($, n) => {\n const d = !n.computed,\n o = $(n.object);\n if (d) $.memberDepth += 1;\n const p = $(n.property);\n if (d) $.memberDepth -= 1;\n return o[p];\n },\n CallExpression: ($, n) => {\n const args = n.arguments;\n let name = n.callee.name; // handle special internal functions used by encoders\n // re-route to corresponding standard function\n\n if (name.startsWith('_')) {\n name = name.slice(1);\n } // special case \"if\" due to conditional evaluation of branches\n\n\n return name === 'if' ? $(args[0]) ? $(args[1]) : $(args[2]) : ($.fn[name] || Functions[name]).apply($.fn, args.map($));\n },\n ArrayExpression: ($, n) => n.elements.map($),\n BinaryExpression: ($, n) => Ops[n.operator]($(n.left), $(n.right)),\n UnaryExpression: ($, n) => Unary[n.operator]($(n.argument)),\n ConditionalExpression: ($, n) => $(n.test) ? $(n.consequent) : $(n.alternate),\n LogicalExpression: ($, n) => n.operator === '&&' ? $(n.left) && $(n.right) : $(n.left) || $(n.right),\n ObjectExpression: ($, n) => n.properties.reduce((o, p) => {\n $.memberDepth += 1;\n const k = $(p.key);\n $.memberDepth -= 1;\n o[k] = $(p.value);\n return o;\n }, {})\n};\nfunction interpret (ast, fn, params, datum, event, item) {\n const $ = n => Visitors[n.type]($, n);\n\n $.memberDepth = 0;\n $.fn = Object.create(fn);\n $.params = params;\n $.datum = datum;\n $.event = event;\n $.item = item; // route event functions to annotated vega event context\n\n EventFunctions.forEach(f => $.fn[f] = (...args) => event.vega[f](...args));\n return $(ast);\n}\n\nvar expression = {\n /**\n * Parse an expression used to update an operator value.\n */\n operator(ctx, expr) {\n const ast = expr.ast,\n fn = ctx.functions;\n return _ => interpret(ast, fn, _);\n },\n\n /**\n * Parse an expression provided as an operator parameter value.\n */\n parameter(ctx, expr) {\n const ast = expr.ast,\n fn = ctx.functions;\n return (datum, _) => interpret(ast, fn, _, datum);\n },\n\n /**\n * Parse an expression applied to an event stream.\n */\n event(ctx, expr) {\n const ast = expr.ast,\n fn = ctx.functions;\n return event => interpret(ast, fn, undefined, undefined, event);\n },\n\n /**\n * Parse an expression used to handle an event-driven operator update.\n */\n handler(ctx, expr) {\n const ast = expr.ast,\n fn = ctx.functions;\n return (_, event) => {\n const datum = event.item && event.item.datum;\n return interpret(ast, fn, _, datum, event);\n };\n },\n\n /**\n * Parse an expression that performs visual encoding.\n */\n encode(ctx, encode) {\n const {\n marktype,\n channels\n } = encode,\n fn = ctx.functions,\n swap = marktype === 'group' || marktype === 'image' || marktype === 'rect';\n return (item, _) => {\n const datum = item.datum;\n let m = 0,\n v;\n\n for (const name in channels) {\n v = interpret(channels[name].ast, fn, _, datum, undefined, item);\n\n if (item[name] !== v) {\n item[name] = v;\n m = 1;\n }\n }\n\n if (marktype !== 'rule') {\n adjustSpatial(item, channels, swap);\n }\n\n return m;\n };\n }\n\n};\n\nexport { expression as expressionInterpreter };\n","/**\n * Parse a vega schema url into library and version.\n */\nexport default function(url: string) {\n const regex = /schema\\/([\\w-]+)\\/([\\w\\.\\-]+)\\.json$/g;\n const [library, version] = regex.exec(url)!.slice(1, 3);\n return {library: library as 'vega' | 'vega-lite', version};\n}\n","var name = \"vega-themes\";\nvar version$1 = \"2.10.0\";\nvar description = \"Themes for stylized Vega and Vega-Lite visualizations.\";\nvar keywords = [\n\t\"vega\",\n\t\"vega-lite\",\n\t\"themes\",\n\t\"style\"\n];\nvar license = \"BSD-3-Clause\";\nvar author = {\n\tname: \"UW Interactive Data Lab\",\n\turl: \"https://idl.cs.washington.edu\"\n};\nvar contributors = [\n\t{\n\t\tname: \"Emily Gu\",\n\t\turl: \"https://github.com/emilygu\"\n\t},\n\t{\n\t\tname: \"Arvind Satyanarayan\",\n\t\turl: \"http://arvindsatya.com\"\n\t},\n\t{\n\t\tname: \"Jeffrey Heer\",\n\t\turl: \"https://idl.cs.washington.edu\"\n\t},\n\t{\n\t\tname: \"Dominik Moritz\",\n\t\turl: \"https://www.domoritz.de\"\n\t}\n];\nvar main = \"build/vega-themes.js\";\nvar module = \"build/vega-themes.module.js\";\nvar unpkg = \"build/vega-themes.min.js\";\nvar jsdelivr = \"build/vega-themes.min.js\";\nvar types = \"build/vega-themes.module.d.ts\";\nvar repository = {\n\ttype: \"git\",\n\turl: \"https://github.com/vega/vega-themes.git\"\n};\nvar files = [\n\t\"src\",\n\t\"build\"\n];\nvar scripts = {\n\tprebuild: \"yarn clean\",\n\tbuild: \"rollup -c\",\n\tclean: \"rimraf build && rimraf examples/build\",\n\t\"copy:data\": \"rsync -r node_modules/vega-datasets/data/* examples/data\",\n\t\"copy:build\": \"rsync -r build/* examples/build\",\n\t\"deploy:gh\": \"yarn build && mkdir -p examples/build && rsync -r build/* examples/build && gh-pages -d examples\",\n\tpreversion: \"yarn lint\",\n\tserve: \"browser-sync start -s -f build examples --serveStatic examples\",\n\tstart: \"yarn build && concurrently --kill-others -n Server,Rollup 'yarn serve' 'rollup -c -w'\",\n\tprepare: \"beemo create-config\",\n\teslintbase: \"beemo eslint .\",\n\tformat: \"yarn eslintbase --fix\",\n\tlint: \"yarn eslintbase\",\n\trelease: \"auto shipit\"\n};\nvar devDependencies = {\n\t\"@auto-it/conventional-commits\": \"^10.32.2\",\n\t\"@auto-it/first-time-contributor\": \"^10.32.2\",\n\t\"@rollup/plugin-json\": \"^4.1.0\",\n\t\"@rollup/plugin-node-resolve\": \"^13.0.6\",\n\t\"rollup-plugin-ts\": \"^1.4.7\",\n\tauto: \"^10.32.2\",\n\t\"browser-sync\": \"^2.27.7\",\n\tconcurrently: \"^6.4.0\",\n\t\"gh-pages\": \"^3.2.3\",\n\trollup: \"^2.60.0\",\n\t\"rollup-plugin-bundle-size\": \"^1.0.3\",\n\t\"rollup-plugin-terser\": \"^7.0.2\",\n\ttypescript: \"^4.4.4\",\n\tvega: \"^5.19.1\",\n\t\"vega-lite\": \"^5.0.0\",\n\t\"vega-lite-dev-config\": \"^0.20.0\"\n};\nvar peerDependencies = {\n\tvega: \"*\",\n\t\"vega-lite\": \"*\"\n};\nvar pkg = {\n\tname: name,\n\tversion: version$1,\n\tdescription: description,\n\tkeywords: keywords,\n\tlicense: license,\n\tauthor: author,\n\tcontributors: contributors,\n\tmain: main,\n\tmodule: module,\n\tunpkg: unpkg,\n\tjsdelivr: jsdelivr,\n\ttypes: types,\n\trepository: repository,\n\tfiles: files,\n\tscripts: scripts,\n\tdevDependencies: devDependencies,\n\tpeerDependencies: peerDependencies\n};\n\nconst lightColor = '#fff';\nconst medColor = '#888';\nconst darkTheme = {\n background: '#333',\n title: {\n color: lightColor,\n subtitleColor: lightColor,\n },\n style: {\n 'guide-label': {\n fill: lightColor,\n },\n 'guide-title': {\n fill: lightColor,\n },\n },\n axis: {\n domainColor: lightColor,\n gridColor: medColor,\n tickColor: lightColor,\n },\n};\n\nconst markColor$7 = '#4572a7';\nconst excelTheme = {\n background: '#fff',\n arc: { fill: markColor$7 },\n area: { fill: markColor$7 },\n line: { stroke: markColor$7, strokeWidth: 2 },\n path: { stroke: markColor$7 },\n rect: { fill: markColor$7 },\n shape: { stroke: markColor$7 },\n symbol: { fill: markColor$7, strokeWidth: 1.5, size: 50 },\n axis: {\n bandPosition: 0.5,\n grid: true,\n gridColor: '#000000',\n gridOpacity: 1,\n gridWidth: 0.5,\n labelPadding: 10,\n tickSize: 5,\n tickWidth: 0.5,\n },\n axisBand: {\n grid: false,\n tickExtra: true,\n },\n legend: {\n labelBaseline: 'middle',\n labelFontSize: 11,\n symbolSize: 50,\n symbolType: 'square',\n },\n range: {\n category: [\n '#4572a7',\n '#aa4643',\n '#8aa453',\n '#71598e',\n '#4598ae',\n '#d98445',\n '#94aace',\n '#d09393',\n '#b9cc98',\n '#a99cbc',\n ],\n },\n};\n\nconst markColor$6 = '#30a2da';\nconst axisColor$2 = '#cbcbcb';\nconst guideLabelColor = '#999';\nconst guideTitleColor = '#333';\nconst backgroundColor$2 = '#f0f0f0';\nconst blackTitle = '#333';\nconst fiveThirtyEightTheme = {\n arc: { fill: markColor$6 },\n area: { fill: markColor$6 },\n axis: {\n domainColor: axisColor$2,\n grid: true,\n gridColor: axisColor$2,\n gridWidth: 1,\n labelColor: guideLabelColor,\n labelFontSize: 10,\n titleColor: guideTitleColor,\n tickColor: axisColor$2,\n tickSize: 10,\n titleFontSize: 14,\n titlePadding: 10,\n labelPadding: 4,\n },\n axisBand: {\n grid: false,\n },\n background: backgroundColor$2,\n group: {\n fill: backgroundColor$2,\n },\n legend: {\n labelColor: blackTitle,\n labelFontSize: 11,\n padding: 1,\n symbolSize: 30,\n symbolType: 'square',\n titleColor: blackTitle,\n titleFontSize: 14,\n titlePadding: 10,\n },\n line: {\n stroke: markColor$6,\n strokeWidth: 2,\n },\n path: { stroke: markColor$6, strokeWidth: 0.5 },\n rect: { fill: markColor$6 },\n range: {\n category: [\n '#30a2da',\n '#fc4f30',\n '#e5ae38',\n '#6d904f',\n '#8b8b8b',\n '#b96db8',\n '#ff9e27',\n '#56cc60',\n '#52d2ca',\n '#52689e',\n '#545454',\n '#9fe4f8',\n ],\n diverging: ['#cc0020', '#e77866', '#f6e7e1', '#d6e8ed', '#91bfd9', '#1d78b5'],\n heatmap: ['#d6e8ed', '#cee0e5', '#91bfd9', '#549cc6', '#1d78b5'],\n },\n point: {\n filled: true,\n shape: 'circle',\n },\n shape: { stroke: markColor$6 },\n bar: {\n binSpacing: 2,\n fill: markColor$6,\n stroke: null,\n },\n title: {\n anchor: 'start',\n fontSize: 24,\n fontWeight: 600,\n offset: 20,\n },\n};\n\nconst markColor$5 = '#000';\nconst ggplot2Theme = {\n group: {\n fill: '#e5e5e5',\n },\n arc: { fill: markColor$5 },\n area: { fill: markColor$5 },\n line: { stroke: markColor$5 },\n path: { stroke: markColor$5 },\n rect: { fill: markColor$5 },\n shape: { stroke: markColor$5 },\n symbol: { fill: markColor$5, size: 40 },\n axis: {\n domain: false,\n grid: true,\n gridColor: '#FFFFFF',\n gridOpacity: 1,\n labelColor: '#7F7F7F',\n labelPadding: 4,\n tickColor: '#7F7F7F',\n tickSize: 5.67,\n titleFontSize: 16,\n titleFontWeight: 'normal',\n },\n legend: {\n labelBaseline: 'middle',\n labelFontSize: 11,\n symbolSize: 40,\n },\n range: {\n category: [\n '#000000',\n '#7F7F7F',\n '#1A1A1A',\n '#999999',\n '#333333',\n '#B0B0B0',\n '#4D4D4D',\n '#C9C9C9',\n '#666666',\n '#DCDCDC',\n ],\n },\n};\n\nconst headlineFontSize = 22;\nconst headlineFontWeight = 'normal';\nconst labelFont$1 = 'Benton Gothic, sans-serif';\nconst labelFontSize = 11.5;\nconst labelFontWeight = 'normal';\nconst markColor$4 = '#82c6df';\n// const markHighlight = '#006d8f';\n// const markDemocrat = '#5789b8';\n// const markRepublican = '#d94f54';\nconst titleFont = 'Benton Gothic Bold, sans-serif';\nconst titleFontWeight = 'normal';\nconst titleFontSize$1 = 13;\nconst colorSchemes$1 = {\n 'category-6': ['#ec8431', '#829eb1', '#c89d29', '#3580b1', '#adc839', '#ab7fb4'],\n 'fire-7': ['#fbf2c7', '#f9e39c', '#f8d36e', '#f4bb6a', '#e68a4f', '#d15a40', '#ab4232'],\n 'fireandice-6': ['#e68a4f', '#f4bb6a', '#f9e39c', '#dadfe2', '#a6b7c6', '#849eae'],\n 'ice-7': ['#edefee', '#dadfe2', '#c4ccd2', '#a6b7c6', '#849eae', '#607785', '#47525d'],\n};\nconst latimesTheme = {\n background: '#ffffff',\n title: {\n anchor: 'start',\n color: '#000000',\n font: titleFont,\n fontSize: headlineFontSize,\n fontWeight: headlineFontWeight,\n },\n arc: { fill: markColor$4 },\n area: { fill: markColor$4 },\n line: { stroke: markColor$4, strokeWidth: 2 },\n path: { stroke: markColor$4 },\n rect: { fill: markColor$4 },\n shape: { stroke: markColor$4 },\n symbol: { fill: markColor$4, size: 30 },\n axis: {\n labelFont: labelFont$1,\n labelFontSize,\n labelFontWeight,\n titleFont,\n titleFontSize: titleFontSize$1,\n titleFontWeight,\n },\n axisX: {\n labelAngle: 0,\n labelPadding: 4,\n tickSize: 3,\n },\n axisY: {\n labelBaseline: 'middle',\n maxExtent: 45,\n minExtent: 45,\n tickSize: 2,\n titleAlign: 'left',\n titleAngle: 0,\n titleX: -45,\n titleY: -11,\n },\n legend: {\n labelFont: labelFont$1,\n labelFontSize,\n symbolType: 'square',\n titleFont,\n titleFontSize: titleFontSize$1,\n titleFontWeight,\n },\n range: {\n category: colorSchemes$1['category-6'],\n diverging: colorSchemes$1['fireandice-6'],\n heatmap: colorSchemes$1['fire-7'],\n ordinal: colorSchemes$1['fire-7'],\n ramp: colorSchemes$1['fire-7'],\n },\n};\n\nconst markColor$3 = '#ab5787';\nconst axisColor$1 = '#979797';\nconst quartzTheme = {\n background: '#f9f9f9',\n arc: { fill: markColor$3 },\n area: { fill: markColor$3 },\n line: { stroke: markColor$3 },\n path: { stroke: markColor$3 },\n rect: { fill: markColor$3 },\n shape: { stroke: markColor$3 },\n symbol: { fill: markColor$3, size: 30 },\n axis: {\n domainColor: axisColor$1,\n domainWidth: 0.5,\n gridWidth: 0.2,\n labelColor: axisColor$1,\n tickColor: axisColor$1,\n tickWidth: 0.2,\n titleColor: axisColor$1,\n },\n axisBand: {\n grid: false,\n },\n axisX: {\n grid: true,\n tickSize: 10,\n },\n axisY: {\n domain: false,\n grid: true,\n tickSize: 0,\n },\n legend: {\n labelFontSize: 11,\n padding: 1,\n symbolSize: 30,\n symbolType: 'square',\n },\n range: {\n category: [\n '#ab5787',\n '#51b2e5',\n '#703c5c',\n '#168dd9',\n '#d190b6',\n '#00609f',\n '#d365ba',\n '#154866',\n '#666666',\n '#c4c4c4',\n ],\n },\n};\n\nconst markColor$2 = '#3e5c69';\nconst voxTheme = {\n background: '#fff',\n arc: { fill: markColor$2 },\n area: { fill: markColor$2 },\n line: { stroke: markColor$2 },\n path: { stroke: markColor$2 },\n rect: { fill: markColor$2 },\n shape: { stroke: markColor$2 },\n symbol: { fill: markColor$2 },\n axis: {\n domainWidth: 0.5,\n grid: true,\n labelPadding: 2,\n tickSize: 5,\n tickWidth: 0.5,\n titleFontWeight: 'normal',\n },\n axisBand: {\n grid: false,\n },\n axisX: {\n gridWidth: 0.2,\n },\n axisY: {\n gridDash: [3],\n gridWidth: 0.4,\n },\n legend: {\n labelFontSize: 11,\n padding: 1,\n symbolType: 'square',\n },\n range: {\n category: ['#3e5c69', '#6793a6', '#182429', '#0570b0', '#3690c0', '#74a9cf', '#a6bddb', '#e2ddf2'],\n },\n};\n\nconst markColor$1 = '#1696d2';\nconst axisColor = '#000000';\nconst backgroundColor$1 = '#FFFFFF';\nconst font = 'Lato';\nconst labelFont = 'Lato';\nconst sourceFont = 'Lato';\nconst gridColor$1 = '#DEDDDD';\nconst titleFontSize = 18;\nconst colorSchemes = {\n 'main-colors': ['#1696d2', '#d2d2d2', '#000000', '#fdbf11', '#ec008b', '#55b748', '#5c5859', '#db2b27'],\n 'shades-blue': ['#CFE8F3', '#A2D4EC', '#73BFE2', '#46ABDB', '#1696D2', '#12719E', '#0A4C6A', '#062635'],\n 'shades-gray': ['#F5F5F5', '#ECECEC', '#E3E3E3', '#DCDBDB', '#D2D2D2', '#9D9D9D', '#696969', '#353535'],\n 'shades-yellow': ['#FFF2CF', '#FCE39E', '#FDD870', '#FCCB41', '#FDBF11', '#E88E2D', '#CA5800', '#843215'],\n 'shades-magenta': ['#F5CBDF', '#EB99C2', '#E46AA7', '#E54096', '#EC008B', '#AF1F6B', '#761548', '#351123'],\n 'shades-green': ['#DCEDD9', '#BCDEB4', '#98CF90', '#78C26D', '#55B748', '#408941', '#2C5C2D', '#1A2E19'],\n 'shades-black': ['#D5D5D4', '#ADABAC', '#848081', '#5C5859', '#332D2F', '#262223', '#1A1717', '#0E0C0D'],\n 'shades-red': ['#F8D5D4', '#F1AAA9', '#E9807D', '#E25552', '#DB2B27', '#A4201D', '#6E1614', '#370B0A'],\n 'one-group': ['#1696d2', '#000000'],\n 'two-groups-cat-1': ['#1696d2', '#000000'],\n 'two-groups-cat-2': ['#1696d2', '#fdbf11'],\n 'two-groups-cat-3': ['#1696d2', '#db2b27'],\n 'two-groups-seq': ['#a2d4ec', '#1696d2'],\n 'three-groups-cat': ['#1696d2', '#fdbf11', '#000000'],\n 'three-groups-seq': ['#a2d4ec', '#1696d2', '#0a4c6a'],\n 'four-groups-cat-1': ['#000000', '#d2d2d2', '#fdbf11', '#1696d2'],\n 'four-groups-cat-2': ['#1696d2', '#ec0008b', '#fdbf11', '#5c5859'],\n 'four-groups-seq': ['#cfe8f3', '#73bf42', '#1696d2', '#0a4c6a'],\n 'five-groups-cat-1': ['#1696d2', '#fdbf11', '#d2d2d2', '#ec008b', '#000000'],\n 'five-groups-cat-2': ['#1696d2', '#0a4c6a', '#d2d2d2', '#fdbf11', '#332d2f'],\n 'five-groups-seq': ['#cfe8f3', '#73bf42', '#1696d2', '#0a4c6a', '#000000'],\n 'six-groups-cat-1': ['#1696d2', '#ec008b', '#fdbf11', '#000000', '#d2d2d2', '#55b748'],\n 'six-groups-cat-2': ['#1696d2', '#d2d2d2', '#ec008b', '#fdbf11', '#332d2f', '#0a4c6a'],\n 'six-groups-seq': ['#cfe8f3', '#a2d4ec', '#73bfe2', '#46abdb', '#1696d2', '#12719e'],\n 'diverging-colors': ['#ca5800', '#fdbf11', '#fdd870', '#fff2cf', '#cfe8f3', '#73bfe2', '#1696d2', '#0a4c6a'],\n};\nconst urbanInstituteTheme = {\n background: backgroundColor$1,\n title: {\n anchor: 'start',\n fontSize: titleFontSize,\n font: font,\n },\n axisX: {\n domain: true,\n domainColor: axisColor,\n domainWidth: 1,\n grid: false,\n labelFontSize: 12,\n labelFont: labelFont,\n labelAngle: 0,\n tickColor: axisColor,\n tickSize: 5,\n titleFontSize: 12,\n titlePadding: 10,\n titleFont: font,\n },\n axisY: {\n domain: false,\n domainWidth: 1,\n grid: true,\n gridColor: gridColor$1,\n gridWidth: 1,\n labelFontSize: 12,\n labelFont: labelFont,\n labelPadding: 8,\n ticks: false,\n titleFontSize: 12,\n titlePadding: 10,\n titleFont: font,\n titleAngle: 0,\n titleY: -10,\n titleX: 18,\n },\n legend: {\n labelFontSize: 12,\n labelFont: labelFont,\n symbolSize: 100,\n titleFontSize: 12,\n titlePadding: 10,\n titleFont: font,\n orient: 'right',\n offset: 10,\n },\n view: {\n stroke: 'transparent',\n },\n range: {\n category: colorSchemes['six-groups-cat-1'],\n diverging: colorSchemes['diverging-colors'],\n heatmap: colorSchemes['diverging-colors'],\n ordinal: colorSchemes['six-groups-seq'],\n ramp: colorSchemes['shades-blue'],\n },\n area: {\n fill: markColor$1,\n },\n rect: {\n fill: markColor$1,\n },\n line: {\n color: markColor$1,\n stroke: markColor$1,\n strokeWidth: 5,\n },\n trail: {\n color: markColor$1,\n stroke: markColor$1,\n strokeWidth: 0,\n size: 1,\n },\n path: {\n stroke: markColor$1,\n strokeWidth: 0.5,\n },\n point: {\n filled: true,\n },\n text: {\n font: sourceFont,\n color: markColor$1,\n fontSize: 11,\n align: 'center',\n fontWeight: 400,\n size: 11,\n },\n style: {\n bar: {\n fill: markColor$1,\n stroke: null,\n },\n },\n arc: { fill: markColor$1 },\n shape: { stroke: markColor$1 },\n symbol: { fill: markColor$1, size: 30 },\n};\n\n/**\n * Copyright 2020 Google LLC.\n *\n * Use of this source code is governed by a BSD-style\n * license that can be found in the LICENSE file or at\n * https://developers.google.com/open-source/licenses/bsd\n */\nconst markColor = '#3366CC';\nconst gridColor = '#ccc';\nconst defaultFont = 'Arial, sans-serif';\nconst googlechartsTheme = {\n arc: { fill: markColor },\n area: { fill: markColor },\n path: { stroke: markColor },\n rect: { fill: markColor },\n shape: { stroke: markColor },\n symbol: { stroke: markColor },\n circle: { fill: markColor },\n background: '#fff',\n padding: {\n top: 10,\n right: 10,\n bottom: 10,\n left: 10,\n },\n style: {\n 'guide-label': {\n font: defaultFont,\n fontSize: 12,\n },\n 'guide-title': {\n font: defaultFont,\n fontSize: 12,\n },\n 'group-title': {\n font: defaultFont,\n fontSize: 12,\n },\n },\n title: {\n font: defaultFont,\n fontSize: 14,\n fontWeight: 'bold',\n dy: -3,\n anchor: 'start',\n },\n axis: {\n gridColor: gridColor,\n tickColor: gridColor,\n domain: false,\n grid: true,\n },\n range: {\n category: [\n '#4285F4',\n '#DB4437',\n '#F4B400',\n '#0F9D58',\n '#AB47BC',\n '#00ACC1',\n '#FF7043',\n '#9E9D24',\n '#5C6BC0',\n '#F06292',\n '#00796B',\n '#C2185B',\n ],\n heatmap: ['#c6dafc', '#5e97f6', '#2a56c6'],\n },\n};\n\nconst ptToPx = (value) => value * (1 / 3 + 1);\nconst fontSmallPx = ptToPx(9);\nconst legendFontPx = ptToPx(10);\nconst fontLargePx = ptToPx(12);\nconst fontStandard = 'Segoe UI';\nconst fontTitle = 'wf_standard-font, helvetica, arial, sans-serif';\nconst firstLevelElementColor = '#252423';\nconst secondLevelElementColor = '#605E5C';\nconst backgroundColor = 'transparent';\nconst backgroundSecondaryColor = '#C8C6C4';\nconst paletteColor1 = '#118DFF';\nconst paletteColor2 = '#12239E';\nconst paletteColor3 = '#E66C37';\nconst paletteColor4 = '#6B007B';\nconst paletteColor5 = '#E044A7';\nconst paletteColor6 = '#744EC2';\nconst paletteColor7 = '#D9B300';\nconst paletteColor8 = '#D64550';\nconst divergentColorMax = paletteColor1;\nconst divergentColorMin = '#DEEFFF';\nconst divergentPalette = [divergentColorMin, divergentColorMax];\nconst ordinalPalette = [\n divergentColorMin,\n '#c7e4ff',\n '#b0d9ff',\n '#9aceff',\n '#83c3ff',\n '#6cb9ff',\n '#55aeff',\n '#3fa3ff',\n '#2898ff',\n divergentColorMax,\n];\nconst powerbiTheme = {\n view: { stroke: backgroundColor },\n background: backgroundColor,\n font: fontStandard,\n header: {\n titleFont: fontTitle,\n titleFontSize: fontLargePx,\n titleColor: firstLevelElementColor,\n labelFont: fontStandard,\n labelFontSize: legendFontPx,\n labelColor: secondLevelElementColor,\n },\n axis: {\n ticks: false,\n grid: false,\n domain: false,\n labelColor: secondLevelElementColor,\n labelFontSize: fontSmallPx,\n titleFont: fontTitle,\n titleColor: firstLevelElementColor,\n titleFontSize: fontLargePx,\n titleFontWeight: 'normal',\n },\n axisQuantitative: {\n tickCount: 3,\n grid: true,\n gridColor: backgroundSecondaryColor,\n gridDash: [1, 5],\n labelFlush: false,\n },\n axisBand: { tickExtra: true },\n axisX: { labelPadding: 5 },\n axisY: { labelPadding: 10 },\n bar: { fill: paletteColor1 },\n line: {\n stroke: paletteColor1,\n strokeWidth: 3,\n strokeCap: 'round',\n strokeJoin: 'round',\n },\n text: { font: fontStandard, fontSize: fontSmallPx, fill: secondLevelElementColor },\n arc: { fill: paletteColor1 },\n area: { fill: paletteColor1, line: true, opacity: 0.6 },\n path: { stroke: paletteColor1 },\n rect: { fill: paletteColor1 },\n point: { fill: paletteColor1, filled: true, size: 75 },\n shape: { stroke: paletteColor1 },\n symbol: { fill: paletteColor1, strokeWidth: 1.5, size: 50 },\n legend: {\n titleFont: fontStandard,\n titleFontWeight: 'bold',\n titleColor: secondLevelElementColor,\n labelFont: fontStandard,\n labelFontSize: legendFontPx,\n labelColor: secondLevelElementColor,\n symbolType: 'circle',\n symbolSize: 75,\n },\n range: {\n category: [\n paletteColor1,\n paletteColor2,\n paletteColor3,\n paletteColor4,\n paletteColor5,\n paletteColor6,\n paletteColor7,\n paletteColor8,\n ],\n diverging: divergentPalette,\n heatmap: divergentPalette,\n ordinal: ordinalPalette,\n },\n};\n\nconst version = pkg.version;\n\nexport { darkTheme as dark, excelTheme as excel, fiveThirtyEightTheme as fivethirtyeight, ggplot2Theme as ggplot2, googlechartsTheme as googlecharts, latimesTheme as latimes, powerbiTheme as powerbi, quartzTheme as quartz, urbanInstituteTheme as urbaninstitute, version, voxTheme as vox };\n","import { isArray, isString, isObject } from 'vega-util';\n\nvar name = \"vega-tooltip\";\nvar version$1 = \"0.28.0\";\nvar description = \"A tooltip plugin for Vega-Lite and Vega visualizations.\";\nvar keywords = [\n\t\"vega-lite\",\n\t\"vega\",\n\t\"tooltip\"\n];\nvar repository = {\n\ttype: \"git\",\n\turl: \"https://github.com/vega/vega-tooltip.git\"\n};\nvar author = {\n\tname: \"UW Interactive Data Lab\",\n\turl: \"https://idl.cs.washington.edu\"\n};\nvar collaborators = [\n\t\"Dominik Moritz\",\n\t\"Sira Horradarn\",\n\t\"Zening Qu\",\n\t\"Kanit Wongsuphasawat\",\n\t\"Yuri Astrakhan\",\n\t\"Jeffrey Heer\"\n];\nvar license = \"BSD-3-Clause\";\nvar bugs = {\n\turl: \"https://github.com/vega/vega-tooltip/issues\"\n};\nvar homepage = \"https://github.com/vega/vega-tooltip#readme\";\nvar main = \"build/vega-tooltip.js\";\nvar module = \"build/vega-tooltip.module.js\";\nvar unpkg = \"build/vega-tooltip.min.js\";\nvar jsdelivr = \"build/vega-tooltip.min.js\";\nvar types = \"build/vega-tooltip.module.d.ts\";\nvar files = [\n\t\"src\",\n\t\"build\",\n\t\"types\"\n];\nvar scripts = {\n\tprebuild: \"yarn clean && yarn build:style\",\n\tbuild: \"rollup -c\",\n\t\"build:style\": \"./build-style.sh\",\n\tclean: \"rimraf build && rimraf src/style.ts\",\n\t\"copy:data\": \"rsync -r node_modules/vega-datasets/data/* examples/data\",\n\t\"copy:build\": \"rsync -r build/* examples/build\",\n\t\"deploy:gh\": \"yarn build && yarn copy:build && gh-pages -d examples && yarn clean\",\n\tprepublishOnly: \"yarn clean && yarn build\",\n\tpreversion: \"yarn lint && yarn test\",\n\tserve: \"browser-sync start -s -f build examples --serveStatic examples\",\n\tstart: \"yarn build && concurrently --kill-others -n Server,Rollup 'yarn serve' 'rollup -c -w'\",\n\tpretest: \"yarn build:style\",\n\ttest: \"beemo jest\",\n\t\"test:inspect\": \"node --inspect-brk ./node_modules/.bin/jest --runInBand\",\n\tprepare: \"beemo create-config && yarn copy:data\",\n\tprettierbase: \"beemo prettier '*.{css,scss,html}'\",\n\teslintbase: \"beemo eslint .\",\n\tformat: \"yarn eslintbase --fix && yarn prettierbase --write\",\n\tlint: \"yarn eslintbase && yarn prettierbase --check\",\n\trelease: \"yarn run prebuild && yarn build && auto shipit\"\n};\nvar devDependencies = {\n\t\"@auto-it/conventional-commits\": \"^10.32.3\",\n\t\"@auto-it/first-time-contributor\": \"^10.32.3\",\n\t\"@rollup/plugin-json\": \"^4.1.0\",\n\t\"@rollup/plugin-node-resolve\": \"^13.0.6\",\n\t\"rollup-plugin-ts\": \"^2.0.4\",\n\tauto: \"^10.32.3\",\n\t\"browser-sync\": \"^2.27.7\",\n\tconcurrently: \"^6.4.0\",\n\t\"gh-pages\": \"^3.2.3\",\n\tsass: \"^1.44.0\",\n\tpath: \"^0.12.7\",\n\trollup: \"^2.60.2\",\n\t\"rollup-plugin-bundle-size\": \"^1.0.3\",\n\t\"rollup-plugin-terser\": \"^7.0.2\",\n\ttypescript: \"~4.5.2\",\n\t\"vega-datasets\": \"^2.2.0\",\n\t\"vega-lite-dev-config\": \"^0.20.0\",\n\t\"vega-typings\": \"^0.22.1\"\n};\nvar dependencies = {\n\t\"vega-util\": \"^1.17.0\"\n};\nvar pkg = {\n\tname: name,\n\tversion: version$1,\n\tdescription: description,\n\tkeywords: keywords,\n\trepository: repository,\n\tauthor: author,\n\tcollaborators: collaborators,\n\tlicense: license,\n\tbugs: bugs,\n\thomepage: homepage,\n\tmain: main,\n\tmodule: module,\n\tunpkg: unpkg,\n\tjsdelivr: jsdelivr,\n\ttypes: types,\n\tfiles: files,\n\tscripts: scripts,\n\tdevDependencies: devDependencies,\n\tdependencies: dependencies\n};\n\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\n\n/**\n * Format the value to be shown in the tooltip.\n *\n * @param value The value to show in the tooltip.\n * @param valueToHtml Function to convert a single cell value to an HTML string\n */\nfunction formatValue(value, valueToHtml, maxDepth) {\n if (isArray(value)) {\n return `[${value.map((v) => valueToHtml(isString(v) ? v : stringify(v, maxDepth))).join(', ')}]`;\n }\n if (isObject(value)) {\n let content = '';\n const _a = value, { title, image } = _a, rest = __rest(_a, [\"title\", \"image\"]);\n if (title) {\n content += `

${valueToHtml(title)}

`;\n }\n if (image) {\n content += ``;\n }\n const keys = Object.keys(rest);\n if (keys.length > 0) {\n content += '';\n for (const key of keys) {\n let val = rest[key];\n // ignore undefined properties\n if (val === undefined) {\n continue;\n }\n if (isObject(val)) {\n val = stringify(val, maxDepth);\n }\n content += ``;\n }\n content += `
${valueToHtml(key)}:${valueToHtml(val)}
`;\n }\n return content || '{}'; // show empty object if there are no properties\n }\n return valueToHtml(value);\n}\nfunction replacer(maxDepth) {\n const stack = [];\n return function (key, value) {\n if (typeof value !== 'object' || value === null) {\n return value;\n }\n const pos = stack.indexOf(this) + 1;\n stack.length = pos;\n if (stack.length > maxDepth) {\n return '[Object]';\n }\n if (stack.indexOf(value) >= 0) {\n return '[Circular]';\n }\n stack.push(value);\n return value;\n };\n}\n/**\n * Stringify any JS object to valid JSON\n */\nfunction stringify(obj, maxDepth) {\n return JSON.stringify(obj, replacer(maxDepth));\n}\n\n// generated with build-style.sh\nvar defaultStyle = `#vg-tooltip-element {\n visibility: hidden;\n padding: 8px;\n position: fixed;\n z-index: 1000;\n font-family: sans-serif;\n font-size: 11px;\n border-radius: 3px;\n box-shadow: 2px 2px 4px rgba(0, 0, 0, 0.1);\n /* The default theme is the light theme. */\n background-color: rgba(255, 255, 255, 0.95);\n border: 1px solid #d9d9d9;\n color: black;\n}\n#vg-tooltip-element.visible {\n visibility: visible;\n}\n#vg-tooltip-element h2 {\n margin-top: 0;\n margin-bottom: 10px;\n font-size: 13px;\n}\n#vg-tooltip-element img {\n max-width: 200px;\n max-height: 200px;\n}\n#vg-tooltip-element table {\n border-spacing: 0;\n}\n#vg-tooltip-element table tr {\n border: none;\n}\n#vg-tooltip-element table tr td {\n overflow: hidden;\n text-overflow: ellipsis;\n padding-top: 2px;\n padding-bottom: 2px;\n}\n#vg-tooltip-element table tr td.key {\n color: #808080;\n max-width: 150px;\n text-align: right;\n padding-right: 4px;\n}\n#vg-tooltip-element table tr td.value {\n display: block;\n max-width: 300px;\n max-height: 7em;\n text-align: left;\n}\n#vg-tooltip-element.dark-theme {\n background-color: rgba(32, 32, 32, 0.9);\n border: 1px solid #f5f5f5;\n color: white;\n}\n#vg-tooltip-element.dark-theme td.key {\n color: #bfbfbf;\n}\n`;\n\nconst EL_ID = 'vg-tooltip-element';\nconst DEFAULT_OPTIONS = {\n /**\n * X offset.\n */\n offsetX: 10,\n /**\n * Y offset.\n */\n offsetY: 10,\n /**\n * ID of the tooltip element.\n */\n id: EL_ID,\n /**\n * ID of the tooltip CSS style.\n */\n styleId: 'vega-tooltip-style',\n /**\n * The name of the theme. You can use the CSS class called [THEME]-theme to style the tooltips.\n *\n * There are two predefined themes: \"light\" (default) and \"dark\".\n */\n theme: 'light',\n /**\n * Do not use the default styles provided by Vega Tooltip. If you enable this option, you need to use your own styles. It is not necessary to disable the default style when using a custom theme.\n */\n disableDefaultStyle: false,\n /**\n * HTML sanitizer function that removes dangerous HTML to prevent XSS.\n *\n * This should be a function from string to string. You may replace it with a formatter such as a markdown formatter.\n */\n sanitize: escapeHTML,\n /**\n * The maximum recursion depth when printing objects in the tooltip.\n */\n maxDepth: 2,\n /**\n * A function to customize the rendered HTML of the tooltip.\n * @param value A value string, or object of value strings keyed by field\n * @param sanitize The `sanitize` function from `options.sanitize`\n * @returns {string} The returned string will become the `innerHTML` of the tooltip element\n */\n formatTooltip: formatValue,\n};\n/**\n * Escape special HTML characters.\n *\n * @param value A value to convert to string and HTML-escape.\n */\nfunction escapeHTML(value) {\n return String(value).replace(/&/g, '&').replace(/ window.innerWidth) {\n x = +event.clientX - offsetX - tooltipBox.width;\n }\n let y = event.clientY + offsetY;\n if (y + tooltipBox.height > window.innerHeight) {\n y = +event.clientY - offsetY - tooltipBox.height;\n }\n return { x, y };\n}\n\n/**\n * The tooltip handler class.\n */\nclass Handler {\n /**\n * Create the tooltip handler and initialize the element and style.\n *\n * @param options Tooltip Options\n */\n constructor(options) {\n this.options = Object.assign(Object.assign({}, DEFAULT_OPTIONS), options);\n const elementId = this.options.id;\n this.el = null;\n // bind this to call\n this.call = this.tooltipHandler.bind(this);\n // prepend a default stylesheet for tooltips to the head\n if (!this.options.disableDefaultStyle && !document.getElementById(this.options.styleId)) {\n const style = document.createElement('style');\n style.setAttribute('id', this.options.styleId);\n style.innerHTML = createDefaultStyle(elementId);\n const head = document.head;\n if (head.childNodes.length > 0) {\n head.insertBefore(style, head.childNodes[0]);\n }\n else {\n head.appendChild(style);\n }\n }\n }\n /**\n * The tooltip handler function.\n */\n tooltipHandler(handler, event, item, value) {\n // console.log(handler, event, item, value);\n var _a;\n // append a div element that we use as a tooltip unless it already exists\n this.el = document.getElementById(this.options.id);\n if (!this.el) {\n this.el = document.createElement('div');\n this.el.setAttribute('id', this.options.id);\n this.el.classList.add('vg-tooltip');\n const tooltipContainer = (_a = document.fullscreenElement) !== null && _a !== void 0 ? _a : document.body;\n tooltipContainer.appendChild(this.el);\n }\n // hide tooltip for null, undefined, or empty string values\n if (value == null || value === '') {\n this.el.classList.remove('visible', `${this.options.theme}-theme`);\n return;\n }\n // set the tooltip content\n this.el.innerHTML = this.options.formatTooltip(value, this.options.sanitize, this.options.maxDepth);\n // make the tooltip visible\n this.el.classList.add('visible', `${this.options.theme}-theme`);\n const { x, y } = calculatePosition(event, this.el.getBoundingClientRect(), this.options.offsetX, this.options.offsetY);\n this.el.setAttribute('style', `top: ${y}px; left: ${x}px`);\n }\n}\n\nconst version = pkg.version;\n/**\n * Create a tooltip handler and register it with the provided view.\n *\n * @param view The Vega view.\n * @param opt Tooltip options.\n */\nfunction index (view, opt) {\n const handler = new Handler(opt);\n view.tooltip(handler.call).run();\n return handler;\n}\n\nexport { DEFAULT_OPTIONS, Handler, calculatePosition, createDefaultStyle, index as default, escapeHTML, formatValue, replacer, stringify, version };\n","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\"use strict\";\n\nvar Op = Object.prototype;\nvar hasOwn = Op.hasOwnProperty;\nvar undefined; // More compressible than void 0.\nvar $Symbol = typeof Symbol === \"function\" ? Symbol : {};\nvar iteratorSymbol = $Symbol.iterator || \"@@iterator\";\nvar asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\nvar toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\nfunction wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n}\n\n// Try/catch helper to minimize deoptimizations. Returns a completion\n// record like context.tryEntries[i].completion. This interface could\n// have been (and was previously) designed to take a closure to be\n// invoked without arguments, but in all the cases we care about we\n// already have an existing method we want to call, so there's no need\n// to create a new function object. We can even get away with assuming\n// the method takes exactly one argument, since that happens to be true\n// in every case, so we don't have to touch the arguments object. The\n// only additional allocation required is the completion record, which\n// has a stable shape and so hopefully should be cheap to allocate.\nfunction tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n}\n\nvar GenStateSuspendedStart = \"suspendedStart\";\nvar GenStateSuspendedYield = \"suspendedYield\";\nvar GenStateExecuting = \"executing\";\nvar GenStateCompleted = \"completed\";\n\n// Returning this object from the innerFn has the same effect as\n// breaking out of the dispatch switch statement.\nvar ContinueSentinel = {};\n\n// Dummy constructor functions that we use as the .constructor and\n// .constructor.prototype properties for functions that return Generator\n// objects. For full spec compliance, you may wish to configure your\n// minifier not to mangle the names of these two functions.\nfunction Generator() {}\nfunction GeneratorFunction() {}\nfunction GeneratorFunctionPrototype() {}\n\n// This is a polyfill for %IteratorPrototype% for environments that\n// don't natively support it.\nvar IteratorPrototype = {};\nIteratorPrototype[iteratorSymbol] = function () {\n return this;\n};\n\nvar getProto = Object.getPrototypeOf;\nvar NativeIteratorPrototype = getProto && getProto(getProto(values([])));\nif (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n}\n\nvar Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\nGeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\nGeneratorFunctionPrototype.constructor = GeneratorFunction;\nGeneratorFunctionPrototype[toStringTagSymbol] =\n GeneratorFunction.displayName = \"GeneratorFunction\";\n\n// Helper for defining the .next, .throw, and .return methods of the\n// Iterator interface in terms of a single ._invoke method.\nfunction defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n prototype[method] = function(arg) {\n return this._invoke(method, arg);\n };\n });\n}\n\nfunction isGeneratorFunction (genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n};\n\nfunction mark (genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n if (!(toStringTagSymbol in genFun)) {\n genFun[toStringTagSymbol] = \"GeneratorFunction\";\n }\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n};\n\n// Within the body of any async function, `await x` is transformed to\n// `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n// `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n// meant to be awaited.\nfunction awrap (arg) {\n return { __await: arg };\n};\n\nfunction AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n}\n\ndefineIteratorMethods(AsyncIterator.prototype);\nAsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n};\n\n// Note that simple async functions are implemented on top of\n// AsyncIterator objects; they just return a Promise for the value of\n// the final result produced by the iterator.\n function async (innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n};\n\nfunction makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n}\n\n// Call delegate.iterator[context.method](context.arg) and handle the\n// result, either by returning a { value, done } result from the\n// delegate iterator, or by modifying context.method and context.arg,\n// setting context.delegate to null, and returning the ContinueSentinel.\nfunction maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n}\n\n// Define Generator.prototype.{next,throw,return} in terms of the\n// unified ._invoke helper method.\ndefineIteratorMethods(Gp);\n\nGp[toStringTagSymbol] = \"Generator\";\n\n// A Generator should always return itself as the iterator object when the\n// @@iterator function is called on it. Some browsers' implementations of the\n// iterator prototype chain incorrectly implement this, causing the Generator\n// object to not be returned from this call. This ensures that doesn't happen.\n// See https://github.com/facebook/regenerator/issues/274 for more details.\nGp[iteratorSymbol] = function() {\n return this;\n};\n\nGp.toString = function() {\n return \"[object Generator]\";\n};\n\nfunction pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n}\n\nfunction resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n}\n\nfunction Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n}\n\nfunction keys (object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n};\n\nfunction values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n}\n\nfunction doneResult() {\n return { value: undefined, done: true };\n}\n\nContext.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n};\n\n// Export a default namespace that plays well with Rollup\nexport default {\n wrap,\n isGeneratorFunction,\n AsyncIterator,\n mark,\n awrap,\n async,\n keys,\n values\n};\n","'use strict'\nmodule.exports = Yallist\n\nYallist.Node = Node\nYallist.create = Yallist\n\nfunction Yallist (list) {\n var self = this\n if (!(self instanceof Yallist)) {\n self = new Yallist()\n }\n\n self.tail = null\n self.head = null\n self.length = 0\n\n if (list && typeof list.forEach === 'function') {\n list.forEach(function (item) {\n self.push(item)\n })\n } else if (arguments.length > 0) {\n for (var i = 0, l = arguments.length; i < l; i++) {\n self.push(arguments[i])\n }\n }\n\n return self\n}\n\nYallist.prototype.removeNode = function (node) {\n if (node.list !== this) {\n throw new Error('removing node which does not belong to this list')\n }\n\n var next = node.next\n var prev = node.prev\n\n if (next) {\n next.prev = prev\n }\n\n if (prev) {\n prev.next = next\n }\n\n if (node === this.head) {\n this.head = next\n }\n if (node === this.tail) {\n this.tail = prev\n }\n\n node.list.length--\n node.next = null\n node.prev = null\n node.list = null\n\n return next\n}\n\nYallist.prototype.unshiftNode = function (node) {\n if (node === this.head) {\n return\n }\n\n if (node.list) {\n node.list.removeNode(node)\n }\n\n var head = this.head\n node.list = this\n node.next = head\n if (head) {\n head.prev = node\n }\n\n this.head = node\n if (!this.tail) {\n this.tail = node\n }\n this.length++\n}\n\nYallist.prototype.pushNode = function (node) {\n if (node === this.tail) {\n return\n }\n\n if (node.list) {\n node.list.removeNode(node)\n }\n\n var tail = this.tail\n node.list = this\n node.prev = tail\n if (tail) {\n tail.next = node\n }\n\n this.tail = node\n if (!this.head) {\n this.head = node\n }\n this.length++\n}\n\nYallist.prototype.push = function () {\n for (var i = 0, l = arguments.length; i < l; i++) {\n push(this, arguments[i])\n }\n return this.length\n}\n\nYallist.prototype.unshift = function () {\n for (var i = 0, l = arguments.length; i < l; i++) {\n unshift(this, arguments[i])\n }\n return this.length\n}\n\nYallist.prototype.pop = function () {\n if (!this.tail) {\n return undefined\n }\n\n var res = this.tail.value\n this.tail = this.tail.prev\n if (this.tail) {\n this.tail.next = null\n } else {\n this.head = null\n }\n this.length--\n return res\n}\n\nYallist.prototype.shift = function () {\n if (!this.head) {\n return undefined\n }\n\n var res = this.head.value\n this.head = this.head.next\n if (this.head) {\n this.head.prev = null\n } else {\n this.tail = null\n }\n this.length--\n return res\n}\n\nYallist.prototype.forEach = function (fn, thisp) {\n thisp = thisp || this\n for (var walker = this.head, i = 0; walker !== null; i++) {\n fn.call(thisp, walker.value, i, this)\n walker = walker.next\n }\n}\n\nYallist.prototype.forEachReverse = function (fn, thisp) {\n thisp = thisp || this\n for (var walker = this.tail, i = this.length - 1; walker !== null; i--) {\n fn.call(thisp, walker.value, i, this)\n walker = walker.prev\n }\n}\n\nYallist.prototype.get = function (n) {\n for (var i = 0, walker = this.head; walker !== null && i < n; i++) {\n // abort out of the list early if we hit a cycle\n walker = walker.next\n }\n if (i === n && walker !== null) {\n return walker.value\n }\n}\n\nYallist.prototype.getReverse = function (n) {\n for (var i = 0, walker = this.tail; walker !== null && i < n; i++) {\n // abort out of the list early if we hit a cycle\n walker = walker.prev\n }\n if (i === n && walker !== null) {\n return walker.value\n }\n}\n\nYallist.prototype.map = function (fn, thisp) {\n thisp = thisp || this\n var res = new Yallist()\n for (var walker = this.head; walker !== null;) {\n res.push(fn.call(thisp, walker.value, this))\n walker = walker.next\n }\n return res\n}\n\nYallist.prototype.mapReverse = function (fn, thisp) {\n thisp = thisp || this\n var res = new Yallist()\n for (var walker = this.tail; walker !== null;) {\n res.push(fn.call(thisp, walker.value, this))\n walker = walker.prev\n }\n return res\n}\n\nYallist.prototype.reduce = function (fn, initial) {\n var acc\n var walker = this.head\n if (arguments.length > 1) {\n acc = initial\n } else if (this.head) {\n walker = this.head.next\n acc = this.head.value\n } else {\n throw new TypeError('Reduce of empty list with no initial value')\n }\n\n for (var i = 0; walker !== null; i++) {\n acc = fn(acc, walker.value, i)\n walker = walker.next\n }\n\n return acc\n}\n\nYallist.prototype.reduceReverse = function (fn, initial) {\n var acc\n var walker = this.tail\n if (arguments.length > 1) {\n acc = initial\n } else if (this.tail) {\n walker = this.tail.prev\n acc = this.tail.value\n } else {\n throw new TypeError('Reduce of empty list with no initial value')\n }\n\n for (var i = this.length - 1; walker !== null; i--) {\n acc = fn(acc, walker.value, i)\n walker = walker.prev\n }\n\n return acc\n}\n\nYallist.prototype.toArray = function () {\n var arr = new Array(this.length)\n for (var i = 0, walker = this.head; walker !== null; i++) {\n arr[i] = walker.value\n walker = walker.next\n }\n return arr\n}\n\nYallist.prototype.toArrayReverse = function () {\n var arr = new Array(this.length)\n for (var i = 0, walker = this.tail; walker !== null; i++) {\n arr[i] = walker.value\n walker = walker.prev\n }\n return arr\n}\n\nYallist.prototype.slice = function (from, to) {\n to = to || this.length\n if (to < 0) {\n to += this.length\n }\n from = from || 0\n if (from < 0) {\n from += this.length\n }\n var ret = new Yallist()\n if (to < from || to < 0) {\n return ret\n }\n if (from < 0) {\n from = 0\n }\n if (to > this.length) {\n to = this.length\n }\n for (var i = 0, walker = this.head; walker !== null && i < from; i++) {\n walker = walker.next\n }\n for (; walker !== null && i < to; i++, walker = walker.next) {\n ret.push(walker.value)\n }\n return ret\n}\n\nYallist.prototype.sliceReverse = function (from, to) {\n to = to || this.length\n if (to < 0) {\n to += this.length\n }\n from = from || 0\n if (from < 0) {\n from += this.length\n }\n var ret = new Yallist()\n if (to < from || to < 0) {\n return ret\n }\n if (from < 0) {\n from = 0\n }\n if (to > this.length) {\n to = this.length\n }\n for (var i = this.length, walker = this.tail; walker !== null && i > to; i--) {\n walker = walker.prev\n }\n for (; walker !== null && i > from; i--, walker = walker.prev) {\n ret.push(walker.value)\n }\n return ret\n}\n\nYallist.prototype.splice = function (start, deleteCount, ...nodes) {\n if (start > this.length) {\n start = this.length - 1\n }\n if (start < 0) {\n start = this.length + start;\n }\n\n for (var i = 0, walker = this.head; walker !== null && i < start; i++) {\n walker = walker.next\n }\n\n var ret = []\n for (var i = 0; walker && i < deleteCount; i++) {\n ret.push(walker.value)\n walker = this.removeNode(walker)\n }\n if (walker === null) {\n walker = this.tail\n }\n\n if (walker !== this.head && walker !== this.tail) {\n walker = walker.prev\n }\n\n for (var i = 0; i < nodes.length; i++) {\n walker = insert(this, walker, nodes[i])\n }\n return ret;\n}\n\nYallist.prototype.reverse = function () {\n var head = this.head\n var tail = this.tail\n for (var walker = head; walker !== null; walker = walker.prev) {\n var p = walker.prev\n walker.prev = walker.next\n walker.next = p\n }\n this.head = tail\n this.tail = head\n return this\n}\n\nfunction insert (self, node, value) {\n var inserted = node === self.head ?\n new Node(value, null, node, self) :\n new Node(value, node, node.next, self)\n\n if (inserted.next === null) {\n self.tail = inserted\n }\n if (inserted.prev === null) {\n self.head = inserted\n }\n\n self.length++\n\n return inserted\n}\n\nfunction push (self, item) {\n self.tail = new Node(item, self.tail, null, self)\n if (!self.head) {\n self.head = self.tail\n }\n self.length++\n}\n\nfunction unshift (self, item) {\n self.head = new Node(item, null, self.head, self)\n if (!self.tail) {\n self.tail = self.head\n }\n self.length++\n}\n\nfunction Node (value, prev, next, list) {\n if (!(this instanceof Node)) {\n return new Node(value, prev, next, list)\n }\n\n this.list = list\n this.value = value\n\n if (prev) {\n prev.next = this\n this.prev = prev\n } else {\n this.prev = null\n }\n\n if (next) {\n next.prev = this\n this.next = next\n } else {\n this.next = null\n }\n}\n\ntry {\n // add if support for Symbol.iterator is present\n Yallist.prototype[Symbol.iterator] = function* () {\n for (let walker = this.head; walker; walker = walker.next) {\n yield walker.value\n }\n }\n} catch (er) {}\n","'use strict'\n\n// A linked list to keep track of recently-used-ness\nconst Yallist = require('yallist')\n\nconst MAX = Symbol('max')\nconst LENGTH = Symbol('length')\nconst LENGTH_CALCULATOR = Symbol('lengthCalculator')\nconst ALLOW_STALE = Symbol('allowStale')\nconst MAX_AGE = Symbol('maxAge')\nconst DISPOSE = Symbol('dispose')\nconst NO_DISPOSE_ON_SET = Symbol('noDisposeOnSet')\nconst LRU_LIST = Symbol('lruList')\nconst CACHE = Symbol('cache')\nconst UPDATE_AGE_ON_GET = Symbol('updateAgeOnGet')\n\nconst naiveLength = () => 1\n\n// lruList is a yallist where the head is the youngest\n// item, and the tail is the oldest. the list contains the Hit\n// objects as the entries.\n// Each Hit object has a reference to its Yallist.Node. This\n// never changes.\n//\n// cache is a Map (or PseudoMap) that matches the keys to\n// the Yallist.Node object.\nclass LRUCache {\n constructor (options) {\n if (typeof options === 'number')\n options = { max: options }\n\n if (!options)\n options = {}\n\n if (options.max && (typeof options.max !== 'number' || options.max < 0))\n throw new TypeError('max must be a non-negative number')\n // Kind of weird to have a default max of Infinity, but oh well.\n const max = this[MAX] = options.max || Infinity\n\n const lc = options.length || naiveLength\n this[LENGTH_CALCULATOR] = (typeof lc !== 'function') ? naiveLength : lc\n this[ALLOW_STALE] = options.stale || false\n if (options.maxAge && typeof options.maxAge !== 'number')\n throw new TypeError('maxAge must be a number')\n this[MAX_AGE] = options.maxAge || 0\n this[DISPOSE] = options.dispose\n this[NO_DISPOSE_ON_SET] = options.noDisposeOnSet || false\n this[UPDATE_AGE_ON_GET] = options.updateAgeOnGet || false\n this.reset()\n }\n\n // resize the cache when the max changes.\n set max (mL) {\n if (typeof mL !== 'number' || mL < 0)\n throw new TypeError('max must be a non-negative number')\n\n this[MAX] = mL || Infinity\n trim(this)\n }\n get max () {\n return this[MAX]\n }\n\n set allowStale (allowStale) {\n this[ALLOW_STALE] = !!allowStale\n }\n get allowStale () {\n return this[ALLOW_STALE]\n }\n\n set maxAge (mA) {\n if (typeof mA !== 'number')\n throw new TypeError('maxAge must be a non-negative number')\n\n this[MAX_AGE] = mA\n trim(this)\n }\n get maxAge () {\n return this[MAX_AGE]\n }\n\n // resize the cache when the lengthCalculator changes.\n set lengthCalculator (lC) {\n if (typeof lC !== 'function')\n lC = naiveLength\n\n if (lC !== this[LENGTH_CALCULATOR]) {\n this[LENGTH_CALCULATOR] = lC\n this[LENGTH] = 0\n this[LRU_LIST].forEach(hit => {\n hit.length = this[LENGTH_CALCULATOR](hit.value, hit.key)\n this[LENGTH] += hit.length\n })\n }\n trim(this)\n }\n get lengthCalculator () { return this[LENGTH_CALCULATOR] }\n\n get length () { return this[LENGTH] }\n get itemCount () { return this[LRU_LIST].length }\n\n rforEach (fn, thisp) {\n thisp = thisp || this\n for (let walker = this[LRU_LIST].tail; walker !== null;) {\n const prev = walker.prev\n forEachStep(this, fn, walker, thisp)\n walker = prev\n }\n }\n\n forEach (fn, thisp) {\n thisp = thisp || this\n for (let walker = this[LRU_LIST].head; walker !== null;) {\n const next = walker.next\n forEachStep(this, fn, walker, thisp)\n walker = next\n }\n }\n\n keys () {\n return this[LRU_LIST].toArray().map(k => k.key)\n }\n\n values () {\n return this[LRU_LIST].toArray().map(k => k.value)\n }\n\n reset () {\n if (this[DISPOSE] &&\n this[LRU_LIST] &&\n this[LRU_LIST].length) {\n this[LRU_LIST].forEach(hit => this[DISPOSE](hit.key, hit.value))\n }\n\n this[CACHE] = new Map() // hash of items by key\n this[LRU_LIST] = new Yallist() // list of items in order of use recency\n this[LENGTH] = 0 // length of items in the list\n }\n\n dump () {\n return this[LRU_LIST].map(hit =>\n isStale(this, hit) ? false : {\n k: hit.key,\n v: hit.value,\n e: hit.now + (hit.maxAge || 0)\n }).toArray().filter(h => h)\n }\n\n dumpLru () {\n return this[LRU_LIST]\n }\n\n set (key, value, maxAge) {\n maxAge = maxAge || this[MAX_AGE]\n\n if (maxAge && typeof maxAge !== 'number')\n throw new TypeError('maxAge must be a number')\n\n const now = maxAge ? Date.now() : 0\n const len = this[LENGTH_CALCULATOR](value, key)\n\n if (this[CACHE].has(key)) {\n if (len > this[MAX]) {\n del(this, this[CACHE].get(key))\n return false\n }\n\n const node = this[CACHE].get(key)\n const item = node.value\n\n // dispose of the old one before overwriting\n // split out into 2 ifs for better coverage tracking\n if (this[DISPOSE]) {\n if (!this[NO_DISPOSE_ON_SET])\n this[DISPOSE](key, item.value)\n }\n\n item.now = now\n item.maxAge = maxAge\n item.value = value\n this[LENGTH] += len - item.length\n item.length = len\n this.get(key)\n trim(this)\n return true\n }\n\n const hit = new Entry(key, value, len, now, maxAge)\n\n // oversized objects fall out of cache automatically.\n if (hit.length > this[MAX]) {\n if (this[DISPOSE])\n this[DISPOSE](key, value)\n\n return false\n }\n\n this[LENGTH] += hit.length\n this[LRU_LIST].unshift(hit)\n this[CACHE].set(key, this[LRU_LIST].head)\n trim(this)\n return true\n }\n\n has (key) {\n if (!this[CACHE].has(key)) return false\n const hit = this[CACHE].get(key).value\n return !isStale(this, hit)\n }\n\n get (key) {\n return get(this, key, true)\n }\n\n peek (key) {\n return get(this, key, false)\n }\n\n pop () {\n const node = this[LRU_LIST].tail\n if (!node)\n return null\n\n del(this, node)\n return node.value\n }\n\n del (key) {\n del(this, this[CACHE].get(key))\n }\n\n load (arr) {\n // reset the cache\n this.reset()\n\n const now = Date.now()\n // A previous serialized cache has the most recent items first\n for (let l = arr.length - 1; l >= 0; l--) {\n const hit = arr[l]\n const expiresAt = hit.e || 0\n if (expiresAt === 0)\n // the item was created without expiration in a non aged cache\n this.set(hit.k, hit.v)\n else {\n const maxAge = expiresAt - now\n // dont add already expired items\n if (maxAge > 0) {\n this.set(hit.k, hit.v, maxAge)\n }\n }\n }\n }\n\n prune () {\n this[CACHE].forEach((value, key) => get(this, key, false))\n }\n}\n\nconst get = (self, key, doUse) => {\n const node = self[CACHE].get(key)\n if (node) {\n const hit = node.value\n if (isStale(self, hit)) {\n del(self, node)\n if (!self[ALLOW_STALE])\n return undefined\n } else {\n if (doUse) {\n if (self[UPDATE_AGE_ON_GET])\n node.value.now = Date.now()\n self[LRU_LIST].unshiftNode(node)\n }\n }\n return hit.value\n }\n}\n\nconst isStale = (self, hit) => {\n if (!hit || (!hit.maxAge && !self[MAX_AGE]))\n return false\n\n const diff = Date.now() - hit.now\n return hit.maxAge ? diff > hit.maxAge\n : self[MAX_AGE] && (diff > self[MAX_AGE])\n}\n\nconst trim = self => {\n if (self[LENGTH] > self[MAX]) {\n for (let walker = self[LRU_LIST].tail;\n self[LENGTH] > self[MAX] && walker !== null;) {\n // We know that we're about to delete this one, and also\n // what the next least recently used key will be, so just\n // go ahead and set it now.\n const prev = walker.prev\n del(self, walker)\n walker = prev\n }\n }\n}\n\nconst del = (self, node) => {\n if (node) {\n const hit = node.value\n if (self[DISPOSE])\n self[DISPOSE](hit.key, hit.value)\n\n self[LENGTH] -= hit.length\n self[CACHE].delete(hit.key)\n self[LRU_LIST].removeNode(node)\n }\n}\n\nclass Entry {\n constructor (key, value, length, now, maxAge) {\n this.key = key\n this.value = value\n this.length = length\n this.now = now\n this.maxAge = maxAge || 0\n }\n}\n\nconst forEachStep = (self, fn, node, thisp) => {\n let hit = node.value\n if (isStale(self, hit)) {\n del(self, node)\n if (!self[ALLOW_STALE])\n hit = undefined\n }\n if (hit)\n fn.call(thisp, hit.value, hit.key, self)\n}\n\nmodule.exports = LRUCache\n","// parse out just the options we care about so we always get a consistent\n// obj with keys in a consistent order.\nconst opts = ['includePrerelease', 'loose', 'rtl']\nconst parseOptions = options =>\n !options ? {}\n : typeof options !== 'object' ? { loose: true }\n : opts.filter(k => options[k]).reduce((o, k) => {\n o[k] = true\n return o\n }, {})\nmodule.exports = parseOptions\n","// Note: this is the semver.org version of the spec that it implements\n// Not necessarily the package version of this code.\nconst SEMVER_SPEC_VERSION = '2.0.0'\n\nconst MAX_LENGTH = 256\nconst MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER ||\n/* istanbul ignore next */ 9007199254740991\n\n// Max safe segment length for coercion.\nconst MAX_SAFE_COMPONENT_LENGTH = 16\n\nmodule.exports = {\n SEMVER_SPEC_VERSION,\n MAX_LENGTH,\n MAX_SAFE_INTEGER,\n MAX_SAFE_COMPONENT_LENGTH,\n}\n","const debug = (\n typeof process === 'object' &&\n process.env &&\n process.env.NODE_DEBUG &&\n /\\bsemver\\b/i.test(process.env.NODE_DEBUG)\n) ? (...args) => console.error('SEMVER', ...args)\n : () => {}\n\nmodule.exports = debug\n","const { MAX_SAFE_COMPONENT_LENGTH } = require('./constants')\nconst debug = require('./debug')\nexports = module.exports = {}\n\n// The actual regexps go on exports.re\nconst re = exports.re = []\nconst src = exports.src = []\nconst t = exports.t = {}\nlet R = 0\n\nconst createToken = (name, value, isGlobal) => {\n const index = R++\n debug(name, index, value)\n t[name] = index\n src[index] = value\n re[index] = new RegExp(value, isGlobal ? 'g' : undefined)\n}\n\n// The following Regular Expressions can be used for tokenizing,\n// validating, and parsing SemVer version strings.\n\n// ## Numeric Identifier\n// A single `0`, or a non-zero digit followed by zero or more digits.\n\ncreateToken('NUMERICIDENTIFIER', '0|[1-9]\\\\d*')\ncreateToken('NUMERICIDENTIFIERLOOSE', '[0-9]+')\n\n// ## Non-numeric Identifier\n// Zero or more digits, followed by a letter or hyphen, and then zero or\n// more letters, digits, or hyphens.\n\ncreateToken('NONNUMERICIDENTIFIER', '\\\\d*[a-zA-Z-][a-zA-Z0-9-]*')\n\n// ## Main Version\n// Three dot-separated numeric identifiers.\n\ncreateToken('MAINVERSION', `(${src[t.NUMERICIDENTIFIER]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIER]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIER]})`)\n\ncreateToken('MAINVERSIONLOOSE', `(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIERLOOSE]})`)\n\n// ## Pre-release Version Identifier\n// A numeric identifier, or a non-numeric identifier.\n\ncreateToken('PRERELEASEIDENTIFIER', `(?:${src[t.NUMERICIDENTIFIER]\n}|${src[t.NONNUMERICIDENTIFIER]})`)\n\ncreateToken('PRERELEASEIDENTIFIERLOOSE', `(?:${src[t.NUMERICIDENTIFIERLOOSE]\n}|${src[t.NONNUMERICIDENTIFIER]})`)\n\n// ## Pre-release Version\n// Hyphen, followed by one or more dot-separated pre-release version\n// identifiers.\n\ncreateToken('PRERELEASE', `(?:-(${src[t.PRERELEASEIDENTIFIER]\n}(?:\\\\.${src[t.PRERELEASEIDENTIFIER]})*))`)\n\ncreateToken('PRERELEASELOOSE', `(?:-?(${src[t.PRERELEASEIDENTIFIERLOOSE]\n}(?:\\\\.${src[t.PRERELEASEIDENTIFIERLOOSE]})*))`)\n\n// ## Build Metadata Identifier\n// Any combination of digits, letters, or hyphens.\n\ncreateToken('BUILDIDENTIFIER', '[0-9A-Za-z-]+')\n\n// ## Build Metadata\n// Plus sign, followed by one or more period-separated build metadata\n// identifiers.\n\ncreateToken('BUILD', `(?:\\\\+(${src[t.BUILDIDENTIFIER]\n}(?:\\\\.${src[t.BUILDIDENTIFIER]})*))`)\n\n// ## Full Version String\n// A main version, followed optionally by a pre-release version and\n// build metadata.\n\n// Note that the only major, minor, patch, and pre-release sections of\n// the version string are capturing groups. The build metadata is not a\n// capturing group, because it should not ever be used in version\n// comparison.\n\ncreateToken('FULLPLAIN', `v?${src[t.MAINVERSION]\n}${src[t.PRERELEASE]}?${\n src[t.BUILD]}?`)\n\ncreateToken('FULL', `^${src[t.FULLPLAIN]}$`)\n\n// like full, but allows v1.2.3 and =1.2.3, which people do sometimes.\n// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty\n// common in the npm registry.\ncreateToken('LOOSEPLAIN', `[v=\\\\s]*${src[t.MAINVERSIONLOOSE]\n}${src[t.PRERELEASELOOSE]}?${\n src[t.BUILD]}?`)\n\ncreateToken('LOOSE', `^${src[t.LOOSEPLAIN]}$`)\n\ncreateToken('GTLT', '((?:<|>)?=?)')\n\n// Something like \"2.*\" or \"1.2.x\".\n// Note that \"x.x\" is a valid xRange identifer, meaning \"any version\"\n// Only the first item is strictly required.\ncreateToken('XRANGEIDENTIFIERLOOSE', `${src[t.NUMERICIDENTIFIERLOOSE]}|x|X|\\\\*`)\ncreateToken('XRANGEIDENTIFIER', `${src[t.NUMERICIDENTIFIER]}|x|X|\\\\*`)\n\ncreateToken('XRANGEPLAIN', `[v=\\\\s]*(${src[t.XRANGEIDENTIFIER]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIER]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIER]})` +\n `(?:${src[t.PRERELEASE]})?${\n src[t.BUILD]}?` +\n `)?)?`)\n\ncreateToken('XRANGEPLAINLOOSE', `[v=\\\\s]*(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:${src[t.PRERELEASELOOSE]})?${\n src[t.BUILD]}?` +\n `)?)?`)\n\ncreateToken('XRANGE', `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAIN]}$`)\ncreateToken('XRANGELOOSE', `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAINLOOSE]}$`)\n\n// Coercion.\n// Extract anything that could conceivably be a part of a valid semver\ncreateToken('COERCE', `${'(^|[^\\\\d])' +\n '(\\\\d{1,'}${MAX_SAFE_COMPONENT_LENGTH}})` +\n `(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` +\n `(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` +\n `(?:$|[^\\\\d])`)\ncreateToken('COERCERTL', src[t.COERCE], true)\n\n// Tilde ranges.\n// Meaning is \"reasonably at or greater than\"\ncreateToken('LONETILDE', '(?:~>?)')\n\ncreateToken('TILDETRIM', `(\\\\s*)${src[t.LONETILDE]}\\\\s+`, true)\nexports.tildeTrimReplace = '$1~'\n\ncreateToken('TILDE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAIN]}$`)\ncreateToken('TILDELOOSE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAINLOOSE]}$`)\n\n// Caret ranges.\n// Meaning is \"at least and backwards compatible with\"\ncreateToken('LONECARET', '(?:\\\\^)')\n\ncreateToken('CARETTRIM', `(\\\\s*)${src[t.LONECARET]}\\\\s+`, true)\nexports.caretTrimReplace = '$1^'\n\ncreateToken('CARET', `^${src[t.LONECARET]}${src[t.XRANGEPLAIN]}$`)\ncreateToken('CARETLOOSE', `^${src[t.LONECARET]}${src[t.XRANGEPLAINLOOSE]}$`)\n\n// A simple gt/lt/eq thing, or just \"\" to indicate \"any version\"\ncreateToken('COMPARATORLOOSE', `^${src[t.GTLT]}\\\\s*(${src[t.LOOSEPLAIN]})$|^$`)\ncreateToken('COMPARATOR', `^${src[t.GTLT]}\\\\s*(${src[t.FULLPLAIN]})$|^$`)\n\n// An expression to strip any whitespace between the gtlt and the thing\n// it modifies, so that `> 1.2.3` ==> `>1.2.3`\ncreateToken('COMPARATORTRIM', `(\\\\s*)${src[t.GTLT]\n}\\\\s*(${src[t.LOOSEPLAIN]}|${src[t.XRANGEPLAIN]})`, true)\nexports.comparatorTrimReplace = '$1$2$3'\n\n// Something like `1.2.3 - 1.2.4`\n// Note that these all use the loose form, because they'll be\n// checked against either the strict or loose comparator form\n// later.\ncreateToken('HYPHENRANGE', `^\\\\s*(${src[t.XRANGEPLAIN]})` +\n `\\\\s+-\\\\s+` +\n `(${src[t.XRANGEPLAIN]})` +\n `\\\\s*$`)\n\ncreateToken('HYPHENRANGELOOSE', `^\\\\s*(${src[t.XRANGEPLAINLOOSE]})` +\n `\\\\s+-\\\\s+` +\n `(${src[t.XRANGEPLAINLOOSE]})` +\n `\\\\s*$`)\n\n// Star ranges basically just allow anything at all.\ncreateToken('STAR', '(<|>)?=?\\\\s*\\\\*')\n// >=0.0.0 is like a star\ncreateToken('GTE0', '^\\\\s*>=\\\\s*0\\\\.0\\\\.0\\\\s*$')\ncreateToken('GTE0PRE', '^\\\\s*>=\\\\s*0\\\\.0\\\\.0-0\\\\s*$')\n","const numeric = /^[0-9]+$/\nconst compareIdentifiers = (a, b) => {\n const anum = numeric.test(a)\n const bnum = numeric.test(b)\n\n if (anum && bnum) {\n a = +a\n b = +b\n }\n\n return a === b ? 0\n : (anum && !bnum) ? -1\n : (bnum && !anum) ? 1\n : a < b ? -1\n : 1\n}\n\nconst rcompareIdentifiers = (a, b) => compareIdentifiers(b, a)\n\nmodule.exports = {\n compareIdentifiers,\n rcompareIdentifiers,\n}\n","const debug = require('../internal/debug')\nconst { MAX_LENGTH, MAX_SAFE_INTEGER } = require('../internal/constants')\nconst { re, t } = require('../internal/re')\n\nconst parseOptions = require('../internal/parse-options')\nconst { compareIdentifiers } = require('../internal/identifiers')\nclass SemVer {\n constructor (version, options) {\n options = parseOptions(options)\n\n if (version instanceof SemVer) {\n if (version.loose === !!options.loose &&\n version.includePrerelease === !!options.includePrerelease) {\n return version\n } else {\n version = version.version\n }\n } else if (typeof version !== 'string') {\n throw new TypeError(`Invalid Version: ${version}`)\n }\n\n if (version.length > MAX_LENGTH) {\n throw new TypeError(\n `version is longer than ${MAX_LENGTH} characters`\n )\n }\n\n debug('SemVer', version, options)\n this.options = options\n this.loose = !!options.loose\n // this isn't actually relevant for versions, but keep it so that we\n // don't run into trouble passing this.options around.\n this.includePrerelease = !!options.includePrerelease\n\n const m = version.trim().match(options.loose ? re[t.LOOSE] : re[t.FULL])\n\n if (!m) {\n throw new TypeError(`Invalid Version: ${version}`)\n }\n\n this.raw = version\n\n // these are actually numbers\n this.major = +m[1]\n this.minor = +m[2]\n this.patch = +m[3]\n\n if (this.major > MAX_SAFE_INTEGER || this.major < 0) {\n throw new TypeError('Invalid major version')\n }\n\n if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) {\n throw new TypeError('Invalid minor version')\n }\n\n if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) {\n throw new TypeError('Invalid patch version')\n }\n\n // numberify any prerelease numeric ids\n if (!m[4]) {\n this.prerelease = []\n } else {\n this.prerelease = m[4].split('.').map((id) => {\n if (/^[0-9]+$/.test(id)) {\n const num = +id\n if (num >= 0 && num < MAX_SAFE_INTEGER) {\n return num\n }\n }\n return id\n })\n }\n\n this.build = m[5] ? m[5].split('.') : []\n this.format()\n }\n\n format () {\n this.version = `${this.major}.${this.minor}.${this.patch}`\n if (this.prerelease.length) {\n this.version += `-${this.prerelease.join('.')}`\n }\n return this.version\n }\n\n toString () {\n return this.version\n }\n\n compare (other) {\n debug('SemVer.compare', this.version, this.options, other)\n if (!(other instanceof SemVer)) {\n if (typeof other === 'string' && other === this.version) {\n return 0\n }\n other = new SemVer(other, this.options)\n }\n\n if (other.version === this.version) {\n return 0\n }\n\n return this.compareMain(other) || this.comparePre(other)\n }\n\n compareMain (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n return (\n compareIdentifiers(this.major, other.major) ||\n compareIdentifiers(this.minor, other.minor) ||\n compareIdentifiers(this.patch, other.patch)\n )\n }\n\n comparePre (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n // NOT having a prerelease is > having one\n if (this.prerelease.length && !other.prerelease.length) {\n return -1\n } else if (!this.prerelease.length && other.prerelease.length) {\n return 1\n } else if (!this.prerelease.length && !other.prerelease.length) {\n return 0\n }\n\n let i = 0\n do {\n const a = this.prerelease[i]\n const b = other.prerelease[i]\n debug('prerelease compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n }\n\n compareBuild (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n let i = 0\n do {\n const a = this.build[i]\n const b = other.build[i]\n debug('prerelease compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n }\n\n // preminor will bump the version up to the next minor release, and immediately\n // down to pre-release. premajor and prepatch work the same way.\n inc (release, identifier) {\n switch (release) {\n case 'premajor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor = 0\n this.major++\n this.inc('pre', identifier)\n break\n case 'preminor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor++\n this.inc('pre', identifier)\n break\n case 'prepatch':\n // If this is already a prerelease, it will bump to the next version\n // drop any prereleases that might already exist, since they are not\n // relevant at this point.\n this.prerelease.length = 0\n this.inc('patch', identifier)\n this.inc('pre', identifier)\n break\n // If the input is a non-prerelease version, this acts the same as\n // prepatch.\n case 'prerelease':\n if (this.prerelease.length === 0) {\n this.inc('patch', identifier)\n }\n this.inc('pre', identifier)\n break\n\n case 'major':\n // If this is a pre-major version, bump up to the same major version.\n // Otherwise increment major.\n // 1.0.0-5 bumps to 1.0.0\n // 1.1.0 bumps to 2.0.0\n if (\n this.minor !== 0 ||\n this.patch !== 0 ||\n this.prerelease.length === 0\n ) {\n this.major++\n }\n this.minor = 0\n this.patch = 0\n this.prerelease = []\n break\n case 'minor':\n // If this is a pre-minor version, bump up to the same minor version.\n // Otherwise increment minor.\n // 1.2.0-5 bumps to 1.2.0\n // 1.2.1 bumps to 1.3.0\n if (this.patch !== 0 || this.prerelease.length === 0) {\n this.minor++\n }\n this.patch = 0\n this.prerelease = []\n break\n case 'patch':\n // If this is not a pre-release version, it will increment the patch.\n // If it is a pre-release it will bump up to the same patch version.\n // 1.2.0-5 patches to 1.2.0\n // 1.2.0 patches to 1.2.1\n if (this.prerelease.length === 0) {\n this.patch++\n }\n this.prerelease = []\n break\n // This probably shouldn't be used publicly.\n // 1.0.0 'pre' would become 1.0.0-0 which is the wrong direction.\n case 'pre':\n if (this.prerelease.length === 0) {\n this.prerelease = [0]\n } else {\n let i = this.prerelease.length\n while (--i >= 0) {\n if (typeof this.prerelease[i] === 'number') {\n this.prerelease[i]++\n i = -2\n }\n }\n if (i === -1) {\n // didn't increment anything\n this.prerelease.push(0)\n }\n }\n if (identifier) {\n // 1.2.0-beta.1 bumps to 1.2.0-beta.2,\n // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0\n if (compareIdentifiers(this.prerelease[0], identifier) === 0) {\n if (isNaN(this.prerelease[1])) {\n this.prerelease = [identifier, 0]\n }\n } else {\n this.prerelease = [identifier, 0]\n }\n }\n break\n\n default:\n throw new Error(`invalid increment argument: ${release}`)\n }\n this.format()\n this.raw = this.version\n return this\n }\n}\n\nmodule.exports = SemVer\n","const SemVer = require('../classes/semver')\nconst compare = (a, b, loose) =>\n new SemVer(a, loose).compare(new SemVer(b, loose))\n\nmodule.exports = compare\n","const compare = require('./compare')\nconst eq = (a, b, loose) => compare(a, b, loose) === 0\nmodule.exports = eq\n","const compare = require('./compare')\nconst neq = (a, b, loose) => compare(a, b, loose) !== 0\nmodule.exports = neq\n","const compare = require('./compare')\nconst gt = (a, b, loose) => compare(a, b, loose) > 0\nmodule.exports = gt\n","const compare = require('./compare')\nconst gte = (a, b, loose) => compare(a, b, loose) >= 0\nmodule.exports = gte\n","const compare = require('./compare')\nconst lt = (a, b, loose) => compare(a, b, loose) < 0\nmodule.exports = lt\n","const compare = require('./compare')\nconst lte = (a, b, loose) => compare(a, b, loose) <= 0\nmodule.exports = lte\n","const eq = require('./eq')\nconst neq = require('./neq')\nconst gt = require('./gt')\nconst gte = require('./gte')\nconst lt = require('./lt')\nconst lte = require('./lte')\n\nconst cmp = (a, op, b, loose) => {\n switch (op) {\n case '===':\n if (typeof a === 'object') {\n a = a.version\n }\n if (typeof b === 'object') {\n b = b.version\n }\n return a === b\n\n case '!==':\n if (typeof a === 'object') {\n a = a.version\n }\n if (typeof b === 'object') {\n b = b.version\n }\n return a !== b\n\n case '':\n case '=':\n case '==':\n return eq(a, b, loose)\n\n case '!=':\n return neq(a, b, loose)\n\n case '>':\n return gt(a, b, loose)\n\n case '>=':\n return gte(a, b, loose)\n\n case '<':\n return lt(a, b, loose)\n\n case '<=':\n return lte(a, b, loose)\n\n default:\n throw new TypeError(`Invalid operator: ${op}`)\n }\n}\nmodule.exports = cmp\n","const Range = require('../classes/range')\nconst satisfies = (version, range, options) => {\n try {\n range = new Range(range, options)\n } catch (er) {\n return false\n }\n return range.test(version)\n}\nmodule.exports = satisfies\n","// hoisted class for cyclic dependency\nclass Range {\n constructor (range, options) {\n options = parseOptions(options)\n\n if (range instanceof Range) {\n if (\n range.loose === !!options.loose &&\n range.includePrerelease === !!options.includePrerelease\n ) {\n return range\n } else {\n return new Range(range.raw, options)\n }\n }\n\n if (range instanceof Comparator) {\n // just put it in the set and return\n this.raw = range.value\n this.set = [[range]]\n this.format()\n return this\n }\n\n this.options = options\n this.loose = !!options.loose\n this.includePrerelease = !!options.includePrerelease\n\n // First, split based on boolean or ||\n this.raw = range\n this.set = range\n .split('||')\n // map the range to a 2d array of comparators\n .map(r => this.parseRange(r.trim()))\n // throw out any comparator lists that are empty\n // this generally means that it was not a valid range, which is allowed\n // in loose mode, but will still throw if the WHOLE range is invalid.\n .filter(c => c.length)\n\n if (!this.set.length) {\n throw new TypeError(`Invalid SemVer Range: ${range}`)\n }\n\n // if we have any that are not the null set, throw out null sets.\n if (this.set.length > 1) {\n // keep the first one, in case they're all null sets\n const first = this.set[0]\n this.set = this.set.filter(c => !isNullSet(c[0]))\n if (this.set.length === 0) {\n this.set = [first]\n } else if (this.set.length > 1) {\n // if we have any that are *, then the range is just *\n for (const c of this.set) {\n if (c.length === 1 && isAny(c[0])) {\n this.set = [c]\n break\n }\n }\n }\n }\n\n this.format()\n }\n\n format () {\n this.range = this.set\n .map((comps) => {\n return comps.join(' ').trim()\n })\n .join('||')\n .trim()\n return this.range\n }\n\n toString () {\n return this.range\n }\n\n parseRange (range) {\n range = range.trim()\n\n // memoize range parsing for performance.\n // this is a very hot path, and fully deterministic.\n const memoOpts = Object.keys(this.options).join(',')\n const memoKey = `parseRange:${memoOpts}:${range}`\n const cached = cache.get(memoKey)\n if (cached) {\n return cached\n }\n\n const loose = this.options.loose\n // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4`\n const hr = loose ? re[t.HYPHENRANGELOOSE] : re[t.HYPHENRANGE]\n range = range.replace(hr, hyphenReplace(this.options.includePrerelease))\n debug('hyphen replace', range)\n // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5`\n range = range.replace(re[t.COMPARATORTRIM], comparatorTrimReplace)\n debug('comparator trim', range)\n\n // `~ 1.2.3` => `~1.2.3`\n range = range.replace(re[t.TILDETRIM], tildeTrimReplace)\n\n // `^ 1.2.3` => `^1.2.3`\n range = range.replace(re[t.CARETTRIM], caretTrimReplace)\n\n // normalize spaces\n range = range.split(/\\s+/).join(' ')\n\n // At this point, the range is completely trimmed and\n // ready to be split into comparators.\n\n let rangeList = range\n .split(' ')\n .map(comp => parseComparator(comp, this.options))\n .join(' ')\n .split(/\\s+/)\n // >=0.0.0 is equivalent to *\n .map(comp => replaceGTE0(comp, this.options))\n\n if (loose) {\n // in loose mode, throw out any that are not valid comparators\n rangeList = rangeList.filter(comp => {\n debug('loose invalid filter', comp, this.options)\n return !!comp.match(re[t.COMPARATORLOOSE])\n })\n }\n debug('range list', rangeList)\n\n // if any comparators are the null set, then replace with JUST null set\n // if more than one comparator, remove any * comparators\n // also, don't include the same comparator more than once\n const rangeMap = new Map()\n const comparators = rangeList.map(comp => new Comparator(comp, this.options))\n for (const comp of comparators) {\n if (isNullSet(comp)) {\n return [comp]\n }\n rangeMap.set(comp.value, comp)\n }\n if (rangeMap.size > 1 && rangeMap.has('')) {\n rangeMap.delete('')\n }\n\n const result = [...rangeMap.values()]\n cache.set(memoKey, result)\n return result\n }\n\n intersects (range, options) {\n if (!(range instanceof Range)) {\n throw new TypeError('a Range is required')\n }\n\n return this.set.some((thisComparators) => {\n return (\n isSatisfiable(thisComparators, options) &&\n range.set.some((rangeComparators) => {\n return (\n isSatisfiable(rangeComparators, options) &&\n thisComparators.every((thisComparator) => {\n return rangeComparators.every((rangeComparator) => {\n return thisComparator.intersects(rangeComparator, options)\n })\n })\n )\n })\n )\n })\n }\n\n // if ANY of the sets match ALL of its comparators, then pass\n test (version) {\n if (!version) {\n return false\n }\n\n if (typeof version === 'string') {\n try {\n version = new SemVer(version, this.options)\n } catch (er) {\n return false\n }\n }\n\n for (let i = 0; i < this.set.length; i++) {\n if (testSet(this.set[i], version, this.options)) {\n return true\n }\n }\n return false\n }\n}\nmodule.exports = Range\n\nconst LRU = require('lru-cache')\nconst cache = new LRU({ max: 1000 })\n\nconst parseOptions = require('../internal/parse-options')\nconst Comparator = require('./comparator')\nconst debug = require('../internal/debug')\nconst SemVer = require('./semver')\nconst {\n re,\n t,\n comparatorTrimReplace,\n tildeTrimReplace,\n caretTrimReplace,\n} = require('../internal/re')\n\nconst isNullSet = c => c.value === '<0.0.0-0'\nconst isAny = c => c.value === ''\n\n// take a set of comparators and determine whether there\n// exists a version which can satisfy it\nconst isSatisfiable = (comparators, options) => {\n let result = true\n const remainingComparators = comparators.slice()\n let testComparator = remainingComparators.pop()\n\n while (result && remainingComparators.length) {\n result = remainingComparators.every((otherComparator) => {\n return testComparator.intersects(otherComparator, options)\n })\n\n testComparator = remainingComparators.pop()\n }\n\n return result\n}\n\n// comprised of xranges, tildes, stars, and gtlt's at this point.\n// already replaced the hyphen ranges\n// turn into a set of JUST comparators.\nconst parseComparator = (comp, options) => {\n debug('comp', comp, options)\n comp = replaceCarets(comp, options)\n debug('caret', comp)\n comp = replaceTildes(comp, options)\n debug('tildes', comp)\n comp = replaceXRanges(comp, options)\n debug('xrange', comp)\n comp = replaceStars(comp, options)\n debug('stars', comp)\n return comp\n}\n\nconst isX = id => !id || id.toLowerCase() === 'x' || id === '*'\n\n// ~, ~> --> * (any, kinda silly)\n// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0-0\n// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0-0\n// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0-0\n// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0-0\n// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0-0\nconst replaceTildes = (comp, options) =>\n comp.trim().split(/\\s+/).map((c) => {\n return replaceTilde(c, options)\n }).join(' ')\n\nconst replaceTilde = (comp, options) => {\n const r = options.loose ? re[t.TILDELOOSE] : re[t.TILDE]\n return comp.replace(r, (_, M, m, p, pr) => {\n debug('tilde', comp, _, M, m, p, pr)\n let ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = `>=${M}.0.0 <${+M + 1}.0.0-0`\n } else if (isX(p)) {\n // ~1.2 == >=1.2.0 <1.3.0-0\n ret = `>=${M}.${m}.0 <${M}.${+m + 1}.0-0`\n } else if (pr) {\n debug('replaceTilde pr', pr)\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${+m + 1}.0-0`\n } else {\n // ~1.2.3 == >=1.2.3 <1.3.0-0\n ret = `>=${M}.${m}.${p\n } <${M}.${+m + 1}.0-0`\n }\n\n debug('tilde return', ret)\n return ret\n })\n}\n\n// ^ --> * (any, kinda silly)\n// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0-0\n// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0-0\n// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0-0\n// ^1.2.3 --> >=1.2.3 <2.0.0-0\n// ^1.2.0 --> >=1.2.0 <2.0.0-0\nconst replaceCarets = (comp, options) =>\n comp.trim().split(/\\s+/).map((c) => {\n return replaceCaret(c, options)\n }).join(' ')\n\nconst replaceCaret = (comp, options) => {\n debug('caret', comp, options)\n const r = options.loose ? re[t.CARETLOOSE] : re[t.CARET]\n const z = options.includePrerelease ? '-0' : ''\n return comp.replace(r, (_, M, m, p, pr) => {\n debug('caret', comp, _, M, m, p, pr)\n let ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = `>=${M}.0.0${z} <${+M + 1}.0.0-0`\n } else if (isX(p)) {\n if (M === '0') {\n ret = `>=${M}.${m}.0${z} <${M}.${+m + 1}.0-0`\n } else {\n ret = `>=${M}.${m}.0${z} <${+M + 1}.0.0-0`\n }\n } else if (pr) {\n debug('replaceCaret pr', pr)\n if (M === '0') {\n if (m === '0') {\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${m}.${+p + 1}-0`\n } else {\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${+m + 1}.0-0`\n }\n } else {\n ret = `>=${M}.${m}.${p}-${pr\n } <${+M + 1}.0.0-0`\n }\n } else {\n debug('no pr')\n if (M === '0') {\n if (m === '0') {\n ret = `>=${M}.${m}.${p\n }${z} <${M}.${m}.${+p + 1}-0`\n } else {\n ret = `>=${M}.${m}.${p\n }${z} <${M}.${+m + 1}.0-0`\n }\n } else {\n ret = `>=${M}.${m}.${p\n } <${+M + 1}.0.0-0`\n }\n }\n\n debug('caret return', ret)\n return ret\n })\n}\n\nconst replaceXRanges = (comp, options) => {\n debug('replaceXRanges', comp, options)\n return comp.split(/\\s+/).map((c) => {\n return replaceXRange(c, options)\n }).join(' ')\n}\n\nconst replaceXRange = (comp, options) => {\n comp = comp.trim()\n const r = options.loose ? re[t.XRANGELOOSE] : re[t.XRANGE]\n return comp.replace(r, (ret, gtlt, M, m, p, pr) => {\n debug('xRange', comp, ret, gtlt, M, m, p, pr)\n const xM = isX(M)\n const xm = xM || isX(m)\n const xp = xm || isX(p)\n const anyX = xp\n\n if (gtlt === '=' && anyX) {\n gtlt = ''\n }\n\n // if we're including prereleases in the match, then we need\n // to fix this to -0, the lowest possible prerelease value\n pr = options.includePrerelease ? '-0' : ''\n\n if (xM) {\n if (gtlt === '>' || gtlt === '<') {\n // nothing is allowed\n ret = '<0.0.0-0'\n } else {\n // nothing is forbidden\n ret = '*'\n }\n } else if (gtlt && anyX) {\n // we know patch is an x, because we have any x at all.\n // replace X with 0\n if (xm) {\n m = 0\n }\n p = 0\n\n if (gtlt === '>') {\n // >1 => >=2.0.0\n // >1.2 => >=1.3.0\n gtlt = '>='\n if (xm) {\n M = +M + 1\n m = 0\n p = 0\n } else {\n m = +m + 1\n p = 0\n }\n } else if (gtlt === '<=') {\n // <=0.7.x is actually <0.8.0, since any 0.7.x should\n // pass. Similarly, <=7.x is actually <8.0.0, etc.\n gtlt = '<'\n if (xm) {\n M = +M + 1\n } else {\n m = +m + 1\n }\n }\n\n if (gtlt === '<') {\n pr = '-0'\n }\n\n ret = `${gtlt + M}.${m}.${p}${pr}`\n } else if (xm) {\n ret = `>=${M}.0.0${pr} <${+M + 1}.0.0-0`\n } else if (xp) {\n ret = `>=${M}.${m}.0${pr\n } <${M}.${+m + 1}.0-0`\n }\n\n debug('xRange return', ret)\n\n return ret\n })\n}\n\n// Because * is AND-ed with everything else in the comparator,\n// and '' means \"any version\", just remove the *s entirely.\nconst replaceStars = (comp, options) => {\n debug('replaceStars', comp, options)\n // Looseness is ignored here. star is always as loose as it gets!\n return comp.trim().replace(re[t.STAR], '')\n}\n\nconst replaceGTE0 = (comp, options) => {\n debug('replaceGTE0', comp, options)\n return comp.trim()\n .replace(re[options.includePrerelease ? t.GTE0PRE : t.GTE0], '')\n}\n\n// This function is passed to string.replace(re[t.HYPHENRANGE])\n// M, m, patch, prerelease, build\n// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5\n// 1.2.3 - 3.4 => >=1.2.0 <3.5.0-0 Any 3.4.x will do\n// 1.2 - 3.4 => >=1.2.0 <3.5.0-0\nconst hyphenReplace = incPr => ($0,\n from, fM, fm, fp, fpr, fb,\n to, tM, tm, tp, tpr, tb) => {\n if (isX(fM)) {\n from = ''\n } else if (isX(fm)) {\n from = `>=${fM}.0.0${incPr ? '-0' : ''}`\n } else if (isX(fp)) {\n from = `>=${fM}.${fm}.0${incPr ? '-0' : ''}`\n } else if (fpr) {\n from = `>=${from}`\n } else {\n from = `>=${from}${incPr ? '-0' : ''}`\n }\n\n if (isX(tM)) {\n to = ''\n } else if (isX(tm)) {\n to = `<${+tM + 1}.0.0-0`\n } else if (isX(tp)) {\n to = `<${tM}.${+tm + 1}.0-0`\n } else if (tpr) {\n to = `<=${tM}.${tm}.${tp}-${tpr}`\n } else if (incPr) {\n to = `<${tM}.${tm}.${+tp + 1}-0`\n } else {\n to = `<=${to}`\n }\n\n return (`${from} ${to}`).trim()\n}\n\nconst testSet = (set, version, options) => {\n for (let i = 0; i < set.length; i++) {\n if (!set[i].test(version)) {\n return false\n }\n }\n\n if (version.prerelease.length && !options.includePrerelease) {\n // Find the set of versions that are allowed to have prereleases\n // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0\n // That should allow `1.2.3-pr.2` to pass.\n // However, `1.2.4-alpha.notready` should NOT be allowed,\n // even though it's within the range set by the comparators.\n for (let i = 0; i < set.length; i++) {\n debug(set[i].semver)\n if (set[i].semver === Comparator.ANY) {\n continue\n }\n\n if (set[i].semver.prerelease.length > 0) {\n const allowed = set[i].semver\n if (allowed.major === version.major &&\n allowed.minor === version.minor &&\n allowed.patch === version.patch) {\n return true\n }\n }\n }\n\n // Version has a -pre, but it's not one of the ones we like.\n return false\n }\n\n return true\n}\n","const ANY = Symbol('SemVer ANY')\n// hoisted class for cyclic dependency\nclass Comparator {\n static get ANY () {\n return ANY\n }\n\n constructor (comp, options) {\n options = parseOptions(options)\n\n if (comp instanceof Comparator) {\n if (comp.loose === !!options.loose) {\n return comp\n } else {\n comp = comp.value\n }\n }\n\n debug('comparator', comp, options)\n this.options = options\n this.loose = !!options.loose\n this.parse(comp)\n\n if (this.semver === ANY) {\n this.value = ''\n } else {\n this.value = this.operator + this.semver.version\n }\n\n debug('comp', this)\n }\n\n parse (comp) {\n const r = this.options.loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR]\n const m = comp.match(r)\n\n if (!m) {\n throw new TypeError(`Invalid comparator: ${comp}`)\n }\n\n this.operator = m[1] !== undefined ? m[1] : ''\n if (this.operator === '=') {\n this.operator = ''\n }\n\n // if it literally is just '>' or '' then allow anything.\n if (!m[2]) {\n this.semver = ANY\n } else {\n this.semver = new SemVer(m[2], this.options.loose)\n }\n }\n\n toString () {\n return this.value\n }\n\n test (version) {\n debug('Comparator.test', version, this.options.loose)\n\n if (this.semver === ANY || version === ANY) {\n return true\n }\n\n if (typeof version === 'string') {\n try {\n version = new SemVer(version, this.options)\n } catch (er) {\n return false\n }\n }\n\n return cmp(version, this.operator, this.semver, this.options)\n }\n\n intersects (comp, options) {\n if (!(comp instanceof Comparator)) {\n throw new TypeError('a Comparator is required')\n }\n\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false,\n }\n }\n\n if (this.operator === '') {\n if (this.value === '') {\n return true\n }\n return new Range(comp.value, options).test(this.value)\n } else if (comp.operator === '') {\n if (comp.value === '') {\n return true\n }\n return new Range(this.value, options).test(comp.semver)\n }\n\n const sameDirectionIncreasing =\n (this.operator === '>=' || this.operator === '>') &&\n (comp.operator === '>=' || comp.operator === '>')\n const sameDirectionDecreasing =\n (this.operator === '<=' || this.operator === '<') &&\n (comp.operator === '<=' || comp.operator === '<')\n const sameSemVer = this.semver.version === comp.semver.version\n const differentDirectionsInclusive =\n (this.operator === '>=' || this.operator === '<=') &&\n (comp.operator === '>=' || comp.operator === '<=')\n const oppositeDirectionsLessThan =\n cmp(this.semver, '<', comp.semver, options) &&\n (this.operator === '>=' || this.operator === '>') &&\n (comp.operator === '<=' || comp.operator === '<')\n const oppositeDirectionsGreaterThan =\n cmp(this.semver, '>', comp.semver, options) &&\n (this.operator === '<=' || this.operator === '<') &&\n (comp.operator === '>=' || comp.operator === '>')\n\n return (\n sameDirectionIncreasing ||\n sameDirectionDecreasing ||\n (sameSemVer && differentDirectionsInclusive) ||\n oppositeDirectionsLessThan ||\n oppositeDirectionsGreaterThan\n )\n }\n}\n\nmodule.exports = Comparator\n\nconst parseOptions = require('../internal/parse-options')\nconst { re, t } = require('../internal/re')\nconst cmp = require('../functions/cmp')\nconst debug = require('../internal/debug')\nconst SemVer = require('./semver')\nconst Range = require('./range')\n","import {MessageData} from './types';\n\n/**\n * Open editor url in a new window, and pass a message.\n */\nexport default function (window: Window, url: string, data: MessageData) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const editor = window.open(url)!;\n const wait = 10_000;\n const step = 250;\n const {origin} = new URL(url);\n // eslint-disable-next-line no-bitwise\n let count = ~~(wait / step);\n\n function listen(evt: MessageEvent) {\n if (evt.source === editor) {\n count = 0;\n window.removeEventListener('message', listen, false);\n }\n }\n window.addEventListener('message', listen, false);\n\n // send message\n // periodically resend until ack received or timeout\n function send() {\n if (count <= 0) {\n return;\n }\n editor.postMessage(data, origin);\n setTimeout(send, step);\n count -= 1;\n }\n setTimeout(send, step);\n}\n","// generated with build-style.sh\nexport default `.vega-embed {\n position: relative;\n display: inline-block;\n box-sizing: border-box;\n}\n.vega-embed.has-actions {\n padding-right: 38px;\n}\n.vega-embed details:not([open]) > :not(summary) {\n display: none !important;\n}\n.vega-embed summary {\n list-style: none;\n position: absolute;\n top: 0;\n right: 0;\n padding: 6px;\n z-index: 1000;\n background: white;\n box-shadow: 1px 1px 3px rgba(0, 0, 0, 0.1);\n color: #1b1e23;\n border: 1px solid #aaa;\n border-radius: 999px;\n opacity: 0.2;\n transition: opacity 0.4s ease-in;\n cursor: pointer;\n line-height: 0px;\n}\n.vega-embed summary::-webkit-details-marker {\n display: none;\n}\n.vega-embed summary:active {\n box-shadow: #aaa 0px 0px 0px 1px inset;\n}\n.vega-embed summary svg {\n width: 14px;\n height: 14px;\n}\n.vega-embed details[open] summary {\n opacity: 0.7;\n}\n.vega-embed:hover summary, .vega-embed:focus-within summary {\n opacity: 1 !important;\n transition: opacity 0.2s ease;\n}\n.vega-embed .vega-actions {\n position: absolute;\n z-index: 1001;\n top: 35px;\n right: -9px;\n display: flex;\n flex-direction: column;\n padding-bottom: 8px;\n padding-top: 8px;\n border-radius: 4px;\n box-shadow: 0 2px 8px 0 rgba(0, 0, 0, 0.2);\n border: 1px solid #d9d9d9;\n background: white;\n animation-duration: 0.15s;\n animation-name: scale-in;\n animation-timing-function: cubic-bezier(0.2, 0, 0.13, 1.5);\n text-align: left;\n}\n.vega-embed .vega-actions a {\n padding: 8px 16px;\n font-family: sans-serif;\n font-size: 14px;\n font-weight: 600;\n white-space: nowrap;\n color: #434a56;\n text-decoration: none;\n}\n.vega-embed .vega-actions a:hover, .vega-embed .vega-actions a:focus {\n background-color: #f7f7f9;\n color: black;\n}\n.vega-embed .vega-actions::before, .vega-embed .vega-actions::after {\n content: \"\";\n display: inline-block;\n position: absolute;\n}\n.vega-embed .vega-actions::before {\n left: auto;\n right: 14px;\n top: -16px;\n border: 8px solid rgba(0, 0, 0, 0);\n border-bottom-color: #d9d9d9;\n}\n.vega-embed .vega-actions::after {\n left: auto;\n right: 15px;\n top: -14px;\n border: 7px solid rgba(0, 0, 0, 0);\n border-bottom-color: #fff;\n}\n.vega-embed .chart-wrapper.fit-x {\n width: 100%;\n}\n.vega-embed .chart-wrapper.fit-y {\n height: 100%;\n}\n\n.vega-embed-wrapper {\n max-width: 100%;\n overflow: auto;\n padding-right: 14px;\n}\n\n@keyframes scale-in {\n from {\n opacity: 0;\n transform: scale(0.6);\n }\n to {\n opacity: 1;\n transform: scale(1);\n }\n}\n`;\n","import {writeConfig} from 'vega';\n\n// polyfill for IE\nif (!String.prototype.startsWith) {\n // eslint-disable-next-line no-extend-native,func-names\n String.prototype.startsWith = function (search, pos) {\n return this.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;\n };\n}\n\nexport function isURL(s: string): boolean {\n return s.startsWith('http://') || s.startsWith('https://') || s.startsWith('//');\n}\n\nexport type DeepPartial = {[P in keyof T]?: P extends unknown ? unknown : DeepPartial};\n\nexport function mergeDeep(dest: T, ...src: readonly DeepPartial[]): T {\n for (const s of src) {\n deepMerge_(dest, s);\n }\n return dest;\n}\n\nfunction deepMerge_(dest: any, src: any) {\n for (const property of Object.keys(src)) {\n writeConfig(dest, property, src[property], true);\n }\n}\n","import {applyPatch, Operation} from 'fast-json-patch';\nimport stringify from 'json-stringify-pretty-compact';\n// need this import because of https://github.com/npm/node-semver/issues/381\nimport satisfies from 'semver/functions/satisfies';\nimport * as vegaImport from 'vega';\nimport {\n AutoSize,\n Config as VgConfig,\n EncodeEntryName,\n isBoolean,\n isString,\n Loader,\n LoaderOptions,\n mergeConfig,\n Renderers,\n Spec as VgSpec,\n TooltipHandler,\n View,\n} from 'vega';\nimport {expressionInterpreter} from 'vega-interpreter';\nimport * as vegaLiteImport from 'vega-lite';\nimport {Config as VlConfig, TopLevelSpec as VlSpec} from 'vega-lite';\nimport schemaParser from 'vega-schema-url-parser';\nimport * as themes from 'vega-themes';\nimport {Handler, Options as TooltipOptions} from 'vega-tooltip';\nimport post from './post';\nimport embedStyle from './style';\nimport {Config, ExpressionFunction, Mode} from './types';\nimport {mergeDeep} from './util';\nimport pkg from '../package.json';\n\nexport const version = pkg.version;\n\nexport * from './types';\n\nexport const vega = vegaImport;\nexport let vegaLite = vegaLiteImport;\n\n// For backwards compatibility with Vega-Lite before v4.\nconst w = (typeof window !== 'undefined' ? window : undefined) as any;\nif (vegaLite === undefined && w?.vl?.compile) {\n vegaLite = w.vl;\n}\n\nexport interface Actions {\n export?: boolean | {svg?: boolean; png?: boolean};\n source?: boolean;\n compiled?: boolean;\n editor?: boolean;\n}\n\nexport const DEFAULT_ACTIONS = {export: {svg: true, png: true}, source: true, compiled: true, editor: true};\n\nexport interface Hover {\n hoverSet?: EncodeEntryName;\n updateSet?: EncodeEntryName;\n}\n\nexport type PatchFunc = (spec: VgSpec) => VgSpec;\n\nconst I18N = {\n CLICK_TO_VIEW_ACTIONS: 'Click to view actions',\n COMPILED_ACTION: 'View Compiled Vega',\n EDITOR_ACTION: 'Open in Vega Editor',\n PNG_ACTION: 'Save as PNG',\n SOURCE_ACTION: 'View Source',\n SVG_ACTION: 'Save as SVG',\n};\n\nexport interface EmbedOptions {\n bind?: HTMLElement | string;\n actions?: boolean | Actions;\n mode?: Mode;\n theme?: 'excel' | 'ggplot2' | 'quartz' | 'vox' | 'dark';\n defaultStyle?: boolean | string;\n logLevel?: number;\n loader?: Loader | LoaderOptions;\n renderer?: R;\n tooltip?: TooltipHandler | TooltipOptions | boolean;\n patch?: S | PatchFunc | Operation[];\n width?: number;\n height?: number;\n padding?: number | {left?: number; right?: number; top?: number; bottom?: number};\n scaleFactor?: number;\n config?: S | Config;\n sourceHeader?: string;\n sourceFooter?: string;\n editorUrl?: string;\n hover?: boolean | Hover;\n i18n?: Partial;\n downloadFileName?: string;\n formatLocale?: Record;\n timeFormatLocale?: Record;\n expressionFunctions?: ExpressionFunction;\n ast?: boolean;\n expr?: typeof expressionInterpreter;\n viewClass?: typeof View;\n}\n\nconst NAMES: {[key in Mode]: string} = {\n vega: 'Vega',\n 'vega-lite': 'Vega-Lite',\n};\n\nconst VERSION = {\n vega: vega.version,\n 'vega-lite': vegaLite ? vegaLite.version : 'not available',\n};\n\nconst PREPROCESSOR: {[mode in Mode]: (spec: any, config?: Config) => VgSpec} = {\n vega: (vgSpec: VgSpec) => vgSpec,\n 'vega-lite': (vlSpec, config) => vegaLite.compile(vlSpec as VlSpec, {config: config as VlConfig}).spec,\n};\n\nconst SVG_CIRCLES = `\n\n \n \n \n`;\n\nconst CHART_WRAPPER_CLASS = 'chart-wrapper';\n\nexport type VisualizationSpec = VlSpec | VgSpec;\n\nexport interface Result {\n /** The Vega view. */\n view: View;\n\n /** The input specification. */\n spec: VisualizationSpec;\n\n /** The compiled and patched Vega specification. */\n vgSpec: VgSpec;\n\n /** The Vega-Embed options. */\n embedOptions: EmbedOptions;\n\n /** Removes references to unwanted behaviors and memory leaks. Calls Vega's `view.finalize`. */\n finalize: () => void;\n}\n\nfunction isTooltipHandler(h?: boolean | TooltipOptions | TooltipHandler): h is TooltipHandler {\n return typeof h === 'function';\n}\n\nfunction viewSource(source: string, sourceHeader: string, sourceFooter: string, mode: Mode) {\n const header = `${sourceHeader}
`;\n  const footer = `
${sourceFooter}`;\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const win = window.open('')!;\n win.document.write(header + source + footer);\n win.document.title = `${NAMES[mode]} JSON Source`;\n}\n\n/**\n * Try to guess the type of spec.\n *\n * @param spec Vega or Vega-Lite spec.\n */\nexport function guessMode(spec: VisualizationSpec, providedMode?: Mode): Mode {\n // Decide mode\n if (spec.$schema) {\n const parsed = schemaParser(spec.$schema);\n if (providedMode && providedMode !== parsed.library) {\n console.warn(\n `The given visualization spec is written in ${NAMES[parsed.library]}, but mode argument sets ${NAMES[providedMode] ?? providedMode\n }.`\n );\n }\n\n const mode = parsed.library as Mode;\n\n if (!satisfies(VERSION[mode], `^${parsed.version.slice(1)}`)) {\n console.warn(\n `The input spec uses ${NAMES[mode]} ${parsed.version}, but the current version of ${NAMES[mode]} is v${VERSION[mode]}.`\n );\n }\n\n return mode;\n }\n\n // try to guess from the provided spec\n if (\n 'mark' in spec ||\n 'encoding' in spec ||\n 'layer' in spec ||\n 'hconcat' in spec ||\n 'vconcat' in spec ||\n 'facet' in spec ||\n 'repeat' in spec\n ) {\n return 'vega-lite';\n }\n\n if ('marks' in spec || 'signals' in spec || 'scales' in spec || 'axes' in spec) {\n return 'vega';\n }\n\n return providedMode ?? 'vega';\n}\n\nfunction isLoader(o?: LoaderOptions | Loader): o is Loader {\n return !!(o && 'load' in o);\n}\n\nfunction createLoader(opts?: Loader | LoaderOptions) {\n return isLoader(opts) ? opts : vega.loader(opts);\n}\n\nfunction embedOptionsFromUsermeta(parsedSpec: VisualizationSpec) {\n const opts = (parsedSpec.usermeta as any)?.embedOptions ?? {};\n if (isString(opts.defaultStyle)) {\n // we don't allow styles set via usermeta since it would allow injection of logic (we set the style via innerHTML)\n opts.defaultStyle = false;\n }\n return opts;\n}\n\n/**\n * Embed a Vega visualization component in a web page. This function returns a promise.\n *\n * @param el DOM element in which to place component (DOM node or CSS selector).\n * @param spec String : A URL string from which to load the Vega specification.\n * Object : The Vega/Vega-Lite specification as a parsed JSON object.\n * @param opts A JavaScript object containing options for embedding.\n */\nexport default async function embed(\n el: HTMLElement | string,\n spec: VisualizationSpec | string,\n opts: EmbedOptions = {}\n): Promise {\n let parsedSpec: VisualizationSpec;\n let loader: Loader | undefined;\n\n if (isString(spec)) {\n loader = createLoader(opts.loader);\n parsedSpec = JSON.parse(await loader.load(spec));\n } else {\n parsedSpec = spec;\n }\n\n const loadedEmbedOptions = embedOptionsFromUsermeta(parsedSpec);\n const usermetaLoader = loadedEmbedOptions.loader;\n\n // either create the loader for the first time or create a new loader if the spec has new loader options\n if (!loader || usermetaLoader) {\n loader = createLoader(opts.loader ?? usermetaLoader);\n }\n\n const usermetaOpts = await loadOpts(loadedEmbedOptions, loader);\n const parsedOpts = await loadOpts(opts, loader);\n\n const mergedOpts = {\n ...mergeDeep(parsedOpts, usermetaOpts),\n config: mergeConfig(parsedOpts.config ?? {}, usermetaOpts.config ?? {}),\n };\n\n return await _embed(el, parsedSpec, mergedOpts, loader);\n}\n\nasync function loadOpts(opt: EmbedOptions, loader: Loader): Promise> {\n const config: Config = isString(opt.config) ? JSON.parse(await loader.load(opt.config)) : opt.config ?? {};\n const patch: PatchFunc | Operation[] = isString(opt.patch) ? JSON.parse(await loader.load(opt.patch)) : opt.patch;\n return {\n ...(opt as any),\n ...(patch ? {patch} : {}),\n ...(config ? {config} : {}),\n };\n}\n\nfunction getRoot(el: Element) {\n const possibleRoot = el.getRootNode ? el.getRootNode() : document;\n return possibleRoot instanceof ShadowRoot\n ? {root: possibleRoot, rootContainer: possibleRoot}\n : {root: document, rootContainer: document.head ?? document.body};\n}\n\nasync function _embed(\n el: HTMLElement | string,\n spec: VisualizationSpec,\n opts: EmbedOptions = {},\n loader: Loader\n): Promise {\n const config = opts.theme ? mergeConfig(themes[opts.theme], opts.config ?? {}) : opts.config;\n\n const actions = isBoolean(opts.actions) ? opts.actions : mergeDeep({}, DEFAULT_ACTIONS, opts.actions ?? {});\n const i18n = {...I18N, ...opts.i18n};\n\n const renderer = opts.renderer ?? 'canvas';\n const logLevel = opts.logLevel ?? vega.Warn;\n const downloadFileName = opts.downloadFileName ?? 'visualization';\n\n const element = typeof el === 'string' ? document.querySelector(el) : el;\n if (!element) {\n throw new Error(`${el} does not exist`);\n }\n\n if (opts.defaultStyle !== false) {\n const ID = 'vega-embed-style';\n const {root, rootContainer} = getRoot(element);\n if (!root.getElementById(ID)) {\n const style = document.createElement('style');\n style.id = ID;\n style.innerHTML =\n opts.defaultStyle === undefined || opts.defaultStyle === true\n ? (embedStyle ?? '').toString()\n : opts.defaultStyle;\n rootContainer.appendChild(style);\n }\n }\n\n const mode = guessMode(spec, opts.mode);\n\n let vgSpec: VgSpec = PREPROCESSOR[mode](spec, config);\n\n if (mode === 'vega-lite') {\n if (vgSpec.$schema) {\n const parsed = schemaParser(vgSpec.$schema);\n\n if (!satisfies(VERSION.vega, `^${parsed.version.slice(1)}`)) {\n console.warn(`The compiled spec uses Vega ${parsed.version}, but current version is v${VERSION.vega}.`);\n }\n }\n }\n\n element.classList.add('vega-embed');\n if (actions) {\n element.classList.add('has-actions');\n }\n element.innerHTML = ''; // clear container\n\n let container = element;\n if (actions) {\n const chartWrapper = document.createElement('div');\n chartWrapper.classList.add(CHART_WRAPPER_CLASS);\n element.appendChild(chartWrapper);\n container = chartWrapper;\n }\n\n const patch = opts.patch;\n if (patch) {\n vgSpec = patch instanceof Function ? patch(vgSpec) : applyPatch(vgSpec, patch, true, false).newDocument;\n }\n\n // Set locale. Note that this is a global setting.\n if (opts.formatLocale) {\n vega.formatLocale(opts.formatLocale);\n }\n\n if (opts.timeFormatLocale) {\n vega.timeFormatLocale(opts.timeFormatLocale);\n }\n\n // Set custom expression functions\n if (opts.expressionFunctions) {\n for (const name in opts.expressionFunctions) {\n const expressionFunction = opts.expressionFunctions[name];\n if ('fn' in expressionFunction) {\n vega.expressionFunction(name, expressionFunction.fn, expressionFunction['visitor']);\n } else if (expressionFunction instanceof Function) {\n vega.expressionFunction(name, expressionFunction);\n }\n }\n }\n\n const {ast} = opts;\n\n // Do not apply the config to Vega when we have already applied it to Vega-Lite.\n // This call may throw an Error if parsing fails.\n const runtime = vega.parse(vgSpec, mode === 'vega-lite' ? {} : (config as VgConfig), {ast});\n\n const view = new (opts.viewClass || vega.View)(runtime, {\n loader,\n logLevel,\n renderer,\n ...(ast ? {expr: (vega as any).expressionInterpreter ?? opts.expr ?? expressionInterpreter} : {}),\n });\n\n view.addSignalListener('autosize', (_, autosize: Exclude) => {\n const {type} = autosize;\n if (type == 'fit-x') {\n container.classList.add('fit-x');\n container.classList.remove('fit-y');\n } else if (type == 'fit-y') {\n container.classList.remove('fit-x');\n container.classList.add('fit-y');\n } else if (type == 'fit') {\n container.classList.add('fit-x', 'fit-y');\n } else {\n container.classList.remove('fit-x', 'fit-y');\n }\n });\n\n if (opts.tooltip !== false) {\n const handler = isTooltipHandler(opts.tooltip)\n ? opts.tooltip\n : // user provided boolean true or tooltip options\n new Handler(opts.tooltip === true ? {} : opts.tooltip).call;\n\n view.tooltip(handler);\n }\n\n let {hover} = opts;\n\n if (hover === undefined) {\n hover = mode === 'vega';\n }\n\n if (hover) {\n const {hoverSet, updateSet} = (typeof hover === 'boolean' ? {} : hover) as Hover;\n\n view.hover(hoverSet, updateSet);\n }\n\n if (opts) {\n if (opts.width != null) {\n view.width(opts.width);\n }\n if (opts.height != null) {\n view.height(opts.height);\n }\n if (opts.padding != null) {\n view.padding(opts.padding);\n }\n }\n\n await view.initialize(container, opts.bind).runAsync();\n\n let documentClickHandler: ((this: Document, ev: MouseEvent) => void) | undefined;\n\n if (actions !== false) {\n let wrapper = element;\n\n if (opts.defaultStyle !== false) {\n const details = document.createElement('details');\n details.title = i18n.CLICK_TO_VIEW_ACTIONS;\n element.append(details);\n\n wrapper = details;\n const summary = document.createElement('summary');\n summary.innerHTML = SVG_CIRCLES;\n\n details.append(summary);\n\n documentClickHandler = (ev: MouseEvent) => {\n if (!details.contains(ev.target as any)) {\n details.removeAttribute('open');\n }\n };\n document.addEventListener('click', documentClickHandler);\n }\n\n const ctrl = document.createElement('div');\n wrapper.append(ctrl);\n ctrl.classList.add('vega-actions');\n\n // add 'Export' action\n if (actions === true || actions.export !== false) {\n for (const ext of ['svg', 'png'] as const) {\n if (actions === true || actions.export === true || (actions.export as {svg?: boolean; png?: boolean})[ext]) {\n const i18nExportAction = (i18n as {[key: string]: string})[`${ext.toUpperCase()}_ACTION`];\n const exportLink = document.createElement('a');\n\n exportLink.text = i18nExportAction;\n exportLink.href = '#';\n exportLink.target = '_blank';\n exportLink.download = `${downloadFileName}.${ext}`;\n // add link on mousedown so that it's correct when the click happens\n exportLink.addEventListener('mousedown', async function (this, e) {\n e.preventDefault();\n const url = await view.toImageURL(ext, opts.scaleFactor);\n this.href = url;\n });\n\n ctrl.append(exportLink);\n }\n }\n }\n\n // add 'View Source' action\n if (actions === true || actions.source !== false) {\n const viewSourceLink = document.createElement('a');\n\n viewSourceLink.text = i18n.SOURCE_ACTION;\n viewSourceLink.href = '#';\n viewSourceLink.addEventListener('click', function (this, e) {\n viewSource(stringify(spec), opts.sourceHeader ?? '', opts.sourceFooter ?? '', mode);\n e.preventDefault();\n });\n\n ctrl.append(viewSourceLink);\n }\n\n // add 'View Compiled' action\n if (mode === 'vega-lite' && (actions === true || actions.compiled !== false)) {\n const compileLink = document.createElement('a');\n\n compileLink.text = i18n.COMPILED_ACTION;\n compileLink.href = '#';\n compileLink.addEventListener('click', function (this, e) {\n viewSource(stringify(vgSpec), opts.sourceHeader ?? '', opts.sourceFooter ?? '', 'vega');\n e.preventDefault();\n });\n\n ctrl.append(compileLink);\n }\n\n // add 'Open in Vega Editor' action\n if (actions === true || actions.editor !== false) {\n const editorUrl = opts.editorUrl ?? 'https://vega.github.io/editor/';\n const editorLink = document.createElement('a');\n\n editorLink.text = i18n.EDITOR_ACTION;\n editorLink.href = '#';\n editorLink.addEventListener('click', function (this, e) {\n post(window, editorUrl, {\n config: config as Config,\n mode,\n renderer,\n spec: stringify(spec),\n });\n e.preventDefault();\n });\n\n ctrl.append(editorLink);\n }\n }\n\n function finalize() {\n if (documentClickHandler) {\n document.removeEventListener('click', documentClickHandler);\n }\n view.finalize();\n }\n\n return {view, spec, vgSpec, finalize, embedOptions: opts};\n}\n","function accessor (fn, fields, name) {\n fn.fields = fields || [];\n fn.fname = name;\n return fn;\n}\nfunction accessorName(fn) {\n return fn == null ? null : fn.fname;\n}\nfunction accessorFields(fn) {\n return fn == null ? null : fn.fields;\n}\n\nfunction getter (path) {\n return path.length === 1 ? get1(path[0]) : getN(path);\n}\nconst get1 = field => function (obj) {\n return obj[field];\n};\nconst getN = path => {\n const len = path.length;\n return function (obj) {\n for (let i = 0; i < len; ++i) {\n obj = obj[path[i]];\n }\n return obj;\n };\n};\n\nfunction error (message) {\n throw Error(message);\n}\n\nfunction splitAccessPath (p) {\n const path = [],\n n = p.length;\n let q = null,\n b = 0,\n s = '',\n i,\n j,\n c;\n p = p + '';\n function push() {\n path.push(s + p.substring(i, j));\n s = '';\n i = j + 1;\n }\n for (i = j = 0; j < n; ++j) {\n c = p[j];\n if (c === '\\\\') {\n s += p.substring(i, j);\n s += p.substring(++j, ++j);\n i = j;\n } else if (c === q) {\n push();\n q = null;\n b = -1;\n } else if (q) {\n continue;\n } else if (i === b && c === '\"') {\n i = j + 1;\n q = c;\n } else if (i === b && c === \"'\") {\n i = j + 1;\n q = c;\n } else if (c === '.' && !b) {\n if (j > i) {\n push();\n } else {\n i = j + 1;\n }\n } else if (c === '[') {\n if (j > i) push();\n b = i = j + 1;\n } else if (c === ']') {\n if (!b) error('Access path missing open bracket: ' + p);\n if (b > 0) push();\n b = 0;\n i = j + 1;\n }\n }\n if (b) error('Access path missing closing bracket: ' + p);\n if (q) error('Access path missing closing quote: ' + p);\n if (j > i) {\n j++;\n push();\n }\n return path;\n}\n\nfunction field (field, name, opt) {\n const path = splitAccessPath(field);\n field = path.length === 1 ? path[0] : field;\n return accessor((opt && opt.get || getter)(path), [field], name || field);\n}\n\nconst id = field('id');\nconst identity = accessor(_ => _, [], 'identity');\nconst zero = accessor(() => 0, [], 'zero');\nconst one = accessor(() => 1, [], 'one');\nconst truthy = accessor(() => true, [], 'true');\nconst falsy = accessor(() => false, [], 'false');\n\nfunction log$1(method, level, input) {\n const args = [level].concat([].slice.call(input));\n console[method].apply(console, args); // eslint-disable-line no-console\n}\n\nconst None = 0;\nconst Error$1 = 1;\nconst Warn = 2;\nconst Info = 3;\nconst Debug = 4;\nfunction logger (_, method) {\n let handler = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : log$1;\n let level = _ || None;\n return {\n level(_) {\n if (arguments.length) {\n level = +_;\n return this;\n } else {\n return level;\n }\n },\n error() {\n if (level >= Error$1) handler(method || 'error', 'ERROR', arguments);\n return this;\n },\n warn() {\n if (level >= Warn) handler(method || 'warn', 'WARN', arguments);\n return this;\n },\n info() {\n if (level >= Info) handler(method || 'log', 'INFO', arguments);\n return this;\n },\n debug() {\n if (level >= Debug) handler(method || 'log', 'DEBUG', arguments);\n return this;\n }\n };\n}\n\nvar isArray = Array.isArray;\n\nfunction isObject (_) {\n return _ === Object(_);\n}\n\nconst isLegalKey = key => key !== '__proto__';\nfunction mergeConfig() {\n for (var _len = arguments.length, configs = new Array(_len), _key = 0; _key < _len; _key++) {\n configs[_key] = arguments[_key];\n }\n return configs.reduce((out, source) => {\n for (const key in source) {\n if (key === 'signals') {\n // for signals, we merge the signals arrays\n // source signals take precedence over\n // existing signals with the same name\n out.signals = mergeNamed(out.signals, source.signals);\n } else {\n // otherwise, merge objects subject to recursion constraints\n // for legend block, recurse for the layout entry only\n // for style block, recurse for all properties\n // otherwise, no recursion: objects overwrite, no merging\n const r = key === 'legend' ? {\n layout: 1\n } : key === 'style' ? true : null;\n writeConfig(out, key, source[key], r);\n }\n }\n return out;\n }, {});\n}\nfunction writeConfig(output, key, value, recurse) {\n if (!isLegalKey(key)) return;\n let k, o;\n if (isObject(value) && !isArray(value)) {\n o = isObject(output[key]) ? output[key] : output[key] = {};\n for (k in value) {\n if (recurse && (recurse === true || recurse[k])) {\n writeConfig(o, k, value[k]);\n } else if (isLegalKey(k)) {\n o[k] = value[k];\n }\n }\n } else {\n output[key] = value;\n }\n}\nfunction mergeNamed(a, b) {\n if (a == null) return b;\n const map = {},\n out = [];\n function add(_) {\n if (!map[_.name]) {\n map[_.name] = 1;\n out.push(_);\n }\n }\n b.forEach(add);\n a.forEach(add);\n return out;\n}\n\nfunction peek (array) {\n return array[array.length - 1];\n}\n\nfunction toNumber (_) {\n return _ == null || _ === '' ? null : +_;\n}\n\nconst exp = sign => x => sign * Math.exp(x);\nconst log = sign => x => Math.log(sign * x);\nconst symlog = c => x => Math.sign(x) * Math.log1p(Math.abs(x / c));\nconst symexp = c => x => Math.sign(x) * Math.expm1(Math.abs(x)) * c;\nconst pow = exponent => x => x < 0 ? -Math.pow(-x, exponent) : Math.pow(x, exponent);\nfunction pan(domain, delta, lift, ground) {\n const d0 = lift(domain[0]),\n d1 = lift(peek(domain)),\n dd = (d1 - d0) * delta;\n return [ground(d0 - dd), ground(d1 - dd)];\n}\nfunction panLinear(domain, delta) {\n return pan(domain, delta, toNumber, identity);\n}\nfunction panLog(domain, delta) {\n var sign = Math.sign(domain[0]);\n return pan(domain, delta, log(sign), exp(sign));\n}\nfunction panPow(domain, delta, exponent) {\n return pan(domain, delta, pow(exponent), pow(1 / exponent));\n}\nfunction panSymlog(domain, delta, constant) {\n return pan(domain, delta, symlog(constant), symexp(constant));\n}\nfunction zoom(domain, anchor, scale, lift, ground) {\n const d0 = lift(domain[0]),\n d1 = lift(peek(domain)),\n da = anchor != null ? lift(anchor) : (d0 + d1) / 2;\n return [ground(da + (d0 - da) * scale), ground(da + (d1 - da) * scale)];\n}\nfunction zoomLinear(domain, anchor, scale) {\n return zoom(domain, anchor, scale, toNumber, identity);\n}\nfunction zoomLog(domain, anchor, scale) {\n const sign = Math.sign(domain[0]);\n return zoom(domain, anchor, scale, log(sign), exp(sign));\n}\nfunction zoomPow(domain, anchor, scale, exponent) {\n return zoom(domain, anchor, scale, pow(exponent), pow(1 / exponent));\n}\nfunction zoomSymlog(domain, anchor, scale, constant) {\n return zoom(domain, anchor, scale, symlog(constant), symexp(constant));\n}\n\nfunction quarter(date) {\n return 1 + ~~(new Date(date).getMonth() / 3);\n}\nfunction utcquarter(date) {\n return 1 + ~~(new Date(date).getUTCMonth() / 3);\n}\n\nfunction array (_) {\n return _ != null ? isArray(_) ? _ : [_] : [];\n}\n\n/**\n * Span-preserving range clamp. If the span of the input range is less\n * than (max - min) and an endpoint exceeds either the min or max value,\n * the range is translated such that the span is preserved and one\n * endpoint touches the boundary of the min/max range.\n * If the span exceeds (max - min), the range [min, max] is returned.\n */\nfunction clampRange (range, min, max) {\n let lo = range[0],\n hi = range[1],\n span;\n if (hi < lo) {\n span = hi;\n hi = lo;\n lo = span;\n }\n span = hi - lo;\n return span >= max - min ? [min, max] : [lo = Math.min(Math.max(lo, min), max - span), lo + span];\n}\n\nfunction isFunction (_) {\n return typeof _ === 'function';\n}\n\nconst DESCENDING = 'descending';\nfunction compare (fields, orders, opt) {\n opt = opt || {};\n orders = array(orders) || [];\n const ord = [],\n get = [],\n fmap = {},\n gen = opt.comparator || comparator;\n array(fields).forEach((f, i) => {\n if (f == null) return;\n ord.push(orders[i] === DESCENDING ? -1 : 1);\n get.push(f = isFunction(f) ? f : field(f, null, opt));\n (accessorFields(f) || []).forEach(_ => fmap[_] = 1);\n });\n return get.length === 0 ? null : accessor(gen(get, ord), Object.keys(fmap));\n}\nconst ascending = (u, v) => (u < v || u == null) && v != null ? -1 : (u > v || v == null) && u != null ? 1 : (v = v instanceof Date ? +v : v, u = u instanceof Date ? +u : u) !== u && v === v ? -1 : v !== v && u === u ? 1 : 0;\nconst comparator = (fields, orders) => fields.length === 1 ? compare1(fields[0], orders[0]) : compareN(fields, orders, fields.length);\nconst compare1 = (field, order) => function (a, b) {\n return ascending(field(a), field(b)) * order;\n};\nconst compareN = (fields, orders, n) => {\n orders.push(0); // pad zero for convenient lookup\n return function (a, b) {\n let f,\n c = 0,\n i = -1;\n while (c === 0 && ++i < n) {\n f = fields[i];\n c = ascending(f(a), f(b));\n }\n return c * orders[i];\n };\n};\n\nfunction constant (_) {\n return isFunction(_) ? _ : () => _;\n}\n\nfunction debounce (delay, handler) {\n let tid;\n return e => {\n if (tid) clearTimeout(tid);\n tid = setTimeout(() => (handler(e), tid = null), delay);\n };\n}\n\nfunction extend (_) {\n for (let x, k, i = 1, len = arguments.length; i < len; ++i) {\n x = arguments[i];\n for (k in x) {\n _[k] = x[k];\n }\n }\n return _;\n}\n\n/**\n * Return an array with minimum and maximum values, in the\n * form [min, max]. Ignores null, undefined, and NaN values.\n */\nfunction extent (array, f) {\n let i = 0,\n n,\n v,\n min,\n max;\n if (array && (n = array.length)) {\n if (f == null) {\n // find first valid value\n for (v = array[i]; i < n && (v == null || v !== v); v = array[++i]);\n min = max = v;\n\n // visit all other values\n for (; i < n; ++i) {\n v = array[i];\n // skip null/undefined; NaN will fail all comparisons\n if (v != null) {\n if (v < min) min = v;\n if (v > max) max = v;\n }\n }\n } else {\n // find first valid value\n for (v = f(array[i]); i < n && (v == null || v !== v); v = f(array[++i]));\n min = max = v;\n\n // visit all other values\n for (; i < n; ++i) {\n v = f(array[i]);\n // skip null/undefined; NaN will fail all comparisons\n if (v != null) {\n if (v < min) min = v;\n if (v > max) max = v;\n }\n }\n }\n }\n return [min, max];\n}\n\nfunction extentIndex (array, f) {\n const n = array.length;\n let i = -1,\n a,\n b,\n c,\n u,\n v;\n if (f == null) {\n while (++i < n) {\n b = array[i];\n if (b != null && b >= b) {\n a = c = b;\n break;\n }\n }\n if (i === n) return [-1, -1];\n u = v = i;\n while (++i < n) {\n b = array[i];\n if (b != null) {\n if (a > b) {\n a = b;\n u = i;\n }\n if (c < b) {\n c = b;\n v = i;\n }\n }\n }\n } else {\n while (++i < n) {\n b = f(array[i], i, array);\n if (b != null && b >= b) {\n a = c = b;\n break;\n }\n }\n if (i === n) return [-1, -1];\n u = v = i;\n while (++i < n) {\n b = f(array[i], i, array);\n if (b != null) {\n if (a > b) {\n a = b;\n u = i;\n }\n if (c < b) {\n c = b;\n v = i;\n }\n }\n }\n }\n return [u, v];\n}\n\nconst hop = Object.prototype.hasOwnProperty;\nfunction has (object, property) {\n return hop.call(object, property);\n}\n\nconst NULL = {};\nfunction fastmap (input) {\n let obj = {},\n test;\n function has$1(key) {\n return has(obj, key) && obj[key] !== NULL;\n }\n const map = {\n size: 0,\n empty: 0,\n object: obj,\n has: has$1,\n get(key) {\n return has$1(key) ? obj[key] : undefined;\n },\n set(key, value) {\n if (!has$1(key)) {\n ++map.size;\n if (obj[key] === NULL) --map.empty;\n }\n obj[key] = value;\n return this;\n },\n delete(key) {\n if (has$1(key)) {\n --map.size;\n ++map.empty;\n obj[key] = NULL;\n }\n return this;\n },\n clear() {\n map.size = map.empty = 0;\n map.object = obj = {};\n },\n test(_) {\n if (arguments.length) {\n test = _;\n return map;\n } else {\n return test;\n }\n },\n clean() {\n const next = {};\n let size = 0;\n for (const key in obj) {\n const value = obj[key];\n if (value !== NULL && (!test || !test(value))) {\n next[key] = value;\n ++size;\n }\n }\n map.size = size;\n map.empty = 0;\n map.object = obj = next;\n }\n };\n if (input) Object.keys(input).forEach(key => {\n map.set(key, input[key]);\n });\n return map;\n}\n\nfunction flush (range, value, threshold, left, right, center) {\n if (!threshold && threshold !== 0) return center;\n const t = +threshold;\n let a = range[0],\n b = peek(range),\n l;\n\n // swap endpoints if range is reversed\n if (b < a) {\n l = a;\n a = b;\n b = l;\n }\n\n // compare value to endpoints\n l = Math.abs(value - a);\n const r = Math.abs(b - value);\n\n // adjust if value is within threshold distance of endpoint\n return l < r && l <= t ? left : r <= t ? right : center;\n}\n\nfunction inherits (child, parent, members) {\n const proto = child.prototype = Object.create(parent.prototype);\n Object.defineProperty(proto, 'constructor', {\n value: child,\n writable: true,\n enumerable: true,\n configurable: true\n });\n return extend(proto, members);\n}\n\n/**\n * Predicate that returns true if the value lies within the span\n * of the given range. The left and right flags control the use\n * of inclusive (true) or exclusive (false) comparisons.\n */\nfunction inrange (value, range, left, right) {\n let r0 = range[0],\n r1 = range[range.length - 1],\n t;\n if (r0 > r1) {\n t = r0;\n r0 = r1;\n r1 = t;\n }\n left = left === undefined || left;\n right = right === undefined || right;\n return (left ? r0 <= value : r0 < value) && (right ? value <= r1 : value < r1);\n}\n\nfunction isBoolean (_) {\n return typeof _ === 'boolean';\n}\n\nfunction isDate (_) {\n return Object.prototype.toString.call(_) === '[object Date]';\n}\n\nfunction isIterable (_) {\n return _ && isFunction(_[Symbol.iterator]);\n}\n\nfunction isNumber (_) {\n return typeof _ === 'number';\n}\n\nfunction isRegExp (_) {\n return Object.prototype.toString.call(_) === '[object RegExp]';\n}\n\nfunction isString (_) {\n return typeof _ === 'string';\n}\n\nfunction key (fields, flat, opt) {\n if (fields) {\n fields = flat ? array(fields).map(f => f.replace(/\\\\(.)/g, '$1')) : array(fields);\n }\n const len = fields && fields.length,\n gen = opt && opt.get || getter,\n map = f => gen(flat ? [f] : splitAccessPath(f));\n let fn;\n if (!len) {\n fn = function () {\n return '';\n };\n } else if (len === 1) {\n const get = map(fields[0]);\n fn = function (_) {\n return '' + get(_);\n };\n } else {\n const get = fields.map(map);\n fn = function (_) {\n let s = '' + get[0](_),\n i = 0;\n while (++i < len) s += '|' + get[i](_);\n return s;\n };\n }\n return accessor(fn, fields, 'key');\n}\n\nfunction lerp (array, frac) {\n const lo = array[0],\n hi = peek(array),\n f = +frac;\n return !f ? lo : f === 1 ? hi : lo + f * (hi - lo);\n}\n\nconst DEFAULT_MAX_SIZE = 10000;\n\n// adapted from https://github.com/dominictarr/hashlru/ (MIT License)\nfunction lruCache (maxsize) {\n maxsize = +maxsize || DEFAULT_MAX_SIZE;\n let curr, prev, size;\n const clear = () => {\n curr = {};\n prev = {};\n size = 0;\n };\n const update = (key, value) => {\n if (++size > maxsize) {\n prev = curr;\n curr = {};\n size = 1;\n }\n return curr[key] = value;\n };\n clear();\n return {\n clear,\n has: key => has(curr, key) || has(prev, key),\n get: key => has(curr, key) ? curr[key] : has(prev, key) ? update(key, prev[key]) : undefined,\n set: (key, value) => has(curr, key) ? curr[key] = value : update(key, value)\n };\n}\n\nfunction merge (compare, array0, array1, output) {\n const n0 = array0.length,\n n1 = array1.length;\n if (!n1) return array0;\n if (!n0) return array1;\n const merged = output || new array0.constructor(n0 + n1);\n let i0 = 0,\n i1 = 0,\n i = 0;\n for (; i0 < n0 && i1 < n1; ++i) {\n merged[i] = compare(array0[i0], array1[i1]) > 0 ? array1[i1++] : array0[i0++];\n }\n for (; i0 < n0; ++i0, ++i) {\n merged[i] = array0[i0];\n }\n for (; i1 < n1; ++i1, ++i) {\n merged[i] = array1[i1];\n }\n return merged;\n}\n\nfunction repeat (str, reps) {\n let s = '';\n while (--reps >= 0) s += str;\n return s;\n}\n\nfunction pad (str, length, padchar, align) {\n const c = padchar || ' ',\n s = str + '',\n n = length - s.length;\n return n <= 0 ? s : align === 'left' ? repeat(c, n) + s : align === 'center' ? repeat(c, ~~(n / 2)) + s + repeat(c, Math.ceil(n / 2)) : s + repeat(c, n);\n}\n\n/**\n * Return the numerical span of an array: the difference between\n * the last and first values.\n */\nfunction span (array) {\n return array && peek(array) - array[0] || 0;\n}\n\nfunction $(x) {\n return isArray(x) ? '[' + x.map($) + ']' : isObject(x) || isString(x) ?\n // Output valid JSON and JS source strings.\n // See http://timelessrepo.com/json-isnt-a-javascript-subset\n JSON.stringify(x).replace('\\u2028', '\\\\u2028').replace('\\u2029', '\\\\u2029') : x;\n}\n\nfunction toBoolean (_) {\n return _ == null || _ === '' ? null : !_ || _ === 'false' || _ === '0' ? false : !!_;\n}\n\nconst defaultParser = _ => isNumber(_) ? _ : isDate(_) ? _ : Date.parse(_);\nfunction toDate (_, parser) {\n parser = parser || defaultParser;\n return _ == null || _ === '' ? null : parser(_);\n}\n\nfunction toString (_) {\n return _ == null || _ === '' ? null : _ + '';\n}\n\nfunction toSet (_) {\n const s = {},\n n = _.length;\n for (let i = 0; i < n; ++i) s[_[i]] = true;\n return s;\n}\n\nfunction truncate (str, length, align, ellipsis) {\n const e = ellipsis != null ? ellipsis : '\\u2026',\n s = str + '',\n n = s.length,\n l = Math.max(0, length - e.length);\n return n <= length ? s : align === 'left' ? e + s.slice(n - l) : align === 'center' ? s.slice(0, Math.ceil(l / 2)) + e + s.slice(n - ~~(l / 2)) : s.slice(0, l) + e;\n}\n\nfunction visitArray (array, filter, visitor) {\n if (array) {\n if (filter) {\n const n = array.length;\n for (let i = 0; i < n; ++i) {\n const t = filter(array[i]);\n if (t) visitor(t, i, array);\n }\n } else {\n array.forEach(visitor);\n }\n }\n}\n\nexport { Debug, Error$1 as Error, Info, None, Warn, accessor, accessorFields, accessorName, array, ascending, clampRange, compare, constant, debounce, error, extend, extent, extentIndex, falsy, fastmap, field, flush, has as hasOwnProperty, id, identity, inherits, inrange, isArray, isBoolean, isDate, isFunction, isIterable, isNumber, isObject, isRegExp, isString, key, lerp, logger, lruCache, merge, mergeConfig, one, pad, panLinear, panLog, panPow, panSymlog, peek, quarter, repeat, span, splitAccessPath, $ as stringValue, toBoolean, toDate, toNumber, toSet, toString, truncate, truthy, utcquarter, visitArray, writeConfig, zero, zoomLinear, zoomLog, zoomPow, zoomSymlog };\n"],"names":["stringOrChar","module","exports","passedObj","options","indent","maxLength","replacer","JSON","stringify","undefined","slice","Infinity","_stringify","obj","currentIndent","reserved","end","index","items","key","keyPart","keys","length","nextIndent","prettified","start","string","value","toJSON","replace","match","stringLiteral","parse","Array","isArray","push","Object","join","extendStatics","__extends","d","b","setPrototypeOf","__proto__","p","hasOwnProperty","__","this","constructor","prototype","create","_hasOwnProperty","call","_objectKeys","keys_1","k","i","_deepClone","isInteger","str","charCode","len","charCodeAt","escapePathComponent","path","indexOf","unescapePathComponent","hasUndefined","i_1","objKeys","objKeysLength","patchErrorMessageFormatter","message","args","messageParts","PatchError","_super","name","operation","tree","_newTarget","_this","Error","JsonPatchError","deepClone","objOps","add","document","newDocument","remove","removed","move","getValueByPointer","originalValue","applyOperation","op","from","copy","valueToCopy","test","_areEquals","_get","arrOps","arr","splice","pointer","getOriginalDestination","validateOperation","mutateDocument","banPrototypeModifications","validator","returnValue","split","t","existingPathFragment","validateFunction","TypeError","applyPatch","patch","results","length_1","applyReducer","operationResult","pathLen","existingPathLen","error","validate","sequence","externalValidator","e","a","arrA","arrB","beforeDict","WeakMap","Mirror","observers","Map","ObserverInfo","callback","observer","unobserve","root","observe","mirror","get","getMirror","observerInfo","getObserverFromMirror","set","next","dirtyCheck","generate","fastCheck","clearTimeout","setTimeout","window","addEventListener","patches","object","delete","removeObserverFromMirror","removeEventListener","invertible","_generate","temp","newKeys","oldKeys","deleted","oldVal","newVal","compare","tree1","tree2","assign","Constants","NaN","E","Math","LN2","LN10","LOG2E","LOG10E","PI","SQRT1_2","SQRT2","MIN_VALUE","Number","MAX_VALUE","Ops","Unary","apply","m","cast","Functions","isNaN","isFinite","abs","acos","asin","atan","atan2","ceil","cos","exp","floor","log","max","min","pow","random","round","sin","sqrt","tan","clamp","c","now","Date","utc","UTC","datetime","y","H","M","S","ms","date","getDate","day","getDay","year","getFullYear","month","getMonth","hours","getHours","minutes","getMinutes","seconds","getSeconds","milliseconds","getMilliseconds","time","getTime","timezoneoffset","getTimezoneOffset","utcdate","getUTCDate","utcday","getUTCDay","utcyear","getUTCFullYear","utcmonth","getUTCMonth","utchours","getUTCHours","utcminutes","getUTCMinutes","utcseconds","getUTCSeconds","utcmilliseconds","getUTCMilliseconds","x","arguments","indexof","lastindexof","reverse","parseFloat","parseInt","upper","String","toUpperCase","lower","toLowerCase","substring","trim","regexp","RegExp","r","EventFunctions","Visitors","Literal","$","n","Identifier","id","memberDepth","datum","event","item","params","MemberExpression","computed","o","property","CallExpression","callee","startsWith","fn","map","ArrayExpression","elements","BinaryExpression","operator","left","right","UnaryExpression","argument","ConditionalExpression","consequent","alternate","LogicalExpression","ObjectExpression","properties","reduce","interpret","ast","type","forEach","f","vega","expression","ctx","expr","functions","_","parameter","handler","encode","marktype","channels","swap","v","x2","width","xc","y2","height","yc","adjustSpatial","version","url","library","exec","lightColor","darkTheme","background","title","color","subtitleColor","style","fill","axis","domainColor","gridColor","tickColor","markColor$7","excelTheme","arc","area","line","stroke","strokeWidth","rect","shape","symbol","size","bandPosition","grid","gridOpacity","gridWidth","labelPadding","tickSize","tickWidth","axisBand","tickExtra","legend","labelBaseline","labelFontSize","symbolSize","symbolType","range","category","markColor$6","axisColor$2","backgroundColor$2","blackTitle","fiveThirtyEightTheme","labelColor","titleColor","titleFontSize","titlePadding","group","padding","diverging","heatmap","point","filled","bar","binSpacing","anchor","fontSize","fontWeight","offset","markColor$5","ggplot2Theme","domain","titleFontWeight","labelFont$1","markColor$4","titleFont","colorSchemes$1","latimesTheme","font","labelFont","labelFontWeight","axisX","labelAngle","axisY","maxExtent","minExtent","titleAlign","titleAngle","titleX","titleY","ordinal","ramp","markColor$3","axisColor$1","quartzTheme","domainWidth","markColor$2","voxTheme","gridDash","markColor$1","axisColor","colorSchemes","urbanInstituteTheme","ticks","orient","view","trail","text","align","markColor","defaultFont","googlechartsTheme","circle","top","bottom","dy","ptToPx","fontSmallPx","legendFontPx","fontLargePx","fontStandard","fontTitle","firstLevelElementColor","secondLevelElementColor","backgroundColor","paletteColor1","divergentColorMin","divergentPalette","powerbiTheme","header","axisQuantitative","tickCount","labelFlush","strokeCap","strokeJoin","opacity","maxDepth","stack","pos","EL_ID","DEFAULT_OPTIONS","offsetX","offsetY","styleId","theme","disableDefaultStyle","sanitize","formatTooltip","valueToHtml","content","_a","image","rest","s","getOwnPropertySymbols","propertyIsEnumerable","__rest","val","Handler","elementId","el","tooltipHandler","bind","getElementById","createElement","setAttribute","innerHTML","toString","createDefaultStyle","head","childNodes","insertBefore","appendChild","classList","fullscreenElement","body","tooltipBox","clientX","innerWidth","clientY","innerHeight","calculatePosition","getBoundingClientRect","_defineProperty","defineProperty","enumerable","configurable","writable","asyncGeneratorStep","gen","resolve","reject","_next","_throw","arg","info","done","Promise","then","_asyncToGenerator","self","err","Op","hasOwn","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","wrap","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","context","Context","_invoke","state","GenStateSuspendedStart","method","GenStateExecuting","GenStateCompleted","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","sent","_sent","dispatchException","abrupt","record","tryCatch","GenStateSuspendedYield","makeInvokeMethod","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","isGeneratorFunction","genFun","ctor","displayName","AsyncIterator","PromiseImpl","invoke","result","__await","unwrapped","previousPromise","callInvokeWithMethodAndArg","resultName","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","iterable","iteratorMethod","skipTempReset","prev","charAt","stop","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","mark","awrap","async","iter","pop","yallist","Yallist","list","tail","l","insert","node","inserted","Node","unshift","removeNode","unshiftNode","pushNode","res","shift","thisp","walker","forEachReverse","getReverse","mapReverse","initial","acc","reduceReverse","toArray","toArrayReverse","to","ret","sliceReverse","deleteCount","er","require$$0","MAX","LENGTH","LENGTH_CALCULATOR","ALLOW_STALE","MAX_AGE","DISPOSE","NO_DISPOSE_ON_SET","LRU_LIST","CACHE","UPDATE_AGE_ON_GET","naiveLength","doUse","hit","isStale","del","maxAge","diff","Entry","forEachStep","opts","parseOptions_1","loose","filter","constants","SEMVER_SPEC_VERSION","MAX_SAFE_INTEGER","MAX_SAFE_COMPONENT_LENGTH","debug_1","process","NODE_DEBUG","console","debug","require$$1","re","src","R","createToken","isGlobal","NUMERICIDENTIFIER","NUMERICIDENTIFIERLOOSE","NONNUMERICIDENTIFIER","PRERELEASEIDENTIFIER","PRERELEASEIDENTIFIERLOOSE","BUILDIDENTIFIER","MAINVERSION","PRERELEASE","BUILD","FULLPLAIN","MAINVERSIONLOOSE","PRERELEASELOOSE","LOOSEPLAIN","XRANGEIDENTIFIER","XRANGEIDENTIFIERLOOSE","GTLT","XRANGEPLAIN","XRANGEPLAINLOOSE","COERCE","LONETILDE","tildeTrimReplace","LONECARET","caretTrimReplace","comparatorTrimReplace","numeric","identifiers","anum","bnum","MAX_LENGTH","require$$2","parseOptions","require$$3","compareIdentifiers","require$$4","SemVer","includePrerelease","LOOSE","FULL","raw","major","minor","prerelease","num","build","format","other","compareMain","comparePre","compareBuild","inc","release","identifier","semver","compare_1","cmp_1","eq","neq","gt","gte","lt","lte","Range","Comparator","parseRange","first","isNullSet","_createForOfIteratorHelper","isAny","comps","memoOpts","memoKey","cached","cache","hr","HYPHENRANGELOOSE","HYPHENRANGE","hyphenReplace","COMPARATORTRIM","rangeList","TILDETRIM","CARETTRIM","comp","parseComparator","replaceGTE0","COMPARATORLOOSE","rangeMap","comparators","has","intersects","some","thisComparators","isSatisfiable","rangeComparators","every","thisComparator","rangeComparator","testSet","lc","stale","dispose","noDisposeOnSet","updateAgeOnGet","mL","allowStale","mA","lengthCalculator","lC","itemCount","rforEach","dump","h","dumpLru","peek","load","expiresAt","prune","ANY","COMPARATOR","cmp","sameDirectionIncreasing","sameDirectionDecreasing","sameSemVer","differentDirectionsInclusive","oppositeDirectionsLessThan","oppositeDirectionsGreaterThan","comparator","require$$5","remainingComparators","testComparator","otherComparator","replaceCarets","replaceTildes","replaceXRanges","replaceStars","isX","replaceTilde","TILDELOOSE","TILDE","pr","replaceCaret","CARETLOOSE","CARET","z","replaceXRange","XRANGELOOSE","XRANGE","gtlt","xM","xm","xp","anyX","STAR","GTE0PRE","GTE0","incPr","$0","fM","fm","fp","fpr","fb","tM","tm","tp","tpr","tb","allowed","satisfies_1","data","editor","open","origin","URL","count","listen","evt","source","send","postMessage","mergeDeep","dest","deepMerge_","writeConfig","search","substr","vegaImport","vegaLite","vegaLiteImport","w","vl","compile","DEFAULT_ACTIONS","export","svg","png","compiled","I18N","CLICK_TO_VIEW_ACTIONS","COMPILED_ACTION","EDITOR_ACTION","PNG_ACTION","SOURCE_ACTION","SVG_ACTION","NAMES","VERSION","PREPROCESSOR","vgSpec","vlSpec","config","spec","SVG_CIRCLES","CHART_WRAPPER_CLASS","isTooltipHandler","viewSource","sourceHeader","sourceFooter","mode","footer","win","write","guessMode","providedMode","$schema","parsed","schemaParser","warn","satisfies","createLoader","loader","embedOptionsFromUsermeta","parsedSpec","usermeta","embedOptions","isString","defaultStyle","embed","loadedEmbedOptions","usermetaLoader","loadOpts","usermetaOpts","parsedOpts","mergedOpts","mergeConfig","_embed","opt","getRoot","possibleRoot","getRootNode","ShadowRoot","rootContainer","finalize","documentClickHandler","themes","actions","isBoolean","i18n","renderer","logLevel","Warn","downloadFileName","element","querySelector","ID","container","chartWrapper","Function","formatLocale","timeFormatLocale","expressionFunctions","expressionFunction","runtime","viewClass","View","expressionInterpreter","addSignalListener","autosize","tooltip","hover","hoverSet","updateSet","initialize","runAsync","wrapper","details","append","summary","ev","contains","target","removeAttribute","ctrl","ext","i18nExportAction","exportLink","href","download","preventDefault","toImageURL","scaleFactor","viewSourceLink","compileLink","editorUrl","editorLink","post","accessor","fields","fname","accessorName","accessorFields","getter","get1","getN","field","splitAccessPath","j","q","identity","zero","one","truthy","falsy","log$1","level","input","concat","None","Error$1","Info","Debug","logger","isObject","isLegalKey","_len","configs","_key","out","signals","mergeNamed","layout","output","recurse","array","toNumber","sign","symlog","log1p","symexp","expm1","exponent","pan","delta","lift","ground","d0","d1","dd","panLinear","panLog","panPow","panSymlog","constant","zoom","scale","da","zoomLinear","zoomLog","zoomPow","zoomSymlog","quarter","utcquarter","clampRange","span","lo","hi","isFunction","orders","ord","fmap","ascending","u","compare1","compareN","order","debounce","delay","tid","extend","extent","extentIndex","hop","NULL","fastmap","has$1","empty","clear","clean","flush","threshold","center","inherits","child","parent","members","proto","inrange","r0","r1","isDate","isIterable","isNumber","isRegExp","flat","lerp","frac","lruCache","maxsize","curr","update","merge","array0","array1","n0","n1","merged","i0","i1","repeat","reps","pad","padchar","toBoolean","defaultParser","toDate","parser","toSet","truncate","ellipsis","visitArray","visitor"],"sourceRoot":""} \ No newline at end of file diff --git a/_static/build/4410.1d37235.js b/_static/build/4410.1d37235.js new file mode 100644 index 0000000..36bdf16 --- /dev/null +++ b/_static/build/4410.1d37235.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[4410,1245],{71245:(e,t,r)=>{r.r(t),r.d(t,{IServiceWorkerManager:()=>h,JupyterLiteServer:()=>a,Router:()=>o,ServiceWorkerManager:()=>p,WORKER_NAME:()=>u});var i=r(20435),s=r(76070),n=r(11079);class o{constructor(){this._routes=[]}get(e,t){this._add("GET",e,t)}put(e,t){this._add("PUT",e,t)}post(e,t){this._add("POST",e,t)}patch(e,t){this._add("PATCH",e,t)}delete(e,t){this._add("DELETE",e,t)}async route(e){const t=new URL(e.url),{method:r}=e,{pathname:i}=t;for(const s of this._routes){if(s.method!==r)continue;const n=i.match(s.pattern);if(!n)continue;const o=n.slice(1);let a;if("PATCH"===s.method||"PUT"===s.method||"POST"===s.method)try{a=JSON.parse(await e.text())}catch{a=void 0}return s.callback.call(null,{pathname:i,body:a,query:Object.fromEntries(t.searchParams)},...o)}throw new Error("Cannot route "+e.method+" "+e.url)}_add(e,t,r){"string"==typeof t&&(t=new RegExp(t)),this._routes.push({method:e,pattern:t,callback:r})}}class a extends s.Application{constructor(e){var t;super(e),this.name="JupyterLite Server",this.namespace=this.name,this.version="unknown",this._router=new o,this._serviceManager=new i.ServiceManager({standby:"never",serverSettings:{...i.ServerConnection.makeSettings(),WebSocket:n.WebSocket,fetch:null!==(t=this.fetch.bind(this))&&void 0!==t?t:void 0}})}get router(){return this._router}get serviceManager(){return this._serviceManager}async fetch(e,t){if(!(e instanceof Request))throw Error("Request info is not a Request");return this._router.route(e)}attachShell(e){}evtResize(e){}registerPluginModule(e){let t=e.default;Object.prototype.hasOwnProperty.call(e,"__esModule")||(t=e),Array.isArray(t)||(t=[t]),t.forEach((e=>{try{this.registerPlugin(e)}catch(e){console.error(e)}}))}registerPluginModules(e){e.forEach((e=>{this.registerPluginModule(e)}))}}var c=r(26169);const l=r.p+"service-worker-f7de73d.js",h=new c.Token("@jupyterlite/server-extension:IServiceWorkerManager"),u=`${l}`.split("/").slice(-1)[0];var d=r(70942),g=r(55941);class p{constructor(){this._registration=null,this._registrationChanged=new d.Signal(this),this._ready=new c.PromiseDelegate,this.initialize().catch(console.warn)}get registrationChanged(){return this._registrationChanged}get enabled(){return null!==this._registration}get ready(){return this._ready.promise}async initialize(){const{serviceWorker:e}=navigator,t=g.URLExt.join(g.PageConfig.getBaseUrl(),u);let r=null;if(e?e.controller&&(r=await e.getRegistration(e.controller.scriptURL)||null,console.info("JupyterLite ServiceWorker was already registered")):console.warn("ServiceWorkers not supported in this browser"),!r&&e)try{console.info("Registering new JupyterLite ServiceWorker",t),r=await e.register(t),console.info("JupyterLite ServiceWorker was sucessfully registered")}catch(e){console.warn(e),console.warn(`JupyterLite ServiceWorker registration unexpectedly failed: ${e}`)}this.setRegistration(r),r?this._ready.resolve(void 0):this._ready.reject(void 0)}setRegistration(e){this._registration=e,this._registrationChanged.emit(this._registration)}}}}]); +//# sourceMappingURL=4410.1d37235.js.map \ No newline at end of file diff --git a/_static/build/4410.1d37235.js.map b/_static/build/4410.1d37235.js.map new file mode 100644 index 0000000..e816b7c --- /dev/null +++ b/_static/build/4410.1d37235.js.map @@ -0,0 +1 @@ +{"version":3,"file":"4410.1d37235.js","mappings":"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","sources":["webpack://_JUPYTERLAB.CORE_OUTPUT/../packages/server/src/router.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../packages/server/src/app.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../packages/server/lib/service-worker.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../packages/server/src/tokens.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../packages/server/src/service-manager.ts"],"sourcesContent":["import { ReadonlyJSONObject } from '@lumino/coreutils';\n\n/**\n * A simple router.\n */\nexport class Router {\n /**\n * Add a new GET route\n *\n * @param pattern The pattern to match\n * @param callback The function to call on pattern match\n *\n */\n get(pattern: string | RegExp, callback: Router.Callback): void {\n this._add('GET', pattern, callback);\n }\n\n /**\n * Add a new PUT route\n *\n * @param pattern The pattern to match\n * @param callback The function to call on pattern match\n *\n */\n put(pattern: string | RegExp, callback: Router.Callback): void {\n this._add('PUT', pattern, callback);\n }\n\n /**\n * Add a new POST route\n *\n * @param pattern The pattern to match\n * @param callback The function to call on pattern match\n *\n */\n post(pattern: string | RegExp, callback: Router.Callback): void {\n this._add('POST', pattern, callback);\n }\n\n /**\n * Add a new PATCH route\n *\n * @param pattern The pattern to match\n * @param callback The function to call on pattern match\n *\n */\n patch(pattern: string | RegExp, callback: Router.Callback): void {\n this._add('PATCH', pattern, callback);\n }\n\n /**\n * Add a new DELETE route\n *\n * @param pattern The pattern to match\n * @param callback The function to call on pattern match\n *\n */\n delete(pattern: string | RegExp, callback: Router.Callback): void {\n this._add('DELETE', pattern, callback);\n }\n\n /**\n * Route a request.\n *\n * @param req The request to route.\n */\n async route(req: Request): Promise {\n const url = new URL(req.url);\n const { method } = req;\n const { pathname } = url;\n\n for (const r of this._routes) {\n if (r.method !== method) {\n continue;\n }\n const match = pathname.match(r.pattern);\n if (!match) {\n continue;\n }\n const matches = match.slice(1);\n let body;\n if (r.method === 'PATCH' || r.method === 'PUT' || r.method === 'POST') {\n try {\n body = JSON.parse(await req.text());\n } catch {\n body = undefined;\n }\n }\n return r.callback.call(\n null,\n {\n pathname,\n body,\n query: Object.fromEntries(url.searchParams),\n },\n ...matches\n );\n }\n\n throw new Error('Cannot route ' + req.method + ' ' + req.url);\n }\n\n /**\n * Add a new route.\n *\n * @param method The method\n * @param pattern The pattern\n * @param callback The callback\n */\n private _add(\n method: Router.Method,\n pattern: string | RegExp,\n callback: Router.Callback\n ): void {\n if (typeof pattern === 'string') {\n pattern = new RegExp(pattern);\n }\n this._routes.push({\n method,\n pattern,\n callback,\n });\n }\n\n private _routes: Router.IRoute[] = [];\n}\n\n/**\n * A namespace for Router statics.\n */\nexport namespace Router {\n /**\n * The Callback type.\n */\n export type Callback = (req: IRequest, ...args: string[]) => Promise;\n\n /**\n * The Method type.\n */\n export type Method = 'GET' | 'PUT' | 'POST' | 'PATCH' | 'DELETE';\n\n /**\n * The interface for a parsed request\n */\n export interface IRequest {\n /**\n * The path for the url.\n */\n pathname: string;\n\n /**\n * The optional query parameters.\n */\n query?: ReadonlyJSONObject;\n\n /**\n * The optional body parameters.\n */\n body?: ReadonlyJSONObject;\n }\n\n /**\n * An interface for a route.\n */\n export interface IRoute {\n method: Method;\n pattern: string | RegExp;\n callback: Callback;\n }\n}\n","// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n\nimport { ServerConnection, ServiceManager } from '@jupyterlab/services';\n\nimport { Application, IPlugin } from '@lumino/application';\n\nimport { WebSocket } from 'mock-socket';\n\nimport { Router } from './router';\n\nexport type JupyterLiteServerPlugin = IPlugin;\n\n/**\n * Server is the main application class. It is instantiated once and shared.\n */\nexport class JupyterLiteServer extends Application {\n /**\n * Construct a new JupyterLite object.\n *\n * @param options The instantiation options for a JupyterLiteServer application.\n */\n constructor(options: Application.IOptions) {\n super(options);\n this._serviceManager = new ServiceManager({\n standby: 'never',\n serverSettings: {\n ...ServerConnection.makeSettings(),\n WebSocket,\n fetch: this.fetch.bind(this) ?? undefined,\n },\n });\n }\n\n /**\n * The name of the application.\n */\n readonly name = 'JupyterLite Server';\n\n /**\n * A namespace/prefix plugins may use to denote their provenance.\n */\n readonly namespace = this.name;\n\n /**\n * The version of the application.\n */\n readonly version = 'unknown';\n\n /**\n * Get the underlying `Router` instance.\n */\n get router(): Router {\n return this._router;\n }\n\n /**\n * Get the underlying lite service manager for this app.\n */\n get serviceManager(): ServiceManager {\n return this._serviceManager;\n }\n\n /**\n * Handle an incoming request from the client.\n *\n * @param req The incoming request\n * @param init The optional init request\n */\n async fetch(\n req: RequestInfo,\n init?: RequestInit | null | undefined\n ): Promise {\n if (!(req instanceof Request)) {\n throw Error('Request info is not a Request');\n }\n return this._router.route(req);\n }\n\n /**\n * Attach the application shell to the DOM.\n *\n * @param id - The id of the host node for the shell, or `''`.\n *\n * #### Notes\n * For this server application there is no shell to attach\n */\n protected attachShell(id: string): void {\n // no-op\n }\n\n /**\n * A method invoked on a window `'resize'` event.\n *\n * #### Notes\n * For this server application there is no shell to update\n */\n protected evtResize(event: Event): void {\n // no-op\n }\n\n /**\n * Register plugins from a plugin module.\n *\n * @param mod - The plugin module to register.\n */\n registerPluginModule(mod: JupyterLiteServer.IPluginModule): void {\n let data = mod.default;\n // Handle commonjs exports.\n if (!Object.prototype.hasOwnProperty.call(mod, '__esModule')) {\n data = mod as any;\n }\n if (!Array.isArray(data)) {\n data = [data];\n }\n data.forEach((item) => {\n try {\n this.registerPlugin(item);\n } catch (error) {\n console.error(error);\n }\n });\n }\n\n /**\n * Register the plugins from multiple plugin modules.\n *\n * @param mods - The plugin modules to register.\n */\n registerPluginModules(mods: JupyterLiteServer.IPluginModule[]): void {\n mods.forEach((mod) => {\n this.registerPluginModule(mod);\n });\n }\n\n private _router = new Router();\n private _serviceManager: ServiceManager;\n}\n\n/**\n * A namespace for Server statics.\n */\nexport namespace JupyterLiteServer {\n /**\n * The interface for a module that exports a plugin or plugins as\n * the default value.\n */\n export interface IPluginModule {\n /**\n * The default export.\n */\n default: IPlugin | IPlugin[];\n }\n}\n","export default __webpack_public_path__ + \"service-worker-f7de73d.js\";","import { Token } from '@lumino/coreutils';\n\nimport { ISignal } from '@lumino/signaling';\n\nimport SW_URL from '!!file-loader?name=[name]-[contenthash:7].[ext]&context=.!./service-worker';\n\n/**\n * The token for the ServiceWorker.\n */\nexport const IServiceWorkerManager = new Token(\n '@jupyterlite/server-extension:IServiceWorkerManager'\n);\n\n/**\n * The interface for the ServiceWorkerRegistration.\n */\nexport interface IServiceWorkerManager {\n /**\n * Signal fired when the registration changed.\n */\n readonly registrationChanged: ISignal<\n IServiceWorkerManager,\n ServiceWorkerRegistration | null\n >;\n\n /**\n * Whether the ServiceWorker is enabled or not.\n */\n readonly enabled: boolean;\n\n /**\n * A Promise that resolves when the ServiceWorker is registered, or rejects if it cannot\n */\n ready: Promise;\n}\n\nexport const WORKER_NAME = `${SW_URL}`.split('/').slice(-1)[0];\n","import { PromiseDelegate } from '@lumino/coreutils';\nimport { ISignal, Signal } from '@lumino/signaling';\n\nimport { PageConfig, URLExt } from '@jupyterlab/coreutils';\n\nimport { IServiceWorkerManager, WORKER_NAME } from './tokens';\n\nexport class ServiceWorkerManager implements IServiceWorkerManager {\n constructor() {\n void this.initialize().catch(console.warn);\n }\n\n /**\n * A signal emitted when the registration changes.\n */\n get registrationChanged(): ISignal<\n IServiceWorkerManager,\n ServiceWorkerRegistration | null\n > {\n return this._registrationChanged;\n }\n\n /**\n * Whether the ServiceWorker is enabled or not.\n */\n get enabled(): boolean {\n return this._registration !== null;\n }\n\n get ready(): Promise {\n return this._ready.promise;\n }\n\n private async initialize(): Promise {\n const { serviceWorker } = navigator;\n const workerUrl = URLExt.join(PageConfig.getBaseUrl(), WORKER_NAME);\n let registration: ServiceWorkerRegistration | null = null;\n\n if (!serviceWorker) {\n console.warn('ServiceWorkers not supported in this browser');\n } else if (serviceWorker.controller) {\n registration =\n (await serviceWorker.getRegistration(serviceWorker.controller.scriptURL)) ||\n null;\n console.info('JupyterLite ServiceWorker was already registered');\n }\n\n if (!registration && serviceWorker) {\n try {\n console.info('Registering new JupyterLite ServiceWorker', workerUrl);\n registration = await serviceWorker.register(workerUrl);\n console.info('JupyterLite ServiceWorker was sucessfully registered');\n } catch (err: any) {\n console.warn(err);\n console.warn(\n `JupyterLite ServiceWorker registration unexpectedly failed: ${err}`\n );\n }\n }\n\n this.setRegistration(registration);\n\n if (!registration) {\n this._ready.reject(void 0);\n } else {\n this._ready.resolve(void 0);\n }\n }\n\n private setRegistration(registration: ServiceWorkerRegistration | null) {\n this._registration = registration;\n this._registrationChanged.emit(this._registration);\n }\n\n private _registration: ServiceWorkerRegistration | null = null;\n private _registrationChanged = new Signal(\n this\n );\n private _ready = new PromiseDelegate();\n}\n"],"names":["Router","_routes","get","pattern","callback","this","_add","put","post","patch","delete","async","req","url","URL","method","pathname","r","match","matches","slice","body","JSON","parse","text","undefined","call","query","Object","fromEntries","searchParams","Error","RegExp","push","JupyterLiteServer","Application","constructor","options","super","name","namespace","version","_router","_serviceManager","ServiceManager","standby","serverSettings","ServerConnection","WebSocket","fetch","bind","router","serviceManager","init","Request","route","attachShell","id","evtResize","event","registerPluginModule","mod","data","default","prototype","hasOwnProperty","Array","isArray","forEach","item","registerPlugin","error","console","registerPluginModules","mods","IServiceWorkerManager","Token","WORKER_NAME","split","ServiceWorkerManager","_registration","_registrationChanged","Signal","_ready","PromiseDelegate","initialize","catch","warn","registrationChanged","enabled","ready","promise","serviceWorker","navigator","workerUrl","URLExt","PageConfig","registration","controller","getRegistration","scriptURL","info","register","err","setRegistration","resolve","reject","emit"],"sourceRoot":""} \ No newline at end of file diff --git a/_static/build/4466.64d23d1.js b/_static/build/4466.64d23d1.js new file mode 100644 index 0000000..5309f3c --- /dev/null +++ b/_static/build/4466.64d23d1.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[4466,1667],{51667:(n,e,t)=>{t.r(e),t.d(e,{default:()=>c});var s=t(67504),i=t(2584),a=t(4265),o=t(59674),l=t(55941),r=t(43892);var d=t(985),h=t(70942);class u{constructor(n){this._tabsChanged=new h.Signal(this),this._widgets=[],this._labShell=n,this._labShell.layoutModified.connect(this._emitTabsChanged,this)}get tabsChanged(){return this._tabsChanged}addWidget(n){n.title.changed.connect(this._emitTabsChanged,this),this._widgets.push(n)}_emitTabsChanged(){this._widgets.forEach((n=>{n.title.changed.disconnect(this._emitTabsChanged,this)})),this._widgets=[],this._tabsChanged.emit(void 0)}}const c={activate:function(n,e,t,s){const a=e.load("jupyterlab"),h=new i.RunningSessionManagers,c=new i.RunningSessions(h,e);return c.id="jp-running-sessions",c.title.caption=a.__("Running Terminals and Kernels"),c.title.icon=o.runningIcon,c.node.setAttribute("role","region"),c.node.setAttribute("aria-label",a.__("Running Sessions section")),t&&t.add(c,"running-sessions"),s&&function(n,e,t){const s=new u(t),i=e.load("jupyterlab");n.add({name:i.__("Open Tabs"),running:()=>(0,r.toArray)(t.widgets("main")).map((n=>(s.addWidget(n),new a(n)))),shutdownAll:()=>{(0,r.toArray)(t.widgets("main")).forEach((n=>{n.close()}))},refreshRunning:()=>{},runningChanged:s.tabsChanged,shutdownLabel:i.__("Close"),shutdownAllLabel:i.__("Close All"),shutdownAllConfirmationText:i.__("Are you sure you want to close all open tabs?")});class a{constructor(n){this._widget=n}open(){t.activateById(this._widget.id)}shutdown(){this._widget.close()}icon(){const n=this._widget.title.icon;return n instanceof o.LabIcon?n:o.fileIcon}label(){return this._widget.title.label}labelTitle(){let n;return n=this._widget instanceof d.DocumentWidget?this._widget.context.path:this._widget.title.label,n}}}(h,e,s),function(n,e,t){const s=e.load("jupyterlab"),i=t.serviceManager.sessions,a=t.serviceManager.kernelspecs;function d(n){return!(-1===(n.name||l.PathExt.basename(n.path)).indexOf(".")&&!n.name)}n.add({name:s.__("Kernels"),running:()=>(0,r.toArray)(i.running()).filter(d).map((n=>new h(n))),shutdownAll:()=>i.shutdownAll(),refreshRunning:()=>i.refreshRunning(),runningChanged:i.runningChanged,shutdownLabel:s.__("Shut Down"),shutdownAllLabel:s.__("Shut Down All"),shutdownAllConfirmationText:s.__("Are you sure you want to permanently shut down all running kernels?")});class h{constructor(n){this._model=n}open(){const{path:n,type:e}=this._model;"console"===e.toLowerCase()?t.commands.execute("console:open",{path:n}):t.commands.execute("docmanager:open",{path:n})}shutdown(){return i.shutdown(this._model.id)}icon(){const{name:n,path:e,type:t}=this._model;return-1!==(n||l.PathExt.basename(e)).indexOf(".ipynb")?o.notebookIcon:"console"===t.toLowerCase()?o.consoleIcon:o.fileIcon}label(){return this._model.name||l.PathExt.basename(this._model.path)}labelTitle(){const{kernel:n,path:e}=this._model;let t=null==n?void 0:n.name;if(t&&a.specs){const n=a.specs.kernelspecs[t];t=n?n.display_name:"unknown"}return s.__("Path: %1\nKernel: %2",e,t)}}}(h,e,n),n.shell.add(c,"left",{rank:200}),h},id:"@jupyterlab/running-extension:plugin",provides:i.IRunningSessionManagers,requires:[a.ITranslator],optional:[s.ILayoutRestorer,s.ILabShell],autoStart:!0}}}]); +//# sourceMappingURL=4466.64d23d1.js.map \ No newline at end of file diff --git a/_static/build/4466.64d23d1.js.map b/_static/build/4466.64d23d1.js.map new file mode 100644 index 0000000..a73bf33 --- /dev/null +++ b/_static/build/4466.64d23d1.js.map @@ -0,0 +1 @@ +{"version":3,"file":"4466.64d23d1.js","mappings":"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","sources":["webpack://_JUPYTERLAB.CORE_OUTPUT/../src/opentabs.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/index.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/kernels.ts"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/_static/build/4507.8b41ef4.js b/_static/build/4507.8b41ef4.js new file mode 100644 index 0000000..94a2e20 --- /dev/null +++ b/_static/build/4507.8b41ef4.js @@ -0,0 +1 @@ +(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[4507,8741],{88741:()=>{}}]); \ No newline at end of file diff --git a/_static/build/451.d9683ad.js b/_static/build/451.d9683ad.js new file mode 100644 index 0000000..a6be3b5 --- /dev/null +++ b/_static/build/451.d9683ad.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[451],{59916:(n,e,r)=>{r.d(e,{Z:()=>a});var c=r(34663),o=r.n(c),t=r(7638),s=r.n(t)()(o());s.push([n.id,"/*\n\n Name: Bespin\n Author: Mozilla / Jan T. Sott\n\n CodeMirror template by Jan T. Sott (https://github.com/idleberg/base16-codemirror)\n Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16)\n\n*/\n\n.cm-s-bespin.CodeMirror {background: #28211c; color: #9d9b97;}\n.cm-s-bespin div.CodeMirror-selected {background: #36312e !important;}\n.cm-s-bespin .CodeMirror-gutters {background: #28211c; border-right: 0px;}\n.cm-s-bespin .CodeMirror-linenumber {color: #666666;}\n.cm-s-bespin .CodeMirror-cursor {border-left: 1px solid #797977 !important;}\n\n.cm-s-bespin span.cm-comment {color: #937121;}\n.cm-s-bespin span.cm-atom {color: #9b859d;}\n.cm-s-bespin span.cm-number {color: #9b859d;}\n\n.cm-s-bespin span.cm-property, .cm-s-bespin span.cm-attribute {color: #54be0d;}\n.cm-s-bespin span.cm-keyword {color: #cf6a4c;}\n.cm-s-bespin span.cm-string {color: #f9ee98;}\n\n.cm-s-bespin span.cm-variable {color: #54be0d;}\n.cm-s-bespin span.cm-variable-2 {color: #5ea6ea;}\n.cm-s-bespin span.cm-def {color: #cf7d34;}\n.cm-s-bespin span.cm-error {background: #cf6a4c; color: #797977;}\n.cm-s-bespin span.cm-bracket {color: #9d9b97;}\n.cm-s-bespin span.cm-tag {color: #cf6a4c;}\n.cm-s-bespin span.cm-link {color: #9b859d;}\n\n.cm-s-bespin .CodeMirror-matchingbracket { text-decoration: underline; color: white !important;}\n.cm-s-bespin .CodeMirror-activeline-background { background: #404040; }\n","",{version:3,sources:["webpack://./../node_modules/codemirror/theme/bespin.css"],names:[],mappings:"AAAA;;;;;;;;CAQC;;AAED,yBAAyB,mBAAmB,EAAE,cAAc,CAAC;AAC7D,sCAAsC,8BAA8B,CAAC;AACrE,kCAAkC,mBAAmB,EAAE,iBAAiB,CAAC;AACzE,qCAAqC,cAAc,CAAC;AACpD,iCAAiC,yCAAyC,CAAC;;AAE3E,8BAA8B,cAAc,CAAC;AAC7C,2BAA2B,cAAc,CAAC;AAC1C,6BAA6B,cAAc,CAAC;;AAE5C,+DAA+D,cAAc,CAAC;AAC9E,8BAA8B,cAAc,CAAC;AAC7C,6BAA6B,cAAc,CAAC;;AAE5C,+BAA+B,cAAc,CAAC;AAC9C,iCAAiC,cAAc,CAAC;AAChD,0BAA0B,cAAc,CAAC;AACzC,4BAA4B,mBAAmB,EAAE,cAAc,CAAC;AAChE,8BAA8B,cAAc,CAAC;AAC7C,0BAA0B,cAAc,CAAC;AACzC,2BAA2B,cAAc,CAAC;;AAE1C,2CAA2C,0BAA0B,EAAE,uBAAuB,CAAC;AAC/F,iDAAiD,mBAAmB,EAAE",sourcesContent:["/*\n\n Name: Bespin\n Author: Mozilla / Jan T. Sott\n\n CodeMirror template by Jan T. Sott (https://github.com/idleberg/base16-codemirror)\n Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16)\n\n*/\n\n.cm-s-bespin.CodeMirror {background: #28211c; color: #9d9b97;}\n.cm-s-bespin div.CodeMirror-selected {background: #36312e !important;}\n.cm-s-bespin .CodeMirror-gutters {background: #28211c; border-right: 0px;}\n.cm-s-bespin .CodeMirror-linenumber {color: #666666;}\n.cm-s-bespin .CodeMirror-cursor {border-left: 1px solid #797977 !important;}\n\n.cm-s-bespin span.cm-comment {color: #937121;}\n.cm-s-bespin span.cm-atom {color: #9b859d;}\n.cm-s-bespin span.cm-number {color: #9b859d;}\n\n.cm-s-bespin span.cm-property, .cm-s-bespin span.cm-attribute {color: #54be0d;}\n.cm-s-bespin span.cm-keyword {color: #cf6a4c;}\n.cm-s-bespin span.cm-string {color: #f9ee98;}\n\n.cm-s-bespin span.cm-variable {color: #54be0d;}\n.cm-s-bespin span.cm-variable-2 {color: #5ea6ea;}\n.cm-s-bespin span.cm-def {color: #cf7d34;}\n.cm-s-bespin span.cm-error {background: #cf6a4c; color: #797977;}\n.cm-s-bespin span.cm-bracket {color: #9d9b97;}\n.cm-s-bespin span.cm-tag {color: #cf6a4c;}\n.cm-s-bespin span.cm-link {color: #9b859d;}\n\n.cm-s-bespin .CodeMirror-matchingbracket { text-decoration: underline; color: white !important;}\n.cm-s-bespin .CodeMirror-activeline-background { background: #404040; }\n"],sourceRoot:""}]);const a=s},7638:n=>{n.exports=function(n){var e=[];return e.toString=function(){return this.map((function(e){var r="",c=void 0!==e[5];return e[4]&&(r+="@supports (".concat(e[4],") {")),e[2]&&(r+="@media ".concat(e[2]," {")),c&&(r+="@layer".concat(e[5].length>0?" ".concat(e[5]):""," {")),r+=n(e),c&&(r+="}"),e[2]&&(r+="}"),e[4]&&(r+="}"),r})).join("")},e.i=function(n,r,c,o,t){"string"==typeof n&&(n=[[null,n,void 0]]);var s={};if(c)for(var a=0;a0?" ".concat(p[5]):""," {").concat(p[1],"}")),p[5]=t),r&&(p[2]?(p[1]="@media ".concat(p[2]," {").concat(p[1],"}"),p[2]=r):p[2]=r),o&&(p[4]?(p[1]="@supports (".concat(p[4],") {").concat(p[1],"}"),p[4]=o):p[4]="".concat(o)),e.push(p))}},e}},34663:n=>{n.exports=function(n){var e=n[1],r=n[3];if(!r)return e;if("function"==typeof btoa){var c=btoa(unescape(encodeURIComponent(JSON.stringify(r)))),o="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(c),t="/*# ".concat(o," */"),s=r.sources.map((function(n){return"/*# sourceURL=".concat(r.sourceRoot||"").concat(n," */")}));return[e].concat(s).concat([t]).join("\n")}return[e].join("\n")}},60451:(n,e,r)=>{r.r(e),r.d(e,{default:()=>f});var c=r(1892),o=r.n(c),t=r(95760),s=r.n(t),a=r(38311),i=r.n(a),A=r(58192),p=r.n(A),m=r(38060),l=r.n(m),d=r(54865),u=r.n(d),b=r(59916),C={};C.styleTagTransform=u(),C.setAttributes=p(),C.insert=i().bind(null,"head"),C.domAPI=s(),C.insertStyleElement=l(),o()(b.Z,C);const f=b.Z&&b.Z.locals?b.Z.locals:void 0},1892:n=>{var e=[];function r(n){for(var r=-1,c=0;c{var e={};n.exports=function(n,r){var c=function(n){if(void 0===e[n]){var r=document.querySelector(n);if(window.HTMLIFrameElement&&r instanceof window.HTMLIFrameElement)try{r=r.contentDocument.head}catch(n){r=null}e[n]=r}return e[n]}(n);if(!c)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");c.appendChild(r)}},38060:n=>{n.exports=function(n){var e=document.createElement("style");return n.setAttributes(e,n.attributes),n.insert(e,n.options),e}},58192:(n,e,r)=>{n.exports=function(n){var e=r.nc;e&&n.setAttribute("nonce",e)}},95760:n=>{n.exports=function(n){var e=n.insertStyleElement(n);return{update:function(r){!function(n,e,r){var c="";r.supports&&(c+="@supports (".concat(r.supports,") {")),r.media&&(c+="@media ".concat(r.media," {"));var o=void 0!==r.layer;o&&(c+="@layer".concat(r.layer.length>0?" ".concat(r.layer):""," {")),c+=r.css,o&&(c+="}"),r.media&&(c+="}"),r.supports&&(c+="}");var t=r.sourceMap;t&&"undefined"!=typeof btoa&&(c+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(t))))," */")),e.styleTagTransform(c,n,e.options)}(e,n,r)},remove:function(){!function(n){if(null===n.parentNode)return!1;n.parentNode.removeChild(n)}(e)}}}},54865:n=>{n.exports=function(n,e){if(e.styleSheet)e.styleSheet.cssText=n;else{for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(n))}}}}]); +//# sourceMappingURL=451.d9683ad.js.map \ No newline at end of file diff --git a/_static/build/451.d9683ad.js.map b/_static/build/451.d9683ad.js.map new file mode 100644 index 0000000..d2831ec --- /dev/null +++ b/_static/build/451.d9683ad.js.map @@ -0,0 +1 @@ +{"version":3,"file":"451.d9683ad.js","mappings":"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","sources":["webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/theme/bespin.css","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/css-loader/dist/runtime/api.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/css-loader/dist/runtime/sourceMaps.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/theme/bespin.css?d499","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/insertBySelector.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/insertStyleElement.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/styleDomAPI.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/styleTagTransform.js"],"sourcesContent":["// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"/*\\n\\n Name: Bespin\\n Author: Mozilla / Jan T. Sott\\n\\n CodeMirror template by Jan T. Sott (https://github.com/idleberg/base16-codemirror)\\n Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16)\\n\\n*/\\n\\n.cm-s-bespin.CodeMirror {background: #28211c; color: #9d9b97;}\\n.cm-s-bespin div.CodeMirror-selected {background: #36312e !important;}\\n.cm-s-bespin .CodeMirror-gutters {background: #28211c; border-right: 0px;}\\n.cm-s-bespin .CodeMirror-linenumber {color: #666666;}\\n.cm-s-bespin .CodeMirror-cursor {border-left: 1px solid #797977 !important;}\\n\\n.cm-s-bespin span.cm-comment {color: #937121;}\\n.cm-s-bespin span.cm-atom {color: #9b859d;}\\n.cm-s-bespin span.cm-number {color: #9b859d;}\\n\\n.cm-s-bespin span.cm-property, .cm-s-bespin span.cm-attribute {color: #54be0d;}\\n.cm-s-bespin span.cm-keyword {color: #cf6a4c;}\\n.cm-s-bespin span.cm-string {color: #f9ee98;}\\n\\n.cm-s-bespin span.cm-variable {color: #54be0d;}\\n.cm-s-bespin span.cm-variable-2 {color: #5ea6ea;}\\n.cm-s-bespin span.cm-def {color: #cf7d34;}\\n.cm-s-bespin span.cm-error {background: #cf6a4c; color: #797977;}\\n.cm-s-bespin span.cm-bracket {color: #9d9b97;}\\n.cm-s-bespin span.cm-tag {color: #cf6a4c;}\\n.cm-s-bespin span.cm-link {color: #9b859d;}\\n\\n.cm-s-bespin .CodeMirror-matchingbracket { text-decoration: underline; color: white !important;}\\n.cm-s-bespin .CodeMirror-activeline-background { background: #404040; }\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./../node_modules/codemirror/theme/bespin.css\"],\"names\":[],\"mappings\":\"AAAA;;;;;;;;CAQC;;AAED,yBAAyB,mBAAmB,EAAE,cAAc,CAAC;AAC7D,sCAAsC,8BAA8B,CAAC;AACrE,kCAAkC,mBAAmB,EAAE,iBAAiB,CAAC;AACzE,qCAAqC,cAAc,CAAC;AACpD,iCAAiC,yCAAyC,CAAC;;AAE3E,8BAA8B,cAAc,CAAC;AAC7C,2BAA2B,cAAc,CAAC;AAC1C,6BAA6B,cAAc,CAAC;;AAE5C,+DAA+D,cAAc,CAAC;AAC9E,8BAA8B,cAAc,CAAC;AAC7C,6BAA6B,cAAc,CAAC;;AAE5C,+BAA+B,cAAc,CAAC;AAC9C,iCAAiC,cAAc,CAAC;AAChD,0BAA0B,cAAc,CAAC;AACzC,4BAA4B,mBAAmB,EAAE,cAAc,CAAC;AAChE,8BAA8B,cAAc,CAAC;AAC7C,0BAA0B,cAAc,CAAC;AACzC,2BAA2B,cAAc,CAAC;;AAE1C,2CAA2C,0BAA0B,EAAE,uBAAuB,CAAC;AAC/F,iDAAiD,mBAAmB,EAAE\",\"sourcesContent\":[\"/*\\n\\n Name: Bespin\\n Author: Mozilla / Jan T. Sott\\n\\n CodeMirror template by Jan T. Sott (https://github.com/idleberg/base16-codemirror)\\n Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16)\\n\\n*/\\n\\n.cm-s-bespin.CodeMirror {background: #28211c; color: #9d9b97;}\\n.cm-s-bespin div.CodeMirror-selected {background: #36312e !important;}\\n.cm-s-bespin .CodeMirror-gutters {background: #28211c; border-right: 0px;}\\n.cm-s-bespin .CodeMirror-linenumber {color: #666666;}\\n.cm-s-bespin .CodeMirror-cursor {border-left: 1px solid #797977 !important;}\\n\\n.cm-s-bespin span.cm-comment {color: #937121;}\\n.cm-s-bespin span.cm-atom {color: #9b859d;}\\n.cm-s-bespin span.cm-number {color: #9b859d;}\\n\\n.cm-s-bespin span.cm-property, .cm-s-bespin span.cm-attribute {color: #54be0d;}\\n.cm-s-bespin span.cm-keyword {color: #cf6a4c;}\\n.cm-s-bespin span.cm-string {color: #f9ee98;}\\n\\n.cm-s-bespin span.cm-variable {color: #54be0d;}\\n.cm-s-bespin span.cm-variable-2 {color: #5ea6ea;}\\n.cm-s-bespin span.cm-def {color: #cf7d34;}\\n.cm-s-bespin span.cm-error {background: #cf6a4c; color: #797977;}\\n.cm-s-bespin span.cm-bracket {color: #9d9b97;}\\n.cm-s-bespin span.cm-tag {color: #cf6a4c;}\\n.cm-s-bespin span.cm-link {color: #9b859d;}\\n\\n.cm-s-bespin .CodeMirror-matchingbracket { text-decoration: underline; color: white !important;}\\n.cm-s-bespin .CodeMirror-activeline-background { background: #404040; }\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\nmodule.exports = function (cssWithMappingToString) {\n var list = [];\n\n // return the list of modules as css string\n list.toString = function toString() {\n return this.map(function (item) {\n var content = \"\";\n var needLayer = typeof item[5] !== \"undefined\";\n if (item[4]) {\n content += \"@supports (\".concat(item[4], \") {\");\n }\n if (item[2]) {\n content += \"@media \".concat(item[2], \" {\");\n }\n if (needLayer) {\n content += \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\");\n }\n content += cssWithMappingToString(item);\n if (needLayer) {\n content += \"}\";\n }\n if (item[2]) {\n content += \"}\";\n }\n if (item[4]) {\n content += \"}\";\n }\n return content;\n }).join(\"\");\n };\n\n // import a list of modules into the list\n list.i = function i(modules, media, dedupe, supports, layer) {\n if (typeof modules === \"string\") {\n modules = [[null, modules, undefined]];\n }\n var alreadyImportedModules = {};\n if (dedupe) {\n for (var k = 0; k < this.length; k++) {\n var id = this[k][0];\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n for (var _k = 0; _k < modules.length; _k++) {\n var item = [].concat(modules[_k]);\n if (dedupe && alreadyImportedModules[item[0]]) {\n continue;\n }\n if (typeof layer !== \"undefined\") {\n if (typeof item[5] === \"undefined\") {\n item[5] = layer;\n } else {\n item[1] = \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\").concat(item[1], \"}\");\n item[5] = layer;\n }\n }\n if (media) {\n if (!item[2]) {\n item[2] = media;\n } else {\n item[1] = \"@media \".concat(item[2], \" {\").concat(item[1], \"}\");\n item[2] = media;\n }\n }\n if (supports) {\n if (!item[4]) {\n item[4] = \"\".concat(supports);\n } else {\n item[1] = \"@supports (\".concat(item[4], \") {\").concat(item[1], \"}\");\n item[4] = supports;\n }\n }\n list.push(item);\n }\n };\n return list;\n};","\"use strict\";\n\nmodule.exports = function (item) {\n var content = item[1];\n var cssMapping = item[3];\n if (!cssMapping) {\n return content;\n }\n if (typeof btoa === \"function\") {\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(cssMapping))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n var sourceMapping = \"/*# \".concat(data, \" */\");\n var sourceURLs = cssMapping.sources.map(function (source) {\n return \"/*# sourceURL=\".concat(cssMapping.sourceRoot || \"\").concat(source, \" */\");\n });\n return [content].concat(sourceURLs).concat([sourceMapping]).join(\"\\n\");\n }\n return [content].join(\"\\n\");\n};","\n import API from \"!../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../css-loader/dist/cjs.js!./bespin.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../css-loader/dist/cjs.js!./bespin.css\";\n export default content && content.locals ? content.locals : undefined;\n","\"use strict\";\n\nvar stylesInDOM = [];\n\nfunction getIndexByIdentifier(identifier) {\n var result = -1;\n\n for (var i = 0; i < stylesInDOM.length; i++) {\n if (stylesInDOM[i].identifier === identifier) {\n result = i;\n break;\n }\n }\n\n return result;\n}\n\nfunction modulesToDom(list, options) {\n var idCountMap = {};\n var identifiers = [];\n\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var count = idCountMap[id] || 0;\n var identifier = \"\".concat(id, \" \").concat(count);\n idCountMap[id] = count + 1;\n var indexByIdentifier = getIndexByIdentifier(identifier);\n var obj = {\n css: item[1],\n media: item[2],\n sourceMap: item[3],\n supports: item[4],\n layer: item[5]\n };\n\n if (indexByIdentifier !== -1) {\n stylesInDOM[indexByIdentifier].references++;\n stylesInDOM[indexByIdentifier].updater(obj);\n } else {\n var updater = addElementStyle(obj, options);\n options.byIndex = i;\n stylesInDOM.splice(i, 0, {\n identifier: identifier,\n updater: updater,\n references: 1\n });\n }\n\n identifiers.push(identifier);\n }\n\n return identifiers;\n}\n\nfunction addElementStyle(obj, options) {\n var api = options.domAPI(options);\n api.update(obj);\n\n var updater = function updater(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap && newObj.supports === obj.supports && newObj.layer === obj.layer) {\n return;\n }\n\n api.update(obj = newObj);\n } else {\n api.remove();\n }\n };\n\n return updater;\n}\n\nmodule.exports = function (list, options) {\n options = options || {};\n list = list || [];\n var lastIdentifiers = modulesToDom(list, options);\n return function update(newList) {\n newList = newList || [];\n\n for (var i = 0; i < lastIdentifiers.length; i++) {\n var identifier = lastIdentifiers[i];\n var index = getIndexByIdentifier(identifier);\n stylesInDOM[index].references--;\n }\n\n var newLastIdentifiers = modulesToDom(newList, options);\n\n for (var _i = 0; _i < lastIdentifiers.length; _i++) {\n var _identifier = lastIdentifiers[_i];\n\n var _index = getIndexByIdentifier(_identifier);\n\n if (stylesInDOM[_index].references === 0) {\n stylesInDOM[_index].updater();\n\n stylesInDOM.splice(_index, 1);\n }\n }\n\n lastIdentifiers = newLastIdentifiers;\n };\n};","\"use strict\";\n\nvar memo = {};\n/* istanbul ignore next */\n\nfunction getTarget(target) {\n if (typeof memo[target] === \"undefined\") {\n var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself\n\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n\n memo[target] = styleTarget;\n }\n\n return memo[target];\n}\n/* istanbul ignore next */\n\n\nfunction insertBySelector(insert, style) {\n var target = getTarget(insert);\n\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n\n target.appendChild(style);\n}\n\nmodule.exports = insertBySelector;","\"use strict\";\n\n/* istanbul ignore next */\nfunction insertStyleElement(options) {\n var element = document.createElement(\"style\");\n options.setAttributes(element, options.attributes);\n options.insert(element, options.options);\n return element;\n}\n\nmodule.exports = insertStyleElement;","\"use strict\";\n\n/* istanbul ignore next */\nfunction setAttributesWithoutAttributes(styleElement) {\n var nonce = typeof __webpack_nonce__ !== \"undefined\" ? __webpack_nonce__ : null;\n\n if (nonce) {\n styleElement.setAttribute(\"nonce\", nonce);\n }\n}\n\nmodule.exports = setAttributesWithoutAttributes;","\"use strict\";\n\n/* istanbul ignore next */\nfunction apply(styleElement, options, obj) {\n var css = \"\";\n\n if (obj.supports) {\n css += \"@supports (\".concat(obj.supports, \") {\");\n }\n\n if (obj.media) {\n css += \"@media \".concat(obj.media, \" {\");\n }\n\n var needLayer = typeof obj.layer !== \"undefined\";\n\n if (needLayer) {\n css += \"@layer\".concat(obj.layer.length > 0 ? \" \".concat(obj.layer) : \"\", \" {\");\n }\n\n css += obj.css;\n\n if (needLayer) {\n css += \"}\";\n }\n\n if (obj.media) {\n css += \"}\";\n }\n\n if (obj.supports) {\n css += \"}\";\n }\n\n var sourceMap = obj.sourceMap;\n\n if (sourceMap && typeof btoa !== \"undefined\") {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n } // For old IE\n\n /* istanbul ignore if */\n\n\n options.styleTagTransform(css, styleElement, options.options);\n}\n\nfunction removeStyleElement(styleElement) {\n // istanbul ignore if\n if (styleElement.parentNode === null) {\n return false;\n }\n\n styleElement.parentNode.removeChild(styleElement);\n}\n/* istanbul ignore next */\n\n\nfunction domAPI(options) {\n var styleElement = options.insertStyleElement(options);\n return {\n update: function update(obj) {\n apply(styleElement, options, obj);\n },\n remove: function remove() {\n removeStyleElement(styleElement);\n }\n };\n}\n\nmodule.exports = domAPI;","\"use strict\";\n\n/* istanbul ignore next */\nfunction styleTagTransform(css, styleElement) {\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = css;\n } else {\n while (styleElement.firstChild) {\n styleElement.removeChild(styleElement.firstChild);\n }\n\n styleElement.appendChild(document.createTextNode(css));\n }\n}\n\nmodule.exports = styleTagTransform;"],"names":["___CSS_LOADER_EXPORT___","push","module","id","exports","cssWithMappingToString","list","toString","this","map","item","content","needLayer","concat","length","join","i","modules","media","dedupe","supports","layer","undefined","alreadyImportedModules","k","_k","cssMapping","btoa","base64","unescape","encodeURIComponent","JSON","stringify","data","sourceMapping","sourceURLs","sources","source","sourceRoot","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","stylesInDOM","getIndexByIdentifier","identifier","result","modulesToDom","idCountMap","identifiers","base","count","indexByIdentifier","obj","css","sourceMap","references","updater","addElementStyle","byIndex","splice","api","update","newObj","remove","lastIdentifiers","newList","index","newLastIdentifiers","_i","_index","memo","style","target","styleTarget","document","querySelector","window","HTMLIFrameElement","contentDocument","head","e","getTarget","Error","appendChild","element","createElement","attributes","styleElement","nonce","setAttribute","apply","parentNode","removeChild","removeStyleElement","styleSheet","cssText","firstChild","createTextNode"],"sourceRoot":""} \ No newline at end of file diff --git a/_static/build/4535.34b060a.js b/_static/build/4535.34b060a.js new file mode 100644 index 0000000..6d7eedf --- /dev/null +++ b/_static/build/4535.34b060a.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[4535],{77608:(r,t,e)=>{e.d(t,{$m:()=>a,Dp:()=>o,Z$:()=>n,kJ:()=>c,s7:()=>s});const n=r=>r[r.length-1],s=(r,t)=>{for(let e=0;e{return r.length===t.length&&(e=(r,e)=>r===t[e],r.every(e));var e},c=Array.isArray},12904:(r,t,e)=>{e.d(t,{Hi:()=>c,PP:()=>o,UV:()=>a,gB:()=>u});var n=e(77608),s=e(41042);const o=(r,t,e=0)=>{try{for(;er===t||null!=r&&null!=t&&r.constructor===t.constructor&&(r instanceof Array&&n.$m(r,t)||"object"==typeof r&&s.$m(r,t)),c=(r,t)=>{if(null==r||null==t)return((r,t)=>r===t)(r,t);if(r.constructor!==t.constructor)return!1;if(r===t)return!0;switch(r.constructor){case ArrayBuffer:r=new Uint8Array(r),t=new Uint8Array(t);case Uint8Array:if(r.byteLength!==t.byteLength)return!1;for(let e=0;et.includes(r)},31234:(r,t,e)=>{e.d(t,{JG:()=>s,UI:()=>a,Ue:()=>n,Yj:()=>c,Yu:()=>o});const n=()=>new Map,s=r=>{const t=n();return r.forEach(((r,e)=>{t.set(e,r)})),t},o=(r,t,e)=>{let n=r.get(t);return void 0===n&&r.set(t,n=e()),n},a=(r,t)=>{const e=[];for(const[n,s]of r)e.push(t(s,n));return e},c=(r,t)=>{for(const[e,n]of r)if(t(n,e))return!0;return!1}},41865:(r,t,e)=>{e.d(t,{Fp:()=>c,GR:()=>i,GW:()=>n,IH:()=>o,VV:()=>a,Wn:()=>s,sQ:()=>u});const n=Math.floor,s=(Math.ceil,Math.abs),o=(Math.imul,Math.round,Math.log10,Math.log2,Math.log,Math.sqrt,(r,t)=>r+t),a=(r,t)=>rr>t?r:t,u=(Number.isNaN,Math.pow),i=(Math.sign,r=>0!==r?r<0:1/r<0)},41042:(r,t,e)=>{e.d(t,{$m:()=>c,UI:()=>s,kE:()=>o,l$:()=>a}),Object.assign;const n=Object.keys,s=(r,t)=>{const e=[];for(const n in r)e.push(t(r[n],n));return e},o=r=>n(r).length,a=(r,t)=>Object.prototype.hasOwnProperty.call(r,t),c=(r,t)=>r===t||o(r)===o(t)&&((r,t)=>{for(const e in r)if(!t(r[e],e))return!1;return!0})(r,((r,e)=>(void 0!==r||a(t,e))&&t[e]===r))},32549:(r,t,e)=>{e.d(t,{y:()=>a});var n=e(31234),s=e(64064),o=e(77608);class a{constructor(){this._observers=n.Ue()}on(r,t){n.Yu(this._observers,r,s.Ue).add(t)}once(r,t){const e=(...n)=>{this.off(r,e),t(...n)};this.on(r,e)}off(r,t){const e=this._observers.get(r);void 0!==e&&(e.delete(t),0===e.size&&this._observers.delete(r))}emit(r,t){return o.Dp((this._observers.get(r)||n.Ue()).values()).forEach((r=>r(...t)))}destroy(){this._observers=n.Ue()}}},64064:(r,t,e)=>{e.d(t,{Ue:()=>n});const n=()=>new Set}}]); +//# sourceMappingURL=4535.34b060a.js.map \ No newline at end of file diff --git a/_static/build/4535.34b060a.js.map b/_static/build/4535.34b060a.js.map new file mode 100644 index 0000000..1f7713c --- /dev/null +++ b/_static/build/4535.34b060a.js.map @@ -0,0 +1 @@ +{"version":3,"file":"4535.34b060a.js","mappings":"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","sources":["webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/lib0/array.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/lib0/function.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/lib0/map.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/lib0/math.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/lib0/object.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/lib0/observable.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/lib0/set.js"],"sourcesContent":["/**\n * Utility module to work with Arrays.\n *\n * @module array\n */\n\n/**\n * Return the last element of an array. The element must exist\n *\n * @template L\n * @param {Array} arr\n * @return {L}\n */\nexport const last = arr => arr[arr.length - 1]\n\n/**\n * @template C\n * @return {Array}\n */\nexport const create = () => /** @type {Array} */ ([])\n\n/**\n * @template D\n * @param {Array} a\n * @return {Array}\n */\nexport const copy = a => /** @type {Array} */ (a.slice())\n\n/**\n * Append elements from src to dest\n *\n * @template M\n * @param {Array} dest\n * @param {Array} src\n */\nexport const appendTo = (dest, src) => {\n for (let i = 0; i < src.length; i++) {\n dest.push(src[i])\n }\n}\n\n/**\n * Transforms something array-like to an actual Array.\n *\n * @function\n * @template T\n * @param {ArrayLike|Iterable} arraylike\n * @return {T}\n */\nexport const from = Array.from\n\n/**\n * True iff condition holds on every element in the Array.\n *\n * @function\n * @template ITEM\n *\n * @param {Array} arr\n * @param {function(ITEM, number, Array):boolean} f\n * @return {boolean}\n */\nexport const every = (arr, f) => arr.every(f)\n\n/**\n * True iff condition holds on some element in the Array.\n *\n * @function\n * @template S\n * @param {Array} arr\n * @param {function(S, number, Array):boolean} f\n * @return {boolean}\n */\nexport const some = (arr, f) => arr.some(f)\n\n/**\n * @template ELEM\n *\n * @param {Array} a\n * @param {Array} b\n * @return {boolean}\n */\nexport const equalFlat = (a, b) => a.length === b.length && every(a, (item, index) => item === b[index])\n\n/**\n * @template ELEM\n * @param {Array>} arr\n * @return {Array}\n */\nexport const flatten = arr => arr.reduce((acc, val) => acc.concat(val), [])\n\nexport const isArray = Array.isArray\n","/**\n * Common functions and function call helpers.\n *\n * @module function\n */\n\nimport * as array from './array.js'\nimport * as object from './object.js'\n\n/**\n * Calls all functions in `fs` with args. Only throws after all functions were called.\n *\n * @param {Array} fs\n * @param {Array} args\n */\nexport const callAll = (fs, args, i = 0) => {\n try {\n for (; i < fs.length; i++) {\n fs[i](...args)\n }\n } finally {\n if (i < fs.length) {\n callAll(fs, args, i + 1)\n }\n }\n}\n\nexport const nop = () => {}\n\n/**\n * @template T\n * @param {function():T} f\n * @return {T}\n */\nexport const apply = f => f()\n\n/**\n * @template A\n *\n * @param {A} a\n * @return {A}\n */\nexport const id = a => a\n\n/**\n * @template T\n *\n * @param {T} a\n * @param {T} b\n * @return {boolean}\n */\nexport const equalityStrict = (a, b) => a === b\n\n/**\n * @template T\n *\n * @param {Array|object} a\n * @param {Array|object} b\n * @return {boolean}\n */\nexport const equalityFlat = (a, b) => a === b || (a != null && b != null && a.constructor === b.constructor && ((a instanceof Array && array.equalFlat(a, /** @type {Array} */ (b))) || (typeof a === 'object' && object.equalFlat(a, b))))\n\n/**\n * @param {any} a\n * @param {any} b\n * @return {boolean}\n */\nexport const equalityDeep = (a, b) => {\n if (a == null || b == null) {\n return equalityStrict(a, b)\n }\n if (a.constructor !== b.constructor) {\n return false\n }\n if (a === b) {\n return true\n }\n switch (a.constructor) {\n case ArrayBuffer:\n a = new Uint8Array(a)\n b = new Uint8Array(b)\n // eslint-disable-next-line no-fallthrough\n case Uint8Array: {\n if (a.byteLength !== b.byteLength) {\n return false\n }\n for (let i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) {\n return false\n }\n }\n break\n }\n case Set: {\n if (a.size !== b.size) {\n return false\n }\n for (const value of a) {\n if (!b.has(value)) {\n return false\n }\n }\n break\n }\n case Map: {\n if (a.size !== b.size) {\n return false\n }\n for (const key of a.keys()) {\n if (!b.has(key) || !equalityDeep(a.get(key), b.get(key))) {\n return false\n }\n }\n break\n }\n case Object:\n if (object.length(a) !== object.length(b)) {\n return false\n }\n for (const key in a) {\n if (!object.hasProperty(a, key) || !equalityDeep(a[key], b[key])) {\n return false\n }\n }\n break\n case Array:\n if (a.length !== b.length) {\n return false\n }\n for (let i = 0; i < a.length; i++) {\n if (!equalityDeep(a[i], b[i])) {\n return false\n }\n }\n break\n default:\n return false\n }\n return true\n}\n\n/**\n * @template V\n * @template {V} OPTS\n *\n * @param {V} value\n * @param {Array} options\n */\n// @ts-ignore\nexport const isOneOf = (value, options) => options.includes(value)\n","/**\n * Utility module to work with key-value stores.\n *\n * @module map\n */\n\n/**\n * Creates a new Map instance.\n *\n * @function\n * @return {Map}\n *\n * @function\n */\nexport const create = () => new Map()\n\n/**\n * Copy a Map object into a fresh Map object.\n *\n * @function\n * @template X,Y\n * @param {Map} m\n * @return {Map}\n */\nexport const copy = m => {\n const r = create()\n m.forEach((v, k) => { r.set(k, v) })\n return r\n}\n\n/**\n * Get map property. Create T if property is undefined and set T on map.\n *\n * ```js\n * const listeners = map.setIfUndefined(events, 'eventName', set.create)\n * listeners.add(listener)\n * ```\n *\n * @function\n * @template T,K\n * @param {Map} map\n * @param {K} key\n * @param {function():T} createT\n * @return {T}\n */\nexport const setIfUndefined = (map, key, createT) => {\n let set = map.get(key)\n if (set === undefined) {\n map.set(key, set = createT())\n }\n return set\n}\n\n/**\n * Creates an Array and populates it with the content of all key-value pairs using the `f(value, key)` function.\n *\n * @function\n * @template K\n * @template V\n * @template R\n * @param {Map} m\n * @param {function(V,K):R} f\n * @return {Array}\n */\nexport const map = (m, f) => {\n const res = []\n for (const [key, value] of m) {\n res.push(f(value, key))\n }\n return res\n}\n\n/**\n * Tests whether any key-value pairs pass the test implemented by `f(value, key)`.\n *\n * @todo should rename to some - similarly to Array.some\n *\n * @function\n * @template K\n * @template V\n * @param {Map} m\n * @param {function(V,K):boolean} f\n * @return {boolean}\n */\nexport const any = (m, f) => {\n for (const [key, value] of m) {\n if (f(value, key)) {\n return true\n }\n }\n return false\n}\n\n/**\n * Tests whether all key-value pairs pass the test implemented by `f(value, key)`.\n *\n * @function\n * @template K\n * @template V\n * @param {Map} m\n * @param {function(V,K):boolean} f\n * @return {boolean}\n */\nexport const all = (m, f) => {\n for (const [key, value] of m) {\n if (!f(value, key)) {\n return false\n }\n }\n return true\n}\n","/**\n * Common Math expressions.\n *\n * @module math\n */\n\nexport const floor = Math.floor\nexport const ceil = Math.ceil\nexport const abs = Math.abs\nexport const imul = Math.imul\nexport const round = Math.round\nexport const log10 = Math.log10\nexport const log2 = Math.log2\nexport const log = Math.log\nexport const sqrt = Math.sqrt\n\n/**\n * @function\n * @param {number} a\n * @param {number} b\n * @return {number} The sum of a and b\n */\nexport const add = (a, b) => a + b\n\n/**\n * @function\n * @param {number} a\n * @param {number} b\n * @return {number} The smaller element of a and b\n */\nexport const min = (a, b) => a < b ? a : b\n\n/**\n * @function\n * @param {number} a\n * @param {number} b\n * @return {number} The bigger element of a and b\n */\nexport const max = (a, b) => a > b ? a : b\n\nexport const isNaN = Number.isNaN\n\nexport const pow = Math.pow\n/**\n * Base 10 exponential function. Returns the value of 10 raised to the power of pow.\n *\n * @param {number} exp\n * @return {number}\n */\nexport const exp10 = exp => Math.pow(10, exp)\n\nexport const sign = Math.sign\n\n/**\n * @param {number} n\n * @return {boolean} Wether n is negative. This function also differentiates between -0 and +0\n */\nexport const isNegativeZero = n => n !== 0 ? n < 0 : 1 / n < 0\n","/**\n * Utility functions for working with EcmaScript objects.\n *\n * @module object\n */\n\n/**\n * @return {Object} obj\n */\nexport const create = () => Object.create(null)\n\n/**\n * Object.assign\n */\nexport const assign = Object.assign\n\n/**\n * @param {Object} obj\n */\nexport const keys = Object.keys\n\n/**\n * @param {Object} obj\n * @param {function(any,string):any} f\n */\nexport const forEach = (obj, f) => {\n for (const key in obj) {\n f(obj[key], key)\n }\n}\n\n/**\n * @template R\n * @param {Object} obj\n * @param {function(any,string):R} f\n * @return {Array}\n */\nexport const map = (obj, f) => {\n const results = []\n for (const key in obj) {\n results.push(f(obj[key], key))\n }\n return results\n}\n\n/**\n * @param {Object} obj\n * @return {number}\n */\nexport const length = obj => keys(obj).length\n\n/**\n * @param {Object} obj\n * @param {function(any,string):boolean} f\n * @return {boolean}\n */\nexport const some = (obj, f) => {\n for (const key in obj) {\n if (f(obj[key], key)) {\n return true\n }\n }\n return false\n}\n\n/**\n * @param {Object} obj\n * @param {function(any,string):boolean} f\n * @return {boolean}\n */\nexport const every = (obj, f) => {\n for (const key in obj) {\n if (!f(obj[key], key)) {\n return false\n }\n }\n return true\n}\n\n/**\n * Calls `Object.prototype.hasOwnProperty`.\n *\n * @param {any} obj\n * @param {string|symbol} key\n * @return {boolean}\n */\nexport const hasProperty = (obj, key) => Object.prototype.hasOwnProperty.call(obj, key)\n\n/**\n * @param {Object} a\n * @param {Object} b\n * @return {boolean}\n */\nexport const equalFlat = (a, b) => a === b || (length(a) === length(b) && every(a, (val, key) => (val !== undefined || hasProperty(b, key)) && b[key] === val))\n","/**\n * Observable class prototype.\n *\n * @module observable\n */\n\nimport * as map from './map.js'\nimport * as set from './set.js'\nimport * as array from './array.js'\n\n/**\n * Handles named events.\n *\n * @template N\n */\nexport class Observable {\n constructor () {\n /**\n * Some desc.\n * @type {Map}\n */\n this._observers = map.create()\n }\n\n /**\n * @param {N} name\n * @param {function} f\n */\n on (name, f) {\n map.setIfUndefined(this._observers, name, set.create).add(f)\n }\n\n /**\n * @param {N} name\n * @param {function} f\n */\n once (name, f) {\n /**\n * @param {...any} args\n */\n const _f = (...args) => {\n this.off(name, _f)\n f(...args)\n }\n this.on(name, _f)\n }\n\n /**\n * @param {N} name\n * @param {function} f\n */\n off (name, f) {\n const observers = this._observers.get(name)\n if (observers !== undefined) {\n observers.delete(f)\n if (observers.size === 0) {\n this._observers.delete(name)\n }\n }\n }\n\n /**\n * Emit a named event. All registered event listeners that listen to the\n * specified name will receive the event.\n *\n * @todo This should catch exceptions\n *\n * @param {N} name The event name.\n * @param {Array} args The arguments that are applied to the event listener.\n */\n emit (name, args) {\n // copy all listeners to an array first to make sure that no event is emitted to listeners that are subscribed while the event handler is called.\n return array.from((this._observers.get(name) || map.create()).values()).forEach(f => f(...args))\n }\n\n destroy () {\n this._observers = map.create()\n }\n}\n","/**\n * Utility module to work with sets.\n *\n * @module set\n */\n\nexport const create = () => new Set()\n\n/**\n * @template T\n * @param {Set} set\n * @return {Array}\n */\nexport const toArray = set => Array.from(set)\n\n/**\n * @template T\n * @param {Set} set\n * @return {T}\n */\nexport const first = set => {\n return set.values().next().value || undefined\n}\n\n/**\n * @template T\n * @param {Iterable} entries\n * @return {Set}\n */\nexport const from = entries => {\n return new Set(entries)\n}\n"],"names":["last","arr","length","appendTo","dest","src","i","push","from","Array","equalFlat","a","b","f","item","index","every","isArray","callAll","fs","args","equalityFlat","constructor","equalityDeep","equalityStrict","ArrayBuffer","Uint8Array","byteLength","Set","size","value","has","Map","key","keys","get","Object","isOneOf","options","includes","create","copy","m","r","forEach","v","k","set","setIfUndefined","map","createT","undefined","res","any","floor","Math","abs","ceil","add","imul","round","log10","log2","log","sqrt","min","max","pow","Number","isNaN","isNegativeZero","sign","n","assign","obj","results","hasProperty","prototype","hasOwnProperty","call","val","Observable","this","_observers","on","name","once","_f","off","observers","delete","emit","values","destroy"],"sourceRoot":""} \ No newline at end of file diff --git a/_static/build/4565.43bdb91.js b/_static/build/4565.43bdb91.js new file mode 100644 index 0000000..c533a97 --- /dev/null +++ b/_static/build/4565.43bdb91.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[4565],{94565:(e,t,s)=>{s.r(t),s.d(t,{Completer:()=>E,CompleterModel:()=>v,CompletionConnector:()=>_,CompletionHandler:()=>d,ContextConnector:()=>u,ICompletionManager:()=>q,KernelConnector:()=>h});var i=s(55941),n=s(14064),o=s(70942),r=s(63050);class a extends r.DataConnector{fetch(e){return Promise.reject("Attempting to fetch with DummyConnector. Please ensure connector responseType is set.")}}const l="jp-mod-completer-enabled",c="jp-mod-completer-active";class d{constructor(e){this._editor=null,this._enabled=!1,this._pending=0,this._isDisposed=!1,this.completer=e.completer,this.completer.selected.connect(this.onCompletionSelected,this),this.completer.visibilityChanged.connect(this.onVisibilityChanged,this),this._connector=e.connector}get connector(){return"responseType"in this._connector?new a:this._connector}set connector(e){this._connector=e}get editor(){return this._editor}set editor(e){if(e===this._editor)return;let t=this._editor;if(t&&!t.isDisposed){const e=t.model;t.host.classList.remove(l),t.host.classList.remove(c),e.selections.changed.disconnect(this.onSelectionsChanged,this),e.value.changed.disconnect(this.onTextChanged,this)}if(this.completer.reset(),this.completer.editor=e,t=this._editor=e,t){const e=t.model;this._enabled=!1,e.selections.changed.connect(this.onSelectionsChanged,this),e.value.changed.connect(this.onTextChanged,this),this.onSelectionsChanged()}}get isDisposed(){return this._isDisposed}dispose(){this.isDisposed||(this._isDisposed=!0,o.Signal.clearData(this))}invoke(){n.MessageLoop.sendMessage(this,d.Msg.InvokeRequest)}processMessage(e){e.type===d.Msg.InvokeRequest.type&&this.onInvokeRequest(e)}getState(e,t){return{text:e.model.value.text,lineHeight:e.lineHeight,charWidth:e.charWidth,line:t.line,column:t.column}}onCompletionSelected(e,t){const s=e.model,i=this._editor;if(!i||!s)return;const n=s.createPatch(t);if(!n)return;const{start:o,end:r,value:a}=n,l=i.getOffsetAt(i.getCursorPosition());i.model.sharedModel.updateSource(o,r,a),l<=r&&l>=o&&i.setCursorPosition(i.getPositionAt(o+a.length))}onInvokeRequest(e){if(!this.completer.model)return;if(this.completer.model.original)return;const t=this._editor;t&&this._makeRequest(t.getCursorPosition()).catch((e=>{console.warn("Invoke request bailed",e)}))}onSelectionsChanged(){const e=this.completer.model,t=this._editor;if(!t)return;const s=t.host;if(!e)return this._enabled=!1,void s.classList.remove(l);if(e.subsetMatch)return;const i=t.getCursorPosition(),n=t.getLine(i.line);if(!n)return this._enabled=!1,e.reset(!0),void s.classList.remove(l);const{start:o,end:r}=t.getSelection();return o.column!==r.column||o.line!==r.line||n.slice(0,i.column).match(/^\s*$/)?(this._enabled=!1,e.reset(!0),void s.classList.remove(l)):(this._enabled||(this._enabled=!0,s.classList.add(l)),void e.handleCursorChange(this.getState(t,t.getCursorPosition())))}onTextChanged(){const e=this.completer.model;if(!e||!this._enabled)return;const t=this.editor;if(!t)return;const{start:s,end:i}=t.getSelection();s.column===i.column&&s.line===i.line&&e.handleTextChange(this.getState(t,t.getCursorPosition()))}onVisibilityChanged(e){e.isDisposed||e.isHidden?this._editor&&(this._editor.host.classList.remove(c),this._editor.focus()):this._editor&&this._editor.host.classList.add(c)}_makeRequest(e){const t=this.editor;if(!t)return Promise.reject(new Error("No active editor"));const s=t.model.value.text,n=i.Text.jsIndexToCharIndex(t.getOffsetAt(e),s),o=++this._pending,r=this.getState(t,e),a={text:s,offset:n};return this._isICompletionItemsConnector(this._connector)?this._connector.fetch(a).then((e=>{if(this._validate(o,a),!e)throw new Error(`Invalid request: ${a}`);this._onFetchItemsReply(r,e)})).catch((e=>{this._onFailure()})):this._connector.fetch(a).then((e=>{if(this._validate(o,a),!e)throw new Error(`Invalid request: ${a}`);this._onReply(r,e)})).catch((e=>{this._onFailure()}))}_isICompletionItemsConnector(e){return e.responseType===d.ICompletionItemsResponseType}_validate(e,t){if(this.isDisposed)throw new Error("Handler is disposed");if(e!==this._pending)throw new Error("A newer completion request is pending")}_updateModel(e,t,s){const n=this.completer.model,o=e.text;return n?(n.original=e,n.cursor={start:i.Text.charIndexToJsIndex(t,o),end:i.Text.charIndexToJsIndex(s,o)},n):null}_onReply(e,t){const s=this._updateModel(e,t.start,t.end);if(!s)return;const i=[],n=new Set(t.matches||[]);t.matches&&n.forEach((e=>{i.push(e)}));const o=(t.metadata||{})._jupyter_types_experimental,r={};o&&o.forEach((e=>{const t=e.text,s=e.type;n.has(t)&&""!==s&&(r[t]=s)})),s.setOptions(i,r)}_onFetchItemsReply(e,t){const s=this._updateModel(e,t.start,t.end);s&&s.setCompletionItems&&s.setCompletionItems(t.items)}_onFailure(){const e=this.completer.model;e&&e.reset(!0)}}!function(e){let t;e.ICompletionItemsResponseType="ICompletionItemsReply",function(e){e.InvokeRequest=new n.Message("invoke-request")}(t=e.Msg||(e.Msg={}))}(d||(d={}));class h extends r.DataConnector{constructor(e){super(),this._session=e.session}async fetch(e){var t;const s=null===(t=this._session)||void 0===t?void 0:t.kernel;if(!s)throw new Error("No kernel for completion request.");const i={code:e.text,cursor_pos:e.offset},n=(await s.requestComplete(i)).content;if("ok"!==n.status)throw new Error("Completion fetch failed to return successfully.");return{start:n.cursor_start,end:n.cursor_end,matches:n.matches,metadata:n.metadata}}}class u extends r.DataConnector{constructor(e){super(),this._editor=e.editor}fetch(e){return this._editor?new Promise((e=>{e(m.contextHint(this._editor))})):Promise.reject("No editor")}}var m,p;!function(e){e.contextHint=function(e){const t=e.getCursorPosition(),s=e.getTokenForPosition(t),i=function(e,t){return t.getTokens().filter((t=>0===t.value.indexOf(e.value)&&t.value!==e.value))}(s,e).filter((e=>e.type)).map((e=>e.value)),n=Array.from(new Set(i));return{start:s.offset,end:s.offset+s.value.length,matches:n,metadata:{}}}}(m||(m={}));class _ extends r.DataConnector{constructor(e){super(),this._kernel=new h(e),this._context=new u(e)}fetch(e){return Promise.all([this._kernel.fetch(e),this._context.fetch(e)]).then((([e,t])=>p.mergeReplies(e,t)))}}!function(e){e.mergeReplies=function(e,t){if(0===e.matches.length)return t;if(0===t.matches.length)return e;const s=e.matches.slice(),i=s.reduce(((e,t)=>(e[t]=null,e)),{});return t.matches.forEach((e=>{e in i||s.push(e)})),Object.assign(Object.assign({},e),{matches:s})}}(p||(p={}));var g,f=s(43892),C=s(26169);class v{constructor(){this._current=null,this._cursor=null,this._isDisposed=!1,this._completionItems=[],this._options=[],this._original=null,this._query="",this._subsetMatch=!1,this._typeMap={},this._orderedTypes=[],this._stateChanged=new o.Signal(this)}get stateChanged(){return this._stateChanged}get original(){return this._original}set original(e){this._original===e||this._original&&e&&C.JSONExt.deepEqual(e,this._original)||(this._reset(),this._current=this._original=e,this._stateChanged.emit(void 0))}get current(){return this._current}set current(e){if(this._current===e||this._current&&e&&C.JSONExt.deepEqual(e,this._current))return;const t=this._original;if(!t)return;const s=this._cursor;if(!s)return;const i=this._current=e;if(!i)return void this._stateChanged.emit(void 0);const n=t.text.split("\n")[t.line],o=i.text.split("\n")[i.line];if(!this._subsetMatch&&o.lengthn.column+r+l&&this.reset(!0)}handleTextChange(e){const t=this._original;if(!t)return;const{text:s,column:i,line:n}=e,o=s.split("\n")[n][i-1];o&&o.match(/\S/)||e.column>=t.column?this.current=e:this.reset(!1)}createPatch(e){const t=this._original,s=this._cursor,i=this._current;if(!t||!s||!i)return;let{start:n,end:o}=s;return o+=i.text.length-t.text.length,{start:n,end:o,value:e}}reset(e=!1){!e&&this._subsetMatch||(this._reset(),this._stateChanged.emit(void 0))}_markup(e){const t=this._completionItems;let s=[];for(let i of t){const t=i.label.indexOf("("),n=t>-1?i.label.substring(0,t):i.label;let o=f.StringExt.matchSumOfSquares(n,e);if(o){let e=f.StringExt.highlight(i.label,o.indices,g.mark);s.push(Object.assign(Object.assign({},i),{documentation:i.documentation,label:e.join(""),insertText:i.insertText?i.insertText:i.label,score:o.score}))}}return s.sort(g.scoreCmp2),s.forEach((e=>{delete e.score})),s}_filter(){const e=this._options||[],t=this._query;if(!t)return(0,f.map)(e,(e=>({raw:e,text:e})));const s=[];for(const i of e){const e=f.StringExt.matchSumOfSquares(i,t);if(e){const t=f.StringExt.highlight(i,e.indices,g.mark);s.push({raw:i,score:e.score,text:t.join("")})}}return(0,f.map)(s.sort(g.scoreCmp),(e=>({text:e.text,raw:e.raw})))}_reset(){this._current=null,this._cursor=null,this._completionItems=[],this._options=[],this._original=null,this._query="",this._subsetMatch=!1,this._typeMap={},this._orderedTypes=[]}}!function(e){const t=["function","instance","class","module","keyword"],s=t.reduce(((e,t)=>(e[t]=null,e)),{});e.mark=function(e){return`${e}`},e.scoreCmp=function(e,t){const s=e.score-t.score;return 0!==s?s:e.raw.localeCompare(t.raw)},e.scoreCmp2=function(e,t){var s,i,n;const o=e.score-t.score;return 0!==o?o:null!==(n=null===(s=e.insertText)||void 0===s?void 0:s.localeCompare(null!==(i=t.insertText)&&void 0!==i?i:""))&&void 0!==n?n:0},e.findOrderedCompletionItemTypes=function(e){const s=new Set;e.forEach((e=>{!e.type||t.includes(e.type)||s.has(e.type)||s.add(e.type)}));const i=Array.from(s);return i.sort(((e,t)=>e.localeCompare(t))),t.concat(i)},e.findOrderedTypes=function(e){const i=Object.keys(e).map((t=>e[t])).filter((e=>!!e&&!(e in s))).sort(((e,t)=>e.localeCompare(t)));return t.concat(i)}}(g||(g={}));var y=s(2814),x=s(33349),I=s(94519);const b="jp-Completer-item",w="jp-mod-active",S=!0;class E extends I.Widget{constructor(e){super({node:document.createElement("div")}),this._activeIndex=0,this._editor=null,this._model=null,this._resetFlag=!1,this._selected=new o.Signal(this),this._visibilityChanged=new o.Signal(this),this._indexChanged=new o.Signal(this),this._lastSubsetMatch="",this._renderer=e.renderer||E.defaultRenderer,this.model=e.model||null,this.editor=e.editor||null,this.addClass("jp-Completer")}get activeIndex(){return this._activeIndex}get editor(){return this._editor}set editor(e){this._editor=e}get selected(){return this._selected}get visibilityChanged(){return this._visibilityChanged}get indexChanged(){return this._indexChanged}get model(){return this._model}set model(e){(e||this._model)&&e!==this._model&&(this._model&&this._model.stateChanged.disconnect(this.onModelStateChanged,this),this._model=e,this._model&&this._model.stateChanged.connect(this.onModelStateChanged,this))}dispose(){this._model=null,super.dispose()}handleEvent(e){if(!this.isHidden&&this._editor)switch(e.type){case"keydown":this._evtKeydown(e);break;case"mousedown":this._evtMousedown(e);break;case"scroll":this._evtScroll(e)}}reset(){this._activeIndex=0,this._lastSubsetMatch="",this._model&&this._model.reset(!0)}selectActive(){const e=this.node.querySelector(`.${w}`);e?(this._selected.emit(e.getAttribute("data-value")),this.reset()):this.reset()}onAfterAttach(e){document.addEventListener("keydown",this,S),document.addEventListener("mousedown",this,S),document.addEventListener("scroll",this,S)}onBeforeDetach(e){document.removeEventListener("keydown",this,S),document.removeEventListener("mousedown",this,S),document.removeEventListener("scroll",this,S)}onModelStateChanged(){this.isAttached&&(this._activeIndex=0,this._indexChanged.emit(this._activeIndex),this.update())}onUpdateRequest(e){const t=this._model;if(!t)return;if(this._resetFlag)return this._resetFlag=!1,void(this.isHidden||(this.hide(),this._visibilityChanged.emit(void 0)));let s=null,i=t.completionItems&&t.completionItems();if(s=i&&i.length?this._createCompletionItemNode(t,i):this._createIItemNode(t),!s)return;s.querySelectorAll(`.${b}`)[this._activeIndex].classList.add(w);let n=document.createElement("div");n.className="jp-Completer-docpanel",s.appendChild(n),this._updateDocPanel(),t.query||!this._populateSubset()?this.isHidden?(this.show(),this._setGeometry(),this._visibilityChanged.emit(void 0)):this._setGeometry():this.update()}_createCompletionItemNode(e,t){if(!t.length)return this._resetFlag=!0,this.reset(),this.isHidden||(this.hide(),this._visibilityChanged.emit(void 0)),null;let s=this.node;s.textContent="";let i=e.orderedTypes(),n=document.createElement("ul");n.className="jp-Completer-list";for(let e of t){if(!this._renderer.createCompletionItemNode)return null;let t=this._renderer.createCompletionItemNode(e,i);n.appendChild(t)}return s.appendChild(n),s}_createIItemNode(e){const t=(0,f.toArray)(e.items());if(!t||!t.length)return this._resetFlag=!0,this.reset(),this.isHidden||(this.hide(),this._visibilityChanged.emit(void 0)),null;const s=(0,f.toArray)(e.options());if(1===s.length)return this._selected.emit(s[0]),this.reset(),null;const i=this.node;i.textContent="";const n=e.orderedTypes();let o=document.createElement("ul");o.className="jp-Completer-list";for(const s of t){const t=this._renderer.createItemNode(s,e.typeMap(),n);o.appendChild(t)}return i.appendChild(o),i}_cycle(e){const t=this.node.querySelectorAll(`.${b}`),s=this._activeIndex;let i=this.node.querySelector(`.${w}`);if(i.classList.remove(w),"up"===e)this._activeIndex=0===s?t.length-1:s-1;else if("down"===e)this._activeIndex=s{this._setGeometry()}))}_populateSubset(){const{model:e}=this;if(!e)return!1;const t=this.node.querySelectorAll(`.${b}`),s=M.commonSubset(M.itemValues(t)),{query:i}=e;return!(!s||s===i||0!==s.indexOf(i)||(e.query=s,0))}_setGeometry(){const{node:e}=this,t=this._model,s=this._editor;if(!(s&&t&&t.original&&t.cursor))return;const i=t.cursor.start,n=s.getPositionAt(i),o=s.getCoordinateForPosition(n),r=window.getComputedStyle(e),a=parseInt(r.borderLeftWidth,10)||0,l=parseInt(r.paddingLeft,10)||0,c=s.host.closest(".jp-MainAreaWidget > .lm-Widget")||s.host;y.HoverBox.setGeometry({anchor:o,host:c,maxHeight:300,minHeight:20,node:e,offset:{horizontal:a+l},privilege:"below",style:r,outOfViewDisplay:{top:"hidden-inside",bottom:"hidden-inside",left:"stick-inside",right:"stick-outside"}})}_updateDocPanel(){var e,t;let s=this.node.querySelector(".jp-Completer-docpanel");if(!s)return;if(!(null===(e=this.model)||void 0===e?void 0:e.completionItems))return;let i=null===(t=this.model)||void 0===t?void 0:t.completionItems();if(!i)return void s.setAttribute("style","display:none");let n=i[this._activeIndex];if(n)if(s.textContent="",n.documentation){let e;e=this._renderer.createDocumentationNode?this._renderer.createDocumentationNode(n):E.defaultRenderer.createDocumentationNode(n),s.appendChild(e),s.setAttribute("style","")}else s.setAttribute("style","display:none");else s.setAttribute("style","display:none")}}var M;!function(e){class t{createCompletionItemNode(e,t){let s=this._createBaseNode(e.insertText||e.label);return e.deprecated&&s.classList.add("jp-Completer-deprecated"),this._constructNode(s,this._createMatchNode(e.label),!!e.type,e.type,t,e.icon)}createItemNode(e,t,s){return this._constructNode(this._createBaseNode(e.raw),this._createMatchNode(e.text),!C.JSONExt.deepEqual(t,{}),t[e.raw]||"",s)}createDocumentationNode(e){let t=document.createElement("pre");return t.textContent=e.documentation||"",t}_createBaseNode(e){const t=document.createElement("li");return t.className=b,t.setAttribute("data-value",e),t}_createMatchNode(e){const t=document.createElement("code");return t.className="jp-Completer-match",t.innerHTML=y.defaultSanitizer.sanitize(e,{allowedTags:["mark"]}),t}_constructNode(e,t,s,i,n,o){if(o){const t=o.element({className:"jp-Completer-type jp-Completer-icon"});e.appendChild(t)}else if(s){const t=document.createElement("span");t.textContent=(i[0]||"").toLowerCase();const s=n.indexOf(i)%10+1;t.className="jp-Completer-type jp-Completer-monogram",t.setAttribute("data-color-index",s.toString()),e.appendChild(t)}else{const t=document.createElement("span");t.className="jp-Completer-monogram",e.appendChild(t)}if(e.appendChild(t),s){e.title=i;const t=document.createElement("code");t.className="jp-Completer-typeExtended",t.textContent=i.toLocaleLowerCase(),e.appendChild(t)}else{const t=document.createElement("span");t.className="jp-Completer-typeExtended",e.appendChild(t)}return e}}e.Renderer=t,e.defaultRenderer=new t}(E||(E={})),function(e){e.keyCodeMap={38:"up",40:"down",33:"pageUp",34:"pageDown"},e.commonSubset=function(e){const t=e.length;let s="";if(t<2)return s;const i=e[0].length;for(let n=0;n{r.d(o,{Z:()=>s});var e=r(34663),t=r.n(e),a=r(7638),i=r.n(a)()(t());i.push([n.id,"/*\n * abbott.css\n * A warm, dark theme for prose and code, with pastels and pretty greens.\n *\n * Ported from abbott.vim (https://github.com/bcat/abbott.vim) version 2.1.\n * Original design and CodeMirror port by Jonathan Rascher.\n *\n * This theme shares the following color palette with the Vim color scheme.\n *\n * Brown shades:\n * bistre: #231c14\n * chocolate: #3c3022\n * cocoa: #745d42\n * vanilla_cream: #fef3b4\n *\n * Red shades:\n * crimson: #d80450\n * cinnabar: #f63f05\n *\n * Green shades:\n * dark_olive: #273900\n * forest_green: #24a507\n * chartreuse: #a0ea00\n * pastel_chartreuse: #d8ff84\n *\n * Yellow shades:\n * marigold: #fbb32f\n * lemon_meringue: #fbec5d\n *\n * Blue shades:\n * cornflower_blue: #3f91f1\n * periwinkle_blue: #8ccdf0\n *\n * Magenta shades:\n * french_pink: #ec6c99\n * lavender: #e6a2f3\n *\n * Cyan shades:\n * zomp: #39a78d\n * seafoam_green: #00ff7f\n */\n\n/* Style the UI: */\n\n/* Equivalent to Vim's Normal group. */\n.cm-s-abbott.CodeMirror {\n background: #231c14 /* bistre */;\n color: #d8ff84 /* pastel_chartreuse */;\n}\n\n/* Roughly equivalent to Vim's LineNr group. */\n.cm-s-abbott .CodeMirror-gutters {\n background: #231c14 /* bistre */;\n border: none;\n}\n.cm-s-abbott .CodeMirror-linenumber { color: #fbec5d /* lemon_meringue */; }\n\n.cm-s-abbott .CodeMirror-guttermarker { color: #f63f05 /* cinnabar */; }\n\n/* Roughly equivalent to Vim's FoldColumn group. */\n.cm-s-abbott .CodeMirror-guttermarker-subtle { color: #fbb32f /* marigold */; }\n\n/*\n * Roughly equivalent to Vim's CursorColumn group. (We use a brighter color\n * since Vim's cursorcolumn option highlights a whole column, whereas\n * CodeMirror's rule just highlights a thin line.)\n */\n.cm-s-abbott .CodeMirror-ruler { border-color: #745d42 /* cocoa */; }\n\n/* Equivalent to Vim's Cursor group in insert mode. */\n.cm-s-abbott .CodeMirror-cursor { border-color: #a0ea00 /* chartreuse */; }\n\n/* Equivalent to Vim's Cursor group in normal mode. */\n.cm-s-abbott.cm-fat-cursor .CodeMirror-cursor,\n.cm-s-abbott .cm-animate-fat-cursor {\n /*\n * CodeMirror doesn't allow changing the foreground color of the character\n * under the cursor, so we can't use a reverse video effect for the cursor.\n * Instead, make it semitransparent.\n */\n background: rgba(160, 234, 0, 0.5) /* chartreuse */;\n}\n.cm-s-abbott.cm-fat-cursor .CodeMirror-cursors {\n /*\n * Boost the z-index so the fat cursor shows up on top of text and\n * matchingbracket/matchingtag highlights.\n */\n z-index: 3;\n}\n\n/* Equivalent to Vim's Cursor group in replace mode. */\n.cm-s-abbott .CodeMirror-overwrite .CodeMirror-cursor {\n border-bottom: 1px solid #a0ea00 /* chartreuse */;\n border-left: none;\n width: auto;\n}\n\n/* Roughly equivalent to Vim's CursorIM group. */\n.cm-s-abbott .CodeMirror-secondarycursor {\n border-color: #00ff7f /* seafoam_green */;\n}\n\n/* Roughly equivalent to Vim's Visual group. */\n.cm-s-abbott .CodeMirror-selected,\n.cm-s-abbott.CodeMirror-focused .CodeMirror-selected {\n background: #273900 /* dark_olive */;\n}\n.cm-s-abbott .CodeMirror-line::selection,\n.cm-s-abbott .CodeMirror-line > span::selection,\n.cm-s-abbott .CodeMirror-line > span > span::selection {\n background: #273900 /* dark_olive */;\n}\n.cm-s-abbott .CodeMirror-line::-moz-selection,\n.cm-s-abbott .CodeMirror-line > span::-moz-selection,\n.cm-s-abbott .CodeMirror-line > span > span::-moz-selection {\n background: #273900 /* dark_olive */;\n}\n\n/* Roughly equivalent to Vim's SpecialKey group. */\n.cm-s-abbott .cm-tab { color: #00ff7f /* seafoam_green */; }\n\n/* Equivalent to Vim's Search group. */\n.cm-s-abbott .cm-searching {\n background: #fef3b4 /* vanilla_cream */ !important;\n color: #231c14 /* bistre */ !important;\n}\n\n/* Style syntax highlighting modes: */\n\n/* Equivalent to Vim's Comment group. */\n.cm-s-abbott span.cm-comment {\n color: #fbb32f /* marigold */;\n font-style: italic;\n}\n\n/* Equivalent to Vim's String group. */\n.cm-s-abbott span.cm-string,\n.cm-s-abbott span.cm-string-2 {\n color: #e6a2f3 /* lavender */;\n}\n\n/* Equivalent to Vim's Constant group. */\n.cm-s-abbott span.cm-number,\n.cm-s-abbott span.cm-string.cm-url { color: #f63f05 /* cinnabar */; }\n\n/* Roughly equivalent to Vim's SpecialKey group. */\n.cm-s-abbott span.cm-invalidchar { color: #00ff7f /* seafoam_green */; }\n\n/* Equivalent to Vim's Special group. */\n.cm-s-abbott span.cm-atom { color: #fef3b4 /* vanilla_cream */; }\n\n/* Equivalent to Vim's Delimiter group. */\n.cm-s-abbott span.cm-bracket,\n.cm-s-abbott span.cm-punctuation {\n color: #fef3b4 /* vanilla_cream */;\n}\n\n/* Equivalent Vim's Operator group. */\n.cm-s-abbott span.cm-operator { font-weight: bold; }\n\n/* Roughly equivalent to Vim's Identifier group. */\n.cm-s-abbott span.cm-def,\n.cm-s-abbott span.cm-variable,\n.cm-s-abbott span.cm-variable-2,\n.cm-s-abbott span.cm-variable-3 {\n color: #8ccdf0 /* periwinkle_blue */;\n}\n\n/* Roughly equivalent to Vim's Function group. */\n.cm-s-abbott span.cm-builtin,\n.cm-s-abbott span.cm-property,\n.cm-s-abbott span.cm-qualifier {\n color: #3f91f1 /* cornflower_blue */;\n}\n\n/* Equivalent to Vim's Type group. */\n.cm-s-abbott span.cm-type { color: #24a507 /* forest_green */; }\n\n/* Equivalent to Vim's Keyword group. */\n.cm-s-abbott span.cm-keyword {\n color: #d80450 /* crimson */;\n font-weight: bold;\n}\n\n/* Equivalent to Vim's PreProc group. */\n.cm-s-abbott span.cm-meta { color: #ec6c99 /* french_pink */; }\n\n/* Equivalent to Vim's htmlTagName group (linked to Statement). */\n.cm-s-abbott span.cm-tag {\n color: #d80450 /* crimson */;\n font-weight: bold;\n}\n\n/* Equivalent to Vim's htmlArg group (linked to Type). */\n.cm-s-abbott span.cm-attribute { color: #24a507 /* forest_green */; }\n\n/* Equivalent to Vim's htmlH1, markdownH1, etc. groups (linked to Title). */\n.cm-s-abbott span.cm-header {\n color: #d80450 /* crimson */;\n font-weight: bold;\n}\n\n/* Equivalent to Vim's markdownRule group (linked to PreProc). */\n.cm-s-abbott span.cm-hr { color: #ec6c99 /* french_pink */; }\n\n/* Roughly equivalent to Vim's Underlined group. */\n.cm-s-abbott span.cm-link { color: #e6a2f3 /* lavender */; }\n\n/* Equivalent to Vim's diffRemoved group. */\n.cm-s-abbott span.cm-negative {\n background: #d80450 /* crimson */;\n color: #231c14 /* bistre */;\n}\n\n/* Equivalent to Vim's diffAdded group. */\n.cm-s-abbott span.cm-positive {\n background: #a0ea00 /* chartreuse */;\n color: #231c14 /* bistre */;\n font-weight: bold;\n}\n\n/* Equivalent to Vim's Error group. */\n.cm-s-abbott span.cm-error {\n background: #d80450 /* crimson */;\n color: #231c14 /* bistre */;\n}\n\n/* Style addons: */\n\n/* Equivalent to Vim's MatchParen group. */\n.cm-s-abbott span.CodeMirror-matchingbracket {\n background: #745d42 /* cocoa */ !important;\n color: #231c14 /* bistre */ !important;\n font-weight: bold;\n}\n\n/*\n * Roughly equivalent to Vim's Error group. (Vim doesn't seem to have a direct\n * equivalent in its own matchparen plugin, but many syntax highlighting plugins\n * mark mismatched brackets as Error.)\n */\n.cm-s-abbott span.CodeMirror-nonmatchingbracket {\n background: #d80450 /* crimson */ !important;\n color: #231c14 /* bistre */ !important;\n}\n\n.cm-s-abbott .CodeMirror-matchingtag,\n.cm-s-abbott .cm-matchhighlight {\n outline: 1px solid #39a78d /* zomp */;\n}\n\n/* Equivalent to Vim's CursorLine group. */\n.cm-s-abbott .CodeMirror-activeline-background,\n.cm-s-abbott .CodeMirror-activeline-gutter {\n background: #3c3022 /* chocolate */;\n}\n\n/* Equivalent to Vim's CursorLineNr group. */\n.cm-s-abbott .CodeMirror-activeline-gutter .CodeMirror-linenumber {\n color: #d8ff84 /* pastel_chartreuse */;\n font-weight: bold;\n}\n\n/* Roughly equivalent to Vim's Folded group. */\n.cm-s-abbott .CodeMirror-foldmarker {\n color: #f63f05 /* cinnabar */;\n text-shadow: none;\n}\n","",{version:3,sources:["webpack://./../node_modules/codemirror/theme/abbott.css"],names:[],mappings:"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwCE;;AAEF,kBAAkB;;AAElB,sCAAsC;AACtC;EACE,gCAAgC;EAChC,sCAAsC;AACxC;;AAEA,8CAA8C;AAC9C;EACE,gCAAgC;EAChC,YAAY;AACd;AACA,sCAAsC,mCAAmC,EAAE;;AAE3E,wCAAwC,6BAA6B,EAAE;;AAEvE,kDAAkD;AAClD,+CAA+C,6BAA6B,EAAE;;AAE9E;;;;EAIE;AACF,iCAAiC,iCAAiC,EAAE;;AAEpE,qDAAqD;AACrD,kCAAkC,sCAAsC,EAAE;;AAE1E,qDAAqD;AACrD;;EAEE;;;;IAIE;EACF,mDAAmD;AACrD;AACA;EACE;;;IAGE;EACF,UAAU;AACZ;;AAEA,sDAAsD;AACtD;EACE,iDAAiD;EACjD,iBAAiB;EACjB,WAAW;AACb;;AAEA,gDAAgD;AAChD;EACE,yCAAyC;AAC3C;;AAEA,8CAA8C;AAC9C;;EAEE,oCAAoC;AACtC;AACA;;;EAGE,oCAAoC;AACtC;AACA;;;EAGE,oCAAoC;AACtC;;AAEA,kDAAkD;AAClD,uBAAuB,kCAAkC,EAAE;;AAE3D,sCAAsC;AACtC;EACE,kDAAkD;EAClD,sCAAsC;AACxC;;AAEA,qCAAqC;;AAErC,uCAAuC;AACvC;EACE,6BAA6B;EAC7B,kBAAkB;AACpB;;AAEA,sCAAsC;AACtC;;EAEE,6BAA6B;AAC/B;;AAEA,wCAAwC;AACxC;qCACqC,6BAA6B,EAAE;;AAEpE,kDAAkD;AAClD,mCAAmC,kCAAkC,EAAE;;AAEvE,uCAAuC;AACvC,4BAA4B,kCAAkC,EAAE;;AAEhE,yCAAyC;AACzC;;EAEE,kCAAkC;AACpC;;AAEA,qCAAqC;AACrC,gCAAgC,iBAAiB,EAAE;;AAEnD,kDAAkD;AAClD;;;;EAIE,oCAAoC;AACtC;;AAEA,gDAAgD;AAChD;;;EAGE,oCAAoC;AACtC;;AAEA,oCAAoC;AACpC,4BAA4B,iCAAiC,EAAE;;AAE/D,uCAAuC;AACvC;EACE,4BAA4B;EAC5B,iBAAiB;AACnB;;AAEA,uCAAuC;AACvC,4BAA4B,gCAAgC,EAAE;;AAE9D,iEAAiE;AACjE;EACE,4BAA4B;EAC5B,iBAAiB;AACnB;;AAEA,wDAAwD;AACxD,iCAAiC,iCAAiC,EAAE;;AAEpE,2EAA2E;AAC3E;EACE,4BAA4B;EAC5B,iBAAiB;AACnB;;AAEA,gEAAgE;AAChE,0BAA0B,gCAAgC,EAAE;;AAE5D,kDAAkD;AAClD,4BAA4B,6BAA6B,EAAE;;AAE3D,2CAA2C;AAC3C;EACE,iCAAiC;EACjC,2BAA2B;AAC7B;;AAEA,yCAAyC;AACzC;EACE,oCAAoC;EACpC,2BAA2B;EAC3B,iBAAiB;AACnB;;AAEA,qCAAqC;AACrC;EACE,iCAAiC;EACjC,2BAA2B;AAC7B;;AAEA,kBAAkB;;AAElB,0CAA0C;AAC1C;EACE,0CAA0C;EAC1C,sCAAsC;EACtC,iBAAiB;AACnB;;AAEA;;;;EAIE;AACF;EACE,4CAA4C;EAC5C,sCAAsC;AACxC;;AAEA;;EAEE,qCAAqC;AACvC;;AAEA,0CAA0C;AAC1C;;EAEE,mCAAmC;AACrC;;AAEA,4CAA4C;AAC5C;EACE,sCAAsC;EACtC,iBAAiB;AACnB;;AAEA,8CAA8C;AAC9C;EACE,6BAA6B;EAC7B,iBAAiB;AACnB",sourcesContent:["/*\n * abbott.css\n * A warm, dark theme for prose and code, with pastels and pretty greens.\n *\n * Ported from abbott.vim (https://github.com/bcat/abbott.vim) version 2.1.\n * Original design and CodeMirror port by Jonathan Rascher.\n *\n * This theme shares the following color palette with the Vim color scheme.\n *\n * Brown shades:\n * bistre: #231c14\n * chocolate: #3c3022\n * cocoa: #745d42\n * vanilla_cream: #fef3b4\n *\n * Red shades:\n * crimson: #d80450\n * cinnabar: #f63f05\n *\n * Green shades:\n * dark_olive: #273900\n * forest_green: #24a507\n * chartreuse: #a0ea00\n * pastel_chartreuse: #d8ff84\n *\n * Yellow shades:\n * marigold: #fbb32f\n * lemon_meringue: #fbec5d\n *\n * Blue shades:\n * cornflower_blue: #3f91f1\n * periwinkle_blue: #8ccdf0\n *\n * Magenta shades:\n * french_pink: #ec6c99\n * lavender: #e6a2f3\n *\n * Cyan shades:\n * zomp: #39a78d\n * seafoam_green: #00ff7f\n */\n\n/* Style the UI: */\n\n/* Equivalent to Vim's Normal group. */\n.cm-s-abbott.CodeMirror {\n background: #231c14 /* bistre */;\n color: #d8ff84 /* pastel_chartreuse */;\n}\n\n/* Roughly equivalent to Vim's LineNr group. */\n.cm-s-abbott .CodeMirror-gutters {\n background: #231c14 /* bistre */;\n border: none;\n}\n.cm-s-abbott .CodeMirror-linenumber { color: #fbec5d /* lemon_meringue */; }\n\n.cm-s-abbott .CodeMirror-guttermarker { color: #f63f05 /* cinnabar */; }\n\n/* Roughly equivalent to Vim's FoldColumn group. */\n.cm-s-abbott .CodeMirror-guttermarker-subtle { color: #fbb32f /* marigold */; }\n\n/*\n * Roughly equivalent to Vim's CursorColumn group. (We use a brighter color\n * since Vim's cursorcolumn option highlights a whole column, whereas\n * CodeMirror's rule just highlights a thin line.)\n */\n.cm-s-abbott .CodeMirror-ruler { border-color: #745d42 /* cocoa */; }\n\n/* Equivalent to Vim's Cursor group in insert mode. */\n.cm-s-abbott .CodeMirror-cursor { border-color: #a0ea00 /* chartreuse */; }\n\n/* Equivalent to Vim's Cursor group in normal mode. */\n.cm-s-abbott.cm-fat-cursor .CodeMirror-cursor,\n.cm-s-abbott .cm-animate-fat-cursor {\n /*\n * CodeMirror doesn't allow changing the foreground color of the character\n * under the cursor, so we can't use a reverse video effect for the cursor.\n * Instead, make it semitransparent.\n */\n background: rgba(160, 234, 0, 0.5) /* chartreuse */;\n}\n.cm-s-abbott.cm-fat-cursor .CodeMirror-cursors {\n /*\n * Boost the z-index so the fat cursor shows up on top of text and\n * matchingbracket/matchingtag highlights.\n */\n z-index: 3;\n}\n\n/* Equivalent to Vim's Cursor group in replace mode. */\n.cm-s-abbott .CodeMirror-overwrite .CodeMirror-cursor {\n border-bottom: 1px solid #a0ea00 /* chartreuse */;\n border-left: none;\n width: auto;\n}\n\n/* Roughly equivalent to Vim's CursorIM group. */\n.cm-s-abbott .CodeMirror-secondarycursor {\n border-color: #00ff7f /* seafoam_green */;\n}\n\n/* Roughly equivalent to Vim's Visual group. */\n.cm-s-abbott .CodeMirror-selected,\n.cm-s-abbott.CodeMirror-focused .CodeMirror-selected {\n background: #273900 /* dark_olive */;\n}\n.cm-s-abbott .CodeMirror-line::selection,\n.cm-s-abbott .CodeMirror-line > span::selection,\n.cm-s-abbott .CodeMirror-line > span > span::selection {\n background: #273900 /* dark_olive */;\n}\n.cm-s-abbott .CodeMirror-line::-moz-selection,\n.cm-s-abbott .CodeMirror-line > span::-moz-selection,\n.cm-s-abbott .CodeMirror-line > span > span::-moz-selection {\n background: #273900 /* dark_olive */;\n}\n\n/* Roughly equivalent to Vim's SpecialKey group. */\n.cm-s-abbott .cm-tab { color: #00ff7f /* seafoam_green */; }\n\n/* Equivalent to Vim's Search group. */\n.cm-s-abbott .cm-searching {\n background: #fef3b4 /* vanilla_cream */ !important;\n color: #231c14 /* bistre */ !important;\n}\n\n/* Style syntax highlighting modes: */\n\n/* Equivalent to Vim's Comment group. */\n.cm-s-abbott span.cm-comment {\n color: #fbb32f /* marigold */;\n font-style: italic;\n}\n\n/* Equivalent to Vim's String group. */\n.cm-s-abbott span.cm-string,\n.cm-s-abbott span.cm-string-2 {\n color: #e6a2f3 /* lavender */;\n}\n\n/* Equivalent to Vim's Constant group. */\n.cm-s-abbott span.cm-number,\n.cm-s-abbott span.cm-string.cm-url { color: #f63f05 /* cinnabar */; }\n\n/* Roughly equivalent to Vim's SpecialKey group. */\n.cm-s-abbott span.cm-invalidchar { color: #00ff7f /* seafoam_green */; }\n\n/* Equivalent to Vim's Special group. */\n.cm-s-abbott span.cm-atom { color: #fef3b4 /* vanilla_cream */; }\n\n/* Equivalent to Vim's Delimiter group. */\n.cm-s-abbott span.cm-bracket,\n.cm-s-abbott span.cm-punctuation {\n color: #fef3b4 /* vanilla_cream */;\n}\n\n/* Equivalent Vim's Operator group. */\n.cm-s-abbott span.cm-operator { font-weight: bold; }\n\n/* Roughly equivalent to Vim's Identifier group. */\n.cm-s-abbott span.cm-def,\n.cm-s-abbott span.cm-variable,\n.cm-s-abbott span.cm-variable-2,\n.cm-s-abbott span.cm-variable-3 {\n color: #8ccdf0 /* periwinkle_blue */;\n}\n\n/* Roughly equivalent to Vim's Function group. */\n.cm-s-abbott span.cm-builtin,\n.cm-s-abbott span.cm-property,\n.cm-s-abbott span.cm-qualifier {\n color: #3f91f1 /* cornflower_blue */;\n}\n\n/* Equivalent to Vim's Type group. */\n.cm-s-abbott span.cm-type { color: #24a507 /* forest_green */; }\n\n/* Equivalent to Vim's Keyword group. */\n.cm-s-abbott span.cm-keyword {\n color: #d80450 /* crimson */;\n font-weight: bold;\n}\n\n/* Equivalent to Vim's PreProc group. */\n.cm-s-abbott span.cm-meta { color: #ec6c99 /* french_pink */; }\n\n/* Equivalent to Vim's htmlTagName group (linked to Statement). */\n.cm-s-abbott span.cm-tag {\n color: #d80450 /* crimson */;\n font-weight: bold;\n}\n\n/* Equivalent to Vim's htmlArg group (linked to Type). */\n.cm-s-abbott span.cm-attribute { color: #24a507 /* forest_green */; }\n\n/* Equivalent to Vim's htmlH1, markdownH1, etc. groups (linked to Title). */\n.cm-s-abbott span.cm-header {\n color: #d80450 /* crimson */;\n font-weight: bold;\n}\n\n/* Equivalent to Vim's markdownRule group (linked to PreProc). */\n.cm-s-abbott span.cm-hr { color: #ec6c99 /* french_pink */; }\n\n/* Roughly equivalent to Vim's Underlined group. */\n.cm-s-abbott span.cm-link { color: #e6a2f3 /* lavender */; }\n\n/* Equivalent to Vim's diffRemoved group. */\n.cm-s-abbott span.cm-negative {\n background: #d80450 /* crimson */;\n color: #231c14 /* bistre */;\n}\n\n/* Equivalent to Vim's diffAdded group. */\n.cm-s-abbott span.cm-positive {\n background: #a0ea00 /* chartreuse */;\n color: #231c14 /* bistre */;\n font-weight: bold;\n}\n\n/* Equivalent to Vim's Error group. */\n.cm-s-abbott span.cm-error {\n background: #d80450 /* crimson */;\n color: #231c14 /* bistre */;\n}\n\n/* Style addons: */\n\n/* Equivalent to Vim's MatchParen group. */\n.cm-s-abbott span.CodeMirror-matchingbracket {\n background: #745d42 /* cocoa */ !important;\n color: #231c14 /* bistre */ !important;\n font-weight: bold;\n}\n\n/*\n * Roughly equivalent to Vim's Error group. (Vim doesn't seem to have a direct\n * equivalent in its own matchparen plugin, but many syntax highlighting plugins\n * mark mismatched brackets as Error.)\n */\n.cm-s-abbott span.CodeMirror-nonmatchingbracket {\n background: #d80450 /* crimson */ !important;\n color: #231c14 /* bistre */ !important;\n}\n\n.cm-s-abbott .CodeMirror-matchingtag,\n.cm-s-abbott .cm-matchhighlight {\n outline: 1px solid #39a78d /* zomp */;\n}\n\n/* Equivalent to Vim's CursorLine group. */\n.cm-s-abbott .CodeMirror-activeline-background,\n.cm-s-abbott .CodeMirror-activeline-gutter {\n background: #3c3022 /* chocolate */;\n}\n\n/* Equivalent to Vim's CursorLineNr group. */\n.cm-s-abbott .CodeMirror-activeline-gutter .CodeMirror-linenumber {\n color: #d8ff84 /* pastel_chartreuse */;\n font-weight: bold;\n}\n\n/* Roughly equivalent to Vim's Folded group. */\n.cm-s-abbott .CodeMirror-foldmarker {\n color: #f63f05 /* cinnabar */;\n text-shadow: none;\n}\n"],sourceRoot:""}]);const s=i},7638:n=>{n.exports=function(n){var o=[];return o.toString=function(){return this.map((function(o){var r="",e=void 0!==o[5];return o[4]&&(r+="@supports (".concat(o[4],") {")),o[2]&&(r+="@media ".concat(o[2]," {")),e&&(r+="@layer".concat(o[5].length>0?" ".concat(o[5]):""," {")),r+=n(o),e&&(r+="}"),o[2]&&(r+="}"),o[4]&&(r+="}"),r})).join("")},o.i=function(n,r,e,t,a){"string"==typeof n&&(n=[[null,n,void 0]]);var i={};if(e)for(var s=0;s0?" ".concat(l[5]):""," {").concat(l[1],"}")),l[5]=a),r&&(l[2]?(l[1]="@media ".concat(l[2]," {").concat(l[1],"}"),l[2]=r):l[2]=r),t&&(l[4]?(l[1]="@supports (".concat(l[4],") {").concat(l[1],"}"),l[4]=t):l[4]="".concat(t)),o.push(l))}},o}},34663:n=>{n.exports=function(n){var o=n[1],r=n[3];if(!r)return o;if("function"==typeof btoa){var e=btoa(unescape(encodeURIComponent(JSON.stringify(r)))),t="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(e),a="/*# ".concat(t," */"),i=r.sources.map((function(n){return"/*# sourceURL=".concat(r.sourceRoot||"").concat(n," */")}));return[o].concat(i).concat([a]).join("\n")}return[o].join("\n")}},64569:(n,o,r)=>{r.r(o),r.d(o,{default:()=>g});var e=r(1892),t=r.n(e),a=r(95760),i=r.n(a),s=r(38311),c=r.n(s),A=r(58192),l=r.n(A),m=r(38060),u=r.n(m),b=r(54865),C=r.n(b),d=r(86815),p={};p.styleTagTransform=C(),p.setAttributes=l(),p.insert=c().bind(null,"head"),p.domAPI=i(),p.insertStyleElement=u(),t()(d.Z,p);const g=d.Z&&d.Z.locals?d.Z.locals:void 0},1892:n=>{var o=[];function r(n){for(var r=-1,e=0;e{var o={};n.exports=function(n,r){var e=function(n){if(void 0===o[n]){var r=document.querySelector(n);if(window.HTMLIFrameElement&&r instanceof window.HTMLIFrameElement)try{r=r.contentDocument.head}catch(n){r=null}o[n]=r}return o[n]}(n);if(!e)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");e.appendChild(r)}},38060:n=>{n.exports=function(n){var o=document.createElement("style");return n.setAttributes(o,n.attributes),n.insert(o,n.options),o}},58192:(n,o,r)=>{n.exports=function(n){var o=r.nc;o&&n.setAttribute("nonce",o)}},95760:n=>{n.exports=function(n){var o=n.insertStyleElement(n);return{update:function(r){!function(n,o,r){var e="";r.supports&&(e+="@supports (".concat(r.supports,") {")),r.media&&(e+="@media ".concat(r.media," {"));var t=void 0!==r.layer;t&&(e+="@layer".concat(r.layer.length>0?" ".concat(r.layer):""," {")),e+=r.css,t&&(e+="}"),r.media&&(e+="}"),r.supports&&(e+="}");var a=r.sourceMap;a&&"undefined"!=typeof btoa&&(e+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(a))))," */")),o.styleTagTransform(e,n,o.options)}(o,n,r)},remove:function(){!function(n){if(null===n.parentNode)return!1;n.parentNode.removeChild(n)}(o)}}}},54865:n=>{n.exports=function(n,o){if(o.styleSheet)o.styleSheet.cssText=n;else{for(;o.firstChild;)o.removeChild(o.firstChild);o.appendChild(document.createTextNode(n))}}}}]); +//# sourceMappingURL=4569.f374f9d.js.map \ No newline at end of file diff --git a/_static/build/4569.f374f9d.js.map b/_static/build/4569.f374f9d.js.map new file mode 100644 index 0000000..ddd1a5c --- /dev/null +++ b/_static/build/4569.f374f9d.js.map @@ -0,0 +1 @@ +{"version":3,"file":"4569.f374f9d.js","mappings":"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","sources":["webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/theme/abbott.css","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/css-loader/dist/runtime/api.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/css-loader/dist/runtime/sourceMaps.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/theme/abbott.css?b765","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/insertBySelector.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/insertStyleElement.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/styleDomAPI.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/styleTagTransform.js"],"sourcesContent":["// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"/*\\n * abbott.css\\n * A warm, dark theme for prose and code, with pastels and pretty greens.\\n *\\n * Ported from abbott.vim (https://github.com/bcat/abbott.vim) version 2.1.\\n * Original design and CodeMirror port by Jonathan Rascher.\\n *\\n * This theme shares the following color palette with the Vim color scheme.\\n *\\n * Brown shades:\\n * bistre: #231c14\\n * chocolate: #3c3022\\n * cocoa: #745d42\\n * vanilla_cream: #fef3b4\\n *\\n * Red shades:\\n * crimson: #d80450\\n * cinnabar: #f63f05\\n *\\n * Green shades:\\n * dark_olive: #273900\\n * forest_green: #24a507\\n * chartreuse: #a0ea00\\n * pastel_chartreuse: #d8ff84\\n *\\n * Yellow shades:\\n * marigold: #fbb32f\\n * lemon_meringue: #fbec5d\\n *\\n * Blue shades:\\n * cornflower_blue: #3f91f1\\n * periwinkle_blue: #8ccdf0\\n *\\n * Magenta shades:\\n * french_pink: #ec6c99\\n * lavender: #e6a2f3\\n *\\n * Cyan shades:\\n * zomp: #39a78d\\n * seafoam_green: #00ff7f\\n */\\n\\n/* Style the UI: */\\n\\n/* Equivalent to Vim's Normal group. */\\n.cm-s-abbott.CodeMirror {\\n background: #231c14 /* bistre */;\\n color: #d8ff84 /* pastel_chartreuse */;\\n}\\n\\n/* Roughly equivalent to Vim's LineNr group. */\\n.cm-s-abbott .CodeMirror-gutters {\\n background: #231c14 /* bistre */;\\n border: none;\\n}\\n.cm-s-abbott .CodeMirror-linenumber { color: #fbec5d /* lemon_meringue */; }\\n\\n.cm-s-abbott .CodeMirror-guttermarker { color: #f63f05 /* cinnabar */; }\\n\\n/* Roughly equivalent to Vim's FoldColumn group. */\\n.cm-s-abbott .CodeMirror-guttermarker-subtle { color: #fbb32f /* marigold */; }\\n\\n/*\\n * Roughly equivalent to Vim's CursorColumn group. (We use a brighter color\\n * since Vim's cursorcolumn option highlights a whole column, whereas\\n * CodeMirror's rule just highlights a thin line.)\\n */\\n.cm-s-abbott .CodeMirror-ruler { border-color: #745d42 /* cocoa */; }\\n\\n/* Equivalent to Vim's Cursor group in insert mode. */\\n.cm-s-abbott .CodeMirror-cursor { border-color: #a0ea00 /* chartreuse */; }\\n\\n/* Equivalent to Vim's Cursor group in normal mode. */\\n.cm-s-abbott.cm-fat-cursor .CodeMirror-cursor,\\n.cm-s-abbott .cm-animate-fat-cursor {\\n /*\\n * CodeMirror doesn't allow changing the foreground color of the character\\n * under the cursor, so we can't use a reverse video effect for the cursor.\\n * Instead, make it semitransparent.\\n */\\n background: rgba(160, 234, 0, 0.5) /* chartreuse */;\\n}\\n.cm-s-abbott.cm-fat-cursor .CodeMirror-cursors {\\n /*\\n * Boost the z-index so the fat cursor shows up on top of text and\\n * matchingbracket/matchingtag highlights.\\n */\\n z-index: 3;\\n}\\n\\n/* Equivalent to Vim's Cursor group in replace mode. */\\n.cm-s-abbott .CodeMirror-overwrite .CodeMirror-cursor {\\n border-bottom: 1px solid #a0ea00 /* chartreuse */;\\n border-left: none;\\n width: auto;\\n}\\n\\n/* Roughly equivalent to Vim's CursorIM group. */\\n.cm-s-abbott .CodeMirror-secondarycursor {\\n border-color: #00ff7f /* seafoam_green */;\\n}\\n\\n/* Roughly equivalent to Vim's Visual group. */\\n.cm-s-abbott .CodeMirror-selected,\\n.cm-s-abbott.CodeMirror-focused .CodeMirror-selected {\\n background: #273900 /* dark_olive */;\\n}\\n.cm-s-abbott .CodeMirror-line::selection,\\n.cm-s-abbott .CodeMirror-line > span::selection,\\n.cm-s-abbott .CodeMirror-line > span > span::selection {\\n background: #273900 /* dark_olive */;\\n}\\n.cm-s-abbott .CodeMirror-line::-moz-selection,\\n.cm-s-abbott .CodeMirror-line > span::-moz-selection,\\n.cm-s-abbott .CodeMirror-line > span > span::-moz-selection {\\n background: #273900 /* dark_olive */;\\n}\\n\\n/* Roughly equivalent to Vim's SpecialKey group. */\\n.cm-s-abbott .cm-tab { color: #00ff7f /* seafoam_green */; }\\n\\n/* Equivalent to Vim's Search group. */\\n.cm-s-abbott .cm-searching {\\n background: #fef3b4 /* vanilla_cream */ !important;\\n color: #231c14 /* bistre */ !important;\\n}\\n\\n/* Style syntax highlighting modes: */\\n\\n/* Equivalent to Vim's Comment group. */\\n.cm-s-abbott span.cm-comment {\\n color: #fbb32f /* marigold */;\\n font-style: italic;\\n}\\n\\n/* Equivalent to Vim's String group. */\\n.cm-s-abbott span.cm-string,\\n.cm-s-abbott span.cm-string-2 {\\n color: #e6a2f3 /* lavender */;\\n}\\n\\n/* Equivalent to Vim's Constant group. */\\n.cm-s-abbott span.cm-number,\\n.cm-s-abbott span.cm-string.cm-url { color: #f63f05 /* cinnabar */; }\\n\\n/* Roughly equivalent to Vim's SpecialKey group. */\\n.cm-s-abbott span.cm-invalidchar { color: #00ff7f /* seafoam_green */; }\\n\\n/* Equivalent to Vim's Special group. */\\n.cm-s-abbott span.cm-atom { color: #fef3b4 /* vanilla_cream */; }\\n\\n/* Equivalent to Vim's Delimiter group. */\\n.cm-s-abbott span.cm-bracket,\\n.cm-s-abbott span.cm-punctuation {\\n color: #fef3b4 /* vanilla_cream */;\\n}\\n\\n/* Equivalent Vim's Operator group. */\\n.cm-s-abbott span.cm-operator { font-weight: bold; }\\n\\n/* Roughly equivalent to Vim's Identifier group. */\\n.cm-s-abbott span.cm-def,\\n.cm-s-abbott span.cm-variable,\\n.cm-s-abbott span.cm-variable-2,\\n.cm-s-abbott span.cm-variable-3 {\\n color: #8ccdf0 /* periwinkle_blue */;\\n}\\n\\n/* Roughly equivalent to Vim's Function group. */\\n.cm-s-abbott span.cm-builtin,\\n.cm-s-abbott span.cm-property,\\n.cm-s-abbott span.cm-qualifier {\\n color: #3f91f1 /* cornflower_blue */;\\n}\\n\\n/* Equivalent to Vim's Type group. */\\n.cm-s-abbott span.cm-type { color: #24a507 /* forest_green */; }\\n\\n/* Equivalent to Vim's Keyword group. */\\n.cm-s-abbott span.cm-keyword {\\n color: #d80450 /* crimson */;\\n font-weight: bold;\\n}\\n\\n/* Equivalent to Vim's PreProc group. */\\n.cm-s-abbott span.cm-meta { color: #ec6c99 /* french_pink */; }\\n\\n/* Equivalent to Vim's htmlTagName group (linked to Statement). */\\n.cm-s-abbott span.cm-tag {\\n color: #d80450 /* crimson */;\\n font-weight: bold;\\n}\\n\\n/* Equivalent to Vim's htmlArg group (linked to Type). */\\n.cm-s-abbott span.cm-attribute { color: #24a507 /* forest_green */; }\\n\\n/* Equivalent to Vim's htmlH1, markdownH1, etc. groups (linked to Title). */\\n.cm-s-abbott span.cm-header {\\n color: #d80450 /* crimson */;\\n font-weight: bold;\\n}\\n\\n/* Equivalent to Vim's markdownRule group (linked to PreProc). */\\n.cm-s-abbott span.cm-hr { color: #ec6c99 /* french_pink */; }\\n\\n/* Roughly equivalent to Vim's Underlined group. */\\n.cm-s-abbott span.cm-link { color: #e6a2f3 /* lavender */; }\\n\\n/* Equivalent to Vim's diffRemoved group. */\\n.cm-s-abbott span.cm-negative {\\n background: #d80450 /* crimson */;\\n color: #231c14 /* bistre */;\\n}\\n\\n/* Equivalent to Vim's diffAdded group. */\\n.cm-s-abbott span.cm-positive {\\n background: #a0ea00 /* chartreuse */;\\n color: #231c14 /* bistre */;\\n font-weight: bold;\\n}\\n\\n/* Equivalent to Vim's Error group. */\\n.cm-s-abbott span.cm-error {\\n background: #d80450 /* crimson */;\\n color: #231c14 /* bistre */;\\n}\\n\\n/* Style addons: */\\n\\n/* Equivalent to Vim's MatchParen group. */\\n.cm-s-abbott span.CodeMirror-matchingbracket {\\n background: #745d42 /* cocoa */ !important;\\n color: #231c14 /* bistre */ !important;\\n font-weight: bold;\\n}\\n\\n/*\\n * Roughly equivalent to Vim's Error group. (Vim doesn't seem to have a direct\\n * equivalent in its own matchparen plugin, but many syntax highlighting plugins\\n * mark mismatched brackets as Error.)\\n */\\n.cm-s-abbott span.CodeMirror-nonmatchingbracket {\\n background: #d80450 /* crimson */ !important;\\n color: #231c14 /* bistre */ !important;\\n}\\n\\n.cm-s-abbott .CodeMirror-matchingtag,\\n.cm-s-abbott .cm-matchhighlight {\\n outline: 1px solid #39a78d /* zomp */;\\n}\\n\\n/* Equivalent to Vim's CursorLine group. */\\n.cm-s-abbott .CodeMirror-activeline-background,\\n.cm-s-abbott .CodeMirror-activeline-gutter {\\n background: #3c3022 /* chocolate */;\\n}\\n\\n/* Equivalent to Vim's CursorLineNr group. */\\n.cm-s-abbott .CodeMirror-activeline-gutter .CodeMirror-linenumber {\\n color: #d8ff84 /* pastel_chartreuse */;\\n font-weight: bold;\\n}\\n\\n/* Roughly equivalent to Vim's Folded group. */\\n.cm-s-abbott .CodeMirror-foldmarker {\\n color: #f63f05 /* cinnabar */;\\n text-shadow: none;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./../node_modules/codemirror/theme/abbott.css\"],\"names\":[],\"mappings\":\"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwCE;;AAEF,kBAAkB;;AAElB,sCAAsC;AACtC;EACE,gCAAgC;EAChC,sCAAsC;AACxC;;AAEA,8CAA8C;AAC9C;EACE,gCAAgC;EAChC,YAAY;AACd;AACA,sCAAsC,mCAAmC,EAAE;;AAE3E,wCAAwC,6BAA6B,EAAE;;AAEvE,kDAAkD;AAClD,+CAA+C,6BAA6B,EAAE;;AAE9E;;;;EAIE;AACF,iCAAiC,iCAAiC,EAAE;;AAEpE,qDAAqD;AACrD,kCAAkC,sCAAsC,EAAE;;AAE1E,qDAAqD;AACrD;;EAEE;;;;IAIE;EACF,mDAAmD;AACrD;AACA;EACE;;;IAGE;EACF,UAAU;AACZ;;AAEA,sDAAsD;AACtD;EACE,iDAAiD;EACjD,iBAAiB;EACjB,WAAW;AACb;;AAEA,gDAAgD;AAChD;EACE,yCAAyC;AAC3C;;AAEA,8CAA8C;AAC9C;;EAEE,oCAAoC;AACtC;AACA;;;EAGE,oCAAoC;AACtC;AACA;;;EAGE,oCAAoC;AACtC;;AAEA,kDAAkD;AAClD,uBAAuB,kCAAkC,EAAE;;AAE3D,sCAAsC;AACtC;EACE,kDAAkD;EAClD,sCAAsC;AACxC;;AAEA,qCAAqC;;AAErC,uCAAuC;AACvC;EACE,6BAA6B;EAC7B,kBAAkB;AACpB;;AAEA,sCAAsC;AACtC;;EAEE,6BAA6B;AAC/B;;AAEA,wCAAwC;AACxC;qCACqC,6BAA6B,EAAE;;AAEpE,kDAAkD;AAClD,mCAAmC,kCAAkC,EAAE;;AAEvE,uCAAuC;AACvC,4BAA4B,kCAAkC,EAAE;;AAEhE,yCAAyC;AACzC;;EAEE,kCAAkC;AACpC;;AAEA,qCAAqC;AACrC,gCAAgC,iBAAiB,EAAE;;AAEnD,kDAAkD;AAClD;;;;EAIE,oCAAoC;AACtC;;AAEA,gDAAgD;AAChD;;;EAGE,oCAAoC;AACtC;;AAEA,oCAAoC;AACpC,4BAA4B,iCAAiC,EAAE;;AAE/D,uCAAuC;AACvC;EACE,4BAA4B;EAC5B,iBAAiB;AACnB;;AAEA,uCAAuC;AACvC,4BAA4B,gCAAgC,EAAE;;AAE9D,iEAAiE;AACjE;EACE,4BAA4B;EAC5B,iBAAiB;AACnB;;AAEA,wDAAwD;AACxD,iCAAiC,iCAAiC,EAAE;;AAEpE,2EAA2E;AAC3E;EACE,4BAA4B;EAC5B,iBAAiB;AACnB;;AAEA,gEAAgE;AAChE,0BAA0B,gCAAgC,EAAE;;AAE5D,kDAAkD;AAClD,4BAA4B,6BAA6B,EAAE;;AAE3D,2CAA2C;AAC3C;EACE,iCAAiC;EACjC,2BAA2B;AAC7B;;AAEA,yCAAyC;AACzC;EACE,oCAAoC;EACpC,2BAA2B;EAC3B,iBAAiB;AACnB;;AAEA,qCAAqC;AACrC;EACE,iCAAiC;EACjC,2BAA2B;AAC7B;;AAEA,kBAAkB;;AAElB,0CAA0C;AAC1C;EACE,0CAA0C;EAC1C,sCAAsC;EACtC,iBAAiB;AACnB;;AAEA;;;;EAIE;AACF;EACE,4CAA4C;EAC5C,sCAAsC;AACxC;;AAEA;;EAEE,qCAAqC;AACvC;;AAEA,0CAA0C;AAC1C;;EAEE,mCAAmC;AACrC;;AAEA,4CAA4C;AAC5C;EACE,sCAAsC;EACtC,iBAAiB;AACnB;;AAEA,8CAA8C;AAC9C;EACE,6BAA6B;EAC7B,iBAAiB;AACnB\",\"sourcesContent\":[\"/*\\n * abbott.css\\n * A warm, dark theme for prose and code, with pastels and pretty greens.\\n *\\n * Ported from abbott.vim (https://github.com/bcat/abbott.vim) version 2.1.\\n * Original design and CodeMirror port by Jonathan Rascher.\\n *\\n * This theme shares the following color palette with the Vim color scheme.\\n *\\n * Brown shades:\\n * bistre: #231c14\\n * chocolate: #3c3022\\n * cocoa: #745d42\\n * vanilla_cream: #fef3b4\\n *\\n * Red shades:\\n * crimson: #d80450\\n * cinnabar: #f63f05\\n *\\n * Green shades:\\n * dark_olive: #273900\\n * forest_green: #24a507\\n * chartreuse: #a0ea00\\n * pastel_chartreuse: #d8ff84\\n *\\n * Yellow shades:\\n * marigold: #fbb32f\\n * lemon_meringue: #fbec5d\\n *\\n * Blue shades:\\n * cornflower_blue: #3f91f1\\n * periwinkle_blue: #8ccdf0\\n *\\n * Magenta shades:\\n * french_pink: #ec6c99\\n * lavender: #e6a2f3\\n *\\n * Cyan shades:\\n * zomp: #39a78d\\n * seafoam_green: #00ff7f\\n */\\n\\n/* Style the UI: */\\n\\n/* Equivalent to Vim's Normal group. */\\n.cm-s-abbott.CodeMirror {\\n background: #231c14 /* bistre */;\\n color: #d8ff84 /* pastel_chartreuse */;\\n}\\n\\n/* Roughly equivalent to Vim's LineNr group. */\\n.cm-s-abbott .CodeMirror-gutters {\\n background: #231c14 /* bistre */;\\n border: none;\\n}\\n.cm-s-abbott .CodeMirror-linenumber { color: #fbec5d /* lemon_meringue */; }\\n\\n.cm-s-abbott .CodeMirror-guttermarker { color: #f63f05 /* cinnabar */; }\\n\\n/* Roughly equivalent to Vim's FoldColumn group. */\\n.cm-s-abbott .CodeMirror-guttermarker-subtle { color: #fbb32f /* marigold */; }\\n\\n/*\\n * Roughly equivalent to Vim's CursorColumn group. (We use a brighter color\\n * since Vim's cursorcolumn option highlights a whole column, whereas\\n * CodeMirror's rule just highlights a thin line.)\\n */\\n.cm-s-abbott .CodeMirror-ruler { border-color: #745d42 /* cocoa */; }\\n\\n/* Equivalent to Vim's Cursor group in insert mode. */\\n.cm-s-abbott .CodeMirror-cursor { border-color: #a0ea00 /* chartreuse */; }\\n\\n/* Equivalent to Vim's Cursor group in normal mode. */\\n.cm-s-abbott.cm-fat-cursor .CodeMirror-cursor,\\n.cm-s-abbott .cm-animate-fat-cursor {\\n /*\\n * CodeMirror doesn't allow changing the foreground color of the character\\n * under the cursor, so we can't use a reverse video effect for the cursor.\\n * Instead, make it semitransparent.\\n */\\n background: rgba(160, 234, 0, 0.5) /* chartreuse */;\\n}\\n.cm-s-abbott.cm-fat-cursor .CodeMirror-cursors {\\n /*\\n * Boost the z-index so the fat cursor shows up on top of text and\\n * matchingbracket/matchingtag highlights.\\n */\\n z-index: 3;\\n}\\n\\n/* Equivalent to Vim's Cursor group in replace mode. */\\n.cm-s-abbott .CodeMirror-overwrite .CodeMirror-cursor {\\n border-bottom: 1px solid #a0ea00 /* chartreuse */;\\n border-left: none;\\n width: auto;\\n}\\n\\n/* Roughly equivalent to Vim's CursorIM group. */\\n.cm-s-abbott .CodeMirror-secondarycursor {\\n border-color: #00ff7f /* seafoam_green */;\\n}\\n\\n/* Roughly equivalent to Vim's Visual group. */\\n.cm-s-abbott .CodeMirror-selected,\\n.cm-s-abbott.CodeMirror-focused .CodeMirror-selected {\\n background: #273900 /* dark_olive */;\\n}\\n.cm-s-abbott .CodeMirror-line::selection,\\n.cm-s-abbott .CodeMirror-line > span::selection,\\n.cm-s-abbott .CodeMirror-line > span > span::selection {\\n background: #273900 /* dark_olive */;\\n}\\n.cm-s-abbott .CodeMirror-line::-moz-selection,\\n.cm-s-abbott .CodeMirror-line > span::-moz-selection,\\n.cm-s-abbott .CodeMirror-line > span > span::-moz-selection {\\n background: #273900 /* dark_olive */;\\n}\\n\\n/* Roughly equivalent to Vim's SpecialKey group. */\\n.cm-s-abbott .cm-tab { color: #00ff7f /* seafoam_green */; }\\n\\n/* Equivalent to Vim's Search group. */\\n.cm-s-abbott .cm-searching {\\n background: #fef3b4 /* vanilla_cream */ !important;\\n color: #231c14 /* bistre */ !important;\\n}\\n\\n/* Style syntax highlighting modes: */\\n\\n/* Equivalent to Vim's Comment group. */\\n.cm-s-abbott span.cm-comment {\\n color: #fbb32f /* marigold */;\\n font-style: italic;\\n}\\n\\n/* Equivalent to Vim's String group. */\\n.cm-s-abbott span.cm-string,\\n.cm-s-abbott span.cm-string-2 {\\n color: #e6a2f3 /* lavender */;\\n}\\n\\n/* Equivalent to Vim's Constant group. */\\n.cm-s-abbott span.cm-number,\\n.cm-s-abbott span.cm-string.cm-url { color: #f63f05 /* cinnabar */; }\\n\\n/* Roughly equivalent to Vim's SpecialKey group. */\\n.cm-s-abbott span.cm-invalidchar { color: #00ff7f /* seafoam_green */; }\\n\\n/* Equivalent to Vim's Special group. */\\n.cm-s-abbott span.cm-atom { color: #fef3b4 /* vanilla_cream */; }\\n\\n/* Equivalent to Vim's Delimiter group. */\\n.cm-s-abbott span.cm-bracket,\\n.cm-s-abbott span.cm-punctuation {\\n color: #fef3b4 /* vanilla_cream */;\\n}\\n\\n/* Equivalent Vim's Operator group. */\\n.cm-s-abbott span.cm-operator { font-weight: bold; }\\n\\n/* Roughly equivalent to Vim's Identifier group. */\\n.cm-s-abbott span.cm-def,\\n.cm-s-abbott span.cm-variable,\\n.cm-s-abbott span.cm-variable-2,\\n.cm-s-abbott span.cm-variable-3 {\\n color: #8ccdf0 /* periwinkle_blue */;\\n}\\n\\n/* Roughly equivalent to Vim's Function group. */\\n.cm-s-abbott span.cm-builtin,\\n.cm-s-abbott span.cm-property,\\n.cm-s-abbott span.cm-qualifier {\\n color: #3f91f1 /* cornflower_blue */;\\n}\\n\\n/* Equivalent to Vim's Type group. */\\n.cm-s-abbott span.cm-type { color: #24a507 /* forest_green */; }\\n\\n/* Equivalent to Vim's Keyword group. */\\n.cm-s-abbott span.cm-keyword {\\n color: #d80450 /* crimson */;\\n font-weight: bold;\\n}\\n\\n/* Equivalent to Vim's PreProc group. */\\n.cm-s-abbott span.cm-meta { color: #ec6c99 /* french_pink */; }\\n\\n/* Equivalent to Vim's htmlTagName group (linked to Statement). */\\n.cm-s-abbott span.cm-tag {\\n color: #d80450 /* crimson */;\\n font-weight: bold;\\n}\\n\\n/* Equivalent to Vim's htmlArg group (linked to Type). */\\n.cm-s-abbott span.cm-attribute { color: #24a507 /* forest_green */; }\\n\\n/* Equivalent to Vim's htmlH1, markdownH1, etc. groups (linked to Title). */\\n.cm-s-abbott span.cm-header {\\n color: #d80450 /* crimson */;\\n font-weight: bold;\\n}\\n\\n/* Equivalent to Vim's markdownRule group (linked to PreProc). */\\n.cm-s-abbott span.cm-hr { color: #ec6c99 /* french_pink */; }\\n\\n/* Roughly equivalent to Vim's Underlined group. */\\n.cm-s-abbott span.cm-link { color: #e6a2f3 /* lavender */; }\\n\\n/* Equivalent to Vim's diffRemoved group. */\\n.cm-s-abbott span.cm-negative {\\n background: #d80450 /* crimson */;\\n color: #231c14 /* bistre */;\\n}\\n\\n/* Equivalent to Vim's diffAdded group. */\\n.cm-s-abbott span.cm-positive {\\n background: #a0ea00 /* chartreuse */;\\n color: #231c14 /* bistre */;\\n font-weight: bold;\\n}\\n\\n/* Equivalent to Vim's Error group. */\\n.cm-s-abbott span.cm-error {\\n background: #d80450 /* crimson */;\\n color: #231c14 /* bistre */;\\n}\\n\\n/* Style addons: */\\n\\n/* Equivalent to Vim's MatchParen group. */\\n.cm-s-abbott span.CodeMirror-matchingbracket {\\n background: #745d42 /* cocoa */ !important;\\n color: #231c14 /* bistre */ !important;\\n font-weight: bold;\\n}\\n\\n/*\\n * Roughly equivalent to Vim's Error group. (Vim doesn't seem to have a direct\\n * equivalent in its own matchparen plugin, but many syntax highlighting plugins\\n * mark mismatched brackets as Error.)\\n */\\n.cm-s-abbott span.CodeMirror-nonmatchingbracket {\\n background: #d80450 /* crimson */ !important;\\n color: #231c14 /* bistre */ !important;\\n}\\n\\n.cm-s-abbott .CodeMirror-matchingtag,\\n.cm-s-abbott .cm-matchhighlight {\\n outline: 1px solid #39a78d /* zomp */;\\n}\\n\\n/* Equivalent to Vim's CursorLine group. */\\n.cm-s-abbott .CodeMirror-activeline-background,\\n.cm-s-abbott .CodeMirror-activeline-gutter {\\n background: #3c3022 /* chocolate */;\\n}\\n\\n/* Equivalent to Vim's CursorLineNr group. */\\n.cm-s-abbott .CodeMirror-activeline-gutter .CodeMirror-linenumber {\\n color: #d8ff84 /* pastel_chartreuse */;\\n font-weight: bold;\\n}\\n\\n/* Roughly equivalent to Vim's Folded group. */\\n.cm-s-abbott .CodeMirror-foldmarker {\\n color: #f63f05 /* cinnabar */;\\n text-shadow: none;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\nmodule.exports = function (cssWithMappingToString) {\n var list = [];\n\n // return the list of modules as css string\n list.toString = function toString() {\n return this.map(function (item) {\n var content = \"\";\n var needLayer = typeof item[5] !== \"undefined\";\n if (item[4]) {\n content += \"@supports (\".concat(item[4], \") {\");\n }\n if (item[2]) {\n content += \"@media \".concat(item[2], \" {\");\n }\n if (needLayer) {\n content += \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\");\n }\n content += cssWithMappingToString(item);\n if (needLayer) {\n content += \"}\";\n }\n if (item[2]) {\n content += \"}\";\n }\n if (item[4]) {\n content += \"}\";\n }\n return content;\n }).join(\"\");\n };\n\n // import a list of modules into the list\n list.i = function i(modules, media, dedupe, supports, layer) {\n if (typeof modules === \"string\") {\n modules = [[null, modules, undefined]];\n }\n var alreadyImportedModules = {};\n if (dedupe) {\n for (var k = 0; k < this.length; k++) {\n var id = this[k][0];\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n for (var _k = 0; _k < modules.length; _k++) {\n var item = [].concat(modules[_k]);\n if (dedupe && alreadyImportedModules[item[0]]) {\n continue;\n }\n if (typeof layer !== \"undefined\") {\n if (typeof item[5] === \"undefined\") {\n item[5] = layer;\n } else {\n item[1] = \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\").concat(item[1], \"}\");\n item[5] = layer;\n }\n }\n if (media) {\n if (!item[2]) {\n item[2] = media;\n } else {\n item[1] = \"@media \".concat(item[2], \" {\").concat(item[1], \"}\");\n item[2] = media;\n }\n }\n if (supports) {\n if (!item[4]) {\n item[4] = \"\".concat(supports);\n } else {\n item[1] = \"@supports (\".concat(item[4], \") {\").concat(item[1], \"}\");\n item[4] = supports;\n }\n }\n list.push(item);\n }\n };\n return list;\n};","\"use strict\";\n\nmodule.exports = function (item) {\n var content = item[1];\n var cssMapping = item[3];\n if (!cssMapping) {\n return content;\n }\n if (typeof btoa === \"function\") {\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(cssMapping))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n var sourceMapping = \"/*# \".concat(data, \" */\");\n var sourceURLs = cssMapping.sources.map(function (source) {\n return \"/*# sourceURL=\".concat(cssMapping.sourceRoot || \"\").concat(source, \" */\");\n });\n return [content].concat(sourceURLs).concat([sourceMapping]).join(\"\\n\");\n }\n return [content].join(\"\\n\");\n};","\n import API from \"!../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../css-loader/dist/cjs.js!./abbott.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../css-loader/dist/cjs.js!./abbott.css\";\n export default content && content.locals ? content.locals : undefined;\n","\"use strict\";\n\nvar stylesInDOM = [];\n\nfunction getIndexByIdentifier(identifier) {\n var result = -1;\n\n for (var i = 0; i < stylesInDOM.length; i++) {\n if (stylesInDOM[i].identifier === identifier) {\n result = i;\n break;\n }\n }\n\n return result;\n}\n\nfunction modulesToDom(list, options) {\n var idCountMap = {};\n var identifiers = [];\n\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var count = idCountMap[id] || 0;\n var identifier = \"\".concat(id, \" \").concat(count);\n idCountMap[id] = count + 1;\n var indexByIdentifier = getIndexByIdentifier(identifier);\n var obj = {\n css: item[1],\n media: item[2],\n sourceMap: item[3],\n supports: item[4],\n layer: item[5]\n };\n\n if (indexByIdentifier !== -1) {\n stylesInDOM[indexByIdentifier].references++;\n stylesInDOM[indexByIdentifier].updater(obj);\n } else {\n var updater = addElementStyle(obj, options);\n options.byIndex = i;\n stylesInDOM.splice(i, 0, {\n identifier: identifier,\n updater: updater,\n references: 1\n });\n }\n\n identifiers.push(identifier);\n }\n\n return identifiers;\n}\n\nfunction addElementStyle(obj, options) {\n var api = options.domAPI(options);\n api.update(obj);\n\n var updater = function updater(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap && newObj.supports === obj.supports && newObj.layer === obj.layer) {\n return;\n }\n\n api.update(obj = newObj);\n } else {\n api.remove();\n }\n };\n\n return updater;\n}\n\nmodule.exports = function (list, options) {\n options = options || {};\n list = list || [];\n var lastIdentifiers = modulesToDom(list, options);\n return function update(newList) {\n newList = newList || [];\n\n for (var i = 0; i < lastIdentifiers.length; i++) {\n var identifier = lastIdentifiers[i];\n var index = getIndexByIdentifier(identifier);\n stylesInDOM[index].references--;\n }\n\n var newLastIdentifiers = modulesToDom(newList, options);\n\n for (var _i = 0; _i < lastIdentifiers.length; _i++) {\n var _identifier = lastIdentifiers[_i];\n\n var _index = getIndexByIdentifier(_identifier);\n\n if (stylesInDOM[_index].references === 0) {\n stylesInDOM[_index].updater();\n\n stylesInDOM.splice(_index, 1);\n }\n }\n\n lastIdentifiers = newLastIdentifiers;\n };\n};","\"use strict\";\n\nvar memo = {};\n/* istanbul ignore next */\n\nfunction getTarget(target) {\n if (typeof memo[target] === \"undefined\") {\n var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself\n\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n\n memo[target] = styleTarget;\n }\n\n return memo[target];\n}\n/* istanbul ignore next */\n\n\nfunction insertBySelector(insert, style) {\n var target = getTarget(insert);\n\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n\n target.appendChild(style);\n}\n\nmodule.exports = insertBySelector;","\"use strict\";\n\n/* istanbul ignore next */\nfunction insertStyleElement(options) {\n var element = document.createElement(\"style\");\n options.setAttributes(element, options.attributes);\n options.insert(element, options.options);\n return element;\n}\n\nmodule.exports = insertStyleElement;","\"use strict\";\n\n/* istanbul ignore next */\nfunction setAttributesWithoutAttributes(styleElement) {\n var nonce = typeof __webpack_nonce__ !== \"undefined\" ? __webpack_nonce__ : null;\n\n if (nonce) {\n styleElement.setAttribute(\"nonce\", nonce);\n }\n}\n\nmodule.exports = setAttributesWithoutAttributes;","\"use strict\";\n\n/* istanbul ignore next */\nfunction apply(styleElement, options, obj) {\n var css = \"\";\n\n if (obj.supports) {\n css += \"@supports (\".concat(obj.supports, \") {\");\n }\n\n if (obj.media) {\n css += \"@media \".concat(obj.media, \" {\");\n }\n\n var needLayer = typeof obj.layer !== \"undefined\";\n\n if (needLayer) {\n css += \"@layer\".concat(obj.layer.length > 0 ? \" \".concat(obj.layer) : \"\", \" {\");\n }\n\n css += obj.css;\n\n if (needLayer) {\n css += \"}\";\n }\n\n if (obj.media) {\n css += \"}\";\n }\n\n if (obj.supports) {\n css += \"}\";\n }\n\n var sourceMap = obj.sourceMap;\n\n if (sourceMap && typeof btoa !== \"undefined\") {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n } // For old IE\n\n /* istanbul ignore if */\n\n\n options.styleTagTransform(css, styleElement, options.options);\n}\n\nfunction removeStyleElement(styleElement) {\n // istanbul ignore if\n if (styleElement.parentNode === null) {\n return false;\n }\n\n styleElement.parentNode.removeChild(styleElement);\n}\n/* istanbul ignore next */\n\n\nfunction domAPI(options) {\n var styleElement = options.insertStyleElement(options);\n return {\n update: function update(obj) {\n apply(styleElement, options, obj);\n },\n remove: function remove() {\n removeStyleElement(styleElement);\n }\n };\n}\n\nmodule.exports = domAPI;","\"use strict\";\n\n/* istanbul ignore next */\nfunction styleTagTransform(css, styleElement) {\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = css;\n } else {\n while (styleElement.firstChild) {\n styleElement.removeChild(styleElement.firstChild);\n }\n\n styleElement.appendChild(document.createTextNode(css));\n }\n}\n\nmodule.exports = styleTagTransform;"],"names":["___CSS_LOADER_EXPORT___","push","module","id","exports","cssWithMappingToString","list","toString","this","map","item","content","needLayer","concat","length","join","i","modules","media","dedupe","supports","layer","undefined","alreadyImportedModules","k","_k","cssMapping","btoa","base64","unescape","encodeURIComponent","JSON","stringify","data","sourceMapping","sourceURLs","sources","source","sourceRoot","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","stylesInDOM","getIndexByIdentifier","identifier","result","modulesToDom","idCountMap","identifiers","base","count","indexByIdentifier","obj","css","sourceMap","references","updater","addElementStyle","byIndex","splice","api","update","newObj","remove","lastIdentifiers","newList","index","newLastIdentifiers","_i","_index","memo","style","target","styleTarget","document","querySelector","window","HTMLIFrameElement","contentDocument","head","e","getTarget","Error","appendChild","element","createElement","attributes","styleElement","nonce","setAttribute","apply","parentNode","removeChild","removeStyleElement","styleSheet","cssText","firstChild","createTextNode"],"sourceRoot":""} \ No newline at end of file diff --git a/_static/build/4615.eb5d40a.js b/_static/build/4615.eb5d40a.js new file mode 100644 index 0000000..613f78c --- /dev/null +++ b/_static/build/4615.eb5d40a.js @@ -0,0 +1,2 @@ +(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[4615],{81882:(e,t)=>{"use strict";t.__esModule=!0,t.default={scheme:"apathy",author:"jannik siebert (https://github.com/janniks)",base00:"#031A16",base01:"#0B342D",base02:"#184E45",base03:"#2B685E",base04:"#5F9C92",base05:"#81B5AC",base06:"#A7CEC8",base07:"#D2E7E4",base08:"#3E9688",base09:"#3E7996",base0A:"#3E4C96",base0B:"#883E96",base0C:"#963E4C",base0D:"#96883E",base0E:"#4C963E",base0F:"#3E965B"},e.exports=t.default},16188:(e,t)=>{"use strict";t.__esModule=!0,t.default={scheme:"ashes",author:"jannik siebert (https://github.com/janniks)",base00:"#1C2023",base01:"#393F45",base02:"#565E65",base03:"#747C84",base04:"#ADB3BA",base05:"#C7CCD1",base06:"#DFE2E5",base07:"#F3F4F5",base08:"#C7AE95",base09:"#C7C795",base0A:"#AEC795",base0B:"#95C7AE",base0C:"#95AEC7",base0D:"#AE95C7",base0E:"#C795AE",base0F:"#C79595"},e.exports=t.default},59773:(e,t)=>{"use strict";t.__esModule=!0,t.default={scheme:"atelier dune",author:"bram de haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/dune)",base00:"#20201d",base01:"#292824",base02:"#6e6b5e",base03:"#7d7a68",base04:"#999580",base05:"#a6a28c",base06:"#e8e4cf",base07:"#fefbec",base08:"#d73737",base09:"#b65611",base0A:"#cfb017",base0B:"#60ac39",base0C:"#1fad83",base0D:"#6684e1",base0E:"#b854d4",base0F:"#d43552"},e.exports=t.default},80317:(e,t)=>{"use strict";t.__esModule=!0,t.default={scheme:"atelier forest",author:"bram de haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/forest)",base00:"#1b1918",base01:"#2c2421",base02:"#68615e",base03:"#766e6b",base04:"#9c9491",base05:"#a8a19f",base06:"#e6e2e0",base07:"#f1efee",base08:"#f22c40",base09:"#df5320",base0A:"#d5911a",base0B:"#5ab738",base0C:"#00ad9c",base0D:"#407ee7",base0E:"#6666ea",base0F:"#c33ff3"},e.exports=t.default},63227:(e,t)=>{"use strict";t.__esModule=!0,t.default={scheme:"atelier heath",author:"bram de haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/heath)",base00:"#1b181b",base01:"#292329",base02:"#695d69",base03:"#776977",base04:"#9e8f9e",base05:"#ab9bab",base06:"#d8cad8",base07:"#f7f3f7",base08:"#ca402b",base09:"#a65926",base0A:"#bb8a35",base0B:"#379a37",base0C:"#159393",base0D:"#516aec",base0E:"#7b59c0",base0F:"#cc33cc"},e.exports=t.default},24766:(e,t)=>{"use strict";t.__esModule=!0,t.default={scheme:"atelier lakeside",author:"bram de haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/lakeside/)",base00:"#161b1d",base01:"#1f292e",base02:"#516d7b",base03:"#5a7b8c",base04:"#7195a8",base05:"#7ea2b4",base06:"#c1e4f6",base07:"#ebf8ff",base08:"#d22d72",base09:"#935c25",base0A:"#8a8a0f",base0B:"#568c3b",base0C:"#2d8f6f",base0D:"#257fad",base0E:"#5d5db1",base0F:"#b72dd2"},e.exports=t.default},70264:(e,t)=>{"use strict";t.__esModule=!0,t.default={scheme:"atelier seaside",author:"bram de haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/seaside/)",base00:"#131513",base01:"#242924",base02:"#5e6e5e",base03:"#687d68",base04:"#809980",base05:"#8ca68c",base06:"#cfe8cf",base07:"#f0fff0",base08:"#e6193c",base09:"#87711d",base0A:"#c3c322",base0B:"#29a329",base0C:"#1999b3",base0D:"#3d62f5",base0E:"#ad2bee",base0F:"#e619c3"},e.exports=t.default},32892:(e,t)=>{"use strict";t.__esModule=!0,t.default={scheme:"bespin",author:"jan t. sott",base00:"#28211c",base01:"#36312e",base02:"#5e5d5c",base03:"#666666",base04:"#797977",base05:"#8a8986",base06:"#9d9b97",base07:"#baae9e",base08:"#cf6a4c",base09:"#cf7d34",base0A:"#f9ee98",base0B:"#54be0d",base0C:"#afc4db",base0D:"#5ea6ea",base0E:"#9b859d",base0F:"#937121"},e.exports=t.default},5705:(e,t)=>{"use strict";t.__esModule=!0,t.default={scheme:"brewer",author:"timothée poisot (http://github.com/tpoisot)",base00:"#0c0d0e",base01:"#2e2f30",base02:"#515253",base03:"#737475",base04:"#959697",base05:"#b7b8b9",base06:"#dadbdc",base07:"#fcfdfe",base08:"#e31a1c",base09:"#e6550d",base0A:"#dca060",base0B:"#31a354",base0C:"#80b1d3",base0D:"#3182bd",base0E:"#756bb1",base0F:"#b15928"},e.exports=t.default},51183:(e,t)=>{"use strict";t.__esModule=!0,t.default={scheme:"bright",author:"chris kempson (http://chriskempson.com)",base00:"#000000",base01:"#303030",base02:"#505050",base03:"#b0b0b0",base04:"#d0d0d0",base05:"#e0e0e0",base06:"#f5f5f5",base07:"#ffffff",base08:"#fb0120",base09:"#fc6d24",base0A:"#fda331",base0B:"#a1c659",base0C:"#76c7b7",base0D:"#6fb3d2",base0E:"#d381c3",base0F:"#be643c"},e.exports=t.default},61827:(e,t)=>{"use strict";t.__esModule=!0,t.default={scheme:"chalk",author:"chris kempson (http://chriskempson.com)",base00:"#151515",base01:"#202020",base02:"#303030",base03:"#505050",base04:"#b0b0b0",base05:"#d0d0d0",base06:"#e0e0e0",base07:"#f5f5f5",base08:"#fb9fb1",base09:"#eda987",base0A:"#ddb26f",base0B:"#acc267",base0C:"#12cfc0",base0D:"#6fc2ef",base0E:"#e1a3ee",base0F:"#deaf8f"},e.exports=t.default},41167:(e,t)=>{"use strict";t.__esModule=!0,t.default={scheme:"codeschool",author:"brettof86",base00:"#232c31",base01:"#1c3657",base02:"#2a343a",base03:"#3f4944",base04:"#84898c",base05:"#9ea7a6",base06:"#a7cfa3",base07:"#b5d8f6",base08:"#2a5491",base09:"#43820d",base0A:"#a03b1e",base0B:"#237986",base0C:"#b02f30",base0D:"#484d79",base0E:"#c59820",base0F:"#c98344"},e.exports=t.default},92575:(e,t)=>{"use strict";t.__esModule=!0,t.default={scheme:"colors",author:"mrmrs (http://clrs.cc)",base00:"#111111",base01:"#333333",base02:"#555555",base03:"#777777",base04:"#999999",base05:"#bbbbbb",base06:"#dddddd",base07:"#ffffff",base08:"#ff4136",base09:"#ff851b",base0A:"#ffdc00",base0B:"#2ecc40",base0C:"#7fdbff",base0D:"#0074d9",base0E:"#b10dc9",base0F:"#85144b"},e.exports=t.default},35939:(e,t)=>{"use strict";t.__esModule=!0,t.default={scheme:"default",author:"chris kempson (http://chriskempson.com)",base00:"#181818",base01:"#282828",base02:"#383838",base03:"#585858",base04:"#b8b8b8",base05:"#d8d8d8",base06:"#e8e8e8",base07:"#f8f8f8",base08:"#ab4642",base09:"#dc9656",base0A:"#f7ca88",base0B:"#a1b56c",base0C:"#86c1b9",base0D:"#7cafc2",base0E:"#ba8baf",base0F:"#a16946"},e.exports=t.default},60131:(e,t)=>{"use strict";t.__esModule=!0,t.default={scheme:"eighties",author:"chris kempson (http://chriskempson.com)",base00:"#2d2d2d",base01:"#393939",base02:"#515151",base03:"#747369",base04:"#a09f93",base05:"#d3d0c8",base06:"#e8e6df",base07:"#f2f0ec",base08:"#f2777a",base09:"#f99157",base0A:"#ffcc66",base0B:"#99cc99",base0C:"#66cccc",base0D:"#6699cc",base0E:"#cc99cc",base0F:"#d27b53"},e.exports=t.default},98989:(e,t)=>{"use strict";t.__esModule=!0,t.default={scheme:"embers",author:"jannik siebert (https://github.com/janniks)",base00:"#16130F",base01:"#2C2620",base02:"#433B32",base03:"#5A5047",base04:"#8A8075",base05:"#A39A90",base06:"#BEB6AE",base07:"#DBD6D1",base08:"#826D57",base09:"#828257",base0A:"#6D8257",base0B:"#57826D",base0C:"#576D82",base0D:"#6D5782",base0E:"#82576D",base0F:"#825757"},e.exports=t.default},60904:(e,t)=>{"use strict";t.__esModule=!0,t.default={scheme:"flat",author:"chris kempson (http://chriskempson.com)",base00:"#2C3E50",base01:"#34495E",base02:"#7F8C8D",base03:"#95A5A6",base04:"#BDC3C7",base05:"#e0e0e0",base06:"#f5f5f5",base07:"#ECF0F1",base08:"#E74C3C",base09:"#E67E22",base0A:"#F1C40F",base0B:"#2ECC71",base0C:"#1ABC9C",base0D:"#3498DB",base0E:"#9B59B6",base0F:"#be643c"},e.exports=t.default},96918:(e,t)=>{"use strict";t.__esModule=!0,t.default={scheme:"google",author:"seth wright (http://sethawright.com)",base00:"#1d1f21",base01:"#282a2e",base02:"#373b41",base03:"#969896",base04:"#b4b7b4",base05:"#c5c8c6",base06:"#e0e0e0",base07:"#ffffff",base08:"#CC342B",base09:"#F96A38",base0A:"#FBA922",base0B:"#198844",base0C:"#3971ED",base0D:"#3971ED",base0E:"#A36AC7",base0F:"#3971ED"},e.exports=t.default},49490:(e,t)=>{"use strict";t.__esModule=!0,t.default={scheme:"grayscale",author:"alexandre gavioli (https://github.com/alexx2/)",base00:"#101010",base01:"#252525",base02:"#464646",base03:"#525252",base04:"#ababab",base05:"#b9b9b9",base06:"#e3e3e3",base07:"#f7f7f7",base08:"#7c7c7c",base09:"#999999",base0A:"#a0a0a0",base0B:"#8e8e8e",base0C:"#868686",base0D:"#686868",base0E:"#747474",base0F:"#5e5e5e"},e.exports=t.default},25097:(e,t)=>{"use strict";t.__esModule=!0,t.default={scheme:"green screen",author:"chris kempson (http://chriskempson.com)",base00:"#001100",base01:"#003300",base02:"#005500",base03:"#007700",base04:"#009900",base05:"#00bb00",base06:"#00dd00",base07:"#00ff00",base08:"#007700",base09:"#009900",base0A:"#007700",base0B:"#00bb00",base0C:"#005500",base0D:"#009900",base0E:"#00bb00",base0F:"#005500"},e.exports=t.default},8905:(e,t)=>{"use strict";t.__esModule=!0,t.default={scheme:"harmonic16",author:"jannik siebert (https://github.com/janniks)",base00:"#0b1c2c",base01:"#223b54",base02:"#405c79",base03:"#627e99",base04:"#aabcce",base05:"#cbd6e2",base06:"#e5ebf1",base07:"#f7f9fb",base08:"#bf8b56",base09:"#bfbf56",base0A:"#8bbf56",base0B:"#56bf8b",base0C:"#568bbf",base0D:"#8b56bf",base0E:"#bf568b",base0F:"#bf5656"},e.exports=t.default},41507:(e,t)=>{"use strict";t.__esModule=!0,t.default={scheme:"hopscotch",author:"jan t. sott",base00:"#322931",base01:"#433b42",base02:"#5c545b",base03:"#797379",base04:"#989498",base05:"#b9b5b8",base06:"#d5d3d5",base07:"#ffffff",base08:"#dd464c",base09:"#fd8b19",base0A:"#fdcc59",base0B:"#8fc13e",base0C:"#149b93",base0D:"#1290bf",base0E:"#c85e7c",base0F:"#b33508"},e.exports=t.default},62094:(e,t,r)=>{"use strict";function a(e){return e&&e.__esModule?e.default:e}t.__esModule=!0;var n=r(59018);t.threezerotwofour=a(n);var o=r(81882);t.apathy=a(o);var s=r(16188);t.ashes=a(s);var i=r(59773);t.atelierDune=a(i);var u=r(80317);t.atelierForest=a(u);var l=r(63227);t.atelierHeath=a(l);var c=r(24766);t.atelierLakeside=a(c);var f=r(70264);t.atelierSeaside=a(f);var b=r(32892);t.bespin=a(b);var d=r(5705);t.brewer=a(d);var h=r(51183);t.bright=a(h);var p=r(61827);t.chalk=a(p);var y=r(41167);t.codeschool=a(y);var v=r(92575);t.colors=a(v);var g=r(35939);t.default=a(g);var m=r(60131);t.eighties=a(m);var O=r(98989);t.embers=a(O);var w=r(60904);t.flat=a(w);var j=r(96918);t.google=a(j);var k=r(49490);t.grayscale=a(k);var _=r(25097);t.greenscreen=a(_);var E=r(8905);t.harmonic=a(E);var M=r(41507);t.hopscotch=a(M);var x=r(63330);t.isotope=a(x);var C=r(9839);t.marrakesh=a(C);var S=r(72670);t.mocha=a(S);var A=r(34733);t.monokai=a(A);var P=r(61496);t.ocean=a(P);var R=r(95868);t.paraiso=a(R);var T=r(74018);t.pop=a(T);var D=r(39018);t.railscasts=a(D);var B=r(17684);t.shapeshifter=a(B);var F=r(6349);t.solarized=a(F);var N=r(35926);t.summerfruit=a(N);var I=r(45684);t.tomorrow=a(I);var L=r(17305);t.tube=a(L);var q=r(17710);t.twilight=a(q)},63330:(e,t)=>{"use strict";t.__esModule=!0,t.default={scheme:"isotope",author:"jan t. sott",base00:"#000000",base01:"#404040",base02:"#606060",base03:"#808080",base04:"#c0c0c0",base05:"#d0d0d0",base06:"#e0e0e0",base07:"#ffffff",base08:"#ff0000",base09:"#ff9900",base0A:"#ff0099",base0B:"#33ff00",base0C:"#00ffff",base0D:"#0066ff",base0E:"#cc00ff",base0F:"#3300ff"},e.exports=t.default},9839:(e,t)=>{"use strict";t.__esModule=!0,t.default={scheme:"marrakesh",author:"alexandre gavioli (http://github.com/alexx2/)",base00:"#201602",base01:"#302e00",base02:"#5f5b17",base03:"#6c6823",base04:"#86813b",base05:"#948e48",base06:"#ccc37a",base07:"#faf0a5",base08:"#c35359",base09:"#b36144",base0A:"#a88339",base0B:"#18974e",base0C:"#75a738",base0D:"#477ca1",base0E:"#8868b3",base0F:"#b3588e"},e.exports=t.default},72670:(e,t)=>{"use strict";t.__esModule=!0,t.default={scheme:"mocha",author:"chris kempson (http://chriskempson.com)",base00:"#3B3228",base01:"#534636",base02:"#645240",base03:"#7e705a",base04:"#b8afad",base05:"#d0c8c6",base06:"#e9e1dd",base07:"#f5eeeb",base08:"#cb6077",base09:"#d28b71",base0A:"#f4bc87",base0B:"#beb55b",base0C:"#7bbda4",base0D:"#8ab3b5",base0E:"#a89bb9",base0F:"#bb9584"},e.exports=t.default},34733:(e,t)=>{"use strict";t.__esModule=!0,t.default={scheme:"monokai",author:"wimer hazenberg (http://www.monokai.nl)",base00:"#272822",base01:"#383830",base02:"#49483e",base03:"#75715e",base04:"#a59f85",base05:"#f8f8f2",base06:"#f5f4f1",base07:"#f9f8f5",base08:"#f92672",base09:"#fd971f",base0A:"#f4bf75",base0B:"#a6e22e",base0C:"#a1efe4",base0D:"#66d9ef",base0E:"#ae81ff",base0F:"#cc6633"},e.exports=t.default},61496:(e,t)=>{"use strict";t.__esModule=!0,t.default={scheme:"ocean",author:"chris kempson (http://chriskempson.com)",base00:"#2b303b",base01:"#343d46",base02:"#4f5b66",base03:"#65737e",base04:"#a7adba",base05:"#c0c5ce",base06:"#dfe1e8",base07:"#eff1f5",base08:"#bf616a",base09:"#d08770",base0A:"#ebcb8b",base0B:"#a3be8c",base0C:"#96b5b4",base0D:"#8fa1b3",base0E:"#b48ead",base0F:"#ab7967"},e.exports=t.default},95868:(e,t)=>{"use strict";t.__esModule=!0,t.default={scheme:"paraiso",author:"jan t. sott",base00:"#2f1e2e",base01:"#41323f",base02:"#4f424c",base03:"#776e71",base04:"#8d8687",base05:"#a39e9b",base06:"#b9b6b0",base07:"#e7e9db",base08:"#ef6155",base09:"#f99b15",base0A:"#fec418",base0B:"#48b685",base0C:"#5bc4bf",base0D:"#06b6ef",base0E:"#815ba4",base0F:"#e96ba8"},e.exports=t.default},74018:(e,t)=>{"use strict";t.__esModule=!0,t.default={scheme:"pop",author:"chris kempson (http://chriskempson.com)",base00:"#000000",base01:"#202020",base02:"#303030",base03:"#505050",base04:"#b0b0b0",base05:"#d0d0d0",base06:"#e0e0e0",base07:"#ffffff",base08:"#eb008a",base09:"#f29333",base0A:"#f8ca12",base0B:"#37b349",base0C:"#00aabb",base0D:"#0e5a94",base0E:"#b31e8d",base0F:"#7a2d00"},e.exports=t.default},39018:(e,t)=>{"use strict";t.__esModule=!0,t.default={scheme:"railscasts",author:"ryan bates (http://railscasts.com)",base00:"#2b2b2b",base01:"#272935",base02:"#3a4055",base03:"#5a647e",base04:"#d4cfc9",base05:"#e6e1dc",base06:"#f4f1ed",base07:"#f9f7f3",base08:"#da4939",base09:"#cc7833",base0A:"#ffc66d",base0B:"#a5c261",base0C:"#519f50",base0D:"#6d9cbe",base0E:"#b6b3eb",base0F:"#bc9458"},e.exports=t.default},17684:(e,t)=>{"use strict";t.__esModule=!0,t.default={scheme:"shapeshifter",author:"tyler benziger (http://tybenz.com)",base00:"#000000",base01:"#040404",base02:"#102015",base03:"#343434",base04:"#555555",base05:"#ababab",base06:"#e0e0e0",base07:"#f9f9f9",base08:"#e92f2f",base09:"#e09448",base0A:"#dddd13",base0B:"#0ed839",base0C:"#23edda",base0D:"#3b48e3",base0E:"#f996e2",base0F:"#69542d"},e.exports=t.default},6349:(e,t)=>{"use strict";t.__esModule=!0,t.default={scheme:"solarized",author:"ethan schoonover (http://ethanschoonover.com/solarized)",base00:"#002b36",base01:"#073642",base02:"#586e75",base03:"#657b83",base04:"#839496",base05:"#93a1a1",base06:"#eee8d5",base07:"#fdf6e3",base08:"#dc322f",base09:"#cb4b16",base0A:"#b58900",base0B:"#859900",base0C:"#2aa198",base0D:"#268bd2",base0E:"#6c71c4",base0F:"#d33682"},e.exports=t.default},35926:(e,t)=>{"use strict";t.__esModule=!0,t.default={scheme:"summerfruit",author:"christopher corley (http://cscorley.github.io/)",base00:"#151515",base01:"#202020",base02:"#303030",base03:"#505050",base04:"#B0B0B0",base05:"#D0D0D0",base06:"#E0E0E0",base07:"#FFFFFF",base08:"#FF0086",base09:"#FD8900",base0A:"#ABA800",base0B:"#00C918",base0C:"#1faaaa",base0D:"#3777E6",base0E:"#AD00A1",base0F:"#cc6633"},e.exports=t.default},59018:(e,t)=>{"use strict";t.__esModule=!0,t.default={scheme:"threezerotwofour",author:"jan t. sott (http://github.com/idleberg)",base00:"#090300",base01:"#3a3432",base02:"#4a4543",base03:"#5c5855",base04:"#807d7c",base05:"#a5a2a2",base06:"#d6d5d4",base07:"#f7f7f7",base08:"#db2d20",base09:"#e8bbd0",base0A:"#fded02",base0B:"#01a252",base0C:"#b5e4f4",base0D:"#01a0e4",base0E:"#a16a94",base0F:"#cdab53"},e.exports=t.default},45684:(e,t)=>{"use strict";t.__esModule=!0,t.default={scheme:"tomorrow",author:"chris kempson (http://chriskempson.com)",base00:"#1d1f21",base01:"#282a2e",base02:"#373b41",base03:"#969896",base04:"#b4b7b4",base05:"#c5c8c6",base06:"#e0e0e0",base07:"#ffffff",base08:"#cc6666",base09:"#de935f",base0A:"#f0c674",base0B:"#b5bd68",base0C:"#8abeb7",base0D:"#81a2be",base0E:"#b294bb",base0F:"#a3685a"},e.exports=t.default},17305:(e,t)=>{"use strict";t.__esModule=!0,t.default={scheme:"london tube",author:"jan t. sott",base00:"#231f20",base01:"#1c3f95",base02:"#5a5758",base03:"#737171",base04:"#959ca1",base05:"#d9d8d8",base06:"#e7e7e8",base07:"#ffffff",base08:"#ee2e24",base09:"#f386a1",base0A:"#ffd204",base0B:"#00853e",base0C:"#85cebc",base0D:"#009ddc",base0E:"#98005d",base0F:"#b06110"},e.exports=t.default},17710:(e,t)=>{"use strict";t.__esModule=!0,t.default={scheme:"twilight",author:"david hart (http://hart-dev.com)",base00:"#1e1e1e",base01:"#323537",base02:"#464b50",base03:"#5f5a60",base04:"#838184",base05:"#a7a7a7",base06:"#c3c3c3",base07:"#ffffff",base08:"#cf6a4c",base09:"#cda869",base0A:"#f9ee98",base0B:"#8f9d6a",base0C:"#afc4db",base0D:"#7587a6",base0E:"#9b859d",base0F:"#9b703f"},e.exports=t.default},79513:(e,t,r)=>{var a=r(57222),n={};for(var o in a)a.hasOwnProperty(o)&&(n[a[o]]=o);var s=e.exports={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};for(var i in s)if(s.hasOwnProperty(i)){if(!("channels"in s[i]))throw new Error("missing channels property: "+i);if(!("labels"in s[i]))throw new Error("missing channel labels property: "+i);if(s[i].labels.length!==s[i].channels)throw new Error("channel and label counts mismatch: "+i);var u=s[i].channels,l=s[i].labels;delete s[i].channels,delete s[i].labels,Object.defineProperty(s[i],"channels",{value:u}),Object.defineProperty(s[i],"labels",{value:l})}s.rgb.hsl=function(e){var t,r,a=e[0]/255,n=e[1]/255,o=e[2]/255,s=Math.min(a,n,o),i=Math.max(a,n,o),u=i-s;return i===s?t=0:a===i?t=(n-o)/u:n===i?t=2+(o-a)/u:o===i&&(t=4+(a-n)/u),(t=Math.min(60*t,360))<0&&(t+=360),r=(s+i)/2,[t,100*(i===s?0:r<=.5?u/(i+s):u/(2-i-s)),100*r]},s.rgb.hsv=function(e){var t,r,a,n,o,s=e[0]/255,i=e[1]/255,u=e[2]/255,l=Math.max(s,i,u),c=l-Math.min(s,i,u),f=function(e){return(l-e)/6/c+.5};return 0===c?n=o=0:(o=c/l,t=f(s),r=f(i),a=f(u),s===l?n=a-r:i===l?n=1/3+t-a:u===l&&(n=2/3+r-t),n<0?n+=1:n>1&&(n-=1)),[360*n,100*o,100*l]},s.rgb.hwb=function(e){var t=e[0],r=e[1],a=e[2];return[s.rgb.hsl(e)[0],1/255*Math.min(t,Math.min(r,a))*100,100*(a=1-1/255*Math.max(t,Math.max(r,a)))]},s.rgb.cmyk=function(e){var t,r=e[0]/255,a=e[1]/255,n=e[2]/255;return[100*((1-r-(t=Math.min(1-r,1-a,1-n)))/(1-t)||0),100*((1-a-t)/(1-t)||0),100*((1-n-t)/(1-t)||0),100*t]},s.rgb.keyword=function(e){var t=n[e];if(t)return t;var r,o,s,i=1/0;for(var u in a)if(a.hasOwnProperty(u)){var l=(o=e,s=a[u],Math.pow(o[0]-s[0],2)+Math.pow(o[1]-s[1],2)+Math.pow(o[2]-s[2],2));l.04045?Math.pow((t+.055)/1.055,2.4):t/12.92)+.3576*(r=r>.04045?Math.pow((r+.055)/1.055,2.4):r/12.92)+.1805*(a=a>.04045?Math.pow((a+.055)/1.055,2.4):a/12.92)),100*(.2126*t+.7152*r+.0722*a),100*(.0193*t+.1192*r+.9505*a)]},s.rgb.lab=function(e){var t=s.rgb.xyz(e),r=t[0],a=t[1],n=t[2];return a/=100,n/=108.883,r=(r/=95.047)>.008856?Math.pow(r,1/3):7.787*r+16/116,[116*(a=a>.008856?Math.pow(a,1/3):7.787*a+16/116)-16,500*(r-a),200*(a-(n=n>.008856?Math.pow(n,1/3):7.787*n+16/116))]},s.hsl.rgb=function(e){var t,r,a,n,o,s=e[0]/360,i=e[1]/100,u=e[2]/100;if(0===i)return[o=255*u,o,o];t=2*u-(r=u<.5?u*(1+i):u+i-u*i),n=[0,0,0];for(var l=0;l<3;l++)(a=s+1/3*-(l-1))<0&&a++,a>1&&a--,o=6*a<1?t+6*(r-t)*a:2*a<1?r:3*a<2?t+(r-t)*(2/3-a)*6:t,n[l]=255*o;return n},s.hsl.hsv=function(e){var t=e[0],r=e[1]/100,a=e[2]/100,n=r,o=Math.max(a,.01);return r*=(a*=2)<=1?a:2-a,n*=o<=1?o:2-o,[t,100*(0===a?2*n/(o+n):2*r/(a+r)),(a+r)/2*100]},s.hsv.rgb=function(e){var t=e[0]/60,r=e[1]/100,a=e[2]/100,n=Math.floor(t)%6,o=t-Math.floor(t),s=255*a*(1-r),i=255*a*(1-r*o),u=255*a*(1-r*(1-o));switch(a*=255,n){case 0:return[a,u,s];case 1:return[i,a,s];case 2:return[s,a,u];case 3:return[s,i,a];case 4:return[u,s,a];case 5:return[a,s,i]}},s.hsv.hsl=function(e){var t,r,a,n=e[0],o=e[1]/100,s=e[2]/100,i=Math.max(s,.01);return a=(2-o)*s,r=o*i,[n,100*(r=(r/=(t=(2-o)*i)<=1?t:2-t)||0),100*(a/=2)]},s.hwb.rgb=function(e){var t,r,a,n,o,s,i,u=e[0]/360,l=e[1]/100,c=e[2]/100,f=l+c;switch(f>1&&(l/=f,c/=f),a=6*u-(t=Math.floor(6*u)),0!=(1&t)&&(a=1-a),n=l+a*((r=1-c)-l),t){default:case 6:case 0:o=r,s=n,i=l;break;case 1:o=n,s=r,i=l;break;case 2:o=l,s=r,i=n;break;case 3:o=l,s=n,i=r;break;case 4:o=n,s=l,i=r;break;case 5:o=r,s=l,i=n}return[255*o,255*s,255*i]},s.cmyk.rgb=function(e){var t=e[0]/100,r=e[1]/100,a=e[2]/100,n=e[3]/100;return[255*(1-Math.min(1,t*(1-n)+n)),255*(1-Math.min(1,r*(1-n)+n)),255*(1-Math.min(1,a*(1-n)+n))]},s.xyz.rgb=function(e){var t,r,a,n=e[0]/100,o=e[1]/100,s=e[2]/100;return r=-.9689*n+1.8758*o+.0415*s,a=.0557*n+-.204*o+1.057*s,t=(t=3.2406*n+-1.5372*o+-.4986*s)>.0031308?1.055*Math.pow(t,1/2.4)-.055:12.92*t,r=r>.0031308?1.055*Math.pow(r,1/2.4)-.055:12.92*r,a=a>.0031308?1.055*Math.pow(a,1/2.4)-.055:12.92*a,[255*(t=Math.min(Math.max(0,t),1)),255*(r=Math.min(Math.max(0,r),1)),255*(a=Math.min(Math.max(0,a),1))]},s.xyz.lab=function(e){var t=e[0],r=e[1],a=e[2];return r/=100,a/=108.883,t=(t/=95.047)>.008856?Math.pow(t,1/3):7.787*t+16/116,[116*(r=r>.008856?Math.pow(r,1/3):7.787*r+16/116)-16,500*(t-r),200*(r-(a=a>.008856?Math.pow(a,1/3):7.787*a+16/116))]},s.lab.xyz=function(e){var t,r,a,n=e[0];t=e[1]/500+(r=(n+16)/116),a=r-e[2]/200;var o=Math.pow(r,3),s=Math.pow(t,3),i=Math.pow(a,3);return r=o>.008856?o:(r-16/116)/7.787,t=s>.008856?s:(t-16/116)/7.787,a=i>.008856?i:(a-16/116)/7.787,[t*=95.047,r*=100,a*=108.883]},s.lab.lch=function(e){var t,r=e[0],a=e[1],n=e[2];return(t=360*Math.atan2(n,a)/2/Math.PI)<0&&(t+=360),[r,Math.sqrt(a*a+n*n),t]},s.lch.lab=function(e){var t,r=e[0],a=e[1];return t=e[2]/360*2*Math.PI,[r,a*Math.cos(t),a*Math.sin(t)]},s.rgb.ansi16=function(e){var t=e[0],r=e[1],a=e[2],n=1 in arguments?arguments[1]:s.rgb.hsv(e)[2];if(0===(n=Math.round(n/50)))return 30;var o=30+(Math.round(a/255)<<2|Math.round(r/255)<<1|Math.round(t/255));return 2===n&&(o+=60),o},s.hsv.ansi16=function(e){return s.rgb.ansi16(s.hsv.rgb(e),e[2])},s.rgb.ansi256=function(e){var t=e[0],r=e[1],a=e[2];return t===r&&r===a?t<8?16:t>248?231:Math.round((t-8)/247*24)+232:16+36*Math.round(t/255*5)+6*Math.round(r/255*5)+Math.round(a/255*5)},s.ansi16.rgb=function(e){var t=e%10;if(0===t||7===t)return e>50&&(t+=3.5),[t=t/10.5*255,t,t];var r=.5*(1+~~(e>50));return[(1&t)*r*255,(t>>1&1)*r*255,(t>>2&1)*r*255]},s.ansi256.rgb=function(e){if(e>=232){var t=10*(e-232)+8;return[t,t,t]}var r;return e-=16,[Math.floor(e/36)/5*255,Math.floor((r=e%36)/6)/5*255,r%6/5*255]},s.rgb.hex=function(e){var t=(((255&Math.round(e[0]))<<16)+((255&Math.round(e[1]))<<8)+(255&Math.round(e[2]))).toString(16).toUpperCase();return"000000".substring(t.length)+t},s.hex.rgb=function(e){var t=e.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!t)return[0,0,0];var r=t[0];3===t[0].length&&(r=r.split("").map((function(e){return e+e})).join(""));var a=parseInt(r,16);return[a>>16&255,a>>8&255,255&a]},s.rgb.hcg=function(e){var t,r=e[0]/255,a=e[1]/255,n=e[2]/255,o=Math.max(Math.max(r,a),n),s=Math.min(Math.min(r,a),n),i=o-s;return t=i<=0?0:o===r?(a-n)/i%6:o===a?2+(n-r)/i:4+(r-a)/i+4,t/=6,[360*(t%=1),100*i,100*(i<1?s/(1-i):0)]},s.hsl.hcg=function(e){var t,r=e[1]/100,a=e[2]/100,n=0;return(t=a<.5?2*r*a:2*r*(1-a))<1&&(n=(a-.5*t)/(1-t)),[e[0],100*t,100*n]},s.hsv.hcg=function(e){var t=e[1]/100,r=e[2]/100,a=t*r,n=0;return a<1&&(n=(r-a)/(1-a)),[e[0],100*a,100*n]},s.hcg.rgb=function(e){var t=e[0]/360,r=e[1]/100,a=e[2]/100;if(0===r)return[255*a,255*a,255*a];var n,o=[0,0,0],s=t%1*6,i=s%1,u=1-i;switch(Math.floor(s)){case 0:o[0]=1,o[1]=i,o[2]=0;break;case 1:o[0]=u,o[1]=1,o[2]=0;break;case 2:o[0]=0,o[1]=1,o[2]=i;break;case 3:o[0]=0,o[1]=u,o[2]=1;break;case 4:o[0]=i,o[1]=0,o[2]=1;break;default:o[0]=1,o[1]=0,o[2]=u}return n=(1-r)*a,[255*(r*o[0]+n),255*(r*o[1]+n),255*(r*o[2]+n)]},s.hcg.hsv=function(e){var t=e[1]/100,r=t+e[2]/100*(1-t),a=0;return r>0&&(a=t/r),[e[0],100*a,100*r]},s.hcg.hsl=function(e){var t=e[1]/100,r=e[2]/100*(1-t)+.5*t,a=0;return r>0&&r<.5?a=t/(2*r):r>=.5&&r<1&&(a=t/(2*(1-r))),[e[0],100*a,100*r]},s.hcg.hwb=function(e){var t=e[1]/100,r=t+e[2]/100*(1-t);return[e[0],100*(r-t),100*(1-r)]},s.hwb.hcg=function(e){var t=e[1]/100,r=1-e[2]/100,a=r-t,n=0;return a<1&&(n=(r-a)/(1-a)),[e[0],100*a,100*n]},s.apple.rgb=function(e){return[e[0]/65535*255,e[1]/65535*255,e[2]/65535*255]},s.rgb.apple=function(e){return[e[0]/255*65535,e[1]/255*65535,e[2]/255*65535]},s.gray.rgb=function(e){return[e[0]/100*255,e[0]/100*255,e[0]/100*255]},s.gray.hsl=s.gray.hsv=function(e){return[0,0,e[0]]},s.gray.hwb=function(e){return[0,100,e[0]]},s.gray.cmyk=function(e){return[0,0,0,e[0]]},s.gray.lab=function(e){return[e[0],0,0]},s.gray.hex=function(e){var t=255&Math.round(e[0]/100*255),r=((t<<16)+(t<<8)+t).toString(16).toUpperCase();return"000000".substring(r.length)+r},s.rgb.gray=function(e){return[(e[0]+e[1]+e[2])/3/255*100]}},30856:(e,t,r)=>{var a=r(79513),n=r(1543),o={};Object.keys(a).forEach((function(e){o[e]={},Object.defineProperty(o[e],"channels",{value:a[e].channels}),Object.defineProperty(o[e],"labels",{value:a[e].labels});var t=n(e);Object.keys(t).forEach((function(r){var a=t[r];o[e][r]=function(e){var t=function(t){if(null==t)return t;arguments.length>1&&(t=Array.prototype.slice.call(arguments));var r=e(t);if("object"==typeof r)for(var a=r.length,n=0;n1&&(t=Array.prototype.slice.call(arguments)),e(t))};return"conversion"in e&&(t.conversion=e.conversion),t}(a)}))})),e.exports=o},57222:e=>{"use strict";e.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}},1543:(e,t,r)=>{var a=r(79513);function n(e,t){return function(r){return t(e(r))}}function o(e,t){for(var r=[t[e].parent,e],o=a[t[e].parent][e],s=t[e].parent;t[s].parent;)r.unshift(t[s].parent),o=n(a[t[s].parent][s],o),s=t[s].parent;return o.conversion=r,o}e.exports=function(e){for(var t=function(e){var t=function(){for(var e={},t=Object.keys(a),r=t.length,n=0;n{"use strict";e.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}},46439:(e,t,r)=>{var a=r(59102),n=r(32107),o=Object.hasOwnProperty,s=Object.create(null);for(var i in a)o.call(a,i)&&(s[a[i]]=i);var u=e.exports={to:{},get:{}};function l(e,t,r){return Math.min(Math.max(t,e),r)}function c(e){var t=Math.round(e).toString(16).toUpperCase();return t.length<2?"0"+t:t}u.get=function(e){var t,r;switch(e.substring(0,3).toLowerCase()){case"hsl":t=u.get.hsl(e),r="hsl";break;case"hwb":t=u.get.hwb(e),r="hwb";break;default:t=u.get.rgb(e),r="rgb"}return t?{model:r,value:t}:null},u.get.rgb=function(e){if(!e)return null;var t,r,n,s=[0,0,0,1];if(t=e.match(/^#([a-f0-9]{6})([a-f0-9]{2})?$/i)){for(n=t[2],t=t[1],r=0;r<3;r++){var i=2*r;s[r]=parseInt(t.slice(i,i+2),16)}n&&(s[3]=parseInt(n,16)/255)}else if(t=e.match(/^#([a-f0-9]{3,4})$/i)){for(n=(t=t[1])[3],r=0;r<3;r++)s[r]=parseInt(t[r]+t[r],16);n&&(s[3]=parseInt(n+n,16)/255)}else if(t=e.match(/^rgba?\(\s*([+-]?\d+)(?=[\s,])\s*(?:,\s*)?([+-]?\d+)(?=[\s,])\s*(?:,\s*)?([+-]?\d+)\s*(?:[,|\/]\s*([+-]?[\d\.]+)(%?)\s*)?\)$/)){for(r=0;r<3;r++)s[r]=parseInt(t[r+1],0);t[4]&&(t[5]?s[3]=.01*parseFloat(t[4]):s[3]=parseFloat(t[4]))}else{if(!(t=e.match(/^rgba?\(\s*([+-]?[\d\.]+)\%\s*,?\s*([+-]?[\d\.]+)\%\s*,?\s*([+-]?[\d\.]+)\%\s*(?:[,|\/]\s*([+-]?[\d\.]+)(%?)\s*)?\)$/)))return(t=e.match(/^(\w+)$/))?"transparent"===t[1]?[0,0,0,0]:o.call(a,t[1])?((s=a[t[1]])[3]=1,s):null:null;for(r=0;r<3;r++)s[r]=Math.round(2.55*parseFloat(t[r+1]));t[4]&&(t[5]?s[3]=.01*parseFloat(t[4]):s[3]=parseFloat(t[4]))}for(r=0;r<3;r++)s[r]=l(s[r],0,255);return s[3]=l(s[3],0,1),s},u.get.hsl=function(e){if(!e)return null;var t=e.match(/^hsla?\(\s*([+-]?(?:\d{0,3}\.)?\d+)(?:deg)?\s*,?\s*([+-]?[\d\.]+)%\s*,?\s*([+-]?[\d\.]+)%\s*(?:[,|\/]\s*([+-]?(?=\.\d|\d)(?:0|[1-9]\d*)?(?:\.\d*)?(?:[eE][+-]?\d+)?)\s*)?\)$/);if(t){var r=parseFloat(t[4]);return[(parseFloat(t[1])%360+360)%360,l(parseFloat(t[2]),0,100),l(parseFloat(t[3]),0,100),l(isNaN(r)?1:r,0,1)]}return null},u.get.hwb=function(e){if(!e)return null;var t=e.match(/^hwb\(\s*([+-]?\d{0,3}(?:\.\d+)?)(?:deg)?\s*,\s*([+-]?[\d\.]+)%\s*,\s*([+-]?[\d\.]+)%\s*(?:,\s*([+-]?(?=\.\d|\d)(?:0|[1-9]\d*)?(?:\.\d*)?(?:[eE][+-]?\d+)?)\s*)?\)$/);if(t){var r=parseFloat(t[4]);return[(parseFloat(t[1])%360+360)%360,l(parseFloat(t[2]),0,100),l(parseFloat(t[3]),0,100),l(isNaN(r)?1:r,0,1)]}return null},u.to.hex=function(){var e=n(arguments);return"#"+c(e[0])+c(e[1])+c(e[2])+(e[3]<1?c(Math.round(255*e[3])):"")},u.to.rgb=function(){var e=n(arguments);return e.length<4||1===e[3]?"rgb("+Math.round(e[0])+", "+Math.round(e[1])+", "+Math.round(e[2])+")":"rgba("+Math.round(e[0])+", "+Math.round(e[1])+", "+Math.round(e[2])+", "+e[3]+")"},u.to.rgb.percent=function(){var e=n(arguments),t=Math.round(e[0]/255*100),r=Math.round(e[1]/255*100),a=Math.round(e[2]/255*100);return e.length<4||1===e[3]?"rgb("+t+"%, "+r+"%, "+a+"%)":"rgba("+t+"%, "+r+"%, "+a+"%, "+e[3]+")"},u.to.hsl=function(){var e=n(arguments);return e.length<4||1===e[3]?"hsl("+e[0]+", "+e[1]+"%, "+e[2]+"%)":"hsla("+e[0]+", "+e[1]+"%, "+e[2]+"%, "+e[3]+")"},u.to.hwb=function(){var e=n(arguments),t="";return e.length>=4&&1!==e[3]&&(t=", "+e[3]),"hwb("+e[0]+", "+e[1]+"%, "+e[2]+"%"+t+")"},u.to.keyword=function(e){return s[e.slice(0,3)]}},8071:(e,t,r)=>{"use strict";var a=r(46439),n=r(30856),o=[].slice,s=["keyword","gray","hex"],i={};Object.keys(n).forEach((function(e){i[o.call(n[e].labels).sort().join("")]=e}));var u={};function l(e,t){if(!(this instanceof l))return new l(e,t);if(t&&t in s&&(t=null),t&&!(t in n))throw new Error("Unknown model: "+t);var r,c;if(null==e)this.model="rgb",this.color=[0,0,0],this.valpha=1;else if(e instanceof l)this.model=e.model,this.color=e.color.slice(),this.valpha=e.valpha;else if("string"==typeof e){var f=a.get(e);if(null===f)throw new Error("Unable to parse color from string: "+e);this.model=f.model,c=n[this.model].channels,this.color=f.value.slice(0,c),this.valpha="number"==typeof f.value[c]?f.value[c]:1}else if(e.length){this.model=t||"rgb",c=n[this.model].channels;var b=o.call(e,0,c);this.color=d(b,c),this.valpha="number"==typeof e[c]?e[c]:1}else if("number"==typeof e)e&=16777215,this.model="rgb",this.color=[e>>16&255,e>>8&255,255&e],this.valpha=1;else{this.valpha=1;var h=Object.keys(e);"alpha"in e&&(h.splice(h.indexOf("alpha"),1),this.valpha="number"==typeof e.alpha?e.alpha:0);var p=h.sort().join("");if(!(p in i))throw new Error("Unable to parse color from object: "+JSON.stringify(e));this.model=i[p];var y=n[this.model].labels,v=[];for(r=0;rr?(t+.05)/(r+.05):(r+.05)/(t+.05)},level:function(e){var t=this.contrast(e);return t>=7.1?"AAA":t>=4.5?"AA":""},isDark:function(){var e=this.rgb().color;return(299*e[0]+587*e[1]+114*e[2])/1e3<128},isLight:function(){return!this.isDark()},negate:function(){for(var e=this.rgb(),t=0;t<3;t++)e.color[t]=255-e.color[t];return e},lighten:function(e){var t=this.hsl();return t.color[2]+=t.color[2]*e,t},darken:function(e){var t=this.hsl();return t.color[2]-=t.color[2]*e,t},saturate:function(e){var t=this.hsl();return t.color[1]+=t.color[1]*e,t},desaturate:function(e){var t=this.hsl();return t.color[1]-=t.color[1]*e,t},whiten:function(e){var t=this.hwb();return t.color[1]+=t.color[1]*e,t},blacken:function(e){var t=this.hwb();return t.color[2]+=t.color[2]*e,t},grayscale:function(){var e=this.rgb().color,t=.3*e[0]+.59*e[1]+.11*e[2];return l.rgb(t,t,t)},fade:function(e){return this.alpha(this.valpha-this.valpha*e)},opaquer:function(e){return this.alpha(this.valpha+this.valpha*e)},rotate:function(e){var t=this.hsl(),r=t.color[0];return r=(r=(r+e)%360)<0?360+r:r,t.color[0]=r,t},mix:function(e,t){if(!e||!e.rgb)throw new Error('Argument to "mix" was not a Color instance, but rather an instance of '+typeof e);var r=e.rgb(),a=this.rgb(),n=void 0===t?.5:t,o=2*n-1,s=r.alpha()-a.alpha(),i=((o*s==-1?o:(o+s)/(1+o*s))+1)/2,u=1-i;return l.rgb(i*r.red()+u*a.red(),i*r.green()+u*a.green(),i*r.blue()+u*a.blue(),r.alpha()*n+a.alpha()*(1-n))}},Object.keys(n).forEach((function(e){if(-1===s.indexOf(e)){var t=n[e].channels;l.prototype[e]=function(){if(this.model===e)return new l(this);if(arguments.length)return new l(arguments,e);var r="number"==typeof arguments[t]?t:this.valpha;return new l(b(n[this.model][e].raw(this.color)).concat(r),e)},l[e]=function(r){return"number"==typeof r&&(r=d(o.call(arguments),t)),new l(r,e)}}})),e.exports=l},11628:(e,t,r)=>{var a="__lodash_placeholder__",n=[["ary",128],["bind",1],["bindKey",2],["curry",8],["curryRight",16],["flip",512],["partial",32],["partialRight",64],["rearg",256]],o=/^\s+|\s+$/g,s=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,i=/\{\n\/\* \[wrapped with (.+)\] \*/,u=/,? & /,l=/^[-+]0x[0-9a-f]+$/i,c=/^0b[01]+$/i,f=/^\[object .+?Constructor\]$/,b=/^0o[0-7]+$/i,d=/^(?:0|[1-9]\d*)$/,h=parseInt,p="object"==typeof r.g&&r.g&&r.g.Object===Object&&r.g,y="object"==typeof self&&self&&self.Object===Object&&self,v=p||y||Function("return this")();function g(e,t,r){switch(r.length){case 0:return e.call(t);case 1:return e.call(t,r[0]);case 2:return e.call(t,r[0],r[1]);case 3:return e.call(t,r[0],r[1],r[2])}return e.apply(t,r)}function m(e){return e!=e}function O(e,t){for(var r=e.length,a=0;r--;)e[r]===t&&a++;return a}function w(e,t){for(var r=-1,n=e.length,o=0,s=[];++r2?k:void 0);function N(e){return X(e)?T(e):{}}function I(e,t,r,a){for(var n=-1,o=e.length,s=r.length,i=-1,u=t.length,l=D(o-s,0),c=Array(u+l),f=!a;++i1&&m.reverse(),c&&u1?"& ":"")+t[a],t=t.join(r>2?", ":" "),e.replace(s,"{\n/* [wrapped with "+t+"] */\n")}function K(e,t){return!!(t=null==t?9007199254740991:t)&&("number"==typeof e||d.test(e))&&e>-1&&e%1==0&&e-1}(e,i)&&e.push(i))););var s,i}(n),e.sort()}function H(e,t,r){var a=function(e,t,r,a,n,o,s,i){var u=2&t;if(!u&&"function"!=typeof e)throw new TypeError("Expected a function");var l=a?a.length:0;if(l||(t&=-97,a=n=void 0),s=void 0===s?s:D(Q(s),0),i=void 0===i?i:Q(i),l-=n?n.length:0,64&t){var c=a,f=n;a=n=void 0}var b=[e,t,r,a,n,c,f,o,s,i];if(e=b[0],t=b[1],r=b[2],a=b[3],n=b[4],!(i=b[9]=null==b[9]?u?0:e.length:D(b[9]-l,0))&&24&t&&(t&=-25),t&&1!=t)d=8==t||16==t?function(e,t,r){var a=q(e);return function n(){for(var o=arguments.length,s=Array(o),i=o,u=$(n);i--;)s[i]=arguments[i];var l=o<3&&s[0]!==u&&s[o-1]!==u?[]:w(s,u);return(o-=l.length){"use strict";var a=r(77080);function n(){}function o(){}o.resetWarningCache=n,e.exports=function(){function e(e,t,r,n,o,s){if(s!==a){var i=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw i.name="Invariant Violation",i}}function t(){return e}e.isRequired=e;var r={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:o,resetWarningCache:n};return r.PropTypes=r,r}},25816:(e,t,r)=>{e.exports=r(10749)()},77080:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},88724:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.rgb2yuv=function(e){var t=e[0]/255,r=e[1]/255,a=e[2]/255;return[.299*t+.587*r+.114*a,-.14713*t+-.28886*r+.436*a,.615*t+-.51499*r+-.10001*a]},t.yuv2rgb=function(e){var t,r,a,n=e[0],o=e[1],s=e[2];return t=1*n+0*o+1.13983*s,r=1*n+-.39465*o+-.5806*s,a=1*n+2.02311*o+0*s,[255*(t=Math.min(Math.max(0,t),1)),255*(r=Math.min(Math.max(0,r),1)),255*(a=Math.min(Math.max(0,a),1))]}},60469:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var a={invertBase16Theme:!0,createStyling:!0,getBase16Theme:!0,invertTheme:!0,Base16Theme:!0};Object.defineProperty(t,"Base16Theme",{enumerable:!0,get:function(){return n.Base16Theme}}),t.invertTheme=t.invertBase16Theme=t.getBase16Theme=t.createStyling=void 0;var n=function(e,t){if(e&&e.__esModule)return e;if(null===e||"object"!==f(e)&&"function"!=typeof e)return{default:e};var r=c(t);if(r&&r.has(e))return r.get(e);var a={},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var s=n?Object.getOwnPropertyDescriptor(e,o):null;s&&(s.get||s.set)?Object.defineProperty(a,o,s):a[o]=e[o]}return a.default=e,r&&r.set(e,a),a}(r(62094)),o=l(r(8071)),s=l(r(11628)),i=r(88724),u=r(11522);function l(e){return e&&e.__esModule?e:{default:e}}function c(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(c=function(e){return e?r:t})(e)}function f(e){return f="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},f(e)}function b(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function d(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,a=new Array(t);r1?a-1:0),o=1;o1?a-1:0),o=1;o1?a-1:0),o=1;o1?a-1:0),o=1;o1?a-1:0),o=1;o2?r-2:0),n=2;n1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},a=t.defaultBase16,n=void 0===a?v:a,o=t.base16Themes,i=void 0===o?null:o,u=E(r,i);u&&(r=d(d({},u),r));for(var l=g.reduce((function(e,t){return e[t]=r[t]||n[t],e}),{}),c=Object.keys(r).reduce((function(e,t){return-1===g.indexOf(t)?(e[t]=r[t],e):e}),{}),f=e(l),b=O(c,f),h=arguments.length,p=new Array(h>3?h-3:0),y=3;y{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},63617:(e,t,r)=>{"use strict";function a(e){return a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},a(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n=i(r(62471)),o=i(r(25816)),s=i(r(23621));function i(e){return e&&e.__esModule?e:{default:e}}function u(){return u=Object.assign||function(e){for(var t=1;t{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=i(r(62471)),n=i(r(25816)),o=i(r(59555)),s=["data"];function i(e){return e&&e.__esModule?e:{default:e}}function u(){return u=Object.assign||function(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}(e,s);return a.default.createElement(o.default,u({},r,{data:t,nodeType:"Array",nodeTypeIndicator:"[]",createItemString:l,expandable:t.length>0}))};c.propTypes={data:n.default.array};var f=c;t.default=f},23621:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=o(r(62471)),n=o(r(25816));function o(e){return e&&e.__esModule?e:{default:e}}function s(){return s=Object.assign||function(e){for(var t=1;t{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=o(r(62471)),n=o(r(59555));function o(e){return e&&e.__esModule?e:{default:e}}function s(){return s=Object.assign||function(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,a=new Array(t);r=e.length?{done:!0}:{done:!1,value:e[a++]}},e:function(e){throw e},f:n}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,s=!0,u=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return s=e.done,e},e:function(e){u=!0,o=e},f:function(){try{s||null==r.return||r.return()}finally{if(u)throw o}}}}(e);try{for(o.s();!(n=o.n()).done;){if(n.value,t&&r+1>t){a=!0;break}r+=1}}catch(e){o.e(e)}finally{o.f()}}return"".concat(a?">":"").concat(r," ").concat(1!==r?"entries":"entry")}t.default=function(e){var t=s({},e);return a.default.createElement(n.default,s({},t,{nodeType:"Iterable",nodeTypeIndicator:"()",createItemString:u}))}},59555:(e,t,r)=>{"use strict";function a(e){return a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},a(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n=c(r(62471)),o=c(r(25816)),s=c(r(23621)),i=c(r(42542)),u=c(r(35240)),l=c(r(63617));function c(e){return e&&e.__esModule?e:{default:e}}function f(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function b(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,a=new Array(t);r{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=f(r(62471)),n=f(r(25816)),o=f(r(4595)),s=f(r(60010)),i=f(r(54922)),u=f(r(24114)),l=f(r(62354)),c=["getItemString","keyPath","labelRenderer","styling","value","valueRenderer","isCustomNode"];function f(e){return e&&e.__esModule?e:{default:e}}function b(){return b=Object.assign||function(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}(e,c),g=y(d)?"Custom":(0,o.default)(d),m={getItemString:t,key:r[0],keyPath:r,labelRenderer:n,nodeType:g,styling:f,value:d,valueRenderer:p},O=h(h(h({},v),m),{},{data:d,isCustomNode:y});switch(g){case"Object":case"Error":case"WeakMap":case"WeakSet":return a.default.createElement(s.default,O);case"Array":return a.default.createElement(i.default,O);case"Iterable":case"Map":case"Set":return a.default.createElement(u.default,O);case"String":return a.default.createElement(l.default,b({},m,{valueGetter:function(e){return'"'.concat(e,'"')}}));case"Number":case"Custom":return a.default.createElement(l.default,m);case"Boolean":return a.default.createElement(l.default,b({},m,{valueGetter:function(e){return e?"true":"false"}}));case"Date":return a.default.createElement(l.default,b({},m,{valueGetter:function(e){return e.toISOString()}}));case"Null":return a.default.createElement(l.default,b({},m,{valueGetter:function(){return"null"}}));case"Undefined":return a.default.createElement(l.default,b({},m,{valueGetter:function(){return"undefined"}}));case"Function":case"Symbol":return a.default.createElement(l.default,b({},m,{valueGetter:function(e){return e.toString()}}));default:return a.default.createElement(l.default,b({},m,{valueGetter:function(){return"<".concat(g,">")}}))}};y.propTypes={getItemString:n.default.func.isRequired,keyPath:n.default.arrayOf(n.default.oneOfType([n.default.string,n.default.number]).isRequired).isRequired,labelRenderer:n.default.func.isRequired,styling:n.default.func.isRequired,value:n.default.any,valueRenderer:n.default.func.isRequired,isCustomNode:n.default.func.isRequired};var v=y;t.default=v},60010:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=i(r(62471)),n=i(r(25816)),o=i(r(59555)),s=["data"];function i(e){return e&&e.__esModule?e:{default:e}}function u(){return u=Object.assign||function(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}(e,s);return a.default.createElement(o.default,u({},r,{data:t,nodeType:"Object",nodeTypeIndicator:"Error"===r.nodeType?"Error()":"{}",createItemString:l,expandable:Object.getOwnPropertyNames(t).length>0}))};c.propTypes={data:n.default.object,nodeType:n.default.string.isRequired};var f=c;t.default=f},62354:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=o(r(62471)),n=o(r(25816));function o(e){return e&&e.__esModule?e:{default:e}}function s(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,a=new Array(t);r{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a,n=r(60469),o=(a=r(28298))&&a.__esModule?a:{default:a};function s(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function i(e){for(var t=1;t1?"2.125em":"1.25em",textIndent:"-0.5em",wordBreak:"break-all"})}},label:{display:"inline-block",color:t.LABEL_COLOR},valueLabel:{margin:"0 0.5em 0 0"},valueText:function(e,r){return{style:i(i({},e.style),{},{color:l(t)[r]})}},itemRange:function(e,r){return{style:{paddingTop:r?0:"0.25em",cursor:"pointer",color:t.LABEL_COLOR}}},arrow:function(e,t,r){return{style:i(i({},e.style),{},{marginLeft:0,transition:"150ms",WebkitTransition:"150ms",MozTransition:"150ms",WebkitTransform:r?"rotateZ(90deg)":"rotateZ(0deg)",MozTransform:r?"rotateZ(90deg)":"rotateZ(0deg)",transform:r?"rotateZ(90deg)":"rotateZ(0deg)",transformOrigin:"45% 50%",WebkitTransformOrigin:"45% 50%",MozTransformOrigin:"45% 50%",position:"relative",lineHeight:"1.1em",fontSize:"0.75em"})}},arrowContainer:function(e,t){return{style:i(i({},e.style),{},{display:"inline-block",paddingRight:"0.5em",paddingLeft:"double"===t?"1em":0,cursor:"pointer"})}},arrowSign:{color:t.ARROW_COLOR},arrowSignInner:{position:"absolute",top:0,left:"-0.4em"},nestedNode:function(e,t,r,a,n){return{style:i(i({},e.style),{},{position:"relative",paddingTop:"0.25em",marginLeft:t.length>1?"0.875em":0,paddingLeft:n?0:"1.125em"})}},rootNode:{padding:0,margin:0},nestedNodeLabel:function(e,t,r,a,n){return{style:i(i({},e.style),{},{margin:0,padding:0,WebkitUserSelect:n?"inherit":"text",MozUserSelect:n?"inherit":"text",cursor:n?"pointer":"default"})}},nestedNodeItemString:function(e,r,a,n){return{style:i(i({},e.style),{},{paddingLeft:"0.5em",cursor:"default",color:n?t.ITEM_STRING_EXPANDED_COLOR:t.ITEM_STRING_COLOR})}},nestedNodeItemType:{marginLeft:"0.3em",marginRight:"0.3em"},nestedNodeChildren:function(e,t,r){return{style:i(i({},e.style),{},{padding:0,margin:0,listStyle:"none",display:r?"block":"none"})}},rootNodeChildren:{padding:0,margin:0,listStyle:"none"}}}),{defaultBase16:o.default});t.default=c},42542:(e,t)=>{"use strict";function r(e){return function(e){if(Array.isArray(e))return o(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||n(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function a(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=n(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var a=0,o=function(){};return{s:o,n:function(){return a>=e.length?{done:!0}:{done:!1,value:e[a++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var s,i=!0,u=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return i=e.done,e},e:function(e){u=!0,s=e},f:function(){try{i||null==r.return||r.return()}finally{if(u)throw s}}}}function n(e,t){if(e){if("string"==typeof e)return o(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?o(e,t):void 0}}function o(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,a=new Array(t);r3&&void 0!==arguments[3]?arguments[3]:0,s=arguments.length>4&&void 0!==arguments[4]?arguments[4]:1/0;if("Object"===e){var u=Object.getOwnPropertyNames(t);r&&u.sort(!0===r?void 0:r),n={entries:(u=u.slice(o,s+1)).map((function(e){return{key:e,value:t[e]}}))}}else if("Array"===e)n={entries:t.slice(o,s+1).map((function(e,t){return{key:t+o,value:e}}))};else{var l,c=0,f=[],b=!0,d=i(t),h=a(t);try{for(h.s();!(l=h.n()).done;){var p=l.value;if(c>s){b=!1;break}o<=c&&(d&&Array.isArray(p)?"string"==typeof p[0]||"number"==typeof p[0]?f.push({key:p[0],value:p[1]}):f.push({key:"[entry ".concat(c,"]"),value:{"[key]":p[0],"[value]":p[1]}}):f.push({key:c,value:p})),c++}}catch(e){h.e(e)}finally{h.f()}n={hasMore:!b,entries:f}}return n}function l(e,t,r){for(var a=[];t-e>r*r;)r*=r;for(var n=e;n<=t;n+=r)a.push({from:n,to:Math.min(t,n+r-1)});return a}Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t,a,n){var o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:0,i=arguments.length>5&&void 0!==arguments[5]?arguments[5]:1/0,c=u.bind(null,e,t,a);if(!n)return c().entries;var f,b=i<1/0,d=Math.min(i-o,s(e,t));if("Iterable"!==e){if(d<=n||n<7)return c(o,i).entries}else if(d<=n&&!b)return c(o,i).entries;if("Iterable"===e){var h=c(o,o+n-1),p=h.hasMore,y=h.entries;f=p?[].concat(r(y),r(l(o+n,o+2*n-1,n))):y}else f=b?l(o,i,n):[].concat(r(c(0,n-5).entries),r(l(n-4,d-5,n)),r(c(d-4,d-1).entries));return f}},34615:(e,t,r)=>{"use strict";function a(e){return a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},a(e)}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"StylingValue",{enumerable:!0,get:function(){return u.StylingValue}}),t.default=void 0;var n=c(r(62471)),o=c(r(25816)),s=c(r(35240)),i=c(r(12167)),u=r(60469),l=["data","keyPath","postprocessValue","hideRoot","theme","invertTheme"];function c(e){return e&&e.__esModule?e:{default:e}}function f(){return f=Object.assign||function(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,a=new Array(t);r0&&(e="string"==typeof e?{extend:e}:v({},e),a.forEach((function(a){console.error('Styling method "'.concat(a,'" is deprecated, use "theme" property instead')),e[r[a]]=function(e){for(var r=e.style,n=arguments.length,o=new Array(n>1?n-1:0),s=1;s=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}(e,l)),u=this.state.styling;return n.default.createElement("ul",u("tree"),n.default.createElement(s.default,f({},v({postprocessValue:a,hideRoot:o,styling:u},i),{keyPath:o?[]:r,value:a(t)})))}}])&&b(t.prototype,r),Object.defineProperty(t,"prototype",{writable:!1}),u}(n.default.Component);t.default=j,g(j,"propTypes",{data:o.default.any,hideRoot:o.default.bool,theme:o.default.oneOfType([o.default.object,o.default.string]),invertTheme:o.default.bool,keyPath:o.default.arrayOf(o.default.oneOfType([o.default.string,o.default.number])),postprocessValue:o.default.func,sortObjectKeys:o.default.oneOfType([o.default.func,o.default.bool])}),g(j,"defaultProps",{shouldExpandNode:function(e,t,r){return 0===r},hideRoot:!1,keyPath:["root"],getItemString:function(e,t,r,a){return n.default.createElement("span",null,r," ",a)},labelRenderer:function(e){var t,r,a=(t=e,r=1,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var a,n,o=[],s=!0,i=!1;try{for(r=r.call(e);!(s=(a=r.next()).done)&&(o.push(a.value),!t||o.length!==t);s=!0);}catch(e){i=!0,n=e}finally{try{s||null==r.return||r.return()}finally{if(i)throw n}}return o}}(t,r)||function(e,t){if(e){if("string"==typeof e)return m(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?m(e,t):void 0}}(t,r)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}())[0];return n.default.createElement("span",null,a,":")},valueRenderer:O,postprocessValue:O,isCustomNode:function(){return!1},collectionLimit:50,invertTheme:!0})},4595:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){var t=Object.prototype.toString.call(e).slice(8,-1);return"Object"===t&&"function"==typeof e[Symbol.iterator]?"Iterable":"Custom"===t&&e.constructor!==Object&&e instanceof Object?"Object":t}},28298:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,t.default={scheme:"solarized",author:"ethan schoonover (http://ethanschoonover.com/solarized)",base00:"#002b36",base01:"#073642",base02:"#586e75",base03:"#657b83",base04:"#839496",base05:"#93a1a1",base06:"#eee8d5",base07:"#fdf6e3",base08:"#dc322f",base09:"#cb4b16",base0A:"#b58900",base0B:"#859900",base0C:"#2aa198",base0D:"#268bd2",base0E:"#6c71c4",base0F:"#d33682"}},32107:(e,t,r)=>{"use strict";var a=r(51938),n=Array.prototype.concat,o=Array.prototype.slice,s=e.exports=function(e){for(var t=[],r=0,s=e.length;r{e.exports=function(e){return!(!e||"string"==typeof e)&&(e instanceof Array||Array.isArray(e)||e.length>=0&&(e.splice instanceof Function||Object.getOwnPropertyDescriptor(e,e.length-1)&&"String"!==e.constructor.name))}}}]); +//# sourceMappingURL=4615.eb5d40a.js.map \ No newline at end of file diff --git a/_static/build/4615.eb5d40a.js.map b/_static/build/4615.eb5d40a.js.map new file mode 100644 index 0000000..3a4c9a0 --- /dev/null +++ b/_static/build/4615.eb5d40a.js.map @@ -0,0 +1 @@ +{"version":3,"file":"4615.eb5d40a.js","mappings":"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","sources":["webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/base16/lib/apathy.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/base16/lib/ashes.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/base16/lib/atelier-dune.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/base16/lib/atelier-forest.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/base16/lib/atelier-heath.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/base16/lib/atelier-lakeside.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/base16/lib/atelier-seaside.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/base16/lib/bespin.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/base16/lib/brewer.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/base16/lib/bright.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/base16/lib/chalk.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/base16/lib/codeschool.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/base16/lib/colors.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/base16/lib/default.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/base16/lib/eighties.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/base16/lib/embers.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/base16/lib/flat.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/base16/lib/google.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/base16/lib/grayscale.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/base16/lib/greenscreen.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/base16/lib/harmonic.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/base16/lib/hopscotch.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/base16/lib/index.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/base16/lib/isotope.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/base16/lib/marrakesh.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/base16/lib/mocha.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/base16/lib/monokai.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/base16/lib/ocean.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/base16/lib/paraiso.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/base16/lib/pop.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/base16/lib/railscasts.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/base16/lib/shapeshifter.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/base16/lib/solarized.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/base16/lib/summerfruit.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/base16/lib/threezerotwofour.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/base16/lib/tomorrow.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/base16/lib/tube.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/base16/lib/twilight.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/color-convert/conversions.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/color-convert/index.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/color-convert/node_modules/color-name/index.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/color-convert/route.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/color-name/index.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/color-string/index.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/color/index.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/lodash.curry/index.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/prop-types/factoryWithThrowingShims.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/prop-types/index.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/react-base16-styling/src/colorConverters.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/react-base16-styling/src/index.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/react-json-tree/src/ItemRange.tsx","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/react-json-tree/src/JSONArrayNode.tsx","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/react-json-tree/src/JSONArrow.tsx","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/react-json-tree/src/JSONIterableNode.tsx","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/react-json-tree/src/JSONNestedNode.tsx","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/react-json-tree/src/JSONNode.tsx","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/react-json-tree/src/JSONObjectNode.tsx","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/react-json-tree/src/JSONValueNode.tsx","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/react-json-tree/src/createStylingFromTheme.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/react-json-tree/src/getCollectionEntries.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/react-json-tree/src/index.tsx","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/react-json-tree/src/objType.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/react-json-tree/src/themes/solarized.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/simple-swizzle/index.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/simple-swizzle/node_modules/is-arrayish/index.js"],"sourcesContent":["'use strict';\n\nexports.__esModule = true;\nexports['default'] = {\n scheme: 'apathy',\n author: 'jannik siebert (https://github.com/janniks)',\n base00: '#031A16',\n base01: '#0B342D',\n base02: '#184E45',\n base03: '#2B685E',\n base04: '#5F9C92',\n base05: '#81B5AC',\n base06: '#A7CEC8',\n base07: '#D2E7E4',\n base08: '#3E9688',\n base09: '#3E7996',\n base0A: '#3E4C96',\n base0B: '#883E96',\n base0C: '#963E4C',\n base0D: '#96883E',\n base0E: '#4C963E',\n base0F: '#3E965B'\n};\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports['default'] = {\n scheme: 'ashes',\n author: 'jannik siebert (https://github.com/janniks)',\n base00: '#1C2023',\n base01: '#393F45',\n base02: '#565E65',\n base03: '#747C84',\n base04: '#ADB3BA',\n base05: '#C7CCD1',\n base06: '#DFE2E5',\n base07: '#F3F4F5',\n base08: '#C7AE95',\n base09: '#C7C795',\n base0A: '#AEC795',\n base0B: '#95C7AE',\n base0C: '#95AEC7',\n base0D: '#AE95C7',\n base0E: '#C795AE',\n base0F: '#C79595'\n};\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports['default'] = {\n scheme: 'atelier dune',\n author: 'bram de haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/dune)',\n base00: '#20201d',\n base01: '#292824',\n base02: '#6e6b5e',\n base03: '#7d7a68',\n base04: '#999580',\n base05: '#a6a28c',\n base06: '#e8e4cf',\n base07: '#fefbec',\n base08: '#d73737',\n base09: '#b65611',\n base0A: '#cfb017',\n base0B: '#60ac39',\n base0C: '#1fad83',\n base0D: '#6684e1',\n base0E: '#b854d4',\n base0F: '#d43552'\n};\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports['default'] = {\n scheme: 'atelier forest',\n author: 'bram de haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/forest)',\n base00: '#1b1918',\n base01: '#2c2421',\n base02: '#68615e',\n base03: '#766e6b',\n base04: '#9c9491',\n base05: '#a8a19f',\n base06: '#e6e2e0',\n base07: '#f1efee',\n base08: '#f22c40',\n base09: '#df5320',\n base0A: '#d5911a',\n base0B: '#5ab738',\n base0C: '#00ad9c',\n base0D: '#407ee7',\n base0E: '#6666ea',\n base0F: '#c33ff3'\n};\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports['default'] = {\n scheme: 'atelier heath',\n author: 'bram de haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/heath)',\n base00: '#1b181b',\n base01: '#292329',\n base02: '#695d69',\n base03: '#776977',\n base04: '#9e8f9e',\n base05: '#ab9bab',\n base06: '#d8cad8',\n base07: '#f7f3f7',\n base08: '#ca402b',\n base09: '#a65926',\n base0A: '#bb8a35',\n base0B: '#379a37',\n base0C: '#159393',\n base0D: '#516aec',\n base0E: '#7b59c0',\n base0F: '#cc33cc'\n};\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports['default'] = {\n scheme: 'atelier lakeside',\n author: 'bram de haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/lakeside/)',\n base00: '#161b1d',\n base01: '#1f292e',\n base02: '#516d7b',\n base03: '#5a7b8c',\n base04: '#7195a8',\n base05: '#7ea2b4',\n base06: '#c1e4f6',\n base07: '#ebf8ff',\n base08: '#d22d72',\n base09: '#935c25',\n base0A: '#8a8a0f',\n base0B: '#568c3b',\n base0C: '#2d8f6f',\n base0D: '#257fad',\n base0E: '#5d5db1',\n base0F: '#b72dd2'\n};\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports['default'] = {\n scheme: 'atelier seaside',\n author: 'bram de haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/seaside/)',\n base00: '#131513',\n base01: '#242924',\n base02: '#5e6e5e',\n base03: '#687d68',\n base04: '#809980',\n base05: '#8ca68c',\n base06: '#cfe8cf',\n base07: '#f0fff0',\n base08: '#e6193c',\n base09: '#87711d',\n base0A: '#c3c322',\n base0B: '#29a329',\n base0C: '#1999b3',\n base0D: '#3d62f5',\n base0E: '#ad2bee',\n base0F: '#e619c3'\n};\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports['default'] = {\n scheme: 'bespin',\n author: 'jan t. sott',\n base00: '#28211c',\n base01: '#36312e',\n base02: '#5e5d5c',\n base03: '#666666',\n base04: '#797977',\n base05: '#8a8986',\n base06: '#9d9b97',\n base07: '#baae9e',\n base08: '#cf6a4c',\n base09: '#cf7d34',\n base0A: '#f9ee98',\n base0B: '#54be0d',\n base0C: '#afc4db',\n base0D: '#5ea6ea',\n base0E: '#9b859d',\n base0F: '#937121'\n};\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports['default'] = {\n scheme: 'brewer',\n author: 'timothée poisot (http://github.com/tpoisot)',\n base00: '#0c0d0e',\n base01: '#2e2f30',\n base02: '#515253',\n base03: '#737475',\n base04: '#959697',\n base05: '#b7b8b9',\n base06: '#dadbdc',\n base07: '#fcfdfe',\n base08: '#e31a1c',\n base09: '#e6550d',\n base0A: '#dca060',\n base0B: '#31a354',\n base0C: '#80b1d3',\n base0D: '#3182bd',\n base0E: '#756bb1',\n base0F: '#b15928'\n};\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports['default'] = {\n scheme: 'bright',\n author: 'chris kempson (http://chriskempson.com)',\n base00: '#000000',\n base01: '#303030',\n base02: '#505050',\n base03: '#b0b0b0',\n base04: '#d0d0d0',\n base05: '#e0e0e0',\n base06: '#f5f5f5',\n base07: '#ffffff',\n base08: '#fb0120',\n base09: '#fc6d24',\n base0A: '#fda331',\n base0B: '#a1c659',\n base0C: '#76c7b7',\n base0D: '#6fb3d2',\n base0E: '#d381c3',\n base0F: '#be643c'\n};\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports['default'] = {\n scheme: 'chalk',\n author: 'chris kempson (http://chriskempson.com)',\n base00: '#151515',\n base01: '#202020',\n base02: '#303030',\n base03: '#505050',\n base04: '#b0b0b0',\n base05: '#d0d0d0',\n base06: '#e0e0e0',\n base07: '#f5f5f5',\n base08: '#fb9fb1',\n base09: '#eda987',\n base0A: '#ddb26f',\n base0B: '#acc267',\n base0C: '#12cfc0',\n base0D: '#6fc2ef',\n base0E: '#e1a3ee',\n base0F: '#deaf8f'\n};\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports['default'] = {\n scheme: 'codeschool',\n author: 'brettof86',\n base00: '#232c31',\n base01: '#1c3657',\n base02: '#2a343a',\n base03: '#3f4944',\n base04: '#84898c',\n base05: '#9ea7a6',\n base06: '#a7cfa3',\n base07: '#b5d8f6',\n base08: '#2a5491',\n base09: '#43820d',\n base0A: '#a03b1e',\n base0B: '#237986',\n base0C: '#b02f30',\n base0D: '#484d79',\n base0E: '#c59820',\n base0F: '#c98344'\n};\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports['default'] = {\n scheme: 'colors',\n author: 'mrmrs (http://clrs.cc)',\n base00: '#111111',\n base01: '#333333',\n base02: '#555555',\n base03: '#777777',\n base04: '#999999',\n base05: '#bbbbbb',\n base06: '#dddddd',\n base07: '#ffffff',\n base08: '#ff4136',\n base09: '#ff851b',\n base0A: '#ffdc00',\n base0B: '#2ecc40',\n base0C: '#7fdbff',\n base0D: '#0074d9',\n base0E: '#b10dc9',\n base0F: '#85144b'\n};\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports['default'] = {\n scheme: 'default',\n author: 'chris kempson (http://chriskempson.com)',\n base00: '#181818',\n base01: '#282828',\n base02: '#383838',\n base03: '#585858',\n base04: '#b8b8b8',\n base05: '#d8d8d8',\n base06: '#e8e8e8',\n base07: '#f8f8f8',\n base08: '#ab4642',\n base09: '#dc9656',\n base0A: '#f7ca88',\n base0B: '#a1b56c',\n base0C: '#86c1b9',\n base0D: '#7cafc2',\n base0E: '#ba8baf',\n base0F: '#a16946'\n};\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports['default'] = {\n scheme: 'eighties',\n author: 'chris kempson (http://chriskempson.com)',\n base00: '#2d2d2d',\n base01: '#393939',\n base02: '#515151',\n base03: '#747369',\n base04: '#a09f93',\n base05: '#d3d0c8',\n base06: '#e8e6df',\n base07: '#f2f0ec',\n base08: '#f2777a',\n base09: '#f99157',\n base0A: '#ffcc66',\n base0B: '#99cc99',\n base0C: '#66cccc',\n base0D: '#6699cc',\n base0E: '#cc99cc',\n base0F: '#d27b53'\n};\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports['default'] = {\n scheme: 'embers',\n author: 'jannik siebert (https://github.com/janniks)',\n base00: '#16130F',\n base01: '#2C2620',\n base02: '#433B32',\n base03: '#5A5047',\n base04: '#8A8075',\n base05: '#A39A90',\n base06: '#BEB6AE',\n base07: '#DBD6D1',\n base08: '#826D57',\n base09: '#828257',\n base0A: '#6D8257',\n base0B: '#57826D',\n base0C: '#576D82',\n base0D: '#6D5782',\n base0E: '#82576D',\n base0F: '#825757'\n};\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports['default'] = {\n scheme: 'flat',\n author: 'chris kempson (http://chriskempson.com)',\n base00: '#2C3E50',\n base01: '#34495E',\n base02: '#7F8C8D',\n base03: '#95A5A6',\n base04: '#BDC3C7',\n base05: '#e0e0e0',\n base06: '#f5f5f5',\n base07: '#ECF0F1',\n base08: '#E74C3C',\n base09: '#E67E22',\n base0A: '#F1C40F',\n base0B: '#2ECC71',\n base0C: '#1ABC9C',\n base0D: '#3498DB',\n base0E: '#9B59B6',\n base0F: '#be643c'\n};\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports['default'] = {\n scheme: 'google',\n author: 'seth wright (http://sethawright.com)',\n base00: '#1d1f21',\n base01: '#282a2e',\n base02: '#373b41',\n base03: '#969896',\n base04: '#b4b7b4',\n base05: '#c5c8c6',\n base06: '#e0e0e0',\n base07: '#ffffff',\n base08: '#CC342B',\n base09: '#F96A38',\n base0A: '#FBA922',\n base0B: '#198844',\n base0C: '#3971ED',\n base0D: '#3971ED',\n base0E: '#A36AC7',\n base0F: '#3971ED'\n};\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports['default'] = {\n scheme: 'grayscale',\n author: 'alexandre gavioli (https://github.com/alexx2/)',\n base00: '#101010',\n base01: '#252525',\n base02: '#464646',\n base03: '#525252',\n base04: '#ababab',\n base05: '#b9b9b9',\n base06: '#e3e3e3',\n base07: '#f7f7f7',\n base08: '#7c7c7c',\n base09: '#999999',\n base0A: '#a0a0a0',\n base0B: '#8e8e8e',\n base0C: '#868686',\n base0D: '#686868',\n base0E: '#747474',\n base0F: '#5e5e5e'\n};\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports['default'] = {\n scheme: 'green screen',\n author: 'chris kempson (http://chriskempson.com)',\n base00: '#001100',\n base01: '#003300',\n base02: '#005500',\n base03: '#007700',\n base04: '#009900',\n base05: '#00bb00',\n base06: '#00dd00',\n base07: '#00ff00',\n base08: '#007700',\n base09: '#009900',\n base0A: '#007700',\n base0B: '#00bb00',\n base0C: '#005500',\n base0D: '#009900',\n base0E: '#00bb00',\n base0F: '#005500'\n};\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports['default'] = {\n scheme: 'harmonic16',\n author: 'jannik siebert (https://github.com/janniks)',\n base00: '#0b1c2c',\n base01: '#223b54',\n base02: '#405c79',\n base03: '#627e99',\n base04: '#aabcce',\n base05: '#cbd6e2',\n base06: '#e5ebf1',\n base07: '#f7f9fb',\n base08: '#bf8b56',\n base09: '#bfbf56',\n base0A: '#8bbf56',\n base0B: '#56bf8b',\n base0C: '#568bbf',\n base0D: '#8b56bf',\n base0E: '#bf568b',\n base0F: '#bf5656'\n};\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports['default'] = {\n scheme: 'hopscotch',\n author: 'jan t. sott',\n base00: '#322931',\n base01: '#433b42',\n base02: '#5c545b',\n base03: '#797379',\n base04: '#989498',\n base05: '#b9b5b8',\n base06: '#d5d3d5',\n base07: '#ffffff',\n base08: '#dd464c',\n base09: '#fd8b19',\n base0A: '#fdcc59',\n base0B: '#8fc13e',\n base0C: '#149b93',\n base0D: '#1290bf',\n base0E: '#c85e7c',\n base0F: '#b33508'\n};\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\n\nfunction _interopRequire(obj) { return obj && obj.__esModule ? obj['default'] : obj; }\n\nvar _threezerotwofour = require('./threezerotwofour');\n\nexports.threezerotwofour = _interopRequire(_threezerotwofour);\n\nvar _apathy = require('./apathy');\n\nexports.apathy = _interopRequire(_apathy);\n\nvar _ashes = require('./ashes');\n\nexports.ashes = _interopRequire(_ashes);\n\nvar _atelierDune = require('./atelier-dune');\n\nexports.atelierDune = _interopRequire(_atelierDune);\n\nvar _atelierForest = require('./atelier-forest');\n\nexports.atelierForest = _interopRequire(_atelierForest);\n\nvar _atelierHeath = require('./atelier-heath');\n\nexports.atelierHeath = _interopRequire(_atelierHeath);\n\nvar _atelierLakeside = require('./atelier-lakeside');\n\nexports.atelierLakeside = _interopRequire(_atelierLakeside);\n\nvar _atelierSeaside = require('./atelier-seaside');\n\nexports.atelierSeaside = _interopRequire(_atelierSeaside);\n\nvar _bespin = require('./bespin');\n\nexports.bespin = _interopRequire(_bespin);\n\nvar _brewer = require('./brewer');\n\nexports.brewer = _interopRequire(_brewer);\n\nvar _bright = require('./bright');\n\nexports.bright = _interopRequire(_bright);\n\nvar _chalk = require('./chalk');\n\nexports.chalk = _interopRequire(_chalk);\n\nvar _codeschool = require('./codeschool');\n\nexports.codeschool = _interopRequire(_codeschool);\n\nvar _colors = require('./colors');\n\nexports.colors = _interopRequire(_colors);\n\nvar _default = require('./default');\n\nexports['default'] = _interopRequire(_default);\n\nvar _eighties = require('./eighties');\n\nexports.eighties = _interopRequire(_eighties);\n\nvar _embers = require('./embers');\n\nexports.embers = _interopRequire(_embers);\n\nvar _flat = require('./flat');\n\nexports.flat = _interopRequire(_flat);\n\nvar _google = require('./google');\n\nexports.google = _interopRequire(_google);\n\nvar _grayscale = require('./grayscale');\n\nexports.grayscale = _interopRequire(_grayscale);\n\nvar _greenscreen = require('./greenscreen');\n\nexports.greenscreen = _interopRequire(_greenscreen);\n\nvar _harmonic = require('./harmonic');\n\nexports.harmonic = _interopRequire(_harmonic);\n\nvar _hopscotch = require('./hopscotch');\n\nexports.hopscotch = _interopRequire(_hopscotch);\n\nvar _isotope = require('./isotope');\n\nexports.isotope = _interopRequire(_isotope);\n\nvar _marrakesh = require('./marrakesh');\n\nexports.marrakesh = _interopRequire(_marrakesh);\n\nvar _mocha = require('./mocha');\n\nexports.mocha = _interopRequire(_mocha);\n\nvar _monokai = require('./monokai');\n\nexports.monokai = _interopRequire(_monokai);\n\nvar _ocean = require('./ocean');\n\nexports.ocean = _interopRequire(_ocean);\n\nvar _paraiso = require('./paraiso');\n\nexports.paraiso = _interopRequire(_paraiso);\n\nvar _pop = require('./pop');\n\nexports.pop = _interopRequire(_pop);\n\nvar _railscasts = require('./railscasts');\n\nexports.railscasts = _interopRequire(_railscasts);\n\nvar _shapeshifter = require('./shapeshifter');\n\nexports.shapeshifter = _interopRequire(_shapeshifter);\n\nvar _solarized = require('./solarized');\n\nexports.solarized = _interopRequire(_solarized);\n\nvar _summerfruit = require('./summerfruit');\n\nexports.summerfruit = _interopRequire(_summerfruit);\n\nvar _tomorrow = require('./tomorrow');\n\nexports.tomorrow = _interopRequire(_tomorrow);\n\nvar _tube = require('./tube');\n\nexports.tube = _interopRequire(_tube);\n\nvar _twilight = require('./twilight');\n\nexports.twilight = _interopRequire(_twilight);","'use strict';\n\nexports.__esModule = true;\nexports['default'] = {\n scheme: 'isotope',\n author: 'jan t. sott',\n base00: '#000000',\n base01: '#404040',\n base02: '#606060',\n base03: '#808080',\n base04: '#c0c0c0',\n base05: '#d0d0d0',\n base06: '#e0e0e0',\n base07: '#ffffff',\n base08: '#ff0000',\n base09: '#ff9900',\n base0A: '#ff0099',\n base0B: '#33ff00',\n base0C: '#00ffff',\n base0D: '#0066ff',\n base0E: '#cc00ff',\n base0F: '#3300ff'\n};\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports['default'] = {\n scheme: 'marrakesh',\n author: 'alexandre gavioli (http://github.com/alexx2/)',\n base00: '#201602',\n base01: '#302e00',\n base02: '#5f5b17',\n base03: '#6c6823',\n base04: '#86813b',\n base05: '#948e48',\n base06: '#ccc37a',\n base07: '#faf0a5',\n base08: '#c35359',\n base09: '#b36144',\n base0A: '#a88339',\n base0B: '#18974e',\n base0C: '#75a738',\n base0D: '#477ca1',\n base0E: '#8868b3',\n base0F: '#b3588e'\n};\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports['default'] = {\n scheme: 'mocha',\n author: 'chris kempson (http://chriskempson.com)',\n base00: '#3B3228',\n base01: '#534636',\n base02: '#645240',\n base03: '#7e705a',\n base04: '#b8afad',\n base05: '#d0c8c6',\n base06: '#e9e1dd',\n base07: '#f5eeeb',\n base08: '#cb6077',\n base09: '#d28b71',\n base0A: '#f4bc87',\n base0B: '#beb55b',\n base0C: '#7bbda4',\n base0D: '#8ab3b5',\n base0E: '#a89bb9',\n base0F: '#bb9584'\n};\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports['default'] = {\n scheme: 'monokai',\n author: 'wimer hazenberg (http://www.monokai.nl)',\n base00: '#272822',\n base01: '#383830',\n base02: '#49483e',\n base03: '#75715e',\n base04: '#a59f85',\n base05: '#f8f8f2',\n base06: '#f5f4f1',\n base07: '#f9f8f5',\n base08: '#f92672',\n base09: '#fd971f',\n base0A: '#f4bf75',\n base0B: '#a6e22e',\n base0C: '#a1efe4',\n base0D: '#66d9ef',\n base0E: '#ae81ff',\n base0F: '#cc6633'\n};\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports['default'] = {\n scheme: 'ocean',\n author: 'chris kempson (http://chriskempson.com)',\n base00: '#2b303b',\n base01: '#343d46',\n base02: '#4f5b66',\n base03: '#65737e',\n base04: '#a7adba',\n base05: '#c0c5ce',\n base06: '#dfe1e8',\n base07: '#eff1f5',\n base08: '#bf616a',\n base09: '#d08770',\n base0A: '#ebcb8b',\n base0B: '#a3be8c',\n base0C: '#96b5b4',\n base0D: '#8fa1b3',\n base0E: '#b48ead',\n base0F: '#ab7967'\n};\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports['default'] = {\n scheme: 'paraiso',\n author: 'jan t. sott',\n base00: '#2f1e2e',\n base01: '#41323f',\n base02: '#4f424c',\n base03: '#776e71',\n base04: '#8d8687',\n base05: '#a39e9b',\n base06: '#b9b6b0',\n base07: '#e7e9db',\n base08: '#ef6155',\n base09: '#f99b15',\n base0A: '#fec418',\n base0B: '#48b685',\n base0C: '#5bc4bf',\n base0D: '#06b6ef',\n base0E: '#815ba4',\n base0F: '#e96ba8'\n};\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports['default'] = {\n scheme: 'pop',\n author: 'chris kempson (http://chriskempson.com)',\n base00: '#000000',\n base01: '#202020',\n base02: '#303030',\n base03: '#505050',\n base04: '#b0b0b0',\n base05: '#d0d0d0',\n base06: '#e0e0e0',\n base07: '#ffffff',\n base08: '#eb008a',\n base09: '#f29333',\n base0A: '#f8ca12',\n base0B: '#37b349',\n base0C: '#00aabb',\n base0D: '#0e5a94',\n base0E: '#b31e8d',\n base0F: '#7a2d00'\n};\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports['default'] = {\n scheme: 'railscasts',\n author: 'ryan bates (http://railscasts.com)',\n base00: '#2b2b2b',\n base01: '#272935',\n base02: '#3a4055',\n base03: '#5a647e',\n base04: '#d4cfc9',\n base05: '#e6e1dc',\n base06: '#f4f1ed',\n base07: '#f9f7f3',\n base08: '#da4939',\n base09: '#cc7833',\n base0A: '#ffc66d',\n base0B: '#a5c261',\n base0C: '#519f50',\n base0D: '#6d9cbe',\n base0E: '#b6b3eb',\n base0F: '#bc9458'\n};\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports['default'] = {\n scheme: 'shapeshifter',\n author: 'tyler benziger (http://tybenz.com)',\n base00: '#000000',\n base01: '#040404',\n base02: '#102015',\n base03: '#343434',\n base04: '#555555',\n base05: '#ababab',\n base06: '#e0e0e0',\n base07: '#f9f9f9',\n base08: '#e92f2f',\n base09: '#e09448',\n base0A: '#dddd13',\n base0B: '#0ed839',\n base0C: '#23edda',\n base0D: '#3b48e3',\n base0E: '#f996e2',\n base0F: '#69542d'\n};\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports['default'] = {\n scheme: 'solarized',\n author: 'ethan schoonover (http://ethanschoonover.com/solarized)',\n base00: '#002b36',\n base01: '#073642',\n base02: '#586e75',\n base03: '#657b83',\n base04: '#839496',\n base05: '#93a1a1',\n base06: '#eee8d5',\n base07: '#fdf6e3',\n base08: '#dc322f',\n base09: '#cb4b16',\n base0A: '#b58900',\n base0B: '#859900',\n base0C: '#2aa198',\n base0D: '#268bd2',\n base0E: '#6c71c4',\n base0F: '#d33682'\n};\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports['default'] = {\n scheme: 'summerfruit',\n author: 'christopher corley (http://cscorley.github.io/)',\n base00: '#151515',\n base01: '#202020',\n base02: '#303030',\n base03: '#505050',\n base04: '#B0B0B0',\n base05: '#D0D0D0',\n base06: '#E0E0E0',\n base07: '#FFFFFF',\n base08: '#FF0086',\n base09: '#FD8900',\n base0A: '#ABA800',\n base0B: '#00C918',\n base0C: '#1faaaa',\n base0D: '#3777E6',\n base0E: '#AD00A1',\n base0F: '#cc6633'\n};\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports['default'] = {\n scheme: 'threezerotwofour',\n author: 'jan t. sott (http://github.com/idleberg)',\n base00: '#090300',\n base01: '#3a3432',\n base02: '#4a4543',\n base03: '#5c5855',\n base04: '#807d7c',\n base05: '#a5a2a2',\n base06: '#d6d5d4',\n base07: '#f7f7f7',\n base08: '#db2d20',\n base09: '#e8bbd0',\n base0A: '#fded02',\n base0B: '#01a252',\n base0C: '#b5e4f4',\n base0D: '#01a0e4',\n base0E: '#a16a94',\n base0F: '#cdab53'\n};\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports['default'] = {\n scheme: 'tomorrow',\n author: 'chris kempson (http://chriskempson.com)',\n base00: '#1d1f21',\n base01: '#282a2e',\n base02: '#373b41',\n base03: '#969896',\n base04: '#b4b7b4',\n base05: '#c5c8c6',\n base06: '#e0e0e0',\n base07: '#ffffff',\n base08: '#cc6666',\n base09: '#de935f',\n base0A: '#f0c674',\n base0B: '#b5bd68',\n base0C: '#8abeb7',\n base0D: '#81a2be',\n base0E: '#b294bb',\n base0F: '#a3685a'\n};\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports['default'] = {\n scheme: 'london tube',\n author: 'jan t. sott',\n base00: '#231f20',\n base01: '#1c3f95',\n base02: '#5a5758',\n base03: '#737171',\n base04: '#959ca1',\n base05: '#d9d8d8',\n base06: '#e7e7e8',\n base07: '#ffffff',\n base08: '#ee2e24',\n base09: '#f386a1',\n base0A: '#ffd204',\n base0B: '#00853e',\n base0C: '#85cebc',\n base0D: '#009ddc',\n base0E: '#98005d',\n base0F: '#b06110'\n};\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports['default'] = {\n scheme: 'twilight',\n author: 'david hart (http://hart-dev.com)',\n base00: '#1e1e1e',\n base01: '#323537',\n base02: '#464b50',\n base03: '#5f5a60',\n base04: '#838184',\n base05: '#a7a7a7',\n base06: '#c3c3c3',\n base07: '#ffffff',\n base08: '#cf6a4c',\n base09: '#cda869',\n base0A: '#f9ee98',\n base0B: '#8f9d6a',\n base0C: '#afc4db',\n base0D: '#7587a6',\n base0E: '#9b859d',\n base0F: '#9b703f'\n};\nmodule.exports = exports['default'];","/* MIT license */\nvar cssKeywords = require('color-name');\n\n// NOTE: conversions should only return primitive values (i.e. arrays, or\n// values that give correct `typeof` results).\n// do not use box values types (i.e. Number(), String(), etc.)\n\nvar reverseKeywords = {};\nfor (var key in cssKeywords) {\n\tif (cssKeywords.hasOwnProperty(key)) {\n\t\treverseKeywords[cssKeywords[key]] = key;\n\t}\n}\n\nvar convert = module.exports = {\n\trgb: {channels: 3, labels: 'rgb'},\n\thsl: {channels: 3, labels: 'hsl'},\n\thsv: {channels: 3, labels: 'hsv'},\n\thwb: {channels: 3, labels: 'hwb'},\n\tcmyk: {channels: 4, labels: 'cmyk'},\n\txyz: {channels: 3, labels: 'xyz'},\n\tlab: {channels: 3, labels: 'lab'},\n\tlch: {channels: 3, labels: 'lch'},\n\thex: {channels: 1, labels: ['hex']},\n\tkeyword: {channels: 1, labels: ['keyword']},\n\tansi16: {channels: 1, labels: ['ansi16']},\n\tansi256: {channels: 1, labels: ['ansi256']},\n\thcg: {channels: 3, labels: ['h', 'c', 'g']},\n\tapple: {channels: 3, labels: ['r16', 'g16', 'b16']},\n\tgray: {channels: 1, labels: ['gray']}\n};\n\n// hide .channels and .labels properties\nfor (var model in convert) {\n\tif (convert.hasOwnProperty(model)) {\n\t\tif (!('channels' in convert[model])) {\n\t\t\tthrow new Error('missing channels property: ' + model);\n\t\t}\n\n\t\tif (!('labels' in convert[model])) {\n\t\t\tthrow new Error('missing channel labels property: ' + model);\n\t\t}\n\n\t\tif (convert[model].labels.length !== convert[model].channels) {\n\t\t\tthrow new Error('channel and label counts mismatch: ' + model);\n\t\t}\n\n\t\tvar channels = convert[model].channels;\n\t\tvar labels = convert[model].labels;\n\t\tdelete convert[model].channels;\n\t\tdelete convert[model].labels;\n\t\tObject.defineProperty(convert[model], 'channels', {value: channels});\n\t\tObject.defineProperty(convert[model], 'labels', {value: labels});\n\t}\n}\n\nconvert.rgb.hsl = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar min = Math.min(r, g, b);\n\tvar max = Math.max(r, g, b);\n\tvar delta = max - min;\n\tvar h;\n\tvar s;\n\tvar l;\n\n\tif (max === min) {\n\t\th = 0;\n\t} else if (r === max) {\n\t\th = (g - b) / delta;\n\t} else if (g === max) {\n\t\th = 2 + (b - r) / delta;\n\t} else if (b === max) {\n\t\th = 4 + (r - g) / delta;\n\t}\n\n\th = Math.min(h * 60, 360);\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tl = (min + max) / 2;\n\n\tif (max === min) {\n\t\ts = 0;\n\t} else if (l <= 0.5) {\n\t\ts = delta / (max + min);\n\t} else {\n\t\ts = delta / (2 - max - min);\n\t}\n\n\treturn [h, s * 100, l * 100];\n};\n\nconvert.rgb.hsv = function (rgb) {\n\tvar rdif;\n\tvar gdif;\n\tvar bdif;\n\tvar h;\n\tvar s;\n\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar v = Math.max(r, g, b);\n\tvar diff = v - Math.min(r, g, b);\n\tvar diffc = function (c) {\n\t\treturn (v - c) / 6 / diff + 1 / 2;\n\t};\n\n\tif (diff === 0) {\n\t\th = s = 0;\n\t} else {\n\t\ts = diff / v;\n\t\trdif = diffc(r);\n\t\tgdif = diffc(g);\n\t\tbdif = diffc(b);\n\n\t\tif (r === v) {\n\t\t\th = bdif - gdif;\n\t\t} else if (g === v) {\n\t\t\th = (1 / 3) + rdif - bdif;\n\t\t} else if (b === v) {\n\t\t\th = (2 / 3) + gdif - rdif;\n\t\t}\n\t\tif (h < 0) {\n\t\t\th += 1;\n\t\t} else if (h > 1) {\n\t\t\th -= 1;\n\t\t}\n\t}\n\n\treturn [\n\t\th * 360,\n\t\ts * 100,\n\t\tv * 100\n\t];\n};\n\nconvert.rgb.hwb = function (rgb) {\n\tvar r = rgb[0];\n\tvar g = rgb[1];\n\tvar b = rgb[2];\n\tvar h = convert.rgb.hsl(rgb)[0];\n\tvar w = 1 / 255 * Math.min(r, Math.min(g, b));\n\n\tb = 1 - 1 / 255 * Math.max(r, Math.max(g, b));\n\n\treturn [h, w * 100, b * 100];\n};\n\nconvert.rgb.cmyk = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar c;\n\tvar m;\n\tvar y;\n\tvar k;\n\n\tk = Math.min(1 - r, 1 - g, 1 - b);\n\tc = (1 - r - k) / (1 - k) || 0;\n\tm = (1 - g - k) / (1 - k) || 0;\n\ty = (1 - b - k) / (1 - k) || 0;\n\n\treturn [c * 100, m * 100, y * 100, k * 100];\n};\n\n/**\n * See https://en.m.wikipedia.org/wiki/Euclidean_distance#Squared_Euclidean_distance\n * */\nfunction comparativeDistance(x, y) {\n\treturn (\n\t\tMath.pow(x[0] - y[0], 2) +\n\t\tMath.pow(x[1] - y[1], 2) +\n\t\tMath.pow(x[2] - y[2], 2)\n\t);\n}\n\nconvert.rgb.keyword = function (rgb) {\n\tvar reversed = reverseKeywords[rgb];\n\tif (reversed) {\n\t\treturn reversed;\n\t}\n\n\tvar currentClosestDistance = Infinity;\n\tvar currentClosestKeyword;\n\n\tfor (var keyword in cssKeywords) {\n\t\tif (cssKeywords.hasOwnProperty(keyword)) {\n\t\t\tvar value = cssKeywords[keyword];\n\n\t\t\t// Compute comparative distance\n\t\t\tvar distance = comparativeDistance(rgb, value);\n\n\t\t\t// Check if its less, if so set as closest\n\t\t\tif (distance < currentClosestDistance) {\n\t\t\t\tcurrentClosestDistance = distance;\n\t\t\t\tcurrentClosestKeyword = keyword;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn currentClosestKeyword;\n};\n\nconvert.keyword.rgb = function (keyword) {\n\treturn cssKeywords[keyword];\n};\n\nconvert.rgb.xyz = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\n\t// assume sRGB\n\tr = r > 0.04045 ? Math.pow(((r + 0.055) / 1.055), 2.4) : (r / 12.92);\n\tg = g > 0.04045 ? Math.pow(((g + 0.055) / 1.055), 2.4) : (g / 12.92);\n\tb = b > 0.04045 ? Math.pow(((b + 0.055) / 1.055), 2.4) : (b / 12.92);\n\n\tvar x = (r * 0.4124) + (g * 0.3576) + (b * 0.1805);\n\tvar y = (r * 0.2126) + (g * 0.7152) + (b * 0.0722);\n\tvar z = (r * 0.0193) + (g * 0.1192) + (b * 0.9505);\n\n\treturn [x * 100, y * 100, z * 100];\n};\n\nconvert.rgb.lab = function (rgb) {\n\tvar xyz = convert.rgb.xyz(rgb);\n\tvar x = xyz[0];\n\tvar y = xyz[1];\n\tvar z = xyz[2];\n\tvar l;\n\tvar a;\n\tvar b;\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116);\n\n\tl = (116 * y) - 16;\n\ta = 500 * (x - y);\n\tb = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.hsl.rgb = function (hsl) {\n\tvar h = hsl[0] / 360;\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar t1;\n\tvar t2;\n\tvar t3;\n\tvar rgb;\n\tvar val;\n\n\tif (s === 0) {\n\t\tval = l * 255;\n\t\treturn [val, val, val];\n\t}\n\n\tif (l < 0.5) {\n\t\tt2 = l * (1 + s);\n\t} else {\n\t\tt2 = l + s - l * s;\n\t}\n\n\tt1 = 2 * l - t2;\n\n\trgb = [0, 0, 0];\n\tfor (var i = 0; i < 3; i++) {\n\t\tt3 = h + 1 / 3 * -(i - 1);\n\t\tif (t3 < 0) {\n\t\t\tt3++;\n\t\t}\n\t\tif (t3 > 1) {\n\t\t\tt3--;\n\t\t}\n\n\t\tif (6 * t3 < 1) {\n\t\t\tval = t1 + (t2 - t1) * 6 * t3;\n\t\t} else if (2 * t3 < 1) {\n\t\t\tval = t2;\n\t\t} else if (3 * t3 < 2) {\n\t\t\tval = t1 + (t2 - t1) * (2 / 3 - t3) * 6;\n\t\t} else {\n\t\t\tval = t1;\n\t\t}\n\n\t\trgb[i] = val * 255;\n\t}\n\n\treturn rgb;\n};\n\nconvert.hsl.hsv = function (hsl) {\n\tvar h = hsl[0];\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar smin = s;\n\tvar lmin = Math.max(l, 0.01);\n\tvar sv;\n\tvar v;\n\n\tl *= 2;\n\ts *= (l <= 1) ? l : 2 - l;\n\tsmin *= lmin <= 1 ? lmin : 2 - lmin;\n\tv = (l + s) / 2;\n\tsv = l === 0 ? (2 * smin) / (lmin + smin) : (2 * s) / (l + s);\n\n\treturn [h, sv * 100, v * 100];\n};\n\nconvert.hsv.rgb = function (hsv) {\n\tvar h = hsv[0] / 60;\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\tvar hi = Math.floor(h) % 6;\n\n\tvar f = h - Math.floor(h);\n\tvar p = 255 * v * (1 - s);\n\tvar q = 255 * v * (1 - (s * f));\n\tvar t = 255 * v * (1 - (s * (1 - f)));\n\tv *= 255;\n\n\tswitch (hi) {\n\t\tcase 0:\n\t\t\treturn [v, t, p];\n\t\tcase 1:\n\t\t\treturn [q, v, p];\n\t\tcase 2:\n\t\t\treturn [p, v, t];\n\t\tcase 3:\n\t\t\treturn [p, q, v];\n\t\tcase 4:\n\t\t\treturn [t, p, v];\n\t\tcase 5:\n\t\t\treturn [v, p, q];\n\t}\n};\n\nconvert.hsv.hsl = function (hsv) {\n\tvar h = hsv[0];\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\tvar vmin = Math.max(v, 0.01);\n\tvar lmin;\n\tvar sl;\n\tvar l;\n\n\tl = (2 - s) * v;\n\tlmin = (2 - s) * vmin;\n\tsl = s * vmin;\n\tsl /= (lmin <= 1) ? lmin : 2 - lmin;\n\tsl = sl || 0;\n\tl /= 2;\n\n\treturn [h, sl * 100, l * 100];\n};\n\n// http://dev.w3.org/csswg/css-color/#hwb-to-rgb\nconvert.hwb.rgb = function (hwb) {\n\tvar h = hwb[0] / 360;\n\tvar wh = hwb[1] / 100;\n\tvar bl = hwb[2] / 100;\n\tvar ratio = wh + bl;\n\tvar i;\n\tvar v;\n\tvar f;\n\tvar n;\n\n\t// wh + bl cant be > 1\n\tif (ratio > 1) {\n\t\twh /= ratio;\n\t\tbl /= ratio;\n\t}\n\n\ti = Math.floor(6 * h);\n\tv = 1 - bl;\n\tf = 6 * h - i;\n\n\tif ((i & 0x01) !== 0) {\n\t\tf = 1 - f;\n\t}\n\n\tn = wh + f * (v - wh); // linear interpolation\n\n\tvar r;\n\tvar g;\n\tvar b;\n\tswitch (i) {\n\t\tdefault:\n\t\tcase 6:\n\t\tcase 0: r = v; g = n; b = wh; break;\n\t\tcase 1: r = n; g = v; b = wh; break;\n\t\tcase 2: r = wh; g = v; b = n; break;\n\t\tcase 3: r = wh; g = n; b = v; break;\n\t\tcase 4: r = n; g = wh; b = v; break;\n\t\tcase 5: r = v; g = wh; b = n; break;\n\t}\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.cmyk.rgb = function (cmyk) {\n\tvar c = cmyk[0] / 100;\n\tvar m = cmyk[1] / 100;\n\tvar y = cmyk[2] / 100;\n\tvar k = cmyk[3] / 100;\n\tvar r;\n\tvar g;\n\tvar b;\n\n\tr = 1 - Math.min(1, c * (1 - k) + k);\n\tg = 1 - Math.min(1, m * (1 - k) + k);\n\tb = 1 - Math.min(1, y * (1 - k) + k);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.rgb = function (xyz) {\n\tvar x = xyz[0] / 100;\n\tvar y = xyz[1] / 100;\n\tvar z = xyz[2] / 100;\n\tvar r;\n\tvar g;\n\tvar b;\n\n\tr = (x * 3.2406) + (y * -1.5372) + (z * -0.4986);\n\tg = (x * -0.9689) + (y * 1.8758) + (z * 0.0415);\n\tb = (x * 0.0557) + (y * -0.2040) + (z * 1.0570);\n\n\t// assume sRGB\n\tr = r > 0.0031308\n\t\t? ((1.055 * Math.pow(r, 1.0 / 2.4)) - 0.055)\n\t\t: r * 12.92;\n\n\tg = g > 0.0031308\n\t\t? ((1.055 * Math.pow(g, 1.0 / 2.4)) - 0.055)\n\t\t: g * 12.92;\n\n\tb = b > 0.0031308\n\t\t? ((1.055 * Math.pow(b, 1.0 / 2.4)) - 0.055)\n\t\t: b * 12.92;\n\n\tr = Math.min(Math.max(0, r), 1);\n\tg = Math.min(Math.max(0, g), 1);\n\tb = Math.min(Math.max(0, b), 1);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.lab = function (xyz) {\n\tvar x = xyz[0];\n\tvar y = xyz[1];\n\tvar z = xyz[2];\n\tvar l;\n\tvar a;\n\tvar b;\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116);\n\n\tl = (116 * y) - 16;\n\ta = 500 * (x - y);\n\tb = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.lab.xyz = function (lab) {\n\tvar l = lab[0];\n\tvar a = lab[1];\n\tvar b = lab[2];\n\tvar x;\n\tvar y;\n\tvar z;\n\n\ty = (l + 16) / 116;\n\tx = a / 500 + y;\n\tz = y - b / 200;\n\n\tvar y2 = Math.pow(y, 3);\n\tvar x2 = Math.pow(x, 3);\n\tvar z2 = Math.pow(z, 3);\n\ty = y2 > 0.008856 ? y2 : (y - 16 / 116) / 7.787;\n\tx = x2 > 0.008856 ? x2 : (x - 16 / 116) / 7.787;\n\tz = z2 > 0.008856 ? z2 : (z - 16 / 116) / 7.787;\n\n\tx *= 95.047;\n\ty *= 100;\n\tz *= 108.883;\n\n\treturn [x, y, z];\n};\n\nconvert.lab.lch = function (lab) {\n\tvar l = lab[0];\n\tvar a = lab[1];\n\tvar b = lab[2];\n\tvar hr;\n\tvar h;\n\tvar c;\n\n\thr = Math.atan2(b, a);\n\th = hr * 360 / 2 / Math.PI;\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tc = Math.sqrt(a * a + b * b);\n\n\treturn [l, c, h];\n};\n\nconvert.lch.lab = function (lch) {\n\tvar l = lch[0];\n\tvar c = lch[1];\n\tvar h = lch[2];\n\tvar a;\n\tvar b;\n\tvar hr;\n\n\thr = h / 360 * 2 * Math.PI;\n\ta = c * Math.cos(hr);\n\tb = c * Math.sin(hr);\n\n\treturn [l, a, b];\n};\n\nconvert.rgb.ansi16 = function (args) {\n\tvar r = args[0];\n\tvar g = args[1];\n\tvar b = args[2];\n\tvar value = 1 in arguments ? arguments[1] : convert.rgb.hsv(args)[2]; // hsv -> ansi16 optimization\n\n\tvalue = Math.round(value / 50);\n\n\tif (value === 0) {\n\t\treturn 30;\n\t}\n\n\tvar ansi = 30\n\t\t+ ((Math.round(b / 255) << 2)\n\t\t| (Math.round(g / 255) << 1)\n\t\t| Math.round(r / 255));\n\n\tif (value === 2) {\n\t\tansi += 60;\n\t}\n\n\treturn ansi;\n};\n\nconvert.hsv.ansi16 = function (args) {\n\t// optimization here; we already know the value and don't need to get\n\t// it converted for us.\n\treturn convert.rgb.ansi16(convert.hsv.rgb(args), args[2]);\n};\n\nconvert.rgb.ansi256 = function (args) {\n\tvar r = args[0];\n\tvar g = args[1];\n\tvar b = args[2];\n\n\t// we use the extended greyscale palette here, with the exception of\n\t// black and white. normal palette only has 4 greyscale shades.\n\tif (r === g && g === b) {\n\t\tif (r < 8) {\n\t\t\treturn 16;\n\t\t}\n\n\t\tif (r > 248) {\n\t\t\treturn 231;\n\t\t}\n\n\t\treturn Math.round(((r - 8) / 247) * 24) + 232;\n\t}\n\n\tvar ansi = 16\n\t\t+ (36 * Math.round(r / 255 * 5))\n\t\t+ (6 * Math.round(g / 255 * 5))\n\t\t+ Math.round(b / 255 * 5);\n\n\treturn ansi;\n};\n\nconvert.ansi16.rgb = function (args) {\n\tvar color = args % 10;\n\n\t// handle greyscale\n\tif (color === 0 || color === 7) {\n\t\tif (args > 50) {\n\t\t\tcolor += 3.5;\n\t\t}\n\n\t\tcolor = color / 10.5 * 255;\n\n\t\treturn [color, color, color];\n\t}\n\n\tvar mult = (~~(args > 50) + 1) * 0.5;\n\tvar r = ((color & 1) * mult) * 255;\n\tvar g = (((color >> 1) & 1) * mult) * 255;\n\tvar b = (((color >> 2) & 1) * mult) * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.ansi256.rgb = function (args) {\n\t// handle greyscale\n\tif (args >= 232) {\n\t\tvar c = (args - 232) * 10 + 8;\n\t\treturn [c, c, c];\n\t}\n\n\targs -= 16;\n\n\tvar rem;\n\tvar r = Math.floor(args / 36) / 5 * 255;\n\tvar g = Math.floor((rem = args % 36) / 6) / 5 * 255;\n\tvar b = (rem % 6) / 5 * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hex = function (args) {\n\tvar integer = ((Math.round(args[0]) & 0xFF) << 16)\n\t\t+ ((Math.round(args[1]) & 0xFF) << 8)\n\t\t+ (Math.round(args[2]) & 0xFF);\n\n\tvar string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.hex.rgb = function (args) {\n\tvar match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);\n\tif (!match) {\n\t\treturn [0, 0, 0];\n\t}\n\n\tvar colorString = match[0];\n\n\tif (match[0].length === 3) {\n\t\tcolorString = colorString.split('').map(function (char) {\n\t\t\treturn char + char;\n\t\t}).join('');\n\t}\n\n\tvar integer = parseInt(colorString, 16);\n\tvar r = (integer >> 16) & 0xFF;\n\tvar g = (integer >> 8) & 0xFF;\n\tvar b = integer & 0xFF;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hcg = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar max = Math.max(Math.max(r, g), b);\n\tvar min = Math.min(Math.min(r, g), b);\n\tvar chroma = (max - min);\n\tvar grayscale;\n\tvar hue;\n\n\tif (chroma < 1) {\n\t\tgrayscale = min / (1 - chroma);\n\t} else {\n\t\tgrayscale = 0;\n\t}\n\n\tif (chroma <= 0) {\n\t\thue = 0;\n\t} else\n\tif (max === r) {\n\t\thue = ((g - b) / chroma) % 6;\n\t} else\n\tif (max === g) {\n\t\thue = 2 + (b - r) / chroma;\n\t} else {\n\t\thue = 4 + (r - g) / chroma + 4;\n\t}\n\n\thue /= 6;\n\thue %= 1;\n\n\treturn [hue * 360, chroma * 100, grayscale * 100];\n};\n\nconvert.hsl.hcg = function (hsl) {\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar c = 1;\n\tvar f = 0;\n\n\tif (l < 0.5) {\n\t\tc = 2.0 * s * l;\n\t} else {\n\t\tc = 2.0 * s * (1.0 - l);\n\t}\n\n\tif (c < 1.0) {\n\t\tf = (l - 0.5 * c) / (1.0 - c);\n\t}\n\n\treturn [hsl[0], c * 100, f * 100];\n};\n\nconvert.hsv.hcg = function (hsv) {\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\n\tvar c = s * v;\n\tvar f = 0;\n\n\tif (c < 1.0) {\n\t\tf = (v - c) / (1 - c);\n\t}\n\n\treturn [hsv[0], c * 100, f * 100];\n};\n\nconvert.hcg.rgb = function (hcg) {\n\tvar h = hcg[0] / 360;\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tif (c === 0.0) {\n\t\treturn [g * 255, g * 255, g * 255];\n\t}\n\n\tvar pure = [0, 0, 0];\n\tvar hi = (h % 1) * 6;\n\tvar v = hi % 1;\n\tvar w = 1 - v;\n\tvar mg = 0;\n\n\tswitch (Math.floor(hi)) {\n\t\tcase 0:\n\t\t\tpure[0] = 1; pure[1] = v; pure[2] = 0; break;\n\t\tcase 1:\n\t\t\tpure[0] = w; pure[1] = 1; pure[2] = 0; break;\n\t\tcase 2:\n\t\t\tpure[0] = 0; pure[1] = 1; pure[2] = v; break;\n\t\tcase 3:\n\t\t\tpure[0] = 0; pure[1] = w; pure[2] = 1; break;\n\t\tcase 4:\n\t\t\tpure[0] = v; pure[1] = 0; pure[2] = 1; break;\n\t\tdefault:\n\t\t\tpure[0] = 1; pure[1] = 0; pure[2] = w;\n\t}\n\n\tmg = (1.0 - c) * g;\n\n\treturn [\n\t\t(c * pure[0] + mg) * 255,\n\t\t(c * pure[1] + mg) * 255,\n\t\t(c * pure[2] + mg) * 255\n\t];\n};\n\nconvert.hcg.hsv = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tvar v = c + g * (1.0 - c);\n\tvar f = 0;\n\n\tif (v > 0.0) {\n\t\tf = c / v;\n\t}\n\n\treturn [hcg[0], f * 100, v * 100];\n};\n\nconvert.hcg.hsl = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tvar l = g * (1.0 - c) + 0.5 * c;\n\tvar s = 0;\n\n\tif (l > 0.0 && l < 0.5) {\n\t\ts = c / (2 * l);\n\t} else\n\tif (l >= 0.5 && l < 1.0) {\n\t\ts = c / (2 * (1 - l));\n\t}\n\n\treturn [hcg[0], s * 100, l * 100];\n};\n\nconvert.hcg.hwb = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\tvar v = c + g * (1.0 - c);\n\treturn [hcg[0], (v - c) * 100, (1 - v) * 100];\n};\n\nconvert.hwb.hcg = function (hwb) {\n\tvar w = hwb[1] / 100;\n\tvar b = hwb[2] / 100;\n\tvar v = 1 - b;\n\tvar c = v - w;\n\tvar g = 0;\n\n\tif (c < 1) {\n\t\tg = (v - c) / (1 - c);\n\t}\n\n\treturn [hwb[0], c * 100, g * 100];\n};\n\nconvert.apple.rgb = function (apple) {\n\treturn [(apple[0] / 65535) * 255, (apple[1] / 65535) * 255, (apple[2] / 65535) * 255];\n};\n\nconvert.rgb.apple = function (rgb) {\n\treturn [(rgb[0] / 255) * 65535, (rgb[1] / 255) * 65535, (rgb[2] / 255) * 65535];\n};\n\nconvert.gray.rgb = function (args) {\n\treturn [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255];\n};\n\nconvert.gray.hsl = convert.gray.hsv = function (args) {\n\treturn [0, 0, args[0]];\n};\n\nconvert.gray.hwb = function (gray) {\n\treturn [0, 100, gray[0]];\n};\n\nconvert.gray.cmyk = function (gray) {\n\treturn [0, 0, 0, gray[0]];\n};\n\nconvert.gray.lab = function (gray) {\n\treturn [gray[0], 0, 0];\n};\n\nconvert.gray.hex = function (gray) {\n\tvar val = Math.round(gray[0] / 100 * 255) & 0xFF;\n\tvar integer = (val << 16) + (val << 8) + val;\n\n\tvar string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.rgb.gray = function (rgb) {\n\tvar val = (rgb[0] + rgb[1] + rgb[2]) / 3;\n\treturn [val / 255 * 100];\n};\n","var conversions = require('./conversions');\nvar route = require('./route');\n\nvar convert = {};\n\nvar models = Object.keys(conversions);\n\nfunction wrapRaw(fn) {\n\tvar wrappedFn = function (args) {\n\t\tif (args === undefined || args === null) {\n\t\t\treturn args;\n\t\t}\n\n\t\tif (arguments.length > 1) {\n\t\t\targs = Array.prototype.slice.call(arguments);\n\t\t}\n\n\t\treturn fn(args);\n\t};\n\n\t// preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nfunction wrapRounded(fn) {\n\tvar wrappedFn = function (args) {\n\t\tif (args === undefined || args === null) {\n\t\t\treturn args;\n\t\t}\n\n\t\tif (arguments.length > 1) {\n\t\t\targs = Array.prototype.slice.call(arguments);\n\t\t}\n\n\t\tvar result = fn(args);\n\n\t\t// we're assuming the result is an array here.\n\t\t// see notice in conversions.js; don't use box types\n\t\t// in conversion functions.\n\t\tif (typeof result === 'object') {\n\t\t\tfor (var len = result.length, i = 0; i < len; i++) {\n\t\t\t\tresult[i] = Math.round(result[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t};\n\n\t// preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nmodels.forEach(function (fromModel) {\n\tconvert[fromModel] = {};\n\n\tObject.defineProperty(convert[fromModel], 'channels', {value: conversions[fromModel].channels});\n\tObject.defineProperty(convert[fromModel], 'labels', {value: conversions[fromModel].labels});\n\n\tvar routes = route(fromModel);\n\tvar routeModels = Object.keys(routes);\n\n\trouteModels.forEach(function (toModel) {\n\t\tvar fn = routes[toModel];\n\n\t\tconvert[fromModel][toModel] = wrapRounded(fn);\n\t\tconvert[fromModel][toModel].raw = wrapRaw(fn);\n\t});\n});\n\nmodule.exports = convert;\n","'use strict'\r\n\r\nmodule.exports = {\r\n\t\"aliceblue\": [240, 248, 255],\r\n\t\"antiquewhite\": [250, 235, 215],\r\n\t\"aqua\": [0, 255, 255],\r\n\t\"aquamarine\": [127, 255, 212],\r\n\t\"azure\": [240, 255, 255],\r\n\t\"beige\": [245, 245, 220],\r\n\t\"bisque\": [255, 228, 196],\r\n\t\"black\": [0, 0, 0],\r\n\t\"blanchedalmond\": [255, 235, 205],\r\n\t\"blue\": [0, 0, 255],\r\n\t\"blueviolet\": [138, 43, 226],\r\n\t\"brown\": [165, 42, 42],\r\n\t\"burlywood\": [222, 184, 135],\r\n\t\"cadetblue\": [95, 158, 160],\r\n\t\"chartreuse\": [127, 255, 0],\r\n\t\"chocolate\": [210, 105, 30],\r\n\t\"coral\": [255, 127, 80],\r\n\t\"cornflowerblue\": [100, 149, 237],\r\n\t\"cornsilk\": [255, 248, 220],\r\n\t\"crimson\": [220, 20, 60],\r\n\t\"cyan\": [0, 255, 255],\r\n\t\"darkblue\": [0, 0, 139],\r\n\t\"darkcyan\": [0, 139, 139],\r\n\t\"darkgoldenrod\": [184, 134, 11],\r\n\t\"darkgray\": [169, 169, 169],\r\n\t\"darkgreen\": [0, 100, 0],\r\n\t\"darkgrey\": [169, 169, 169],\r\n\t\"darkkhaki\": [189, 183, 107],\r\n\t\"darkmagenta\": [139, 0, 139],\r\n\t\"darkolivegreen\": [85, 107, 47],\r\n\t\"darkorange\": [255, 140, 0],\r\n\t\"darkorchid\": [153, 50, 204],\r\n\t\"darkred\": [139, 0, 0],\r\n\t\"darksalmon\": [233, 150, 122],\r\n\t\"darkseagreen\": [143, 188, 143],\r\n\t\"darkslateblue\": [72, 61, 139],\r\n\t\"darkslategray\": [47, 79, 79],\r\n\t\"darkslategrey\": [47, 79, 79],\r\n\t\"darkturquoise\": [0, 206, 209],\r\n\t\"darkviolet\": [148, 0, 211],\r\n\t\"deeppink\": [255, 20, 147],\r\n\t\"deepskyblue\": [0, 191, 255],\r\n\t\"dimgray\": [105, 105, 105],\r\n\t\"dimgrey\": [105, 105, 105],\r\n\t\"dodgerblue\": [30, 144, 255],\r\n\t\"firebrick\": [178, 34, 34],\r\n\t\"floralwhite\": [255, 250, 240],\r\n\t\"forestgreen\": [34, 139, 34],\r\n\t\"fuchsia\": [255, 0, 255],\r\n\t\"gainsboro\": [220, 220, 220],\r\n\t\"ghostwhite\": [248, 248, 255],\r\n\t\"gold\": [255, 215, 0],\r\n\t\"goldenrod\": [218, 165, 32],\r\n\t\"gray\": [128, 128, 128],\r\n\t\"green\": [0, 128, 0],\r\n\t\"greenyellow\": [173, 255, 47],\r\n\t\"grey\": [128, 128, 128],\r\n\t\"honeydew\": [240, 255, 240],\r\n\t\"hotpink\": [255, 105, 180],\r\n\t\"indianred\": [205, 92, 92],\r\n\t\"indigo\": [75, 0, 130],\r\n\t\"ivory\": [255, 255, 240],\r\n\t\"khaki\": [240, 230, 140],\r\n\t\"lavender\": [230, 230, 250],\r\n\t\"lavenderblush\": [255, 240, 245],\r\n\t\"lawngreen\": [124, 252, 0],\r\n\t\"lemonchiffon\": [255, 250, 205],\r\n\t\"lightblue\": [173, 216, 230],\r\n\t\"lightcoral\": [240, 128, 128],\r\n\t\"lightcyan\": [224, 255, 255],\r\n\t\"lightgoldenrodyellow\": [250, 250, 210],\r\n\t\"lightgray\": [211, 211, 211],\r\n\t\"lightgreen\": [144, 238, 144],\r\n\t\"lightgrey\": [211, 211, 211],\r\n\t\"lightpink\": [255, 182, 193],\r\n\t\"lightsalmon\": [255, 160, 122],\r\n\t\"lightseagreen\": [32, 178, 170],\r\n\t\"lightskyblue\": [135, 206, 250],\r\n\t\"lightslategray\": [119, 136, 153],\r\n\t\"lightslategrey\": [119, 136, 153],\r\n\t\"lightsteelblue\": [176, 196, 222],\r\n\t\"lightyellow\": [255, 255, 224],\r\n\t\"lime\": [0, 255, 0],\r\n\t\"limegreen\": [50, 205, 50],\r\n\t\"linen\": [250, 240, 230],\r\n\t\"magenta\": [255, 0, 255],\r\n\t\"maroon\": [128, 0, 0],\r\n\t\"mediumaquamarine\": [102, 205, 170],\r\n\t\"mediumblue\": [0, 0, 205],\r\n\t\"mediumorchid\": [186, 85, 211],\r\n\t\"mediumpurple\": [147, 112, 219],\r\n\t\"mediumseagreen\": [60, 179, 113],\r\n\t\"mediumslateblue\": [123, 104, 238],\r\n\t\"mediumspringgreen\": [0, 250, 154],\r\n\t\"mediumturquoise\": [72, 209, 204],\r\n\t\"mediumvioletred\": [199, 21, 133],\r\n\t\"midnightblue\": [25, 25, 112],\r\n\t\"mintcream\": [245, 255, 250],\r\n\t\"mistyrose\": [255, 228, 225],\r\n\t\"moccasin\": [255, 228, 181],\r\n\t\"navajowhite\": [255, 222, 173],\r\n\t\"navy\": [0, 0, 128],\r\n\t\"oldlace\": [253, 245, 230],\r\n\t\"olive\": [128, 128, 0],\r\n\t\"olivedrab\": [107, 142, 35],\r\n\t\"orange\": [255, 165, 0],\r\n\t\"orangered\": [255, 69, 0],\r\n\t\"orchid\": [218, 112, 214],\r\n\t\"palegoldenrod\": [238, 232, 170],\r\n\t\"palegreen\": [152, 251, 152],\r\n\t\"paleturquoise\": [175, 238, 238],\r\n\t\"palevioletred\": [219, 112, 147],\r\n\t\"papayawhip\": [255, 239, 213],\r\n\t\"peachpuff\": [255, 218, 185],\r\n\t\"peru\": [205, 133, 63],\r\n\t\"pink\": [255, 192, 203],\r\n\t\"plum\": [221, 160, 221],\r\n\t\"powderblue\": [176, 224, 230],\r\n\t\"purple\": [128, 0, 128],\r\n\t\"rebeccapurple\": [102, 51, 153],\r\n\t\"red\": [255, 0, 0],\r\n\t\"rosybrown\": [188, 143, 143],\r\n\t\"royalblue\": [65, 105, 225],\r\n\t\"saddlebrown\": [139, 69, 19],\r\n\t\"salmon\": [250, 128, 114],\r\n\t\"sandybrown\": [244, 164, 96],\r\n\t\"seagreen\": [46, 139, 87],\r\n\t\"seashell\": [255, 245, 238],\r\n\t\"sienna\": [160, 82, 45],\r\n\t\"silver\": [192, 192, 192],\r\n\t\"skyblue\": [135, 206, 235],\r\n\t\"slateblue\": [106, 90, 205],\r\n\t\"slategray\": [112, 128, 144],\r\n\t\"slategrey\": [112, 128, 144],\r\n\t\"snow\": [255, 250, 250],\r\n\t\"springgreen\": [0, 255, 127],\r\n\t\"steelblue\": [70, 130, 180],\r\n\t\"tan\": [210, 180, 140],\r\n\t\"teal\": [0, 128, 128],\r\n\t\"thistle\": [216, 191, 216],\r\n\t\"tomato\": [255, 99, 71],\r\n\t\"turquoise\": [64, 224, 208],\r\n\t\"violet\": [238, 130, 238],\r\n\t\"wheat\": [245, 222, 179],\r\n\t\"white\": [255, 255, 255],\r\n\t\"whitesmoke\": [245, 245, 245],\r\n\t\"yellow\": [255, 255, 0],\r\n\t\"yellowgreen\": [154, 205, 50]\r\n};\r\n","var conversions = require('./conversions');\n\n/*\n\tthis function routes a model to all other models.\n\n\tall functions that are routed have a property `.conversion` attached\n\tto the returned synthetic function. This property is an array\n\tof strings, each with the steps in between the 'from' and 'to'\n\tcolor models (inclusive).\n\n\tconversions that are not possible simply are not included.\n*/\n\nfunction buildGraph() {\n\tvar graph = {};\n\t// https://jsperf.com/object-keys-vs-for-in-with-closure/3\n\tvar models = Object.keys(conversions);\n\n\tfor (var len = models.length, i = 0; i < len; i++) {\n\t\tgraph[models[i]] = {\n\t\t\t// http://jsperf.com/1-vs-infinity\n\t\t\t// micro-opt, but this is simple.\n\t\t\tdistance: -1,\n\t\t\tparent: null\n\t\t};\n\t}\n\n\treturn graph;\n}\n\n// https://en.wikipedia.org/wiki/Breadth-first_search\nfunction deriveBFS(fromModel) {\n\tvar graph = buildGraph();\n\tvar queue = [fromModel]; // unshift -> queue -> pop\n\n\tgraph[fromModel].distance = 0;\n\n\twhile (queue.length) {\n\t\tvar current = queue.pop();\n\t\tvar adjacents = Object.keys(conversions[current]);\n\n\t\tfor (var len = adjacents.length, i = 0; i < len; i++) {\n\t\t\tvar adjacent = adjacents[i];\n\t\t\tvar node = graph[adjacent];\n\n\t\t\tif (node.distance === -1) {\n\t\t\t\tnode.distance = graph[current].distance + 1;\n\t\t\t\tnode.parent = current;\n\t\t\t\tqueue.unshift(adjacent);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn graph;\n}\n\nfunction link(from, to) {\n\treturn function (args) {\n\t\treturn to(from(args));\n\t};\n}\n\nfunction wrapConversion(toModel, graph) {\n\tvar path = [graph[toModel].parent, toModel];\n\tvar fn = conversions[graph[toModel].parent][toModel];\n\n\tvar cur = graph[toModel].parent;\n\twhile (graph[cur].parent) {\n\t\tpath.unshift(graph[cur].parent);\n\t\tfn = link(conversions[graph[cur].parent][cur], fn);\n\t\tcur = graph[cur].parent;\n\t}\n\n\tfn.conversion = path;\n\treturn fn;\n}\n\nmodule.exports = function (fromModel) {\n\tvar graph = deriveBFS(fromModel);\n\tvar conversion = {};\n\n\tvar models = Object.keys(graph);\n\tfor (var len = models.length, i = 0; i < len; i++) {\n\t\tvar toModel = models[i];\n\t\tvar node = graph[toModel];\n\n\t\tif (node.parent === null) {\n\t\t\t// no possible conversion, or this node is the source model.\n\t\t\tcontinue;\n\t\t}\n\n\t\tconversion[toModel] = wrapConversion(toModel, graph);\n\t}\n\n\treturn conversion;\n};\n\n","'use strict'\r\n\r\nmodule.exports = {\r\n\t\"aliceblue\": [240, 248, 255],\r\n\t\"antiquewhite\": [250, 235, 215],\r\n\t\"aqua\": [0, 255, 255],\r\n\t\"aquamarine\": [127, 255, 212],\r\n\t\"azure\": [240, 255, 255],\r\n\t\"beige\": [245, 245, 220],\r\n\t\"bisque\": [255, 228, 196],\r\n\t\"black\": [0, 0, 0],\r\n\t\"blanchedalmond\": [255, 235, 205],\r\n\t\"blue\": [0, 0, 255],\r\n\t\"blueviolet\": [138, 43, 226],\r\n\t\"brown\": [165, 42, 42],\r\n\t\"burlywood\": [222, 184, 135],\r\n\t\"cadetblue\": [95, 158, 160],\r\n\t\"chartreuse\": [127, 255, 0],\r\n\t\"chocolate\": [210, 105, 30],\r\n\t\"coral\": [255, 127, 80],\r\n\t\"cornflowerblue\": [100, 149, 237],\r\n\t\"cornsilk\": [255, 248, 220],\r\n\t\"crimson\": [220, 20, 60],\r\n\t\"cyan\": [0, 255, 255],\r\n\t\"darkblue\": [0, 0, 139],\r\n\t\"darkcyan\": [0, 139, 139],\r\n\t\"darkgoldenrod\": [184, 134, 11],\r\n\t\"darkgray\": [169, 169, 169],\r\n\t\"darkgreen\": [0, 100, 0],\r\n\t\"darkgrey\": [169, 169, 169],\r\n\t\"darkkhaki\": [189, 183, 107],\r\n\t\"darkmagenta\": [139, 0, 139],\r\n\t\"darkolivegreen\": [85, 107, 47],\r\n\t\"darkorange\": [255, 140, 0],\r\n\t\"darkorchid\": [153, 50, 204],\r\n\t\"darkred\": [139, 0, 0],\r\n\t\"darksalmon\": [233, 150, 122],\r\n\t\"darkseagreen\": [143, 188, 143],\r\n\t\"darkslateblue\": [72, 61, 139],\r\n\t\"darkslategray\": [47, 79, 79],\r\n\t\"darkslategrey\": [47, 79, 79],\r\n\t\"darkturquoise\": [0, 206, 209],\r\n\t\"darkviolet\": [148, 0, 211],\r\n\t\"deeppink\": [255, 20, 147],\r\n\t\"deepskyblue\": [0, 191, 255],\r\n\t\"dimgray\": [105, 105, 105],\r\n\t\"dimgrey\": [105, 105, 105],\r\n\t\"dodgerblue\": [30, 144, 255],\r\n\t\"firebrick\": [178, 34, 34],\r\n\t\"floralwhite\": [255, 250, 240],\r\n\t\"forestgreen\": [34, 139, 34],\r\n\t\"fuchsia\": [255, 0, 255],\r\n\t\"gainsboro\": [220, 220, 220],\r\n\t\"ghostwhite\": [248, 248, 255],\r\n\t\"gold\": [255, 215, 0],\r\n\t\"goldenrod\": [218, 165, 32],\r\n\t\"gray\": [128, 128, 128],\r\n\t\"green\": [0, 128, 0],\r\n\t\"greenyellow\": [173, 255, 47],\r\n\t\"grey\": [128, 128, 128],\r\n\t\"honeydew\": [240, 255, 240],\r\n\t\"hotpink\": [255, 105, 180],\r\n\t\"indianred\": [205, 92, 92],\r\n\t\"indigo\": [75, 0, 130],\r\n\t\"ivory\": [255, 255, 240],\r\n\t\"khaki\": [240, 230, 140],\r\n\t\"lavender\": [230, 230, 250],\r\n\t\"lavenderblush\": [255, 240, 245],\r\n\t\"lawngreen\": [124, 252, 0],\r\n\t\"lemonchiffon\": [255, 250, 205],\r\n\t\"lightblue\": [173, 216, 230],\r\n\t\"lightcoral\": [240, 128, 128],\r\n\t\"lightcyan\": [224, 255, 255],\r\n\t\"lightgoldenrodyellow\": [250, 250, 210],\r\n\t\"lightgray\": [211, 211, 211],\r\n\t\"lightgreen\": [144, 238, 144],\r\n\t\"lightgrey\": [211, 211, 211],\r\n\t\"lightpink\": [255, 182, 193],\r\n\t\"lightsalmon\": [255, 160, 122],\r\n\t\"lightseagreen\": [32, 178, 170],\r\n\t\"lightskyblue\": [135, 206, 250],\r\n\t\"lightslategray\": [119, 136, 153],\r\n\t\"lightslategrey\": [119, 136, 153],\r\n\t\"lightsteelblue\": [176, 196, 222],\r\n\t\"lightyellow\": [255, 255, 224],\r\n\t\"lime\": [0, 255, 0],\r\n\t\"limegreen\": [50, 205, 50],\r\n\t\"linen\": [250, 240, 230],\r\n\t\"magenta\": [255, 0, 255],\r\n\t\"maroon\": [128, 0, 0],\r\n\t\"mediumaquamarine\": [102, 205, 170],\r\n\t\"mediumblue\": [0, 0, 205],\r\n\t\"mediumorchid\": [186, 85, 211],\r\n\t\"mediumpurple\": [147, 112, 219],\r\n\t\"mediumseagreen\": [60, 179, 113],\r\n\t\"mediumslateblue\": [123, 104, 238],\r\n\t\"mediumspringgreen\": [0, 250, 154],\r\n\t\"mediumturquoise\": [72, 209, 204],\r\n\t\"mediumvioletred\": [199, 21, 133],\r\n\t\"midnightblue\": [25, 25, 112],\r\n\t\"mintcream\": [245, 255, 250],\r\n\t\"mistyrose\": [255, 228, 225],\r\n\t\"moccasin\": [255, 228, 181],\r\n\t\"navajowhite\": [255, 222, 173],\r\n\t\"navy\": [0, 0, 128],\r\n\t\"oldlace\": [253, 245, 230],\r\n\t\"olive\": [128, 128, 0],\r\n\t\"olivedrab\": [107, 142, 35],\r\n\t\"orange\": [255, 165, 0],\r\n\t\"orangered\": [255, 69, 0],\r\n\t\"orchid\": [218, 112, 214],\r\n\t\"palegoldenrod\": [238, 232, 170],\r\n\t\"palegreen\": [152, 251, 152],\r\n\t\"paleturquoise\": [175, 238, 238],\r\n\t\"palevioletred\": [219, 112, 147],\r\n\t\"papayawhip\": [255, 239, 213],\r\n\t\"peachpuff\": [255, 218, 185],\r\n\t\"peru\": [205, 133, 63],\r\n\t\"pink\": [255, 192, 203],\r\n\t\"plum\": [221, 160, 221],\r\n\t\"powderblue\": [176, 224, 230],\r\n\t\"purple\": [128, 0, 128],\r\n\t\"rebeccapurple\": [102, 51, 153],\r\n\t\"red\": [255, 0, 0],\r\n\t\"rosybrown\": [188, 143, 143],\r\n\t\"royalblue\": [65, 105, 225],\r\n\t\"saddlebrown\": [139, 69, 19],\r\n\t\"salmon\": [250, 128, 114],\r\n\t\"sandybrown\": [244, 164, 96],\r\n\t\"seagreen\": [46, 139, 87],\r\n\t\"seashell\": [255, 245, 238],\r\n\t\"sienna\": [160, 82, 45],\r\n\t\"silver\": [192, 192, 192],\r\n\t\"skyblue\": [135, 206, 235],\r\n\t\"slateblue\": [106, 90, 205],\r\n\t\"slategray\": [112, 128, 144],\r\n\t\"slategrey\": [112, 128, 144],\r\n\t\"snow\": [255, 250, 250],\r\n\t\"springgreen\": [0, 255, 127],\r\n\t\"steelblue\": [70, 130, 180],\r\n\t\"tan\": [210, 180, 140],\r\n\t\"teal\": [0, 128, 128],\r\n\t\"thistle\": [216, 191, 216],\r\n\t\"tomato\": [255, 99, 71],\r\n\t\"turquoise\": [64, 224, 208],\r\n\t\"violet\": [238, 130, 238],\r\n\t\"wheat\": [245, 222, 179],\r\n\t\"white\": [255, 255, 255],\r\n\t\"whitesmoke\": [245, 245, 245],\r\n\t\"yellow\": [255, 255, 0],\r\n\t\"yellowgreen\": [154, 205, 50]\r\n};\r\n","/* MIT license */\nvar colorNames = require('color-name');\nvar swizzle = require('simple-swizzle');\nvar hasOwnProperty = Object.hasOwnProperty;\n\nvar reverseNames = Object.create(null);\n\n// create a list of reverse color names\nfor (var name in colorNames) {\n\tif (hasOwnProperty.call(colorNames, name)) {\n\t\treverseNames[colorNames[name]] = name;\n\t}\n}\n\nvar cs = module.exports = {\n\tto: {},\n\tget: {}\n};\n\ncs.get = function (string) {\n\tvar prefix = string.substring(0, 3).toLowerCase();\n\tvar val;\n\tvar model;\n\tswitch (prefix) {\n\t\tcase 'hsl':\n\t\t\tval = cs.get.hsl(string);\n\t\t\tmodel = 'hsl';\n\t\t\tbreak;\n\t\tcase 'hwb':\n\t\t\tval = cs.get.hwb(string);\n\t\t\tmodel = 'hwb';\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tval = cs.get.rgb(string);\n\t\t\tmodel = 'rgb';\n\t\t\tbreak;\n\t}\n\n\tif (!val) {\n\t\treturn null;\n\t}\n\n\treturn {model: model, value: val};\n};\n\ncs.get.rgb = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar abbr = /^#([a-f0-9]{3,4})$/i;\n\tvar hex = /^#([a-f0-9]{6})([a-f0-9]{2})?$/i;\n\tvar rgba = /^rgba?\\(\\s*([+-]?\\d+)(?=[\\s,])\\s*(?:,\\s*)?([+-]?\\d+)(?=[\\s,])\\s*(?:,\\s*)?([+-]?\\d+)\\s*(?:[,|\\/]\\s*([+-]?[\\d\\.]+)(%?)\\s*)?\\)$/;\n\tvar per = /^rgba?\\(\\s*([+-]?[\\d\\.]+)\\%\\s*,?\\s*([+-]?[\\d\\.]+)\\%\\s*,?\\s*([+-]?[\\d\\.]+)\\%\\s*(?:[,|\\/]\\s*([+-]?[\\d\\.]+)(%?)\\s*)?\\)$/;\n\tvar keyword = /^(\\w+)$/;\n\n\tvar rgb = [0, 0, 0, 1];\n\tvar match;\n\tvar i;\n\tvar hexAlpha;\n\n\tif (match = string.match(hex)) {\n\t\thexAlpha = match[2];\n\t\tmatch = match[1];\n\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\t// https://jsperf.com/slice-vs-substr-vs-substring-methods-long-string/19\n\t\t\tvar i2 = i * 2;\n\t\t\trgb[i] = parseInt(match.slice(i2, i2 + 2), 16);\n\t\t}\n\n\t\tif (hexAlpha) {\n\t\t\trgb[3] = parseInt(hexAlpha, 16) / 255;\n\t\t}\n\t} else if (match = string.match(abbr)) {\n\t\tmatch = match[1];\n\t\thexAlpha = match[3];\n\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = parseInt(match[i] + match[i], 16);\n\t\t}\n\n\t\tif (hexAlpha) {\n\t\t\trgb[3] = parseInt(hexAlpha + hexAlpha, 16) / 255;\n\t\t}\n\t} else if (match = string.match(rgba)) {\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = parseInt(match[i + 1], 0);\n\t\t}\n\n\t\tif (match[4]) {\n\t\t\tif (match[5]) {\n\t\t\t\trgb[3] = parseFloat(match[4]) * 0.01;\n\t\t\t} else {\n\t\t\t\trgb[3] = parseFloat(match[4]);\n\t\t\t}\n\t\t}\n\t} else if (match = string.match(per)) {\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = Math.round(parseFloat(match[i + 1]) * 2.55);\n\t\t}\n\n\t\tif (match[4]) {\n\t\t\tif (match[5]) {\n\t\t\t\trgb[3] = parseFloat(match[4]) * 0.01;\n\t\t\t} else {\n\t\t\t\trgb[3] = parseFloat(match[4]);\n\t\t\t}\n\t\t}\n\t} else if (match = string.match(keyword)) {\n\t\tif (match[1] === 'transparent') {\n\t\t\treturn [0, 0, 0, 0];\n\t\t}\n\n\t\tif (!hasOwnProperty.call(colorNames, match[1])) {\n\t\t\treturn null;\n\t\t}\n\n\t\trgb = colorNames[match[1]];\n\t\trgb[3] = 1;\n\n\t\treturn rgb;\n\t} else {\n\t\treturn null;\n\t}\n\n\tfor (i = 0; i < 3; i++) {\n\t\trgb[i] = clamp(rgb[i], 0, 255);\n\t}\n\trgb[3] = clamp(rgb[3], 0, 1);\n\n\treturn rgb;\n};\n\ncs.get.hsl = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar hsl = /^hsla?\\(\\s*([+-]?(?:\\d{0,3}\\.)?\\d+)(?:deg)?\\s*,?\\s*([+-]?[\\d\\.]+)%\\s*,?\\s*([+-]?[\\d\\.]+)%\\s*(?:[,|\\/]\\s*([+-]?(?=\\.\\d|\\d)(?:0|[1-9]\\d*)?(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)\\s*)?\\)$/;\n\tvar match = string.match(hsl);\n\n\tif (match) {\n\t\tvar alpha = parseFloat(match[4]);\n\t\tvar h = ((parseFloat(match[1]) % 360) + 360) % 360;\n\t\tvar s = clamp(parseFloat(match[2]), 0, 100);\n\t\tvar l = clamp(parseFloat(match[3]), 0, 100);\n\t\tvar a = clamp(isNaN(alpha) ? 1 : alpha, 0, 1);\n\n\t\treturn [h, s, l, a];\n\t}\n\n\treturn null;\n};\n\ncs.get.hwb = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar hwb = /^hwb\\(\\s*([+-]?\\d{0,3}(?:\\.\\d+)?)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?(?=\\.\\d|\\d)(?:0|[1-9]\\d*)?(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)\\s*)?\\)$/;\n\tvar match = string.match(hwb);\n\n\tif (match) {\n\t\tvar alpha = parseFloat(match[4]);\n\t\tvar h = ((parseFloat(match[1]) % 360) + 360) % 360;\n\t\tvar w = clamp(parseFloat(match[2]), 0, 100);\n\t\tvar b = clamp(parseFloat(match[3]), 0, 100);\n\t\tvar a = clamp(isNaN(alpha) ? 1 : alpha, 0, 1);\n\t\treturn [h, w, b, a];\n\t}\n\n\treturn null;\n};\n\ncs.to.hex = function () {\n\tvar rgba = swizzle(arguments);\n\n\treturn (\n\t\t'#' +\n\t\thexDouble(rgba[0]) +\n\t\thexDouble(rgba[1]) +\n\t\thexDouble(rgba[2]) +\n\t\t(rgba[3] < 1\n\t\t\t? (hexDouble(Math.round(rgba[3] * 255)))\n\t\t\t: '')\n\t);\n};\n\ncs.to.rgb = function () {\n\tvar rgba = swizzle(arguments);\n\n\treturn rgba.length < 4 || rgba[3] === 1\n\t\t? 'rgb(' + Math.round(rgba[0]) + ', ' + Math.round(rgba[1]) + ', ' + Math.round(rgba[2]) + ')'\n\t\t: 'rgba(' + Math.round(rgba[0]) + ', ' + Math.round(rgba[1]) + ', ' + Math.round(rgba[2]) + ', ' + rgba[3] + ')';\n};\n\ncs.to.rgb.percent = function () {\n\tvar rgba = swizzle(arguments);\n\n\tvar r = Math.round(rgba[0] / 255 * 100);\n\tvar g = Math.round(rgba[1] / 255 * 100);\n\tvar b = Math.round(rgba[2] / 255 * 100);\n\n\treturn rgba.length < 4 || rgba[3] === 1\n\t\t? 'rgb(' + r + '%, ' + g + '%, ' + b + '%)'\n\t\t: 'rgba(' + r + '%, ' + g + '%, ' + b + '%, ' + rgba[3] + ')';\n};\n\ncs.to.hsl = function () {\n\tvar hsla = swizzle(arguments);\n\treturn hsla.length < 4 || hsla[3] === 1\n\t\t? 'hsl(' + hsla[0] + ', ' + hsla[1] + '%, ' + hsla[2] + '%)'\n\t\t: 'hsla(' + hsla[0] + ', ' + hsla[1] + '%, ' + hsla[2] + '%, ' + hsla[3] + ')';\n};\n\n// hwb is a bit different than rgb(a) & hsl(a) since there is no alpha specific syntax\n// (hwb have alpha optional & 1 is default value)\ncs.to.hwb = function () {\n\tvar hwba = swizzle(arguments);\n\n\tvar a = '';\n\tif (hwba.length >= 4 && hwba[3] !== 1) {\n\t\ta = ', ' + hwba[3];\n\t}\n\n\treturn 'hwb(' + hwba[0] + ', ' + hwba[1] + '%, ' + hwba[2] + '%' + a + ')';\n};\n\ncs.to.keyword = function (rgb) {\n\treturn reverseNames[rgb.slice(0, 3)];\n};\n\n// helpers\nfunction clamp(num, min, max) {\n\treturn Math.min(Math.max(min, num), max);\n}\n\nfunction hexDouble(num) {\n\tvar str = Math.round(num).toString(16).toUpperCase();\n\treturn (str.length < 2) ? '0' + str : str;\n}\n","'use strict';\n\nvar colorString = require('color-string');\nvar convert = require('color-convert');\n\nvar _slice = [].slice;\n\nvar skippedModels = [\n\t// to be honest, I don't really feel like keyword belongs in color convert, but eh.\n\t'keyword',\n\n\t// gray conflicts with some method names, and has its own method defined.\n\t'gray',\n\n\t// shouldn't really be in color-convert either...\n\t'hex'\n];\n\nvar hashedModelKeys = {};\nObject.keys(convert).forEach(function (model) {\n\thashedModelKeys[_slice.call(convert[model].labels).sort().join('')] = model;\n});\n\nvar limiters = {};\n\nfunction Color(obj, model) {\n\tif (!(this instanceof Color)) {\n\t\treturn new Color(obj, model);\n\t}\n\n\tif (model && model in skippedModels) {\n\t\tmodel = null;\n\t}\n\n\tif (model && !(model in convert)) {\n\t\tthrow new Error('Unknown model: ' + model);\n\t}\n\n\tvar i;\n\tvar channels;\n\n\tif (obj == null) { // eslint-disable-line no-eq-null,eqeqeq\n\t\tthis.model = 'rgb';\n\t\tthis.color = [0, 0, 0];\n\t\tthis.valpha = 1;\n\t} else if (obj instanceof Color) {\n\t\tthis.model = obj.model;\n\t\tthis.color = obj.color.slice();\n\t\tthis.valpha = obj.valpha;\n\t} else if (typeof obj === 'string') {\n\t\tvar result = colorString.get(obj);\n\t\tif (result === null) {\n\t\t\tthrow new Error('Unable to parse color from string: ' + obj);\n\t\t}\n\n\t\tthis.model = result.model;\n\t\tchannels = convert[this.model].channels;\n\t\tthis.color = result.value.slice(0, channels);\n\t\tthis.valpha = typeof result.value[channels] === 'number' ? result.value[channels] : 1;\n\t} else if (obj.length) {\n\t\tthis.model = model || 'rgb';\n\t\tchannels = convert[this.model].channels;\n\t\tvar newArr = _slice.call(obj, 0, channels);\n\t\tthis.color = zeroArray(newArr, channels);\n\t\tthis.valpha = typeof obj[channels] === 'number' ? obj[channels] : 1;\n\t} else if (typeof obj === 'number') {\n\t\t// this is always RGB - can be converted later on.\n\t\tobj &= 0xFFFFFF;\n\t\tthis.model = 'rgb';\n\t\tthis.color = [\n\t\t\t(obj >> 16) & 0xFF,\n\t\t\t(obj >> 8) & 0xFF,\n\t\t\tobj & 0xFF\n\t\t];\n\t\tthis.valpha = 1;\n\t} else {\n\t\tthis.valpha = 1;\n\n\t\tvar keys = Object.keys(obj);\n\t\tif ('alpha' in obj) {\n\t\t\tkeys.splice(keys.indexOf('alpha'), 1);\n\t\t\tthis.valpha = typeof obj.alpha === 'number' ? obj.alpha : 0;\n\t\t}\n\n\t\tvar hashedKeys = keys.sort().join('');\n\t\tif (!(hashedKeys in hashedModelKeys)) {\n\t\t\tthrow new Error('Unable to parse color from object: ' + JSON.stringify(obj));\n\t\t}\n\n\t\tthis.model = hashedModelKeys[hashedKeys];\n\n\t\tvar labels = convert[this.model].labels;\n\t\tvar color = [];\n\t\tfor (i = 0; i < labels.length; i++) {\n\t\t\tcolor.push(obj[labels[i]]);\n\t\t}\n\n\t\tthis.color = zeroArray(color);\n\t}\n\n\t// perform limitations (clamping, etc.)\n\tif (limiters[this.model]) {\n\t\tchannels = convert[this.model].channels;\n\t\tfor (i = 0; i < channels; i++) {\n\t\t\tvar limit = limiters[this.model][i];\n\t\t\tif (limit) {\n\t\t\t\tthis.color[i] = limit(this.color[i]);\n\t\t\t}\n\t\t}\n\t}\n\n\tthis.valpha = Math.max(0, Math.min(1, this.valpha));\n\n\tif (Object.freeze) {\n\t\tObject.freeze(this);\n\t}\n}\n\nColor.prototype = {\n\ttoString: function () {\n\t\treturn this.string();\n\t},\n\n\ttoJSON: function () {\n\t\treturn this[this.model]();\n\t},\n\n\tstring: function (places) {\n\t\tvar self = this.model in colorString.to ? this : this.rgb();\n\t\tself = self.round(typeof places === 'number' ? places : 1);\n\t\tvar args = self.valpha === 1 ? self.color : self.color.concat(this.valpha);\n\t\treturn colorString.to[self.model](args);\n\t},\n\n\tpercentString: function (places) {\n\t\tvar self = this.rgb().round(typeof places === 'number' ? places : 1);\n\t\tvar args = self.valpha === 1 ? self.color : self.color.concat(this.valpha);\n\t\treturn colorString.to.rgb.percent(args);\n\t},\n\n\tarray: function () {\n\t\treturn this.valpha === 1 ? this.color.slice() : this.color.concat(this.valpha);\n\t},\n\n\tobject: function () {\n\t\tvar result = {};\n\t\tvar channels = convert[this.model].channels;\n\t\tvar labels = convert[this.model].labels;\n\n\t\tfor (var i = 0; i < channels; i++) {\n\t\t\tresult[labels[i]] = this.color[i];\n\t\t}\n\n\t\tif (this.valpha !== 1) {\n\t\t\tresult.alpha = this.valpha;\n\t\t}\n\n\t\treturn result;\n\t},\n\n\tunitArray: function () {\n\t\tvar rgb = this.rgb().color;\n\t\trgb[0] /= 255;\n\t\trgb[1] /= 255;\n\t\trgb[2] /= 255;\n\n\t\tif (this.valpha !== 1) {\n\t\t\trgb.push(this.valpha);\n\t\t}\n\n\t\treturn rgb;\n\t},\n\n\tunitObject: function () {\n\t\tvar rgb = this.rgb().object();\n\t\trgb.r /= 255;\n\t\trgb.g /= 255;\n\t\trgb.b /= 255;\n\n\t\tif (this.valpha !== 1) {\n\t\t\trgb.alpha = this.valpha;\n\t\t}\n\n\t\treturn rgb;\n\t},\n\n\tround: function (places) {\n\t\tplaces = Math.max(places || 0, 0);\n\t\treturn new Color(this.color.map(roundToPlace(places)).concat(this.valpha), this.model);\n\t},\n\n\talpha: function (val) {\n\t\tif (arguments.length) {\n\t\t\treturn new Color(this.color.concat(Math.max(0, Math.min(1, val))), this.model);\n\t\t}\n\n\t\treturn this.valpha;\n\t},\n\n\t// rgb\n\tred: getset('rgb', 0, maxfn(255)),\n\tgreen: getset('rgb', 1, maxfn(255)),\n\tblue: getset('rgb', 2, maxfn(255)),\n\n\thue: getset(['hsl', 'hsv', 'hsl', 'hwb', 'hcg'], 0, function (val) { return ((val % 360) + 360) % 360; }), // eslint-disable-line brace-style\n\n\tsaturationl: getset('hsl', 1, maxfn(100)),\n\tlightness: getset('hsl', 2, maxfn(100)),\n\n\tsaturationv: getset('hsv', 1, maxfn(100)),\n\tvalue: getset('hsv', 2, maxfn(100)),\n\n\tchroma: getset('hcg', 1, maxfn(100)),\n\tgray: getset('hcg', 2, maxfn(100)),\n\n\twhite: getset('hwb', 1, maxfn(100)),\n\twblack: getset('hwb', 2, maxfn(100)),\n\n\tcyan: getset('cmyk', 0, maxfn(100)),\n\tmagenta: getset('cmyk', 1, maxfn(100)),\n\tyellow: getset('cmyk', 2, maxfn(100)),\n\tblack: getset('cmyk', 3, maxfn(100)),\n\n\tx: getset('xyz', 0, maxfn(100)),\n\ty: getset('xyz', 1, maxfn(100)),\n\tz: getset('xyz', 2, maxfn(100)),\n\n\tl: getset('lab', 0, maxfn(100)),\n\ta: getset('lab', 1),\n\tb: getset('lab', 2),\n\n\tkeyword: function (val) {\n\t\tif (arguments.length) {\n\t\t\treturn new Color(val);\n\t\t}\n\n\t\treturn convert[this.model].keyword(this.color);\n\t},\n\n\thex: function (val) {\n\t\tif (arguments.length) {\n\t\t\treturn new Color(val);\n\t\t}\n\n\t\treturn colorString.to.hex(this.rgb().round().color);\n\t},\n\n\trgbNumber: function () {\n\t\tvar rgb = this.rgb().color;\n\t\treturn ((rgb[0] & 0xFF) << 16) | ((rgb[1] & 0xFF) << 8) | (rgb[2] & 0xFF);\n\t},\n\n\tluminosity: function () {\n\t\t// http://www.w3.org/TR/WCAG20/#relativeluminancedef\n\t\tvar rgb = this.rgb().color;\n\n\t\tvar lum = [];\n\t\tfor (var i = 0; i < rgb.length; i++) {\n\t\t\tvar chan = rgb[i] / 255;\n\t\t\tlum[i] = (chan <= 0.03928) ? chan / 12.92 : Math.pow(((chan + 0.055) / 1.055), 2.4);\n\t\t}\n\n\t\treturn 0.2126 * lum[0] + 0.7152 * lum[1] + 0.0722 * lum[2];\n\t},\n\n\tcontrast: function (color2) {\n\t\t// http://www.w3.org/TR/WCAG20/#contrast-ratiodef\n\t\tvar lum1 = this.luminosity();\n\t\tvar lum2 = color2.luminosity();\n\n\t\tif (lum1 > lum2) {\n\t\t\treturn (lum1 + 0.05) / (lum2 + 0.05);\n\t\t}\n\n\t\treturn (lum2 + 0.05) / (lum1 + 0.05);\n\t},\n\n\tlevel: function (color2) {\n\t\tvar contrastRatio = this.contrast(color2);\n\t\tif (contrastRatio >= 7.1) {\n\t\t\treturn 'AAA';\n\t\t}\n\n\t\treturn (contrastRatio >= 4.5) ? 'AA' : '';\n\t},\n\n\tisDark: function () {\n\t\t// YIQ equation from http://24ways.org/2010/calculating-color-contrast\n\t\tvar rgb = this.rgb().color;\n\t\tvar yiq = (rgb[0] * 299 + rgb[1] * 587 + rgb[2] * 114) / 1000;\n\t\treturn yiq < 128;\n\t},\n\n\tisLight: function () {\n\t\treturn !this.isDark();\n\t},\n\n\tnegate: function () {\n\t\tvar rgb = this.rgb();\n\t\tfor (var i = 0; i < 3; i++) {\n\t\t\trgb.color[i] = 255 - rgb.color[i];\n\t\t}\n\t\treturn rgb;\n\t},\n\n\tlighten: function (ratio) {\n\t\tvar hsl = this.hsl();\n\t\thsl.color[2] += hsl.color[2] * ratio;\n\t\treturn hsl;\n\t},\n\n\tdarken: function (ratio) {\n\t\tvar hsl = this.hsl();\n\t\thsl.color[2] -= hsl.color[2] * ratio;\n\t\treturn hsl;\n\t},\n\n\tsaturate: function (ratio) {\n\t\tvar hsl = this.hsl();\n\t\thsl.color[1] += hsl.color[1] * ratio;\n\t\treturn hsl;\n\t},\n\n\tdesaturate: function (ratio) {\n\t\tvar hsl = this.hsl();\n\t\thsl.color[1] -= hsl.color[1] * ratio;\n\t\treturn hsl;\n\t},\n\n\twhiten: function (ratio) {\n\t\tvar hwb = this.hwb();\n\t\thwb.color[1] += hwb.color[1] * ratio;\n\t\treturn hwb;\n\t},\n\n\tblacken: function (ratio) {\n\t\tvar hwb = this.hwb();\n\t\thwb.color[2] += hwb.color[2] * ratio;\n\t\treturn hwb;\n\t},\n\n\tgrayscale: function () {\n\t\t// http://en.wikipedia.org/wiki/Grayscale#Converting_color_to_grayscale\n\t\tvar rgb = this.rgb().color;\n\t\tvar val = rgb[0] * 0.3 + rgb[1] * 0.59 + rgb[2] * 0.11;\n\t\treturn Color.rgb(val, val, val);\n\t},\n\n\tfade: function (ratio) {\n\t\treturn this.alpha(this.valpha - (this.valpha * ratio));\n\t},\n\n\topaquer: function (ratio) {\n\t\treturn this.alpha(this.valpha + (this.valpha * ratio));\n\t},\n\n\trotate: function (degrees) {\n\t\tvar hsl = this.hsl();\n\t\tvar hue = hsl.color[0];\n\t\thue = (hue + degrees) % 360;\n\t\thue = hue < 0 ? 360 + hue : hue;\n\t\thsl.color[0] = hue;\n\t\treturn hsl;\n\t},\n\n\tmix: function (mixinColor, weight) {\n\t\t// ported from sass implementation in C\n\t\t// https://github.com/sass/libsass/blob/0e6b4a2850092356aa3ece07c6b249f0221caced/functions.cpp#L209\n\t\tif (!mixinColor || !mixinColor.rgb) {\n\t\t\tthrow new Error('Argument to \"mix\" was not a Color instance, but rather an instance of ' + typeof mixinColor);\n\t\t}\n\t\tvar color1 = mixinColor.rgb();\n\t\tvar color2 = this.rgb();\n\t\tvar p = weight === undefined ? 0.5 : weight;\n\n\t\tvar w = 2 * p - 1;\n\t\tvar a = color1.alpha() - color2.alpha();\n\n\t\tvar w1 = (((w * a === -1) ? w : (w + a) / (1 + w * a)) + 1) / 2.0;\n\t\tvar w2 = 1 - w1;\n\n\t\treturn Color.rgb(\n\t\t\t\tw1 * color1.red() + w2 * color2.red(),\n\t\t\t\tw1 * color1.green() + w2 * color2.green(),\n\t\t\t\tw1 * color1.blue() + w2 * color2.blue(),\n\t\t\t\tcolor1.alpha() * p + color2.alpha() * (1 - p));\n\t}\n};\n\n// model conversion methods and static constructors\nObject.keys(convert).forEach(function (model) {\n\tif (skippedModels.indexOf(model) !== -1) {\n\t\treturn;\n\t}\n\n\tvar channels = convert[model].channels;\n\n\t// conversion methods\n\tColor.prototype[model] = function () {\n\t\tif (this.model === model) {\n\t\t\treturn new Color(this);\n\t\t}\n\n\t\tif (arguments.length) {\n\t\t\treturn new Color(arguments, model);\n\t\t}\n\n\t\tvar newAlpha = typeof arguments[channels] === 'number' ? channels : this.valpha;\n\t\treturn new Color(assertArray(convert[this.model][model].raw(this.color)).concat(newAlpha), model);\n\t};\n\n\t// 'static' construction methods\n\tColor[model] = function (color) {\n\t\tif (typeof color === 'number') {\n\t\t\tcolor = zeroArray(_slice.call(arguments), channels);\n\t\t}\n\t\treturn new Color(color, model);\n\t};\n});\n\nfunction roundTo(num, places) {\n\treturn Number(num.toFixed(places));\n}\n\nfunction roundToPlace(places) {\n\treturn function (num) {\n\t\treturn roundTo(num, places);\n\t};\n}\n\nfunction getset(model, channel, modifier) {\n\tmodel = Array.isArray(model) ? model : [model];\n\n\tmodel.forEach(function (m) {\n\t\t(limiters[m] || (limiters[m] = []))[channel] = modifier;\n\t});\n\n\tmodel = model[0];\n\n\treturn function (val) {\n\t\tvar result;\n\n\t\tif (arguments.length) {\n\t\t\tif (modifier) {\n\t\t\t\tval = modifier(val);\n\t\t\t}\n\n\t\t\tresult = this[model]();\n\t\t\tresult.color[channel] = val;\n\t\t\treturn result;\n\t\t}\n\n\t\tresult = this[model]().color[channel];\n\t\tif (modifier) {\n\t\t\tresult = modifier(result);\n\t\t}\n\n\t\treturn result;\n\t};\n}\n\nfunction maxfn(max) {\n\treturn function (v) {\n\t\treturn Math.max(0, Math.min(max, v));\n\t};\n}\n\nfunction assertArray(val) {\n\treturn Array.isArray(val) ? val : [val];\n}\n\nfunction zeroArray(arr, length) {\n\tfor (var i = 0; i < length; i++) {\n\t\tif (typeof arr[i] !== 'number') {\n\t\t\tarr[i] = 0;\n\t\t}\n\t}\n\n\treturn arr;\n}\n\nmodule.exports = Color;\n","/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used as the internal argument placeholder. */\nvar PLACEHOLDER = '__lodash_placeholder__';\n\n/** Used to compose bitmasks for function metadata. */\nvar BIND_FLAG = 1,\n BIND_KEY_FLAG = 2,\n CURRY_BOUND_FLAG = 4,\n CURRY_FLAG = 8,\n CURRY_RIGHT_FLAG = 16,\n PARTIAL_FLAG = 32,\n PARTIAL_RIGHT_FLAG = 64,\n ARY_FLAG = 128,\n REARG_FLAG = 256,\n FLIP_FLAG = 512;\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0,\n MAX_SAFE_INTEGER = 9007199254740991,\n MAX_INTEGER = 1.7976931348623157e+308,\n NAN = 0 / 0;\n\n/** Used to associate wrap methods with their bit flags. */\nvar wrapFlags = [\n ['ary', ARY_FLAG],\n ['bind', BIND_FLAG],\n ['bindKey', BIND_KEY_FLAG],\n ['curry', CURRY_FLAG],\n ['curryRight', CURRY_RIGHT_FLAG],\n ['flip', FLIP_FLAG],\n ['partial', PARTIAL_FLAG],\n ['partialRight', PARTIAL_RIGHT_FLAG],\n ['rearg', REARG_FLAG]\n];\n\n/** `Object#toString` result references. */\nvar funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n symbolTag = '[object Symbol]';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to match wrap detail comments. */\nvar reWrapComment = /\\{(?:\\n\\/\\* \\[wrapped with .+\\] \\*\\/)?\\n?/,\n reWrapDetails = /\\{\\n\\/\\* \\[wrapped with (.+)\\] \\*/,\n reSplitDetails = /,? & /;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\n/**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array ? array.length : 0;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\n/**\n * A specialized version of `_.includes` for arrays without support for\n * specifying an index to search from.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludes(array, value) {\n var length = array ? array.length : 0;\n return !!length && baseIndexOf(array, value, 0) > -1;\n}\n\n/**\n * The base implementation of `_.findIndex` and `_.findLastIndex` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {number} fromIndex The index to search from.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseFindIndex(array, predicate, fromIndex, fromRight) {\n var length = array.length,\n index = fromIndex + (fromRight ? 1 : -1);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (predicate(array[index], index, array)) {\n return index;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `_.indexOf` without `fromIndex` bounds checks.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseIndexOf(array, value, fromIndex) {\n if (value !== value) {\n return baseFindIndex(array, baseIsNaN, fromIndex);\n }\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (array[index] === value) {\n return index;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `_.isNaN` without support for number objects.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n */\nfunction baseIsNaN(value) {\n return value !== value;\n}\n\n/**\n * Gets the number of `placeholder` occurrences in `array`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} placeholder The placeholder to search for.\n * @returns {number} Returns the placeholder count.\n */\nfunction countHolders(array, placeholder) {\n var length = array.length,\n result = 0;\n\n while (length--) {\n if (array[length] === placeholder) {\n result++;\n }\n }\n return result;\n}\n\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\n/**\n * Checks if `value` is a host object in IE < 9.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a host object, else `false`.\n */\nfunction isHostObject(value) {\n // Many host objects are `Object` objects that can coerce to strings\n // despite having improperly defined `toString` methods.\n var result = false;\n if (value != null && typeof value.toString != 'function') {\n try {\n result = !!(value + '');\n } catch (e) {}\n }\n return result;\n}\n\n/**\n * Replaces all `placeholder` elements in `array` with an internal placeholder\n * and returns an array of their indexes.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {*} placeholder The placeholder to replace.\n * @returns {Array} Returns the new array of placeholder indexes.\n */\nfunction replaceHolders(array, placeholder) {\n var index = -1,\n length = array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (value === placeholder || value === PLACEHOLDER) {\n array[index] = PLACEHOLDER;\n result[resIndex++] = index;\n }\n }\n return result;\n}\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/** Built-in value references. */\nvar objectCreate = Object.create;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/* Used to set `toString` methods. */\nvar defineProperty = (function() {\n var func = getNative(Object, 'defineProperty'),\n name = getNative.name;\n\n return (name && name.length > 2) ? func : undefined;\n}());\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} prototype The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nfunction baseCreate(proto) {\n return isObject(proto) ? objectCreate(proto) : {};\n}\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = (isFunction(value) || isHostObject(value)) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\n/**\n * Creates an array that is the composition of partially applied arguments,\n * placeholders, and provided arguments into a single array of arguments.\n *\n * @private\n * @param {Array} args The provided arguments.\n * @param {Array} partials The arguments to prepend to those provided.\n * @param {Array} holders The `partials` placeholder indexes.\n * @params {boolean} [isCurried] Specify composing for a curried function.\n * @returns {Array} Returns the new array of composed arguments.\n */\nfunction composeArgs(args, partials, holders, isCurried) {\n var argsIndex = -1,\n argsLength = args.length,\n holdersLength = holders.length,\n leftIndex = -1,\n leftLength = partials.length,\n rangeLength = nativeMax(argsLength - holdersLength, 0),\n result = Array(leftLength + rangeLength),\n isUncurried = !isCurried;\n\n while (++leftIndex < leftLength) {\n result[leftIndex] = partials[leftIndex];\n }\n while (++argsIndex < holdersLength) {\n if (isUncurried || argsIndex < argsLength) {\n result[holders[argsIndex]] = args[argsIndex];\n }\n }\n while (rangeLength--) {\n result[leftIndex++] = args[argsIndex++];\n }\n return result;\n}\n\n/**\n * This function is like `composeArgs` except that the arguments composition\n * is tailored for `_.partialRight`.\n *\n * @private\n * @param {Array} args The provided arguments.\n * @param {Array} partials The arguments to append to those provided.\n * @param {Array} holders The `partials` placeholder indexes.\n * @params {boolean} [isCurried] Specify composing for a curried function.\n * @returns {Array} Returns the new array of composed arguments.\n */\nfunction composeArgsRight(args, partials, holders, isCurried) {\n var argsIndex = -1,\n argsLength = args.length,\n holdersIndex = -1,\n holdersLength = holders.length,\n rightIndex = -1,\n rightLength = partials.length,\n rangeLength = nativeMax(argsLength - holdersLength, 0),\n result = Array(rangeLength + rightLength),\n isUncurried = !isCurried;\n\n while (++argsIndex < rangeLength) {\n result[argsIndex] = args[argsIndex];\n }\n var offset = argsIndex;\n while (++rightIndex < rightLength) {\n result[offset + rightIndex] = partials[rightIndex];\n }\n while (++holdersIndex < holdersLength) {\n if (isUncurried || argsIndex < argsLength) {\n result[offset + holders[holdersIndex]] = args[argsIndex++];\n }\n }\n return result;\n}\n\n/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\n/**\n * Creates a function that wraps `func` to invoke it with the optional `this`\n * binding of `thisArg`.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {*} [thisArg] The `this` binding of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\nfunction createBind(func, bitmask, thisArg) {\n var isBind = bitmask & BIND_FLAG,\n Ctor = createCtor(func);\n\n function wrapper() {\n var fn = (this && this !== root && this instanceof wrapper) ? Ctor : func;\n return fn.apply(isBind ? thisArg : this, arguments);\n }\n return wrapper;\n}\n\n/**\n * Creates a function that produces an instance of `Ctor` regardless of\n * whether it was invoked as part of a `new` expression or by `call` or `apply`.\n *\n * @private\n * @param {Function} Ctor The constructor to wrap.\n * @returns {Function} Returns the new wrapped function.\n */\nfunction createCtor(Ctor) {\n return function() {\n // Use a `switch` statement to work with class constructors. See\n // http://ecma-international.org/ecma-262/7.0/#sec-ecmascript-function-objects-call-thisargument-argumentslist\n // for more details.\n var args = arguments;\n switch (args.length) {\n case 0: return new Ctor;\n case 1: return new Ctor(args[0]);\n case 2: return new Ctor(args[0], args[1]);\n case 3: return new Ctor(args[0], args[1], args[2]);\n case 4: return new Ctor(args[0], args[1], args[2], args[3]);\n case 5: return new Ctor(args[0], args[1], args[2], args[3], args[4]);\n case 6: return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5]);\n case 7: return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5], args[6]);\n }\n var thisBinding = baseCreate(Ctor.prototype),\n result = Ctor.apply(thisBinding, args);\n\n // Mimic the constructor's `return` behavior.\n // See https://es5.github.io/#x13.2.2 for more details.\n return isObject(result) ? result : thisBinding;\n };\n}\n\n/**\n * Creates a function that wraps `func` to enable currying.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {number} arity The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\nfunction createCurry(func, bitmask, arity) {\n var Ctor = createCtor(func);\n\n function wrapper() {\n var length = arguments.length,\n args = Array(length),\n index = length,\n placeholder = getHolder(wrapper);\n\n while (index--) {\n args[index] = arguments[index];\n }\n var holders = (length < 3 && args[0] !== placeholder && args[length - 1] !== placeholder)\n ? []\n : replaceHolders(args, placeholder);\n\n length -= holders.length;\n if (length < arity) {\n return createRecurry(\n func, bitmask, createHybrid, wrapper.placeholder, undefined,\n args, holders, undefined, undefined, arity - length);\n }\n var fn = (this && this !== root && this instanceof wrapper) ? Ctor : func;\n return apply(fn, this, args);\n }\n return wrapper;\n}\n\n/**\n * Creates a function that wraps `func` to invoke it with optional `this`\n * binding of `thisArg`, partial application, and currying.\n *\n * @private\n * @param {Function|string} func The function or method name to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {*} [thisArg] The `this` binding of `func`.\n * @param {Array} [partials] The arguments to prepend to those provided to\n * the new function.\n * @param {Array} [holders] The `partials` placeholder indexes.\n * @param {Array} [partialsRight] The arguments to append to those provided\n * to the new function.\n * @param {Array} [holdersRight] The `partialsRight` placeholder indexes.\n * @param {Array} [argPos] The argument positions of the new function.\n * @param {number} [ary] The arity cap of `func`.\n * @param {number} [arity] The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\nfunction createHybrid(func, bitmask, thisArg, partials, holders, partialsRight, holdersRight, argPos, ary, arity) {\n var isAry = bitmask & ARY_FLAG,\n isBind = bitmask & BIND_FLAG,\n isBindKey = bitmask & BIND_KEY_FLAG,\n isCurried = bitmask & (CURRY_FLAG | CURRY_RIGHT_FLAG),\n isFlip = bitmask & FLIP_FLAG,\n Ctor = isBindKey ? undefined : createCtor(func);\n\n function wrapper() {\n var length = arguments.length,\n args = Array(length),\n index = length;\n\n while (index--) {\n args[index] = arguments[index];\n }\n if (isCurried) {\n var placeholder = getHolder(wrapper),\n holdersCount = countHolders(args, placeholder);\n }\n if (partials) {\n args = composeArgs(args, partials, holders, isCurried);\n }\n if (partialsRight) {\n args = composeArgsRight(args, partialsRight, holdersRight, isCurried);\n }\n length -= holdersCount;\n if (isCurried && length < arity) {\n var newHolders = replaceHolders(args, placeholder);\n return createRecurry(\n func, bitmask, createHybrid, wrapper.placeholder, thisArg,\n args, newHolders, argPos, ary, arity - length\n );\n }\n var thisBinding = isBind ? thisArg : this,\n fn = isBindKey ? thisBinding[func] : func;\n\n length = args.length;\n if (argPos) {\n args = reorder(args, argPos);\n } else if (isFlip && length > 1) {\n args.reverse();\n }\n if (isAry && ary < length) {\n args.length = ary;\n }\n if (this && this !== root && this instanceof wrapper) {\n fn = Ctor || createCtor(fn);\n }\n return fn.apply(thisBinding, args);\n }\n return wrapper;\n}\n\n/**\n * Creates a function that wraps `func` to invoke it with the `this` binding\n * of `thisArg` and `partials` prepended to the arguments it receives.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} partials The arguments to prepend to those provided to\n * the new function.\n * @returns {Function} Returns the new wrapped function.\n */\nfunction createPartial(func, bitmask, thisArg, partials) {\n var isBind = bitmask & BIND_FLAG,\n Ctor = createCtor(func);\n\n function wrapper() {\n var argsIndex = -1,\n argsLength = arguments.length,\n leftIndex = -1,\n leftLength = partials.length,\n args = Array(leftLength + argsLength),\n fn = (this && this !== root && this instanceof wrapper) ? Ctor : func;\n\n while (++leftIndex < leftLength) {\n args[leftIndex] = partials[leftIndex];\n }\n while (argsLength--) {\n args[leftIndex++] = arguments[++argsIndex];\n }\n return apply(fn, isBind ? thisArg : this, args);\n }\n return wrapper;\n}\n\n/**\n * Creates a function that wraps `func` to continue currying.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {Function} wrapFunc The function to create the `func` wrapper.\n * @param {*} placeholder The placeholder value.\n * @param {*} [thisArg] The `this` binding of `func`.\n * @param {Array} [partials] The arguments to prepend to those provided to\n * the new function.\n * @param {Array} [holders] The `partials` placeholder indexes.\n * @param {Array} [argPos] The argument positions of the new function.\n * @param {number} [ary] The arity cap of `func`.\n * @param {number} [arity] The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\nfunction createRecurry(func, bitmask, wrapFunc, placeholder, thisArg, partials, holders, argPos, ary, arity) {\n var isCurry = bitmask & CURRY_FLAG,\n newHolders = isCurry ? holders : undefined,\n newHoldersRight = isCurry ? undefined : holders,\n newPartials = isCurry ? partials : undefined,\n newPartialsRight = isCurry ? undefined : partials;\n\n bitmask |= (isCurry ? PARTIAL_FLAG : PARTIAL_RIGHT_FLAG);\n bitmask &= ~(isCurry ? PARTIAL_RIGHT_FLAG : PARTIAL_FLAG);\n\n if (!(bitmask & CURRY_BOUND_FLAG)) {\n bitmask &= ~(BIND_FLAG | BIND_KEY_FLAG);\n }\n\n var result = wrapFunc(func, bitmask, thisArg, newPartials, newHolders, newPartialsRight, newHoldersRight, argPos, ary, arity);\n result.placeholder = placeholder;\n return setWrapToString(result, func, bitmask);\n}\n\n/**\n * Creates a function that either curries or invokes `func` with optional\n * `this` binding and partially applied arguments.\n *\n * @private\n * @param {Function|string} func The function or method name to wrap.\n * @param {number} bitmask The bitmask flags.\n * The bitmask may be composed of the following flags:\n * 1 - `_.bind`\n * 2 - `_.bindKey`\n * 4 - `_.curry` or `_.curryRight` of a bound function\n * 8 - `_.curry`\n * 16 - `_.curryRight`\n * 32 - `_.partial`\n * 64 - `_.partialRight`\n * 128 - `_.rearg`\n * 256 - `_.ary`\n * 512 - `_.flip`\n * @param {*} [thisArg] The `this` binding of `func`.\n * @param {Array} [partials] The arguments to be partially applied.\n * @param {Array} [holders] The `partials` placeholder indexes.\n * @param {Array} [argPos] The argument positions of the new function.\n * @param {number} [ary] The arity cap of `func`.\n * @param {number} [arity] The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\nfunction createWrap(func, bitmask, thisArg, partials, holders, argPos, ary, arity) {\n var isBindKey = bitmask & BIND_KEY_FLAG;\n if (!isBindKey && typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var length = partials ? partials.length : 0;\n if (!length) {\n bitmask &= ~(PARTIAL_FLAG | PARTIAL_RIGHT_FLAG);\n partials = holders = undefined;\n }\n ary = ary === undefined ? ary : nativeMax(toInteger(ary), 0);\n arity = arity === undefined ? arity : toInteger(arity);\n length -= holders ? holders.length : 0;\n\n if (bitmask & PARTIAL_RIGHT_FLAG) {\n var partialsRight = partials,\n holdersRight = holders;\n\n partials = holders = undefined;\n }\n\n var newData = [\n func, bitmask, thisArg, partials, holders, partialsRight, holdersRight,\n argPos, ary, arity\n ];\n\n func = newData[0];\n bitmask = newData[1];\n thisArg = newData[2];\n partials = newData[3];\n holders = newData[4];\n arity = newData[9] = newData[9] == null\n ? (isBindKey ? 0 : func.length)\n : nativeMax(newData[9] - length, 0);\n\n if (!arity && bitmask & (CURRY_FLAG | CURRY_RIGHT_FLAG)) {\n bitmask &= ~(CURRY_FLAG | CURRY_RIGHT_FLAG);\n }\n if (!bitmask || bitmask == BIND_FLAG) {\n var result = createBind(func, bitmask, thisArg);\n } else if (bitmask == CURRY_FLAG || bitmask == CURRY_RIGHT_FLAG) {\n result = createCurry(func, bitmask, arity);\n } else if ((bitmask == PARTIAL_FLAG || bitmask == (BIND_FLAG | PARTIAL_FLAG)) && !holders.length) {\n result = createPartial(func, bitmask, thisArg, partials);\n } else {\n result = createHybrid.apply(undefined, newData);\n }\n return setWrapToString(result, func, bitmask);\n}\n\n/**\n * Gets the argument placeholder value for `func`.\n *\n * @private\n * @param {Function} func The function to inspect.\n * @returns {*} Returns the placeholder value.\n */\nfunction getHolder(func) {\n var object = func;\n return object.placeholder;\n}\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\n/**\n * Extracts wrapper details from the `source` body comment.\n *\n * @private\n * @param {string} source The source to inspect.\n * @returns {Array} Returns the wrapper details.\n */\nfunction getWrapDetails(source) {\n var match = source.match(reWrapDetails);\n return match ? match[1].split(reSplitDetails) : [];\n}\n\n/**\n * Inserts wrapper `details` in a comment at the top of the `source` body.\n *\n * @private\n * @param {string} source The source to modify.\n * @returns {Array} details The details to insert.\n * @returns {string} Returns the modified source.\n */\nfunction insertWrapDetails(source, details) {\n var length = details.length,\n lastIndex = length - 1;\n\n details[lastIndex] = (length > 1 ? '& ' : '') + details[lastIndex];\n details = details.join(length > 2 ? ', ' : ' ');\n return source.replace(reWrapComment, '{\\n/* [wrapped with ' + details + '] */\\n');\n}\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n length = length == null ? MAX_SAFE_INTEGER : length;\n return !!length &&\n (typeof value == 'number' || reIsUint.test(value)) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\n/**\n * Reorder `array` according to the specified indexes where the element at\n * the first index is assigned as the first element, the element at\n * the second index is assigned as the second element, and so on.\n *\n * @private\n * @param {Array} array The array to reorder.\n * @param {Array} indexes The arranged array indexes.\n * @returns {Array} Returns `array`.\n */\nfunction reorder(array, indexes) {\n var arrLength = array.length,\n length = nativeMin(indexes.length, arrLength),\n oldArray = copyArray(array);\n\n while (length--) {\n var index = indexes[length];\n array[length] = isIndex(index, arrLength) ? oldArray[index] : undefined;\n }\n return array;\n}\n\n/**\n * Sets the `toString` method of `wrapper` to mimic the source of `reference`\n * with wrapper details in a comment at the top of the source body.\n *\n * @private\n * @param {Function} wrapper The function to modify.\n * @param {Function} reference The reference function.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @returns {Function} Returns `wrapper`.\n */\nvar setWrapToString = !defineProperty ? identity : function(wrapper, reference, bitmask) {\n var source = (reference + '');\n return defineProperty(wrapper, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(insertWrapDetails(source, updateWrapDetails(getWrapDetails(source), bitmask)))\n });\n};\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to process.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\n/**\n * Updates wrapper `details` based on `bitmask` flags.\n *\n * @private\n * @returns {Array} details The details to modify.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @returns {Array} Returns `details`.\n */\nfunction updateWrapDetails(details, bitmask) {\n arrayEach(wrapFlags, function(pair) {\n var value = '_.' + pair[0];\n if ((bitmask & pair[1]) && !arrayIncludes(details, value)) {\n details.push(value);\n }\n });\n return details.sort();\n}\n\n/**\n * Creates a function that accepts arguments of `func` and either invokes\n * `func` returning its result, if at least `arity` number of arguments have\n * been provided, or returns a function that accepts the remaining `func`\n * arguments, and so on. The arity of `func` may be specified if `func.length`\n * is not sufficient.\n *\n * The `_.curry.placeholder` value, which defaults to `_` in monolithic builds,\n * may be used as a placeholder for provided arguments.\n *\n * **Note:** This method doesn't set the \"length\" property of curried functions.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Function\n * @param {Function} func The function to curry.\n * @param {number} [arity=func.length] The arity of `func`.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Function} Returns the new curried function.\n * @example\n *\n * var abc = function(a, b, c) {\n * return [a, b, c];\n * };\n *\n * var curried = _.curry(abc);\n *\n * curried(1)(2)(3);\n * // => [1, 2, 3]\n *\n * curried(1, 2)(3);\n * // => [1, 2, 3]\n *\n * curried(1, 2, 3);\n * // => [1, 2, 3]\n *\n * // Curried with placeholders.\n * curried(1)(_, 3)(2);\n * // => [1, 2, 3]\n */\nfunction curry(func, arity, guard) {\n arity = guard ? undefined : arity;\n var result = createWrap(func, CURRY_FLAG, undefined, undefined, undefined, undefined, undefined, arity);\n result.placeholder = curry.placeholder;\n return result;\n}\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 8-9 which returns 'object' for typed array and other constructors.\n var tag = isObject(value) ? objectToString.call(value) : '';\n return tag == funcTag || tag == genTag;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\nfunction toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber(value);\n if (value === INFINITY || value === -INFINITY) {\n var sign = (value < 0 ? -1 : 1);\n return sign * MAX_INTEGER;\n }\n return value === value ? value : 0;\n}\n\n/**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\nfunction toInteger(value) {\n var result = toFinite(value),\n remainder = result % 1;\n\n return result === result ? (remainder ? result - remainder : result) : 0;\n}\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\n/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\n/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\n// Assign default placeholders.\ncurry.placeholder = {};\n\nmodule.exports = curry;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","export type Color = [number, number, number];\n\nexport function yuv2rgb(yuv: Color): Color {\n const y = yuv[0],\n u = yuv[1],\n v = yuv[2];\n let r, g, b;\n\n r = y * 1 + u * 0 + v * 1.13983;\n g = y * 1 + u * -0.39465 + v * -0.5806;\n b = y * 1 + u * 2.02311 + v * 0;\n\n r = Math.min(Math.max(0, r), 1);\n g = Math.min(Math.max(0, g), 1);\n b = Math.min(Math.max(0, b), 1);\n\n return [r * 255, g * 255, b * 255];\n}\n\nexport function rgb2yuv(rgb: Color): Color {\n const r = rgb[0] / 255,\n g = rgb[1] / 255,\n b = rgb[2] / 255;\n\n const y = r * 0.299 + g * 0.587 + b * 0.114;\n const u = r * -0.14713 + g * -0.28886 + b * 0.436;\n const v = r * 0.615 + g * -0.51499 + b * -0.10001;\n\n return [y, u, v];\n}\n","import * as base16 from 'base16';\nimport { Base16Theme } from 'base16';\nimport Color from 'color';\nimport * as CSS from 'csstype';\nimport curry from 'lodash.curry';\nimport { Color as ColorTuple, yuv2rgb, rgb2yuv } from './colorConverters';\nimport {\n Styling,\n StylingConfig,\n StylingFunction,\n StylingValue,\n StylingValueFunction,\n Theme,\n} from './types';\n\nconst DEFAULT_BASE16 = base16.default;\n\nconst BASE16_KEYS = Object.keys(DEFAULT_BASE16);\n\n// we need a correcting factor, so that a dark, but not black background color\n// converts to bright enough inversed color\nconst flip = (x: number) => (x < 0.25 ? 1 : x < 0.5 ? 0.9 - x : 1.1 - x);\n\nconst invertColor = (hexString: string) => {\n const color = Color(hexString);\n const [y, u, v] = rgb2yuv(color.array() as ColorTuple);\n const flippedYuv: ColorTuple = [flip(y), u, v];\n const rgb = yuv2rgb(flippedYuv);\n return Color.rgb(rgb).hex();\n};\n\nconst merger = (styling: Partial) => {\n return (prevStyling: Partial) => ({\n className: [prevStyling.className, styling.className]\n .filter(Boolean)\n .join(' '),\n style: { ...(prevStyling.style || {}), ...(styling.style || {}) },\n });\n};\n\nconst mergeStyling = (\n customStyling: StylingValue,\n defaultStyling: StylingValue\n): StylingValue | undefined => {\n if (customStyling === undefined) {\n return defaultStyling;\n }\n if (defaultStyling === undefined) {\n return customStyling;\n }\n\n const customType = typeof customStyling;\n const defaultType = typeof defaultStyling;\n\n switch (customType) {\n case 'string':\n switch (defaultType) {\n case 'string':\n return [defaultStyling, customStyling].filter(Boolean).join(' ');\n case 'object':\n return merger({\n className: customStyling as string,\n style: defaultStyling as CSS.Properties,\n });\n case 'function':\n return (styling: Styling, ...args: unknown[]) =>\n merger({\n className: customStyling as string,\n })((defaultStyling as StylingValueFunction)(styling, ...args));\n }\n break;\n case 'object':\n switch (defaultType) {\n case 'string':\n return merger({\n className: defaultStyling as string,\n style: customStyling as CSS.Properties,\n });\n case 'object':\n return {\n ...(defaultStyling as CSS.Properties),\n ...(customStyling as CSS.Properties),\n };\n case 'function':\n return (styling: Styling, ...args: unknown[]) =>\n merger({\n style: customStyling as CSS.Properties,\n })((defaultStyling as StylingValueFunction)(styling, ...args));\n }\n break;\n case 'function':\n switch (defaultType) {\n case 'string':\n return (styling, ...args) =>\n (customStyling as StylingValueFunction)(\n merger(styling)({\n className: defaultStyling as string,\n }),\n ...args\n );\n case 'object':\n return (styling, ...args) =>\n (customStyling as StylingValueFunction)(\n merger(styling)({\n style: defaultStyling as CSS.Properties,\n }),\n ...args\n );\n case 'function':\n return (styling, ...args) =>\n (customStyling as StylingValueFunction)(\n (defaultStyling as StylingValueFunction)(\n styling,\n ...args\n ) as Styling,\n ...args\n );\n }\n }\n};\n\nconst mergeStylings = (\n customStylings: StylingConfig,\n defaultStylings: StylingConfig\n): StylingConfig => {\n const keys = Object.keys(defaultStylings);\n for (const key in customStylings) {\n if (keys.indexOf(key) === -1) keys.push(key);\n }\n\n return keys.reduce(\n (mergedStyling, key) => (\n (mergedStyling[key as keyof StylingConfig] = mergeStyling(\n customStylings[key] as StylingValue,\n defaultStylings[key] as StylingValue\n ) as StylingValue),\n mergedStyling\n ),\n {} as StylingConfig\n );\n};\n\nconst getStylingByKeys = (\n mergedStyling: StylingConfig,\n keys: (string | false | undefined) | (string | false | undefined)[],\n ...args: unknown[]\n): Styling => {\n if (keys === null) {\n return mergedStyling as unknown as Styling;\n }\n\n if (!Array.isArray(keys)) {\n keys = [keys];\n }\n\n const styles = keys\n .map((key) => mergedStyling[key as string])\n .filter(Boolean);\n\n const props = styles.reduce(\n (obj, s) => {\n if (typeof s === 'string') {\n obj.className = [obj.className, s].filter(Boolean).join(' ');\n } else if (typeof s === 'object') {\n obj.style = { ...obj.style, ...s };\n } else if (typeof s === 'function') {\n obj = { ...obj, ...s(obj, ...args) };\n }\n\n return obj;\n },\n { className: '', style: {} }\n );\n\n if (!props.className) {\n delete props.className;\n }\n\n if (Object.keys(props.style!).length === 0) {\n delete props.style;\n }\n\n return props;\n};\n\nexport const invertBase16Theme = (base16Theme: Base16Theme): Base16Theme =>\n Object.keys(base16Theme).reduce(\n (t, key) => (\n (t[key as keyof Base16Theme] = /^base/.test(key)\n ? invertColor(base16Theme[key as keyof Base16Theme])\n : key === 'scheme'\n ? base16Theme[key] + ':inverted'\n : base16Theme[key as keyof Base16Theme]),\n t\n ),\n {} as Base16Theme\n );\n\ninterface Options {\n defaultBase16?: Base16Theme;\n base16Themes?: { [themeName: string]: Base16Theme };\n}\n\nexport const createStyling = curry<\n (base16Theme: Base16Theme) => StylingConfig,\n Options | undefined,\n Theme | undefined,\n StylingFunction\n>(\n (\n getStylingFromBase16: (base16Theme: Base16Theme) => StylingConfig,\n options: Options = {},\n themeOrStyling: Theme = {},\n ...args\n ): StylingFunction => {\n const { defaultBase16 = DEFAULT_BASE16, base16Themes = null } = options;\n\n const base16Theme = getBase16Theme(themeOrStyling, base16Themes);\n if (base16Theme) {\n themeOrStyling = {\n ...base16Theme,\n ...(themeOrStyling as Base16Theme | StylingConfig),\n };\n }\n\n const theme = BASE16_KEYS.reduce(\n (t, key) => (\n (t[key as keyof Base16Theme] =\n (themeOrStyling as Base16Theme)[key as keyof Base16Theme] ||\n defaultBase16[key as keyof Base16Theme]),\n t\n ),\n {} as Base16Theme\n );\n\n const customStyling = Object.keys(themeOrStyling).reduce(\n (s, key) =>\n BASE16_KEYS.indexOf(key) === -1\n ? ((s[key] = (themeOrStyling as StylingConfig)[key]), s)\n : s,\n {} as StylingConfig\n );\n\n const defaultStyling = getStylingFromBase16(theme);\n\n const mergedStyling = mergeStylings(customStyling, defaultStyling);\n\n return curry(getStylingByKeys, 2)(mergedStyling, ...args);\n },\n 3\n);\n\nconst isStylingConfig = (theme: Theme): theme is StylingConfig =>\n !!(theme as StylingConfig).extend;\n\nexport const getBase16Theme = (\n theme: Theme,\n base16Themes?: { [themeName: string]: Base16Theme } | null\n): Base16Theme | undefined => {\n if (theme && isStylingConfig(theme) && theme.extend) {\n theme = theme.extend as string | Base16Theme;\n }\n\n if (typeof theme === 'string') {\n const [themeName, modifier] = theme.split(':');\n if (base16Themes) {\n theme = base16Themes[themeName];\n } else {\n theme = base16[themeName as keyof typeof base16];\n }\n if (modifier === 'inverted') {\n theme = invertBase16Theme(theme);\n }\n }\n\n return theme && Object.prototype.hasOwnProperty.call(theme, 'base00')\n ? (theme as Base16Theme)\n : undefined;\n};\n\nexport const invertTheme = (theme: Theme | undefined): Theme | undefined => {\n if (typeof theme === 'string') {\n return `${theme}:inverted`;\n }\n\n if (theme && isStylingConfig(theme) && theme.extend) {\n if (typeof theme.extend === 'string') {\n return { ...theme, extend: `${theme.extend}:inverted` };\n }\n\n return {\n ...theme,\n extend: invertBase16Theme(theme.extend as Base16Theme),\n };\n }\n\n if (theme) {\n return invertBase16Theme(theme as Base16Theme);\n }\n\n return theme;\n};\n\nexport { Base16Theme };\nexport * from './types';\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport JSONArrow from './JSONArrow';\nimport { CircularPropsPassedThroughItemRange } from './types';\n\ninterface Props extends CircularPropsPassedThroughItemRange {\n data: any;\n nodeType: string;\n from: number;\n to: number;\n renderChildNodes: (props: Props, from: number, to: number) => React.ReactNode;\n}\n\ninterface State {\n expanded: boolean;\n}\n\nexport default class ItemRange extends React.Component {\n static propTypes = {\n styling: PropTypes.func.isRequired,\n from: PropTypes.number.isRequired,\n to: PropTypes.number.isRequired,\n renderChildNodes: PropTypes.func.isRequired,\n nodeType: PropTypes.string.isRequired,\n };\n\n constructor(props: Props) {\n super(props);\n this.state = { expanded: false };\n }\n\n render() {\n const { styling, from, to, renderChildNodes, nodeType } = this.props;\n\n return this.state.expanded ? (\n
\n {renderChildNodes(this.props, from, to)}\n
\n ) : (\n \n \n {`${from} ... ${to}`}\n \n );\n }\n\n handleClick = () => {\n this.setState({ expanded: !this.state.expanded });\n };\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport JSONNestedNode from './JSONNestedNode';\nimport { CircularPropsPassedThroughJSONNode } from './types';\n\n// Returns the \"n Items\" string for this node,\n// generating and caching it if it hasn't been created yet.\nfunction createItemString(data: any) {\n return `${(data as unknown[]).length} ${\n (data as unknown[]).length !== 1 ? 'items' : 'item'\n }`;\n}\n\ninterface Props extends CircularPropsPassedThroughJSONNode {\n data: any;\n nodeType: string;\n}\n\n// Configures to render an Array\nconst JSONArrayNode: React.FunctionComponent = ({ data, ...props }) => (\n 0}\n />\n);\n\nJSONArrayNode.propTypes = {\n data: PropTypes.array,\n};\n\nexport default JSONArrayNode;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { StylingFunction } from 'react-base16-styling';\n\ninterface Props {\n styling: StylingFunction;\n arrowStyle?: 'single' | 'double';\n expanded: boolean;\n nodeType: string;\n onClick: React.MouseEventHandler;\n}\n\nconst JSONArrow: React.FunctionComponent = ({\n styling,\n arrowStyle,\n expanded,\n nodeType,\n onClick,\n}) => (\n
\n
\n {'\\u25B6'}\n {arrowStyle === 'double' && (\n
{'\\u25B6'}
\n )}\n
\n
\n);\n\nJSONArrow.propTypes = {\n styling: PropTypes.func.isRequired,\n arrowStyle: PropTypes.oneOf(['single', 'double']),\n expanded: PropTypes.bool.isRequired,\n nodeType: PropTypes.string.isRequired,\n onClick: PropTypes.func.isRequired,\n};\n\nJSONArrow.defaultProps = {\n arrowStyle: 'single',\n};\n\nexport default JSONArrow;\n","import React from 'react';\nimport JSONNestedNode from './JSONNestedNode';\nimport { CircularPropsPassedThroughJSONNode } from './types';\n\n// Returns the \"n Items\" string for this node,\n// generating and caching it if it hasn't been created yet.\nfunction createItemString(data: any, limit: number) {\n let count = 0;\n let hasMore = false;\n if (Number.isSafeInteger(data.size)) {\n count = data.size;\n } else {\n // eslint-disable-next-line no-unused-vars\n for (const entry of data) {\n if (limit && count + 1 > limit) {\n hasMore = true;\n break;\n }\n count += 1;\n }\n }\n return `${hasMore ? '>' : ''}${count} ${count !== 1 ? 'entries' : 'entry'}`;\n}\n\ninterface Props extends CircularPropsPassedThroughJSONNode {\n data: any;\n nodeType: string;\n}\n\n// Configures to render an iterable\nconst JSONIterableNode: React.FunctionComponent = ({ ...props }) => {\n return (\n \n );\n};\n\nexport default JSONIterableNode;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport JSONArrow from './JSONArrow';\nimport getCollectionEntries from './getCollectionEntries';\nimport JSONNode from './JSONNode';\nimport ItemRange from './ItemRange';\nimport {\n CircularPropsPassedThroughJSONNestedNode,\n CircularPropsPassedThroughRenderChildNodes,\n} from './types';\n\n/**\n * Renders nested values (eg. objects, arrays, lists, etc.)\n */\n\nexport interface RenderChildNodesProps\n extends CircularPropsPassedThroughRenderChildNodes {\n data: any;\n nodeType: string;\n}\n\ninterface Range {\n from: number;\n to: number;\n}\n\ninterface Entry {\n key: string | number;\n value: any;\n}\n\nfunction isRange(rangeOrEntry: Range | Entry): rangeOrEntry is Range {\n return (rangeOrEntry as Range).to !== undefined;\n}\n\nfunction renderChildNodes(\n props: RenderChildNodesProps,\n from?: number,\n to?: number\n) {\n const {\n nodeType,\n data,\n collectionLimit,\n circularCache,\n keyPath,\n postprocessValue,\n sortObjectKeys,\n } = props;\n const childNodes: React.ReactNode[] = [];\n\n getCollectionEntries(\n nodeType,\n data,\n sortObjectKeys,\n collectionLimit,\n from,\n to\n ).forEach((entry) => {\n if (isRange(entry)) {\n childNodes.push(\n \n );\n } else {\n const { key, value } = entry;\n const isCircular = circularCache.indexOf(value) !== -1;\n\n childNodes.push(\n \n );\n }\n });\n\n return childNodes;\n}\n\ninterface Props extends CircularPropsPassedThroughJSONNestedNode {\n data: any;\n nodeType: string;\n nodeTypeIndicator: string;\n createItemString: (data: any, collectionLimit: number) => string;\n expandable: boolean;\n}\n\ninterface State {\n expanded: boolean;\n}\n\nfunction getStateFromProps(props: Props) {\n // calculate individual node expansion if necessary\n const expanded = !props.isCircular\n ? props.shouldExpandNode(props.keyPath, props.data, props.level)\n : false;\n return {\n expanded,\n };\n}\n\nexport default class JSONNestedNode extends React.Component {\n static propTypes = {\n getItemString: PropTypes.func.isRequired,\n nodeTypeIndicator: PropTypes.any,\n nodeType: PropTypes.string.isRequired,\n data: PropTypes.any,\n hideRoot: PropTypes.bool.isRequired,\n createItemString: PropTypes.func.isRequired,\n styling: PropTypes.func.isRequired,\n collectionLimit: PropTypes.number,\n keyPath: PropTypes.arrayOf(\n PropTypes.oneOfType([PropTypes.string, PropTypes.number])\n ).isRequired,\n labelRenderer: PropTypes.func.isRequired,\n shouldExpandNode: PropTypes.func,\n level: PropTypes.number.isRequired,\n sortObjectKeys: PropTypes.oneOfType([PropTypes.func, PropTypes.bool]),\n isCircular: PropTypes.bool,\n expandable: PropTypes.bool,\n };\n\n static defaultProps = {\n data: [],\n circularCache: [],\n level: 0,\n expandable: true,\n };\n\n constructor(props: Props) {\n super(props);\n this.state = getStateFromProps(props);\n }\n\n UNSAFE_componentWillReceiveProps(nextProps: Props) {\n const nextState = getStateFromProps(nextProps);\n if (getStateFromProps(this.props).expanded !== nextState.expanded) {\n this.setState(nextState);\n }\n }\n\n shouldComponentUpdate(nextProps: Props, nextState: State) {\n return (\n !!Object.keys(nextProps).find(\n (key) =>\n key !== 'circularCache' &&\n (key === 'keyPath'\n ? nextProps[key].join('/') !== this.props[key].join('/')\n : nextProps[key as keyof Props] !== this.props[key as keyof Props])\n ) || nextState.expanded !== this.state.expanded\n );\n }\n\n render() {\n const {\n getItemString,\n nodeTypeIndicator,\n nodeType,\n data,\n hideRoot,\n createItemString,\n styling,\n collectionLimit,\n keyPath,\n labelRenderer,\n expandable,\n } = this.props;\n const { expanded } = this.state;\n const renderedChildren =\n expanded || (hideRoot && this.props.level === 0)\n ? renderChildNodes({ ...this.props, level: this.props.level + 1 })\n : null;\n\n const itemType = (\n \n {nodeTypeIndicator}\n \n );\n const renderedItemString = getItemString(\n nodeType,\n data,\n itemType,\n createItemString(data, collectionLimit),\n keyPath\n );\n const stylingArgs = [keyPath, nodeType, expanded, expandable] as const;\n\n return hideRoot ? (\n
  • \n
      \n {renderedChildren}\n
    \n
  • \n ) : (\n
  • \n {expandable && (\n \n )}\n \n {labelRenderer(...stylingArgs)}\n \n \n {renderedItemString}\n \n
      \n {renderedChildren}\n
    \n
  • \n );\n }\n\n handleClick = () => {\n if (this.props.expandable) {\n this.setState({ expanded: !this.state.expanded });\n }\n };\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport objType from './objType';\nimport JSONObjectNode from './JSONObjectNode';\nimport JSONArrayNode from './JSONArrayNode';\nimport JSONIterableNode from './JSONIterableNode';\nimport JSONValueNode from './JSONValueNode';\nimport { CircularPropsPassedThroughJSONNode } from './types';\n\ninterface Props extends CircularPropsPassedThroughJSONNode {\n keyPath: (string | number)[];\n value: any;\n isCustomNode: (value: any) => boolean;\n}\n\nconst JSONNode: React.FunctionComponent = ({\n getItemString,\n keyPath,\n labelRenderer,\n styling,\n value,\n valueRenderer,\n isCustomNode,\n ...rest\n}) => {\n const nodeType = isCustomNode(value) ? 'Custom' : objType(value);\n\n const simpleNodeProps = {\n getItemString,\n key: keyPath[0],\n keyPath,\n labelRenderer,\n nodeType,\n styling,\n value,\n valueRenderer,\n };\n\n const nestedNodeProps = {\n ...rest,\n ...simpleNodeProps,\n data: value,\n isCustomNode,\n };\n\n switch (nodeType) {\n case 'Object':\n case 'Error':\n case 'WeakMap':\n case 'WeakSet':\n return ;\n case 'Array':\n return ;\n case 'Iterable':\n case 'Map':\n case 'Set':\n return ;\n case 'String':\n return (\n `\"${raw}\"`}\n />\n );\n case 'Number':\n return ;\n case 'Boolean':\n return (\n (raw ? 'true' : 'false')}\n />\n );\n case 'Date':\n return (\n raw.toISOString()}\n />\n );\n case 'Null':\n return 'null'} />;\n case 'Undefined':\n return (\n 'undefined'} />\n );\n case 'Function':\n case 'Symbol':\n return (\n raw.toString()}\n />\n );\n case 'Custom':\n return ;\n default:\n return (\n `<${nodeType}>`}\n />\n );\n }\n};\n\nJSONNode.propTypes = {\n getItemString: PropTypes.func.isRequired,\n keyPath: PropTypes.arrayOf(\n PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired\n ).isRequired,\n labelRenderer: PropTypes.func.isRequired,\n styling: PropTypes.func.isRequired,\n value: PropTypes.any,\n valueRenderer: PropTypes.func.isRequired,\n isCustomNode: PropTypes.func.isRequired,\n};\n\nexport default JSONNode;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport JSONNestedNode from './JSONNestedNode';\nimport { CircularPropsPassedThroughJSONNode } from './types';\n\n// Returns the \"n Items\" string for this node,\n// generating and caching it if it hasn't been created yet.\nfunction createItemString(data: any) {\n const len = Object.getOwnPropertyNames(data).length;\n return `${len} ${len !== 1 ? 'keys' : 'key'}`;\n}\n\ninterface Props extends CircularPropsPassedThroughJSONNode {\n data: any;\n nodeType: string;\n}\n\n// Configures to render an Object\nconst JSONObjectNode: React.FunctionComponent = ({ data, ...props }) => (\n 0}\n />\n);\n\nJSONObjectNode.propTypes = {\n data: PropTypes.object,\n nodeType: PropTypes.string.isRequired,\n};\n\nexport default JSONObjectNode;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { JSONValueNodeCircularPropsProvidedByJSONNode } from './types';\n\n/**\n * Renders simple values (eg. strings, numbers, booleans, etc)\n */\n\ninterface Props extends JSONValueNodeCircularPropsProvidedByJSONNode {\n nodeType: string;\n value: any;\n valueGetter?: (value: any) => any;\n}\n\nconst JSONValueNode: React.FunctionComponent = ({\n nodeType,\n styling,\n labelRenderer,\n keyPath,\n valueRenderer,\n value,\n valueGetter = (value) => value,\n}) => (\n
  • \n \n \n {valueRenderer(valueGetter(value), value, ...keyPath)}\n \n
  • \n);\n\nJSONValueNode.propTypes = {\n nodeType: PropTypes.string.isRequired,\n styling: PropTypes.func.isRequired,\n labelRenderer: PropTypes.func.isRequired,\n keyPath: PropTypes.arrayOf(\n PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired\n ).isRequired,\n valueRenderer: PropTypes.func.isRequired,\n value: PropTypes.any,\n valueGetter: PropTypes.func,\n};\n\nexport default JSONValueNode;\n","import {\n Base16Theme,\n createStyling,\n StylingConfig,\n} from 'react-base16-styling';\nimport solarized from './themes/solarized';\n\nconst colorMap = (theme: Base16Theme) => ({\n BACKGROUND_COLOR: theme.base00,\n TEXT_COLOR: theme.base07,\n STRING_COLOR: theme.base0B,\n DATE_COLOR: theme.base0B,\n NUMBER_COLOR: theme.base09,\n BOOLEAN_COLOR: theme.base09,\n NULL_COLOR: theme.base08,\n UNDEFINED_COLOR: theme.base08,\n FUNCTION_COLOR: theme.base08,\n SYMBOL_COLOR: theme.base08,\n LABEL_COLOR: theme.base0D,\n ARROW_COLOR: theme.base0D,\n ITEM_STRING_COLOR: theme.base0B,\n ITEM_STRING_EXPANDED_COLOR: theme.base03,\n});\n\ntype Color = keyof ReturnType;\ntype Colors = {\n [color in Color]: string;\n};\n\nconst valueColorMap = (colors: Colors) => ({\n String: colors.STRING_COLOR,\n Date: colors.DATE_COLOR,\n Number: colors.NUMBER_COLOR,\n Boolean: colors.BOOLEAN_COLOR,\n Null: colors.NULL_COLOR,\n Undefined: colors.UNDEFINED_COLOR,\n Function: colors.FUNCTION_COLOR,\n Symbol: colors.SYMBOL_COLOR,\n});\n\nconst getDefaultThemeStyling = (theme: Base16Theme): StylingConfig => {\n const colors = colorMap(theme);\n\n return {\n tree: {\n border: 0,\n padding: 0,\n marginTop: '0.5em',\n marginBottom: '0.5em',\n marginLeft: '0.125em',\n marginRight: 0,\n listStyle: 'none',\n MozUserSelect: 'none',\n WebkitUserSelect: 'none',\n backgroundColor: colors.BACKGROUND_COLOR,\n },\n\n value: ({ style }, nodeType, keyPath) => ({\n style: {\n ...style,\n paddingTop: '0.25em',\n paddingRight: 0,\n marginLeft: '0.875em',\n WebkitUserSelect: 'text',\n MozUserSelect: 'text',\n wordWrap: 'break-word',\n paddingLeft: (keyPath as unknown[]).length > 1 ? '2.125em' : '1.25em',\n textIndent: '-0.5em',\n wordBreak: 'break-all',\n },\n }),\n\n label: {\n display: 'inline-block',\n color: colors.LABEL_COLOR,\n },\n\n valueLabel: {\n margin: '0 0.5em 0 0',\n },\n\n valueText: ({ style }, nodeType) => ({\n style: {\n ...style,\n color:\n valueColorMap(colors)[\n nodeType as keyof ReturnType\n ],\n },\n }),\n\n itemRange: (styling, expanded) => ({\n style: {\n paddingTop: expanded ? 0 : '0.25em',\n cursor: 'pointer',\n color: colors.LABEL_COLOR,\n },\n }),\n\n arrow: ({ style }, nodeType, expanded) => ({\n style: {\n ...style,\n marginLeft: 0,\n transition: '150ms',\n WebkitTransition: '150ms',\n MozTransition: '150ms',\n WebkitTransform: expanded ? 'rotateZ(90deg)' : 'rotateZ(0deg)',\n MozTransform: expanded ? 'rotateZ(90deg)' : 'rotateZ(0deg)',\n transform: expanded ? 'rotateZ(90deg)' : 'rotateZ(0deg)',\n transformOrigin: '45% 50%',\n WebkitTransformOrigin: '45% 50%',\n MozTransformOrigin: '45% 50%',\n position: 'relative',\n lineHeight: '1.1em',\n fontSize: '0.75em',\n },\n }),\n\n arrowContainer: ({ style }, arrowStyle) => ({\n style: {\n ...style,\n display: 'inline-block',\n paddingRight: '0.5em',\n paddingLeft: arrowStyle === 'double' ? '1em' : 0,\n cursor: 'pointer',\n },\n }),\n\n arrowSign: {\n color: colors.ARROW_COLOR,\n },\n\n arrowSignInner: {\n position: 'absolute',\n top: 0,\n left: '-0.4em',\n },\n\n nestedNode: ({ style }, keyPath, nodeType, expanded, expandable) => ({\n style: {\n ...style,\n position: 'relative',\n paddingTop: '0.25em',\n marginLeft: (keyPath as unknown[]).length > 1 ? '0.875em' : 0,\n paddingLeft: !expandable ? '1.125em' : 0,\n },\n }),\n\n rootNode: {\n padding: 0,\n margin: 0,\n },\n\n nestedNodeLabel: ({ style }, keyPath, nodeType, expanded, expandable) => ({\n style: {\n ...style,\n margin: 0,\n padding: 0,\n WebkitUserSelect: expandable ? 'inherit' : 'text',\n MozUserSelect: expandable ? 'inherit' : 'text',\n cursor: expandable ? 'pointer' : 'default',\n },\n }),\n\n nestedNodeItemString: ({ style }, keyPath, nodeType, expanded) => ({\n style: {\n ...style,\n paddingLeft: '0.5em',\n cursor: 'default',\n color: expanded\n ? colors.ITEM_STRING_EXPANDED_COLOR\n : colors.ITEM_STRING_COLOR,\n },\n }),\n\n nestedNodeItemType: {\n marginLeft: '0.3em',\n marginRight: '0.3em',\n },\n\n nestedNodeChildren: ({ style }, nodeType, expanded) => ({\n style: {\n ...style,\n padding: 0,\n margin: 0,\n listStyle: 'none',\n display: expanded ? 'block' : 'none',\n },\n }),\n\n rootNodeChildren: {\n padding: 0,\n margin: 0,\n listStyle: 'none',\n },\n };\n};\n\nexport default createStyling(getDefaultThemeStyling, {\n defaultBase16: solarized,\n});\n","function getLength(type: string, collection: any) {\n if (type === 'Object') {\n // eslint-disable-next-line @typescript-eslint/ban-types\n return Object.keys(collection as {}).length;\n } else if (type === 'Array') {\n return (collection as unknown[]).length;\n }\n\n return Infinity;\n}\n\nfunction isIterableMap(collection: any) {\n return typeof (collection as Map).set === 'function';\n}\n\nfunction getEntries(\n type: string,\n collection: any,\n sortObjectKeys?: ((a: any, b: any) => number) | boolean | undefined,\n from = 0,\n to = Infinity\n): { entries: { key: string | number; value: any }[]; hasMore?: boolean } {\n let res;\n\n if (type === 'Object') {\n let keys = Object.getOwnPropertyNames(collection);\n\n if (sortObjectKeys) {\n keys.sort(sortObjectKeys === true ? undefined : sortObjectKeys);\n }\n\n keys = keys.slice(from, to + 1);\n\n res = {\n entries: keys.map((key) => ({ key, value: collection[key] })),\n };\n } else if (type === 'Array') {\n res = {\n entries: collection\n .slice(from, to + 1)\n .map((val: unknown, idx: number) => ({ key: idx + from, value: val })),\n };\n } else {\n let idx = 0;\n const entries = [];\n let done = true;\n\n const isMap = isIterableMap(collection);\n\n for (const item of collection) {\n if (idx > to) {\n done = false;\n break;\n }\n if (from <= idx) {\n if (isMap && Array.isArray(item)) {\n if (typeof item[0] === 'string' || typeof item[0] === 'number') {\n entries.push({ key: item[0], value: item[1] });\n } else {\n entries.push({\n key: `[entry ${idx}]`,\n value: {\n '[key]': item[0],\n '[value]': item[1],\n },\n });\n }\n } else {\n entries.push({ key: idx, value: item });\n }\n }\n idx++;\n }\n\n res = {\n hasMore: !done,\n entries,\n };\n }\n\n return res;\n}\n\nfunction getRanges(from: number, to: number, limit: number) {\n const ranges = [];\n while (to - from > limit * limit) {\n limit = limit * limit;\n }\n for (let i = from; i <= to; i += limit) {\n ranges.push({ from: i, to: Math.min(to, i + limit - 1) });\n }\n\n return ranges;\n}\n\nexport default function getCollectionEntries(\n type: string,\n collection: any,\n sortObjectKeys: ((a: any, b: any) => number) | boolean | undefined,\n limit: number,\n from = 0,\n to = Infinity\n) {\n const getEntriesBound = getEntries.bind(\n null,\n type,\n collection,\n sortObjectKeys\n );\n\n if (!limit) {\n return getEntriesBound().entries;\n }\n\n const isSubset = to < Infinity;\n const length = Math.min(to - from, getLength(type, collection));\n\n if (type !== 'Iterable') {\n if (length <= limit || limit < 7) {\n return getEntriesBound(from, to).entries;\n }\n } else {\n if (length <= limit && !isSubset) {\n return getEntriesBound(from, to).entries;\n }\n }\n\n let limitedEntries;\n if (type === 'Iterable') {\n const { hasMore, entries } = getEntriesBound(from, from + limit - 1);\n\n limitedEntries = hasMore\n ? [...entries, ...getRanges(from + limit, from + 2 * limit - 1, limit)]\n : entries;\n } else {\n limitedEntries = isSubset\n ? getRanges(from, to, limit)\n : [\n ...getEntriesBound(0, limit - 5).entries,\n ...getRanges(limit - 4, length - 5, limit),\n ...getEntriesBound(length - 4, length - 1).entries,\n ];\n }\n\n return limitedEntries;\n}\n","// ES6 + inline style port of JSONViewer https://bitbucket.org/davevedder/react-json-viewer/\n// all credits and original code to the author\n// Dave Vedder http://www.eskimospy.com/\n// port by Daniele Zannotti http://www.github.com/dzannotti \n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport JSONNode from './JSONNode';\nimport createStylingFromTheme from './createStylingFromTheme';\nimport {\n invertTheme,\n StylingConfig,\n StylingFunction,\n StylingValue,\n Theme,\n} from 'react-base16-styling';\nimport { CircularPropsPassedThroughJSONTree } from './types';\n\ninterface Props extends CircularPropsPassedThroughJSONTree {\n data: any;\n theme?: Theme;\n invertTheme: boolean;\n}\n\ninterface State {\n styling: StylingFunction;\n}\n\nconst identity = (value: any) => value;\nconst expandRootNode = (\n keyPath: (string | number)[],\n data: any,\n level: number\n) => level === 0;\nconst defaultItemString = (\n type: string,\n data: any,\n itemType: React.ReactNode,\n itemString: string\n) => (\n \n {itemType} {itemString}\n \n);\nconst defaultLabelRenderer = ([label]: (string | number)[]) => (\n {label}:\n);\nconst noCustomNode = () => false;\n\nfunction checkLegacyTheming(theme: Theme | undefined, props: Props) {\n const deprecatedStylingMethodsMap = {\n getArrowStyle: 'arrow',\n getListStyle: 'nestedNodeChildren',\n getItemStringStyle: 'nestedNodeItemString',\n getLabelStyle: 'label',\n getValueStyle: 'valueText',\n };\n\n const deprecatedStylingMethods = Object.keys(\n deprecatedStylingMethodsMap\n ).filter((name) => props[name as keyof Props]);\n\n if (deprecatedStylingMethods.length > 0) {\n if (typeof theme === 'string') {\n theme = {\n extend: theme,\n };\n } else {\n theme = { ...theme };\n }\n\n deprecatedStylingMethods.forEach((name) => {\n // eslint-disable-next-line no-console\n console.error(\n `Styling method \"${name}\" is deprecated, use \"theme\" property instead`\n );\n\n (theme as StylingConfig)[\n deprecatedStylingMethodsMap[\n name as keyof typeof deprecatedStylingMethodsMap\n ]\n ] = ({ style }, ...args) => ({\n style: {\n ...style,\n ...props[name as keyof Props](...args),\n },\n });\n });\n }\n\n return theme;\n}\n\nfunction getStateFromProps(props: Props) {\n let theme = checkLegacyTheming(props.theme, props);\n if (props.invertTheme) {\n theme = invertTheme(theme);\n }\n\n return {\n styling: createStylingFromTheme(theme),\n };\n}\n\nexport default class JSONTree extends React.Component {\n static propTypes = {\n data: PropTypes.any,\n hideRoot: PropTypes.bool,\n theme: PropTypes.oneOfType([PropTypes.object, PropTypes.string]),\n invertTheme: PropTypes.bool,\n keyPath: PropTypes.arrayOf(\n PropTypes.oneOfType([PropTypes.string, PropTypes.number])\n ),\n postprocessValue: PropTypes.func,\n sortObjectKeys: PropTypes.oneOfType([PropTypes.func, PropTypes.bool]),\n };\n\n static defaultProps = {\n shouldExpandNode: expandRootNode,\n hideRoot: false,\n keyPath: ['root'],\n getItemString: defaultItemString,\n labelRenderer: defaultLabelRenderer,\n valueRenderer: identity,\n postprocessValue: identity,\n isCustomNode: noCustomNode,\n collectionLimit: 50,\n invertTheme: true,\n };\n\n constructor(props: Props) {\n super(props);\n this.state = getStateFromProps(props);\n }\n\n UNSAFE_componentWillReceiveProps(nextProps: Props) {\n if (\n ['theme', 'invertTheme'].find(\n (k) => nextProps[k as keyof Props] !== this.props[k as keyof Props]\n )\n ) {\n this.setState(getStateFromProps(nextProps));\n }\n }\n\n shouldComponentUpdate(nextProps: Props) {\n return !!Object.keys(nextProps).find((k) =>\n k === 'keyPath'\n ? nextProps[k].join('/') !== this.props[k].join('/')\n : nextProps[k as keyof Props] !== this.props[k as keyof Props]\n );\n }\n\n render() {\n const {\n data: value,\n keyPath,\n postprocessValue,\n hideRoot,\n theme, // eslint-disable-line no-unused-vars\n invertTheme: _, // eslint-disable-line no-unused-vars\n ...rest\n } = this.props;\n\n const { styling } = this.state;\n\n return (\n
      \n \n
    \n );\n }\n}\n\nexport { StylingValue };\n","export default function objType(obj: any) {\n const type = Object.prototype.toString.call(obj).slice(8, -1);\n if (type === 'Object' && typeof obj[Symbol.iterator] === 'function') {\n return 'Iterable';\n }\n\n if (\n type === 'Custom' &&\n obj.constructor !== Object &&\n obj instanceof Object\n ) {\n // For projects implementing objects overriding `.prototype[Symbol.toStringTag]`\n return 'Object';\n }\n\n return type;\n}\n","export default {\n scheme: 'solarized',\n author: 'ethan schoonover (http://ethanschoonover.com/solarized)',\n base00: '#002b36',\n base01: '#073642',\n base02: '#586e75',\n base03: '#657b83',\n base04: '#839496',\n base05: '#93a1a1',\n base06: '#eee8d5',\n base07: '#fdf6e3',\n base08: '#dc322f',\n base09: '#cb4b16',\n base0A: '#b58900',\n base0B: '#859900',\n base0C: '#2aa198',\n base0D: '#268bd2',\n base0E: '#6c71c4',\n base0F: '#d33682',\n};\n","'use strict';\n\nvar isArrayish = require('is-arrayish');\n\nvar concat = Array.prototype.concat;\nvar slice = Array.prototype.slice;\n\nvar swizzle = module.exports = function swizzle(args) {\n\tvar results = [];\n\n\tfor (var i = 0, len = args.length; i < len; i++) {\n\t\tvar arg = args[i];\n\n\t\tif (isArrayish(arg)) {\n\t\t\t// http://jsperf.com/javascript-array-concat-vs-push/98\n\t\t\tresults = concat.call(results, slice.call(arg));\n\t\t} else {\n\t\t\tresults.push(arg);\n\t\t}\n\t}\n\n\treturn results;\n};\n\nswizzle.wrap = function (fn) {\n\treturn function () {\n\t\treturn fn(swizzle(arguments));\n\t};\n};\n","module.exports = function isArrayish(obj) {\n\tif (!obj || typeof obj === 'string') {\n\t\treturn false;\n\t}\n\n\treturn obj instanceof Array || Array.isArray(obj) ||\n\t\t(obj.length >= 0 && (obj.splice instanceof Function ||\n\t\t\t(Object.getOwnPropertyDescriptor(obj, (obj.length - 1)) && obj.constructor.name !== 'String')));\n};\n"],"names":["exports","__esModule","scheme","author","base00","base01","base02","base03","base04","base05","base06","base07","base08","base09","base0A","base0B","base0C","base0D","base0E","base0F","module","_interopRequire","obj","_threezerotwofour","threezerotwofour","_apathy","apathy","_ashes","ashes","_atelierDune","atelierDune","_atelierForest","atelierForest","_atelierHeath","atelierHeath","_atelierLakeside","atelierLakeside","_atelierSeaside","atelierSeaside","_bespin","bespin","_brewer","brewer","_bright","bright","_chalk","chalk","_codeschool","codeschool","_colors","colors","_default","_eighties","eighties","_embers","embers","_flat","flat","_google","google","_grayscale","grayscale","_greenscreen","greenscreen","_harmonic","harmonic","_hopscotch","hopscotch","_isotope","isotope","_marrakesh","marrakesh","_mocha","mocha","_monokai","monokai","_ocean","ocean","_paraiso","paraiso","_pop","pop","_railscasts","railscasts","_shapeshifter","shapeshifter","_solarized","solarized","_summerfruit","summerfruit","_tomorrow","tomorrow","_tube","tube","_twilight","twilight","cssKeywords","reverseKeywords","key","hasOwnProperty","convert","rgb","channels","labels","hsl","hsv","hwb","cmyk","xyz","lab","lch","hex","keyword","ansi16","ansi256","hcg","apple","gray","model","Error","length","Object","defineProperty","value","h","l","r","g","b","min","Math","max","delta","rdif","gdif","bdif","s","v","diff","diffc","c","k","reversed","currentClosestKeyword","x","y","currentClosestDistance","Infinity","distance","pow","z","t1","t2","t3","val","i","smin","lmin","hi","floor","f","p","q","t","sl","vmin","n","wh","bl","ratio","m","y2","x2","z2","a","atan2","PI","sqrt","hr","cos","sin","args","arguments","round","ansi","color","mult","rem","string","toString","toUpperCase","substring","match","colorString","split","map","char","join","integer","parseInt","hue","chroma","mg","pure","w","conversions","route","keys","forEach","fromModel","routes","toModel","fn","wrappedFn","Array","prototype","slice","call","result","len","conversion","wrapRounded","raw","wrapRaw","link","from","to","wrapConversion","graph","path","parent","cur","unshift","models","buildGraph","queue","current","adjacents","adjacent","node","deriveBFS","colorNames","swizzle","reverseNames","create","name","cs","get","clamp","num","hexDouble","str","toLowerCase","hexAlpha","i2","parseFloat","alpha","isNaN","rgba","percent","hsla","hwba","_slice","skippedModels","hashedModelKeys","sort","limiters","Color","this","valpha","newArr","zeroArray","splice","indexOf","hashedKeys","JSON","stringify","push","limit","freeze","getset","channel","modifier","isArray","maxfn","assertArray","arr","toJSON","places","self","concat","percentString","array","object","unitArray","unitObject","Number","toFixed","roundTo","roundToPlace","red","green","blue","saturationl","lightness","saturationv","white","wblack","cyan","magenta","yellow","black","rgbNumber","luminosity","lum","chan","contrast","color2","lum1","lum2","level","contrastRatio","isDark","isLight","negate","lighten","darken","saturate","desaturate","whiten","blacken","fade","opaquer","rotate","degrees","mix","mixinColor","weight","color1","undefined","w1","w2","newAlpha","PLACEHOLDER","wrapFlags","reTrim","reWrapComment","reWrapDetails","reSplitDetails","reIsBadHex","reIsBinary","reIsHostCtor","reIsOctal","reIsUint","freeParseInt","freeGlobal","freeSelf","root","Function","apply","func","thisArg","baseIsNaN","countHolders","placeholder","replaceHolders","index","resIndex","uid","funcProto","objectProto","coreJsData","maskSrcKey","exec","IE_PROTO","funcToString","objectToString","reIsNative","RegExp","replace","objectCreate","nativeMax","nativeMin","getNative","baseCreate","proto","isObject","composeArgs","partials","holders","isCurried","argsIndex","argsLength","holdersLength","leftIndex","leftLength","rangeLength","isUncurried","composeArgsRight","holdersIndex","rightIndex","rightLength","offset","createCtor","Ctor","thisBinding","createHybrid","bitmask","partialsRight","holdersRight","argPos","ary","arity","isAry","isBind","isBindKey","isFlip","wrapper","getHolder","holdersCount","newHolders","createRecurry","reorder","reverse","wrapFunc","isCurry","setWrapToString","getValue","isMasked","pattern","tag","isFunction","e","isHostObject","test","toSource","baseIsNative","getWrapDetails","source","insertWrapDetails","details","lastIndex","isIndex","indexes","arrLength","oldArray","copyArray","reference","updateWrapDetails","iteratee","pair","fromIndex","predicate","fromRight","baseFindIndex","baseIndexOf","arrayIncludes","arrayEach","curry","guard","TypeError","toInteger","newData","createCurry","createPartial","createBind","createWrap","type","isObjectLike","isSymbol","other","valueOf","isBinary","toNumber","toFinite","remainder","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","props","propName","componentName","location","propFullName","secret","err","getShim","isRequired","ReactPropTypes","bigint","bool","number","symbol","any","arrayOf","element","elementType","instanceOf","objectOf","oneOf","oneOfType","shape","exact","checkPropTypes","PropTypes","yuv","u","DEFAULT_BASE16","base16","BASE16_KEYS","merger","styling","prevStyling","className","filter","Boolean","style","mergeStylings","customStylings","defaultStylings","reduce","mergedStyling","customStyling","defaultStyling","customType","defaultType","mergeStyling","getStylingByKeys","styles","invertBase16Theme","base16Theme","hexString","flippedYuv","rgb2yuv","yuv2rgb","createStyling","getStylingFromBase16","options","themeOrStyling","defaultBase16","base16Themes","getBase16Theme","theme","isStylingConfig","extend","themeName","ItemRange","setState","expanded","state","renderChildNodes","nodeType","onClick","handleClick","arrowStyle","React","Component","createItemString","data","JSONArrayNode","nodeTypeIndicator","expandable","propTypes","JSONArrow","defaultProps","count","hasMore","isSafeInteger","size","collectionLimit","circularCache","keyPath","postprocessValue","sortObjectKeys","childNodes","entry","isCircular","hideRoot","getStateFromProps","shouldExpandNode","JSONNestedNode","nextProps","nextState","find","getItemString","labelRenderer","renderedChildren","renderedItemString","stylingArgs","JSONNode","valueRenderer","isCustomNode","rest","simpleNodeProps","nestedNodeProps","valueGetter","toISOString","getOwnPropertyNames","JSONObjectNode","JSONValueNode","valueColorMap","String","STRING_COLOR","Date","DATE_COLOR","NUMBER_COLOR","BOOLEAN_COLOR","Null","NULL_COLOR","Undefined","UNDEFINED_COLOR","FUNCTION_COLOR","Symbol","SYMBOL_COLOR","BACKGROUND_COLOR","TEXT_COLOR","LABEL_COLOR","ARROW_COLOR","ITEM_STRING_COLOR","ITEM_STRING_EXPANDED_COLOR","colorMap","tree","border","padding","marginTop","marginBottom","marginLeft","marginRight","listStyle","MozUserSelect","WebkitUserSelect","backgroundColor","paddingTop","paddingRight","wordWrap","paddingLeft","textIndent","wordBreak","label","display","valueLabel","margin","valueText","itemRange","cursor","arrow","transition","WebkitTransition","MozTransition","WebkitTransform","MozTransform","transform","transformOrigin","WebkitTransformOrigin","MozTransformOrigin","position","lineHeight","fontSize","arrowContainer","arrowSign","arrowSignInner","top","left","nestedNode","rootNode","nestedNodeLabel","nestedNodeItemString","nestedNodeItemType","nestedNodeChildren","rootNodeChildren","getLength","collection","isIterableMap","set","getEntries","res","entries","idx","done","isMap","item","getRanges","ranges","getEntriesBound","bind","limitedEntries","isSubset","identity","deprecatedStylingMethodsMap","getArrowStyle","getListStyle","getItemStringStyle","getLabelStyle","getValueStyle","deprecatedStylingMethods","console","error","checkLegacyTheming","invertTheme","JSONTree","itemType","itemString","iterator","constructor","isArrayish","results","arg","wrap","getOwnPropertyDescriptor"],"sourceRoot":""} \ No newline at end of file diff --git a/_static/build/4658.090d4a9.js b/_static/build/4658.090d4a9.js new file mode 100644 index 0000000..cc5827b --- /dev/null +++ b/_static/build/4658.090d4a9.js @@ -0,0 +1,3 @@ +/*! For license information please see 4658.090d4a9.js.LICENSE.txt */ +(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[4658],{11527:e=>{e.exports={$schema:"http://json-schema.org/draft-07/schema#",$id:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#",description:"Meta-schema for $data reference (JSON Schema extension proposal)",type:"object",required:["$data"],properties:{$data:{type:"string",anyOf:[{format:"relative-json-pointer"},{format:"json-pointer"}]}},additionalProperties:!1}},62033:e=>{e.exports={$schema:"http://json-schema.org/draft-07/schema#",$id:"http://json-schema.org/draft-07/schema#",title:"Core schema meta-schema",definitions:{schemaArray:{type:"array",minItems:1,items:{$ref:"#"}},nonNegativeInteger:{type:"integer",minimum:0},nonNegativeIntegerDefault0:{allOf:[{$ref:"#/definitions/nonNegativeInteger"},{default:0}]},simpleTypes:{enum:["array","boolean","integer","null","number","object","string"]},stringArray:{type:"array",items:{type:"string"},uniqueItems:!0,default:[]}},type:["object","boolean"],properties:{$id:{type:"string",format:"uri-reference"},$schema:{type:"string",format:"uri"},$ref:{type:"string",format:"uri-reference"},$comment:{type:"string"},title:{type:"string"},description:{type:"string"},default:!0,readOnly:{type:"boolean",default:!1},examples:{type:"array",items:!0},multipleOf:{type:"number",exclusiveMinimum:0},maximum:{type:"number"},exclusiveMaximum:{type:"number"},minimum:{type:"number"},exclusiveMinimum:{type:"number"},maxLength:{$ref:"#/definitions/nonNegativeInteger"},minLength:{$ref:"#/definitions/nonNegativeIntegerDefault0"},pattern:{type:"string",format:"regex"},additionalItems:{$ref:"#"},items:{anyOf:[{$ref:"#"},{$ref:"#/definitions/schemaArray"}],default:!0},maxItems:{$ref:"#/definitions/nonNegativeInteger"},minItems:{$ref:"#/definitions/nonNegativeIntegerDefault0"},uniqueItems:{type:"boolean",default:!1},contains:{$ref:"#"},maxProperties:{$ref:"#/definitions/nonNegativeInteger"},minProperties:{$ref:"#/definitions/nonNegativeIntegerDefault0"},required:{$ref:"#/definitions/stringArray"},additionalProperties:{$ref:"#"},definitions:{type:"object",additionalProperties:{$ref:"#"},default:{}},properties:{type:"object",additionalProperties:{$ref:"#"},default:{}},patternProperties:{type:"object",additionalProperties:{$ref:"#"},propertyNames:{format:"regex"},default:{}},dependencies:{type:"object",additionalProperties:{anyOf:[{$ref:"#"},{$ref:"#/definitions/stringArray"}]}},propertyNames:{$ref:"#"},const:!0,enum:{type:"array",items:!0,minItems:1,uniqueItems:!0},type:{anyOf:[{$ref:"#/definitions/simpleTypes"},{type:"array",items:{$ref:"#/definitions/simpleTypes"},minItems:1,uniqueItems:!0}]},format:{type:"string"},contentMediaType:{type:"string"},contentEncoding:{type:"string"},if:{$ref:"#"},then:{$ref:"#"},else:{$ref:"#"},allOf:{$ref:"#/definitions/schemaArray"},anyOf:{$ref:"#/definitions/schemaArray"},oneOf:{$ref:"#/definitions/schemaArray"},not:{$ref:"#"}},default:!0}},84658:(e,r,t)=>{"use strict";var a=t(97776),s=t(32464),o=t(1837),i=t(30859),n=t(38377),l=t(17398),c=t(95157),u=t(55026),h=t(16626);e.exports=y,y.prototype.validate=function(e,r){var t;if("string"==typeof e){if(!(t=this.getSchema(e)))throw new Error('no schema with key or ref "'+e+'"')}else{var a=this._addSchema(e);t=a.validate||this._compile(a)}var s=t(r);return!0!==t.$async&&(this.errors=t.errors),s},y.prototype.compile=function(e,r){var t=this._addSchema(e,void 0,r);return t.validate||this._compile(t)},y.prototype.addSchema=function(e,r,t,a){if(Array.isArray(e)){for(var o=0;o{"use strict";var r=e.exports=function(){this._cache={}};r.prototype.put=function(e,r){this._cache[e]=r},r.prototype.get=function(e){return this._cache[e]},r.prototype.del=function(e){delete this._cache[e]},r.prototype.clear=function(){this._cache={}}},2680:(e,r,t)=>{"use strict";var a=t(88270).MissingRef;e.exports=function e(r,t,s){var o=this;if("function"!=typeof this._opts.loadSchema)throw new Error("options.loadSchema should be a function");"function"==typeof t&&(s=t,t=void 0);var i=n(r).then((function(){var e=o._addSchema(r,void 0,t);return e.validate||l(e)}));return s&&i.then((function(e){s(null,e)}),s),i;function n(r){var t=r.$schema;return t&&!o.getSchema(t)?e.call(o,{$ref:t},!0):Promise.resolve()}function l(e){try{return o._compile(e)}catch(r){if(r instanceof a)return function(r){var a=r.missingSchema;if(c(a))throw new Error("Schema "+a+" is loaded but "+r.missingRef+" cannot be resolved");var s=o._loadingSchemas[a];return s||(s=o._loadingSchemas[a]=o._opts.loadSchema(a)).then(i,i),s.then((function(e){if(!c(a))return n(e).then((function(){c(a)||o.addSchema(e,a,void 0,t)}))})).then((function(){return l(e)}));function i(){delete o._loadingSchemas[a]}function c(e){return o._refs[e]||o._schemas[e]}}(r);throw r}}}},88270:(e,r,t)=>{"use strict";var a=t(32464);function s(e,r,t){this.message=t||s.message(e,r),this.missingRef=a.url(e,r),this.missingSchema=a.normalizeId(a.fullPath(this.missingRef))}function o(e){return e.prototype=Object.create(Error.prototype),e.prototype.constructor=e,e}e.exports={Validation:o((function(e){this.message="validation failed",this.errors=e,this.ajv=this.validation=!0})),MissingRef:o(s)},s.message=function(e,r){return"can't resolve reference "+r+" from id "+e}},17398:(e,r,t)=>{"use strict";var a=t(16626),s=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,o=[0,31,28,31,30,31,30,31,31,30,31,30,31],i=/^(\d\d):(\d\d):(\d\d)(\.\d+)?(z|[+-]\d\d(?::?\d\d)?)?$/i,n=/^(?=.{1,253}\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\.?$/i,l=/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\?(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,c=/^(?:(?:[^\x00-\x20"'<>%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i,u=/^(?:(?:http[s\u017F]?|ftp):\/\/)(?:(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+(?::(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*)?@)?(?:(?!10(?:\.[0-9]{1,3}){3})(?!127(?:\.[0-9]{1,3}){3})(?!169\.254(?:\.[0-9]{1,3}){2})(?!192\.168(?:\.[0-9]{1,3}){2})(?!172\.(?:1[6-9]|2[0-9]|3[01])(?:\.[0-9]{1,3}){2})(?:[1-9][0-9]?|1[0-9][0-9]|2[01][0-9]|22[0-3])(?:\.(?:1?[0-9]{1,2}|2[0-4][0-9]|25[0-5])){2}(?:\.(?:[1-9][0-9]?|1[0-9][0-9]|2[0-4][0-9]|25[0-4]))|(?:(?:(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+-)*(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+)(?:\.(?:(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+-)*(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+)*(?:\.(?:(?:[a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]){2,})))(?::[0-9]{2,5})?(?:\/(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*)?$/i,h=/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,d=/^(?:\/(?:[^~/]|~0|~1)*)*$/,p=/^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i,f=/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/;function m(e){return e="full"==e?"full":"fast",a.copy(m[e])}function v(e){var r=e.match(s);if(!r)return!1;var t=+r[1],a=+r[2],i=+r[3];return a>=1&&a<=12&&i>=1&&i<=(2==a&&function(e){return e%4==0&&(e%100!=0||e%400==0)}(t)?29:o[a])}function y(e,r){var t=e.match(i);if(!t)return!1;var a=t[1],s=t[2],o=t[3],n=t[5];return(a<=23&&s<=59&&o<=59||23==a&&59==s&&60==o)&&(!r||n)}e.exports=m,m.fast={date:/^\d\d\d\d-[0-1]\d-[0-3]\d$/,time:/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,"date-time":/^\d\d\d\d-[0-1]\d-[0-3]\d[t\s](?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,uri:/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/)?[^\s]*$/i,"uri-reference":/^(?:(?:[a-z][a-z0-9+\-.]*:)?\/?\/)?(?:[^\\\s#][^\s#]*)?(?:#[^\\\s]*)?$/i,"uri-template":c,url:u,email:/^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i,hostname:n,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,ipv6:/^\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(?:%.+)?\s*$/i,regex:w,uuid:h,"json-pointer":d,"json-pointer-uri-fragment":p,"relative-json-pointer":f},m.full={date:v,time:y,"date-time":function(e){var r=e.split(g);return 2==r.length&&v(r[0])&&y(r[1],!0)},uri:function(e){return P.test(e)&&l.test(e)},"uri-reference":/^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,"uri-template":c,url:u,email:/^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,hostname:n,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,ipv6:/^\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(?:%.+)?\s*$/i,regex:w,uuid:h,"json-pointer":d,"json-pointer-uri-fragment":p,"relative-json-pointer":f};var g=/t|\s/i,P=/\/|:/,E=/[^\\]\\Z/;function w(e){if(E.test(e))return!1;try{return new RegExp(e),!0}catch(e){return!1}}},97776:(e,r,t)=>{"use strict";var a=t(32464),s=t(16626),o=t(88270),i=t(38377),n=t(87176),l=s.ucs2length,c=t(64351),u=o.Validation;function h(e,r,t){var a=p.call(this,e,r,t);return a>=0?{index:a,compiling:!0}:(a=this._compilations.length,this._compilations[a]={schema:e,root:r,baseId:t},{index:a,compiling:!1})}function d(e,r,t){var a=p.call(this,e,r,t);a>=0&&this._compilations.splice(a,1)}function p(e,r,t){for(var a=0;a{"use strict";var a=t(80782),s=t(64351),o=t(16626),i=t(30859),n=t(9125);function l(e,r,t){var a=this._refs[t];if("string"==typeof a){if(!this._refs[a])return l.call(this,e,r,a);a=this._refs[a]}if((a=a||this._schemas[t])instanceof i)return f(a.schema,this._opts.inlineRefs)?a.schema:a.validate||this._compile(a);var s,o,n,u=c.call(this,r,t);return u&&(s=u.schema,r=u.root,n=u.baseId),s instanceof i?o=s.validate||e.call(this,s.schema,r,void 0,n):void 0!==s&&(o=f(s,this._opts.inlineRefs)?s:e.call(this,s,r,void 0,n)),o}function c(e,r){var t=a.parse(r),s=g(t),o=y(this._getId(e.schema));if(0===Object.keys(e.schema).length||s!==o){var n=E(s),l=this._refs[n];if("string"==typeof l)return u.call(this,e,l,t);if(l instanceof i)l.validate||this._compile(l),e=l;else{if(!((l=this._schemas[n])instanceof i))return;if(l.validate||this._compile(l),n==E(r))return{schema:l,root:e,baseId:o};e=l}if(!e.schema)return;o=y(this._getId(e.schema))}return d.call(this,t,o,e.schema,e)}function u(e,r,t){var a=c.call(this,e,r);if(a){var s=a.schema,o=a.baseId;e=a.root;var i=this._getId(s);return i&&(o=w(o,i)),d.call(this,t,o,s,e)}}e.exports=l,l.normalizeId=E,l.fullPath=y,l.url=w,l.ids=function(e){var r=E(this._getId(e)),t={"":r},i={"":y(r,!1)},l={},c=this;return n(e,{allKeys:!0},(function(e,r,n,u,h,d,p){if(""!==r){var f=c._getId(e),m=t[u],v=i[u]+"/"+h;if(void 0!==p&&(v+="/"+("number"==typeof p?p:o.escapeFragment(p))),"string"==typeof f){f=m=E(m?a.resolve(m,f):f);var y=c._refs[f];if("string"==typeof y&&(y=c._refs[y]),y&&y.schema){if(!s(e,y.schema))throw new Error('id "'+f+'" resolves to more than one schema')}else if(f!=E(v))if("#"==f[0]){if(l[f]&&!s(e,l[f]))throw new Error('id "'+f+'" resolves to more than one schema');l[f]=e}else c._refs[f]=v}t[r]=m,i[r]=v}})),l},l.inlineRef=f,l.schema=c;var h=o.toHash(["properties","patternProperties","enum","dependencies","definitions"]);function d(e,r,t,a){if(e.fragment=e.fragment||"","/"==e.fragment.slice(0,1)){for(var s=e.fragment.split("/"),i=1;i{"use strict";var a=t(18122),s=t(16626).toHash;e.exports=function(){var e=[{type:"number",rules:[{maximum:["exclusiveMaximum"]},{minimum:["exclusiveMinimum"]},"multipleOf","format"]},{type:"string",rules:["maxLength","minLength","pattern","format"]},{type:"array",rules:["maxItems","minItems","items","contains","uniqueItems"]},{type:"object",rules:["maxProperties","minProperties","required","dependencies","propertyNames",{properties:["additionalProperties","patternProperties"]}]},{rules:["$ref","const","enum","not","anyOf","oneOf","allOf","if"]}],r=["type","$comment"];return e.all=s(r),e.types=s(["number","integer","string","array","object","boolean","null"]),e.forEach((function(t){t.rules=t.rules.map((function(t){var s;if("object"==typeof t){var o=Object.keys(t)[0];s=t[o],t=o,s.forEach((function(t){r.push(t),e.all[t]=!0}))}return r.push(t),e.all[t]={keyword:t,code:a[t],implements:s}})),e.all.$comment={keyword:"$comment",code:a.$comment},t.type&&(e.types[t.type]=t)})),e.keywords=s(r.concat(["$schema","$id","id","$data","$async","title","description","default","definitions","examples","readOnly","writeOnly","contentMediaType","contentEncoding","additionalItems","then","else"])),e.custom={},e}},30859:(e,r,t)=>{"use strict";var a=t(16626);e.exports=function(e){a.copy(e,this)}},77968:e=>{"use strict";e.exports=function(e){for(var r,t=0,a=e.length,s=0;s=55296&&r<=56319&&s{"use strict";function a(e,r,t,a){var s=a?" !== ":" === ",o=a?" || ":" && ",i=a?"!":"",n=a?"":"!";switch(e){case"null":return r+s+"null";case"array":return i+"Array.isArray("+r+")";case"object":return"("+i+r+o+"typeof "+r+s+'"object"'+o+n+"Array.isArray("+r+"))";case"integer":return"(typeof "+r+s+'"number"'+o+n+"("+r+" % 1)"+o+r+s+r+(t?o+i+"isFinite("+r+")":"")+")";case"number":return"(typeof "+r+s+'"'+e+'"'+(t?o+i+"isFinite("+r+")":"")+")";default:return"typeof "+r+s+'"'+e+'"'}}e.exports={copy:function(e,r){for(var t in r=r||{},e)r[t]=e[t];return r},checkDataType:a,checkDataTypes:function(e,r,t){if(1===e.length)return a(e[0],r,t,!0);var s="",i=o(e);for(var n in i.array&&i.object&&(s=i.null?"(":"(!"+r+" || ",s+="typeof "+r+' !== "object")',delete i.null,delete i.array,delete i.object),i.number&&delete i.integer,i)s+=(s?" && ":"")+a(n,r,t,!0);return s},coerceToTypes:function(e,r){if(Array.isArray(r)){for(var t=[],a=0;a=r)throw new Error("Cannot access property/index "+a+" levels up, current level is "+r);return t[r-a]}if(a>r)throw new Error("Cannot access data "+a+" levels up, current level is "+r);if(o="data"+(r-a||""),!s)return o}for(var n=o,c=s.split("/"),u=0;u{"use strict";var r=["multipleOf","maximum","exclusiveMaximum","minimum","exclusiveMinimum","maxLength","minLength","pattern","additionalItems","maxItems","minItems","uniqueItems","maxProperties","minProperties","required","additionalProperties","enum","format","const"];e.exports=function(e,t){for(var a=0;a{"use strict";var a=t(62033);e.exports={$id:"https://github.com/ajv-validator/ajv/blob/master/lib/definition_schema.js",definitions:{simpleTypes:a.definitions.simpleTypes},type:"object",dependencies:{schema:["validate"],$data:["validate"],statements:["inline"],valid:{not:{required:["macro"]}}},properties:{type:a.properties.type,schema:{type:"boolean"},statements:{type:"boolean"},dependencies:{type:"array",items:{type:"string"}},metaSchema:{type:"object"},modifying:{type:"boolean"},valid:{type:"boolean"},$data:{type:"boolean"},async:{type:"boolean"},errors:{anyOf:[{type:"boolean"},{const:"full"}]}}}},41428:e=>{"use strict";e.exports=function(e,r,t){var a,s=" ",o=e.level,i=e.dataLevel,n=e.schema[r],l=e.schemaPath+e.util.getProperty(r),c=e.errSchemaPath+"/"+r,u=!e.opts.allErrors,h="data"+(i||""),d=e.opts.$data&&n&&n.$data;d?(s+=" var schema"+o+" = "+e.util.getData(n.$data,i,e.dataPathArr)+"; ",a="schema"+o):a=n;var p="maximum"==r,f=p?"exclusiveMaximum":"exclusiveMinimum",m=e.schema[f],v=e.opts.$data&&m&&m.$data,y=p?"<":">",g=p?">":"<",P=void 0;if(!d&&"number"!=typeof n&&void 0!==n)throw new Error(r+" must be number");if(!v&&void 0!==m&&"number"!=typeof m&&"boolean"!=typeof m)throw new Error(f+" must be number or boolean");if(v){var E,w=e.util.getData(m.$data,i,e.dataPathArr),b="exclusive"+o,S="exclType"+o,_="exclIsNumber"+o,F="' + "+($="op"+o)+" + '";s+=" var schemaExcl"+o+" = "+w+"; ",s+=" var "+b+"; var "+S+" = typeof "+(w="schemaExcl"+o)+"; if ("+S+" != 'boolean' && "+S+" != 'undefined' && "+S+" != 'number') { ",P=f,(E=E||[]).push(s),s="",!1!==e.createErrors?(s+=" { keyword: '"+(P||"_exclusiveLimit")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: {} ",!1!==e.opts.messages&&(s+=" , message: '"+f+" should be boolean' "),e.opts.verbose&&(s+=" , schema: validate.schema"+l+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),s+=" } "):s+=" {} ";var R=s;s=E.pop(),!e.compositeRule&&u?e.async?s+=" throw new ValidationError(["+R+"]); ":s+=" validate.errors = ["+R+"]; return false; ":s+=" var err = "+R+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+=" } else if ( ",d&&(s+=" ("+a+" !== undefined && typeof "+a+" != 'number') || "),s+=" "+S+" == 'number' ? ( ("+b+" = "+a+" === undefined || "+w+" "+y+"= "+a+") ? "+h+" "+g+"= "+w+" : "+h+" "+g+" "+a+" ) : ( ("+b+" = "+w+" === true) ? "+h+" "+g+"= "+a+" : "+h+" "+g+" "+a+" ) || "+h+" !== "+h+") { var op"+o+" = "+b+" ? '"+y+"' : '"+y+"='; ",void 0===n&&(P=f,c=e.errSchemaPath+"/"+f,a=w,d=v)}else if(F=y,(_="number"==typeof m)&&d){var $="'"+F+"'";s+=" if ( ",d&&(s+=" ("+a+" !== undefined && typeof "+a+" != 'number') || "),s+=" ( "+a+" === undefined || "+m+" "+y+"= "+a+" ? "+h+" "+g+"= "+m+" : "+h+" "+g+" "+a+" ) || "+h+" !== "+h+") { "}else _&&void 0===n?(b=!0,P=f,c=e.errSchemaPath+"/"+f,a=m,g+="="):(_&&(a=Math[p?"min":"max"](m,n)),m===(!_||a)?(b=!0,P=f,c=e.errSchemaPath+"/"+f,g+="="):(b=!1,F+="=")),$="'"+F+"'",s+=" if ( ",d&&(s+=" ("+a+" !== undefined && typeof "+a+" != 'number') || "),s+=" "+h+" "+g+" "+a+" || "+h+" !== "+h+") { ";return P=P||r,(E=E||[]).push(s),s="",!1!==e.createErrors?(s+=" { keyword: '"+(P||"_limit")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { comparison: "+$+", limit: "+a+", exclusive: "+b+" } ",!1!==e.opts.messages&&(s+=" , message: 'should be "+F+" ",s+=d?"' + "+a:a+"'"),e.opts.verbose&&(s+=" , schema: ",s+=d?"validate.schema"+l:""+n,s+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),s+=" } "):s+=" {} ",R=s,s=E.pop(),!e.compositeRule&&u?e.async?s+=" throw new ValidationError(["+R+"]); ":s+=" validate.errors = ["+R+"]; return false; ":s+=" var err = "+R+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+=" } ",u&&(s+=" else { "),s}},93747:e=>{"use strict";e.exports=function(e,r,t){var a,s=" ",o=e.level,i=e.dataLevel,n=e.schema[r],l=e.schemaPath+e.util.getProperty(r),c=e.errSchemaPath+"/"+r,u=!e.opts.allErrors,h="data"+(i||""),d=e.opts.$data&&n&&n.$data;if(d?(s+=" var schema"+o+" = "+e.util.getData(n.$data,i,e.dataPathArr)+"; ",a="schema"+o):a=n,!d&&"number"!=typeof n)throw new Error(r+" must be number");s+="if ( ",d&&(s+=" ("+a+" !== undefined && typeof "+a+" != 'number') || "),s+=" "+h+".length "+("maxItems"==r?">":"<")+" "+a+") { ";var p=r,f=f||[];f.push(s),s="",!1!==e.createErrors?(s+=" { keyword: '"+(p||"_limitItems")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { limit: "+a+" } ",!1!==e.opts.messages&&(s+=" , message: 'should NOT have ",s+="maxItems"==r?"more":"fewer",s+=" than ",s+=d?"' + "+a+" + '":""+n,s+=" items' "),e.opts.verbose&&(s+=" , schema: ",s+=d?"validate.schema"+l:""+n,s+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),s+=" } "):s+=" {} ";var m=s;return s=f.pop(),!e.compositeRule&&u?e.async?s+=" throw new ValidationError(["+m+"]); ":s+=" validate.errors = ["+m+"]; return false; ":s+=" var err = "+m+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+="} ",u&&(s+=" else { "),s}},12530:e=>{"use strict";e.exports=function(e,r,t){var a,s=" ",o=e.level,i=e.dataLevel,n=e.schema[r],l=e.schemaPath+e.util.getProperty(r),c=e.errSchemaPath+"/"+r,u=!e.opts.allErrors,h="data"+(i||""),d=e.opts.$data&&n&&n.$data;if(d?(s+=" var schema"+o+" = "+e.util.getData(n.$data,i,e.dataPathArr)+"; ",a="schema"+o):a=n,!d&&"number"!=typeof n)throw new Error(r+" must be number");var p="maxLength"==r?">":"<";s+="if ( ",d&&(s+=" ("+a+" !== undefined && typeof "+a+" != 'number') || "),!1===e.opts.unicode?s+=" "+h+".length ":s+=" ucs2length("+h+") ",s+=" "+p+" "+a+") { ";var f=r,m=m||[];m.push(s),s="",!1!==e.createErrors?(s+=" { keyword: '"+(f||"_limitLength")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { limit: "+a+" } ",!1!==e.opts.messages&&(s+=" , message: 'should NOT be ",s+="maxLength"==r?"longer":"shorter",s+=" than ",s+=d?"' + "+a+" + '":""+n,s+=" characters' "),e.opts.verbose&&(s+=" , schema: ",s+=d?"validate.schema"+l:""+n,s+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),s+=" } "):s+=" {} ";var v=s;return s=m.pop(),!e.compositeRule&&u?e.async?s+=" throw new ValidationError(["+v+"]); ":s+=" validate.errors = ["+v+"]; return false; ":s+=" var err = "+v+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+="} ",u&&(s+=" else { "),s}},64803:e=>{"use strict";e.exports=function(e,r,t){var a,s=" ",o=e.level,i=e.dataLevel,n=e.schema[r],l=e.schemaPath+e.util.getProperty(r),c=e.errSchemaPath+"/"+r,u=!e.opts.allErrors,h="data"+(i||""),d=e.opts.$data&&n&&n.$data;if(d?(s+=" var schema"+o+" = "+e.util.getData(n.$data,i,e.dataPathArr)+"; ",a="schema"+o):a=n,!d&&"number"!=typeof n)throw new Error(r+" must be number");s+="if ( ",d&&(s+=" ("+a+" !== undefined && typeof "+a+" != 'number') || "),s+=" Object.keys("+h+").length "+("maxProperties"==r?">":"<")+" "+a+") { ";var p=r,f=f||[];f.push(s),s="",!1!==e.createErrors?(s+=" { keyword: '"+(p||"_limitProperties")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { limit: "+a+" } ",!1!==e.opts.messages&&(s+=" , message: 'should NOT have ",s+="maxProperties"==r?"more":"fewer",s+=" than ",s+=d?"' + "+a+" + '":""+n,s+=" properties' "),e.opts.verbose&&(s+=" , schema: ",s+=d?"validate.schema"+l:""+n,s+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),s+=" } "):s+=" {} ";var m=s;return s=f.pop(),!e.compositeRule&&u?e.async?s+=" throw new ValidationError(["+m+"]); ":s+=" validate.errors = ["+m+"]; return false; ":s+=" var err = "+m+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+="} ",u&&(s+=" else { "),s}},4238:e=>{"use strict";e.exports=function(e,r,t){var a=" ",s=e.schema[r],o=e.schemaPath+e.util.getProperty(r),i=e.errSchemaPath+"/"+r,n=!e.opts.allErrors,l=e.util.copy(e),c="";l.level++;var u="valid"+l.level,h=l.baseId,d=!0,p=s;if(p)for(var f,m=-1,v=p.length-1;m0||!1===f:e.util.schemaHasRules(f,e.RULES.all))&&(d=!1,l.schema=f,l.schemaPath=o+"["+m+"]",l.errSchemaPath=i+"/"+m,a+=" "+e.validate(l)+" ",l.baseId=h,n&&(a+=" if ("+u+") { ",c+="}"));return n&&(a+=d?" if (true) { ":" "+c.slice(0,-1)+" "),a}},87893:e=>{"use strict";e.exports=function(e,r,t){var a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+e.util.getProperty(r),l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,u="data"+(o||""),h="valid"+s,d="errs__"+s,p=e.util.copy(e),f="";p.level++;var m="valid"+p.level,v=i.every((function(r){return e.opts.strictKeywords?"object"==typeof r&&Object.keys(r).length>0||!1===r:e.util.schemaHasRules(r,e.RULES.all)}));if(v){var y=p.baseId;a+=" var "+d+" = errors; var "+h+" = false; ";var g=e.compositeRule;e.compositeRule=p.compositeRule=!0;var P=i;if(P)for(var E,w=-1,b=P.length-1;w{"use strict";e.exports=function(e,r,t){var a=" ",s=e.schema[r],o=e.errSchemaPath+"/"+r,i=(e.opts.allErrors,e.util.toQuotedString(s));return!0===e.opts.$comment?a+=" console.log("+i+");":"function"==typeof e.opts.$comment&&(a+=" self._opts.$comment("+i+", "+e.util.toQuotedString(o)+", validate.root.schema);"),a}},74956:e=>{"use strict";e.exports=function(e,r,t){var a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+e.util.getProperty(r),l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,u="data"+(o||""),h="valid"+s,d=e.opts.$data&&i&&i.$data;d&&(a+=" var schema"+s+" = "+e.util.getData(i.$data,o,e.dataPathArr)+"; "),d||(a+=" var schema"+s+" = validate.schema"+n+";"),a+="var "+h+" = equal("+u+", schema"+s+"); if (!"+h+") { ";var p=p||[];p.push(a),a="",!1!==e.createErrors?(a+=" { keyword: 'const' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { allowedValue: schema"+s+" } ",!1!==e.opts.messages&&(a+=" , message: 'should be equal to constant' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),a+=" } "):a+=" {} ";var f=a;return a=p.pop(),!e.compositeRule&&c?e.async?a+=" throw new ValidationError(["+f+"]); ":a+=" validate.errors = ["+f+"]; return false; ":a+=" var err = "+f+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+=" }",c&&(a+=" else { "),a}},23375:e=>{"use strict";e.exports=function(e,r,t){var a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+e.util.getProperty(r),l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,u="data"+(o||""),h="valid"+s,d="errs__"+s,p=e.util.copy(e);p.level++;var f="valid"+p.level,m="i"+s,v=p.dataLevel=e.dataLevel+1,y="data"+v,g=e.baseId,P=e.opts.strictKeywords?"object"==typeof i&&Object.keys(i).length>0||!1===i:e.util.schemaHasRules(i,e.RULES.all);if(a+="var "+d+" = errors;var "+h+";",P){var E=e.compositeRule;e.compositeRule=p.compositeRule=!0,p.schema=i,p.schemaPath=n,p.errSchemaPath=l,a+=" var "+f+" = false; for (var "+m+" = 0; "+m+" < "+u+".length; "+m+"++) { ",p.errorPath=e.util.getPathExpr(e.errorPath,m,e.opts.jsonPointers,!0);var w=u+"["+m+"]";p.dataPathArr[v]=m;var b=e.validate(p);p.baseId=g,e.util.varOccurences(b,y)<2?a+=" "+e.util.varReplace(b,y,w)+" ":a+=" var "+y+" = "+w+"; "+b+" ",a+=" if ("+f+") break; } ",e.compositeRule=p.compositeRule=E,a+=" if (!"+f+") {"}else a+=" if ("+u+".length == 0) {";var S=S||[];S.push(a),a="",!1!==e.createErrors?(a+=" { keyword: 'contains' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: {} ",!1!==e.opts.messages&&(a+=" , message: 'should contain a valid item' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),a+=" } "):a+=" {} ";var _=a;return a=S.pop(),!e.compositeRule&&c?e.async?a+=" throw new ValidationError(["+_+"]); ":a+=" validate.errors = ["+_+"]; return false; ":a+=" var err = "+_+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+=" } else { ",P&&(a+=" errors = "+d+"; if (vErrors !== null) { if ("+d+") vErrors.length = "+d+"; else vErrors = null; } "),e.opts.allErrors&&(a+=" } "),a}},58378:e=>{"use strict";e.exports=function(e,r,t){var a,s,o=" ",i=e.level,n=e.dataLevel,l=e.schema[r],c=e.schemaPath+e.util.getProperty(r),u=e.errSchemaPath+"/"+r,h=!e.opts.allErrors,d="data"+(n||""),p="valid"+i,f="errs__"+i,m=e.opts.$data&&l&&l.$data;m?(o+=" var schema"+i+" = "+e.util.getData(l.$data,n,e.dataPathArr)+"; ",s="schema"+i):s=l;var v,y,g,P,E,w=this,b="definition"+i,S=w.definition,_="";if(m&&S.$data){E="keywordValidate"+i;var F=S.validateSchema;o+=" var "+b+" = RULES.custom['"+r+"'].definition; var "+E+" = "+b+".validate;"}else{if(!(P=e.useCustomRule(w,l,e.schema,e)))return;s="validate.schema"+c,E=P.code,v=S.compile,y=S.inline,g=S.macro}var R=E+".errors",$="i"+i,x="ruleErr"+i,D=S.async;if(D&&!e.async)throw new Error("async keyword in sync schema");if(y||g||(o+=R+" = null;"),o+="var "+f+" = errors;var "+p+";",m&&S.$data&&(_+="}",o+=" if ("+s+" === undefined) { "+p+" = true; } else { ",F&&(_+="}",o+=" "+p+" = "+b+".validateSchema("+s+"); if ("+p+") { ")),y)S.statements?o+=" "+P.validate+" ":o+=" "+p+" = "+P.validate+"; ";else if(g){var O=e.util.copy(e);_="",O.level++;var j="valid"+O.level;O.schema=P.validate,O.schemaPath="";var I=e.compositeRule;e.compositeRule=O.compositeRule=!0;var A=e.validate(O).replace(/validate\.schema/g,E);e.compositeRule=O.compositeRule=I,o+=" "+A}else{(T=T||[]).push(o),o="",o+=" "+E+".call( ",e.opts.passContext?o+="this":o+="self",v||!1===S.schema?o+=" , "+d+" ":o+=" , "+s+" , "+d+" , validate.schema"+e.schemaPath+" ",o+=" , (dataPath || '')",'""'!=e.errorPath&&(o+=" + "+e.errorPath);var k=n?"data"+(n-1||""):"parentData",C=n?e.dataPathArr[n]:"parentDataProperty",L=o+=" , "+k+" , "+C+" , rootData ) ";o=T.pop(),!1===S.errors?(o+=" "+p+" = ",D&&(o+="await "),o+=L+"; "):o+=D?" var "+(R="customErrors"+i)+" = null; try { "+p+" = await "+L+"; } catch (e) { "+p+" = false; if (e instanceof ValidationError) "+R+" = e.errors; else throw e; } ":" "+R+" = null; "+p+" = "+L+"; "}if(S.modifying&&(o+=" if ("+k+") "+d+" = "+k+"["+C+"];"),o+=""+_,S.valid)h&&(o+=" if (true) { ");else{var T;o+=" if ( ",void 0===S.valid?(o+=" !",o+=g?""+j:""+p):o+=" "+!S.valid+" ",o+=") { ",a=w.keyword,(T=T||[]).push(o),o="",(T=T||[]).push(o),o="",!1!==e.createErrors?(o+=" { keyword: '"+(a||"custom")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(u)+" , params: { keyword: '"+w.keyword+"' } ",!1!==e.opts.messages&&(o+=" , message: 'should pass \""+w.keyword+"\" keyword validation' "),e.opts.verbose&&(o+=" , schema: validate.schema"+c+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+d+" "),o+=" } "):o+=" {} ";var z=o;o=T.pop(),!e.compositeRule&&h?e.async?o+=" throw new ValidationError(["+z+"]); ":o+=" validate.errors = ["+z+"]; return false; ":o+=" var err = "+z+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ";var N=o;o=T.pop(),y?S.errors?"full"!=S.errors&&(o+=" for (var "+$+"="+f+"; "+$+"{"use strict";e.exports=function(e,r,t){var a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+e.util.getProperty(r),l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,u="data"+(o||""),h="errs__"+s,d=e.util.copy(e),p="";d.level++;var f="valid"+d.level,m={},v={},y=e.opts.ownProperties;for(w in i)if("__proto__"!=w){var g=i[w],P=Array.isArray(g)?v:m;P[w]=g}a+="var "+h+" = errors;";var E=e.errorPath;for(var w in a+="var missing"+s+";",v)if((P=v[w]).length){if(a+=" if ( "+u+e.util.getProperty(w)+" !== undefined ",y&&(a+=" && Object.prototype.hasOwnProperty.call("+u+", '"+e.util.escapeQuotes(w)+"') "),c){a+=" && ( ";var b=P;if(b)for(var S=-1,_=b.length-1;S<_;)O=b[S+=1],S&&(a+=" || "),a+=" ( ( "+(k=u+(A=e.util.getProperty(O)))+" === undefined ",y&&(a+=" || ! Object.prototype.hasOwnProperty.call("+u+", '"+e.util.escapeQuotes(O)+"') "),a+=") && (missing"+s+" = "+e.util.toQuotedString(e.opts.jsonPointers?O:A)+") ) ";a+=")) { ";var F="missing"+s,R="' + "+F+" + '";e.opts._errorDataPathProperty&&(e.errorPath=e.opts.jsonPointers?e.util.getPathExpr(E,F,!0):E+" + "+F);var $=$||[];$.push(a),a="",!1!==e.createErrors?(a+=" { keyword: 'dependencies' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { property: '"+e.util.escapeQuotes(w)+"', missingProperty: '"+R+"', depsCount: "+P.length+", deps: '"+e.util.escapeQuotes(1==P.length?P[0]:P.join(", "))+"' } ",!1!==e.opts.messages&&(a+=" , message: 'should have ",1==P.length?a+="property "+e.util.escapeQuotes(P[0]):a+="properties "+e.util.escapeQuotes(P.join(", ")),a+=" when property "+e.util.escapeQuotes(w)+" is present' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),a+=" } "):a+=" {} ";var x=a;a=$.pop(),!e.compositeRule&&c?e.async?a+=" throw new ValidationError(["+x+"]); ":a+=" validate.errors = ["+x+"]; return false; ":a+=" var err = "+x+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; "}else{a+=" ) { ";var D=P;if(D)for(var O,j=-1,I=D.length-1;j0||!1===g:e.util.schemaHasRules(g,e.RULES.all))&&(a+=" "+f+" = true; if ( "+u+e.util.getProperty(w)+" !== undefined ",y&&(a+=" && Object.prototype.hasOwnProperty.call("+u+", '"+e.util.escapeQuotes(w)+"') "),a+=") { ",d.schema=g,d.schemaPath=n+e.util.getProperty(w),d.errSchemaPath=l+"/"+e.util.escapeFragment(w),a+=" "+e.validate(d)+" ",d.baseId=C,a+=" } ",c&&(a+=" if ("+f+") { ",p+="}"));return c&&(a+=" "+p+" if ("+h+" == errors) {"),a}},13442:e=>{"use strict";e.exports=function(e,r,t){var a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+e.util.getProperty(r),l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,u="data"+(o||""),h="valid"+s,d=e.opts.$data&&i&&i.$data;d&&(a+=" var schema"+s+" = "+e.util.getData(i.$data,o,e.dataPathArr)+"; ");var p="i"+s,f="schema"+s;d||(a+=" var "+f+" = validate.schema"+n+";"),a+="var "+h+";",d&&(a+=" if (schema"+s+" === undefined) "+h+" = true; else if (!Array.isArray(schema"+s+")) "+h+" = false; else {"),a+=h+" = false;for (var "+p+"=0; "+p+"<"+f+".length; "+p+"++) if (equal("+u+", "+f+"["+p+"])) { "+h+" = true; break; }",d&&(a+=" } "),a+=" if (!"+h+") { ";var m=m||[];m.push(a),a="",!1!==e.createErrors?(a+=" { keyword: 'enum' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { allowedValues: schema"+s+" } ",!1!==e.opts.messages&&(a+=" , message: 'should be equal to one of the allowed values' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),a+=" } "):a+=" {} ";var v=a;return a=m.pop(),!e.compositeRule&&c?e.async?a+=" throw new ValidationError(["+v+"]); ":a+=" validate.errors = ["+v+"]; return false; ":a+=" var err = "+v+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+=" }",c&&(a+=" else { "),a}},50068:e=>{"use strict";e.exports=function(e,r,t){var a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+e.util.getProperty(r),l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,u="data"+(o||"");if(!1===e.opts.format)return c&&(a+=" if (true) { "),a;var h,d=e.opts.$data&&i&&i.$data;d?(a+=" var schema"+s+" = "+e.util.getData(i.$data,o,e.dataPathArr)+"; ",h="schema"+s):h=i;var p=e.opts.unknownFormats,f=Array.isArray(p);if(d)a+=" var "+(m="format"+s)+" = formats["+h+"]; var "+(v="isObject"+s)+" = typeof "+m+" == 'object' && !("+m+" instanceof RegExp) && "+m+".validate; var "+(y="formatType"+s)+" = "+v+" && "+m+".type || 'string'; if ("+v+") { ",e.async&&(a+=" var async"+s+" = "+m+".async; "),a+=" "+m+" = "+m+".validate; } if ( ",d&&(a+=" ("+h+" !== undefined && typeof "+h+" != 'string') || "),a+=" (","ignore"!=p&&(a+=" ("+h+" && !"+m+" ",f&&(a+=" && self._opts.unknownFormats.indexOf("+h+") == -1 "),a+=") || "),a+=" ("+m+" && "+y+" == '"+t+"' && !(typeof "+m+" == 'function' ? ",e.async?a+=" (async"+s+" ? await "+m+"("+u+") : "+m+"("+u+")) ":a+=" "+m+"("+u+") ",a+=" : "+m+".test("+u+"))))) {";else{var m;if(!(m=e.formats[i])){if("ignore"==p)return e.logger.warn('unknown format "'+i+'" ignored in schema at path "'+e.errSchemaPath+'"'),c&&(a+=" if (true) { "),a;if(f&&p.indexOf(i)>=0)return c&&(a+=" if (true) { "),a;throw new Error('unknown format "'+i+'" is used in schema at path "'+e.errSchemaPath+'"')}var v,y=(v="object"==typeof m&&!(m instanceof RegExp)&&m.validate)&&m.type||"string";if(v){var g=!0===m.async;m=m.validate}if(y!=t)return c&&(a+=" if (true) { "),a;if(g){if(!e.async)throw new Error("async format in sync schema");a+=" if (!(await "+(P="formats"+e.util.getProperty(i)+".validate")+"("+u+"))) { "}else{a+=" if (! ";var P="formats"+e.util.getProperty(i);v&&(P+=".validate"),a+="function"==typeof m?" "+P+"("+u+") ":" "+P+".test("+u+") ",a+=") { "}}var E=E||[];E.push(a),a="",!1!==e.createErrors?(a+=" { keyword: 'format' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { format: ",a+=d?""+h:""+e.util.toQuotedString(i),a+=" } ",!1!==e.opts.messages&&(a+=" , message: 'should match format \"",a+=d?"' + "+h+" + '":""+e.util.escapeQuotes(i),a+="\"' "),e.opts.verbose&&(a+=" , schema: ",a+=d?"validate.schema"+n:""+e.util.toQuotedString(i),a+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),a+=" } "):a+=" {} ";var w=a;return a=E.pop(),!e.compositeRule&&c?e.async?a+=" throw new ValidationError(["+w+"]); ":a+=" validate.errors = ["+w+"]; return false; ":a+=" var err = "+w+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+=" } ",c&&(a+=" else { "),a}},79195:e=>{"use strict";e.exports=function(e,r,t){var a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+e.util.getProperty(r),l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,u="data"+(o||""),h="valid"+s,d="errs__"+s,p=e.util.copy(e);p.level++;var f="valid"+p.level,m=e.schema.then,v=e.schema.else,y=void 0!==m&&(e.opts.strictKeywords?"object"==typeof m&&Object.keys(m).length>0||!1===m:e.util.schemaHasRules(m,e.RULES.all)),g=void 0!==v&&(e.opts.strictKeywords?"object"==typeof v&&Object.keys(v).length>0||!1===v:e.util.schemaHasRules(v,e.RULES.all)),P=p.baseId;if(y||g){var E;p.createErrors=!1,p.schema=i,p.schemaPath=n,p.errSchemaPath=l,a+=" var "+d+" = errors; var "+h+" = true; ";var w=e.compositeRule;e.compositeRule=p.compositeRule=!0,a+=" "+e.validate(p)+" ",p.baseId=P,p.createErrors=!0,a+=" errors = "+d+"; if (vErrors !== null) { if ("+d+") vErrors.length = "+d+"; else vErrors = null; } ",e.compositeRule=p.compositeRule=w,y?(a+=" if ("+f+") { ",p.schema=e.schema.then,p.schemaPath=e.schemaPath+".then",p.errSchemaPath=e.errSchemaPath+"/then",a+=" "+e.validate(p)+" ",p.baseId=P,a+=" "+h+" = "+f+"; ",y&&g?a+=" var "+(E="ifClause"+s)+" = 'then'; ":E="'then'",a+=" } ",g&&(a+=" else { ")):a+=" if (!"+f+") { ",g&&(p.schema=e.schema.else,p.schemaPath=e.schemaPath+".else",p.errSchemaPath=e.errSchemaPath+"/else",a+=" "+e.validate(p)+" ",p.baseId=P,a+=" "+h+" = "+f+"; ",y&&g?a+=" var "+(E="ifClause"+s)+" = 'else'; ":E="'else'",a+=" } "),a+=" if (!"+h+") { var err = ",!1!==e.createErrors?(a+=" { keyword: 'if' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { failingKeyword: "+E+" } ",!1!==e.opts.messages&&(a+=" , message: 'should match \"' + "+E+" + '\" schema' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),a+=" } "):a+=" {} ",a+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",!e.compositeRule&&c&&(e.async?a+=" throw new ValidationError(vErrors); ":a+=" validate.errors = vErrors; return false; "),a+=" } ",c&&(a+=" else { ")}else c&&(a+=" if (true) { ");return a}},18122:(e,r,t)=>{"use strict";e.exports={$ref:t(43942),allOf:t(4238),anyOf:t(87893),$comment:t(74603),const:t(74956),contains:t(23375),dependencies:t(14018),enum:t(13442),format:t(50068),if:t(79195),items:t(61706),maximum:t(41428),minimum:t(41428),maxItems:t(93747),minItems:t(93747),maxLength:t(12530),minLength:t(12530),maxProperties:t(64803),minProperties:t(64803),multipleOf:t(73907),not:t(8496),oneOf:t(6538),pattern:t(660),properties:t(80142),propertyNames:t(335),required:t(18344),uniqueItems:t(75891),validate:t(87176)}},61706:e=>{"use strict";e.exports=function(e,r,t){var a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+e.util.getProperty(r),l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,u="data"+(o||""),h="valid"+s,d="errs__"+s,p=e.util.copy(e),f="";p.level++;var m="valid"+p.level,v="i"+s,y=p.dataLevel=e.dataLevel+1,g="data"+y,P=e.baseId;if(a+="var "+d+" = errors;var "+h+";",Array.isArray(i)){var E=e.schema.additionalItems;if(!1===E){a+=" "+h+" = "+u+".length <= "+i.length+"; ";var w=l;l=e.errSchemaPath+"/additionalItems",a+=" if (!"+h+") { ";var b=b||[];b.push(a),a="",!1!==e.createErrors?(a+=" { keyword: 'additionalItems' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { limit: "+i.length+" } ",!1!==e.opts.messages&&(a+=" , message: 'should NOT have more than "+i.length+" items' "),e.opts.verbose&&(a+=" , schema: false , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),a+=" } "):a+=" {} ";var S=a;a=b.pop(),!e.compositeRule&&c?e.async?a+=" throw new ValidationError(["+S+"]); ":a+=" validate.errors = ["+S+"]; return false; ":a+=" var err = "+S+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+=" } ",l=w,c&&(f+="}",a+=" else { ")}var _=i;if(_)for(var F,R=-1,$=_.length-1;R<$;)if(F=_[R+=1],e.opts.strictKeywords?"object"==typeof F&&Object.keys(F).length>0||!1===F:e.util.schemaHasRules(F,e.RULES.all)){a+=" "+m+" = true; if ("+u+".length > "+R+") { ";var x=u+"["+R+"]";p.schema=F,p.schemaPath=n+"["+R+"]",p.errSchemaPath=l+"/"+R,p.errorPath=e.util.getPathExpr(e.errorPath,R,e.opts.jsonPointers,!0),p.dataPathArr[y]=R;var D=e.validate(p);p.baseId=P,e.util.varOccurences(D,g)<2?a+=" "+e.util.varReplace(D,g,x)+" ":a+=" var "+g+" = "+x+"; "+D+" ",a+=" } ",c&&(a+=" if ("+m+") { ",f+="}")}"object"==typeof E&&(e.opts.strictKeywords?"object"==typeof E&&Object.keys(E).length>0||!1===E:e.util.schemaHasRules(E,e.RULES.all))&&(p.schema=E,p.schemaPath=e.schemaPath+".additionalItems",p.errSchemaPath=e.errSchemaPath+"/additionalItems",a+=" "+m+" = true; if ("+u+".length > "+i.length+") { for (var "+v+" = "+i.length+"; "+v+" < "+u+".length; "+v+"++) { ",p.errorPath=e.util.getPathExpr(e.errorPath,v,e.opts.jsonPointers,!0),x=u+"["+v+"]",p.dataPathArr[y]=v,D=e.validate(p),p.baseId=P,e.util.varOccurences(D,g)<2?a+=" "+e.util.varReplace(D,g,x)+" ":a+=" var "+g+" = "+x+"; "+D+" ",c&&(a+=" if (!"+m+") break; "),a+=" } } ",c&&(a+=" if ("+m+") { ",f+="}"))}else(e.opts.strictKeywords?"object"==typeof i&&Object.keys(i).length>0||!1===i:e.util.schemaHasRules(i,e.RULES.all))&&(p.schema=i,p.schemaPath=n,p.errSchemaPath=l,a+=" for (var "+v+" = 0; "+v+" < "+u+".length; "+v+"++) { ",p.errorPath=e.util.getPathExpr(e.errorPath,v,e.opts.jsonPointers,!0),x=u+"["+v+"]",p.dataPathArr[y]=v,D=e.validate(p),p.baseId=P,e.util.varOccurences(D,g)<2?a+=" "+e.util.varReplace(D,g,x)+" ":a+=" var "+g+" = "+x+"; "+D+" ",c&&(a+=" if (!"+m+") break; "),a+=" }");return c&&(a+=" "+f+" if ("+d+" == errors) {"),a}},73907:e=>{"use strict";e.exports=function(e,r,t){var a,s=" ",o=e.level,i=e.dataLevel,n=e.schema[r],l=e.schemaPath+e.util.getProperty(r),c=e.errSchemaPath+"/"+r,u=!e.opts.allErrors,h="data"+(i||""),d=e.opts.$data&&n&&n.$data;if(d?(s+=" var schema"+o+" = "+e.util.getData(n.$data,i,e.dataPathArr)+"; ",a="schema"+o):a=n,!d&&"number"!=typeof n)throw new Error(r+" must be number");s+="var division"+o+";if (",d&&(s+=" "+a+" !== undefined && ( typeof "+a+" != 'number' || "),s+=" (division"+o+" = "+h+" / "+a+", ",e.opts.multipleOfPrecision?s+=" Math.abs(Math.round(division"+o+") - division"+o+") > 1e-"+e.opts.multipleOfPrecision+" ":s+=" division"+o+" !== parseInt(division"+o+") ",s+=" ) ",d&&(s+=" ) "),s+=" ) { ";var p=p||[];p.push(s),s="",!1!==e.createErrors?(s+=" { keyword: 'multipleOf' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { multipleOf: "+a+" } ",!1!==e.opts.messages&&(s+=" , message: 'should be multiple of ",s+=d?"' + "+a:a+"'"),e.opts.verbose&&(s+=" , schema: ",s+=d?"validate.schema"+l:""+n,s+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),s+=" } "):s+=" {} ";var f=s;return s=p.pop(),!e.compositeRule&&u?e.async?s+=" throw new ValidationError(["+f+"]); ":s+=" validate.errors = ["+f+"]; return false; ":s+=" var err = "+f+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+="} ",u&&(s+=" else { "),s}},8496:e=>{"use strict";e.exports=function(e,r,t){var a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+e.util.getProperty(r),l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,u="data"+(o||""),h="errs__"+s,d=e.util.copy(e);d.level++;var p="valid"+d.level;if(e.opts.strictKeywords?"object"==typeof i&&Object.keys(i).length>0||!1===i:e.util.schemaHasRules(i,e.RULES.all)){d.schema=i,d.schemaPath=n,d.errSchemaPath=l,a+=" var "+h+" = errors; ";var f,m=e.compositeRule;e.compositeRule=d.compositeRule=!0,d.createErrors=!1,d.opts.allErrors&&(f=d.opts.allErrors,d.opts.allErrors=!1),a+=" "+e.validate(d)+" ",d.createErrors=!0,f&&(d.opts.allErrors=f),e.compositeRule=d.compositeRule=m,a+=" if ("+p+") { ";var v=v||[];v.push(a),a="",!1!==e.createErrors?(a+=" { keyword: 'not' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: {} ",!1!==e.opts.messages&&(a+=" , message: 'should NOT be valid' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),a+=" } "):a+=" {} ";var y=a;a=v.pop(),!e.compositeRule&&c?e.async?a+=" throw new ValidationError(["+y+"]); ":a+=" validate.errors = ["+y+"]; return false; ":a+=" var err = "+y+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+=" } else { errors = "+h+"; if (vErrors !== null) { if ("+h+") vErrors.length = "+h+"; else vErrors = null; } ",e.opts.allErrors&&(a+=" } ")}else a+=" var err = ",!1!==e.createErrors?(a+=" { keyword: 'not' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: {} ",!1!==e.opts.messages&&(a+=" , message: 'should NOT be valid' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),a+=" } "):a+=" {} ",a+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",c&&(a+=" if (false) { ");return a}},6538:e=>{"use strict";e.exports=function(e,r,t){var a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+e.util.getProperty(r),l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,u="data"+(o||""),h="valid"+s,d="errs__"+s,p=e.util.copy(e),f="";p.level++;var m="valid"+p.level,v=p.baseId,y="prevValid"+s,g="passingSchemas"+s;a+="var "+d+" = errors , "+y+" = false , "+h+" = false , "+g+" = null; ";var P=e.compositeRule;e.compositeRule=p.compositeRule=!0;var E=i;if(E)for(var w,b=-1,S=E.length-1;b0||!1===w:e.util.schemaHasRules(w,e.RULES.all))?(p.schema=w,p.schemaPath=n+"["+b+"]",p.errSchemaPath=l+"/"+b,a+=" "+e.validate(p)+" ",p.baseId=v):a+=" var "+m+" = true; ",b&&(a+=" if ("+m+" && "+y+") { "+h+" = false; "+g+" = ["+g+", "+b+"]; } else { ",f+="}"),a+=" if ("+m+") { "+h+" = "+y+" = true; "+g+" = "+b+"; }";return e.compositeRule=p.compositeRule=P,a+=f+"if (!"+h+") { var err = ",!1!==e.createErrors?(a+=" { keyword: 'oneOf' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { passingSchemas: "+g+" } ",!1!==e.opts.messages&&(a+=" , message: 'should match exactly one schema in oneOf' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),a+=" } "):a+=" {} ",a+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",!e.compositeRule&&c&&(e.async?a+=" throw new ValidationError(vErrors); ":a+=" validate.errors = vErrors; return false; "),a+="} else { errors = "+d+"; if (vErrors !== null) { if ("+d+") vErrors.length = "+d+"; else vErrors = null; }",e.opts.allErrors&&(a+=" } "),a}},660:e=>{"use strict";e.exports=function(e,r,t){var a,s=" ",o=e.level,i=e.dataLevel,n=e.schema[r],l=e.schemaPath+e.util.getProperty(r),c=e.errSchemaPath+"/"+r,u=!e.opts.allErrors,h="data"+(i||""),d=e.opts.$data&&n&&n.$data;d?(s+=" var schema"+o+" = "+e.util.getData(n.$data,i,e.dataPathArr)+"; ",a="schema"+o):a=n,s+="if ( ",d&&(s+=" ("+a+" !== undefined && typeof "+a+" != 'string') || "),s+=" !"+(d?"(new RegExp("+a+"))":e.usePattern(n))+".test("+h+") ) { ";var p=p||[];p.push(s),s="",!1!==e.createErrors?(s+=" { keyword: 'pattern' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { pattern: ",s+=d?""+a:""+e.util.toQuotedString(n),s+=" } ",!1!==e.opts.messages&&(s+=" , message: 'should match pattern \"",s+=d?"' + "+a+" + '":""+e.util.escapeQuotes(n),s+="\"' "),e.opts.verbose&&(s+=" , schema: ",s+=d?"validate.schema"+l:""+e.util.toQuotedString(n),s+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),s+=" } "):s+=" {} ";var f=s;return s=p.pop(),!e.compositeRule&&u?e.async?s+=" throw new ValidationError(["+f+"]); ":s+=" validate.errors = ["+f+"]; return false; ":s+=" var err = "+f+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+="} ",u&&(s+=" else { "),s}},80142:e=>{"use strict";e.exports=function(e,r,t){var a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+e.util.getProperty(r),l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,u="data"+(o||""),h="errs__"+s,d=e.util.copy(e),p="";d.level++;var f="valid"+d.level,m="key"+s,v="idx"+s,y=d.dataLevel=e.dataLevel+1,g="data"+y,P="dataProperties"+s,E=Object.keys(i||{}).filter(A),w=e.schema.patternProperties||{},b=Object.keys(w).filter(A),S=e.schema.additionalProperties,_=E.length||b.length,F=!1===S,R="object"==typeof S&&Object.keys(S).length,$=e.opts.removeAdditional,x=F||R||$,D=e.opts.ownProperties,O=e.baseId,j=e.schema.required;if(j&&(!e.opts.$data||!j.$data)&&j.length8)a+=" || validate.schema"+n+".hasOwnProperty("+m+") ";else{var k=E;if(k)for(var C=-1,L=k.length-1;C0||!1===W:e.util.schemaHasRules(W,e.RULES.all)){var X=e.util.getProperty(Z),ee=(M=u+X,B&&void 0!==W.default);if(d.schema=W,d.schemaPath=n+X,d.errSchemaPath=l+"/"+e.util.escapeFragment(Z),d.errorPath=e.util.getPath(e.errorPath,Z,e.opts.jsonPointers),d.dataPathArr[y]=e.util.toQuotedString(Z),K=e.validate(d),d.baseId=O,e.util.varOccurences(K,g)<2){K=e.util.varReplace(K,g,M);var re=M}else re=g,a+=" var "+g+" = "+M+"; ";if(ee)a+=" "+K+" ";else{if(I&&I[Z]){a+=" if ( "+re+" === undefined ",D&&(a+=" || ! Object.prototype.hasOwnProperty.call("+u+", '"+e.util.escapeQuotes(Z)+"') "),a+=") { "+f+" = false; ",q=e.errorPath,V=l;var te,ae=e.util.escapeQuotes(Z);e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPath(q,Z,e.opts.jsonPointers)),l=e.errSchemaPath+"/required",(te=te||[]).push(a),a="",!1!==e.createErrors?(a+=" { keyword: 'required' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { missingProperty: '"+ae+"' } ",!1!==e.opts.messages&&(a+=" , message: '",e.opts._errorDataPathProperty?a+="is a required property":a+="should have required property \\'"+ae+"\\'",a+="' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),a+=" } "):a+=" {} ",U=a,a=te.pop(),!e.compositeRule&&c?e.async?a+=" throw new ValidationError(["+U+"]); ":a+=" validate.errors = ["+U+"]; return false; ":a+=" var err = "+U+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",l=V,e.errorPath=q,a+=" } else { "}else c?(a+=" if ( "+re+" === undefined ",D&&(a+=" || ! Object.prototype.hasOwnProperty.call("+u+", '"+e.util.escapeQuotes(Z)+"') "),a+=") { "+f+" = true; } else { "):(a+=" if ("+re+" !== undefined ",D&&(a+=" && Object.prototype.hasOwnProperty.call("+u+", '"+e.util.escapeQuotes(Z)+"') "),a+=" ) { ");a+=" "+K+" } "}}c&&(a+=" if ("+f+") { ",p+="}")}}if(b.length){var se=b;if(se)for(var oe,ie=-1,ne=se.length-1;ie0||!1===W:e.util.schemaHasRules(W,e.RULES.all))&&(d.schema=W,d.schemaPath=e.schemaPath+".patternProperties"+e.util.getProperty(oe),d.errSchemaPath=e.errSchemaPath+"/patternProperties/"+e.util.escapeFragment(oe),a+=D?" "+P+" = "+P+" || Object.keys("+u+"); for (var "+v+"=0; "+v+"<"+P+".length; "+v+"++) { var "+m+" = "+P+"["+v+"]; ":" for (var "+m+" in "+u+") { ",a+=" if ("+e.usePattern(oe)+".test("+m+")) { ",d.errorPath=e.util.getPathExpr(e.errorPath,m,e.opts.jsonPointers),M=u+"["+m+"]",d.dataPathArr[y]=m,K=e.validate(d),d.baseId=O,e.util.varOccurences(K,g)<2?a+=" "+e.util.varReplace(K,g,M)+" ":a+=" var "+g+" = "+M+"; "+K+" ",c&&(a+=" if (!"+f+") break; "),a+=" } ",c&&(a+=" else "+f+" = true; "),a+=" } ",c&&(a+=" if ("+f+") { ",p+="}"))}return c&&(a+=" "+p+" if ("+h+" == errors) {"),a}},335:e=>{"use strict";e.exports=function(e,r,t){var a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+e.util.getProperty(r),l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,u="data"+(o||""),h="errs__"+s,d=e.util.copy(e);d.level++;var p="valid"+d.level;if(a+="var "+h+" = errors;",e.opts.strictKeywords?"object"==typeof i&&Object.keys(i).length>0||!1===i:e.util.schemaHasRules(i,e.RULES.all)){d.schema=i,d.schemaPath=n,d.errSchemaPath=l;var f="key"+s,m="idx"+s,v="i"+s,y="' + "+f+" + '",g="data"+(d.dataLevel=e.dataLevel+1),P="dataProperties"+s,E=e.opts.ownProperties,w=e.baseId;E&&(a+=" var "+P+" = undefined; "),a+=E?" "+P+" = "+P+" || Object.keys("+u+"); for (var "+m+"=0; "+m+"<"+P+".length; "+m+"++) { var "+f+" = "+P+"["+m+"]; ":" for (var "+f+" in "+u+") { ",a+=" var startErrs"+s+" = errors; ";var b=f,S=e.compositeRule;e.compositeRule=d.compositeRule=!0;var _=e.validate(d);d.baseId=w,e.util.varOccurences(_,g)<2?a+=" "+e.util.varReplace(_,g,b)+" ":a+=" var "+g+" = "+b+"; "+_+" ",e.compositeRule=d.compositeRule=S,a+=" if (!"+p+") { for (var "+v+"=startErrs"+s+"; "+v+"{"use strict";e.exports=function(e,r,t){var a,s,o=" ",i=e.level,n=e.dataLevel,l=e.schema[r],c=e.errSchemaPath+"/"+r,u=!e.opts.allErrors,h="data"+(n||""),d="valid"+i;if("#"==l||"#/"==l)e.isRoot?(a=e.async,s="validate"):(a=!0===e.root.schema.$async,s="root.refVal[0]");else{var p=e.resolveRef(e.baseId,l,e.isRoot);if(void 0===p){var f=e.MissingRefError.message(e.baseId,l);if("fail"==e.opts.missingRefs){e.logger.error(f),(g=g||[]).push(o),o="",!1!==e.createErrors?(o+=" { keyword: '$ref' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { ref: '"+e.util.escapeQuotes(l)+"' } ",!1!==e.opts.messages&&(o+=" , message: 'can\\'t resolve reference "+e.util.escapeQuotes(l)+"' "),e.opts.verbose&&(o+=" , schema: "+e.util.toQuotedString(l)+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),o+=" } "):o+=" {} ";var m=o;o=g.pop(),!e.compositeRule&&u?e.async?o+=" throw new ValidationError(["+m+"]); ":o+=" validate.errors = ["+m+"]; return false; ":o+=" var err = "+m+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",u&&(o+=" if (false) { ")}else{if("ignore"!=e.opts.missingRefs)throw new e.MissingRefError(e.baseId,l,f);e.logger.warn(f),u&&(o+=" if (true) { ")}}else if(p.inline){var v=e.util.copy(e);v.level++;var y="valid"+v.level;v.schema=p.schema,v.schemaPath="",v.errSchemaPath=l,o+=" "+e.validate(v).replace(/validate\.schema/g,p.code)+" ",u&&(o+=" if ("+y+") { ")}else a=!0===p.$async||e.async&&!1!==p.$async,s=p.code}if(s){var g;(g=g||[]).push(o),o="",e.opts.passContext?o+=" "+s+".call(this, ":o+=" "+s+"( ",o+=" "+h+", (dataPath || '')",'""'!=e.errorPath&&(o+=" + "+e.errorPath);var P=o+=" , "+(n?"data"+(n-1||""):"parentData")+" , "+(n?e.dataPathArr[n]:"parentDataProperty")+", rootData) ";if(o=g.pop(),a){if(!e.async)throw new Error("async schema referenced by sync schema");u&&(o+=" var "+d+"; "),o+=" try { await "+P+"; ",u&&(o+=" "+d+" = true; "),o+=" } catch (e) { if (!(e instanceof ValidationError)) throw e; if (vErrors === null) vErrors = e.errors; else vErrors = vErrors.concat(e.errors); errors = vErrors.length; ",u&&(o+=" "+d+" = false; "),o+=" } ",u&&(o+=" if ("+d+") { ")}else o+=" if (!"+P+") { if (vErrors === null) vErrors = "+s+".errors; else vErrors = vErrors.concat("+s+".errors); errors = vErrors.length; } ",u&&(o+=" else { ")}return o}},18344:e=>{"use strict";e.exports=function(e,r,t){var a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+e.util.getProperty(r),l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,u="data"+(o||""),h="valid"+s,d=e.opts.$data&&i&&i.$data;d&&(a+=" var schema"+s+" = "+e.util.getData(i.$data,o,e.dataPathArr)+"; ");var p="schema"+s;if(!d)if(i.length0||!1===P:e.util.schemaHasRules(P,e.RULES.all))||(f[f.length]=v)}}else f=i;if(d||f.length){var E=e.errorPath,w=d||f.length>=e.opts.loopRequired,b=e.opts.ownProperties;if(c)if(a+=" var missing"+s+"; ",w){d||(a+=" var "+p+" = validate.schema"+n+"; ");var S="' + "+(D="schema"+s+"["+($="i"+s)+"]")+" + '";e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPathExpr(E,D,e.opts.jsonPointers)),a+=" var "+h+" = true; ",d&&(a+=" if (schema"+s+" === undefined) "+h+" = true; else if (!Array.isArray(schema"+s+")) "+h+" = false; else {"),a+=" for (var "+$+" = 0; "+$+" < "+p+".length; "+$+"++) { "+h+" = "+u+"["+p+"["+$+"]] !== undefined ",b&&(a+=" && Object.prototype.hasOwnProperty.call("+u+", "+p+"["+$+"]) "),a+="; if (!"+h+") break; } ",d&&(a+=" } "),a+=" if (!"+h+") { ",(F=F||[]).push(a),a="",!1!==e.createErrors?(a+=" { keyword: 'required' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { missingProperty: '"+S+"' } ",!1!==e.opts.messages&&(a+=" , message: '",e.opts._errorDataPathProperty?a+="is a required property":a+="should have required property \\'"+S+"\\'",a+="' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),a+=" } "):a+=" {} ";var _=a;a=F.pop(),!e.compositeRule&&c?e.async?a+=" throw new ValidationError(["+_+"]); ":a+=" validate.errors = ["+_+"]; return false; ":a+=" var err = "+_+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+=" } else { "}else{a+=" if ( ";var F,R=f;if(R)for(var $=-1,x=R.length-1;${"use strict";e.exports=function(e,r,t){var a,s=" ",o=e.level,i=e.dataLevel,n=e.schema[r],l=e.schemaPath+e.util.getProperty(r),c=e.errSchemaPath+"/"+r,u=!e.opts.allErrors,h="data"+(i||""),d="valid"+o,p=e.opts.$data&&n&&n.$data;if(p?(s+=" var schema"+o+" = "+e.util.getData(n.$data,i,e.dataPathArr)+"; ",a="schema"+o):a=n,(n||p)&&!1!==e.opts.uniqueItems){p&&(s+=" var "+d+"; if ("+a+" === false || "+a+" === undefined) "+d+" = true; else if (typeof "+a+" != 'boolean') "+d+" = false; else { "),s+=" var i = "+h+".length , "+d+" = true , j; if (i > 1) { ";var f=e.schema.items&&e.schema.items.type,m=Array.isArray(f);if(!f||"object"==f||"array"==f||m&&(f.indexOf("object")>=0||f.indexOf("array")>=0))s+=" outer: for (;i--;) { for (j = i; j--;) { if (equal("+h+"[i], "+h+"[j])) { "+d+" = false; break outer; } } } ";else{s+=" var itemIndices = {}, item; for (;i--;) { var item = "+h+"[i]; ";var v="checkDataType"+(m?"s":"");s+=" if ("+e.util[v](f,"item",e.opts.strictNumbers,!0)+") continue; ",m&&(s+=" if (typeof item == 'string') item = '\"' + item; "),s+=" if (typeof itemIndices[item] == 'number') { "+d+" = false; j = itemIndices[item]; break; } itemIndices[item] = i; } "}s+=" } ",p&&(s+=" } "),s+=" if (!"+d+") { ";var y=y||[];y.push(s),s="",!1!==e.createErrors?(s+=" { keyword: 'uniqueItems' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { i: i, j: j } ",!1!==e.opts.messages&&(s+=" , message: 'should NOT have duplicate items (items ## ' + j + ' and ' + i + ' are identical)' "),e.opts.verbose&&(s+=" , schema: ",s+=p?"validate.schema"+l:""+n,s+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),s+=" } "):s+=" {} ";var g=s;s=y.pop(),!e.compositeRule&&u?e.async?s+=" throw new ValidationError(["+g+"]); ":s+=" validate.errors = ["+g+"]; return false; ":s+=" var err = "+g+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+=" } ",u&&(s+=" else { ")}else u&&(s+=" if (true) { ");return s}},87176:e=>{"use strict";e.exports=function(e,r,t){var a="",s=!0===e.schema.$async,o=e.util.schemaHasRulesExcept(e.schema,e.RULES.all,"$ref"),i=e.self._getId(e.schema);if(e.opts.strictKeywords){var n=e.util.schemaUnknownRules(e.schema,e.RULES.keywords);if(n){var l="unknown keyword: "+n;if("log"!==e.opts.strictKeywords)throw new Error(l);e.logger.warn(l)}}if(e.isTop&&(a+=" var validate = ",s&&(e.async=!0,a+="async "),a+="function(data, dataPath, parentData, parentDataProperty, rootData) { 'use strict'; ",i&&(e.opts.sourceCode||e.opts.processCode)&&(a+=" /*# sourceURL="+i+" */ ")),"boolean"==typeof e.schema||!o&&!e.schema.$ref){r="false schema";var c=e.level,u=e.dataLevel,h=e.schema[r],d=e.schemaPath+e.util.getProperty(r),p=e.errSchemaPath+"/"+r,f=!e.opts.allErrors,m="data"+(u||""),v="valid"+c;if(!1===e.schema){e.isTop?f=!0:a+=" var "+v+" = false; ",(M=M||[]).push(a),a="",!1!==e.createErrors?(a+=" { keyword: 'false schema' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(p)+" , params: {} ",!1!==e.opts.messages&&(a+=" , message: 'boolean schema is false' "),e.opts.verbose&&(a+=" , schema: false , parentSchema: validate.schema"+e.schemaPath+" , data: "+m+" "),a+=" } "):a+=" {} ";var y=a;a=M.pop(),!e.compositeRule&&f?e.async?a+=" throw new ValidationError(["+y+"]); ":a+=" validate.errors = ["+y+"]; return false; ":a+=" var err = "+y+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; "}else e.isTop?a+=s?" return data; ":" validate.errors = null; return true; ":a+=" var "+v+" = true; ";return e.isTop&&(a+=" }; return validate; "),a}if(e.isTop){var g=e.isTop;if(c=e.level=0,u=e.dataLevel=0,m="data",e.rootId=e.resolve.fullPath(e.self._getId(e.root.schema)),e.baseId=e.baseId||e.rootId,delete e.isTop,e.dataPathArr=[""],void 0!==e.schema.default&&e.opts.useDefaults&&e.opts.strictDefaults){var P="default is ignored in the schema root";if("log"!==e.opts.strictDefaults)throw new Error(P);e.logger.warn(P)}a+=" var vErrors = null; ",a+=" var errors = 0; ",a+=" if (rootData === undefined) rootData = data; "}else{if(c=e.level,m="data"+((u=e.dataLevel)||""),i&&(e.baseId=e.resolve.url(e.baseId,i)),s&&!e.async)throw new Error("async schema in sync schema");a+=" var errs_"+c+" = errors;"}v="valid"+c,f=!e.opts.allErrors;var E="",w="",b=e.schema.type,S=Array.isArray(b);if(b&&e.opts.nullable&&!0===e.schema.nullable&&(S?-1==b.indexOf("null")&&(b=b.concat("null")):"null"!=b&&(b=[b,"null"],S=!0)),S&&1==b.length&&(b=b[0],S=!1),e.schema.$ref&&o){if("fail"==e.opts.extendRefs)throw new Error('$ref: validation keywords used in schema at path "'+e.errSchemaPath+'" (see option extendRefs)');!0!==e.opts.extendRefs&&(o=!1,e.logger.warn('$ref: keywords ignored in schema at path "'+e.errSchemaPath+'"'))}if(e.schema.$comment&&e.opts.$comment&&(a+=" "+e.RULES.all.$comment.code(e,"$comment")),b){if(e.opts.coerceTypes)var _=e.util.coerceToTypes(e.opts.coerceTypes,b);var F=e.RULES.types[b];if(_||S||!0===F||F&&!G(F)){d=e.schemaPath+".type",p=e.errSchemaPath+"/type",d=e.schemaPath+".type",p=e.errSchemaPath+"/type";var R=S?"checkDataTypes":"checkDataType";if(a+=" if ("+e.util[R](b,m,e.opts.strictNumbers,!0)+") { ",_){var $="dataType"+c,x="coerced"+c;a+=" var "+$+" = typeof "+m+"; var "+x+" = undefined; ","array"==e.opts.coerceTypes&&(a+=" if ("+$+" == 'object' && Array.isArray("+m+") && "+m+".length == 1) { "+m+" = "+m+"[0]; "+$+" = typeof "+m+"; if ("+e.util.checkDataType(e.schema.type,m,e.opts.strictNumbers)+") "+x+" = "+m+"; } "),a+=" if ("+x+" !== undefined) ; ";var D=_;if(D)for(var O,j=-1,I=D.length-1;j{"use strict";var a=/^[a-z_$][a-z0-9_$-]*$/i,s=t(58378),o=t(61245);e.exports={add:function(e,r){var t=this.RULES;if(t.keywords[e])throw new Error("Keyword "+e+" is already defined");if(!a.test(e))throw new Error("Keyword "+e+" is not a valid identifier");if(r){this.validateKeyword(r,!0);var o=r.type;if(Array.isArray(o))for(var i=0;i{"use strict";e.exports=function e(r,t){if(r===t)return!0;if(r&&t&&"object"==typeof r&&"object"==typeof t){if(r.constructor!==t.constructor)return!1;var a,s,o;if(Array.isArray(r)){if((a=r.length)!=t.length)return!1;for(s=a;0!=s--;)if(!e(r[s],t[s]))return!1;return!0}if(r.constructor===RegExp)return r.source===t.source&&r.flags===t.flags;if(r.valueOf!==Object.prototype.valueOf)return r.valueOf()===t.valueOf();if(r.toString!==Object.prototype.toString)return r.toString()===t.toString();if((a=(o=Object.keys(r)).length)!==Object.keys(t).length)return!1;for(s=a;0!=s--;)if(!Object.prototype.hasOwnProperty.call(t,o[s]))return!1;for(s=a;0!=s--;){var i=o[s];if(!e(r[i],t[i]))return!1}return!0}return r!=r&&t!=t}},38377:e=>{"use strict";e.exports=function(e,r){r||(r={}),"function"==typeof r&&(r={cmp:r});var t,a="boolean"==typeof r.cycles&&r.cycles,s=r.cmp&&(t=r.cmp,function(e){return function(r,a){var s={key:r,value:e[r]},o={key:a,value:e[a]};return t(s,o)}}),o=[];return function e(r){if(r&&r.toJSON&&"function"==typeof r.toJSON&&(r=r.toJSON()),void 0!==r){if("number"==typeof r)return isFinite(r)?""+r:"null";if("object"!=typeof r)return JSON.stringify(r);var t,i;if(Array.isArray(r)){for(i="[",t=0;t{"use strict";var r=e.exports=function(e,r,a){"function"==typeof r&&(a=r,r={}),t(r,"function"==typeof(a=r.cb||a)?a:a.pre||function(){},a.post||function(){},e,"",e)};function t(e,a,s,o,i,n,l,c,u,h){if(o&&"object"==typeof o&&!Array.isArray(o)){for(var d in a(o,i,n,l,c,u,h),o){var p=o[d];if(Array.isArray(p)){if(d in r.arrayKeywords)for(var f=0;f1){r[0]=r[0].slice(0,-1);for(var a=r.length-1,s=1;s= 0x80 (not a basic code point)","invalid-input":"Invalid input"},m=Math.floor,v=String.fromCharCode;function y(e){throw new RangeError(f[e])}function g(e,r){var t=e.split("@"),a="";return t.length>1&&(a=t[0]+"@",e=t[1]),a+function(e,r){for(var t=[],a=e.length;a--;)t[a]=r(e[a]);return t}((e=e.replace(p,".")).split("."),r).join(".")}function P(e){for(var r=[],t=0,a=e.length;t=55296&&s<=56319&&t>1,e+=m(e/r);e>455;a+=u)e=m(e/35);return m(a+36*e/(e+38))},b=function(e){var r,t=[],a=e.length,s=0,o=128,i=72,n=e.lastIndexOf("-");n<0&&(n=0);for(var l=0;l=128&&y("not-basic"),t.push(e.charCodeAt(l));for(var h=n>0?n+1:0;h=a&&y("invalid-input");var v=(r=e.charCodeAt(h++))-48<10?r-22:r-65<26?r-65:r-97<26?r-97:u;(v>=u||v>m((c-s)/p))&&y("overflow"),s+=v*p;var g=f<=i?1:f>=i+26?26:f-i;if(vm(c/P)&&y("overflow"),p*=P}var E=t.length+1;i=w(s-d,E,0==d),m(s/E)>c-o&&y("overflow"),o+=m(s/E),s%=E,t.splice(s++,0,o)}return String.fromCodePoint.apply(String,t)},S=function(e){var r=[],t=(e=P(e)).length,a=128,s=0,o=72,i=!0,n=!1,l=void 0;try{for(var h,d=e[Symbol.iterator]();!(i=(h=d.next()).done);i=!0){var p=h.value;p<128&&r.push(v(p))}}catch(e){n=!0,l=e}finally{try{!i&&d.return&&d.return()}finally{if(n)throw l}}var f=r.length,g=f;for(f&&r.push("-");g=a&&xm((c-s)/D)&&y("overflow"),s+=(b-a)*D,a=b;var O=!0,j=!1,I=void 0;try{for(var A,k=e[Symbol.iterator]();!(O=(A=k.next()).done);O=!0){var C=A.value;if(Cc&&y("overflow"),C==a){for(var L=s,T=u;;T+=u){var z=T<=o?1:T>=o+26?26:T-o;if(L>6|192).toString(16).toUpperCase()+"%"+(63&r|128).toString(16).toUpperCase():"%"+(r>>12|224).toString(16).toUpperCase()+"%"+(r>>6&63|128).toString(16).toUpperCase()+"%"+(63&r|128).toString(16).toUpperCase()}function x(e){for(var r="",t=0,a=e.length;t=194&&s<224){if(a-t>=6){var o=parseInt(e.substr(t+4,2),16);r+=String.fromCharCode((31&s)<<6|63&o)}else r+=e.substr(t,6);t+=6}else if(s>=224){if(a-t>=9){var i=parseInt(e.substr(t+4,2),16),n=parseInt(e.substr(t+7,2),16);r+=String.fromCharCode((15&s)<<12|(63&i)<<6|63&n)}else r+=e.substr(t,9);t+=9}else r+=e.substr(t,3),t+=3}return r}function D(e,r){function t(e){var t=x(e);return t.match(r.UNRESERVED)?t:e}return e.scheme&&(e.scheme=String(e.scheme).replace(r.PCT_ENCODED,t).toLowerCase().replace(r.NOT_SCHEME,"")),void 0!==e.userinfo&&(e.userinfo=String(e.userinfo).replace(r.PCT_ENCODED,t).replace(r.NOT_USERINFO,$).replace(r.PCT_ENCODED,s)),void 0!==e.host&&(e.host=String(e.host).replace(r.PCT_ENCODED,t).toLowerCase().replace(r.NOT_HOST,$).replace(r.PCT_ENCODED,s)),void 0!==e.path&&(e.path=String(e.path).replace(r.PCT_ENCODED,t).replace(e.scheme?r.NOT_PATH:r.NOT_PATH_NOSCHEME,$).replace(r.PCT_ENCODED,s)),void 0!==e.query&&(e.query=String(e.query).replace(r.PCT_ENCODED,t).replace(r.NOT_QUERY,$).replace(r.PCT_ENCODED,s)),void 0!==e.fragment&&(e.fragment=String(e.fragment).replace(r.PCT_ENCODED,t).replace(r.NOT_FRAGMENT,$).replace(r.PCT_ENCODED,s)),e}function O(e){return e.replace(/^0*(.*)/,"$1")||"0"}function j(e,r){var t=e.match(r.IPV4ADDRESS)||[],a=l(t,2)[1];return a?a.split(".").map(O).join("."):e}function I(e,r){var t=e.match(r.IPV6ADDRESS)||[],a=l(t,3),s=a[1],o=a[2];if(s){for(var i=s.toLowerCase().split("::").reverse(),n=l(i,2),c=n[0],u=n[1],h=u?u.split(":").map(O):[],d=c.split(":").map(O),p=r.IPV4ADDRESS.test(d[d.length-1]),f=p?7:8,m=d.length-f,v=Array(f),y=0;y1){var E=v.slice(0,g.index),w=v.slice(g.index+g.length);P=E.join(":")+"::"+w.join(":")}else P=v.join(":");return o&&(P+="%"+o),P}return e}var A=/^(?:([^:\/?#]+):)?(?:\/\/((?:([^\/?#@]*)@)?(\[[^\/?#\]]+\]|[^\/?#:]*)(?:\:(\d*))?))?([^?#]*)(?:\?([^#]*))?(?:#((?:.|\n|\r)*))?/i,k=void 0==="".match(/(){0}/)[1];function C(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},t={},a=!1!==r.iri?n:i;"suffix"===r.reference&&(e=(r.scheme?r.scheme+":":"")+"//"+e);var s=e.match(A);if(s){k?(t.scheme=s[1],t.userinfo=s[3],t.host=s[4],t.port=parseInt(s[5],10),t.path=s[6]||"",t.query=s[7],t.fragment=s[8],isNaN(t.port)&&(t.port=s[5])):(t.scheme=s[1]||void 0,t.userinfo=-1!==e.indexOf("@")?s[3]:void 0,t.host=-1!==e.indexOf("//")?s[4]:void 0,t.port=parseInt(s[5],10),t.path=s[6]||"",t.query=-1!==e.indexOf("?")?s[7]:void 0,t.fragment=-1!==e.indexOf("#")?s[8]:void 0,isNaN(t.port)&&(t.port=e.match(/\/\/(?:.|\n)*\:(?:\/|\?|\#|$)/)?s[4]:void 0)),t.host&&(t.host=I(j(t.host,a),a)),void 0!==t.scheme||void 0!==t.userinfo||void 0!==t.host||void 0!==t.port||t.path||void 0!==t.query?void 0===t.scheme?t.reference="relative":void 0===t.fragment?t.reference="absolute":t.reference="uri":t.reference="same-document",r.reference&&"suffix"!==r.reference&&r.reference!==t.reference&&(t.error=t.error||"URI is not a "+r.reference+" reference.");var o=R[(r.scheme||t.scheme||"").toLowerCase()];if(r.unicodeSupport||o&&o.unicodeSupport)D(t,a);else{if(t.host&&(r.domainHost||o&&o.domainHost))try{t.host=_(t.host.replace(a.PCT_ENCODED,x).toLowerCase())}catch(e){t.error=t.error||"Host's domain name can not be converted to ASCII via punycode: "+e}D(t,i)}o&&o.parse&&o.parse(t,r)}else t.error=t.error||"URI can not be parsed.";return t}function L(e,r){var t=!1!==r.iri?n:i,a=[];return void 0!==e.userinfo&&(a.push(e.userinfo),a.push("@")),void 0!==e.host&&a.push(I(j(String(e.host),t),t).replace(t.IPV6ADDRESS,(function(e,r,t){return"["+r+(t?"%25"+t:"")+"]"}))),"number"!=typeof e.port&&"string"!=typeof e.port||(a.push(":"),a.push(String(e.port))),a.length?a.join(""):void 0}var T=/^\.\.?\//,z=/^\/\.(\/|$)/,N=/^\/\.\.(\/|$)/,q=/^\/?(?:.|\n)*?(?=\/|$)/;function Q(e){for(var r=[];e.length;)if(e.match(T))e=e.replace(T,"");else if(e.match(z))e=e.replace(z,"/");else if(e.match(N))e=e.replace(N,"/"),r.pop();else if("."===e||".."===e)e="";else{var t=e.match(q);if(!t)throw new Error("Unexpected dot segment condition");var a=t[0];e=e.slice(a.length),r.push(a)}return r.join("")}function V(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},t=r.iri?n:i,a=[],s=R[(r.scheme||e.scheme||"").toLowerCase()];if(s&&s.serialize&&s.serialize(e,r),e.host)if(t.IPV6ADDRESS.test(e.host));else if(r.domainHost||s&&s.domainHost)try{e.host=r.iri?F(e.host):_(e.host.replace(t.PCT_ENCODED,x).toLowerCase())}catch(t){e.error=e.error||"Host's domain name can not be converted to "+(r.iri?"Unicode":"ASCII")+" via punycode: "+t}D(e,t),"suffix"!==r.reference&&e.scheme&&(a.push(e.scheme),a.push(":"));var o=L(e,r);if(void 0!==o&&("suffix"!==r.reference&&a.push("//"),a.push(o),e.path&&"/"!==e.path.charAt(0)&&a.push("/")),void 0!==e.path){var l=e.path;r.absolutePath||s&&s.absolutePath||(l=Q(l)),void 0===o&&(l=l.replace(/^\/\//,"/%2F")),a.push(l)}return void 0!==e.query&&(a.push("?"),a.push(e.query)),void 0!==e.fragment&&(a.push("#"),a.push(e.fragment)),a.join("")}function U(e,r){var t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},a={};return arguments[3]||(e=C(V(e,t),t),r=C(V(r,t),t)),!(t=t||{}).tolerant&&r.scheme?(a.scheme=r.scheme,a.userinfo=r.userinfo,a.host=r.host,a.port=r.port,a.path=Q(r.path||""),a.query=r.query):(void 0!==r.userinfo||void 0!==r.host||void 0!==r.port?(a.userinfo=r.userinfo,a.host=r.host,a.port=r.port,a.path=Q(r.path||""),a.query=r.query):(r.path?("/"===r.path.charAt(0)?a.path=Q(r.path):(void 0===e.userinfo&&void 0===e.host&&void 0===e.port||e.path?e.path?a.path=e.path.slice(0,e.path.lastIndexOf("/")+1)+r.path:a.path=r.path:a.path="/"+r.path,a.path=Q(a.path)),a.query=r.query):(a.path=e.path,void 0!==r.query?a.query=r.query:a.query=e.query),a.userinfo=e.userinfo,a.host=e.host,a.port=e.port),a.scheme=e.scheme),a.fragment=r.fragment,a}function H(e,r){return e&&e.toString().replace(r&&r.iri?n.PCT_ENCODED:i.PCT_ENCODED,x)}var M={scheme:"http",domainHost:!0,parse:function(e,r){return e.host||(e.error=e.error||"HTTP URIs must have a host."),e},serialize:function(e,r){var t="https"===String(e.scheme).toLowerCase();return e.port!==(t?443:80)&&""!==e.port||(e.port=void 0),e.path||(e.path="/"),e}},K={scheme:"https",domainHost:M.domainHost,parse:M.parse,serialize:M.serialize};function B(e){return"boolean"==typeof e.secure?e.secure:"wss"===String(e.scheme).toLowerCase()}var J={scheme:"ws",domainHost:!0,parse:function(e,r){var t=e;return t.secure=B(t),t.resourceName=(t.path||"/")+(t.query?"?"+t.query:""),t.path=void 0,t.query=void 0,t},serialize:function(e,r){if(e.port!==(B(e)?443:80)&&""!==e.port||(e.port=void 0),"boolean"==typeof e.secure&&(e.scheme=e.secure?"wss":"ws",e.secure=void 0),e.resourceName){var t=e.resourceName.split("?"),a=l(t,2),s=a[0],o=a[1];e.path=s&&"/"!==s?s:void 0,e.query=o,e.resourceName=void 0}return e.fragment=void 0,e}},Z={scheme:"wss",domainHost:J.domainHost,parse:J.parse,serialize:J.serialize},Y={},G="[A-Za-z0-9\\-\\.\\_\\~\\xA0-\\u200D\\u2010-\\u2029\\u202F-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]",W="[0-9A-Fa-f]",X=t(t("%[EFef]"+W+"%"+W+W+"%"+W+W)+"|"+t("%[89A-Fa-f]"+W+"%"+W+W)+"|"+t("%"+W+W)),ee=r("[\\!\\$\\%\\'\\(\\)\\*\\+\\,\\-\\.0-9\\<\\>A-Z\\x5E-\\x7E]",'[\\"\\\\]'),re=new RegExp(G,"g"),te=new RegExp(X,"g"),ae=new RegExp(r("[^]","[A-Za-z0-9\\!\\$\\%\\'\\*\\+\\-\\^\\_\\`\\{\\|\\}\\~]","[\\.]",'[\\"]',ee),"g"),se=new RegExp(r("[^]",G,"[\\!\\$\\'\\(\\)\\*\\+\\,\\;\\:\\@]"),"g"),oe=se;function ie(e){var r=x(e);return r.match(re)?r:e}var ne={scheme:"mailto",parse:function(e,r){var t=e,a=t.to=t.path?t.path.split(","):[];if(t.path=void 0,t.query){for(var s=!1,o={},i=t.query.split("&"),n=0,l=i.length;n} errors optional array of validation errors, if not passed errors from the instance are used.\n * @param {Object} options optional options with properties `separator` and `dataVar`.\n * @return {String} human readable string with all errors descriptions\n */\nfunction errorsText(errors, options) {\n errors = errors || this.errors;\n if (!errors) return 'No errors';\n options = options || {};\n var separator = options.separator === undefined ? ', ' : options.separator;\n var dataVar = options.dataVar === undefined ? 'data' : options.dataVar;\n\n var text = '';\n for (var i=0; i%\\\\^`{|}]|%[0-9a-f]{2})|\\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\\*)?)*\\})*$/i;\n// For the source: https://gist.github.com/dperini/729294\n// For test cases: https://mathiasbynens.be/demo/url-regex\n// @todo Delete current URL in favour of the commented out URL rule when this issue is fixed https://github.com/eslint/eslint/issues/7983.\n// var URL = /^(?:(?:https?|ftp):\\/\\/)(?:\\S+(?::\\S*)?@)?(?:(?!10(?:\\.\\d{1,3}){3})(?!127(?:\\.\\d{1,3}){3})(?!169\\.254(?:\\.\\d{1,3}){2})(?!192\\.168(?:\\.\\d{1,3}){2})(?!172\\.(?:1[6-9]|2\\d|3[0-1])(?:\\.\\d{1,3}){2})(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u{00a1}-\\u{ffff}0-9]+-)*[a-z\\u{00a1}-\\u{ffff}0-9]+)(?:\\.(?:[a-z\\u{00a1}-\\u{ffff}0-9]+-)*[a-z\\u{00a1}-\\u{ffff}0-9]+)*(?:\\.(?:[a-z\\u{00a1}-\\u{ffff}]{2,})))(?::\\d{2,5})?(?:\\/[^\\s]*)?$/iu;\nvar URL = /^(?:(?:http[s\\u017F]?|ftp):\\/\\/)(?:(?:[\\0-\\x08\\x0E-\\x1F!-\\x9F\\xA1-\\u167F\\u1681-\\u1FFF\\u200B-\\u2027\\u202A-\\u202E\\u2030-\\u205E\\u2060-\\u2FFF\\u3001-\\uD7FF\\uE000-\\uFEFE\\uFF00-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+(?::(?:[\\0-\\x08\\x0E-\\x1F!-\\x9F\\xA1-\\u167F\\u1681-\\u1FFF\\u200B-\\u2027\\u202A-\\u202E\\u2030-\\u205E\\u2060-\\u2FFF\\u3001-\\uD7FF\\uE000-\\uFEFE\\uFF00-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])*)?@)?(?:(?!10(?:\\.[0-9]{1,3}){3})(?!127(?:\\.[0-9]{1,3}){3})(?!169\\.254(?:\\.[0-9]{1,3}){2})(?!192\\.168(?:\\.[0-9]{1,3}){2})(?!172\\.(?:1[6-9]|2[0-9]|3[01])(?:\\.[0-9]{1,3}){2})(?:[1-9][0-9]?|1[0-9][0-9]|2[01][0-9]|22[0-3])(?:\\.(?:1?[0-9]{1,2}|2[0-4][0-9]|25[0-5])){2}(?:\\.(?:[1-9][0-9]?|1[0-9][0-9]|2[0-4][0-9]|25[0-4]))|(?:(?:(?:[0-9a-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+-)*(?:[0-9a-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+)(?:\\.(?:(?:[0-9a-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+-)*(?:[0-9a-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+)*(?:\\.(?:(?:[a-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]){2,})))(?::[0-9]{2,5})?(?:\\/(?:[\\0-\\x08\\x0E-\\x1F!-\\x9F\\xA1-\\u167F\\u1681-\\u1FFF\\u200B-\\u2027\\u202A-\\u202E\\u2030-\\u205E\\u2060-\\u2FFF\\u3001-\\uD7FF\\uE000-\\uFEFE\\uFF00-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])*)?$/i;\nvar UUID = /^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i;\nvar JSON_POINTER = /^(?:\\/(?:[^~/]|~0|~1)*)*$/;\nvar JSON_POINTER_URI_FRAGMENT = /^#(?:\\/(?:[a-z0-9_\\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i;\nvar RELATIVE_JSON_POINTER = /^(?:0|[1-9][0-9]*)(?:#|(?:\\/(?:[^~/]|~0|~1)*)*)$/;\n\n\nmodule.exports = formats;\n\nfunction formats(mode) {\n mode = mode == 'full' ? 'full' : 'fast';\n return util.copy(formats[mode]);\n}\n\n\nformats.fast = {\n // date: http://tools.ietf.org/html/rfc3339#section-5.6\n date: /^\\d\\d\\d\\d-[0-1]\\d-[0-3]\\d$/,\n // date-time: http://tools.ietf.org/html/rfc3339#section-5.6\n time: /^(?:[0-2]\\d:[0-5]\\d:[0-5]\\d|23:59:60)(?:\\.\\d+)?(?:z|[+-]\\d\\d(?::?\\d\\d)?)?$/i,\n 'date-time': /^\\d\\d\\d\\d-[0-1]\\d-[0-3]\\d[t\\s](?:[0-2]\\d:[0-5]\\d:[0-5]\\d|23:59:60)(?:\\.\\d+)?(?:z|[+-]\\d\\d(?::?\\d\\d)?)$/i,\n // uri: https://github.com/mafintosh/is-my-json-valid/blob/master/formats.js\n uri: /^(?:[a-z][a-z0-9+\\-.]*:)(?:\\/?\\/)?[^\\s]*$/i,\n 'uri-reference': /^(?:(?:[a-z][a-z0-9+\\-.]*:)?\\/?\\/)?(?:[^\\\\\\s#][^\\s#]*)?(?:#[^\\\\\\s]*)?$/i,\n 'uri-template': URITEMPLATE,\n url: URL,\n // email (sources from jsen validator):\n // http://stackoverflow.com/questions/201323/using-a-regular-expression-to-validate-an-email-address#answer-8829363\n // http://www.w3.org/TR/html5/forms.html#valid-e-mail-address (search for 'willful violation')\n email: /^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i,\n hostname: HOSTNAME,\n // optimized https://www.safaribooksonline.com/library/view/regular-expressions-cookbook/9780596802837/ch07s16.html\n ipv4: /^(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)$/,\n // optimized http://stackoverflow.com/questions/53497/regular-expression-that-matches-valid-ipv6-addresses\n ipv6: /^\\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:)))(?:%.+)?\\s*$/i,\n regex: regex,\n // uuid: http://tools.ietf.org/html/rfc4122\n uuid: UUID,\n // JSON-pointer: https://tools.ietf.org/html/rfc6901\n // uri fragment: https://tools.ietf.org/html/rfc3986#appendix-A\n 'json-pointer': JSON_POINTER,\n 'json-pointer-uri-fragment': JSON_POINTER_URI_FRAGMENT,\n // relative JSON-pointer: http://tools.ietf.org/html/draft-luff-relative-json-pointer-00\n 'relative-json-pointer': RELATIVE_JSON_POINTER\n};\n\n\nformats.full = {\n date: date,\n time: time,\n 'date-time': date_time,\n uri: uri,\n 'uri-reference': URIREF,\n 'uri-template': URITEMPLATE,\n url: URL,\n email: /^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,\n hostname: HOSTNAME,\n ipv4: /^(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)$/,\n ipv6: /^\\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:)))(?:%.+)?\\s*$/i,\n regex: regex,\n uuid: UUID,\n 'json-pointer': JSON_POINTER,\n 'json-pointer-uri-fragment': JSON_POINTER_URI_FRAGMENT,\n 'relative-json-pointer': RELATIVE_JSON_POINTER\n};\n\n\nfunction isLeapYear(year) {\n // https://tools.ietf.org/html/rfc3339#appendix-C\n return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);\n}\n\n\nfunction date(str) {\n // full-date from http://tools.ietf.org/html/rfc3339#section-5.6\n var matches = str.match(DATE);\n if (!matches) return false;\n\n var year = +matches[1];\n var month = +matches[2];\n var day = +matches[3];\n\n return month >= 1 && month <= 12 && day >= 1 &&\n day <= (month == 2 && isLeapYear(year) ? 29 : DAYS[month]);\n}\n\n\nfunction time(str, full) {\n var matches = str.match(TIME);\n if (!matches) return false;\n\n var hour = matches[1];\n var minute = matches[2];\n var second = matches[3];\n var timeZone = matches[5];\n return ((hour <= 23 && minute <= 59 && second <= 59) ||\n (hour == 23 && minute == 59 && second == 60)) &&\n (!full || timeZone);\n}\n\n\nvar DATE_TIME_SEPARATOR = /t|\\s/i;\nfunction date_time(str) {\n // http://tools.ietf.org/html/rfc3339#section-5.6\n var dateTime = str.split(DATE_TIME_SEPARATOR);\n return dateTime.length == 2 && date(dateTime[0]) && time(dateTime[1], true);\n}\n\n\nvar NOT_URI_FRAGMENT = /\\/|:/;\nfunction uri(str) {\n // http://jmrware.com/articles/2009/uri_regexp/URI_regex.html + optional protocol + required \".\"\n return NOT_URI_FRAGMENT.test(str) && URI.test(str);\n}\n\n\nvar Z_ANCHOR = /[^\\\\]\\\\Z/;\nfunction regex(str) {\n if (Z_ANCHOR.test(str)) return false;\n try {\n new RegExp(str);\n return true;\n } catch(e) {\n return false;\n }\n}\n","'use strict';\n\nvar resolve = require('./resolve')\n , util = require('./util')\n , errorClasses = require('./error_classes')\n , stableStringify = require('fast-json-stable-stringify');\n\nvar validateGenerator = require('../dotjs/validate');\n\n/**\n * Functions below are used inside compiled validations function\n */\n\nvar ucs2length = util.ucs2length;\nvar equal = require('fast-deep-equal');\n\n// this error is thrown by async schemas to return validation errors via exception\nvar ValidationError = errorClasses.Validation;\n\nmodule.exports = compile;\n\n\n/**\n * Compiles schema to validation function\n * @this Ajv\n * @param {Object} schema schema object\n * @param {Object} root object with information about the root schema for this schema\n * @param {Object} localRefs the hash of local references inside the schema (created by resolve.id), used for inline resolution\n * @param {String} baseId base ID for IDs in the schema\n * @return {Function} validation function\n */\nfunction compile(schema, root, localRefs, baseId) {\n /* jshint validthis: true, evil: true */\n /* eslint no-shadow: 0 */\n var self = this\n , opts = this._opts\n , refVal = [ undefined ]\n , refs = {}\n , patterns = []\n , patternsHash = {}\n , defaults = []\n , defaultsHash = {}\n , customRules = [];\n\n root = root || { schema: schema, refVal: refVal, refs: refs };\n\n var c = checkCompiling.call(this, schema, root, baseId);\n var compilation = this._compilations[c.index];\n if (c.compiling) return (compilation.callValidate = callValidate);\n\n var formats = this._formats;\n var RULES = this.RULES;\n\n try {\n var v = localCompile(schema, root, localRefs, baseId);\n compilation.validate = v;\n var cv = compilation.callValidate;\n if (cv) {\n cv.schema = v.schema;\n cv.errors = null;\n cv.refs = v.refs;\n cv.refVal = v.refVal;\n cv.root = v.root;\n cv.$async = v.$async;\n if (opts.sourceCode) cv.source = v.source;\n }\n return v;\n } finally {\n endCompiling.call(this, schema, root, baseId);\n }\n\n /* @this {*} - custom context, see passContext option */\n function callValidate() {\n /* jshint validthis: true */\n var validate = compilation.validate;\n var result = validate.apply(this, arguments);\n callValidate.errors = validate.errors;\n return result;\n }\n\n function localCompile(_schema, _root, localRefs, baseId) {\n var isRoot = !_root || (_root && _root.schema == _schema);\n if (_root.schema != root.schema)\n return compile.call(self, _schema, _root, localRefs, baseId);\n\n var $async = _schema.$async === true;\n\n var sourceCode = validateGenerator({\n isTop: true,\n schema: _schema,\n isRoot: isRoot,\n baseId: baseId,\n root: _root,\n schemaPath: '',\n errSchemaPath: '#',\n errorPath: '\"\"',\n MissingRefError: errorClasses.MissingRef,\n RULES: RULES,\n validate: validateGenerator,\n util: util,\n resolve: resolve,\n resolveRef: resolveRef,\n usePattern: usePattern,\n useDefault: useDefault,\n useCustomRule: useCustomRule,\n opts: opts,\n formats: formats,\n logger: self.logger,\n self: self\n });\n\n sourceCode = vars(refVal, refValCode) + vars(patterns, patternCode)\n + vars(defaults, defaultCode) + vars(customRules, customRuleCode)\n + sourceCode;\n\n if (opts.processCode) sourceCode = opts.processCode(sourceCode, _schema);\n // console.log('\\n\\n\\n *** \\n', JSON.stringify(sourceCode));\n var validate;\n try {\n var makeValidate = new Function(\n 'self',\n 'RULES',\n 'formats',\n 'root',\n 'refVal',\n 'defaults',\n 'customRules',\n 'equal',\n 'ucs2length',\n 'ValidationError',\n sourceCode\n );\n\n validate = makeValidate(\n self,\n RULES,\n formats,\n root,\n refVal,\n defaults,\n customRules,\n equal,\n ucs2length,\n ValidationError\n );\n\n refVal[0] = validate;\n } catch(e) {\n self.logger.error('Error compiling schema, function code:', sourceCode);\n throw e;\n }\n\n validate.schema = _schema;\n validate.errors = null;\n validate.refs = refs;\n validate.refVal = refVal;\n validate.root = isRoot ? validate : _root;\n if ($async) validate.$async = true;\n if (opts.sourceCode === true) {\n validate.source = {\n code: sourceCode,\n patterns: patterns,\n defaults: defaults\n };\n }\n\n return validate;\n }\n\n function resolveRef(baseId, ref, isRoot) {\n ref = resolve.url(baseId, ref);\n var refIndex = refs[ref];\n var _refVal, refCode;\n if (refIndex !== undefined) {\n _refVal = refVal[refIndex];\n refCode = 'refVal[' + refIndex + ']';\n return resolvedRef(_refVal, refCode);\n }\n if (!isRoot && root.refs) {\n var rootRefId = root.refs[ref];\n if (rootRefId !== undefined) {\n _refVal = root.refVal[rootRefId];\n refCode = addLocalRef(ref, _refVal);\n return resolvedRef(_refVal, refCode);\n }\n }\n\n refCode = addLocalRef(ref);\n var v = resolve.call(self, localCompile, root, ref);\n if (v === undefined) {\n var localSchema = localRefs && localRefs[ref];\n if (localSchema) {\n v = resolve.inlineRef(localSchema, opts.inlineRefs)\n ? localSchema\n : compile.call(self, localSchema, root, localRefs, baseId);\n }\n }\n\n if (v === undefined) {\n removeLocalRef(ref);\n } else {\n replaceLocalRef(ref, v);\n return resolvedRef(v, refCode);\n }\n }\n\n function addLocalRef(ref, v) {\n var refId = refVal.length;\n refVal[refId] = v;\n refs[ref] = refId;\n return 'refVal' + refId;\n }\n\n function removeLocalRef(ref) {\n delete refs[ref];\n }\n\n function replaceLocalRef(ref, v) {\n var refId = refs[ref];\n refVal[refId] = v;\n }\n\n function resolvedRef(refVal, code) {\n return typeof refVal == 'object' || typeof refVal == 'boolean'\n ? { code: code, schema: refVal, inline: true }\n : { code: code, $async: refVal && !!refVal.$async };\n }\n\n function usePattern(regexStr) {\n var index = patternsHash[regexStr];\n if (index === undefined) {\n index = patternsHash[regexStr] = patterns.length;\n patterns[index] = regexStr;\n }\n return 'pattern' + index;\n }\n\n function useDefault(value) {\n switch (typeof value) {\n case 'boolean':\n case 'number':\n return '' + value;\n case 'string':\n return util.toQuotedString(value);\n case 'object':\n if (value === null) return 'null';\n var valueStr = stableStringify(value);\n var index = defaultsHash[valueStr];\n if (index === undefined) {\n index = defaultsHash[valueStr] = defaults.length;\n defaults[index] = value;\n }\n return 'default' + index;\n }\n }\n\n function useCustomRule(rule, schema, parentSchema, it) {\n if (self._opts.validateSchema !== false) {\n var deps = rule.definition.dependencies;\n if (deps && !deps.every(function(keyword) {\n return Object.prototype.hasOwnProperty.call(parentSchema, keyword);\n }))\n throw new Error('parent schema must have all required keywords: ' + deps.join(','));\n\n var validateSchema = rule.definition.validateSchema;\n if (validateSchema) {\n var valid = validateSchema(schema);\n if (!valid) {\n var message = 'keyword schema is invalid: ' + self.errorsText(validateSchema.errors);\n if (self._opts.validateSchema == 'log') self.logger.error(message);\n else throw new Error(message);\n }\n }\n }\n\n var compile = rule.definition.compile\n , inline = rule.definition.inline\n , macro = rule.definition.macro;\n\n var validate;\n if (compile) {\n validate = compile.call(self, schema, parentSchema, it);\n } else if (macro) {\n validate = macro.call(self, schema, parentSchema, it);\n if (opts.validateSchema !== false) self.validateSchema(validate, true);\n } else if (inline) {\n validate = inline.call(self, it, rule.keyword, schema, parentSchema);\n } else {\n validate = rule.definition.validate;\n if (!validate) return;\n }\n\n if (validate === undefined)\n throw new Error('custom keyword \"' + rule.keyword + '\"failed to compile');\n\n var index = customRules.length;\n customRules[index] = validate;\n\n return {\n code: 'customRule' + index,\n validate: validate\n };\n }\n}\n\n\n/**\n * Checks if the schema is currently compiled\n * @this Ajv\n * @param {Object} schema schema to compile\n * @param {Object} root root object\n * @param {String} baseId base schema ID\n * @return {Object} object with properties \"index\" (compilation index) and \"compiling\" (boolean)\n */\nfunction checkCompiling(schema, root, baseId) {\n /* jshint validthis: true */\n var index = compIndex.call(this, schema, root, baseId);\n if (index >= 0) return { index: index, compiling: true };\n index = this._compilations.length;\n this._compilations[index] = {\n schema: schema,\n root: root,\n baseId: baseId\n };\n return { index: index, compiling: false };\n}\n\n\n/**\n * Removes the schema from the currently compiled list\n * @this Ajv\n * @param {Object} schema schema to compile\n * @param {Object} root root object\n * @param {String} baseId base schema ID\n */\nfunction endCompiling(schema, root, baseId) {\n /* jshint validthis: true */\n var i = compIndex.call(this, schema, root, baseId);\n if (i >= 0) this._compilations.splice(i, 1);\n}\n\n\n/**\n * Index of schema compilation in the currently compiled list\n * @this Ajv\n * @param {Object} schema schema to compile\n * @param {Object} root root object\n * @param {String} baseId base schema ID\n * @return {Integer} compilation index\n */\nfunction compIndex(schema, root, baseId) {\n /* jshint validthis: true */\n for (var i=0; i= 0xD800 && value <= 0xDBFF && pos < len) {\n // high surrogate, and there is a next character\n value = str.charCodeAt(pos);\n if ((value & 0xFC00) == 0xDC00) pos++; // low surrogate\n }\n }\n return length;\n};\n","'use strict';\n\n\nmodule.exports = {\n copy: copy,\n checkDataType: checkDataType,\n checkDataTypes: checkDataTypes,\n coerceToTypes: coerceToTypes,\n toHash: toHash,\n getProperty: getProperty,\n escapeQuotes: escapeQuotes,\n equal: require('fast-deep-equal'),\n ucs2length: require('./ucs2length'),\n varOccurences: varOccurences,\n varReplace: varReplace,\n schemaHasRules: schemaHasRules,\n schemaHasRulesExcept: schemaHasRulesExcept,\n schemaUnknownRules: schemaUnknownRules,\n toQuotedString: toQuotedString,\n getPathExpr: getPathExpr,\n getPath: getPath,\n getData: getData,\n unescapeFragment: unescapeFragment,\n unescapeJsonPointer: unescapeJsonPointer,\n escapeFragment: escapeFragment,\n escapeJsonPointer: escapeJsonPointer\n};\n\n\nfunction copy(o, to) {\n to = to || {};\n for (var key in o) to[key] = o[key];\n return to;\n}\n\n\nfunction checkDataType(dataType, data, strictNumbers, negate) {\n var EQUAL = negate ? ' !== ' : ' === '\n , AND = negate ? ' || ' : ' && '\n , OK = negate ? '!' : ''\n , NOT = negate ? '' : '!';\n switch (dataType) {\n case 'null': return data + EQUAL + 'null';\n case 'array': return OK + 'Array.isArray(' + data + ')';\n case 'object': return '(' + OK + data + AND +\n 'typeof ' + data + EQUAL + '\"object\"' + AND +\n NOT + 'Array.isArray(' + data + '))';\n case 'integer': return '(typeof ' + data + EQUAL + '\"number\"' + AND +\n NOT + '(' + data + ' % 1)' +\n AND + data + EQUAL + data +\n (strictNumbers ? (AND + OK + 'isFinite(' + data + ')') : '') + ')';\n case 'number': return '(typeof ' + data + EQUAL + '\"' + dataType + '\"' +\n (strictNumbers ? (AND + OK + 'isFinite(' + data + ')') : '') + ')';\n default: return 'typeof ' + data + EQUAL + '\"' + dataType + '\"';\n }\n}\n\n\nfunction checkDataTypes(dataTypes, data, strictNumbers) {\n switch (dataTypes.length) {\n case 1: return checkDataType(dataTypes[0], data, strictNumbers, true);\n default:\n var code = '';\n var types = toHash(dataTypes);\n if (types.array && types.object) {\n code = types.null ? '(': '(!' + data + ' || ';\n code += 'typeof ' + data + ' !== \"object\")';\n delete types.null;\n delete types.array;\n delete types.object;\n }\n if (types.number) delete types.integer;\n for (var t in types)\n code += (code ? ' && ' : '' ) + checkDataType(t, data, strictNumbers, true);\n\n return code;\n }\n}\n\n\nvar COERCE_TO_TYPES = toHash([ 'string', 'number', 'integer', 'boolean', 'null' ]);\nfunction coerceToTypes(optionCoerceTypes, dataTypes) {\n if (Array.isArray(dataTypes)) {\n var types = [];\n for (var i=0; i= lvl) throw new Error('Cannot access property/index ' + up + ' levels up, current level is ' + lvl);\n return paths[lvl - up];\n }\n\n if (up > lvl) throw new Error('Cannot access data ' + up + ' levels up, current level is ' + lvl);\n data = 'data' + ((lvl - up) || '');\n if (!jsonPointer) return data;\n }\n\n var expr = data;\n var segments = jsonPointer.split('/');\n for (var i=0; i',\n $notOp = $isMax ? '>' : '<',\n $errorKeyword = undefined;\n if (!($isData || typeof $schema == 'number' || $schema === undefined)) {\n throw new Error($keyword + ' must be number');\n }\n if (!($isDataExcl || $schemaExcl === undefined || typeof $schemaExcl == 'number' || typeof $schemaExcl == 'boolean')) {\n throw new Error($exclusiveKeyword + ' must be number or boolean');\n }\n if ($isDataExcl) {\n var $schemaValueExcl = it.util.getData($schemaExcl.$data, $dataLvl, it.dataPathArr),\n $exclusive = 'exclusive' + $lvl,\n $exclType = 'exclType' + $lvl,\n $exclIsNumber = 'exclIsNumber' + $lvl,\n $opExpr = 'op' + $lvl,\n $opStr = '\\' + ' + $opExpr + ' + \\'';\n out += ' var schemaExcl' + ($lvl) + ' = ' + ($schemaValueExcl) + '; ';\n $schemaValueExcl = 'schemaExcl' + $lvl;\n out += ' var ' + ($exclusive) + '; var ' + ($exclType) + ' = typeof ' + ($schemaValueExcl) + '; if (' + ($exclType) + ' != \\'boolean\\' && ' + ($exclType) + ' != \\'undefined\\' && ' + ($exclType) + ' != \\'number\\') { ';\n var $errorKeyword = $exclusiveKeyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || '_exclusiveLimit') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'' + ($exclusiveKeyword) + ' should be boolean\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } else if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n out += ' ' + ($exclType) + ' == \\'number\\' ? ( (' + ($exclusive) + ' = ' + ($schemaValue) + ' === undefined || ' + ($schemaValueExcl) + ' ' + ($op) + '= ' + ($schemaValue) + ') ? ' + ($data) + ' ' + ($notOp) + '= ' + ($schemaValueExcl) + ' : ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ' ) : ( (' + ($exclusive) + ' = ' + ($schemaValueExcl) + ' === true) ? ' + ($data) + ' ' + ($notOp) + '= ' + ($schemaValue) + ' : ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ' ) || ' + ($data) + ' !== ' + ($data) + ') { var op' + ($lvl) + ' = ' + ($exclusive) + ' ? \\'' + ($op) + '\\' : \\'' + ($op) + '=\\'; ';\n if ($schema === undefined) {\n $errorKeyword = $exclusiveKeyword;\n $errSchemaPath = it.errSchemaPath + '/' + $exclusiveKeyword;\n $schemaValue = $schemaValueExcl;\n $isData = $isDataExcl;\n }\n } else {\n var $exclIsNumber = typeof $schemaExcl == 'number',\n $opStr = $op;\n if ($exclIsNumber && $isData) {\n var $opExpr = '\\'' + $opStr + '\\'';\n out += ' if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n out += ' ( ' + ($schemaValue) + ' === undefined || ' + ($schemaExcl) + ' ' + ($op) + '= ' + ($schemaValue) + ' ? ' + ($data) + ' ' + ($notOp) + '= ' + ($schemaExcl) + ' : ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ' ) || ' + ($data) + ' !== ' + ($data) + ') { ';\n } else {\n if ($exclIsNumber && $schema === undefined) {\n $exclusive = true;\n $errorKeyword = $exclusiveKeyword;\n $errSchemaPath = it.errSchemaPath + '/' + $exclusiveKeyword;\n $schemaValue = $schemaExcl;\n $notOp += '=';\n } else {\n if ($exclIsNumber) $schemaValue = Math[$isMax ? 'min' : 'max']($schemaExcl, $schema);\n if ($schemaExcl === ($exclIsNumber ? $schemaValue : true)) {\n $exclusive = true;\n $errorKeyword = $exclusiveKeyword;\n $errSchemaPath = it.errSchemaPath + '/' + $exclusiveKeyword;\n $notOp += '=';\n } else {\n $exclusive = false;\n $opStr += '=';\n }\n }\n var $opExpr = '\\'' + $opStr + '\\'';\n out += ' if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n out += ' ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ' || ' + ($data) + ' !== ' + ($data) + ') { ';\n }\n }\n $errorKeyword = $errorKeyword || $keyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || '_limit') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { comparison: ' + ($opExpr) + ', limit: ' + ($schemaValue) + ', exclusive: ' + ($exclusive) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be ' + ($opStr) + ' ';\n if ($isData) {\n out += '\\' + ' + ($schemaValue);\n } else {\n out += '' + ($schemaValue) + '\\'';\n }\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate__limitItems(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $errorKeyword;\n var $data = 'data' + ($dataLvl || '');\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n if (!($isData || typeof $schema == 'number')) {\n throw new Error($keyword + ' must be number');\n }\n var $op = $keyword == 'maxItems' ? '>' : '<';\n out += 'if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n out += ' ' + ($data) + '.length ' + ($op) + ' ' + ($schemaValue) + ') { ';\n var $errorKeyword = $keyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || '_limitItems') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schemaValue) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT have ';\n if ($keyword == 'maxItems') {\n out += 'more';\n } else {\n out += 'fewer';\n }\n out += ' than ';\n if ($isData) {\n out += '\\' + ' + ($schemaValue) + ' + \\'';\n } else {\n out += '' + ($schema);\n }\n out += ' items\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += '} ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate__limitLength(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $errorKeyword;\n var $data = 'data' + ($dataLvl || '');\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n if (!($isData || typeof $schema == 'number')) {\n throw new Error($keyword + ' must be number');\n }\n var $op = $keyword == 'maxLength' ? '>' : '<';\n out += 'if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n if (it.opts.unicode === false) {\n out += ' ' + ($data) + '.length ';\n } else {\n out += ' ucs2length(' + ($data) + ') ';\n }\n out += ' ' + ($op) + ' ' + ($schemaValue) + ') { ';\n var $errorKeyword = $keyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || '_limitLength') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schemaValue) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT be ';\n if ($keyword == 'maxLength') {\n out += 'longer';\n } else {\n out += 'shorter';\n }\n out += ' than ';\n if ($isData) {\n out += '\\' + ' + ($schemaValue) + ' + \\'';\n } else {\n out += '' + ($schema);\n }\n out += ' characters\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += '} ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate__limitProperties(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $errorKeyword;\n var $data = 'data' + ($dataLvl || '');\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n if (!($isData || typeof $schema == 'number')) {\n throw new Error($keyword + ' must be number');\n }\n var $op = $keyword == 'maxProperties' ? '>' : '<';\n out += 'if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n out += ' Object.keys(' + ($data) + ').length ' + ($op) + ' ' + ($schemaValue) + ') { ';\n var $errorKeyword = $keyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || '_limitProperties') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schemaValue) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT have ';\n if ($keyword == 'maxProperties') {\n out += 'more';\n } else {\n out += 'fewer';\n }\n out += ' than ';\n if ($isData) {\n out += '\\' + ' + ($schemaValue) + ' + \\'';\n } else {\n out += '' + ($schema);\n }\n out += ' properties\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += '} ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_allOf(it, $keyword, $ruleType) {\n var out = ' ';\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $currentBaseId = $it.baseId,\n $allSchemasEmpty = true;\n var arr1 = $schema;\n if (arr1) {\n var $sch, $i = -1,\n l1 = arr1.length - 1;\n while ($i < l1) {\n $sch = arr1[$i += 1];\n if ((it.opts.strictKeywords ? (typeof $sch == 'object' && Object.keys($sch).length > 0) || $sch === false : it.util.schemaHasRules($sch, it.RULES.all))) {\n $allSchemasEmpty = false;\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + '[' + $i + ']';\n $it.errSchemaPath = $errSchemaPath + '/' + $i;\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n }\n }\n if ($breakOnError) {\n if ($allSchemasEmpty) {\n out += ' if (true) { ';\n } else {\n out += ' ' + ($closingBraces.slice(0, -1)) + ' ';\n }\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_anyOf(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $noEmptySchema = $schema.every(function($sch) {\n return (it.opts.strictKeywords ? (typeof $sch == 'object' && Object.keys($sch).length > 0) || $sch === false : it.util.schemaHasRules($sch, it.RULES.all));\n });\n if ($noEmptySchema) {\n var $currentBaseId = $it.baseId;\n out += ' var ' + ($errs) + ' = errors; var ' + ($valid) + ' = false; ';\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n var arr1 = $schema;\n if (arr1) {\n var $sch, $i = -1,\n l1 = arr1.length - 1;\n while ($i < l1) {\n $sch = arr1[$i += 1];\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + '[' + $i + ']';\n $it.errSchemaPath = $errSchemaPath + '/' + $i;\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n out += ' ' + ($valid) + ' = ' + ($valid) + ' || ' + ($nextValid) + '; if (!' + ($valid) + ') { ';\n $closingBraces += '}';\n }\n }\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += ' ' + ($closingBraces) + ' if (!' + ($valid) + ') { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('anyOf') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should match some schema in anyOf\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError(vErrors); ';\n } else {\n out += ' validate.errors = vErrors; return false; ';\n }\n }\n out += ' } else { errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; } ';\n if (it.opts.allErrors) {\n out += ' } ';\n }\n } else {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_comment(it, $keyword, $ruleType) {\n var out = ' ';\n var $schema = it.schema[$keyword];\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $comment = it.util.toQuotedString($schema);\n if (it.opts.$comment === true) {\n out += ' console.log(' + ($comment) + ');';\n } else if (typeof it.opts.$comment == 'function') {\n out += ' self._opts.$comment(' + ($comment) + ', ' + (it.util.toQuotedString($errSchemaPath)) + ', validate.root.schema);';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_const(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n if (!$isData) {\n out += ' var schema' + ($lvl) + ' = validate.schema' + ($schemaPath) + ';';\n }\n out += 'var ' + ($valid) + ' = equal(' + ($data) + ', schema' + ($lvl) + '); if (!' + ($valid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('const') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { allowedValue: schema' + ($lvl) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be equal to constant\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' }';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_contains(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $idx = 'i' + $lvl,\n $dataNxt = $it.dataLevel = it.dataLevel + 1,\n $nextData = 'data' + $dataNxt,\n $currentBaseId = it.baseId,\n $nonEmptySchema = (it.opts.strictKeywords ? (typeof $schema == 'object' && Object.keys($schema).length > 0) || $schema === false : it.util.schemaHasRules($schema, it.RULES.all));\n out += 'var ' + ($errs) + ' = errors;var ' + ($valid) + ';';\n if ($nonEmptySchema) {\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n $it.schema = $schema;\n $it.schemaPath = $schemaPath;\n $it.errSchemaPath = $errSchemaPath;\n out += ' var ' + ($nextValid) + ' = false; for (var ' + ($idx) + ' = 0; ' + ($idx) + ' < ' + ($data) + '.length; ' + ($idx) + '++) { ';\n $it.errorPath = it.util.getPathExpr(it.errorPath, $idx, it.opts.jsonPointers, true);\n var $passData = $data + '[' + $idx + ']';\n $it.dataPathArr[$dataNxt] = $idx;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n out += ' if (' + ($nextValid) + ') break; } ';\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += ' ' + ($closingBraces) + ' if (!' + ($nextValid) + ') {';\n } else {\n out += ' if (' + ($data) + '.length == 0) {';\n }\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('contains') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should contain a valid item\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } else { ';\n if ($nonEmptySchema) {\n out += ' errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; } ';\n }\n if (it.opts.allErrors) {\n out += ' } ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_custom(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $errorKeyword;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $errs = 'errs__' + $lvl;\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n var $rule = this,\n $definition = 'definition' + $lvl,\n $rDef = $rule.definition,\n $closingBraces = '';\n var $compile, $inline, $macro, $ruleValidate, $validateCode;\n if ($isData && $rDef.$data) {\n $validateCode = 'keywordValidate' + $lvl;\n var $validateSchema = $rDef.validateSchema;\n out += ' var ' + ($definition) + ' = RULES.custom[\\'' + ($keyword) + '\\'].definition; var ' + ($validateCode) + ' = ' + ($definition) + '.validate;';\n } else {\n $ruleValidate = it.useCustomRule($rule, $schema, it.schema, it);\n if (!$ruleValidate) return;\n $schemaValue = 'validate.schema' + $schemaPath;\n $validateCode = $ruleValidate.code;\n $compile = $rDef.compile;\n $inline = $rDef.inline;\n $macro = $rDef.macro;\n }\n var $ruleErrs = $validateCode + '.errors',\n $i = 'i' + $lvl,\n $ruleErr = 'ruleErr' + $lvl,\n $asyncKeyword = $rDef.async;\n if ($asyncKeyword && !it.async) throw new Error('async keyword in sync schema');\n if (!($inline || $macro)) {\n out += '' + ($ruleErrs) + ' = null;';\n }\n out += 'var ' + ($errs) + ' = errors;var ' + ($valid) + ';';\n if ($isData && $rDef.$data) {\n $closingBraces += '}';\n out += ' if (' + ($schemaValue) + ' === undefined) { ' + ($valid) + ' = true; } else { ';\n if ($validateSchema) {\n $closingBraces += '}';\n out += ' ' + ($valid) + ' = ' + ($definition) + '.validateSchema(' + ($schemaValue) + '); if (' + ($valid) + ') { ';\n }\n }\n if ($inline) {\n if ($rDef.statements) {\n out += ' ' + ($ruleValidate.validate) + ' ';\n } else {\n out += ' ' + ($valid) + ' = ' + ($ruleValidate.validate) + '; ';\n }\n } else if ($macro) {\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n $it.schema = $ruleValidate.validate;\n $it.schemaPath = '';\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n var $code = it.validate($it).replace(/validate\\.schema/g, $validateCode);\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += ' ' + ($code);\n } else {\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = '';\n out += ' ' + ($validateCode) + '.call( ';\n if (it.opts.passContext) {\n out += 'this';\n } else {\n out += 'self';\n }\n if ($compile || $rDef.schema === false) {\n out += ' , ' + ($data) + ' ';\n } else {\n out += ' , ' + ($schemaValue) + ' , ' + ($data) + ' , validate.schema' + (it.schemaPath) + ' ';\n }\n out += ' , (dataPath || \\'\\')';\n if (it.errorPath != '\"\"') {\n out += ' + ' + (it.errorPath);\n }\n var $parentData = $dataLvl ? 'data' + (($dataLvl - 1) || '') : 'parentData',\n $parentDataProperty = $dataLvl ? it.dataPathArr[$dataLvl] : 'parentDataProperty';\n out += ' , ' + ($parentData) + ' , ' + ($parentDataProperty) + ' , rootData ) ';\n var def_callRuleValidate = out;\n out = $$outStack.pop();\n if ($rDef.errors === false) {\n out += ' ' + ($valid) + ' = ';\n if ($asyncKeyword) {\n out += 'await ';\n }\n out += '' + (def_callRuleValidate) + '; ';\n } else {\n if ($asyncKeyword) {\n $ruleErrs = 'customErrors' + $lvl;\n out += ' var ' + ($ruleErrs) + ' = null; try { ' + ($valid) + ' = await ' + (def_callRuleValidate) + '; } catch (e) { ' + ($valid) + ' = false; if (e instanceof ValidationError) ' + ($ruleErrs) + ' = e.errors; else throw e; } ';\n } else {\n out += ' ' + ($ruleErrs) + ' = null; ' + ($valid) + ' = ' + (def_callRuleValidate) + '; ';\n }\n }\n }\n if ($rDef.modifying) {\n out += ' if (' + ($parentData) + ') ' + ($data) + ' = ' + ($parentData) + '[' + ($parentDataProperty) + '];';\n }\n out += '' + ($closingBraces);\n if ($rDef.valid) {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n } else {\n out += ' if ( ';\n if ($rDef.valid === undefined) {\n out += ' !';\n if ($macro) {\n out += '' + ($nextValid);\n } else {\n out += '' + ($valid);\n }\n } else {\n out += ' ' + (!$rDef.valid) + ' ';\n }\n out += ') { ';\n $errorKeyword = $rule.keyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = '';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || 'custom') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { keyword: \\'' + ($rule.keyword) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should pass \"' + ($rule.keyword) + '\" keyword validation\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n var def_customError = out;\n out = $$outStack.pop();\n if ($inline) {\n if ($rDef.errors) {\n if ($rDef.errors != 'full') {\n out += ' for (var ' + ($i) + '=' + ($errs) + '; ' + ($i) + ' 0) || $sch === false : it.util.schemaHasRules($sch, it.RULES.all))) {\n out += ' ' + ($nextValid) + ' = true; if ( ' + ($data) + (it.util.getProperty($property)) + ' !== undefined ';\n if ($ownProperties) {\n out += ' && Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($property)) + '\\') ';\n }\n out += ') { ';\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + it.util.getProperty($property);\n $it.errSchemaPath = $errSchemaPath + '/' + it.util.escapeFragment($property);\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n out += ' } ';\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n }\n if ($breakOnError) {\n out += ' ' + ($closingBraces) + ' if (' + ($errs) + ' == errors) {';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_enum(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n var $i = 'i' + $lvl,\n $vSchema = 'schema' + $lvl;\n if (!$isData) {\n out += ' var ' + ($vSchema) + ' = validate.schema' + ($schemaPath) + ';';\n }\n out += 'var ' + ($valid) + ';';\n if ($isData) {\n out += ' if (schema' + ($lvl) + ' === undefined) ' + ($valid) + ' = true; else if (!Array.isArray(schema' + ($lvl) + ')) ' + ($valid) + ' = false; else {';\n }\n out += '' + ($valid) + ' = false;for (var ' + ($i) + '=0; ' + ($i) + '<' + ($vSchema) + '.length; ' + ($i) + '++) if (equal(' + ($data) + ', ' + ($vSchema) + '[' + ($i) + '])) { ' + ($valid) + ' = true; break; }';\n if ($isData) {\n out += ' } ';\n }\n out += ' if (!' + ($valid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('enum') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { allowedValues: schema' + ($lvl) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be equal to one of the allowed values\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' }';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_format(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n if (it.opts.format === false) {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n return out;\n }\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n var $unknownFormats = it.opts.unknownFormats,\n $allowUnknown = Array.isArray($unknownFormats);\n if ($isData) {\n var $format = 'format' + $lvl,\n $isObject = 'isObject' + $lvl,\n $formatType = 'formatType' + $lvl;\n out += ' var ' + ($format) + ' = formats[' + ($schemaValue) + ']; var ' + ($isObject) + ' = typeof ' + ($format) + ' == \\'object\\' && !(' + ($format) + ' instanceof RegExp) && ' + ($format) + '.validate; var ' + ($formatType) + ' = ' + ($isObject) + ' && ' + ($format) + '.type || \\'string\\'; if (' + ($isObject) + ') { ';\n if (it.async) {\n out += ' var async' + ($lvl) + ' = ' + ($format) + '.async; ';\n }\n out += ' ' + ($format) + ' = ' + ($format) + '.validate; } if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'string\\') || ';\n }\n out += ' (';\n if ($unknownFormats != 'ignore') {\n out += ' (' + ($schemaValue) + ' && !' + ($format) + ' ';\n if ($allowUnknown) {\n out += ' && self._opts.unknownFormats.indexOf(' + ($schemaValue) + ') == -1 ';\n }\n out += ') || ';\n }\n out += ' (' + ($format) + ' && ' + ($formatType) + ' == \\'' + ($ruleType) + '\\' && !(typeof ' + ($format) + ' == \\'function\\' ? ';\n if (it.async) {\n out += ' (async' + ($lvl) + ' ? await ' + ($format) + '(' + ($data) + ') : ' + ($format) + '(' + ($data) + ')) ';\n } else {\n out += ' ' + ($format) + '(' + ($data) + ') ';\n }\n out += ' : ' + ($format) + '.test(' + ($data) + '))))) {';\n } else {\n var $format = it.formats[$schema];\n if (!$format) {\n if ($unknownFormats == 'ignore') {\n it.logger.warn('unknown format \"' + $schema + '\" ignored in schema at path \"' + it.errSchemaPath + '\"');\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n return out;\n } else if ($allowUnknown && $unknownFormats.indexOf($schema) >= 0) {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n return out;\n } else {\n throw new Error('unknown format \"' + $schema + '\" is used in schema at path \"' + it.errSchemaPath + '\"');\n }\n }\n var $isObject = typeof $format == 'object' && !($format instanceof RegExp) && $format.validate;\n var $formatType = $isObject && $format.type || 'string';\n if ($isObject) {\n var $async = $format.async === true;\n $format = $format.validate;\n }\n if ($formatType != $ruleType) {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n return out;\n }\n if ($async) {\n if (!it.async) throw new Error('async format in sync schema');\n var $formatRef = 'formats' + it.util.getProperty($schema) + '.validate';\n out += ' if (!(await ' + ($formatRef) + '(' + ($data) + '))) { ';\n } else {\n out += ' if (! ';\n var $formatRef = 'formats' + it.util.getProperty($schema);\n if ($isObject) $formatRef += '.validate';\n if (typeof $format == 'function') {\n out += ' ' + ($formatRef) + '(' + ($data) + ') ';\n } else {\n out += ' ' + ($formatRef) + '.test(' + ($data) + ') ';\n }\n out += ') { ';\n }\n }\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('format') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { format: ';\n if ($isData) {\n out += '' + ($schemaValue);\n } else {\n out += '' + (it.util.toQuotedString($schema));\n }\n out += ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should match format \"';\n if ($isData) {\n out += '\\' + ' + ($schemaValue) + ' + \\'';\n } else {\n out += '' + (it.util.escapeQuotes($schema));\n }\n out += '\"\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + (it.util.toQuotedString($schema));\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_if(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $thenSch = it.schema['then'],\n $elseSch = it.schema['else'],\n $thenPresent = $thenSch !== undefined && (it.opts.strictKeywords ? (typeof $thenSch == 'object' && Object.keys($thenSch).length > 0) || $thenSch === false : it.util.schemaHasRules($thenSch, it.RULES.all)),\n $elsePresent = $elseSch !== undefined && (it.opts.strictKeywords ? (typeof $elseSch == 'object' && Object.keys($elseSch).length > 0) || $elseSch === false : it.util.schemaHasRules($elseSch, it.RULES.all)),\n $currentBaseId = $it.baseId;\n if ($thenPresent || $elsePresent) {\n var $ifClause;\n $it.createErrors = false;\n $it.schema = $schema;\n $it.schemaPath = $schemaPath;\n $it.errSchemaPath = $errSchemaPath;\n out += ' var ' + ($errs) + ' = errors; var ' + ($valid) + ' = true; ';\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n $it.createErrors = true;\n out += ' errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; } ';\n it.compositeRule = $it.compositeRule = $wasComposite;\n if ($thenPresent) {\n out += ' if (' + ($nextValid) + ') { ';\n $it.schema = it.schema['then'];\n $it.schemaPath = it.schemaPath + '.then';\n $it.errSchemaPath = it.errSchemaPath + '/then';\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n out += ' ' + ($valid) + ' = ' + ($nextValid) + '; ';\n if ($thenPresent && $elsePresent) {\n $ifClause = 'ifClause' + $lvl;\n out += ' var ' + ($ifClause) + ' = \\'then\\'; ';\n } else {\n $ifClause = '\\'then\\'';\n }\n out += ' } ';\n if ($elsePresent) {\n out += ' else { ';\n }\n } else {\n out += ' if (!' + ($nextValid) + ') { ';\n }\n if ($elsePresent) {\n $it.schema = it.schema['else'];\n $it.schemaPath = it.schemaPath + '.else';\n $it.errSchemaPath = it.errSchemaPath + '/else';\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n out += ' ' + ($valid) + ' = ' + ($nextValid) + '; ';\n if ($thenPresent && $elsePresent) {\n $ifClause = 'ifClause' + $lvl;\n out += ' var ' + ($ifClause) + ' = \\'else\\'; ';\n } else {\n $ifClause = '\\'else\\'';\n }\n out += ' } ';\n }\n out += ' if (!' + ($valid) + ') { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('if') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { failingKeyword: ' + ($ifClause) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should match \"\\' + ' + ($ifClause) + ' + \\'\" schema\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError(vErrors); ';\n } else {\n out += ' validate.errors = vErrors; return false; ';\n }\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' else { ';\n }\n } else {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n }\n return out;\n}\n","'use strict';\n\n//all requires must be explicit because browserify won't work with dynamic requires\nmodule.exports = {\n '$ref': require('./ref'),\n allOf: require('./allOf'),\n anyOf: require('./anyOf'),\n '$comment': require('./comment'),\n const: require('./const'),\n contains: require('./contains'),\n dependencies: require('./dependencies'),\n 'enum': require('./enum'),\n format: require('./format'),\n 'if': require('./if'),\n items: require('./items'),\n maximum: require('./_limit'),\n minimum: require('./_limit'),\n maxItems: require('./_limitItems'),\n minItems: require('./_limitItems'),\n maxLength: require('./_limitLength'),\n minLength: require('./_limitLength'),\n maxProperties: require('./_limitProperties'),\n minProperties: require('./_limitProperties'),\n multipleOf: require('./multipleOf'),\n not: require('./not'),\n oneOf: require('./oneOf'),\n pattern: require('./pattern'),\n properties: require('./properties'),\n propertyNames: require('./propertyNames'),\n required: require('./required'),\n uniqueItems: require('./uniqueItems'),\n validate: require('./validate')\n};\n","'use strict';\nmodule.exports = function generate_items(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $idx = 'i' + $lvl,\n $dataNxt = $it.dataLevel = it.dataLevel + 1,\n $nextData = 'data' + $dataNxt,\n $currentBaseId = it.baseId;\n out += 'var ' + ($errs) + ' = errors;var ' + ($valid) + ';';\n if (Array.isArray($schema)) {\n var $additionalItems = it.schema.additionalItems;\n if ($additionalItems === false) {\n out += ' ' + ($valid) + ' = ' + ($data) + '.length <= ' + ($schema.length) + '; ';\n var $currErrSchemaPath = $errSchemaPath;\n $errSchemaPath = it.errSchemaPath + '/additionalItems';\n out += ' if (!' + ($valid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('additionalItems') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schema.length) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT have more than ' + ($schema.length) + ' items\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: false , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } ';\n $errSchemaPath = $currErrSchemaPath;\n if ($breakOnError) {\n $closingBraces += '}';\n out += ' else { ';\n }\n }\n var arr1 = $schema;\n if (arr1) {\n var $sch, $i = -1,\n l1 = arr1.length - 1;\n while ($i < l1) {\n $sch = arr1[$i += 1];\n if ((it.opts.strictKeywords ? (typeof $sch == 'object' && Object.keys($sch).length > 0) || $sch === false : it.util.schemaHasRules($sch, it.RULES.all))) {\n out += ' ' + ($nextValid) + ' = true; if (' + ($data) + '.length > ' + ($i) + ') { ';\n var $passData = $data + '[' + $i + ']';\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + '[' + $i + ']';\n $it.errSchemaPath = $errSchemaPath + '/' + $i;\n $it.errorPath = it.util.getPathExpr(it.errorPath, $i, it.opts.jsonPointers, true);\n $it.dataPathArr[$dataNxt] = $i;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n }\n }\n if (typeof $additionalItems == 'object' && (it.opts.strictKeywords ? (typeof $additionalItems == 'object' && Object.keys($additionalItems).length > 0) || $additionalItems === false : it.util.schemaHasRules($additionalItems, it.RULES.all))) {\n $it.schema = $additionalItems;\n $it.schemaPath = it.schemaPath + '.additionalItems';\n $it.errSchemaPath = it.errSchemaPath + '/additionalItems';\n out += ' ' + ($nextValid) + ' = true; if (' + ($data) + '.length > ' + ($schema.length) + ') { for (var ' + ($idx) + ' = ' + ($schema.length) + '; ' + ($idx) + ' < ' + ($data) + '.length; ' + ($idx) + '++) { ';\n $it.errorPath = it.util.getPathExpr(it.errorPath, $idx, it.opts.jsonPointers, true);\n var $passData = $data + '[' + $idx + ']';\n $it.dataPathArr[$dataNxt] = $idx;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n if ($breakOnError) {\n out += ' if (!' + ($nextValid) + ') break; ';\n }\n out += ' } } ';\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n } else if ((it.opts.strictKeywords ? (typeof $schema == 'object' && Object.keys($schema).length > 0) || $schema === false : it.util.schemaHasRules($schema, it.RULES.all))) {\n $it.schema = $schema;\n $it.schemaPath = $schemaPath;\n $it.errSchemaPath = $errSchemaPath;\n out += ' for (var ' + ($idx) + ' = ' + (0) + '; ' + ($idx) + ' < ' + ($data) + '.length; ' + ($idx) + '++) { ';\n $it.errorPath = it.util.getPathExpr(it.errorPath, $idx, it.opts.jsonPointers, true);\n var $passData = $data + '[' + $idx + ']';\n $it.dataPathArr[$dataNxt] = $idx;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n if ($breakOnError) {\n out += ' if (!' + ($nextValid) + ') break; ';\n }\n out += ' }';\n }\n if ($breakOnError) {\n out += ' ' + ($closingBraces) + ' if (' + ($errs) + ' == errors) {';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_multipleOf(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n if (!($isData || typeof $schema == 'number')) {\n throw new Error($keyword + ' must be number');\n }\n out += 'var division' + ($lvl) + ';if (';\n if ($isData) {\n out += ' ' + ($schemaValue) + ' !== undefined && ( typeof ' + ($schemaValue) + ' != \\'number\\' || ';\n }\n out += ' (division' + ($lvl) + ' = ' + ($data) + ' / ' + ($schemaValue) + ', ';\n if (it.opts.multipleOfPrecision) {\n out += ' Math.abs(Math.round(division' + ($lvl) + ') - division' + ($lvl) + ') > 1e-' + (it.opts.multipleOfPrecision) + ' ';\n } else {\n out += ' division' + ($lvl) + ' !== parseInt(division' + ($lvl) + ') ';\n }\n out += ' ) ';\n if ($isData) {\n out += ' ) ';\n }\n out += ' ) { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('multipleOf') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { multipleOf: ' + ($schemaValue) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be multiple of ';\n if ($isData) {\n out += '\\' + ' + ($schemaValue);\n } else {\n out += '' + ($schemaValue) + '\\'';\n }\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += '} ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_not(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n if ((it.opts.strictKeywords ? (typeof $schema == 'object' && Object.keys($schema).length > 0) || $schema === false : it.util.schemaHasRules($schema, it.RULES.all))) {\n $it.schema = $schema;\n $it.schemaPath = $schemaPath;\n $it.errSchemaPath = $errSchemaPath;\n out += ' var ' + ($errs) + ' = errors; ';\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n $it.createErrors = false;\n var $allErrorsOption;\n if ($it.opts.allErrors) {\n $allErrorsOption = $it.opts.allErrors;\n $it.opts.allErrors = false;\n }\n out += ' ' + (it.validate($it)) + ' ';\n $it.createErrors = true;\n if ($allErrorsOption) $it.opts.allErrors = $allErrorsOption;\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += ' if (' + ($nextValid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('not') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT be valid\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } else { errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; } ';\n if (it.opts.allErrors) {\n out += ' } ';\n }\n } else {\n out += ' var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('not') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT be valid\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n if ($breakOnError) {\n out += ' if (false) { ';\n }\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_oneOf(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $currentBaseId = $it.baseId,\n $prevValid = 'prevValid' + $lvl,\n $passingSchemas = 'passingSchemas' + $lvl;\n out += 'var ' + ($errs) + ' = errors , ' + ($prevValid) + ' = false , ' + ($valid) + ' = false , ' + ($passingSchemas) + ' = null; ';\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n var arr1 = $schema;\n if (arr1) {\n var $sch, $i = -1,\n l1 = arr1.length - 1;\n while ($i < l1) {\n $sch = arr1[$i += 1];\n if ((it.opts.strictKeywords ? (typeof $sch == 'object' && Object.keys($sch).length > 0) || $sch === false : it.util.schemaHasRules($sch, it.RULES.all))) {\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + '[' + $i + ']';\n $it.errSchemaPath = $errSchemaPath + '/' + $i;\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n } else {\n out += ' var ' + ($nextValid) + ' = true; ';\n }\n if ($i) {\n out += ' if (' + ($nextValid) + ' && ' + ($prevValid) + ') { ' + ($valid) + ' = false; ' + ($passingSchemas) + ' = [' + ($passingSchemas) + ', ' + ($i) + ']; } else { ';\n $closingBraces += '}';\n }\n out += ' if (' + ($nextValid) + ') { ' + ($valid) + ' = ' + ($prevValid) + ' = true; ' + ($passingSchemas) + ' = ' + ($i) + '; }';\n }\n }\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += '' + ($closingBraces) + 'if (!' + ($valid) + ') { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('oneOf') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { passingSchemas: ' + ($passingSchemas) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should match exactly one schema in oneOf\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError(vErrors); ';\n } else {\n out += ' validate.errors = vErrors; return false; ';\n }\n }\n out += '} else { errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; }';\n if (it.opts.allErrors) {\n out += ' } ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_pattern(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n var $regexp = $isData ? '(new RegExp(' + $schemaValue + '))' : it.usePattern($schema);\n out += 'if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'string\\') || ';\n }\n out += ' !' + ($regexp) + '.test(' + ($data) + ') ) { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('pattern') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { pattern: ';\n if ($isData) {\n out += '' + ($schemaValue);\n } else {\n out += '' + (it.util.toQuotedString($schema));\n }\n out += ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should match pattern \"';\n if ($isData) {\n out += '\\' + ' + ($schemaValue) + ' + \\'';\n } else {\n out += '' + (it.util.escapeQuotes($schema));\n }\n out += '\"\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + (it.util.toQuotedString($schema));\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += '} ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_properties(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $key = 'key' + $lvl,\n $idx = 'idx' + $lvl,\n $dataNxt = $it.dataLevel = it.dataLevel + 1,\n $nextData = 'data' + $dataNxt,\n $dataProperties = 'dataProperties' + $lvl;\n var $schemaKeys = Object.keys($schema || {}).filter(notProto),\n $pProperties = it.schema.patternProperties || {},\n $pPropertyKeys = Object.keys($pProperties).filter(notProto),\n $aProperties = it.schema.additionalProperties,\n $someProperties = $schemaKeys.length || $pPropertyKeys.length,\n $noAdditional = $aProperties === false,\n $additionalIsSchema = typeof $aProperties == 'object' && Object.keys($aProperties).length,\n $removeAdditional = it.opts.removeAdditional,\n $checkAdditional = $noAdditional || $additionalIsSchema || $removeAdditional,\n $ownProperties = it.opts.ownProperties,\n $currentBaseId = it.baseId;\n var $required = it.schema.required;\n if ($required && !(it.opts.$data && $required.$data) && $required.length < it.opts.loopRequired) {\n var $requiredHash = it.util.toHash($required);\n }\n\n function notProto(p) {\n return p !== '__proto__';\n }\n out += 'var ' + ($errs) + ' = errors;var ' + ($nextValid) + ' = true;';\n if ($ownProperties) {\n out += ' var ' + ($dataProperties) + ' = undefined;';\n }\n if ($checkAdditional) {\n if ($ownProperties) {\n out += ' ' + ($dataProperties) + ' = ' + ($dataProperties) + ' || Object.keys(' + ($data) + '); for (var ' + ($idx) + '=0; ' + ($idx) + '<' + ($dataProperties) + '.length; ' + ($idx) + '++) { var ' + ($key) + ' = ' + ($dataProperties) + '[' + ($idx) + ']; ';\n } else {\n out += ' for (var ' + ($key) + ' in ' + ($data) + ') { ';\n }\n if ($someProperties) {\n out += ' var isAdditional' + ($lvl) + ' = !(false ';\n if ($schemaKeys.length) {\n if ($schemaKeys.length > 8) {\n out += ' || validate.schema' + ($schemaPath) + '.hasOwnProperty(' + ($key) + ') ';\n } else {\n var arr1 = $schemaKeys;\n if (arr1) {\n var $propertyKey, i1 = -1,\n l1 = arr1.length - 1;\n while (i1 < l1) {\n $propertyKey = arr1[i1 += 1];\n out += ' || ' + ($key) + ' == ' + (it.util.toQuotedString($propertyKey)) + ' ';\n }\n }\n }\n }\n if ($pPropertyKeys.length) {\n var arr2 = $pPropertyKeys;\n if (arr2) {\n var $pProperty, $i = -1,\n l2 = arr2.length - 1;\n while ($i < l2) {\n $pProperty = arr2[$i += 1];\n out += ' || ' + (it.usePattern($pProperty)) + '.test(' + ($key) + ') ';\n }\n }\n }\n out += ' ); if (isAdditional' + ($lvl) + ') { ';\n }\n if ($removeAdditional == 'all') {\n out += ' delete ' + ($data) + '[' + ($key) + ']; ';\n } else {\n var $currentErrorPath = it.errorPath;\n var $additionalProperty = '\\' + ' + $key + ' + \\'';\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);\n }\n if ($noAdditional) {\n if ($removeAdditional) {\n out += ' delete ' + ($data) + '[' + ($key) + ']; ';\n } else {\n out += ' ' + ($nextValid) + ' = false; ';\n var $currErrSchemaPath = $errSchemaPath;\n $errSchemaPath = it.errSchemaPath + '/additionalProperties';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('additionalProperties') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { additionalProperty: \\'' + ($additionalProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is an invalid additional property';\n } else {\n out += 'should NOT have additional properties';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: false , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n $errSchemaPath = $currErrSchemaPath;\n if ($breakOnError) {\n out += ' break; ';\n }\n }\n } else if ($additionalIsSchema) {\n if ($removeAdditional == 'failing') {\n out += ' var ' + ($errs) + ' = errors; ';\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n $it.schema = $aProperties;\n $it.schemaPath = it.schemaPath + '.additionalProperties';\n $it.errSchemaPath = it.errSchemaPath + '/additionalProperties';\n $it.errorPath = it.opts._errorDataPathProperty ? it.errorPath : it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);\n var $passData = $data + '[' + $key + ']';\n $it.dataPathArr[$dataNxt] = $key;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n out += ' if (!' + ($nextValid) + ') { errors = ' + ($errs) + '; if (validate.errors !== null) { if (errors) validate.errors.length = errors; else validate.errors = null; } delete ' + ($data) + '[' + ($key) + ']; } ';\n it.compositeRule = $it.compositeRule = $wasComposite;\n } else {\n $it.schema = $aProperties;\n $it.schemaPath = it.schemaPath + '.additionalProperties';\n $it.errSchemaPath = it.errSchemaPath + '/additionalProperties';\n $it.errorPath = it.opts._errorDataPathProperty ? it.errorPath : it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);\n var $passData = $data + '[' + $key + ']';\n $it.dataPathArr[$dataNxt] = $key;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n if ($breakOnError) {\n out += ' if (!' + ($nextValid) + ') break; ';\n }\n }\n }\n it.errorPath = $currentErrorPath;\n }\n if ($someProperties) {\n out += ' } ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n var $useDefaults = it.opts.useDefaults && !it.compositeRule;\n if ($schemaKeys.length) {\n var arr3 = $schemaKeys;\n if (arr3) {\n var $propertyKey, i3 = -1,\n l3 = arr3.length - 1;\n while (i3 < l3) {\n $propertyKey = arr3[i3 += 1];\n var $sch = $schema[$propertyKey];\n if ((it.opts.strictKeywords ? (typeof $sch == 'object' && Object.keys($sch).length > 0) || $sch === false : it.util.schemaHasRules($sch, it.RULES.all))) {\n var $prop = it.util.getProperty($propertyKey),\n $passData = $data + $prop,\n $hasDefault = $useDefaults && $sch.default !== undefined;\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + $prop;\n $it.errSchemaPath = $errSchemaPath + '/' + it.util.escapeFragment($propertyKey);\n $it.errorPath = it.util.getPath(it.errorPath, $propertyKey, it.opts.jsonPointers);\n $it.dataPathArr[$dataNxt] = it.util.toQuotedString($propertyKey);\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n $code = it.util.varReplace($code, $nextData, $passData);\n var $useData = $passData;\n } else {\n var $useData = $nextData;\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ';\n }\n if ($hasDefault) {\n out += ' ' + ($code) + ' ';\n } else {\n if ($requiredHash && $requiredHash[$propertyKey]) {\n out += ' if ( ' + ($useData) + ' === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ') { ' + ($nextValid) + ' = false; ';\n var $currentErrorPath = it.errorPath,\n $currErrSchemaPath = $errSchemaPath,\n $missingProperty = it.util.escapeQuotes($propertyKey);\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPath($currentErrorPath, $propertyKey, it.opts.jsonPointers);\n }\n $errSchemaPath = it.errSchemaPath + '/required';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n $errSchemaPath = $currErrSchemaPath;\n it.errorPath = $currentErrorPath;\n out += ' } else { ';\n } else {\n if ($breakOnError) {\n out += ' if ( ' + ($useData) + ' === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ') { ' + ($nextValid) + ' = true; } else { ';\n } else {\n out += ' if (' + ($useData) + ' !== undefined ';\n if ($ownProperties) {\n out += ' && Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ' ) { ';\n }\n }\n out += ' ' + ($code) + ' } ';\n }\n }\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n }\n }\n if ($pPropertyKeys.length) {\n var arr4 = $pPropertyKeys;\n if (arr4) {\n var $pProperty, i4 = -1,\n l4 = arr4.length - 1;\n while (i4 < l4) {\n $pProperty = arr4[i4 += 1];\n var $sch = $pProperties[$pProperty];\n if ((it.opts.strictKeywords ? (typeof $sch == 'object' && Object.keys($sch).length > 0) || $sch === false : it.util.schemaHasRules($sch, it.RULES.all))) {\n $it.schema = $sch;\n $it.schemaPath = it.schemaPath + '.patternProperties' + it.util.getProperty($pProperty);\n $it.errSchemaPath = it.errSchemaPath + '/patternProperties/' + it.util.escapeFragment($pProperty);\n if ($ownProperties) {\n out += ' ' + ($dataProperties) + ' = ' + ($dataProperties) + ' || Object.keys(' + ($data) + '); for (var ' + ($idx) + '=0; ' + ($idx) + '<' + ($dataProperties) + '.length; ' + ($idx) + '++) { var ' + ($key) + ' = ' + ($dataProperties) + '[' + ($idx) + ']; ';\n } else {\n out += ' for (var ' + ($key) + ' in ' + ($data) + ') { ';\n }\n out += ' if (' + (it.usePattern($pProperty)) + '.test(' + ($key) + ')) { ';\n $it.errorPath = it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);\n var $passData = $data + '[' + $key + ']';\n $it.dataPathArr[$dataNxt] = $key;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n if ($breakOnError) {\n out += ' if (!' + ($nextValid) + ') break; ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' else ' + ($nextValid) + ' = true; ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n }\n }\n }\n if ($breakOnError) {\n out += ' ' + ($closingBraces) + ' if (' + ($errs) + ' == errors) {';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_propertyNames(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n out += 'var ' + ($errs) + ' = errors;';\n if ((it.opts.strictKeywords ? (typeof $schema == 'object' && Object.keys($schema).length > 0) || $schema === false : it.util.schemaHasRules($schema, it.RULES.all))) {\n $it.schema = $schema;\n $it.schemaPath = $schemaPath;\n $it.errSchemaPath = $errSchemaPath;\n var $key = 'key' + $lvl,\n $idx = 'idx' + $lvl,\n $i = 'i' + $lvl,\n $invalidName = '\\' + ' + $key + ' + \\'',\n $dataNxt = $it.dataLevel = it.dataLevel + 1,\n $nextData = 'data' + $dataNxt,\n $dataProperties = 'dataProperties' + $lvl,\n $ownProperties = it.opts.ownProperties,\n $currentBaseId = it.baseId;\n if ($ownProperties) {\n out += ' var ' + ($dataProperties) + ' = undefined; ';\n }\n if ($ownProperties) {\n out += ' ' + ($dataProperties) + ' = ' + ($dataProperties) + ' || Object.keys(' + ($data) + '); for (var ' + ($idx) + '=0; ' + ($idx) + '<' + ($dataProperties) + '.length; ' + ($idx) + '++) { var ' + ($key) + ' = ' + ($dataProperties) + '[' + ($idx) + ']; ';\n } else {\n out += ' for (var ' + ($key) + ' in ' + ($data) + ') { ';\n }\n out += ' var startErrs' + ($lvl) + ' = errors; ';\n var $passData = $key;\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += ' if (!' + ($nextValid) + ') { for (var ' + ($i) + '=startErrs' + ($lvl) + '; ' + ($i) + ' 0) || $propertySch === false : it.util.schemaHasRules($propertySch, it.RULES.all)))) {\n $required[$required.length] = $property;\n }\n }\n }\n } else {\n var $required = $schema;\n }\n }\n if ($isData || $required.length) {\n var $currentErrorPath = it.errorPath,\n $loopRequired = $isData || $required.length >= it.opts.loopRequired,\n $ownProperties = it.opts.ownProperties;\n if ($breakOnError) {\n out += ' var missing' + ($lvl) + '; ';\n if ($loopRequired) {\n if (!$isData) {\n out += ' var ' + ($vSchema) + ' = validate.schema' + ($schemaPath) + '; ';\n }\n var $i = 'i' + $lvl,\n $propertyPath = 'schema' + $lvl + '[' + $i + ']',\n $missingProperty = '\\' + ' + $propertyPath + ' + \\'';\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPathExpr($currentErrorPath, $propertyPath, it.opts.jsonPointers);\n }\n out += ' var ' + ($valid) + ' = true; ';\n if ($isData) {\n out += ' if (schema' + ($lvl) + ' === undefined) ' + ($valid) + ' = true; else if (!Array.isArray(schema' + ($lvl) + ')) ' + ($valid) + ' = false; else {';\n }\n out += ' for (var ' + ($i) + ' = 0; ' + ($i) + ' < ' + ($vSchema) + '.length; ' + ($i) + '++) { ' + ($valid) + ' = ' + ($data) + '[' + ($vSchema) + '[' + ($i) + ']] !== undefined ';\n if ($ownProperties) {\n out += ' && Object.prototype.hasOwnProperty.call(' + ($data) + ', ' + ($vSchema) + '[' + ($i) + ']) ';\n }\n out += '; if (!' + ($valid) + ') break; } ';\n if ($isData) {\n out += ' } ';\n }\n out += ' if (!' + ($valid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } else { ';\n } else {\n out += ' if ( ';\n var arr2 = $required;\n if (arr2) {\n var $propertyKey, $i = -1,\n l2 = arr2.length - 1;\n while ($i < l2) {\n $propertyKey = arr2[$i += 1];\n if ($i) {\n out += ' || ';\n }\n var $prop = it.util.getProperty($propertyKey),\n $useData = $data + $prop;\n out += ' ( ( ' + ($useData) + ' === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ') && (missing' + ($lvl) + ' = ' + (it.util.toQuotedString(it.opts.jsonPointers ? $propertyKey : $prop)) + ') ) ';\n }\n }\n out += ') { ';\n var $propertyPath = 'missing' + $lvl,\n $missingProperty = '\\' + ' + $propertyPath + ' + \\'';\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.opts.jsonPointers ? it.util.getPathExpr($currentErrorPath, $propertyPath, true) : $currentErrorPath + ' + ' + $propertyPath;\n }\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } else { ';\n }\n } else {\n if ($loopRequired) {\n if (!$isData) {\n out += ' var ' + ($vSchema) + ' = validate.schema' + ($schemaPath) + '; ';\n }\n var $i = 'i' + $lvl,\n $propertyPath = 'schema' + $lvl + '[' + $i + ']',\n $missingProperty = '\\' + ' + $propertyPath + ' + \\'';\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPathExpr($currentErrorPath, $propertyPath, it.opts.jsonPointers);\n }\n if ($isData) {\n out += ' if (' + ($vSchema) + ' && !Array.isArray(' + ($vSchema) + ')) { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } else if (' + ($vSchema) + ' !== undefined) { ';\n }\n out += ' for (var ' + ($i) + ' = 0; ' + ($i) + ' < ' + ($vSchema) + '.length; ' + ($i) + '++) { if (' + ($data) + '[' + ($vSchema) + '[' + ($i) + ']] === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', ' + ($vSchema) + '[' + ($i) + ']) ';\n }\n out += ') { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } } ';\n if ($isData) {\n out += ' } ';\n }\n } else {\n var arr3 = $required;\n if (arr3) {\n var $propertyKey, i3 = -1,\n l3 = arr3.length - 1;\n while (i3 < l3) {\n $propertyKey = arr3[i3 += 1];\n var $prop = it.util.getProperty($propertyKey),\n $missingProperty = it.util.escapeQuotes($propertyKey),\n $useData = $data + $prop;\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPath($currentErrorPath, $propertyKey, it.opts.jsonPointers);\n }\n out += ' if ( ' + ($useData) + ' === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ') { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } ';\n }\n }\n }\n }\n it.errorPath = $currentErrorPath;\n } else if ($breakOnError) {\n out += ' if (true) {';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_uniqueItems(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n if (($schema || $isData) && it.opts.uniqueItems !== false) {\n if ($isData) {\n out += ' var ' + ($valid) + '; if (' + ($schemaValue) + ' === false || ' + ($schemaValue) + ' === undefined) ' + ($valid) + ' = true; else if (typeof ' + ($schemaValue) + ' != \\'boolean\\') ' + ($valid) + ' = false; else { ';\n }\n out += ' var i = ' + ($data) + '.length , ' + ($valid) + ' = true , j; if (i > 1) { ';\n var $itemType = it.schema.items && it.schema.items.type,\n $typeIsArray = Array.isArray($itemType);\n if (!$itemType || $itemType == 'object' || $itemType == 'array' || ($typeIsArray && ($itemType.indexOf('object') >= 0 || $itemType.indexOf('array') >= 0))) {\n out += ' outer: for (;i--;) { for (j = i; j--;) { if (equal(' + ($data) + '[i], ' + ($data) + '[j])) { ' + ($valid) + ' = false; break outer; } } } ';\n } else {\n out += ' var itemIndices = {}, item; for (;i--;) { var item = ' + ($data) + '[i]; ';\n var $method = 'checkDataType' + ($typeIsArray ? 's' : '');\n out += ' if (' + (it.util[$method]($itemType, 'item', it.opts.strictNumbers, true)) + ') continue; ';\n if ($typeIsArray) {\n out += ' if (typeof item == \\'string\\') item = \\'\"\\' + item; ';\n }\n out += ' if (typeof itemIndices[item] == \\'number\\') { ' + ($valid) + ' = false; j = itemIndices[item]; break; } itemIndices[item] = i; } ';\n }\n out += ' } ';\n if ($isData) {\n out += ' } ';\n }\n out += ' if (!' + ($valid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('uniqueItems') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { i: i, j: j } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT have duplicate items (items ## \\' + j + \\' and \\' + i + \\' are identical)\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' else { ';\n }\n } else {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_validate(it, $keyword, $ruleType) {\n var out = '';\n var $async = it.schema.$async === true,\n $refKeywords = it.util.schemaHasRulesExcept(it.schema, it.RULES.all, '$ref'),\n $id = it.self._getId(it.schema);\n if (it.opts.strictKeywords) {\n var $unknownKwd = it.util.schemaUnknownRules(it.schema, it.RULES.keywords);\n if ($unknownKwd) {\n var $keywordsMsg = 'unknown keyword: ' + $unknownKwd;\n if (it.opts.strictKeywords === 'log') it.logger.warn($keywordsMsg);\n else throw new Error($keywordsMsg);\n }\n }\n if (it.isTop) {\n out += ' var validate = ';\n if ($async) {\n it.async = true;\n out += 'async ';\n }\n out += 'function(data, dataPath, parentData, parentDataProperty, rootData) { \\'use strict\\'; ';\n if ($id && (it.opts.sourceCode || it.opts.processCode)) {\n out += ' ' + ('/\\*# sourceURL=' + $id + ' */') + ' ';\n }\n }\n if (typeof it.schema == 'boolean' || !($refKeywords || it.schema.$ref)) {\n var $keyword = 'false schema';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $errorKeyword;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n if (it.schema === false) {\n if (it.isTop) {\n $breakOnError = true;\n } else {\n out += ' var ' + ($valid) + ' = false; ';\n }\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || 'false schema') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'boolean schema is false\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: false , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n } else {\n if (it.isTop) {\n if ($async) {\n out += ' return data; ';\n } else {\n out += ' validate.errors = null; return true; ';\n }\n } else {\n out += ' var ' + ($valid) + ' = true; ';\n }\n }\n if (it.isTop) {\n out += ' }; return validate; ';\n }\n return out;\n }\n if (it.isTop) {\n var $top = it.isTop,\n $lvl = it.level = 0,\n $dataLvl = it.dataLevel = 0,\n $data = 'data';\n it.rootId = it.resolve.fullPath(it.self._getId(it.root.schema));\n it.baseId = it.baseId || it.rootId;\n delete it.isTop;\n it.dataPathArr = [\"\"];\n if (it.schema.default !== undefined && it.opts.useDefaults && it.opts.strictDefaults) {\n var $defaultMsg = 'default is ignored in the schema root';\n if (it.opts.strictDefaults === 'log') it.logger.warn($defaultMsg);\n else throw new Error($defaultMsg);\n }\n out += ' var vErrors = null; ';\n out += ' var errors = 0; ';\n out += ' if (rootData === undefined) rootData = data; ';\n } else {\n var $lvl = it.level,\n $dataLvl = it.dataLevel,\n $data = 'data' + ($dataLvl || '');\n if ($id) it.baseId = it.resolve.url(it.baseId, $id);\n if ($async && !it.async) throw new Error('async schema in sync schema');\n out += ' var errs_' + ($lvl) + ' = errors;';\n }\n var $valid = 'valid' + $lvl,\n $breakOnError = !it.opts.allErrors,\n $closingBraces1 = '',\n $closingBraces2 = '';\n var $errorKeyword;\n var $typeSchema = it.schema.type,\n $typeIsArray = Array.isArray($typeSchema);\n if ($typeSchema && it.opts.nullable && it.schema.nullable === true) {\n if ($typeIsArray) {\n if ($typeSchema.indexOf('null') == -1) $typeSchema = $typeSchema.concat('null');\n } else if ($typeSchema != 'null') {\n $typeSchema = [$typeSchema, 'null'];\n $typeIsArray = true;\n }\n }\n if ($typeIsArray && $typeSchema.length == 1) {\n $typeSchema = $typeSchema[0];\n $typeIsArray = false;\n }\n if (it.schema.$ref && $refKeywords) {\n if (it.opts.extendRefs == 'fail') {\n throw new Error('$ref: validation keywords used in schema at path \"' + it.errSchemaPath + '\" (see option extendRefs)');\n } else if (it.opts.extendRefs !== true) {\n $refKeywords = false;\n it.logger.warn('$ref: keywords ignored in schema at path \"' + it.errSchemaPath + '\"');\n }\n }\n if (it.schema.$comment && it.opts.$comment) {\n out += ' ' + (it.RULES.all.$comment.code(it, '$comment'));\n }\n if ($typeSchema) {\n if (it.opts.coerceTypes) {\n var $coerceToTypes = it.util.coerceToTypes(it.opts.coerceTypes, $typeSchema);\n }\n var $rulesGroup = it.RULES.types[$typeSchema];\n if ($coerceToTypes || $typeIsArray || $rulesGroup === true || ($rulesGroup && !$shouldUseGroup($rulesGroup))) {\n var $schemaPath = it.schemaPath + '.type',\n $errSchemaPath = it.errSchemaPath + '/type';\n var $schemaPath = it.schemaPath + '.type',\n $errSchemaPath = it.errSchemaPath + '/type',\n $method = $typeIsArray ? 'checkDataTypes' : 'checkDataType';\n out += ' if (' + (it.util[$method]($typeSchema, $data, it.opts.strictNumbers, true)) + ') { ';\n if ($coerceToTypes) {\n var $dataType = 'dataType' + $lvl,\n $coerced = 'coerced' + $lvl;\n out += ' var ' + ($dataType) + ' = typeof ' + ($data) + '; var ' + ($coerced) + ' = undefined; ';\n if (it.opts.coerceTypes == 'array') {\n out += ' if (' + ($dataType) + ' == \\'object\\' && Array.isArray(' + ($data) + ') && ' + ($data) + '.length == 1) { ' + ($data) + ' = ' + ($data) + '[0]; ' + ($dataType) + ' = typeof ' + ($data) + '; if (' + (it.util.checkDataType(it.schema.type, $data, it.opts.strictNumbers)) + ') ' + ($coerced) + ' = ' + ($data) + '; } ';\n }\n out += ' if (' + ($coerced) + ' !== undefined) ; ';\n var arr1 = $coerceToTypes;\n if (arr1) {\n var $type, $i = -1,\n l1 = arr1.length - 1;\n while ($i < l1) {\n $type = arr1[$i += 1];\n if ($type == 'string') {\n out += ' else if (' + ($dataType) + ' == \\'number\\' || ' + ($dataType) + ' == \\'boolean\\') ' + ($coerced) + ' = \\'\\' + ' + ($data) + '; else if (' + ($data) + ' === null) ' + ($coerced) + ' = \\'\\'; ';\n } else if ($type == 'number' || $type == 'integer') {\n out += ' else if (' + ($dataType) + ' == \\'boolean\\' || ' + ($data) + ' === null || (' + ($dataType) + ' == \\'string\\' && ' + ($data) + ' && ' + ($data) + ' == +' + ($data) + ' ';\n if ($type == 'integer') {\n out += ' && !(' + ($data) + ' % 1)';\n }\n out += ')) ' + ($coerced) + ' = +' + ($data) + '; ';\n } else if ($type == 'boolean') {\n out += ' else if (' + ($data) + ' === \\'false\\' || ' + ($data) + ' === 0 || ' + ($data) + ' === null) ' + ($coerced) + ' = false; else if (' + ($data) + ' === \\'true\\' || ' + ($data) + ' === 1) ' + ($coerced) + ' = true; ';\n } else if ($type == 'null') {\n out += ' else if (' + ($data) + ' === \\'\\' || ' + ($data) + ' === 0 || ' + ($data) + ' === false) ' + ($coerced) + ' = null; ';\n } else if (it.opts.coerceTypes == 'array' && $type == 'array') {\n out += ' else if (' + ($dataType) + ' == \\'string\\' || ' + ($dataType) + ' == \\'number\\' || ' + ($dataType) + ' == \\'boolean\\' || ' + ($data) + ' == null) ' + ($coerced) + ' = [' + ($data) + ']; ';\n }\n }\n }\n out += ' else { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || 'type') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { type: \\'';\n if ($typeIsArray) {\n out += '' + ($typeSchema.join(\",\"));\n } else {\n out += '' + ($typeSchema);\n }\n out += '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be ';\n if ($typeIsArray) {\n out += '' + ($typeSchema.join(\",\"));\n } else {\n out += '' + ($typeSchema);\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } if (' + ($coerced) + ' !== undefined) { ';\n var $parentData = $dataLvl ? 'data' + (($dataLvl - 1) || '') : 'parentData',\n $parentDataProperty = $dataLvl ? it.dataPathArr[$dataLvl] : 'parentDataProperty';\n out += ' ' + ($data) + ' = ' + ($coerced) + '; ';\n if (!$dataLvl) {\n out += 'if (' + ($parentData) + ' !== undefined)';\n }\n out += ' ' + ($parentData) + '[' + ($parentDataProperty) + '] = ' + ($coerced) + '; } ';\n } else {\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || 'type') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { type: \\'';\n if ($typeIsArray) {\n out += '' + ($typeSchema.join(\",\"));\n } else {\n out += '' + ($typeSchema);\n }\n out += '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be ';\n if ($typeIsArray) {\n out += '' + ($typeSchema.join(\",\"));\n } else {\n out += '' + ($typeSchema);\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n }\n out += ' } ';\n }\n }\n if (it.schema.$ref && !$refKeywords) {\n out += ' ' + (it.RULES.all.$ref.code(it, '$ref')) + ' ';\n if ($breakOnError) {\n out += ' } if (errors === ';\n if ($top) {\n out += '0';\n } else {\n out += 'errs_' + ($lvl);\n }\n out += ') { ';\n $closingBraces2 += '}';\n }\n } else {\n var arr2 = it.RULES;\n if (arr2) {\n var $rulesGroup, i2 = -1,\n l2 = arr2.length - 1;\n while (i2 < l2) {\n $rulesGroup = arr2[i2 += 1];\n if ($shouldUseGroup($rulesGroup)) {\n if ($rulesGroup.type) {\n out += ' if (' + (it.util.checkDataType($rulesGroup.type, $data, it.opts.strictNumbers)) + ') { ';\n }\n if (it.opts.useDefaults) {\n if ($rulesGroup.type == 'object' && it.schema.properties) {\n var $schema = it.schema.properties,\n $schemaKeys = Object.keys($schema);\n var arr3 = $schemaKeys;\n if (arr3) {\n var $propertyKey, i3 = -1,\n l3 = arr3.length - 1;\n while (i3 < l3) {\n $propertyKey = arr3[i3 += 1];\n var $sch = $schema[$propertyKey];\n if ($sch.default !== undefined) {\n var $passData = $data + it.util.getProperty($propertyKey);\n if (it.compositeRule) {\n if (it.opts.strictDefaults) {\n var $defaultMsg = 'default is ignored for: ' + $passData;\n if (it.opts.strictDefaults === 'log') it.logger.warn($defaultMsg);\n else throw new Error($defaultMsg);\n }\n } else {\n out += ' if (' + ($passData) + ' === undefined ';\n if (it.opts.useDefaults == 'empty') {\n out += ' || ' + ($passData) + ' === null || ' + ($passData) + ' === \\'\\' ';\n }\n out += ' ) ' + ($passData) + ' = ';\n if (it.opts.useDefaults == 'shared') {\n out += ' ' + (it.useDefault($sch.default)) + ' ';\n } else {\n out += ' ' + (JSON.stringify($sch.default)) + ' ';\n }\n out += '; ';\n }\n }\n }\n }\n } else if ($rulesGroup.type == 'array' && Array.isArray(it.schema.items)) {\n var arr4 = it.schema.items;\n if (arr4) {\n var $sch, $i = -1,\n l4 = arr4.length - 1;\n while ($i < l4) {\n $sch = arr4[$i += 1];\n if ($sch.default !== undefined) {\n var $passData = $data + '[' + $i + ']';\n if (it.compositeRule) {\n if (it.opts.strictDefaults) {\n var $defaultMsg = 'default is ignored for: ' + $passData;\n if (it.opts.strictDefaults === 'log') it.logger.warn($defaultMsg);\n else throw new Error($defaultMsg);\n }\n } else {\n out += ' if (' + ($passData) + ' === undefined ';\n if (it.opts.useDefaults == 'empty') {\n out += ' || ' + ($passData) + ' === null || ' + ($passData) + ' === \\'\\' ';\n }\n out += ' ) ' + ($passData) + ' = ';\n if (it.opts.useDefaults == 'shared') {\n out += ' ' + (it.useDefault($sch.default)) + ' ';\n } else {\n out += ' ' + (JSON.stringify($sch.default)) + ' ';\n }\n out += '; ';\n }\n }\n }\n }\n }\n }\n var arr5 = $rulesGroup.rules;\n if (arr5) {\n var $rule, i5 = -1,\n l5 = arr5.length - 1;\n while (i5 < l5) {\n $rule = arr5[i5 += 1];\n if ($shouldUseRule($rule)) {\n var $code = $rule.code(it, $rule.keyword, $rulesGroup.type);\n if ($code) {\n out += ' ' + ($code) + ' ';\n if ($breakOnError) {\n $closingBraces1 += '}';\n }\n }\n }\n }\n }\n if ($breakOnError) {\n out += ' ' + ($closingBraces1) + ' ';\n $closingBraces1 = '';\n }\n if ($rulesGroup.type) {\n out += ' } ';\n if ($typeSchema && $typeSchema === $rulesGroup.type && !$coerceToTypes) {\n out += ' else { ';\n var $schemaPath = it.schemaPath + '.type',\n $errSchemaPath = it.errSchemaPath + '/type';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || 'type') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { type: \\'';\n if ($typeIsArray) {\n out += '' + ($typeSchema.join(\",\"));\n } else {\n out += '' + ($typeSchema);\n }\n out += '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be ';\n if ($typeIsArray) {\n out += '' + ($typeSchema.join(\",\"));\n } else {\n out += '' + ($typeSchema);\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } ';\n }\n }\n if ($breakOnError) {\n out += ' if (errors === ';\n if ($top) {\n out += '0';\n } else {\n out += 'errs_' + ($lvl);\n }\n out += ') { ';\n $closingBraces2 += '}';\n }\n }\n }\n }\n }\n if ($breakOnError) {\n out += ' ' + ($closingBraces2) + ' ';\n }\n if ($top) {\n if ($async) {\n out += ' if (errors === 0) return data; ';\n out += ' else throw new ValidationError(vErrors); ';\n } else {\n out += ' validate.errors = vErrors; ';\n out += ' return errors === 0; ';\n }\n out += ' }; return validate;';\n } else {\n out += ' var ' + ($valid) + ' = errors === errs_' + ($lvl) + ';';\n }\n\n function $shouldUseGroup($rulesGroup) {\n var rules = $rulesGroup.rules;\n for (var i = 0; i < rules.length; i++)\n if ($shouldUseRule(rules[i])) return true;\n }\n\n function $shouldUseRule($rule) {\n return it.schema[$rule.keyword] !== undefined || ($rule.implements && $ruleImplementsSomeKeyword($rule));\n }\n\n function $ruleImplementsSomeKeyword($rule) {\n var impl = $rule.implements;\n for (var i = 0; i < impl.length; i++)\n if (it.schema[impl[i]] !== undefined) return true;\n }\n return out;\n}\n","'use strict';\n\nvar IDENTIFIER = /^[a-z_$][a-z0-9_$-]*$/i;\nvar customRuleCode = require('./dotjs/custom');\nvar definitionSchema = require('./definition_schema');\n\nmodule.exports = {\n add: addKeyword,\n get: getKeyword,\n remove: removeKeyword,\n validate: validateKeyword\n};\n\n\n/**\n * Define custom keyword\n * @this Ajv\n * @param {String} keyword custom keyword, should be unique (including different from all standard, custom and macro keywords).\n * @param {Object} definition keyword definition object with properties `type` (type(s) which the keyword applies to), `validate` or `compile`.\n * @return {Ajv} this for method chaining\n */\nfunction addKeyword(keyword, definition) {\n /* jshint validthis: true */\n /* eslint no-shadow: 0 */\n var RULES = this.RULES;\n if (RULES.keywords[keyword])\n throw new Error('Keyword ' + keyword + ' is already defined');\n\n if (!IDENTIFIER.test(keyword))\n throw new Error('Keyword ' + keyword + ' is not a valid identifier');\n\n if (definition) {\n this.validateKeyword(definition, true);\n\n var dataType = definition.type;\n if (Array.isArray(dataType)) {\n for (var i=0; i):string {\n\tif (sets.length > 1) {\n\t\tsets[0] = sets[0].slice(0, -1);\n\t\tconst xl = sets.length - 1;\n\t\tfor (let x = 1; x < xl; ++x) {\n\t\t\tsets[x] = sets[x].slice(1, -1);\n\t\t}\n\t\tsets[xl] = sets[xl].slice(1);\n\t\treturn sets.join('');\n\t} else {\n\t\treturn sets[0];\n\t}\n}\n\nexport function subexp(str:string):string {\n\treturn \"(?:\" + str + \")\";\n}\n\nexport function typeOf(o:any):string {\n\treturn o === undefined ? \"undefined\" : (o === null ? \"null\" : Object.prototype.toString.call(o).split(\" \").pop().split(\"]\").shift().toLowerCase());\n}\n\nexport function toUpperCase(str:string):string {\n\treturn str.toUpperCase();\n}\n\nexport function toArray(obj:any):Array {\n\treturn obj !== undefined && obj !== null ? (obj instanceof Array ? obj : (typeof obj.length !== \"number\" || obj.split || obj.setInterval || obj.call ? [obj] : Array.prototype.slice.call(obj))) : [];\n}\n\n\nexport function assign(target: object, source: any): any {\n\tconst obj = target as any;\n\tif (source) {\n\t\tfor (const key in source) {\n\t\t\tobj[key] = source[key];\n\t\t}\n\t}\n\treturn obj;\n}","import { URIRegExps } from \"./uri\";\nimport { merge, subexp } from \"./util\";\n\nexport function buildExps(isIRI:boolean):URIRegExps {\n\tconst\n\t\tALPHA$$ = \"[A-Za-z]\",\n\t\tCR$ = \"[\\\\x0D]\",\n\t\tDIGIT$$ = \"[0-9]\",\n\t\tDQUOTE$$ = \"[\\\\x22]\",\n\t\tHEXDIG$$ = merge(DIGIT$$, \"[A-Fa-f]\"), //case-insensitive\n\t\tLF$$ = \"[\\\\x0A]\",\n\t\tSP$$ = \"[\\\\x20]\",\n\t\tPCT_ENCODED$ = subexp(subexp(\"%[EFef]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%[89A-Fa-f]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%\" + HEXDIG$$ + HEXDIG$$)), //expanded\n\t\tGEN_DELIMS$$ = \"[\\\\:\\\\/\\\\?\\\\#\\\\[\\\\]\\\\@]\",\n\t\tSUB_DELIMS$$ = \"[\\\\!\\\\$\\\\&\\\\'\\\\(\\\\)\\\\*\\\\+\\\\,\\\\;\\\\=]\",\n\t\tRESERVED$$ = merge(GEN_DELIMS$$, SUB_DELIMS$$),\n\t\tUCSCHAR$$ = isIRI ? \"[\\\\xA0-\\\\u200D\\\\u2010-\\\\u2029\\\\u202F-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFEF]\" : \"[]\", //subset, excludes bidi control characters\n\t\tIPRIVATE$$ = isIRI ? \"[\\\\uE000-\\\\uF8FF]\" : \"[]\", //subset\n\t\tUNRESERVED$$ = merge(ALPHA$$, DIGIT$$, \"[\\\\-\\\\.\\\\_\\\\~]\", UCSCHAR$$),\n\t\tSCHEME$ = subexp(ALPHA$$ + merge(ALPHA$$, DIGIT$$, \"[\\\\+\\\\-\\\\.]\") + \"*\"),\n\t\tUSERINFO$ = subexp(subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:]\")) + \"*\"),\n\t\tDEC_OCTET$ = subexp(subexp(\"25[0-5]\") + \"|\" + subexp(\"2[0-4]\" + DIGIT$$) + \"|\" + subexp(\"1\" + DIGIT$$ + DIGIT$$) + \"|\" + subexp(\"[1-9]\" + DIGIT$$) + \"|\" + DIGIT$$),\n\t\tDEC_OCTET_RELAXED$ = subexp(subexp(\"25[0-5]\") + \"|\" + subexp(\"2[0-4]\" + DIGIT$$) + \"|\" + subexp(\"1\" + DIGIT$$ + DIGIT$$) + \"|\" + subexp(\"0?[1-9]\" + DIGIT$$) + \"|0?0?\" + DIGIT$$), //relaxed parsing rules\n\t\tIPV4ADDRESS$ = subexp(DEC_OCTET_RELAXED$ + \"\\\\.\" + DEC_OCTET_RELAXED$ + \"\\\\.\" + DEC_OCTET_RELAXED$ + \"\\\\.\" + DEC_OCTET_RELAXED$),\n\t\tH16$ = subexp(HEXDIG$$ + \"{1,4}\"),\n\t\tLS32$ = subexp(subexp(H16$ + \"\\\\:\" + H16$) + \"|\" + IPV4ADDRESS$),\n\t\tIPV6ADDRESS1$ = subexp( subexp(H16$ + \"\\\\:\") + \"{6}\" + LS32$), // 6( h16 \":\" ) ls32\n\t\tIPV6ADDRESS2$ = subexp( \"\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{5}\" + LS32$), // \"::\" 5( h16 \":\" ) ls32\n\t\tIPV6ADDRESS3$ = subexp(subexp( H16$) + \"?\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{4}\" + LS32$), //[ h16 ] \"::\" 4( h16 \":\" ) ls32\n\t\tIPV6ADDRESS4$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,1}\" + H16$) + \"?\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{3}\" + LS32$), //[ *1( h16 \":\" ) h16 ] \"::\" 3( h16 \":\" ) ls32\n\t\tIPV6ADDRESS5$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,2}\" + H16$) + \"?\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{2}\" + LS32$), //[ *2( h16 \":\" ) h16 ] \"::\" 2( h16 \":\" ) ls32\n\t\tIPV6ADDRESS6$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,3}\" + H16$) + \"?\\\\:\\\\:\" + H16$ + \"\\\\:\" + LS32$), //[ *3( h16 \":\" ) h16 ] \"::\" h16 \":\" ls32\n\t\tIPV6ADDRESS7$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,4}\" + H16$) + \"?\\\\:\\\\:\" + LS32$), //[ *4( h16 \":\" ) h16 ] \"::\" ls32\n\t\tIPV6ADDRESS8$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,5}\" + H16$) + \"?\\\\:\\\\:\" + H16$ ), //[ *5( h16 \":\" ) h16 ] \"::\" h16\n\t\tIPV6ADDRESS9$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,6}\" + H16$) + \"?\\\\:\\\\:\" ), //[ *6( h16 \":\" ) h16 ] \"::\"\n\t\tIPV6ADDRESS$ = subexp([IPV6ADDRESS1$, IPV6ADDRESS2$, IPV6ADDRESS3$, IPV6ADDRESS4$, IPV6ADDRESS5$, IPV6ADDRESS6$, IPV6ADDRESS7$, IPV6ADDRESS8$, IPV6ADDRESS9$].join(\"|\")),\n\t\tZONEID$ = subexp(subexp(UNRESERVED$$ + \"|\" + PCT_ENCODED$) + \"+\"), //RFC 6874\n\t\tIPV6ADDRZ$ = subexp(IPV6ADDRESS$ + \"\\\\%25\" + ZONEID$), //RFC 6874\n\t\tIPV6ADDRZ_RELAXED$ = subexp(IPV6ADDRESS$ + subexp(\"\\\\%25|\\\\%(?!\" + HEXDIG$$ + \"{2})\") + ZONEID$), //RFC 6874, with relaxed parsing rules\n\t\tIPVFUTURE$ = subexp(\"[vV]\" + HEXDIG$$ + \"+\\\\.\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:]\") + \"+\"),\n\t\tIP_LITERAL$ = subexp(\"\\\\[\" + subexp(IPV6ADDRZ_RELAXED$ + \"|\" + IPV6ADDRESS$ + \"|\" + IPVFUTURE$) + \"\\\\]\"), //RFC 6874\n\t\tREG_NAME$ = subexp(subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$)) + \"*\"),\n\t\tHOST$ = subexp(IP_LITERAL$ + \"|\" + IPV4ADDRESS$ + \"(?!\" + REG_NAME$ + \")\" + \"|\" + REG_NAME$),\n\t\tPORT$ = subexp(DIGIT$$ + \"*\"),\n\t\tAUTHORITY$ = subexp(subexp(USERINFO$ + \"@\") + \"?\" + HOST$ + subexp(\"\\\\:\" + PORT$) + \"?\"),\n\t\tPCHAR$ = subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:\\\\@]\")),\n\t\tSEGMENT$ = subexp(PCHAR$ + \"*\"),\n\t\tSEGMENT_NZ$ = subexp(PCHAR$ + \"+\"),\n\t\tSEGMENT_NZ_NC$ = subexp(subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\@]\")) + \"+\"),\n\t\tPATH_ABEMPTY$ = subexp(subexp(\"\\\\/\" + SEGMENT$) + \"*\"),\n\t\tPATH_ABSOLUTE$ = subexp(\"\\\\/\" + subexp(SEGMENT_NZ$ + PATH_ABEMPTY$) + \"?\"), //simplified\n\t\tPATH_NOSCHEME$ = subexp(SEGMENT_NZ_NC$ + PATH_ABEMPTY$), //simplified\n\t\tPATH_ROOTLESS$ = subexp(SEGMENT_NZ$ + PATH_ABEMPTY$), //simplified\n\t\tPATH_EMPTY$ = \"(?!\" + PCHAR$ + \")\",\n\t\tPATH$ = subexp(PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_NOSCHEME$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$),\n\t\tQUERY$ = subexp(subexp(PCHAR$ + \"|\" + merge(\"[\\\\/\\\\?]\", IPRIVATE$$)) + \"*\"),\n\t\tFRAGMENT$ = subexp(subexp(PCHAR$ + \"|[\\\\/\\\\?]\") + \"*\"),\n\t\tHIER_PART$ = subexp(subexp(\"\\\\/\\\\/\" + AUTHORITY$ + PATH_ABEMPTY$) + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$),\n\t\tURI$ = subexp(SCHEME$ + \"\\\\:\" + HIER_PART$ + subexp(\"\\\\?\" + QUERY$) + \"?\" + subexp(\"\\\\#\" + FRAGMENT$) + \"?\"),\n\t\tRELATIVE_PART$ = subexp(subexp(\"\\\\/\\\\/\" + AUTHORITY$ + PATH_ABEMPTY$) + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_NOSCHEME$ + \"|\" + PATH_EMPTY$),\n\t\tRELATIVE$ = subexp(RELATIVE_PART$ + subexp(\"\\\\?\" + QUERY$) + \"?\" + subexp(\"\\\\#\" + FRAGMENT$) + \"?\"),\n\t\tURI_REFERENCE$ = subexp(URI$ + \"|\" + RELATIVE$),\n\t\tABSOLUTE_URI$ = subexp(SCHEME$ + \"\\\\:\" + HIER_PART$ + subexp(\"\\\\?\" + QUERY$) + \"?\"),\n\n\t\tGENERIC_REF$ = \"^(\" + SCHEME$ + \")\\\\:\" + subexp(subexp(\"\\\\/\\\\/(\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?)\") + \"?(\" + PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$ + \")\") + subexp(\"\\\\?(\" + QUERY$ + \")\") + \"?\" + subexp(\"\\\\#(\" + FRAGMENT$ + \")\") + \"?$\",\n\t\tRELATIVE_REF$ = \"^(){0}\" + subexp(subexp(\"\\\\/\\\\/(\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?)\") + \"?(\" + PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_NOSCHEME$ + \"|\" + PATH_EMPTY$ + \")\") + subexp(\"\\\\?(\" + QUERY$ + \")\") + \"?\" + subexp(\"\\\\#(\" + FRAGMENT$ + \")\") + \"?$\",\n\t\tABSOLUTE_REF$ = \"^(\" + SCHEME$ + \")\\\\:\" + subexp(subexp(\"\\\\/\\\\/(\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?)\") + \"?(\" + PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$ + \")\") + subexp(\"\\\\?(\" + QUERY$ + \")\") + \"?$\",\n\t\tSAMEDOC_REF$ = \"^\" + subexp(\"\\\\#(\" + FRAGMENT$ + \")\") + \"?$\",\n\t\tAUTHORITY_REF$ = \"^\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?$\"\n\t;\n\n\treturn {\n\t\tNOT_SCHEME : new RegExp(merge(\"[^]\", ALPHA$$, DIGIT$$, \"[\\\\+\\\\-\\\\.]\"), \"g\"),\n\t\tNOT_USERINFO : new RegExp(merge(\"[^\\\\%\\\\:]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n\t\tNOT_HOST : new RegExp(merge(\"[^\\\\%\\\\[\\\\]\\\\:]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n\t\tNOT_PATH : new RegExp(merge(\"[^\\\\%\\\\/\\\\:\\\\@]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n\t\tNOT_PATH_NOSCHEME : new RegExp(merge(\"[^\\\\%\\\\/\\\\@]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n\t\tNOT_QUERY : new RegExp(merge(\"[^\\\\%]\", UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:\\\\@\\\\/\\\\?]\", IPRIVATE$$), \"g\"),\n\t\tNOT_FRAGMENT : new RegExp(merge(\"[^\\\\%]\", UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:\\\\@\\\\/\\\\?]\"), \"g\"),\n\t\tESCAPE : new RegExp(merge(\"[^]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n\t\tUNRESERVED : new RegExp(UNRESERVED$$, \"g\"),\n\t\tOTHER_CHARS : new RegExp(merge(\"[^\\\\%]\", UNRESERVED$$, RESERVED$$), \"g\"),\n\t\tPCT_ENCODED : new RegExp(PCT_ENCODED$, \"g\"),\n\t\tIPV4ADDRESS : new RegExp(\"^(\" + IPV4ADDRESS$ + \")$\"),\n\t\tIPV6ADDRESS : new RegExp(\"^\\\\[?(\" + IPV6ADDRESS$ + \")\" + subexp(subexp(\"\\\\%25|\\\\%(?!\" + HEXDIG$$ + \"{2})\") + \"(\" + ZONEID$ + \")\") + \"?\\\\]?$\") //RFC 6874, with relaxed parsing rules\n\t};\n}\n\nexport default buildExps(false);\n","import { URIRegExps } from \"./uri\";\nimport { buildExps } from \"./regexps-uri\";\n\nexport default buildExps(true);\n","'use strict';\n\n/** Highest positive signed 32-bit float value */\nconst maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1\n\n/** Bootstring parameters */\nconst base = 36;\nconst tMin = 1;\nconst tMax = 26;\nconst skew = 38;\nconst damp = 700;\nconst initialBias = 72;\nconst initialN = 128; // 0x80\nconst delimiter = '-'; // '\\x2D'\n\n/** Regular expressions */\nconst regexPunycode = /^xn--/;\nconst regexNonASCII = /[^\\0-\\x7E]/; // non-ASCII chars\nconst regexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g; // RFC 3490 separators\n\n/** Error messages */\nconst errors = {\n\t'overflow': 'Overflow: input needs wider integers to process',\n\t'not-basic': 'Illegal input >= 0x80 (not a basic code point)',\n\t'invalid-input': 'Invalid input'\n};\n\n/** Convenience shortcuts */\nconst baseMinusTMin = base - tMin;\nconst floor = Math.floor;\nconst stringFromCharCode = String.fromCharCode;\n\n/*--------------------------------------------------------------------------*/\n\n/**\n * A generic error utility function.\n * @private\n * @param {String} type The error type.\n * @returns {Error} Throws a `RangeError` with the applicable error message.\n */\nfunction error(type) {\n\tthrow new RangeError(errors[type]);\n}\n\n/**\n * A generic `Array#map` utility function.\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} callback The function that gets called for every array\n * item.\n * @returns {Array} A new array of values returned by the callback function.\n */\nfunction map(array, fn) {\n\tconst result = [];\n\tlet length = array.length;\n\twhile (length--) {\n\t\tresult[length] = fn(array[length]);\n\t}\n\treturn result;\n}\n\n/**\n * A simple `Array#map`-like wrapper to work with domain name strings or email\n * addresses.\n * @private\n * @param {String} domain The domain name or email address.\n * @param {Function} callback The function that gets called for every\n * character.\n * @returns {Array} A new string of characters returned by the callback\n * function.\n */\nfunction mapDomain(string, fn) {\n\tconst parts = string.split('@');\n\tlet result = '';\n\tif (parts.length > 1) {\n\t\t// In email addresses, only the domain name should be punycoded. Leave\n\t\t// the local part (i.e. everything up to `@`) intact.\n\t\tresult = parts[0] + '@';\n\t\tstring = parts[1];\n\t}\n\t// Avoid `split(regex)` for IE8 compatibility. See #17.\n\tstring = string.replace(regexSeparators, '\\x2E');\n\tconst labels = string.split('.');\n\tconst encoded = map(labels, fn).join('.');\n\treturn result + encoded;\n}\n\n/**\n * Creates an array containing the numeric code points of each Unicode\n * character in the string. While JavaScript uses UCS-2 internally,\n * this function will convert a pair of surrogate halves (each of which\n * UCS-2 exposes as separate characters) into a single code point,\n * matching UTF-16.\n * @see `punycode.ucs2.encode`\n * @see \n * @memberOf punycode.ucs2\n * @name decode\n * @param {String} string The Unicode input string (UCS-2).\n * @returns {Array} The new array of code points.\n */\nfunction ucs2decode(string) {\n\tconst output = [];\n\tlet counter = 0;\n\tconst length = string.length;\n\twhile (counter < length) {\n\t\tconst value = string.charCodeAt(counter++);\n\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t// It's a high surrogate, and there is a next character.\n\t\t\tconst extra = string.charCodeAt(counter++);\n\t\t\tif ((extra & 0xFC00) == 0xDC00) { // Low surrogate.\n\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t} else {\n\t\t\t\t// It's an unmatched surrogate; only append this code unit, in case the\n\t\t\t\t// next code unit is the high surrogate of a surrogate pair.\n\t\t\t\toutput.push(value);\n\t\t\t\tcounter--;\n\t\t\t}\n\t\t} else {\n\t\t\toutput.push(value);\n\t\t}\n\t}\n\treturn output;\n}\n\n/**\n * Creates a string based on an array of numeric code points.\n * @see `punycode.ucs2.decode`\n * @memberOf punycode.ucs2\n * @name encode\n * @param {Array} codePoints The array of numeric code points.\n * @returns {String} The new Unicode string (UCS-2).\n */\nconst ucs2encode = array => String.fromCodePoint(...array);\n\n/**\n * Converts a basic code point into a digit/integer.\n * @see `digitToBasic()`\n * @private\n * @param {Number} codePoint The basic numeric code point value.\n * @returns {Number} The numeric value of a basic code point (for use in\n * representing integers) in the range `0` to `base - 1`, or `base` if\n * the code point does not represent a value.\n */\nconst basicToDigit = function(codePoint) {\n\tif (codePoint - 0x30 < 0x0A) {\n\t\treturn codePoint - 0x16;\n\t}\n\tif (codePoint - 0x41 < 0x1A) {\n\t\treturn codePoint - 0x41;\n\t}\n\tif (codePoint - 0x61 < 0x1A) {\n\t\treturn codePoint - 0x61;\n\t}\n\treturn base;\n};\n\n/**\n * Converts a digit/integer into a basic code point.\n * @see `basicToDigit()`\n * @private\n * @param {Number} digit The numeric value of a basic code point.\n * @returns {Number} The basic code point whose value (when used for\n * representing integers) is `digit`, which needs to be in the range\n * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n * used; else, the lowercase form is used. The behavior is undefined\n * if `flag` is non-zero and `digit` has no uppercase form.\n */\nconst digitToBasic = function(digit, flag) {\n\t// 0..25 map to ASCII a..z or A..Z\n\t// 26..35 map to ASCII 0..9\n\treturn digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n};\n\n/**\n * Bias adaptation function as per section 3.4 of RFC 3492.\n * https://tools.ietf.org/html/rfc3492#section-3.4\n * @private\n */\nconst adapt = function(delta, numPoints, firstTime) {\n\tlet k = 0;\n\tdelta = firstTime ? floor(delta / damp) : delta >> 1;\n\tdelta += floor(delta / numPoints);\n\tfor (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {\n\t\tdelta = floor(delta / baseMinusTMin);\n\t}\n\treturn floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n};\n\n/**\n * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n * symbols.\n * @memberOf punycode\n * @param {String} input The Punycode string of ASCII-only symbols.\n * @returns {String} The resulting string of Unicode symbols.\n */\nconst decode = function(input) {\n\t// Don't use UCS-2.\n\tconst output = [];\n\tconst inputLength = input.length;\n\tlet i = 0;\n\tlet n = initialN;\n\tlet bias = initialBias;\n\n\t// Handle the basic code points: let `basic` be the number of input code\n\t// points before the last delimiter, or `0` if there is none, then copy\n\t// the first basic code points to the output.\n\n\tlet basic = input.lastIndexOf(delimiter);\n\tif (basic < 0) {\n\t\tbasic = 0;\n\t}\n\n\tfor (let j = 0; j < basic; ++j) {\n\t\t// if it's not a basic code point\n\t\tif (input.charCodeAt(j) >= 0x80) {\n\t\t\terror('not-basic');\n\t\t}\n\t\toutput.push(input.charCodeAt(j));\n\t}\n\n\t// Main decoding loop: start just after the last delimiter if any basic code\n\t// points were copied; start at the beginning otherwise.\n\n\tfor (let index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {\n\n\t\t// `index` is the index of the next character to be consumed.\n\t\t// Decode a generalized variable-length integer into `delta`,\n\t\t// which gets added to `i`. The overflow checking is easier\n\t\t// if we increase `i` as we go, then subtract off its starting\n\t\t// value at the end to obtain `delta`.\n\t\tlet oldi = i;\n\t\tfor (let w = 1, k = base; /* no condition */; k += base) {\n\n\t\t\tif (index >= inputLength) {\n\t\t\t\terror('invalid-input');\n\t\t\t}\n\n\t\t\tconst digit = basicToDigit(input.charCodeAt(index++));\n\n\t\t\tif (digit >= base || digit > floor((maxInt - i) / w)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\ti += digit * w;\n\t\t\tconst t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\n\t\t\tif (digit < t) {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tconst baseMinusT = base - t;\n\t\t\tif (w > floor(maxInt / baseMinusT)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tw *= baseMinusT;\n\n\t\t}\n\n\t\tconst out = output.length + 1;\n\t\tbias = adapt(i - oldi, out, oldi == 0);\n\n\t\t// `i` was supposed to wrap around from `out` to `0`,\n\t\t// incrementing `n` each time, so we'll fix that now:\n\t\tif (floor(i / out) > maxInt - n) {\n\t\t\terror('overflow');\n\t\t}\n\n\t\tn += floor(i / out);\n\t\ti %= out;\n\n\t\t// Insert `n` at position `i` of the output.\n\t\toutput.splice(i++, 0, n);\n\n\t}\n\n\treturn String.fromCodePoint(...output);\n};\n\n/**\n * Converts a string of Unicode symbols (e.g. a domain name label) to a\n * Punycode string of ASCII-only symbols.\n * @memberOf punycode\n * @param {String} input The string of Unicode symbols.\n * @returns {String} The resulting Punycode string of ASCII-only symbols.\n */\nconst encode = function(input) {\n\tconst output = [];\n\n\t// Convert the input in UCS-2 to an array of Unicode code points.\n\tinput = ucs2decode(input);\n\n\t// Cache the length.\n\tlet inputLength = input.length;\n\n\t// Initialize the state.\n\tlet n = initialN;\n\tlet delta = 0;\n\tlet bias = initialBias;\n\n\t// Handle the basic code points.\n\tfor (const currentValue of input) {\n\t\tif (currentValue < 0x80) {\n\t\t\toutput.push(stringFromCharCode(currentValue));\n\t\t}\n\t}\n\n\tlet basicLength = output.length;\n\tlet handledCPCount = basicLength;\n\n\t// `handledCPCount` is the number of code points that have been handled;\n\t// `basicLength` is the number of basic code points.\n\n\t// Finish the basic string with a delimiter unless it's empty.\n\tif (basicLength) {\n\t\toutput.push(delimiter);\n\t}\n\n\t// Main encoding loop:\n\twhile (handledCPCount < inputLength) {\n\n\t\t// All non-basic code points < n have been handled already. Find the next\n\t\t// larger one:\n\t\tlet m = maxInt;\n\t\tfor (const currentValue of input) {\n\t\t\tif (currentValue >= n && currentValue < m) {\n\t\t\t\tm = currentValue;\n\t\t\t}\n\t\t}\n\n\t\t// Increase `delta` enough to advance the decoder's state to ,\n\t\t// but guard against overflow.\n\t\tconst handledCPCountPlusOne = handledCPCount + 1;\n\t\tif (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n\t\t\terror('overflow');\n\t\t}\n\n\t\tdelta += (m - n) * handledCPCountPlusOne;\n\t\tn = m;\n\n\t\tfor (const currentValue of input) {\n\t\t\tif (currentValue < n && ++delta > maxInt) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\t\t\tif (currentValue == n) {\n\t\t\t\t// Represent delta as a generalized variable-length integer.\n\t\t\t\tlet q = delta;\n\t\t\t\tfor (let k = base; /* no condition */; k += base) {\n\t\t\t\t\tconst t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\t\t\t\t\tif (q < t) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tconst qMinusT = q - t;\n\t\t\t\t\tconst baseMinusT = base - t;\n\t\t\t\t\toutput.push(\n\t\t\t\t\t\tstringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))\n\t\t\t\t\t);\n\t\t\t\t\tq = floor(qMinusT / baseMinusT);\n\t\t\t\t}\n\n\t\t\t\toutput.push(stringFromCharCode(digitToBasic(q, 0)));\n\t\t\t\tbias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n\t\t\t\tdelta = 0;\n\t\t\t\t++handledCPCount;\n\t\t\t}\n\t\t}\n\n\t\t++delta;\n\t\t++n;\n\n\t}\n\treturn output.join('');\n};\n\n/**\n * Converts a Punycode string representing a domain name or an email address\n * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n * it doesn't matter if you call it on a string that has already been\n * converted to Unicode.\n * @memberOf punycode\n * @param {String} input The Punycoded domain name or email address to\n * convert to Unicode.\n * @returns {String} The Unicode representation of the given Punycode\n * string.\n */\nconst toUnicode = function(input) {\n\treturn mapDomain(input, function(string) {\n\t\treturn regexPunycode.test(string)\n\t\t\t? decode(string.slice(4).toLowerCase())\n\t\t\t: string;\n\t});\n};\n\n/**\n * Converts a Unicode string representing a domain name or an email address to\n * Punycode. Only the non-ASCII parts of the domain name will be converted,\n * i.e. it doesn't matter if you call it with a domain that's already in\n * ASCII.\n * @memberOf punycode\n * @param {String} input The domain name or email address to convert, as a\n * Unicode string.\n * @returns {String} The Punycode representation of the given domain name or\n * email address.\n */\nconst toASCII = function(input) {\n\treturn mapDomain(input, function(string) {\n\t\treturn regexNonASCII.test(string)\n\t\t\t? 'xn--' + encode(string)\n\t\t\t: string;\n\t});\n};\n\n/*--------------------------------------------------------------------------*/\n\n/** Define the public API */\nconst punycode = {\n\t/**\n\t * A string representing the current Punycode.js version number.\n\t * @memberOf punycode\n\t * @type String\n\t */\n\t'version': '2.1.0',\n\t/**\n\t * An object of methods to convert from JavaScript's internal character\n\t * representation (UCS-2) to Unicode code points, and back.\n\t * @see \n\t * @memberOf punycode\n\t * @type Object\n\t */\n\t'ucs2': {\n\t\t'decode': ucs2decode,\n\t\t'encode': ucs2encode\n\t},\n\t'decode': decode,\n\t'encode': encode,\n\t'toASCII': toASCII,\n\t'toUnicode': toUnicode\n};\n\nexport default punycode;\n","/**\n * URI.js\n *\n * @fileoverview An RFC 3986 compliant, scheme extendable URI parsing/validating/resolving library for JavaScript.\n * @author Gary Court\n * @see http://github.com/garycourt/uri-js\n */\n\n/**\n * Copyright 2011 Gary Court. All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without modification, are\n * permitted provided that the following conditions are met:\n *\n * 1. Redistributions of source code must retain the above copyright notice, this list of\n * conditions and the following disclaimer.\n *\n * 2. Redistributions in binary form must reproduce the above copyright notice, this list\n * of conditions and the following disclaimer in the documentation and/or other materials\n * provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY GARY COURT ``AS IS'' AND ANY EXPRESS OR IMPLIED\n * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\n * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GARY COURT OR\n * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR\n * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\n * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON\n * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF\n * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * The views and conclusions contained in the software and documentation are those of the\n * authors and should not be interpreted as representing official policies, either expressed\n * or implied, of Gary Court.\n */\n\nimport URI_PROTOCOL from \"./regexps-uri\";\nimport IRI_PROTOCOL from \"./regexps-iri\";\nimport punycode from \"punycode\";\nimport { toUpperCase, typeOf, assign } from \"./util\";\n\nexport interface URIComponents {\n\tscheme?:string;\n\tuserinfo?:string;\n\thost?:string;\n\tport?:number|string;\n\tpath?:string;\n\tquery?:string;\n\tfragment?:string;\n\treference?:string;\n\terror?:string;\n}\n\nexport interface URIOptions {\n\tscheme?:string;\n\treference?:string;\n\ttolerant?:boolean;\n\tabsolutePath?:boolean;\n\tiri?:boolean;\n\tunicodeSupport?:boolean;\n\tdomainHost?:boolean;\n}\n\nexport interface URISchemeHandler {\n\tscheme:string;\n\tparse(components:ParentComponents, options:Options):Components;\n\tserialize(components:Components, options:Options):ParentComponents;\n\tunicodeSupport?:boolean;\n\tdomainHost?:boolean;\n\tabsolutePath?:boolean;\n}\n\nexport interface URIRegExps {\n\tNOT_SCHEME : RegExp,\n\tNOT_USERINFO : RegExp,\n\tNOT_HOST : RegExp,\n\tNOT_PATH : RegExp,\n\tNOT_PATH_NOSCHEME : RegExp,\n\tNOT_QUERY : RegExp,\n\tNOT_FRAGMENT : RegExp,\n\tESCAPE : RegExp,\n\tUNRESERVED : RegExp,\n\tOTHER_CHARS : RegExp,\n\tPCT_ENCODED : RegExp,\n\tIPV4ADDRESS : RegExp,\n\tIPV6ADDRESS : RegExp,\n}\n\nexport const SCHEMES:{[scheme:string]:URISchemeHandler} = {};\n\nexport function pctEncChar(chr:string):string {\n\tconst c = chr.charCodeAt(0);\n\tlet e:string;\n\n\tif (c < 16) e = \"%0\" + c.toString(16).toUpperCase();\n\telse if (c < 128) e = \"%\" + c.toString(16).toUpperCase();\n\telse if (c < 2048) e = \"%\" + ((c >> 6) | 192).toString(16).toUpperCase() + \"%\" + ((c & 63) | 128).toString(16).toUpperCase();\n\telse e = \"%\" + ((c >> 12) | 224).toString(16).toUpperCase() + \"%\" + (((c >> 6) & 63) | 128).toString(16).toUpperCase() + \"%\" + ((c & 63) | 128).toString(16).toUpperCase();\n\n\treturn e;\n}\n\nexport function pctDecChars(str:string):string {\n\tlet newStr = \"\";\n\tlet i = 0;\n\tconst il = str.length;\n\n\twhile (i < il) {\n\t\tconst c = parseInt(str.substr(i + 1, 2), 16);\n\n\t\tif (c < 128) {\n\t\t\tnewStr += String.fromCharCode(c);\n\t\t\ti += 3;\n\t\t}\n\t\telse if (c >= 194 && c < 224) {\n\t\t\tif ((il - i) >= 6) {\n\t\t\t\tconst c2 = parseInt(str.substr(i + 4, 2), 16);\n\t\t\t\tnewStr += String.fromCharCode(((c & 31) << 6) | (c2 & 63));\n\t\t\t} else {\n\t\t\t\tnewStr += str.substr(i, 6);\n\t\t\t}\n\t\t\ti += 6;\n\t\t}\n\t\telse if (c >= 224) {\n\t\t\tif ((il - i) >= 9) {\n\t\t\t\tconst c2 = parseInt(str.substr(i + 4, 2), 16);\n\t\t\t\tconst c3 = parseInt(str.substr(i + 7, 2), 16);\n\t\t\t\tnewStr += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));\n\t\t\t} else {\n\t\t\t\tnewStr += str.substr(i, 9);\n\t\t\t}\n\t\t\ti += 9;\n\t\t}\n\t\telse {\n\t\t\tnewStr += str.substr(i, 3);\n\t\t\ti += 3;\n\t\t}\n\t}\n\n\treturn newStr;\n}\n\nfunction _normalizeComponentEncoding(components:URIComponents, protocol:URIRegExps) {\n\tfunction decodeUnreserved(str:string):string {\n\t\tconst decStr = pctDecChars(str);\n\t\treturn (!decStr.match(protocol.UNRESERVED) ? str : decStr);\n\t}\n\n\tif (components.scheme) components.scheme = String(components.scheme).replace(protocol.PCT_ENCODED, decodeUnreserved).toLowerCase().replace(protocol.NOT_SCHEME, \"\");\n\tif (components.userinfo !== undefined) components.userinfo = String(components.userinfo).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(protocol.NOT_USERINFO, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n\tif (components.host !== undefined) components.host = String(components.host).replace(protocol.PCT_ENCODED, decodeUnreserved).toLowerCase().replace(protocol.NOT_HOST, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n\tif (components.path !== undefined) components.path = String(components.path).replace(protocol.PCT_ENCODED, decodeUnreserved).replace((components.scheme ? protocol.NOT_PATH : protocol.NOT_PATH_NOSCHEME), pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n\tif (components.query !== undefined) components.query = String(components.query).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(protocol.NOT_QUERY, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n\tif (components.fragment !== undefined) components.fragment = String(components.fragment).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(protocol.NOT_FRAGMENT, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n\n\treturn components;\n};\n\nfunction _stripLeadingZeros(str:string):string {\n\treturn str.replace(/^0*(.*)/, \"$1\") || \"0\";\n}\n\nfunction _normalizeIPv4(host:string, protocol:URIRegExps):string {\n\tconst matches = host.match(protocol.IPV4ADDRESS) || [];\n\tconst [, address] = matches;\n\t\n\tif (address) {\n\t\treturn address.split(\".\").map(_stripLeadingZeros).join(\".\");\n\t} else {\n\t\treturn host;\n\t}\n}\n\nfunction _normalizeIPv6(host:string, protocol:URIRegExps):string {\n\tconst matches = host.match(protocol.IPV6ADDRESS) || [];\n\tconst [, address, zone] = matches;\n\n\tif (address) {\n\t\tconst [last, first] = address.toLowerCase().split('::').reverse();\n\t\tconst firstFields = first ? first.split(\":\").map(_stripLeadingZeros) : [];\n\t\tconst lastFields = last.split(\":\").map(_stripLeadingZeros);\n\t\tconst isLastFieldIPv4Address = protocol.IPV4ADDRESS.test(lastFields[lastFields.length - 1]);\n\t\tconst fieldCount = isLastFieldIPv4Address ? 7 : 8;\n\t\tconst lastFieldsStart = lastFields.length - fieldCount;\n\t\tconst fields = Array(fieldCount);\n\n\t\tfor (let x = 0; x < fieldCount; ++x) {\n\t\t\tfields[x] = firstFields[x] || lastFields[lastFieldsStart + x] || '';\n\t\t}\n\n\t\tif (isLastFieldIPv4Address) {\n\t\t\tfields[fieldCount - 1] = _normalizeIPv4(fields[fieldCount - 1], protocol);\n\t\t}\n\n\t\tconst allZeroFields = fields.reduce>((acc, field, index) => {\n\t\t\tif (!field || field === \"0\") {\n\t\t\t\tconst lastLongest = acc[acc.length - 1];\n\t\t\t\tif (lastLongest && lastLongest.index + lastLongest.length === index) {\n\t\t\t\t\tlastLongest.length++;\n\t\t\t\t} else {\n\t\t\t\t\tacc.push({ index, length : 1 });\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn acc;\n\t\t}, []);\n\n\t\tconst longestZeroFields = allZeroFields.sort((a, b) => b.length - a.length)[0];\n\n\t\tlet newHost:string;\n\t\tif (longestZeroFields && longestZeroFields.length > 1) {\n\t\t\tconst newFirst = fields.slice(0, longestZeroFields.index) ;\n\t\t\tconst newLast = fields.slice(longestZeroFields.index + longestZeroFields.length);\n\t\t\tnewHost = newFirst.join(\":\") + \"::\" + newLast.join(\":\");\n\t\t} else {\n\t\t\tnewHost = fields.join(\":\");\n\t\t}\n\n\t\tif (zone) {\n\t\t\tnewHost += \"%\" + zone;\n\t\t}\n\n\t\treturn newHost;\n\t} else {\n\t\treturn host;\n\t}\n}\n\nconst URI_PARSE = /^(?:([^:\\/?#]+):)?(?:\\/\\/((?:([^\\/?#@]*)@)?(\\[[^\\/?#\\]]+\\]|[^\\/?#:]*)(?:\\:(\\d*))?))?([^?#]*)(?:\\?([^#]*))?(?:#((?:.|\\n|\\r)*))?/i;\nconst NO_MATCH_IS_UNDEFINED = ((\"\").match(/(){0}/))[1] === undefined;\n\nexport function parse(uriString:string, options:URIOptions = {}):URIComponents {\n\tconst components:URIComponents = {};\n\tconst protocol = (options.iri !== false ? IRI_PROTOCOL : URI_PROTOCOL);\n\n\tif (options.reference === \"suffix\") uriString = (options.scheme ? options.scheme + \":\" : \"\") + \"//\" + uriString;\n\n\tconst matches = uriString.match(URI_PARSE);\n\n\tif (matches) {\n\t\tif (NO_MATCH_IS_UNDEFINED) {\n\t\t\t//store each component\n\t\t\tcomponents.scheme = matches[1];\n\t\t\tcomponents.userinfo = matches[3];\n\t\t\tcomponents.host = matches[4];\n\t\t\tcomponents.port = parseInt(matches[5], 10);\n\t\t\tcomponents.path = matches[6] || \"\";\n\t\t\tcomponents.query = matches[7];\n\t\t\tcomponents.fragment = matches[8];\n\n\t\t\t//fix port number\n\t\t\tif (isNaN(components.port)) {\n\t\t\t\tcomponents.port = matches[5];\n\t\t\t}\n\t\t} else { //IE FIX for improper RegExp matching\n\t\t\t//store each component\n\t\t\tcomponents.scheme = matches[1] || undefined;\n\t\t\tcomponents.userinfo = (uriString.indexOf(\"@\") !== -1 ? matches[3] : undefined);\n\t\t\tcomponents.host = (uriString.indexOf(\"//\") !== -1 ? matches[4] : undefined);\n\t\t\tcomponents.port = parseInt(matches[5], 10);\n\t\t\tcomponents.path = matches[6] || \"\";\n\t\t\tcomponents.query = (uriString.indexOf(\"?\") !== -1 ? matches[7] : undefined);\n\t\t\tcomponents.fragment = (uriString.indexOf(\"#\") !== -1 ? matches[8] : undefined);\n\n\t\t\t//fix port number\n\t\t\tif (isNaN(components.port)) {\n\t\t\t\tcomponents.port = (uriString.match(/\\/\\/(?:.|\\n)*\\:(?:\\/|\\?|\\#|$)/) ? matches[4] : undefined);\n\t\t\t}\n\t\t}\n\n\t\tif (components.host) {\n\t\t\t//normalize IP hosts\n\t\t\tcomponents.host = _normalizeIPv6(_normalizeIPv4(components.host, protocol), protocol);\n\t\t}\n\n\t\t//determine reference type\n\t\tif (components.scheme === undefined && components.userinfo === undefined && components.host === undefined && components.port === undefined && !components.path && components.query === undefined) {\n\t\t\tcomponents.reference = \"same-document\";\n\t\t} else if (components.scheme === undefined) {\n\t\t\tcomponents.reference = \"relative\";\n\t\t} else if (components.fragment === undefined) {\n\t\t\tcomponents.reference = \"absolute\";\n\t\t} else {\n\t\t\tcomponents.reference = \"uri\";\n\t\t}\n\n\t\t//check for reference errors\n\t\tif (options.reference && options.reference !== \"suffix\" && options.reference !== components.reference) {\n\t\t\tcomponents.error = components.error || \"URI is not a \" + options.reference + \" reference.\";\n\t\t}\n\n\t\t//find scheme handler\n\t\tconst schemeHandler = SCHEMES[(options.scheme || components.scheme || \"\").toLowerCase()];\n\n\t\t//check if scheme can't handle IRIs\n\t\tif (!options.unicodeSupport && (!schemeHandler || !schemeHandler.unicodeSupport)) {\n\t\t\t//if host component is a domain name\n\t\t\tif (components.host && (options.domainHost || (schemeHandler && schemeHandler.domainHost))) {\n\t\t\t\t//convert Unicode IDN -> ASCII IDN\n\t\t\t\ttry {\n\t\t\t\t\tcomponents.host = punycode.toASCII(components.host.replace(protocol.PCT_ENCODED, pctDecChars).toLowerCase());\n\t\t\t\t} catch (e) {\n\t\t\t\t\tcomponents.error = components.error || \"Host's domain name can not be converted to ASCII via punycode: \" + e;\n\t\t\t\t}\n\t\t\t}\n\t\t\t//convert IRI -> URI\n\t\t\t_normalizeComponentEncoding(components, URI_PROTOCOL);\n\t\t} else {\n\t\t\t//normalize encodings\n\t\t\t_normalizeComponentEncoding(components, protocol);\n\t\t}\n\n\t\t//perform scheme specific parsing\n\t\tif (schemeHandler && schemeHandler.parse) {\n\t\t\tschemeHandler.parse(components, options);\n\t\t}\n\t} else {\n\t\tcomponents.error = components.error || \"URI can not be parsed.\";\n\t}\n\n\treturn components;\n};\n\nfunction _recomposeAuthority(components:URIComponents, options:URIOptions):string|undefined {\n\tconst protocol = (options.iri !== false ? IRI_PROTOCOL : URI_PROTOCOL);\n\tconst uriTokens:Array = [];\n\n\tif (components.userinfo !== undefined) {\n\t\turiTokens.push(components.userinfo);\n\t\turiTokens.push(\"@\");\n\t}\n\n\tif (components.host !== undefined) {\n\t\t//normalize IP hosts, add brackets and escape zone separator for IPv6\n\t\turiTokens.push(_normalizeIPv6(_normalizeIPv4(String(components.host), protocol), protocol).replace(protocol.IPV6ADDRESS, (_, $1, $2) => \"[\" + $1 + ($2 ? \"%25\" + $2 : \"\") + \"]\"));\n\t}\n\n\tif (typeof components.port === \"number\" || typeof components.port === \"string\") {\n\t\turiTokens.push(\":\");\n\t\turiTokens.push(String(components.port));\n\t}\n\n\treturn uriTokens.length ? uriTokens.join(\"\") : undefined;\n};\n\nconst RDS1 = /^\\.\\.?\\//;\nconst RDS2 = /^\\/\\.(\\/|$)/;\nconst RDS3 = /^\\/\\.\\.(\\/|$)/;\nconst RDS4 = /^\\.\\.?$/;\nconst RDS5 = /^\\/?(?:.|\\n)*?(?=\\/|$)/;\n\nexport function removeDotSegments(input:string):string {\n\tconst output:Array = [];\n\n\twhile (input.length) {\n\t\tif (input.match(RDS1)) {\n\t\t\tinput = input.replace(RDS1, \"\");\n\t\t} else if (input.match(RDS2)) {\n\t\t\tinput = input.replace(RDS2, \"/\");\n\t\t} else if (input.match(RDS3)) {\n\t\t\tinput = input.replace(RDS3, \"/\");\n\t\t\toutput.pop();\n\t\t} else if (input === \".\" || input === \"..\") {\n\t\t\tinput = \"\";\n\t\t} else {\n\t\t\tconst im = input.match(RDS5);\n\t\t\tif (im) {\n\t\t\t\tconst s = im[0];\n\t\t\t\tinput = input.slice(s.length);\n\t\t\t\toutput.push(s);\n\t\t\t} else {\n\t\t\t\tthrow new Error(\"Unexpected dot segment condition\");\n\t\t\t}\n\t\t}\n\t}\n\n\treturn output.join(\"\");\n};\n\nexport function serialize(components:URIComponents, options:URIOptions = {}):string {\n\tconst protocol = (options.iri ? IRI_PROTOCOL : URI_PROTOCOL);\n\tconst uriTokens:Array = [];\n\n\t//find scheme handler\n\tconst schemeHandler = SCHEMES[(options.scheme || components.scheme || \"\").toLowerCase()];\n\n\t//perform scheme specific serialization\n\tif (schemeHandler && schemeHandler.serialize) schemeHandler.serialize(components, options);\n\n\tif (components.host) {\n\t\t//if host component is an IPv6 address\n\t\tif (protocol.IPV6ADDRESS.test(components.host)) {\n\t\t\t//TODO: normalize IPv6 address as per RFC 5952\n\t\t}\n\n\t\t//if host component is a domain name\n\t\telse if (options.domainHost || (schemeHandler && schemeHandler.domainHost)) {\n\t\t\t//convert IDN via punycode\n\t\t\ttry {\n\t\t\t\tcomponents.host = (!options.iri ? punycode.toASCII(components.host.replace(protocol.PCT_ENCODED, pctDecChars).toLowerCase()) : punycode.toUnicode(components.host));\n\t\t\t} catch (e) {\n\t\t\t\tcomponents.error = components.error || \"Host's domain name can not be converted to \" + (!options.iri ? \"ASCII\" : \"Unicode\") + \" via punycode: \" + e;\n\t\t\t}\n\t\t}\n\t}\n\n\t//normalize encoding\n\t_normalizeComponentEncoding(components, protocol);\n\n\tif (options.reference !== \"suffix\" && components.scheme) {\n\t\turiTokens.push(components.scheme);\n\t\turiTokens.push(\":\");\n\t}\n\n\tconst authority = _recomposeAuthority(components, options);\n\tif (authority !== undefined) {\n\t\tif (options.reference !== \"suffix\") {\n\t\t\turiTokens.push(\"//\");\n\t\t}\n\n\t\turiTokens.push(authority);\n\n\t\tif (components.path && components.path.charAt(0) !== \"/\") {\n\t\t\turiTokens.push(\"/\");\n\t\t}\n\t}\n\n\tif (components.path !== undefined) {\n\t\tlet s = components.path;\n\n\t\tif (!options.absolutePath && (!schemeHandler || !schemeHandler.absolutePath)) {\n\t\t\ts = removeDotSegments(s);\n\t\t}\n\n\t\tif (authority === undefined) {\n\t\t\ts = s.replace(/^\\/\\//, \"/%2F\"); //don't allow the path to start with \"//\"\n\t\t}\n\n\t\turiTokens.push(s);\n\t}\n\n\tif (components.query !== undefined) {\n\t\turiTokens.push(\"?\");\n\t\turiTokens.push(components.query);\n\t}\n\n\tif (components.fragment !== undefined) {\n\t\turiTokens.push(\"#\");\n\t\turiTokens.push(components.fragment);\n\t}\n\n\treturn uriTokens.join(\"\"); //merge tokens into a string\n};\n\nexport function resolveComponents(base:URIComponents, relative:URIComponents, options:URIOptions = {}, skipNormalization?:boolean):URIComponents {\n\tconst target:URIComponents = {};\n\n\tif (!skipNormalization) {\n\t\tbase = parse(serialize(base, options), options); //normalize base components\n\t\trelative = parse(serialize(relative, options), options); //normalize relative components\n\t}\n\toptions = options || {};\n\n\tif (!options.tolerant && relative.scheme) {\n\t\ttarget.scheme = relative.scheme;\n\t\t//target.authority = relative.authority;\n\t\ttarget.userinfo = relative.userinfo;\n\t\ttarget.host = relative.host;\n\t\ttarget.port = relative.port;\n\t\ttarget.path = removeDotSegments(relative.path || \"\");\n\t\ttarget.query = relative.query;\n\t} else {\n\t\tif (relative.userinfo !== undefined || relative.host !== undefined || relative.port !== undefined) {\n\t\t\t//target.authority = relative.authority;\n\t\t\ttarget.userinfo = relative.userinfo;\n\t\t\ttarget.host = relative.host;\n\t\t\ttarget.port = relative.port;\n\t\t\ttarget.path = removeDotSegments(relative.path || \"\");\n\t\t\ttarget.query = relative.query;\n\t\t} else {\n\t\t\tif (!relative.path) {\n\t\t\t\ttarget.path = base.path;\n\t\t\t\tif (relative.query !== undefined) {\n\t\t\t\t\ttarget.query = relative.query;\n\t\t\t\t} else {\n\t\t\t\t\ttarget.query = base.query;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (relative.path.charAt(0) === \"/\") {\n\t\t\t\t\ttarget.path = removeDotSegments(relative.path);\n\t\t\t\t} else {\n\t\t\t\t\tif ((base.userinfo !== undefined || base.host !== undefined || base.port !== undefined) && !base.path) {\n\t\t\t\t\t\ttarget.path = \"/\" + relative.path;\n\t\t\t\t\t} else if (!base.path) {\n\t\t\t\t\t\ttarget.path = relative.path;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttarget.path = base.path.slice(0, base.path.lastIndexOf(\"/\") + 1) + relative.path;\n\t\t\t\t\t}\n\t\t\t\t\ttarget.path = removeDotSegments(target.path);\n\t\t\t\t}\n\t\t\t\ttarget.query = relative.query;\n\t\t\t}\n\t\t\t//target.authority = base.authority;\n\t\t\ttarget.userinfo = base.userinfo;\n\t\t\ttarget.host = base.host;\n\t\t\ttarget.port = base.port;\n\t\t}\n\t\ttarget.scheme = base.scheme;\n\t}\n\n\ttarget.fragment = relative.fragment;\n\n\treturn target;\n};\n\nexport function resolve(baseURI:string, relativeURI:string, options?:URIOptions):string {\n\tconst schemelessOptions = assign({ scheme : 'null' }, options);\n\treturn serialize(resolveComponents(parse(baseURI, schemelessOptions), parse(relativeURI, schemelessOptions), schemelessOptions, true), schemelessOptions);\n};\n\nexport function normalize(uri:string, options?:URIOptions):string;\nexport function normalize(uri:URIComponents, options?:URIOptions):URIComponents;\nexport function normalize(uri:any, options?:URIOptions):any {\n\tif (typeof uri === \"string\") {\n\t\turi = serialize(parse(uri, options), options);\n\t} else if (typeOf(uri) === \"object\") {\n\t\turi = parse(serialize(uri, options), options);\n\t}\n\n\treturn uri;\n};\n\nexport function equal(uriA:string, uriB:string, options?: URIOptions):boolean;\nexport function equal(uriA:URIComponents, uriB:URIComponents, options?:URIOptions):boolean;\nexport function equal(uriA:any, uriB:any, options?:URIOptions):boolean {\n\tif (typeof uriA === \"string\") {\n\t\turiA = serialize(parse(uriA, options), options);\n\t} else if (typeOf(uriA) === \"object\") {\n\t\turiA = serialize(uriA, options);\n\t}\n\n\tif (typeof uriB === \"string\") {\n\t\turiB = serialize(parse(uriB, options), options);\n\t} else if (typeOf(uriB) === \"object\") {\n\t\turiB = serialize(uriB, options);\n\t}\n\n\treturn uriA === uriB;\n};\n\nexport function escapeComponent(str:string, options?:URIOptions):string {\n\treturn str && str.toString().replace((!options || !options.iri ? URI_PROTOCOL.ESCAPE : IRI_PROTOCOL.ESCAPE), pctEncChar);\n};\n\nexport function unescapeComponent(str:string, options?:URIOptions):string {\n\treturn str && str.toString().replace((!options || !options.iri ? URI_PROTOCOL.PCT_ENCODED : IRI_PROTOCOL.PCT_ENCODED), pctDecChars);\n};\n","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\n\nconst handler:URISchemeHandler = {\n\tscheme : \"http\",\n\n\tdomainHost : true,\n\n\tparse : function (components:URIComponents, options:URIOptions):URIComponents {\n\t\t//report missing host\n\t\tif (!components.host) {\n\t\t\tcomponents.error = components.error || \"HTTP URIs must have a host.\";\n\t\t}\n\n\t\treturn components;\n\t},\n\n\tserialize : function (components:URIComponents, options:URIOptions):URIComponents {\n\t\tconst secure = String(components.scheme).toLowerCase() === \"https\";\n\n\t\t//normalize the default port\n\t\tif (components.port === (secure ? 443 : 80) || components.port === \"\") {\n\t\t\tcomponents.port = undefined;\n\t\t}\n\t\t\n\t\t//normalize the empty path\n\t\tif (!components.path) {\n\t\t\tcomponents.path = \"/\";\n\t\t}\n\n\t\t//NOTE: We do not parse query strings for HTTP URIs\n\t\t//as WWW Form Url Encoded query strings are part of the HTML4+ spec,\n\t\t//and not the HTTP spec.\n\n\t\treturn components;\n\t}\n};\n\nexport default handler;","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\nimport http from \"./http\";\n\nconst handler:URISchemeHandler = {\n\tscheme : \"https\",\n\tdomainHost : http.domainHost,\n\tparse : http.parse,\n\tserialize : http.serialize\n}\n\nexport default handler;","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\n\nexport interface WSComponents extends URIComponents {\n\tresourceName?: string;\n\tsecure?: boolean;\n}\n\nfunction isSecure(wsComponents:WSComponents):boolean {\n\treturn typeof wsComponents.secure === 'boolean' ? wsComponents.secure : String(wsComponents.scheme).toLowerCase() === \"wss\";\n}\n\n//RFC 6455\nconst handler:URISchemeHandler = {\n\tscheme : \"ws\",\n\n\tdomainHost : true,\n\n\tparse : function (components:URIComponents, options:URIOptions):WSComponents {\n\t\tconst wsComponents = components as WSComponents;\n\n\t\t//indicate if the secure flag is set\n\t\twsComponents.secure = isSecure(wsComponents);\n\n\t\t//construct resouce name\n\t\twsComponents.resourceName = (wsComponents.path || '/') + (wsComponents.query ? '?' + wsComponents.query : '');\n\t\twsComponents.path = undefined;\n\t\twsComponents.query = undefined;\n\n\t\treturn wsComponents;\n\t},\n\n\tserialize : function (wsComponents:WSComponents, options:URIOptions):URIComponents {\n\t\t//normalize the default port\n\t\tif (wsComponents.port === (isSecure(wsComponents) ? 443 : 80) || wsComponents.port === \"\") {\n\t\t\twsComponents.port = undefined;\n\t\t}\n\n\t\t//ensure scheme matches secure flag\n\t\tif (typeof wsComponents.secure === 'boolean') {\n\t\t\twsComponents.scheme = (wsComponents.secure ? 'wss' : 'ws');\n\t\t\twsComponents.secure = undefined;\n\t\t}\n\n\t\t//reconstruct path from resource name\n\t\tif (wsComponents.resourceName) {\n\t\t\tconst [path, query] = wsComponents.resourceName.split('?');\n\t\t\twsComponents.path = (path && path !== '/' ? path : undefined);\n\t\t\twsComponents.query = query;\n\t\t\twsComponents.resourceName = undefined;\n\t\t}\n\n\t\t//forbid fragment component\n\t\twsComponents.fragment = undefined;\n\n\t\treturn wsComponents;\n\t}\n};\n\nexport default handler;","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\nimport ws from \"./ws\";\n\nconst handler:URISchemeHandler = {\n\tscheme : \"wss\",\n\tdomainHost : ws.domainHost,\n\tparse : ws.parse,\n\tserialize : ws.serialize\n}\n\nexport default handler;","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\nimport { pctEncChar, pctDecChars, unescapeComponent } from \"../uri\";\nimport punycode from \"punycode\";\nimport { merge, subexp, toUpperCase, toArray } from \"../util\";\n\nexport interface MailtoHeaders {\n\t[hfname:string]:string\n}\n\nexport interface MailtoComponents extends URIComponents {\n\tto:Array,\n\theaders?:MailtoHeaders,\n\tsubject?:string,\n\tbody?:string\n}\n\nconst O:MailtoHeaders = {};\nconst isIRI = true;\n\n//RFC 3986\nconst UNRESERVED$$ = \"[A-Za-z0-9\\\\-\\\\.\\\\_\\\\~\" + (isIRI ? \"\\\\xA0-\\\\u200D\\\\u2010-\\\\u2029\\\\u202F-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFEF\" : \"\") + \"]\";\nconst HEXDIG$$ = \"[0-9A-Fa-f]\"; //case-insensitive\nconst PCT_ENCODED$ = subexp(subexp(\"%[EFef]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%[89A-Fa-f]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%\" + HEXDIG$$ + HEXDIG$$)); //expanded\n\n//RFC 5322, except these symbols as per RFC 6068: @ : / ? # [ ] & ; =\n//const ATEXT$$ = \"[A-Za-z0-9\\\\!\\\\#\\\\$\\\\%\\\\&\\\\'\\\\*\\\\+\\\\-\\\\/\\\\=\\\\?\\\\^\\\\_\\\\`\\\\{\\\\|\\\\}\\\\~]\";\n//const WSP$$ = \"[\\\\x20\\\\x09]\";\n//const OBS_QTEXT$$ = \"[\\\\x01-\\\\x08\\\\x0B\\\\x0C\\\\x0E-\\\\x1F\\\\x7F]\"; //(%d1-8 / %d11-12 / %d14-31 / %d127)\n//const QTEXT$$ = merge(\"[\\\\x21\\\\x23-\\\\x5B\\\\x5D-\\\\x7E]\", OBS_QTEXT$$); //%d33 / %d35-91 / %d93-126 / obs-qtext\n//const VCHAR$$ = \"[\\\\x21-\\\\x7E]\";\n//const WSP$$ = \"[\\\\x20\\\\x09]\";\n//const OBS_QP$ = subexp(\"\\\\\\\\\" + merge(\"[\\\\x00\\\\x0D\\\\x0A]\", OBS_QTEXT$$)); //%d0 / CR / LF / obs-qtext\n//const FWS$ = subexp(subexp(WSP$$ + \"*\" + \"\\\\x0D\\\\x0A\") + \"?\" + WSP$$ + \"+\");\n//const QUOTED_PAIR$ = subexp(subexp(\"\\\\\\\\\" + subexp(VCHAR$$ + \"|\" + WSP$$)) + \"|\" + OBS_QP$);\n//const QUOTED_STRING$ = subexp('\\\\\"' + subexp(FWS$ + \"?\" + QCONTENT$) + \"*\" + FWS$ + \"?\" + '\\\\\"');\nconst ATEXT$$ = \"[A-Za-z0-9\\\\!\\\\$\\\\%\\\\'\\\\*\\\\+\\\\-\\\\^\\\\_\\\\`\\\\{\\\\|\\\\}\\\\~]\";\nconst QTEXT$$ = \"[\\\\!\\\\$\\\\%\\\\'\\\\(\\\\)\\\\*\\\\+\\\\,\\\\-\\\\.0-9\\\\<\\\\>A-Z\\\\x5E-\\\\x7E]\";\nconst VCHAR$$ = merge(QTEXT$$, \"[\\\\\\\"\\\\\\\\]\");\nconst DOT_ATOM_TEXT$ = subexp(ATEXT$$ + \"+\" + subexp(\"\\\\.\" + ATEXT$$ + \"+\") + \"*\");\nconst QUOTED_PAIR$ = subexp(\"\\\\\\\\\" + VCHAR$$);\nconst QCONTENT$ = subexp(QTEXT$$ + \"|\" + QUOTED_PAIR$);\nconst QUOTED_STRING$ = subexp('\\\\\"' + QCONTENT$ + \"*\" + '\\\\\"');\n\n//RFC 6068\nconst DTEXT_NO_OBS$$ = \"[\\\\x21-\\\\x5A\\\\x5E-\\\\x7E]\"; //%d33-90 / %d94-126\nconst SOME_DELIMS$$ = \"[\\\\!\\\\$\\\\'\\\\(\\\\)\\\\*\\\\+\\\\,\\\\;\\\\:\\\\@]\";\nconst QCHAR$ = subexp(UNRESERVED$$ + \"|\" + PCT_ENCODED$ + \"|\" + SOME_DELIMS$$);\nconst DOMAIN$ = subexp(DOT_ATOM_TEXT$ + \"|\" + \"\\\\[\" + DTEXT_NO_OBS$$ + \"*\" + \"\\\\]\");\nconst LOCAL_PART$ = subexp(DOT_ATOM_TEXT$ + \"|\" + QUOTED_STRING$);\nconst ADDR_SPEC$ = subexp(LOCAL_PART$ + \"\\\\@\" + DOMAIN$);\nconst TO$ = subexp(ADDR_SPEC$ + subexp(\"\\\\,\" + ADDR_SPEC$) + \"*\");\nconst HFNAME$ = subexp(QCHAR$ + \"*\");\nconst HFVALUE$ = HFNAME$;\nconst HFIELD$ = subexp(HFNAME$ + \"\\\\=\" + HFVALUE$);\nconst HFIELDS2$ = subexp(HFIELD$ + subexp(\"\\\\&\" + HFIELD$) + \"*\");\nconst HFIELDS$ = subexp(\"\\\\?\" + HFIELDS2$);\nconst MAILTO_URI = new RegExp(\"^mailto\\\\:\" + TO$ + \"?\" + HFIELDS$ + \"?$\");\n\nconst UNRESERVED = new RegExp(UNRESERVED$$, \"g\");\nconst PCT_ENCODED = new RegExp(PCT_ENCODED$, \"g\");\nconst NOT_LOCAL_PART = new RegExp(merge(\"[^]\", ATEXT$$, \"[\\\\.]\", '[\\\\\"]', VCHAR$$), \"g\");\nconst NOT_DOMAIN = new RegExp(merge(\"[^]\", ATEXT$$, \"[\\\\.]\", \"[\\\\[]\", DTEXT_NO_OBS$$, \"[\\\\]]\"), \"g\");\nconst NOT_HFNAME = new RegExp(merge(\"[^]\", UNRESERVED$$, SOME_DELIMS$$), \"g\");\nconst NOT_HFVALUE = NOT_HFNAME;\nconst TO = new RegExp(\"^\" + TO$ + \"$\");\nconst HFIELDS = new RegExp(\"^\" + HFIELDS2$ + \"$\");\n\nfunction decodeUnreserved(str:string):string {\n\tconst decStr = pctDecChars(str);\n\treturn (!decStr.match(UNRESERVED) ? str : decStr);\n}\n\nconst handler:URISchemeHandler = {\n\tscheme : \"mailto\",\n\n\tparse : function (components:URIComponents, options:URIOptions):MailtoComponents {\n\t\tconst mailtoComponents = components as MailtoComponents;\n\t\tconst to = mailtoComponents.to = (mailtoComponents.path ? mailtoComponents.path.split(\",\") : []);\n\t\tmailtoComponents.path = undefined;\n\n\t\tif (mailtoComponents.query) {\n\t\t\tlet unknownHeaders = false\n\t\t\tconst headers:MailtoHeaders = {};\n\t\t\tconst hfields = mailtoComponents.query.split(\"&\");\n\n\t\t\tfor (let x = 0, xl = hfields.length; x < xl; ++x) {\n\t\t\t\tconst hfield = hfields[x].split(\"=\");\n\n\t\t\t\tswitch (hfield[0]) {\n\t\t\t\t\tcase \"to\":\n\t\t\t\t\t\tconst toAddrs = hfield[1].split(\",\");\n\t\t\t\t\t\tfor (let x = 0, xl = toAddrs.length; x < xl; ++x) {\n\t\t\t\t\t\t\tto.push(toAddrs[x]);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"subject\":\n\t\t\t\t\t\tmailtoComponents.subject = unescapeComponent(hfield[1], options);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"body\":\n\t\t\t\t\t\tmailtoComponents.body = unescapeComponent(hfield[1], options);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tunknownHeaders = true;\n\t\t\t\t\t\theaders[unescapeComponent(hfield[0], options)] = unescapeComponent(hfield[1], options);\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (unknownHeaders) mailtoComponents.headers = headers;\n\t\t}\n\n\t\tmailtoComponents.query = undefined;\n\n\t\tfor (let x = 0, xl = to.length; x < xl; ++x) {\n\t\t\tconst addr = to[x].split(\"@\");\n\n\t\t\taddr[0] = unescapeComponent(addr[0]);\n\n\t\t\tif (!options.unicodeSupport) {\n\t\t\t\t//convert Unicode IDN -> ASCII IDN\n\t\t\t\ttry {\n\t\t\t\t\taddr[1] = punycode.toASCII(unescapeComponent(addr[1], options).toLowerCase());\n\t\t\t\t} catch (e) {\n\t\t\t\t\tmailtoComponents.error = mailtoComponents.error || \"Email address's domain name can not be converted to ASCII via punycode: \" + e;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\taddr[1] = unescapeComponent(addr[1], options).toLowerCase();\n\t\t\t}\n\n\t\t\tto[x] = addr.join(\"@\");\n\t\t}\n\n\t\treturn mailtoComponents;\n\t},\n\n\tserialize : function (mailtoComponents:MailtoComponents, options:URIOptions):URIComponents {\n\t\tconst components = mailtoComponents as URIComponents;\n\t\tconst to = toArray(mailtoComponents.to);\n\t\tif (to) {\n\t\t\tfor (let x = 0, xl = to.length; x < xl; ++x) {\n\t\t\t\tconst toAddr = String(to[x]);\n\t\t\t\tconst atIdx = toAddr.lastIndexOf(\"@\");\n\t\t\t\tconst localPart = (toAddr.slice(0, atIdx)).replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_LOCAL_PART, pctEncChar);\n\t\t\t\tlet domain = toAddr.slice(atIdx + 1);\n\n\t\t\t\t//convert IDN via punycode\n\t\t\t\ttry {\n\t\t\t\t\tdomain = (!options.iri ? punycode.toASCII(unescapeComponent(domain, options).toLowerCase()) : punycode.toUnicode(domain));\n\t\t\t\t} catch (e) {\n\t\t\t\t\tcomponents.error = components.error || \"Email address's domain name can not be converted to \" + (!options.iri ? \"ASCII\" : \"Unicode\") + \" via punycode: \" + e;\n\t\t\t\t}\n\n\t\t\t\tto[x] = localPart + \"@\" + domain;\n\t\t\t}\n\n\t\t\tcomponents.path = to.join(\",\");\n\t\t}\n\n\t\tconst headers = mailtoComponents.headers = mailtoComponents.headers || {};\n\n\t\tif (mailtoComponents.subject) headers[\"subject\"] = mailtoComponents.subject;\n\t\tif (mailtoComponents.body) headers[\"body\"] = mailtoComponents.body;\n\n\t\tconst fields = [];\n\t\tfor (const name in headers) {\n\t\t\tif (headers[name] !== O[name]) {\n\t\t\t\tfields.push(\n\t\t\t\t\tname.replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_HFNAME, pctEncChar) +\n\t\t\t\t\t\"=\" +\n\t\t\t\t\theaders[name].replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_HFVALUE, pctEncChar)\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\tif (fields.length) {\n\t\t\tcomponents.query = fields.join(\"&\");\n\t\t}\n\n\t\treturn components;\n\t}\n}\n\nexport default handler;","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\nimport { pctEncChar, SCHEMES } from \"../uri\";\n\nexport interface URNComponents extends URIComponents {\n\tnid?:string;\n\tnss?:string;\n}\n\nexport interface URNOptions extends URIOptions {\n\tnid?:string;\n}\n\nconst NID$ = \"(?:[0-9A-Za-z][0-9A-Za-z\\\\-]{1,31})\";\nconst PCT_ENCODED$ = \"(?:\\\\%[0-9A-Fa-f]{2})\";\nconst TRANS$$ = \"[0-9A-Za-z\\\\(\\\\)\\\\+\\\\,\\\\-\\\\.\\\\:\\\\=\\\\@\\\\;\\\\$\\\\_\\\\!\\\\*\\\\'\\\\/\\\\?\\\\#]\";\nconst NSS$ = \"(?:(?:\" + PCT_ENCODED$ + \"|\" + TRANS$$ + \")+)\";\nconst URN_SCHEME = new RegExp(\"^urn\\\\:(\" + NID$ + \")$\");\nconst URN_PATH = new RegExp(\"^(\" + NID$ + \")\\\\:(\" + NSS$ + \")$\");\nconst URN_PARSE = /^([^\\:]+)\\:(.*)/;\nconst URN_EXCLUDED = /[\\x00-\\x20\\\\\\\"\\&\\<\\>\\[\\]\\^\\`\\{\\|\\}\\~\\x7F-\\xFF]/g;\n\n//RFC 2141\nconst handler:URISchemeHandler = {\n\tscheme : \"urn\",\n\n\tparse : function (components:URIComponents, options:URNOptions):URNComponents {\n\t\tconst matches = components.path && components.path.match(URN_PARSE);\n\t\tlet urnComponents = components as URNComponents;\n\n\t\tif (matches) {\n\t\t\tconst scheme = options.scheme || urnComponents.scheme || \"urn\";\n\t\t\tconst nid = matches[1].toLowerCase();\n\t\t\tconst nss = matches[2];\n\t\t\tconst urnScheme = `${scheme}:${options.nid || nid}`;\n\t\t\tconst schemeHandler = SCHEMES[urnScheme];\n\n\t\t\turnComponents.nid = nid;\n\t\t\turnComponents.nss = nss;\n\t\t\turnComponents.path = undefined;\n\n\t\t\tif (schemeHandler) {\n\t\t\t\turnComponents = schemeHandler.parse(urnComponents, options) as URNComponents;\n\t\t\t}\n\t\t} else {\n\t\t\turnComponents.error = urnComponents.error || \"URN can not be parsed.\";\n\t\t}\n\n\t\treturn urnComponents;\n\t},\n\n\tserialize : function (urnComponents:URNComponents, options:URNOptions):URIComponents {\n\t\tconst scheme = options.scheme || urnComponents.scheme || \"urn\";\n\t\tconst nid = urnComponents.nid;\n\t\tconst urnScheme = `${scheme}:${options.nid || nid}`;\n\t\tconst schemeHandler = SCHEMES[urnScheme];\n\n\t\tif (schemeHandler) {\n\t\t\turnComponents = schemeHandler.serialize(urnComponents, options) as URNComponents;\n\t\t}\n\n\t\tconst uriComponents = urnComponents as URIComponents;\n\t\tconst nss = urnComponents.nss;\n\t\turiComponents.path = `${nid || options.nid}:${nss}`;\n\n\t\treturn uriComponents;\n\t},\n};\n\nexport default handler;","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\nimport { URNComponents } from \"./urn\";\nimport { SCHEMES } from \"../uri\";\n\nexport interface UUIDComponents extends URNComponents {\n\tuuid?: string;\n}\n\nconst UUID = /^[0-9A-Fa-f]{8}(?:\\-[0-9A-Fa-f]{4}){3}\\-[0-9A-Fa-f]{12}$/;\nconst UUID_PARSE = /^[0-9A-Fa-f\\-]{36}/;\n\n//RFC 4122\nconst handler:URISchemeHandler = {\n\tscheme : \"urn:uuid\",\n\n\tparse : function (urnComponents:URNComponents, options:URIOptions):UUIDComponents {\n\t\tconst uuidComponents = urnComponents as UUIDComponents;\n\t\tuuidComponents.uuid = uuidComponents.nss;\n\t\tuuidComponents.nss = undefined;\n\n\t\tif (!options.tolerant && (!uuidComponents.uuid || !uuidComponents.uuid.match(UUID))) {\n\t\t\tuuidComponents.error = uuidComponents.error || \"UUID is not valid.\";\n\t\t}\n\n\t\treturn uuidComponents;\n\t},\n\n\tserialize : function (uuidComponents:UUIDComponents, options:URIOptions):URNComponents {\n\t\tconst urnComponents = uuidComponents as URNComponents;\n\t\t//normalize UUID\n\t\turnComponents.nss = (uuidComponents.uuid || \"\").toLowerCase();\n\t\treturn urnComponents;\n\t},\n};\n\nexport default handler;","import { SCHEMES } from \"./uri\";\n\nimport http from \"./schemes/http\";\nSCHEMES[http.scheme] = http;\n\nimport https from \"./schemes/https\";\nSCHEMES[https.scheme] = https;\n\nimport ws from \"./schemes/ws\";\nSCHEMES[ws.scheme] = ws;\n\nimport wss from \"./schemes/wss\";\nSCHEMES[wss.scheme] = wss;\n\nimport mailto from \"./schemes/mailto\";\nSCHEMES[mailto.scheme] = mailto;\n\nimport urn from \"./schemes/urn\";\nSCHEMES[urn.scheme] = urn;\n\nimport uuid from \"./schemes/urn-uuid\";\nSCHEMES[uuid.scheme] = uuid;\n\nexport * from \"./uri\";\n"],"names":["module","exports","compileSchema","resolve","Cache","SchemaObject","stableStringify","formats","rules","$dataMetaSchema","util","Ajv","prototype","validate","schemaKeyRef","data","v","this","getSchema","Error","schemaObj","_addSchema","_compile","valid","$async","errors","compile","schema","_meta","undefined","addSchema","key","_skipValidation","Array","isArray","i","length","id","_getId","checkUnique","normalizeId","_schemas","addMetaSchema","skipValidation","validateSchema","throwOrLogError","$schema","_opts","defaultMeta","self","meta","META_SCHEMA_ID","logger","warn","message","errorsText","error","keyRef","_getSchemaObj","ref","res","call","root","baseId","_fragments","fragment","_getSchemaFragment","removeSchema","RegExp","_removeAllSchemas","_refs","_cache","clear","del","cacheKey","serialize","addFormat","name","format","_formats","options","separator","dataVar","text","e","dataPath","slice","shouldAddSchema","cached","get","addUsedSchema","recursiveMeta","willValidate","localRefs","ids","put","compiling","callValidate","currentOpts","_metaOpts","refs","refVal","_validate","result","apply","arguments","compileAsync","customKeyword","addKeyword","add","getKeyword","removeKeyword","remove","validateKeyword","errorClasses","ValidationError","Validation","MissingRefError","MissingRef","META_IGNORE_OPTIONS","META_SUPPORT_DATA","opts","copy","log","noop","console","setLogger","cache","_loadingSchemas","_compilations","RULES","schemaId","_get$IdOrId","_get$Id","chooseGetId","loopRequired","Infinity","errorDataPath","_errorDataPathProperty","metaOpts","getMetaSchemaOptions","addInitialFormats","keywords","keyword","addInitialKeywords","$dataSchema","$data","$id","metaSchema","addDefaultMetaSchema","nullable","type","optsSchemas","schemas","addInitialSchemas","regex","test","value","callback","loadSchema","p","loadMetaSchemaOf","then","_compileAsync","sch","$ref","Promise","missingSchema","added","missingRef","schemaPromise","removePromise","loadMissingSchema","url","fullPath","errorSubclass","Subclass","Object","create","constructor","ajv","validation","DATE","DAYS","TIME","HOSTNAME","URI","URITEMPLATE","URL","UUID","JSON_POINTER","JSON_POINTER_URI_FRAGMENT","RELATIVE_JSON_POINTER","mode","date","str","matches","match","year","month","day","isLeapYear","time","full","hour","minute","second","timeZone","fast","uri","email","hostname","ipv4","ipv6","uuid","dateTime","split","DATE_TIME_SEPARATOR","NOT_URI_FRAGMENT","Z_ANCHOR","validateGenerator","ucs2length","equal","checkCompiling","index","compIndex","endCompiling","splice","c","patternCode","patterns","toQuotedString","defaultCode","refValCode","customRuleCode","vars","arr","statement","code","patternsHash","defaults","defaultsHash","customRules","compilation","localCompile","cv","sourceCode","source","_schema","_root","isRoot","isTop","schemaPath","errSchemaPath","errorPath","resolveRef","usePattern","useDefault","useCustomRule","processCode","Function","makeValidate","_refVal","refCode","refIndex","resolvedRef","rootRefId","addLocalRef","localSchema","inlineRef","inlineRefs","refId","replaceLocalRef","removeLocalRef","inline","regexStr","valueStr","rule","parentSchema","it","deps","definition","dependencies","every","hasOwnProperty","join","macro","traverse","resolveSchema","parse","refPath","_getFullPath","getFullPath","keys","resolveRecursive","getJsonPointer","parsedRef","resolveUrl","baseIds","fullPaths","allKeys","jsonPtr","rootSchema","parentJsonPtr","parentKeyword","keyIndex","escapeFragment","PREVENT_SCOPE_CHANGE","toHash","parts","part","unescapeFragment","SIMPLE_INLINED","limit","checkNoRef","countKeys","item","count","normalize","TRAILING_SLASH_HASH","replace","ruleModules","ALL","all","types","forEach","group","map","implKeywords","k","push","implements","$comment","concat","custom","obj","len","pos","charCodeAt","checkDataType","dataType","strictNumbers","negate","EQUAL","AND","OK","NOT","o","to","checkDataTypes","dataTypes","t","array","object","null","number","integer","coerceToTypes","optionCoerceTypes","COERCE_TO_TYPES","getProperty","escapeQuotes","varOccurences","varReplace","expr","schemaHasRules","schemaHasRulesExcept","exceptKeyword","schemaUnknownRules","getPathExpr","currentPath","jsonPointers","isNumber","joinPaths","getPath","prop","escapeJsonPointer","getData","lvl","paths","up","jsonPointer","segments","segment","unescapeJsonPointer","decodeURIComponent","encodeURIComponent","hash","IDENTIFIER","SINGLE_QUOTE","a","b","KEYWORDS","keywordsJsonPointers","JSON","stringify","j","anyOf","definitions","simpleTypes","statements","not","required","properties","items","modifying","async","const","$keyword","$ruleType","$schemaValue","out","$lvl","level","$dataLvl","dataLevel","$schemaPath","$errSchemaPath","$breakOnError","allErrors","$isData","dataPathArr","$isMax","$exclusiveKeyword","$schemaExcl","$isDataExcl","$op","$notOp","$errorKeyword","$$outStack","$schemaValueExcl","$exclusive","$exclType","$exclIsNumber","$opStr","$opExpr","createErrors","messages","verbose","__err","pop","compositeRule","Math","unicode","$it","$closingBraces","$nextValid","$currentBaseId","$allSchemasEmpty","arr1","$sch","$i","l1","strictKeywords","$valid","$errs","$noEmptySchema","$wasComposite","$idx","$dataNxt","$nextData","$nonEmptySchema","$passData","$code","$compile","$inline","$macro","$ruleValidate","$validateCode","$rule","$definition","$rDef","$validateSchema","$ruleErrs","$ruleErr","$asyncKeyword","passContext","$parentData","$parentDataProperty","def_callRuleValidate","def_customError","$schemaDeps","$propertyDeps","$ownProperties","ownProperties","$property","$deps","$currentErrorPath","$propertyKey","$useData","$prop","$propertyPath","$missingProperty","arr2","i2","l2","$vSchema","$unknownFormats","unknownFormats","$allowUnknown","$format","$isObject","$formatType","indexOf","$formatRef","$thenSch","$elseSch","$thenPresent","$elsePresent","$ifClause","allOf","contains","maximum","minimum","maxItems","minItems","maxLength","minLength","maxProperties","minProperties","multipleOf","oneOf","pattern","propertyNames","uniqueItems","$additionalItems","additionalItems","$currErrSchemaPath","multipleOfPrecision","$allErrorsOption","$prevValid","$passingSchemas","$key","$dataProperties","$schemaKeys","filter","notProto","$pProperties","patternProperties","$pPropertyKeys","$aProperties","additionalProperties","$someProperties","$noAdditional","$additionalIsSchema","$removeAdditional","removeAdditional","$checkAdditional","$required","$requiredHash","i1","$pProperty","$additionalProperty","$useDefaults","useDefaults","arr3","i3","l3","$hasDefault","default","arr4","i4","l4","$invalidName","$refCode","$refVal","$message","missingRefs","__callValidate","$propertySch","$loopRequired","$itemType","$typeIsArray","$method","$refKeywords","$unknownKwd","$keywordsMsg","$top","rootId","strictDefaults","$defaultMsg","$closingBraces1","$closingBraces2","$typeSchema","extendRefs","coerceTypes","$coerceToTypes","$rulesGroup","$shouldUseGroup","$dataType","$coerced","$type","arr5","i5","l5","$shouldUseRule","impl","$ruleImplementsSomeKeyword","definitionSchema","_addRule","ruleGroup","rg","throwError","_validateKeyword","flags","valueOf","toString","cmp","f","cycles","node","aobj","bobj","seen","toJSON","isFinite","TypeError","seenIndex","sort","cb","_traverse","pre","post","arrayKeywords","propsKeywords","skipKeywords","enum","exclusiveMaximum","exclusiveMinimum","merge","sets","xl","x","subexp","typeOf","shift","toLowerCase","toUpperCase","buildExps","isIRI","ALPHA$$","DIGIT$$","HEXDIG$$","PCT_ENCODED$","SUB_DELIMS$$","RESERVED$$","SCHEME$","USERINFO$","UNRESERVED$$","DEC_OCTET_RELAXED$","H16$","LS32$","IPV4ADDRESS$","IPV6ADDRESS1$","IPV6ADDRESS2$","IPV6ADDRESS3$","IPV6ADDRESS4$","IPV6ADDRESS5$","IPV6ADDRESS6$","IPV6ADDRESS7$","IPV6ADDRESS8$","IPV6ADDRESS9$","ZONEID$","IPV6ADDRESS$","IP_LITERAL$","IPV6ADDRZ_RELAXED$","IPVFUTURE$","HOST$","REG_NAME$","PORT$","AUTHORITY$","PCHAR$","SEGMENT$","SEGMENT_NZ$","SEGMENT_NZ_NC$","PATH_ABEMPTY$","PATH_ABSOLUTE$","QUERY$","PATH_NOSCHEME$","PATH_ROOTLESS$","PATH_EMPTY$","IPRIVATE$$","FRAGMENT$","HIER_PART$","URI$","RELATIVE_PART$","RELATIVE$","maxInt","base","regexPunycode","regexNonASCII","regexSeparators","floor","stringFromCharCode","String","fromCharCode","RangeError","mapDomain","string","fn","ucs2decode","output","counter","extra","digitToBasic","digit","flag","adapt","delta","numPoints","firstTime","baseMinusTMin","decode","input","codePoint","inputLength","n","bias","basic","lastIndexOf","oldi","w","baseMinusT","fromCodePoint","encode","currentValue","basicLength","handledCPCount","m","handledCPCountPlusOne","q","qMinusT","punycode","SCHEMES","pctEncChar","chr","pctDecChars","newStr","il","parseInt","substr","c2","c3","_normalizeComponentEncoding","components","protocol","decodeUnreserved","decStr","UNRESERVED","scheme","PCT_ENCODED","NOT_SCHEME","userinfo","NOT_USERINFO","host","NOT_HOST","path","NOT_PATH","NOT_PATH_NOSCHEME","query","NOT_QUERY","NOT_FRAGMENT","_stripLeadingZeros","_normalizeIPv4","IPV4ADDRESS","address","_normalizeIPv6","IPV6ADDRESS","zone","reverse","last","first","firstFields","lastFields","isLastFieldIPv4Address","fieldCount","lastFieldsStart","fields","longestZeroFields","reduce","acc","field","lastLongest","newHost","newFirst","newLast","URI_PARSE","NO_MATCH_IS_UNDEFINED","uriString","iri","IRI_PROTOCOL","URI_PROTOCOL","reference","port","isNaN","schemeHandler","unicodeSupport","domainHost","_recomposeAuthority","uriTokens","_","$1","$2","RDS1","RDS2","RDS3","RDS5","removeDotSegments","im","s","authority","charAt","absolutePath","resolveComponents","relative","target","tolerant","unescapeComponent","handler","secure","http","isSecure","wsComponents","resourceName","ws","O","VCHAR$$","NOT_LOCAL_PART","NOT_HFNAME","NOT_HFVALUE","mailtoComponents","unknownHeaders","headers","hfields","hfield","toAddrs","subject","body","addr","setInterval","toAddr","atIdx","localPart","domain","URN_PARSE","urnComponents","nid","nss","urnScheme","uriComponents","uuidComponents","https","wss","mailto","urn","baseURI","relativeURI","schemelessOptions","assign","uriA","uriB","ESCAPE"],"sourceRoot":""} \ No newline at end of file diff --git a/_static/build/4665.aa19a41.js b/_static/build/4665.aa19a41.js new file mode 100644 index 0000000..e550937 --- /dev/null +++ b/_static/build/4665.aa19a41.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[4665],{94665:(e,t,r)=>{r.d(t,{O:()=>T,g:()=>i});var n=r(26169);const T=new n.Token("@jupyterlab/settingeditor:ISettingEditorTracker"),i=new n.Token("@jupyterlab/settingeditor:IJSONSettingEditorTracker")}}]); +//# sourceMappingURL=4665.aa19a41.js.map \ No newline at end of file diff --git a/_static/build/4665.aa19a41.js.map b/_static/build/4665.aa19a41.js.map new file mode 100644 index 0000000..fbae817 --- /dev/null +++ b/_static/build/4665.aa19a41.js.map @@ -0,0 +1 @@ +{"version":3,"file":"4665.aa19a41.js","mappings":"2KAYO,MAAM,EAAwB,IAAI,QACvC,mDAOW,EAA4B,IAAI,QAC3C,sD","sources":["webpack://_JUPYTERLAB.CORE_OUTPUT/../src/tokens.ts"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/_static/build/4668.f65690b.js b/_static/build/4668.f65690b.js new file mode 100644 index 0000000..e900b71 --- /dev/null +++ b/_static/build/4668.f65690b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[4668],{64668:(T,U,_)=>{_.r(U)}}]); \ No newline at end of file diff --git a/_static/build/4690.3dd4096.js b/_static/build/4690.3dd4096.js new file mode 100644 index 0000000..f5eff38 --- /dev/null +++ b/_static/build/4690.3dd4096.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[4690],{73730:(e,n,t)=>{t.d(n,{Z:()=>s});var o=t(34663),r=t.n(o),a=t(7638),c=t.n(a)()(r());c.push([e.id,".cm-s-ambiance.CodeMirror {\n -webkit-box-shadow: none;\n -moz-box-shadow: none;\n box-shadow: none;\n}\n","",{version:3,sources:["webpack://./../node_modules/codemirror/theme/ambiance-mobile.css"],names:[],mappings:"AAAA;EACE,wBAAwB;EACxB,qBAAqB;EACrB,gBAAgB;AAClB",sourcesContent:[".cm-s-ambiance.CodeMirror {\n -webkit-box-shadow: none;\n -moz-box-shadow: none;\n box-shadow: none;\n}\n"],sourceRoot:""}]);const s=c},7638:e=>{e.exports=function(e){var n=[];return n.toString=function(){return this.map((function(n){var t="",o=void 0!==n[5];return n[4]&&(t+="@supports (".concat(n[4],") {")),n[2]&&(t+="@media ".concat(n[2]," {")),o&&(t+="@layer".concat(n[5].length>0?" ".concat(n[5]):""," {")),t+=e(n),o&&(t+="}"),n[2]&&(t+="}"),n[4]&&(t+="}"),t})).join("")},n.i=function(e,t,o,r,a){"string"==typeof e&&(e=[[null,e,void 0]]);var c={};if(o)for(var s=0;s0?" ".concat(p[5]):""," {").concat(p[1],"}")),p[5]=a),t&&(p[2]?(p[1]="@media ".concat(p[2]," {").concat(p[1],"}"),p[2]=t):p[2]=t),r&&(p[4]?(p[1]="@supports (".concat(p[4],") {").concat(p[1],"}"),p[4]=r):p[4]="".concat(r)),n.push(p))}},n}},34663:e=>{e.exports=function(e){var n=e[1],t=e[3];if(!t)return n;if("function"==typeof btoa){var o=btoa(unescape(encodeURIComponent(JSON.stringify(t)))),r="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(o),a="/*# ".concat(r," */"),c=t.sources.map((function(e){return"/*# sourceURL=".concat(t.sourceRoot||"").concat(e," */")}));return[n].concat(c).concat([a]).join("\n")}return[n].join("\n")}},74690:(e,n,t)=>{t.r(n),t.d(n,{default:()=>b});var o=t(1892),r=t.n(o),a=t(95760),c=t.n(a),s=t(38311),i=t.n(s),u=t(58192),p=t.n(u),d=t(38060),l=t.n(d),f=t(54865),m=t.n(f),v=t(73730),h={};h.styleTagTransform=m(),h.setAttributes=p(),h.insert=i().bind(null,"head"),h.domAPI=c(),h.insertStyleElement=l(),r()(v.Z,h);const b=v.Z&&v.Z.locals?v.Z.locals:void 0},1892:e=>{var n=[];function t(e){for(var t=-1,o=0;o{var n={};e.exports=function(e,t){var o=function(e){if(void 0===n[e]){var t=document.querySelector(e);if(window.HTMLIFrameElement&&t instanceof window.HTMLIFrameElement)try{t=t.contentDocument.head}catch(e){t=null}n[e]=t}return n[e]}(e);if(!o)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");o.appendChild(t)}},38060:e=>{e.exports=function(e){var n=document.createElement("style");return e.setAttributes(n,e.attributes),e.insert(n,e.options),n}},58192:(e,n,t)=>{e.exports=function(e){var n=t.nc;n&&e.setAttribute("nonce",n)}},95760:e=>{e.exports=function(e){var n=e.insertStyleElement(e);return{update:function(t){!function(e,n,t){var o="";t.supports&&(o+="@supports (".concat(t.supports,") {")),t.media&&(o+="@media ".concat(t.media," {"));var r=void 0!==t.layer;r&&(o+="@layer".concat(t.layer.length>0?" ".concat(t.layer):""," {")),o+=t.css,r&&(o+="}"),t.media&&(o+="}"),t.supports&&(o+="}");var a=t.sourceMap;a&&"undefined"!=typeof btoa&&(o+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(a))))," */")),n.styleTagTransform(o,e,n.options)}(n,e,t)},remove:function(){!function(e){if(null===e.parentNode)return!1;e.parentNode.removeChild(e)}(n)}}}},54865:e=>{e.exports=function(e,n){if(n.styleSheet)n.styleSheet.cssText=e;else{for(;n.firstChild;)n.removeChild(n.firstChild);n.appendChild(document.createTextNode(e))}}}}]); +//# sourceMappingURL=4690.3dd4096.js.map \ No newline at end of file diff --git a/_static/build/4690.3dd4096.js.map b/_static/build/4690.3dd4096.js.map new file mode 100644 index 0000000..6664f25 --- /dev/null +++ b/_static/build/4690.3dd4096.js.map @@ -0,0 +1 @@ +{"version":3,"file":"4690.3dd4096.js","mappings":"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","sources":["webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/theme/ambiance-mobile.css","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/css-loader/dist/runtime/api.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/css-loader/dist/runtime/sourceMaps.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/theme/ambiance-mobile.css?73f4","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/insertBySelector.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/insertStyleElement.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/styleDomAPI.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/styleTagTransform.js"],"sourcesContent":["// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".cm-s-ambiance.CodeMirror {\\n -webkit-box-shadow: none;\\n -moz-box-shadow: none;\\n box-shadow: none;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./../node_modules/codemirror/theme/ambiance-mobile.css\"],\"names\":[],\"mappings\":\"AAAA;EACE,wBAAwB;EACxB,qBAAqB;EACrB,gBAAgB;AAClB\",\"sourcesContent\":[\".cm-s-ambiance.CodeMirror {\\n -webkit-box-shadow: none;\\n -moz-box-shadow: none;\\n box-shadow: none;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\nmodule.exports = function (cssWithMappingToString) {\n var list = [];\n\n // return the list of modules as css string\n list.toString = function toString() {\n return this.map(function (item) {\n var content = \"\";\n var needLayer = typeof item[5] !== \"undefined\";\n if (item[4]) {\n content += \"@supports (\".concat(item[4], \") {\");\n }\n if (item[2]) {\n content += \"@media \".concat(item[2], \" {\");\n }\n if (needLayer) {\n content += \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\");\n }\n content += cssWithMappingToString(item);\n if (needLayer) {\n content += \"}\";\n }\n if (item[2]) {\n content += \"}\";\n }\n if (item[4]) {\n content += \"}\";\n }\n return content;\n }).join(\"\");\n };\n\n // import a list of modules into the list\n list.i = function i(modules, media, dedupe, supports, layer) {\n if (typeof modules === \"string\") {\n modules = [[null, modules, undefined]];\n }\n var alreadyImportedModules = {};\n if (dedupe) {\n for (var k = 0; k < this.length; k++) {\n var id = this[k][0];\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n for (var _k = 0; _k < modules.length; _k++) {\n var item = [].concat(modules[_k]);\n if (dedupe && alreadyImportedModules[item[0]]) {\n continue;\n }\n if (typeof layer !== \"undefined\") {\n if (typeof item[5] === \"undefined\") {\n item[5] = layer;\n } else {\n item[1] = \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\").concat(item[1], \"}\");\n item[5] = layer;\n }\n }\n if (media) {\n if (!item[2]) {\n item[2] = media;\n } else {\n item[1] = \"@media \".concat(item[2], \" {\").concat(item[1], \"}\");\n item[2] = media;\n }\n }\n if (supports) {\n if (!item[4]) {\n item[4] = \"\".concat(supports);\n } else {\n item[1] = \"@supports (\".concat(item[4], \") {\").concat(item[1], \"}\");\n item[4] = supports;\n }\n }\n list.push(item);\n }\n };\n return list;\n};","\"use strict\";\n\nmodule.exports = function (item) {\n var content = item[1];\n var cssMapping = item[3];\n if (!cssMapping) {\n return content;\n }\n if (typeof btoa === \"function\") {\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(cssMapping))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n var sourceMapping = \"/*# \".concat(data, \" */\");\n var sourceURLs = cssMapping.sources.map(function (source) {\n return \"/*# sourceURL=\".concat(cssMapping.sourceRoot || \"\").concat(source, \" */\");\n });\n return [content].concat(sourceURLs).concat([sourceMapping]).join(\"\\n\");\n }\n return [content].join(\"\\n\");\n};","\n import API from \"!../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../css-loader/dist/cjs.js!./ambiance-mobile.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../css-loader/dist/cjs.js!./ambiance-mobile.css\";\n export default content && content.locals ? content.locals : undefined;\n","\"use strict\";\n\nvar stylesInDOM = [];\n\nfunction getIndexByIdentifier(identifier) {\n var result = -1;\n\n for (var i = 0; i < stylesInDOM.length; i++) {\n if (stylesInDOM[i].identifier === identifier) {\n result = i;\n break;\n }\n }\n\n return result;\n}\n\nfunction modulesToDom(list, options) {\n var idCountMap = {};\n var identifiers = [];\n\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var count = idCountMap[id] || 0;\n var identifier = \"\".concat(id, \" \").concat(count);\n idCountMap[id] = count + 1;\n var indexByIdentifier = getIndexByIdentifier(identifier);\n var obj = {\n css: item[1],\n media: item[2],\n sourceMap: item[3],\n supports: item[4],\n layer: item[5]\n };\n\n if (indexByIdentifier !== -1) {\n stylesInDOM[indexByIdentifier].references++;\n stylesInDOM[indexByIdentifier].updater(obj);\n } else {\n var updater = addElementStyle(obj, options);\n options.byIndex = i;\n stylesInDOM.splice(i, 0, {\n identifier: identifier,\n updater: updater,\n references: 1\n });\n }\n\n identifiers.push(identifier);\n }\n\n return identifiers;\n}\n\nfunction addElementStyle(obj, options) {\n var api = options.domAPI(options);\n api.update(obj);\n\n var updater = function updater(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap && newObj.supports === obj.supports && newObj.layer === obj.layer) {\n return;\n }\n\n api.update(obj = newObj);\n } else {\n api.remove();\n }\n };\n\n return updater;\n}\n\nmodule.exports = function (list, options) {\n options = options || {};\n list = list || [];\n var lastIdentifiers = modulesToDom(list, options);\n return function update(newList) {\n newList = newList || [];\n\n for (var i = 0; i < lastIdentifiers.length; i++) {\n var identifier = lastIdentifiers[i];\n var index = getIndexByIdentifier(identifier);\n stylesInDOM[index].references--;\n }\n\n var newLastIdentifiers = modulesToDom(newList, options);\n\n for (var _i = 0; _i < lastIdentifiers.length; _i++) {\n var _identifier = lastIdentifiers[_i];\n\n var _index = getIndexByIdentifier(_identifier);\n\n if (stylesInDOM[_index].references === 0) {\n stylesInDOM[_index].updater();\n\n stylesInDOM.splice(_index, 1);\n }\n }\n\n lastIdentifiers = newLastIdentifiers;\n };\n};","\"use strict\";\n\nvar memo = {};\n/* istanbul ignore next */\n\nfunction getTarget(target) {\n if (typeof memo[target] === \"undefined\") {\n var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself\n\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n\n memo[target] = styleTarget;\n }\n\n return memo[target];\n}\n/* istanbul ignore next */\n\n\nfunction insertBySelector(insert, style) {\n var target = getTarget(insert);\n\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n\n target.appendChild(style);\n}\n\nmodule.exports = insertBySelector;","\"use strict\";\n\n/* istanbul ignore next */\nfunction insertStyleElement(options) {\n var element = document.createElement(\"style\");\n options.setAttributes(element, options.attributes);\n options.insert(element, options.options);\n return element;\n}\n\nmodule.exports = insertStyleElement;","\"use strict\";\n\n/* istanbul ignore next */\nfunction setAttributesWithoutAttributes(styleElement) {\n var nonce = typeof __webpack_nonce__ !== \"undefined\" ? __webpack_nonce__ : null;\n\n if (nonce) {\n styleElement.setAttribute(\"nonce\", nonce);\n }\n}\n\nmodule.exports = setAttributesWithoutAttributes;","\"use strict\";\n\n/* istanbul ignore next */\nfunction apply(styleElement, options, obj) {\n var css = \"\";\n\n if (obj.supports) {\n css += \"@supports (\".concat(obj.supports, \") {\");\n }\n\n if (obj.media) {\n css += \"@media \".concat(obj.media, \" {\");\n }\n\n var needLayer = typeof obj.layer !== \"undefined\";\n\n if (needLayer) {\n css += \"@layer\".concat(obj.layer.length > 0 ? \" \".concat(obj.layer) : \"\", \" {\");\n }\n\n css += obj.css;\n\n if (needLayer) {\n css += \"}\";\n }\n\n if (obj.media) {\n css += \"}\";\n }\n\n if (obj.supports) {\n css += \"}\";\n }\n\n var sourceMap = obj.sourceMap;\n\n if (sourceMap && typeof btoa !== \"undefined\") {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n } // For old IE\n\n /* istanbul ignore if */\n\n\n options.styleTagTransform(css, styleElement, options.options);\n}\n\nfunction removeStyleElement(styleElement) {\n // istanbul ignore if\n if (styleElement.parentNode === null) {\n return false;\n }\n\n styleElement.parentNode.removeChild(styleElement);\n}\n/* istanbul ignore next */\n\n\nfunction domAPI(options) {\n var styleElement = options.insertStyleElement(options);\n return {\n update: function update(obj) {\n apply(styleElement, options, obj);\n },\n remove: function remove() {\n removeStyleElement(styleElement);\n }\n };\n}\n\nmodule.exports = domAPI;","\"use strict\";\n\n/* istanbul ignore next */\nfunction styleTagTransform(css, styleElement) {\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = css;\n } else {\n while (styleElement.firstChild) {\n styleElement.removeChild(styleElement.firstChild);\n }\n\n styleElement.appendChild(document.createTextNode(css));\n }\n}\n\nmodule.exports = styleTagTransform;"],"names":["___CSS_LOADER_EXPORT___","push","module","id","exports","cssWithMappingToString","list","toString","this","map","item","content","needLayer","concat","length","join","i","modules","media","dedupe","supports","layer","undefined","alreadyImportedModules","k","_k","cssMapping","btoa","base64","unescape","encodeURIComponent","JSON","stringify","data","sourceMapping","sourceURLs","sources","source","sourceRoot","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","stylesInDOM","getIndexByIdentifier","identifier","result","modulesToDom","idCountMap","identifiers","base","count","indexByIdentifier","obj","css","sourceMap","references","updater","addElementStyle","byIndex","splice","api","update","newObj","remove","lastIdentifiers","newList","index","newLastIdentifiers","_i","_index","memo","style","target","styleTarget","document","querySelector","window","HTMLIFrameElement","contentDocument","head","e","getTarget","Error","appendChild","element","createElement","attributes","styleElement","nonce","setAttribute","apply","parentNode","removeChild","removeStyleElement","styleSheet","cssText","firstChild","createTextNode"],"sourceRoot":""} \ No newline at end of file diff --git a/_static/build/4715.e7690b9.js b/_static/build/4715.e7690b9.js new file mode 100644 index 0000000..a51e461 --- /dev/null +++ b/_static/build/4715.e7690b9.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[4715,1806],{54715:(e,t,n)=>{n.r(t),n.d(t,{STATUSBAR_PLUGIN_ID:()=>g,default:()=>C,kernelStatus:()=>h,lineColItem:()=>b,runningSessionsItem:()=>I});var a=n(67504),s=n(2814),o=n(69041),i=n(6624),r=n(33079),l=n(15786),c=n(16725),d=n(4265),u=n(59674),m=n(72867);const g="@jupyterlab/statusbar-extension:plugin",p={id:g,requires:[d.ITranslator],provides:c.IStatusBar,autoStart:!0,activate:(e,t,n,a,s)=>{const o=t.load("jupyterlab"),i=new c.StatusBar;i.id="jp-main-statusbar",e.shell.add(i,"bottom"),n&&n.layoutModified.connect((()=>{i.update()}));const r=o.__("Main Area"),l="statusbar:toggle";if(e.commands.addCommand(l,{label:o.__("Show Status Bar"),execute:e=>{i.setHidden(i.isVisible),a&&a.set(g,"visible",i.isVisible)},isToggled:()=>i.isVisible}),s&&s.addItem({command:l,category:r}),a){const t=a.load(g),n=e=>{const t=e.get("visible").composite;i.setHidden(!t)};Promise.all([t,e.restored]).then((([e])=>{n(e),e.changed.connect((e=>{n(e)}))})).catch((e=>{console.error(e.message)}))}return i},optional:[a.ILabShell,l.ISettingRegistry,s.ICommandPalette]},h={id:"@jupyterlab/statusbar-extension:kernel-status",autoStart:!0,requires:[c.IStatusBar,r.INotebookTracker,o.IConsoleTracker,a.ILabShell,d.ITranslator],optional:[s.ISessionContextDialogs],activate:(e,t,n,a,o,i,r)=>{let l=null;const d=new c.KernelStatus({onClick:async()=>{l&&await(r||s.sessionContextDialogs).selectKernel(l,i)}},i),u=e=>{d.model.activityName=e.label};o.currentChanged.connect(((e,t)=>{const{oldValue:s,newValue:o}=t;s&&s.title.changed.disconnect(u),o&&o.title.changed.connect(u),l=o&&a.has(o)||o&&n.has(o)?o.sessionContext:null,d.model.sessionContext=l})),t.registerStatusItem("@jupyterlab/statusbar-extension:kernel-status",{item:d,align:"left",rank:1,isActive:()=>{const e=o.currentWidget;return!!e&&(n.has(e)||a.has(e))}})}},b={id:"@jupyterlab/statusbar-extension:line-col-status",autoStart:!0,requires:[c.IStatusBar,r.INotebookTracker,i.IEditorTracker,o.IConsoleTracker,a.ILabShell,d.ITranslator],activate:(e,t,n,a,s,o,i)=>{const r=new c.LineCol(i),l=(e,t)=>{r.model.editor=t&&t.editor},d=(e,t)=>{r.model.editor=t&&t.editor};o.currentChanged.connect(((e,t)=>{const{oldValue:o,newValue:i}=t;if(o&&s.has(o)?o.console.promptCellCreated.disconnect(d):o&&n.has(o)&&o.content.activeCellChanged.disconnect(l),i&&s.has(i)){i.console.promptCellCreated.connect(d);const e=i.console.promptCell;r.model.editor=e&&e.editor}else if(i&&n.has(i)){i.content.activeCellChanged.connect(l);const e=i.content.activeCell;r.model.editor=e&&e.editor}else i&&a.has(i)?r.model.editor=i.content.editor:r.model.editor=null})),t.registerStatusItem("@jupyterlab/statusbar-extension:line-col-status",{item:r,align:"right",rank:2,isActive:()=>{const e=o.currentWidget;return!!e&&(n.has(e)||a.has(e)||s.has(e))}})}},I={id:"@jupyterlab/statusbar-extension:running-sessions-status",autoStart:!0,requires:[c.IStatusBar,d.ITranslator],activate:(e,t,n)=>{const a=new c.RunningSessions({onClick:()=>e.shell.activateById("jp-running-sessions"),serviceManager:e.serviceManager,translator:n});t.registerStatusItem("@jupyterlab/statusbar-extension:running-sessions-status",{item:a,align:"left",rank:0})}},S={id:"@jupyterlab/statusbar-extension:mode-switch",requires:[a.ILabShell,d.ITranslator,c.IStatusBar],optional:[l.ISettingRegistry],activate:(e,t,n,a,s)=>{const o=n.load("jupyterlab"),i=new u.Switch;if(i.id="jp-single-document-mode",i.valueChanged.connect(((e,n)=>{t.mode=n.newValue?"single-document":"multiple-document"})),t.modeChanged.connect(((e,t)=>{i.value="single-document"===t})),s){const n=s.load(g),a=e=>{const n=e.get("startMode").composite;n&&(t.mode="single"===n?"single-document":"multiple-document")};Promise.all([n,e.restored]).then((([e])=>{a(e)})).catch((e=>{console.error(e.message)}))}i.value="single-document"===t.mode;const r=()=>{const t=e.commands.keyBindings.find((e=>"application:toggle-mode"===e.command));if(t){const e=t.keys.map(m.CommandRegistry.formatKeystroke).join(", ");i.caption=o.__("Simple Interface (%1)",e)}else i.caption=o.__("Simple Interface")};r(),e.commands.keyBindingChanged.connect((()=>{r()})),i.label=o.__("Simple"),a.registerStatusItem("@jupyterlab/statusbar-extension:mode-switch",{item:i,align:"left",rank:-1})},autoStart:!0},C=[p,b,h,I,S]}}]); +//# sourceMappingURL=4715.e7690b9.js.map \ No newline at end of file diff --git a/_static/build/4715.e7690b9.js.map b/_static/build/4715.e7690b9.js.map new file mode 100644 index 0000000..150e16f --- /dev/null +++ b/_static/build/4715.e7690b9.js.map @@ -0,0 +1 @@ +{"version":3,"file":"4715.e7690b9.js","mappings":"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","sources":["webpack://_JUPYTERLAB.CORE_OUTPUT/../src/index.ts"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/_static/build/4749.46ebbb2.js b/_static/build/4749.46ebbb2.js new file mode 100644 index 0000000..be6ed22 --- /dev/null +++ b/_static/build/4749.46ebbb2.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[4749],{63867:(o,c,n)=>{n.d(c,{Z:()=>A});var r=n(34663),s=n.n(r),a=n(7638),e=n.n(a)()(s());e.push([o.id,"/*\n\n Name: shadowfox\n Author: overdodactyl (http://github.com/overdodactyl)\n\n Original shadowfox color scheme by Firefox\n\n*/\n\n.cm-s-shadowfox.CodeMirror { background: #2a2a2e; color: #b1b1b3; }\n.cm-s-shadowfox div.CodeMirror-selected { background: #353B48; }\n.cm-s-shadowfox .CodeMirror-line::selection, .cm-s-shadowfox .CodeMirror-line > span::selection, .cm-s-shadowfox .CodeMirror-line > span > span::selection { background: #353B48; }\n.cm-s-shadowfox .CodeMirror-line::-moz-selection, .cm-s-shadowfox .CodeMirror-line > span::-moz-selection, .cm-s-shadowfox .CodeMirror-line > span > span::-moz-selection { background: #353B48; }\n.cm-s-shadowfox .CodeMirror-gutters { background: #0c0c0d ; border-right: 1px solid #0c0c0d; }\n.cm-s-shadowfox .CodeMirror-guttermarker { color: #555; }\n.cm-s-shadowfox .CodeMirror-linenumber { color: #939393; }\n.cm-s-shadowfox .CodeMirror-cursor { border-left: 1px solid #fff; }\n\n.cm-s-shadowfox span.cm-comment { color: #939393; }\n.cm-s-shadowfox span.cm-atom { color: #FF7DE9; }\n.cm-s-shadowfox span.cm-quote { color: #FF7DE9; }\n.cm-s-shadowfox span.cm-builtin { color: #FF7DE9; }\n.cm-s-shadowfox span.cm-attribute { color: #FF7DE9; }\n.cm-s-shadowfox span.cm-keyword { color: #FF7DE9; }\n.cm-s-shadowfox span.cm-error { color: #FF7DE9; }\n\n.cm-s-shadowfox span.cm-number { color: #6B89FF; }\n.cm-s-shadowfox span.cm-string { color: #6B89FF; }\n.cm-s-shadowfox span.cm-string-2 { color: #6B89FF; }\n\n.cm-s-shadowfox span.cm-meta { color: #939393; }\n.cm-s-shadowfox span.cm-hr { color: #939393; }\n\n.cm-s-shadowfox span.cm-header { color: #75BFFF; }\n.cm-s-shadowfox span.cm-qualifier { color: #75BFFF; }\n.cm-s-shadowfox span.cm-variable-2 { color: #75BFFF; }\n\n.cm-s-shadowfox span.cm-property { color: #86DE74; }\n\n.cm-s-shadowfox span.cm-def { color: #75BFFF; }\n.cm-s-shadowfox span.cm-bracket { color: #75BFFF; }\n.cm-s-shadowfox span.cm-tag { color: #75BFFF; }\n.cm-s-shadowfox span.cm-link:visited { color: #75BFFF; }\n\n.cm-s-shadowfox span.cm-variable { color: #B98EFF; }\n.cm-s-shadowfox span.cm-variable-3 { color: #d7d7db; }\n.cm-s-shadowfox span.cm-link { color: #737373; }\n.cm-s-shadowfox span.cm-operator { color: #b1b1b3; }\n.cm-s-shadowfox span.cm-special { color: #d7d7db; }\n\n.cm-s-shadowfox .CodeMirror-activeline-background { background: rgba(185, 215, 253, .15) }\n.cm-s-shadowfox .CodeMirror-matchingbracket { outline: solid 1px rgba(255, 255, 255, .25); color: white !important; }\n","",{version:3,sources:["webpack://./../node_modules/codemirror/theme/shadowfox.css"],names:[],mappings:"AAAA;;;;;;;CAOC;;AAED,6BAA6B,mBAAmB,EAAE,cAAc,EAAE;AAClE,0CAA0C,mBAAmB,EAAE;AAC/D,6JAA6J,mBAAmB,EAAE;AAClL,4KAA4K,mBAAmB,EAAE;AACjM,sCAAsC,oBAAoB,EAAE,+BAA+B,EAAE;AAC7F,2CAA2C,WAAW,EAAE;AACxD,yCAAyC,cAAc,EAAE;AACzD,qCAAqC,2BAA2B,EAAE;;AAElE,kCAAkC,cAAc,EAAE;AAClD,+BAA+B,cAAc,EAAE;AAC/C,gCAAgC,cAAc,EAAE;AAChD,kCAAkC,cAAc,EAAE;AAClD,oCAAoC,cAAc,EAAE;AACpD,kCAAkC,cAAc,EAAE;AAClD,gCAAgC,cAAc,EAAE;;AAEhD,iCAAiC,cAAc,EAAE;AACjD,iCAAiC,cAAc,EAAE;AACjD,mCAAmC,cAAc,EAAE;;AAEnD,+BAA+B,cAAc,EAAE;AAC/C,6BAA6B,cAAc,EAAE;;AAE7C,iCAAiC,cAAc,EAAE;AACjD,oCAAoC,cAAc,EAAE;AACpD,qCAAqC,cAAc,EAAE;;AAErD,mCAAmC,cAAc,EAAE;;AAEnD,8BAA8B,cAAc,EAAE;AAC9C,kCAAkC,cAAc,EAAE;AAClD,8BAA8B,cAAc,EAAE;AAC9C,uCAAuC,cAAc,EAAE;;AAEvD,mCAAmC,cAAc,EAAE;AACnD,qCAAqC,cAAc,EAAE;AACrD,+BAA+B,cAAc,EAAE;AAC/C,mCAAmC,cAAc,EAAE;AACnD,kCAAkC,cAAc,EAAE;;AAElD,oDAAoD,qCAAqC;AACzF,8CAA8C,2CAA2C,EAAE,uBAAuB,EAAE",sourcesContent:["/*\n\n Name: shadowfox\n Author: overdodactyl (http://github.com/overdodactyl)\n\n Original shadowfox color scheme by Firefox\n\n*/\n\n.cm-s-shadowfox.CodeMirror { background: #2a2a2e; color: #b1b1b3; }\n.cm-s-shadowfox div.CodeMirror-selected { background: #353B48; }\n.cm-s-shadowfox .CodeMirror-line::selection, .cm-s-shadowfox .CodeMirror-line > span::selection, .cm-s-shadowfox .CodeMirror-line > span > span::selection { background: #353B48; }\n.cm-s-shadowfox .CodeMirror-line::-moz-selection, .cm-s-shadowfox .CodeMirror-line > span::-moz-selection, .cm-s-shadowfox .CodeMirror-line > span > span::-moz-selection { background: #353B48; }\n.cm-s-shadowfox .CodeMirror-gutters { background: #0c0c0d ; border-right: 1px solid #0c0c0d; }\n.cm-s-shadowfox .CodeMirror-guttermarker { color: #555; }\n.cm-s-shadowfox .CodeMirror-linenumber { color: #939393; }\n.cm-s-shadowfox .CodeMirror-cursor { border-left: 1px solid #fff; }\n\n.cm-s-shadowfox span.cm-comment { color: #939393; }\n.cm-s-shadowfox span.cm-atom { color: #FF7DE9; }\n.cm-s-shadowfox span.cm-quote { color: #FF7DE9; }\n.cm-s-shadowfox span.cm-builtin { color: #FF7DE9; }\n.cm-s-shadowfox span.cm-attribute { color: #FF7DE9; }\n.cm-s-shadowfox span.cm-keyword { color: #FF7DE9; }\n.cm-s-shadowfox span.cm-error { color: #FF7DE9; }\n\n.cm-s-shadowfox span.cm-number { color: #6B89FF; }\n.cm-s-shadowfox span.cm-string { color: #6B89FF; }\n.cm-s-shadowfox span.cm-string-2 { color: #6B89FF; }\n\n.cm-s-shadowfox span.cm-meta { color: #939393; }\n.cm-s-shadowfox span.cm-hr { color: #939393; }\n\n.cm-s-shadowfox span.cm-header { color: #75BFFF; }\n.cm-s-shadowfox span.cm-qualifier { color: #75BFFF; }\n.cm-s-shadowfox span.cm-variable-2 { color: #75BFFF; }\n\n.cm-s-shadowfox span.cm-property { color: #86DE74; }\n\n.cm-s-shadowfox span.cm-def { color: #75BFFF; }\n.cm-s-shadowfox span.cm-bracket { color: #75BFFF; }\n.cm-s-shadowfox span.cm-tag { color: #75BFFF; }\n.cm-s-shadowfox span.cm-link:visited { color: #75BFFF; }\n\n.cm-s-shadowfox span.cm-variable { color: #B98EFF; }\n.cm-s-shadowfox span.cm-variable-3 { color: #d7d7db; }\n.cm-s-shadowfox span.cm-link { color: #737373; }\n.cm-s-shadowfox span.cm-operator { color: #b1b1b3; }\n.cm-s-shadowfox span.cm-special { color: #d7d7db; }\n\n.cm-s-shadowfox .CodeMirror-activeline-background { background: rgba(185, 215, 253, .15) }\n.cm-s-shadowfox .CodeMirror-matchingbracket { outline: solid 1px rgba(255, 255, 255, .25); color: white !important; }\n"],sourceRoot:""}]);const A=e},7638:o=>{o.exports=function(o){var c=[];return c.toString=function(){return this.map((function(c){var n="",r=void 0!==c[5];return c[4]&&(n+="@supports (".concat(c[4],") {")),c[2]&&(n+="@media ".concat(c[2]," {")),r&&(n+="@layer".concat(c[5].length>0?" ".concat(c[5]):""," {")),n+=o(c),r&&(n+="}"),c[2]&&(n+="}"),c[4]&&(n+="}"),n})).join("")},c.i=function(o,n,r,s,a){"string"==typeof o&&(o=[[null,o,void 0]]);var e={};if(r)for(var A=0;A0?" ".concat(i[5]):""," {").concat(i[1],"}")),i[5]=a),n&&(i[2]?(i[1]="@media ".concat(i[2]," {").concat(i[1],"}"),i[2]=n):i[2]=n),s&&(i[4]?(i[1]="@supports (".concat(i[4],") {").concat(i[1],"}"),i[4]=s):i[4]="".concat(s)),c.push(i))}},c}},34663:o=>{o.exports=function(o){var c=o[1],n=o[3];if(!n)return c;if("function"==typeof btoa){var r=btoa(unescape(encodeURIComponent(JSON.stringify(n)))),s="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(r),a="/*# ".concat(s," */"),e=n.sources.map((function(o){return"/*# sourceURL=".concat(n.sourceRoot||"").concat(o," */")}));return[c].concat(e).concat([a]).join("\n")}return[c].join("\n")}},44749:(o,c,n)=>{n.r(c),n.d(c,{default:()=>C});var r=n(1892),s=n.n(r),a=n(95760),e=n.n(a),A=n(38311),t=n.n(A),d=n(58192),i=n.n(d),m=n(38060),l=n.n(m),f=n(54865),p=n.n(f),h=n(63867),u={};u.styleTagTransform=p(),u.setAttributes=i(),u.insert=t().bind(null,"head"),u.domAPI=e(),u.insertStyleElement=l(),s()(h.Z,u);const C=h.Z&&h.Z.locals?h.Z.locals:void 0},1892:o=>{var c=[];function n(o){for(var n=-1,r=0;r{var c={};o.exports=function(o,n){var r=function(o){if(void 0===c[o]){var n=document.querySelector(o);if(window.HTMLIFrameElement&&n instanceof window.HTMLIFrameElement)try{n=n.contentDocument.head}catch(o){n=null}c[o]=n}return c[o]}(o);if(!r)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");r.appendChild(n)}},38060:o=>{o.exports=function(o){var c=document.createElement("style");return o.setAttributes(c,o.attributes),o.insert(c,o.options),c}},58192:(o,c,n)=>{o.exports=function(o){var c=n.nc;c&&o.setAttribute("nonce",c)}},95760:o=>{o.exports=function(o){var c=o.insertStyleElement(o);return{update:function(n){!function(o,c,n){var r="";n.supports&&(r+="@supports (".concat(n.supports,") {")),n.media&&(r+="@media ".concat(n.media," {"));var s=void 0!==n.layer;s&&(r+="@layer".concat(n.layer.length>0?" ".concat(n.layer):""," {")),r+=n.css,s&&(r+="}"),n.media&&(r+="}"),n.supports&&(r+="}");var a=n.sourceMap;a&&"undefined"!=typeof btoa&&(r+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(a))))," */")),c.styleTagTransform(r,o,c.options)}(c,o,n)},remove:function(){!function(o){if(null===o.parentNode)return!1;o.parentNode.removeChild(o)}(c)}}}},54865:o=>{o.exports=function(o,c){if(c.styleSheet)c.styleSheet.cssText=o;else{for(;c.firstChild;)c.removeChild(c.firstChild);c.appendChild(document.createTextNode(o))}}}}]); +//# sourceMappingURL=4749.46ebbb2.js.map \ No newline at end of file diff --git a/_static/build/4749.46ebbb2.js.map b/_static/build/4749.46ebbb2.js.map new file mode 100644 index 0000000..1fbe00d --- /dev/null +++ b/_static/build/4749.46ebbb2.js.map @@ -0,0 +1 @@ +{"version":3,"file":"4749.46ebbb2.js","mappings":"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","sources":["webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/theme/shadowfox.css","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/css-loader/dist/runtime/api.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/css-loader/dist/runtime/sourceMaps.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/theme/shadowfox.css?a638","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/insertBySelector.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/insertStyleElement.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/styleDomAPI.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/styleTagTransform.js"],"sourcesContent":["// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"/*\\n\\n Name: shadowfox\\n Author: overdodactyl (http://github.com/overdodactyl)\\n\\n Original shadowfox color scheme by Firefox\\n\\n*/\\n\\n.cm-s-shadowfox.CodeMirror { background: #2a2a2e; color: #b1b1b3; }\\n.cm-s-shadowfox div.CodeMirror-selected { background: #353B48; }\\n.cm-s-shadowfox .CodeMirror-line::selection, .cm-s-shadowfox .CodeMirror-line > span::selection, .cm-s-shadowfox .CodeMirror-line > span > span::selection { background: #353B48; }\\n.cm-s-shadowfox .CodeMirror-line::-moz-selection, .cm-s-shadowfox .CodeMirror-line > span::-moz-selection, .cm-s-shadowfox .CodeMirror-line > span > span::-moz-selection { background: #353B48; }\\n.cm-s-shadowfox .CodeMirror-gutters { background: #0c0c0d ; border-right: 1px solid #0c0c0d; }\\n.cm-s-shadowfox .CodeMirror-guttermarker { color: #555; }\\n.cm-s-shadowfox .CodeMirror-linenumber { color: #939393; }\\n.cm-s-shadowfox .CodeMirror-cursor { border-left: 1px solid #fff; }\\n\\n.cm-s-shadowfox span.cm-comment { color: #939393; }\\n.cm-s-shadowfox span.cm-atom { color: #FF7DE9; }\\n.cm-s-shadowfox span.cm-quote { color: #FF7DE9; }\\n.cm-s-shadowfox span.cm-builtin { color: #FF7DE9; }\\n.cm-s-shadowfox span.cm-attribute { color: #FF7DE9; }\\n.cm-s-shadowfox span.cm-keyword { color: #FF7DE9; }\\n.cm-s-shadowfox span.cm-error { color: #FF7DE9; }\\n\\n.cm-s-shadowfox span.cm-number { color: #6B89FF; }\\n.cm-s-shadowfox span.cm-string { color: #6B89FF; }\\n.cm-s-shadowfox span.cm-string-2 { color: #6B89FF; }\\n\\n.cm-s-shadowfox span.cm-meta { color: #939393; }\\n.cm-s-shadowfox span.cm-hr { color: #939393; }\\n\\n.cm-s-shadowfox span.cm-header { color: #75BFFF; }\\n.cm-s-shadowfox span.cm-qualifier { color: #75BFFF; }\\n.cm-s-shadowfox span.cm-variable-2 { color: #75BFFF; }\\n\\n.cm-s-shadowfox span.cm-property { color: #86DE74; }\\n\\n.cm-s-shadowfox span.cm-def { color: #75BFFF; }\\n.cm-s-shadowfox span.cm-bracket { color: #75BFFF; }\\n.cm-s-shadowfox span.cm-tag { color: #75BFFF; }\\n.cm-s-shadowfox span.cm-link:visited { color: #75BFFF; }\\n\\n.cm-s-shadowfox span.cm-variable { color: #B98EFF; }\\n.cm-s-shadowfox span.cm-variable-3 { color: #d7d7db; }\\n.cm-s-shadowfox span.cm-link { color: #737373; }\\n.cm-s-shadowfox span.cm-operator { color: #b1b1b3; }\\n.cm-s-shadowfox span.cm-special { color: #d7d7db; }\\n\\n.cm-s-shadowfox .CodeMirror-activeline-background { background: rgba(185, 215, 253, .15) }\\n.cm-s-shadowfox .CodeMirror-matchingbracket { outline: solid 1px rgba(255, 255, 255, .25); color: white !important; }\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./../node_modules/codemirror/theme/shadowfox.css\"],\"names\":[],\"mappings\":\"AAAA;;;;;;;CAOC;;AAED,6BAA6B,mBAAmB,EAAE,cAAc,EAAE;AAClE,0CAA0C,mBAAmB,EAAE;AAC/D,6JAA6J,mBAAmB,EAAE;AAClL,4KAA4K,mBAAmB,EAAE;AACjM,sCAAsC,oBAAoB,EAAE,+BAA+B,EAAE;AAC7F,2CAA2C,WAAW,EAAE;AACxD,yCAAyC,cAAc,EAAE;AACzD,qCAAqC,2BAA2B,EAAE;;AAElE,kCAAkC,cAAc,EAAE;AAClD,+BAA+B,cAAc,EAAE;AAC/C,gCAAgC,cAAc,EAAE;AAChD,kCAAkC,cAAc,EAAE;AAClD,oCAAoC,cAAc,EAAE;AACpD,kCAAkC,cAAc,EAAE;AAClD,gCAAgC,cAAc,EAAE;;AAEhD,iCAAiC,cAAc,EAAE;AACjD,iCAAiC,cAAc,EAAE;AACjD,mCAAmC,cAAc,EAAE;;AAEnD,+BAA+B,cAAc,EAAE;AAC/C,6BAA6B,cAAc,EAAE;;AAE7C,iCAAiC,cAAc,EAAE;AACjD,oCAAoC,cAAc,EAAE;AACpD,qCAAqC,cAAc,EAAE;;AAErD,mCAAmC,cAAc,EAAE;;AAEnD,8BAA8B,cAAc,EAAE;AAC9C,kCAAkC,cAAc,EAAE;AAClD,8BAA8B,cAAc,EAAE;AAC9C,uCAAuC,cAAc,EAAE;;AAEvD,mCAAmC,cAAc,EAAE;AACnD,qCAAqC,cAAc,EAAE;AACrD,+BAA+B,cAAc,EAAE;AAC/C,mCAAmC,cAAc,EAAE;AACnD,kCAAkC,cAAc,EAAE;;AAElD,oDAAoD,qCAAqC;AACzF,8CAA8C,2CAA2C,EAAE,uBAAuB,EAAE\",\"sourcesContent\":[\"/*\\n\\n Name: shadowfox\\n Author: overdodactyl (http://github.com/overdodactyl)\\n\\n Original shadowfox color scheme by Firefox\\n\\n*/\\n\\n.cm-s-shadowfox.CodeMirror { background: #2a2a2e; color: #b1b1b3; }\\n.cm-s-shadowfox div.CodeMirror-selected { background: #353B48; }\\n.cm-s-shadowfox .CodeMirror-line::selection, .cm-s-shadowfox .CodeMirror-line > span::selection, .cm-s-shadowfox .CodeMirror-line > span > span::selection { background: #353B48; }\\n.cm-s-shadowfox .CodeMirror-line::-moz-selection, .cm-s-shadowfox .CodeMirror-line > span::-moz-selection, .cm-s-shadowfox .CodeMirror-line > span > span::-moz-selection { background: #353B48; }\\n.cm-s-shadowfox .CodeMirror-gutters { background: #0c0c0d ; border-right: 1px solid #0c0c0d; }\\n.cm-s-shadowfox .CodeMirror-guttermarker { color: #555; }\\n.cm-s-shadowfox .CodeMirror-linenumber { color: #939393; }\\n.cm-s-shadowfox .CodeMirror-cursor { border-left: 1px solid #fff; }\\n\\n.cm-s-shadowfox span.cm-comment { color: #939393; }\\n.cm-s-shadowfox span.cm-atom { color: #FF7DE9; }\\n.cm-s-shadowfox span.cm-quote { color: #FF7DE9; }\\n.cm-s-shadowfox span.cm-builtin { color: #FF7DE9; }\\n.cm-s-shadowfox span.cm-attribute { color: #FF7DE9; }\\n.cm-s-shadowfox span.cm-keyword { color: #FF7DE9; }\\n.cm-s-shadowfox span.cm-error { color: #FF7DE9; }\\n\\n.cm-s-shadowfox span.cm-number { color: #6B89FF; }\\n.cm-s-shadowfox span.cm-string { color: #6B89FF; }\\n.cm-s-shadowfox span.cm-string-2 { color: #6B89FF; }\\n\\n.cm-s-shadowfox span.cm-meta { color: #939393; }\\n.cm-s-shadowfox span.cm-hr { color: #939393; }\\n\\n.cm-s-shadowfox span.cm-header { color: #75BFFF; }\\n.cm-s-shadowfox span.cm-qualifier { color: #75BFFF; }\\n.cm-s-shadowfox span.cm-variable-2 { color: #75BFFF; }\\n\\n.cm-s-shadowfox span.cm-property { color: #86DE74; }\\n\\n.cm-s-shadowfox span.cm-def { color: #75BFFF; }\\n.cm-s-shadowfox span.cm-bracket { color: #75BFFF; }\\n.cm-s-shadowfox span.cm-tag { color: #75BFFF; }\\n.cm-s-shadowfox span.cm-link:visited { color: #75BFFF; }\\n\\n.cm-s-shadowfox span.cm-variable { color: #B98EFF; }\\n.cm-s-shadowfox span.cm-variable-3 { color: #d7d7db; }\\n.cm-s-shadowfox span.cm-link { color: #737373; }\\n.cm-s-shadowfox span.cm-operator { color: #b1b1b3; }\\n.cm-s-shadowfox span.cm-special { color: #d7d7db; }\\n\\n.cm-s-shadowfox .CodeMirror-activeline-background { background: rgba(185, 215, 253, .15) }\\n.cm-s-shadowfox .CodeMirror-matchingbracket { outline: solid 1px rgba(255, 255, 255, .25); color: white !important; }\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\nmodule.exports = function (cssWithMappingToString) {\n var list = [];\n\n // return the list of modules as css string\n list.toString = function toString() {\n return this.map(function (item) {\n var content = \"\";\n var needLayer = typeof item[5] !== \"undefined\";\n if (item[4]) {\n content += \"@supports (\".concat(item[4], \") {\");\n }\n if (item[2]) {\n content += \"@media \".concat(item[2], \" {\");\n }\n if (needLayer) {\n content += \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\");\n }\n content += cssWithMappingToString(item);\n if (needLayer) {\n content += \"}\";\n }\n if (item[2]) {\n content += \"}\";\n }\n if (item[4]) {\n content += \"}\";\n }\n return content;\n }).join(\"\");\n };\n\n // import a list of modules into the list\n list.i = function i(modules, media, dedupe, supports, layer) {\n if (typeof modules === \"string\") {\n modules = [[null, modules, undefined]];\n }\n var alreadyImportedModules = {};\n if (dedupe) {\n for (var k = 0; k < this.length; k++) {\n var id = this[k][0];\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n for (var _k = 0; _k < modules.length; _k++) {\n var item = [].concat(modules[_k]);\n if (dedupe && alreadyImportedModules[item[0]]) {\n continue;\n }\n if (typeof layer !== \"undefined\") {\n if (typeof item[5] === \"undefined\") {\n item[5] = layer;\n } else {\n item[1] = \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\").concat(item[1], \"}\");\n item[5] = layer;\n }\n }\n if (media) {\n if (!item[2]) {\n item[2] = media;\n } else {\n item[1] = \"@media \".concat(item[2], \" {\").concat(item[1], \"}\");\n item[2] = media;\n }\n }\n if (supports) {\n if (!item[4]) {\n item[4] = \"\".concat(supports);\n } else {\n item[1] = \"@supports (\".concat(item[4], \") {\").concat(item[1], \"}\");\n item[4] = supports;\n }\n }\n list.push(item);\n }\n };\n return list;\n};","\"use strict\";\n\nmodule.exports = function (item) {\n var content = item[1];\n var cssMapping = item[3];\n if (!cssMapping) {\n return content;\n }\n if (typeof btoa === \"function\") {\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(cssMapping))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n var sourceMapping = \"/*# \".concat(data, \" */\");\n var sourceURLs = cssMapping.sources.map(function (source) {\n return \"/*# sourceURL=\".concat(cssMapping.sourceRoot || \"\").concat(source, \" */\");\n });\n return [content].concat(sourceURLs).concat([sourceMapping]).join(\"\\n\");\n }\n return [content].join(\"\\n\");\n};","\n import API from \"!../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../css-loader/dist/cjs.js!./shadowfox.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../css-loader/dist/cjs.js!./shadowfox.css\";\n export default content && content.locals ? content.locals : undefined;\n","\"use strict\";\n\nvar stylesInDOM = [];\n\nfunction getIndexByIdentifier(identifier) {\n var result = -1;\n\n for (var i = 0; i < stylesInDOM.length; i++) {\n if (stylesInDOM[i].identifier === identifier) {\n result = i;\n break;\n }\n }\n\n return result;\n}\n\nfunction modulesToDom(list, options) {\n var idCountMap = {};\n var identifiers = [];\n\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var count = idCountMap[id] || 0;\n var identifier = \"\".concat(id, \" \").concat(count);\n idCountMap[id] = count + 1;\n var indexByIdentifier = getIndexByIdentifier(identifier);\n var obj = {\n css: item[1],\n media: item[2],\n sourceMap: item[3],\n supports: item[4],\n layer: item[5]\n };\n\n if (indexByIdentifier !== -1) {\n stylesInDOM[indexByIdentifier].references++;\n stylesInDOM[indexByIdentifier].updater(obj);\n } else {\n var updater = addElementStyle(obj, options);\n options.byIndex = i;\n stylesInDOM.splice(i, 0, {\n identifier: identifier,\n updater: updater,\n references: 1\n });\n }\n\n identifiers.push(identifier);\n }\n\n return identifiers;\n}\n\nfunction addElementStyle(obj, options) {\n var api = options.domAPI(options);\n api.update(obj);\n\n var updater = function updater(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap && newObj.supports === obj.supports && newObj.layer === obj.layer) {\n return;\n }\n\n api.update(obj = newObj);\n } else {\n api.remove();\n }\n };\n\n return updater;\n}\n\nmodule.exports = function (list, options) {\n options = options || {};\n list = list || [];\n var lastIdentifiers = modulesToDom(list, options);\n return function update(newList) {\n newList = newList || [];\n\n for (var i = 0; i < lastIdentifiers.length; i++) {\n var identifier = lastIdentifiers[i];\n var index = getIndexByIdentifier(identifier);\n stylesInDOM[index].references--;\n }\n\n var newLastIdentifiers = modulesToDom(newList, options);\n\n for (var _i = 0; _i < lastIdentifiers.length; _i++) {\n var _identifier = lastIdentifiers[_i];\n\n var _index = getIndexByIdentifier(_identifier);\n\n if (stylesInDOM[_index].references === 0) {\n stylesInDOM[_index].updater();\n\n stylesInDOM.splice(_index, 1);\n }\n }\n\n lastIdentifiers = newLastIdentifiers;\n };\n};","\"use strict\";\n\nvar memo = {};\n/* istanbul ignore next */\n\nfunction getTarget(target) {\n if (typeof memo[target] === \"undefined\") {\n var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself\n\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n\n memo[target] = styleTarget;\n }\n\n return memo[target];\n}\n/* istanbul ignore next */\n\n\nfunction insertBySelector(insert, style) {\n var target = getTarget(insert);\n\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n\n target.appendChild(style);\n}\n\nmodule.exports = insertBySelector;","\"use strict\";\n\n/* istanbul ignore next */\nfunction insertStyleElement(options) {\n var element = document.createElement(\"style\");\n options.setAttributes(element, options.attributes);\n options.insert(element, options.options);\n return element;\n}\n\nmodule.exports = insertStyleElement;","\"use strict\";\n\n/* istanbul ignore next */\nfunction setAttributesWithoutAttributes(styleElement) {\n var nonce = typeof __webpack_nonce__ !== \"undefined\" ? __webpack_nonce__ : null;\n\n if (nonce) {\n styleElement.setAttribute(\"nonce\", nonce);\n }\n}\n\nmodule.exports = setAttributesWithoutAttributes;","\"use strict\";\n\n/* istanbul ignore next */\nfunction apply(styleElement, options, obj) {\n var css = \"\";\n\n if (obj.supports) {\n css += \"@supports (\".concat(obj.supports, \") {\");\n }\n\n if (obj.media) {\n css += \"@media \".concat(obj.media, \" {\");\n }\n\n var needLayer = typeof obj.layer !== \"undefined\";\n\n if (needLayer) {\n css += \"@layer\".concat(obj.layer.length > 0 ? \" \".concat(obj.layer) : \"\", \" {\");\n }\n\n css += obj.css;\n\n if (needLayer) {\n css += \"}\";\n }\n\n if (obj.media) {\n css += \"}\";\n }\n\n if (obj.supports) {\n css += \"}\";\n }\n\n var sourceMap = obj.sourceMap;\n\n if (sourceMap && typeof btoa !== \"undefined\") {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n } // For old IE\n\n /* istanbul ignore if */\n\n\n options.styleTagTransform(css, styleElement, options.options);\n}\n\nfunction removeStyleElement(styleElement) {\n // istanbul ignore if\n if (styleElement.parentNode === null) {\n return false;\n }\n\n styleElement.parentNode.removeChild(styleElement);\n}\n/* istanbul ignore next */\n\n\nfunction domAPI(options) {\n var styleElement = options.insertStyleElement(options);\n return {\n update: function update(obj) {\n apply(styleElement, options, obj);\n },\n remove: function remove() {\n removeStyleElement(styleElement);\n }\n };\n}\n\nmodule.exports = domAPI;","\"use strict\";\n\n/* istanbul ignore next */\nfunction styleTagTransform(css, styleElement) {\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = css;\n } else {\n while (styleElement.firstChild) {\n styleElement.removeChild(styleElement.firstChild);\n }\n\n styleElement.appendChild(document.createTextNode(css));\n }\n}\n\nmodule.exports = styleTagTransform;"],"names":["___CSS_LOADER_EXPORT___","push","module","id","exports","cssWithMappingToString","list","toString","this","map","item","content","needLayer","concat","length","join","i","modules","media","dedupe","supports","layer","undefined","alreadyImportedModules","k","_k","cssMapping","btoa","base64","unescape","encodeURIComponent","JSON","stringify","data","sourceMapping","sourceURLs","sources","source","sourceRoot","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","stylesInDOM","getIndexByIdentifier","identifier","result","modulesToDom","idCountMap","identifiers","base","count","indexByIdentifier","obj","css","sourceMap","references","updater","addElementStyle","byIndex","splice","api","update","newObj","remove","lastIdentifiers","newList","index","newLastIdentifiers","_i","_index","memo","style","target","styleTarget","document","querySelector","window","HTMLIFrameElement","contentDocument","head","e","getTarget","Error","appendChild","element","createElement","attributes","styleElement","nonce","setAttribute","apply","parentNode","removeChild","removeStyleElement","styleSheet","cssText","firstChild","createTextNode"],"sourceRoot":""} \ No newline at end of file diff --git a/_static/build/4750.56c06ab.js b/_static/build/4750.56c06ab.js new file mode 100644 index 0000000..a79fff9 --- /dev/null +++ b/_static/build/4750.56c06ab.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[4750],{5303:(o,n,c)=>{c.d(n,{Z:()=>i});var r=c(34663),e=c.n(r),a=c(7638),m=c.n(a)()(e());m.push([o.id,"/* Based on Sublime Text's Monokai theme */\n\n.cm-s-monokai.CodeMirror { background: #272822; color: #f8f8f2; }\n.cm-s-monokai div.CodeMirror-selected { background: #49483E; }\n.cm-s-monokai .CodeMirror-line::selection, .cm-s-monokai .CodeMirror-line > span::selection, .cm-s-monokai .CodeMirror-line > span > span::selection { background: rgba(73, 72, 62, .99); }\n.cm-s-monokai .CodeMirror-line::-moz-selection, .cm-s-monokai .CodeMirror-line > span::-moz-selection, .cm-s-monokai .CodeMirror-line > span > span::-moz-selection { background: rgba(73, 72, 62, .99); }\n.cm-s-monokai .CodeMirror-gutters { background: #272822; border-right: 0px; }\n.cm-s-monokai .CodeMirror-guttermarker { color: white; }\n.cm-s-monokai .CodeMirror-guttermarker-subtle { color: #d0d0d0; }\n.cm-s-monokai .CodeMirror-linenumber { color: #d0d0d0; }\n.cm-s-monokai .CodeMirror-cursor { border-left: 1px solid #f8f8f0; }\n\n.cm-s-monokai span.cm-comment { color: #75715e; }\n.cm-s-monokai span.cm-atom { color: #ae81ff; }\n.cm-s-monokai span.cm-number { color: #ae81ff; }\n\n.cm-s-monokai span.cm-comment.cm-attribute { color: #97b757; }\n.cm-s-monokai span.cm-comment.cm-def { color: #bc9262; }\n.cm-s-monokai span.cm-comment.cm-tag { color: #bc6283; }\n.cm-s-monokai span.cm-comment.cm-type { color: #5998a6; }\n\n.cm-s-monokai span.cm-property, .cm-s-monokai span.cm-attribute { color: #a6e22e; }\n.cm-s-monokai span.cm-keyword { color: #f92672; }\n.cm-s-monokai span.cm-builtin { color: #66d9ef; }\n.cm-s-monokai span.cm-string { color: #e6db74; }\n\n.cm-s-monokai span.cm-variable { color: #f8f8f2; }\n.cm-s-monokai span.cm-variable-2 { color: #9effff; }\n.cm-s-monokai span.cm-variable-3, .cm-s-monokai span.cm-type { color: #66d9ef; }\n.cm-s-monokai span.cm-def { color: #fd971f; }\n.cm-s-monokai span.cm-bracket { color: #f8f8f2; }\n.cm-s-monokai span.cm-tag { color: #f92672; }\n.cm-s-monokai span.cm-header { color: #ae81ff; }\n.cm-s-monokai span.cm-link { color: #ae81ff; }\n.cm-s-monokai span.cm-error { background: #f92672; color: #f8f8f0; }\n\n.cm-s-monokai .CodeMirror-activeline-background { background: #373831; }\n.cm-s-monokai .CodeMirror-matchingbracket {\n text-decoration: underline;\n color: white !important;\n}\n","",{version:3,sources:["webpack://./../node_modules/codemirror/theme/monokai.css"],names:[],mappings:"AAAA,0CAA0C;;AAE1C,2BAA2B,mBAAmB,EAAE,cAAc,EAAE;AAChE,wCAAwC,mBAAmB,EAAE;AAC7D,uJAAuJ,iCAAiC,EAAE;AAC1L,sKAAsK,iCAAiC,EAAE;AACzM,oCAAoC,mBAAmB,EAAE,iBAAiB,EAAE;AAC5E,yCAAyC,YAAY,EAAE;AACvD,gDAAgD,cAAc,EAAE;AAChE,uCAAuC,cAAc,EAAE;AACvD,mCAAmC,8BAA8B,EAAE;;AAEnE,gCAAgC,cAAc,EAAE;AAChD,6BAA6B,cAAc,EAAE;AAC7C,+BAA+B,cAAc,EAAE;;AAE/C,6CAA6C,cAAc,EAAE;AAC7D,uCAAuC,cAAc,EAAE;AACvD,uCAAuC,cAAc,EAAE;AACvD,wCAAwC,cAAc,EAAE;;AAExD,kEAAkE,cAAc,EAAE;AAClF,gCAAgC,cAAc,EAAE;AAChD,gCAAgC,cAAc,EAAE;AAChD,+BAA+B,cAAc,EAAE;;AAE/C,iCAAiC,cAAc,EAAE;AACjD,mCAAmC,cAAc,EAAE;AACnD,+DAA+D,cAAc,EAAE;AAC/E,4BAA4B,cAAc,EAAE;AAC5C,gCAAgC,cAAc,EAAE;AAChD,4BAA4B,cAAc,EAAE;AAC5C,+BAA+B,cAAc,EAAE;AAC/C,6BAA6B,cAAc,EAAE;AAC7C,8BAA8B,mBAAmB,EAAE,cAAc,EAAE;;AAEnE,kDAAkD,mBAAmB,EAAE;AACvE;EACE,0BAA0B;EAC1B,uBAAuB;AACzB",sourcesContent:["/* Based on Sublime Text's Monokai theme */\n\n.cm-s-monokai.CodeMirror { background: #272822; color: #f8f8f2; }\n.cm-s-monokai div.CodeMirror-selected { background: #49483E; }\n.cm-s-monokai .CodeMirror-line::selection, .cm-s-monokai .CodeMirror-line > span::selection, .cm-s-monokai .CodeMirror-line > span > span::selection { background: rgba(73, 72, 62, .99); }\n.cm-s-monokai .CodeMirror-line::-moz-selection, .cm-s-monokai .CodeMirror-line > span::-moz-selection, .cm-s-monokai .CodeMirror-line > span > span::-moz-selection { background: rgba(73, 72, 62, .99); }\n.cm-s-monokai .CodeMirror-gutters { background: #272822; border-right: 0px; }\n.cm-s-monokai .CodeMirror-guttermarker { color: white; }\n.cm-s-monokai .CodeMirror-guttermarker-subtle { color: #d0d0d0; }\n.cm-s-monokai .CodeMirror-linenumber { color: #d0d0d0; }\n.cm-s-monokai .CodeMirror-cursor { border-left: 1px solid #f8f8f0; }\n\n.cm-s-monokai span.cm-comment { color: #75715e; }\n.cm-s-monokai span.cm-atom { color: #ae81ff; }\n.cm-s-monokai span.cm-number { color: #ae81ff; }\n\n.cm-s-monokai span.cm-comment.cm-attribute { color: #97b757; }\n.cm-s-monokai span.cm-comment.cm-def { color: #bc9262; }\n.cm-s-monokai span.cm-comment.cm-tag { color: #bc6283; }\n.cm-s-monokai span.cm-comment.cm-type { color: #5998a6; }\n\n.cm-s-monokai span.cm-property, .cm-s-monokai span.cm-attribute { color: #a6e22e; }\n.cm-s-monokai span.cm-keyword { color: #f92672; }\n.cm-s-monokai span.cm-builtin { color: #66d9ef; }\n.cm-s-monokai span.cm-string { color: #e6db74; }\n\n.cm-s-monokai span.cm-variable { color: #f8f8f2; }\n.cm-s-monokai span.cm-variable-2 { color: #9effff; }\n.cm-s-monokai span.cm-variable-3, .cm-s-monokai span.cm-type { color: #66d9ef; }\n.cm-s-monokai span.cm-def { color: #fd971f; }\n.cm-s-monokai span.cm-bracket { color: #f8f8f2; }\n.cm-s-monokai span.cm-tag { color: #f92672; }\n.cm-s-monokai span.cm-header { color: #ae81ff; }\n.cm-s-monokai span.cm-link { color: #ae81ff; }\n.cm-s-monokai span.cm-error { background: #f92672; color: #f8f8f0; }\n\n.cm-s-monokai .CodeMirror-activeline-background { background: #373831; }\n.cm-s-monokai .CodeMirror-matchingbracket {\n text-decoration: underline;\n color: white !important;\n}\n"],sourceRoot:""}]);const i=m},7638:o=>{o.exports=function(o){var n=[];return n.toString=function(){return this.map((function(n){var c="",r=void 0!==n[5];return n[4]&&(c+="@supports (".concat(n[4],") {")),n[2]&&(c+="@media ".concat(n[2]," {")),r&&(c+="@layer".concat(n[5].length>0?" ".concat(n[5]):""," {")),c+=o(n),r&&(c+="}"),n[2]&&(c+="}"),n[4]&&(c+="}"),c})).join("")},n.i=function(o,c,r,e,a){"string"==typeof o&&(o=[[null,o,void 0]]);var m={};if(r)for(var i=0;i0?" ".concat(A[5]):""," {").concat(A[1],"}")),A[5]=a),c&&(A[2]?(A[1]="@media ".concat(A[2]," {").concat(A[1],"}"),A[2]=c):A[2]=c),e&&(A[4]?(A[1]="@supports (".concat(A[4],") {").concat(A[1],"}"),A[4]=e):A[4]="".concat(e)),n.push(A))}},n}},34663:o=>{o.exports=function(o){var n=o[1],c=o[3];if(!c)return n;if("function"==typeof btoa){var r=btoa(unescape(encodeURIComponent(JSON.stringify(c)))),e="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(r),a="/*# ".concat(e," */"),m=c.sources.map((function(o){return"/*# sourceURL=".concat(c.sourceRoot||"").concat(o," */")}));return[n].concat(m).concat([a]).join("\n")}return[n].join("\n")}},14750:(o,n,c)=>{c.r(n),c.d(n,{default:()=>k});var r=c(1892),e=c.n(r),a=c(95760),m=c.n(a),i=c(38311),t=c.n(i),s=c(58192),A=c.n(s),l=c(38060),d=c.n(l),u=c(54865),p=c.n(u),f=c(5303),C={};C.styleTagTransform=p(),C.setAttributes=A(),C.insert=t().bind(null,"head"),C.domAPI=m(),C.insertStyleElement=d(),e()(f.Z,C);const k=f.Z&&f.Z.locals?f.Z.locals:void 0},1892:o=>{var n=[];function c(o){for(var c=-1,r=0;r{var n={};o.exports=function(o,c){var r=function(o){if(void 0===n[o]){var c=document.querySelector(o);if(window.HTMLIFrameElement&&c instanceof window.HTMLIFrameElement)try{c=c.contentDocument.head}catch(o){c=null}n[o]=c}return n[o]}(o);if(!r)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");r.appendChild(c)}},38060:o=>{o.exports=function(o){var n=document.createElement("style");return o.setAttributes(n,o.attributes),o.insert(n,o.options),n}},58192:(o,n,c)=>{o.exports=function(o){var n=c.nc;n&&o.setAttribute("nonce",n)}},95760:o=>{o.exports=function(o){var n=o.insertStyleElement(o);return{update:function(c){!function(o,n,c){var r="";c.supports&&(r+="@supports (".concat(c.supports,") {")),c.media&&(r+="@media ".concat(c.media," {"));var e=void 0!==c.layer;e&&(r+="@layer".concat(c.layer.length>0?" ".concat(c.layer):""," {")),r+=c.css,e&&(r+="}"),c.media&&(r+="}"),c.supports&&(r+="}");var a=c.sourceMap;a&&"undefined"!=typeof btoa&&(r+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(a))))," */")),n.styleTagTransform(r,o,n.options)}(n,o,c)},remove:function(){!function(o){if(null===o.parentNode)return!1;o.parentNode.removeChild(o)}(n)}}}},54865:o=>{o.exports=function(o,n){if(n.styleSheet)n.styleSheet.cssText=o;else{for(;n.firstChild;)n.removeChild(n.firstChild);n.appendChild(document.createTextNode(o))}}}}]); +//# sourceMappingURL=4750.56c06ab.js.map \ No newline at end of file diff --git a/_static/build/4750.56c06ab.js.map b/_static/build/4750.56c06ab.js.map new file mode 100644 index 0000000..80b7e64 --- /dev/null +++ b/_static/build/4750.56c06ab.js.map @@ -0,0 +1 @@ +{"version":3,"file":"4750.56c06ab.js","mappings":"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","sources":["webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/theme/monokai.css","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/css-loader/dist/runtime/api.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/css-loader/dist/runtime/sourceMaps.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/theme/monokai.css?cf90","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/insertBySelector.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/insertStyleElement.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/styleDomAPI.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/styleTagTransform.js"],"sourcesContent":["// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"/* Based on Sublime Text's Monokai theme */\\n\\n.cm-s-monokai.CodeMirror { background: #272822; color: #f8f8f2; }\\n.cm-s-monokai div.CodeMirror-selected { background: #49483E; }\\n.cm-s-monokai .CodeMirror-line::selection, .cm-s-monokai .CodeMirror-line > span::selection, .cm-s-monokai .CodeMirror-line > span > span::selection { background: rgba(73, 72, 62, .99); }\\n.cm-s-monokai .CodeMirror-line::-moz-selection, .cm-s-monokai .CodeMirror-line > span::-moz-selection, .cm-s-monokai .CodeMirror-line > span > span::-moz-selection { background: rgba(73, 72, 62, .99); }\\n.cm-s-monokai .CodeMirror-gutters { background: #272822; border-right: 0px; }\\n.cm-s-monokai .CodeMirror-guttermarker { color: white; }\\n.cm-s-monokai .CodeMirror-guttermarker-subtle { color: #d0d0d0; }\\n.cm-s-monokai .CodeMirror-linenumber { color: #d0d0d0; }\\n.cm-s-monokai .CodeMirror-cursor { border-left: 1px solid #f8f8f0; }\\n\\n.cm-s-monokai span.cm-comment { color: #75715e; }\\n.cm-s-monokai span.cm-atom { color: #ae81ff; }\\n.cm-s-monokai span.cm-number { color: #ae81ff; }\\n\\n.cm-s-monokai span.cm-comment.cm-attribute { color: #97b757; }\\n.cm-s-monokai span.cm-comment.cm-def { color: #bc9262; }\\n.cm-s-monokai span.cm-comment.cm-tag { color: #bc6283; }\\n.cm-s-monokai span.cm-comment.cm-type { color: #5998a6; }\\n\\n.cm-s-monokai span.cm-property, .cm-s-monokai span.cm-attribute { color: #a6e22e; }\\n.cm-s-monokai span.cm-keyword { color: #f92672; }\\n.cm-s-monokai span.cm-builtin { color: #66d9ef; }\\n.cm-s-monokai span.cm-string { color: #e6db74; }\\n\\n.cm-s-monokai span.cm-variable { color: #f8f8f2; }\\n.cm-s-monokai span.cm-variable-2 { color: #9effff; }\\n.cm-s-monokai span.cm-variable-3, .cm-s-monokai span.cm-type { color: #66d9ef; }\\n.cm-s-monokai span.cm-def { color: #fd971f; }\\n.cm-s-monokai span.cm-bracket { color: #f8f8f2; }\\n.cm-s-monokai span.cm-tag { color: #f92672; }\\n.cm-s-monokai span.cm-header { color: #ae81ff; }\\n.cm-s-monokai span.cm-link { color: #ae81ff; }\\n.cm-s-monokai span.cm-error { background: #f92672; color: #f8f8f0; }\\n\\n.cm-s-monokai .CodeMirror-activeline-background { background: #373831; }\\n.cm-s-monokai .CodeMirror-matchingbracket {\\n text-decoration: underline;\\n color: white !important;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./../node_modules/codemirror/theme/monokai.css\"],\"names\":[],\"mappings\":\"AAAA,0CAA0C;;AAE1C,2BAA2B,mBAAmB,EAAE,cAAc,EAAE;AAChE,wCAAwC,mBAAmB,EAAE;AAC7D,uJAAuJ,iCAAiC,EAAE;AAC1L,sKAAsK,iCAAiC,EAAE;AACzM,oCAAoC,mBAAmB,EAAE,iBAAiB,EAAE;AAC5E,yCAAyC,YAAY,EAAE;AACvD,gDAAgD,cAAc,EAAE;AAChE,uCAAuC,cAAc,EAAE;AACvD,mCAAmC,8BAA8B,EAAE;;AAEnE,gCAAgC,cAAc,EAAE;AAChD,6BAA6B,cAAc,EAAE;AAC7C,+BAA+B,cAAc,EAAE;;AAE/C,6CAA6C,cAAc,EAAE;AAC7D,uCAAuC,cAAc,EAAE;AACvD,uCAAuC,cAAc,EAAE;AACvD,wCAAwC,cAAc,EAAE;;AAExD,kEAAkE,cAAc,EAAE;AAClF,gCAAgC,cAAc,EAAE;AAChD,gCAAgC,cAAc,EAAE;AAChD,+BAA+B,cAAc,EAAE;;AAE/C,iCAAiC,cAAc,EAAE;AACjD,mCAAmC,cAAc,EAAE;AACnD,+DAA+D,cAAc,EAAE;AAC/E,4BAA4B,cAAc,EAAE;AAC5C,gCAAgC,cAAc,EAAE;AAChD,4BAA4B,cAAc,EAAE;AAC5C,+BAA+B,cAAc,EAAE;AAC/C,6BAA6B,cAAc,EAAE;AAC7C,8BAA8B,mBAAmB,EAAE,cAAc,EAAE;;AAEnE,kDAAkD,mBAAmB,EAAE;AACvE;EACE,0BAA0B;EAC1B,uBAAuB;AACzB\",\"sourcesContent\":[\"/* Based on Sublime Text's Monokai theme */\\n\\n.cm-s-monokai.CodeMirror { background: #272822; color: #f8f8f2; }\\n.cm-s-monokai div.CodeMirror-selected { background: #49483E; }\\n.cm-s-monokai .CodeMirror-line::selection, .cm-s-monokai .CodeMirror-line > span::selection, .cm-s-monokai .CodeMirror-line > span > span::selection { background: rgba(73, 72, 62, .99); }\\n.cm-s-monokai .CodeMirror-line::-moz-selection, .cm-s-monokai .CodeMirror-line > span::-moz-selection, .cm-s-monokai .CodeMirror-line > span > span::-moz-selection { background: rgba(73, 72, 62, .99); }\\n.cm-s-monokai .CodeMirror-gutters { background: #272822; border-right: 0px; }\\n.cm-s-monokai .CodeMirror-guttermarker { color: white; }\\n.cm-s-monokai .CodeMirror-guttermarker-subtle { color: #d0d0d0; }\\n.cm-s-monokai .CodeMirror-linenumber { color: #d0d0d0; }\\n.cm-s-monokai .CodeMirror-cursor { border-left: 1px solid #f8f8f0; }\\n\\n.cm-s-monokai span.cm-comment { color: #75715e; }\\n.cm-s-monokai span.cm-atom { color: #ae81ff; }\\n.cm-s-monokai span.cm-number { color: #ae81ff; }\\n\\n.cm-s-monokai span.cm-comment.cm-attribute { color: #97b757; }\\n.cm-s-monokai span.cm-comment.cm-def { color: #bc9262; }\\n.cm-s-monokai span.cm-comment.cm-tag { color: #bc6283; }\\n.cm-s-monokai span.cm-comment.cm-type { color: #5998a6; }\\n\\n.cm-s-monokai span.cm-property, .cm-s-monokai span.cm-attribute { color: #a6e22e; }\\n.cm-s-monokai span.cm-keyword { color: #f92672; }\\n.cm-s-monokai span.cm-builtin { color: #66d9ef; }\\n.cm-s-monokai span.cm-string { color: #e6db74; }\\n\\n.cm-s-monokai span.cm-variable { color: #f8f8f2; }\\n.cm-s-monokai span.cm-variable-2 { color: #9effff; }\\n.cm-s-monokai span.cm-variable-3, .cm-s-monokai span.cm-type { color: #66d9ef; }\\n.cm-s-monokai span.cm-def { color: #fd971f; }\\n.cm-s-monokai span.cm-bracket { color: #f8f8f2; }\\n.cm-s-monokai span.cm-tag { color: #f92672; }\\n.cm-s-monokai span.cm-header { color: #ae81ff; }\\n.cm-s-monokai span.cm-link { color: #ae81ff; }\\n.cm-s-monokai span.cm-error { background: #f92672; color: #f8f8f0; }\\n\\n.cm-s-monokai .CodeMirror-activeline-background { background: #373831; }\\n.cm-s-monokai .CodeMirror-matchingbracket {\\n text-decoration: underline;\\n color: white !important;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\nmodule.exports = function (cssWithMappingToString) {\n var list = [];\n\n // return the list of modules as css string\n list.toString = function toString() {\n return this.map(function (item) {\n var content = \"\";\n var needLayer = typeof item[5] !== \"undefined\";\n if (item[4]) {\n content += \"@supports (\".concat(item[4], \") {\");\n }\n if (item[2]) {\n content += \"@media \".concat(item[2], \" {\");\n }\n if (needLayer) {\n content += \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\");\n }\n content += cssWithMappingToString(item);\n if (needLayer) {\n content += \"}\";\n }\n if (item[2]) {\n content += \"}\";\n }\n if (item[4]) {\n content += \"}\";\n }\n return content;\n }).join(\"\");\n };\n\n // import a list of modules into the list\n list.i = function i(modules, media, dedupe, supports, layer) {\n if (typeof modules === \"string\") {\n modules = [[null, modules, undefined]];\n }\n var alreadyImportedModules = {};\n if (dedupe) {\n for (var k = 0; k < this.length; k++) {\n var id = this[k][0];\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n for (var _k = 0; _k < modules.length; _k++) {\n var item = [].concat(modules[_k]);\n if (dedupe && alreadyImportedModules[item[0]]) {\n continue;\n }\n if (typeof layer !== \"undefined\") {\n if (typeof item[5] === \"undefined\") {\n item[5] = layer;\n } else {\n item[1] = \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\").concat(item[1], \"}\");\n item[5] = layer;\n }\n }\n if (media) {\n if (!item[2]) {\n item[2] = media;\n } else {\n item[1] = \"@media \".concat(item[2], \" {\").concat(item[1], \"}\");\n item[2] = media;\n }\n }\n if (supports) {\n if (!item[4]) {\n item[4] = \"\".concat(supports);\n } else {\n item[1] = \"@supports (\".concat(item[4], \") {\").concat(item[1], \"}\");\n item[4] = supports;\n }\n }\n list.push(item);\n }\n };\n return list;\n};","\"use strict\";\n\nmodule.exports = function (item) {\n var content = item[1];\n var cssMapping = item[3];\n if (!cssMapping) {\n return content;\n }\n if (typeof btoa === \"function\") {\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(cssMapping))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n var sourceMapping = \"/*# \".concat(data, \" */\");\n var sourceURLs = cssMapping.sources.map(function (source) {\n return \"/*# sourceURL=\".concat(cssMapping.sourceRoot || \"\").concat(source, \" */\");\n });\n return [content].concat(sourceURLs).concat([sourceMapping]).join(\"\\n\");\n }\n return [content].join(\"\\n\");\n};","\n import API from \"!../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../css-loader/dist/cjs.js!./monokai.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../css-loader/dist/cjs.js!./monokai.css\";\n export default content && content.locals ? content.locals : undefined;\n","\"use strict\";\n\nvar stylesInDOM = [];\n\nfunction getIndexByIdentifier(identifier) {\n var result = -1;\n\n for (var i = 0; i < stylesInDOM.length; i++) {\n if (stylesInDOM[i].identifier === identifier) {\n result = i;\n break;\n }\n }\n\n return result;\n}\n\nfunction modulesToDom(list, options) {\n var idCountMap = {};\n var identifiers = [];\n\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var count = idCountMap[id] || 0;\n var identifier = \"\".concat(id, \" \").concat(count);\n idCountMap[id] = count + 1;\n var indexByIdentifier = getIndexByIdentifier(identifier);\n var obj = {\n css: item[1],\n media: item[2],\n sourceMap: item[3],\n supports: item[4],\n layer: item[5]\n };\n\n if (indexByIdentifier !== -1) {\n stylesInDOM[indexByIdentifier].references++;\n stylesInDOM[indexByIdentifier].updater(obj);\n } else {\n var updater = addElementStyle(obj, options);\n options.byIndex = i;\n stylesInDOM.splice(i, 0, {\n identifier: identifier,\n updater: updater,\n references: 1\n });\n }\n\n identifiers.push(identifier);\n }\n\n return identifiers;\n}\n\nfunction addElementStyle(obj, options) {\n var api = options.domAPI(options);\n api.update(obj);\n\n var updater = function updater(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap && newObj.supports === obj.supports && newObj.layer === obj.layer) {\n return;\n }\n\n api.update(obj = newObj);\n } else {\n api.remove();\n }\n };\n\n return updater;\n}\n\nmodule.exports = function (list, options) {\n options = options || {};\n list = list || [];\n var lastIdentifiers = modulesToDom(list, options);\n return function update(newList) {\n newList = newList || [];\n\n for (var i = 0; i < lastIdentifiers.length; i++) {\n var identifier = lastIdentifiers[i];\n var index = getIndexByIdentifier(identifier);\n stylesInDOM[index].references--;\n }\n\n var newLastIdentifiers = modulesToDom(newList, options);\n\n for (var _i = 0; _i < lastIdentifiers.length; _i++) {\n var _identifier = lastIdentifiers[_i];\n\n var _index = getIndexByIdentifier(_identifier);\n\n if (stylesInDOM[_index].references === 0) {\n stylesInDOM[_index].updater();\n\n stylesInDOM.splice(_index, 1);\n }\n }\n\n lastIdentifiers = newLastIdentifiers;\n };\n};","\"use strict\";\n\nvar memo = {};\n/* istanbul ignore next */\n\nfunction getTarget(target) {\n if (typeof memo[target] === \"undefined\") {\n var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself\n\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n\n memo[target] = styleTarget;\n }\n\n return memo[target];\n}\n/* istanbul ignore next */\n\n\nfunction insertBySelector(insert, style) {\n var target = getTarget(insert);\n\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n\n target.appendChild(style);\n}\n\nmodule.exports = insertBySelector;","\"use strict\";\n\n/* istanbul ignore next */\nfunction insertStyleElement(options) {\n var element = document.createElement(\"style\");\n options.setAttributes(element, options.attributes);\n options.insert(element, options.options);\n return element;\n}\n\nmodule.exports = insertStyleElement;","\"use strict\";\n\n/* istanbul ignore next */\nfunction setAttributesWithoutAttributes(styleElement) {\n var nonce = typeof __webpack_nonce__ !== \"undefined\" ? __webpack_nonce__ : null;\n\n if (nonce) {\n styleElement.setAttribute(\"nonce\", nonce);\n }\n}\n\nmodule.exports = setAttributesWithoutAttributes;","\"use strict\";\n\n/* istanbul ignore next */\nfunction apply(styleElement, options, obj) {\n var css = \"\";\n\n if (obj.supports) {\n css += \"@supports (\".concat(obj.supports, \") {\");\n }\n\n if (obj.media) {\n css += \"@media \".concat(obj.media, \" {\");\n }\n\n var needLayer = typeof obj.layer !== \"undefined\";\n\n if (needLayer) {\n css += \"@layer\".concat(obj.layer.length > 0 ? \" \".concat(obj.layer) : \"\", \" {\");\n }\n\n css += obj.css;\n\n if (needLayer) {\n css += \"}\";\n }\n\n if (obj.media) {\n css += \"}\";\n }\n\n if (obj.supports) {\n css += \"}\";\n }\n\n var sourceMap = obj.sourceMap;\n\n if (sourceMap && typeof btoa !== \"undefined\") {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n } // For old IE\n\n /* istanbul ignore if */\n\n\n options.styleTagTransform(css, styleElement, options.options);\n}\n\nfunction removeStyleElement(styleElement) {\n // istanbul ignore if\n if (styleElement.parentNode === null) {\n return false;\n }\n\n styleElement.parentNode.removeChild(styleElement);\n}\n/* istanbul ignore next */\n\n\nfunction domAPI(options) {\n var styleElement = options.insertStyleElement(options);\n return {\n update: function update(obj) {\n apply(styleElement, options, obj);\n },\n remove: function remove() {\n removeStyleElement(styleElement);\n }\n };\n}\n\nmodule.exports = domAPI;","\"use strict\";\n\n/* istanbul ignore next */\nfunction styleTagTransform(css, styleElement) {\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = css;\n } else {\n while (styleElement.firstChild) {\n styleElement.removeChild(styleElement.firstChild);\n }\n\n styleElement.appendChild(document.createTextNode(css));\n }\n}\n\nmodule.exports = styleTagTransform;"],"names":["___CSS_LOADER_EXPORT___","push","module","id","exports","cssWithMappingToString","list","toString","this","map","item","content","needLayer","concat","length","join","i","modules","media","dedupe","supports","layer","undefined","alreadyImportedModules","k","_k","cssMapping","btoa","base64","unescape","encodeURIComponent","JSON","stringify","data","sourceMapping","sourceURLs","sources","source","sourceRoot","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","stylesInDOM","getIndexByIdentifier","identifier","result","modulesToDom","idCountMap","identifiers","base","count","indexByIdentifier","obj","css","sourceMap","references","updater","addElementStyle","byIndex","splice","api","update","newObj","remove","lastIdentifiers","newList","index","newLastIdentifiers","_i","_index","memo","style","target","styleTarget","document","querySelector","window","HTMLIFrameElement","contentDocument","head","e","getTarget","Error","appendChild","element","createElement","attributes","styleElement","nonce","setAttribute","apply","parentNode","removeChild","removeStyleElement","styleSheet","cssText","firstChild","createTextNode"],"sourceRoot":""} \ No newline at end of file diff --git a/_static/build/4856.2d7415f.js b/_static/build/4856.2d7415f.js new file mode 100644 index 0000000..c6fe500 --- /dev/null +++ b/_static/build/4856.2d7415f.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[4856],{74856:(e,t,a)=>{a.r(t),a.d(t,{default:()=>N,toggleHeader:()=>$});var n,o,s=a(67504),r=a(2814),i=a(55941),l=a(15786),c=a(63050),d=a(4265),u=a(59674),p=a(26169),m=a(43231),g=a(61313),h=a(43892),y=a(72867),v=a(94519);!function(e){e.activate="apputils:activate-command-palette"}(n||(n={}));class f{constructor(e,t){this.translator=t||d.nullTranslator;const a=this.translator.load("jupyterlab");this._palette=e,this._palette.title.label="",this._palette.title.caption=a.__("Command Palette")}set placeholder(e){this._palette.inputNode.placeholder=e}get placeholder(){return this._palette.inputNode.placeholder}activate(){this._palette.activate()}addItem(e){const t=this._palette.addItem(e);return new m.DisposableDelegate((()=>{this._palette.removeItem(t)}))}}!function(e){e.activate=function(t,a,s){const{commands:i,shell:l}=t,c=a.load("jupyterlab"),d=o.createPalette(t,a),u=new r.ModalCommandPalette({commandPalette:d});let p=!1;if(d.node.setAttribute("role","region"),d.node.setAttribute("aria-label",c.__("Command Palette Section")),l.add(d,"left",{rank:300}),s){const e=s.load("@jupyterlab/apputils-extension:palette"),a=e=>{const t=e.get("modal").composite;p&&!t?(d.parent=null,u.detach(),l.add(d,"left",{rank:300})):!p&&t&&(d.parent=null,u.palette=d,d.show(),u.attach()),p=t};Promise.all([e,t.restored]).then((([e])=>{a(e),e.changed.connect((e=>{a(e)}))})).catch((e=>{console.error(e.message)}))}const m=()=>{const e=(0,h.find)(t.commands.keyBindings,(e=>e.command===n.activate));if(e){const t=e.keys.map(y.CommandRegistry.formatKeystroke).join(", ");d.title.caption=c.__("Commands (%1)",t)}else d.title.caption=c.__("Commands")};return m(),t.commands.keyBindingChanged.connect((()=>{m()})),i.addCommand(n.activate,{execute:()=>{p?u.activate():l.activateById(d.id)},label:c.__("Activate Command Palette")}),d.inputNode.placeholder=c.__("SEARCH"),new e(d,a)},e.restore=function(e,t,a){const n=o.createPalette(e,a);t.add(n,"command-palette")}}(f||(f={})),function(e){let t;e.createPalette=function(e,a){if(!t){t=new v.CommandPalette({commands:e.commands,renderer:u.CommandPaletteSvg.defaultRenderer}),t.id="command-palette",t.title.icon=u.paletteIcon;const n=a.load("jupyterlab");t.title.label=n.__("Commands")}return t}}(o||(o={}));class b extends c.DataConnector{constructor(e){super(),this._throttlers=Object.create(null),this._connector=e}fetch(e){const t=this._throttlers;return e in t||(t[e]=new g.Throttler((()=>this._connector.fetch(e)),100)),t[e].invoke()}async list(e="all"){const{isDeferred:t,isDisabled:a}=i.PageConfig.Extension,{ids:n,values:o}=await this._connector.list();return"all"===e?{ids:n,values:o}:{ids:n.filter((e=>!t(e)&&!a(e))),values:o.filter((({id:e})=>!t(e)&&!a(e)))}}async save(e,t){await this._connector.save(e,t)}}const w={id:"@jupyterlab/apputils-extension:settings",activate:async e=>{const{isDisabled:t}=i.PageConfig.Extension,a=new b(e.serviceManager.settings),n=new l.SettingRegistry({connector:a,plugins:(await a.list("active")).values});return e.restored.then((async()=>{const e=await a.list("all");e.ids.forEach((async(a,o)=>{if(!t(a)&&!(a in n.plugins))try{await n.load(a)}catch(t){console.warn(`Settings failed to load for (${a})`,t),e.values[o].schema["jupyter.lab.transform"]&&console.warn(`This may happen if {autoStart: false} in (${a}) or if it is one of the deferredExtensions in page config.`)}}))})),n},autoStart:!0,provides:l.ISettingRegistry};var _,S=a(49005);!function(e){e.changeTheme="apputils:change-theme",e.themeScrollbars="apputils:theme-scrollbars",e.changeFont="apputils:change-font",e.incrFontSize="apputils:incr-font-size",e.decrFontSize="apputils:decr-font-size"}(_||(_={}));const k={id:"@jupyterlab/apputils-extension:themes",requires:[l.ISettingRegistry,s.JupyterFrontEnd.IPaths,d.ITranslator],optional:[r.ISplashScreen],activate:(e,t,a,n,o)=>{const s=n.load("jupyterlab"),l=e.shell,c=e.commands,d=i.URLExt.join(i.PageConfig.getBaseUrl(),a.urls.themes),u=k.id,p=new r.ThemeManager({key:u,host:l,settings:t,splash:null!=o?o:void 0,url:d});let m;return p.themeChanged.connect(((e,t)=>{m=t.newValue,document.body.dataset.jpThemeLight=String(p.isLight(m)),document.body.dataset.jpThemeName=m,document.body.dataset.jpThemeScrollbars!==String(p.themeScrollbars(m))&&(document.body.dataset.jpThemeScrollbars=String(p.themeScrollbars(m))),c.notifyCommandChanged(_.changeTheme)})),c.addCommand(_.changeTheme,{label:e=>{const t=e.theme,a=p.getDisplayName(t);return e.isPalette?s.__("Use Theme: %1",a):a},isToggled:e=>e.theme===m,execute:e=>{const t=e.theme;if(t!==p.theme)return p.setTheme(t)}}),c.addCommand(_.themeScrollbars,{label:s.__("Theme Scrollbars"),isToggled:()=>p.isToggledThemeScrollbars(),execute:()=>p.toggleThemeScrollbars()}),c.addCommand(_.changeFont,{label:e=>e.enabled?`${e.font}`:s.__("waiting for fonts"),isEnabled:e=>e.enabled,isToggled:e=>p.getCSS(e.key)===e.font,execute:e=>p.setCSSOverride(e.key,e.font)}),c.addCommand(_.incrFontSize,{label:e=>{switch(e.key){case"code-font-size":return s.__("Increase Code Font Size");case"content-font-size1":return s.__("Increase Content Font Size");case"ui-font-size1":return s.__("Increase UI Font Size");default:return s.__("Increase Font Size")}},execute:e=>p.incrFontSize(e.key)}),c.addCommand(_.decrFontSize,{label:e=>{switch(e.key){case"code-font-size":return s.__("Decrease Code Font Size");case"content-font-size1":return s.__("Decrease Content Font Size");case"ui-font-size1":return s.__("Decrease UI Font Size");default:return s.__("Decrease Font Size")}},execute:e=>p.decrFontSize(e.key)}),p},autoStart:!0,provides:r.IThemeManager},C={id:"@jupyterlab/apputils-extension:themes-palette-menu",requires:[r.IThemeManager,d.ITranslator],optional:[r.ICommandPalette,S.IMainMenu],activate:(e,t,a,n,o)=>{const s=a.load("jupyterlab");o&&e.restored.then((()=>{var e;const a=null===(e=o.settingsMenu.items.find((e=>{var t;return"submenu"===e.type&&"jp-mainmenu-settings-apputilstheme"===(null===(t=e.submenu)||void 0===t?void 0:t.id)})))||void 0===e?void 0:e.submenu;a&&t.themes.forEach(((e,t)=>{a.insertItem(t,{command:_.changeTheme,args:{isPalette:!1,theme:e}})}))})),n&&e.restored.then((()=>{const e=s.__("Theme"),a=_.changeTheme;t.themes.forEach((t=>{n.addItem({command:a,args:{isPalette:!0,theme:t},category:e})})),n.addItem({command:_.themeScrollbars,category:e}),n.addItem({command:_.incrFontSize,args:{key:"code-font-size"},category:e}),n.addItem({command:_.decrFontSize,args:{key:"code-font-size"},category:e}),n.addItem({command:_.incrFontSize,args:{key:"content-font-size1"},category:e}),n.addItem({command:_.decrFontSize,args:{key:"content-font-size1"},category:e}),n.addItem({command:_.incrFontSize,args:{key:"ui-font-size1"},category:e}),n.addItem({command:_.decrFontSize,args:{key:"ui-font-size1"},category:e})}))},autoStart:!0},I={id:"@jupyterlab/apputils-extension:toolbar-registry",autoStart:!0,provides:r.IToolbarWidgetRegistry,activate:e=>new r.ToolbarWidgetRegistry({defaultFactory:(0,r.createDefaultFactory)(e.commands)})};var x,T=a(985),j=a(84920);!function(e){e.saveWorkspace="workspace-ui:save",e.saveWorkspaceAs="workspace-ui:save-as"}(x||(x={}));const E="jupyterlab-workspace",F="."+E,P="workspace-ui:lastSave",W={id:"@jupyterlab/apputils-extension:workspaces",autoStart:!0,requires:[j.IFileBrowserFactory,r.IWindowResolver,c.IStateDB,d.ITranslator,s.JupyterFrontEnd.IPaths],optional:[s.IRouter],activate:(e,t,a,n,o,s,r)=>{const i=new R.WorkspaceFactory({workspaces:e.serviceManager.workspaces,router:r,state:n,translator:o,paths:s}),l=o.load("jupyterlab");e.docRegistry.addFileType({name:E,contentType:"file",fileFormat:"text",displayName:l.__("JupyterLab workspace File"),extensions:[F],mimeTypes:["text/json"],iconClass:"jp-JupyterIcon"}),e.docRegistry.addWidgetFactory(i),e.commands.addCommand(x.saveWorkspaceAs,{label:l.__("Save Current Workspace As…"),execute:async()=>{const s=e.serviceManager.workspaces.fetch(a.name);await R.saveAs(t.defaultBrowser,e.serviceManager.contents,s,n,o)}}),e.commands.addCommand(x.saveWorkspace,{label:l.__("Save Current Workspace"),execute:async()=>{const{contents:s}=e.serviceManager,r=e.serviceManager.workspaces.fetch(a.name),i=await n.fetch(P);void 0===i?await R.saveAs(t.defaultBrowser,s,r,n,o):await R.save(i,s,r,n)}})}};var R,z;!function(e){async function t(e,t,a,n){let o=e.split("/").pop();void 0!==o&&o.includes(".")?o=o.split(".")[0]:e+=F,await n.save(P,e);const s=await a;s.metadata.id=`${o}`,await t.save(e,{type:"file",format:"text",content:JSON.stringify(s)})}e.save=t,e.saveAs=async function(e,a,o,s,i){var l;i=i||d.nullTranslator;const c=await s.fetch(P);let u;u=void 0===c?"new-workspace":null===(l=c.split("/").pop())||void 0===l?void 0:l.split(".")[0];const p=e.model.path+"/"+u+F,m=await async function(e,t){const a=(t=t||d.nullTranslator).load("jupyterlab"),o=r.Dialog.okButton({label:a.__("Save")}),s=await(0,r.showDialog)({title:a.__("Save Current Workspace As…"),body:new n(e),buttons:[r.Dialog.cancelButton({label:a.__("Cancel")}),o]});return s.button.label===a.__("Save")?s.value:null}(p,i);m&&await t(m,a,o,s)};class a extends T.ABCWidgetFactory{constructor(e){super({name:(e.translator||d.nullTranslator).load("jupyterlab").__("Workspace loader"),fileTypes:[E],defaultFor:[E],readOnly:!0}),this._application=e.paths.urls.app,this._router=e.router,this._state=e.state,this._workspaces=e.workspaces}createNewWidget(e){return e.ready.then((async()=>{const t=e.model.toJSON(),a=e.path,n=t.metadata.id;await this._workspaces.save(n,t),await this._state.save(P,a);const o=i.URLExt.join(this._application,"workspaces",n);this._router?this._router.navigate(o,{hard:!0}):document.location.href=o})),function(e){const t=new T.DocumentWidget({content:new v.Widget,context:e});return t.content.dispose(),t}(e)}}e.WorkspaceFactory=a;class n extends v.Widget{constructor(e){super({node:o(e)})}getValue(){return this.node.value}}function o(e){const t=document.createElement("input");return t.value=e,t}}(R||(R={})),function(e){e.loadState="apputils:load-statedb",e.print="apputils:print",e.reset="apputils:reset",e.resetOnLoad="apputils:reset-on-load",e.runFirstEnabled="apputils:run-first-enabled",e.runAllEnabled="apputils:run-all-enabled",e.toggleHeader="apputils:toggle-header"}(z||(z={}));const D={id:"@jupyterlab/apputils-extension:palette",autoStart:!0,requires:[d.ITranslator],provides:r.ICommandPalette,optional:[l.ISettingRegistry],activate:(e,t,a)=>f.activate(e,t,a)},A={id:"@jupyterlab/apputils-extension:palette-restorer",autoStart:!0,requires:[s.ILayoutRestorer,d.ITranslator],activate:(e,t,a)=>{f.restore(e,t,a)}},L={id:"@jupyterlab/apputils-extension:resolver",autoStart:!0,provides:r.IWindowResolver,requires:[s.JupyterFrontEnd.IPaths,s.IRouter],activate:async(e,t,a)=>{const{hash:n,search:o}=a.current,s=i.URLExt.queryStringToObject(o||""),l=new r.WindowResolver,c=i.PageConfig.getOption("workspace"),d=i.PageConfig.getOption("treePath"),u="multiple-document"===i.PageConfig.getOption("mode")?"lab":"doc",p=c||i.PageConfig.defaultWorkspace,m=d?i.URLExt.join("tree",d):"";try{return await l.resolve(p),l}catch(e){return new Promise((()=>{const{base:e}=t.urls,o="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789",r=o[Math.floor(Math.random()*o.length)];let l=i.URLExt.join(e,u,"workspaces",`auto-${r}`);l=m?i.URLExt.join(l,i.URLExt.encodeParts(m)):l,s.reset="";const c=l+i.URLExt.objectToQueryString(s)+(n||"");a.navigate(c,{hard:!0})}))}}},O={id:"@jupyterlab/apputils-extension:splash",autoStart:!0,requires:[d.ITranslator],provides:r.ISplashScreen,activate:(e,t)=>{const a=t.load("jupyterlab"),{commands:n,restored:o}=e,s=document.createElement("div"),i=document.createElement("div"),l=document.createElement("div");let c;s.id="jupyterlab-splash",i.id="galaxy",l.id="main-logo",u.jupyterFaviconIcon.element({container:l,stylesheet:"splash"}),i.appendChild(l),["1","2","3"].forEach((e=>{const t=document.createElement("div"),a=document.createElement("div");t.id=`moon${e}`,t.className="moon orbit",a.id=`planet${e}`,a.className="planet",t.appendChild(a),i.appendChild(t)})),s.appendChild(i);const d=new g.Throttler((async()=>{if(!c){c=new r.Dialog({title:a.__("Loading…"),body:a.__("The loading screen is taking a long time.\nWould you like to clear the workspace or keep waiting?"),buttons:[r.Dialog.cancelButton({label:a.__("Keep Waiting")}),r.Dialog.warnButton({label:a.__("Clear Workspace")})]});try{const e=await c.launch();if(c.dispose(),c=null,e.button.accept&&n.hasCommand(z.reset))return n.execute(z.reset);requestAnimationFrame((()=>{d.invoke().catch((e=>{}))}))}catch(e){}}}),{limit:12e3,edge:"trailing"});let p=0;return{show:(e=!0)=>(s.classList.remove("splash-fade"),s.classList.toggle("light",e),s.classList.toggle("dark",!e),p++,document.body.appendChild(s),d.invoke().catch((e=>{})),new m.DisposableDelegate((async()=>{await o,0==--p&&(d.stop(),c&&(c.dispose(),c=null),s.classList.add("splash-fade"),window.setTimeout((()=>{document.body.removeChild(s)}),200))})))}}},U={id:"@jupyterlab/apputils-extension:print",autoStart:!0,requires:[d.ITranslator],activate:(e,t)=>{const a=t.load("jupyterlab");e.commands.addCommand(z.print,{label:a.__("Print…"),isEnabled:()=>{const t=e.shell.currentWidget;return null!==r.Printing.getPrintFunction(t)},execute:async()=>{const t=e.shell.currentWidget,a=r.Printing.getPrintFunction(t);a&&await a()}})}},$={id:"@jupyterlab/apputils-extension:toggle-header",autoStart:!0,requires:[d.ITranslator],optional:[r.ICommandPalette],activate:(e,t,a)=>{const n=t.load("jupyterlab"),o=n.__("Main Area");e.commands.addCommand(z.toggleHeader,{label:n.__("Show Header Above Content"),isEnabled:()=>e.shell.currentWidget instanceof r.MainAreaWidget&&e.shell.currentWidget.contentHeader.widgets.length>0,isToggled:()=>{const t=e.shell.currentWidget;return t instanceof r.MainAreaWidget&&!t.contentHeader.isHidden},execute:async()=>{const t=e.shell.currentWidget;t instanceof r.MainAreaWidget&&t.contentHeader.setHidden(!t.contentHeader.isHidden)}}),a&&a.addItem({command:z.toggleHeader,category:o})}},M={id:"@jupyterlab/apputils-extension:state",autoStart:!0,provides:c.IStateDB,requires:[s.JupyterFrontEnd.IPaths,s.IRouter,d.ITranslator],optional:[r.IWindowResolver],activate:(e,t,a,n,o)=>{const s=n.load("jupyterlab");if(null===o)return new c.StateDB;let r=!1;const{commands:l,name:d,serviceManager:u}=e,{workspaces:m}=u,h=o.name,y=new p.PromiseDelegate,v=new c.StateDB({transform:y.promise}),f=new g.Debouncer((async()=>{const e=h,t={id:e},a=await v.toJSON();await m.save(e,{data:a,metadata:t})}));return v.changed.connect((()=>{f.invoke()}),v),v.changed.connect((()=>async function(e,t,a){var n,o;const s=await t.toJSON();if(void 0===(null===(o=null===(n=s["layout-restorer:data"])||void 0===n?void 0:n.main)||void 0===o?void 0:o.current))document.title=`${i.PageConfig.getOption("appName")||"JupyterLab"}${e.startsWith("auto-")?` (${e})`:""}`;else{let t=i.PathExt.basename(window.location.href);t=t.length>15?t.slice(0,12).concat("…"):t;const n=Object.keys(s).filter((e=>e.startsWith("notebook")||e.startsWith("editor"))).length;e.startsWith("auto-")?document.title=`${t} (${e}${n>1?` : ${n}`:""}) - ${a}`:document.title=`${t}${n>1?` (${n})`:""} - ${a}`}}(h,v,d))),l.addCommand(z.loadState,{execute:async e=>{if(r)return;const{hash:t,path:n,search:o}=e,s=i.URLExt.queryStringToObject(o||""),l="string"==typeof s.clone?""===s.clone?i.PageConfig.defaultWorkspace:s.clone:null,c=l||h||null;if(null!==c){try{const e=await m.fetch(c);r||(r=!0,y.resolve({type:"overwrite",contents:e.data}))}catch({message:e}){console.warn(`Fetching workspace "${h}" failed.`,e),r||(r=!0,y.resolve({type:"cancel",contents:null}))}if(c===l){delete s.clone;const e=n+i.URLExt.objectToQueryString(s)+t,o=f.invoke().then((()=>a.stop));return o.then((()=>{a.navigate(e)})),o}await f.invoke()}else console.error(`${z.loadState} cannot load null workspace.`)}}),l.addCommand(z.reset,{label:s.__("Reset Application State"),execute:async({reload:e})=>{await v.clear(),await f.invoke(),e&&a.reload()}}),l.addCommand(z.resetOnLoad,{execute:e=>{const{hash:t,path:n,search:o}=e,s=i.URLExt.queryStringToObject(o||""),l="clone"in s;if(!("reset"in s))return;if(r)return a.reload();r=!0,y.resolve({type:"clear",contents:null}),delete s.reset;const c=n+i.URLExt.objectToQueryString(s)+t,d=v.clear().then((()=>f.invoke()));return l?d.then((()=>{a.navigate(c,{hard:!0})})):d.then((()=>{a.navigate(c)})),d}}),a.register({command:z.loadState,pattern:/.?/,rank:30}),a.register({command:z.resetOnLoad,pattern:/(\?reset|\&reset)($|&)/,rank:20}),v}},B={id:"@jupyterlab/apputils-extension:sessionDialogs",provides:r.ISessionContextDialogs,autoStart:!0,activate:()=>r.sessionContextDialogs},q={id:"@jupyterlab/apputils-extension:utilityCommands",requires:[d.ITranslator],autoStart:!0,activate:(e,t)=>{const a=t.load("jupyterlab"),{commands:n}=e;n.addCommand(z.runFirstEnabled,{label:a.__("Run First Enabled Command"),execute:t=>{const a=t.commands,n=t.args,o=Array.isArray(t);for(let t=0;t{const a=t.commands,n=t.args,o=Array.isArray(t),s=t.errorIfNotEnabled;for(let t=0;tr.defaultSanitizer},w,M,O,B,k,C,$,I,q,W]}}]); +//# sourceMappingURL=4856.2d7415f.js.map \ No newline at end of file diff --git a/_static/build/4856.2d7415f.js.map b/_static/build/4856.2d7415f.js.map new file mode 100644 index 0000000..dcc016b --- /dev/null +++ b/_static/build/4856.2d7415f.js.map @@ -0,0 +1 @@ +{"version":3,"file":"4856.2d7415f.js","mappings":"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","sources":["webpack://_JUPYTERLAB.CORE_OUTPUT/../src/palette.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/settingconnector.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/settingsplugin.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/themesplugins.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/toolbarregistryplugin.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/workspacesplugin.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/index.ts"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/_static/build/4875.375150e.js b/_static/build/4875.375150e.js new file mode 100644 index 0000000..ce69fa4 --- /dev/null +++ b/_static/build/4875.375150e.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[4875],{94206:(e,t,o)=>{o.r(t),o.d(t,{commandEditItem:()=>L,default:()=>q,executionIndicator:()=>D,exportPlugin:()=>P,notebookTrustItem:()=>W});var n=o(67504),l=o(2814),a=o(69590),r=o(84853),s=o(55941),c=o(42422),d=o(22437),i=o(84920),u=o(44761),b=o(49005),m=o(33079),g=o(4020),p=o(20040),C=o(15786),k=o(63050),x=o(16725),_=o(4265),A=o(59674),h=o(43892),f=o(26169),w=o(43231),v=o(14064),y=o(94519),N=o(52538),S=o(20435);const E={activate:function(e,t,o){function n(e){function t(t,n,l){if(S.KernelMessage.isDisplayDataMsg(t)||S.KernelMessage.isStreamMsg(t)||S.KernelMessage.isErrorMsg(t)||S.KernelMessage.isExecuteResultMsg(t)){const a=o.getLogger(e.context.path);a.rendermime=e.content.rendermime;const r=Object.assign(Object.assign({},t.content),{output_type:t.header.msg_type});let s=n;(S.KernelMessage.isErrorMsg(t)||S.KernelMessage.isStreamMsg(t)&&"stderr"===t.content.name)&&(s=l),a.log({type:"output",data:r,level:s})}}e.context.sessionContext.iopubMessage.connect(((e,o)=>t(o,"info","info"))),e.context.sessionContext.unhandledMessage.connect(((e,o)=>t(o,"warning","error")))}o&&(t.forEach((e=>n(e))),t.widgetAdded.connect(((e,t)=>n(t))))},id:"@jupyterlab/notebook-extension:log-output",requires:[m.INotebookTracker],optional:[N.ILoggerRegistry],autoStart:!0};var I;!function(e){e.createNew="notebook:create-new",e.interrupt="notebook:interrupt-kernel",e.restart="notebook:restart-kernel",e.restartClear="notebook:restart-clear-output",e.restartAndRunToSelected="notebook:restart-and-run-to-selected",e.restartRunAll="notebook:restart-run-all",e.reconnectToKernel="notebook:reconnect-to-kernel",e.changeKernel="notebook:change-kernel",e.createConsole="notebook:create-console",e.createOutputView="notebook:create-output-view",e.clearAllOutputs="notebook:clear-all-cell-outputs",e.closeAndShutdown="notebook:close-and-shutdown",e.trust="notebook:trust",e.exportToFormat="notebook:export-to-format",e.run="notebook:run-cell",e.runAndAdvance="notebook:run-cell-and-select-next",e.runAndInsert="notebook:run-cell-and-insert-below",e.runInConsole="notebook:run-in-console",e.runAll="notebook:run-all-cells",e.runAllAbove="notebook:run-all-above",e.runAllBelow="notebook:run-all-below",e.renderAllMarkdown="notebook:render-all-markdown",e.toCode="notebook:change-cell-to-code",e.toMarkdown="notebook:change-cell-to-markdown",e.toRaw="notebook:change-cell-to-raw",e.cut="notebook:cut-cell",e.copy="notebook:copy-cell",e.pasteAbove="notebook:paste-cell-above",e.pasteBelow="notebook:paste-cell-below",e.duplicateBelow="notebook:duplicate-below",e.pasteAndReplace="notebook:paste-and-replace-cell",e.moveUp="notebook:move-cell-up",e.moveDown="notebook:move-cell-down",e.clearOutputs="notebook:clear-cell-output",e.deleteCell="notebook:delete-cell",e.insertAbove="notebook:insert-cell-above",e.insertBelow="notebook:insert-cell-below",e.selectAbove="notebook:move-cursor-up",e.selectBelow="notebook:move-cursor-down",e.extendAbove="notebook:extend-marked-cells-above",e.extendTop="notebook:extend-marked-cells-top",e.extendBelow="notebook:extend-marked-cells-below",e.extendBottom="notebook:extend-marked-cells-bottom",e.selectAll="notebook:select-all",e.deselectAll="notebook:deselect-all",e.editMode="notebook:enter-edit-mode",e.merge="notebook:merge-cells",e.mergeAbove="notebook:merge-cell-above",e.mergeBelow="notebook:merge-cell-below",e.split="notebook:split-cell-at-cursor",e.commandMode="notebook:enter-command-mode",e.toggleAllLines="notebook:toggle-all-cell-line-numbers",e.undoCellAction="notebook:undo-cell-action",e.redoCellAction="notebook:redo-cell-action",e.markdown1="notebook:change-cell-to-heading-1",e.markdown2="notebook:change-cell-to-heading-2",e.markdown3="notebook:change-cell-to-heading-3",e.markdown4="notebook:change-cell-to-heading-4",e.markdown5="notebook:change-cell-to-heading-5",e.markdown6="notebook:change-cell-to-heading-6",e.hideCode="notebook:hide-cell-code",e.showCode="notebook:show-cell-code",e.hideAllCode="notebook:hide-all-cell-code",e.showAllCode="notebook:show-all-cell-code",e.hideOutput="notebook:hide-cell-outputs",e.showOutput="notebook:show-cell-outputs",e.hideAllOutputs="notebook:hide-all-cell-outputs",e.showAllOutputs="notebook:show-all-cell-outputs",e.toggleRenderSideBySideCurrentNotebook="notebook:toggle-render-side-by-side-current",e.setSideBySideRatio="notebook:set-side-by-side-ratio",e.enableOutputScrolling="notebook:enable-output-scrolling",e.disableOutputScrolling="notebook:disable-output-scrolling",e.selectLastRunCell="notebook:select-last-run-cell",e.replaceSelection="notebook:replace-selection",e.autoClosingBrackets="notebook:toggle-autoclosing-brackets",e.toggleCollapseCmd="Collapsible_Headings:Toggle_Collapse",e.collapseAllCmd="Collapsible_Headings:Collapse_All",e.expandAllCmd="Collapsible_Headings:Expand_All",e.copyToClipboard="notebook:copy-to-clipboard"}(I||(I={}));const O="Notebook",T=["notebook","python","custom"],R="jp-NotebookExtension-sideBySideMargins",B={id:"@jupyterlab/notebook-extension:tracker",provides:m.INotebookTracker,requires:[m.INotebookWidgetFactory,_.ITranslator],optional:[l.ICommandPalette,i.IFileBrowserFactory,u.ILauncher,n.ILayoutRestorer,b.IMainMenu,C.ISettingRegistry,l.ISessionContextDialogs],activate:function(e,t,o,n,r,s,c,d,i,u){const b=o.load("jupyterlab"),g=e.serviceManager,{commands:p}=e,C=new m.NotebookTracker({namespace:"notebook"}),k=e=>document.documentElement.style.setProperty("--jp-side-by-side-output-size",`${e}fr`);(i?i.load(B.id):Promise.reject(new Error(`No setting registry for ${B.id}`))).then((e=>{N(e),e.changed.connect((()=>{N(e)})),p.addCommand(I.autoClosingBrackets,{execute:t=>{var o;const n=e.get("codeCellConfig").composite,l=e.get("markdownCellConfig").composite,a=e.get("rawCellConfig").composite,r=n.autoClosingBrackets||l.autoClosingBrackets||a.autoClosingBrackets,s=!!(null!==(o=t.force)&&void 0!==o?o:!r);[n.autoClosingBrackets,l.autoClosingBrackets,a.autoClosingBrackets]=[s,s,s],e.set("codeCellConfig",n),e.set("markdownCellConfig",l),e.set("rawCellConfig",a)},label:b.__("Auto Close Brackets for All Notebook Cell Types"),isToggled:()=>["codeCellConfig","markdownCellConfig","rawCellConfig"].some((t=>e.get(t).composite.autoClosingBrackets))}),p.addCommand(I.setSideBySideRatio,{label:b.__("Set side-by-side ratio"),execute:t=>{l.InputDialog.getNumber({title:b.__("Width of the output in side-by-side mode"),value:e.get("sideBySideOutputRatio").composite}).then((t=>{k(t.value),t.value&&e.set("sideBySideOutputRatio",t.value)})).catch(console.error)}})})).catch((e=>{console.warn(e.message),y({editorConfig:t.editorConfig,notebookConfig:t.notebookConfig,kernelShutdown:t.shutdownOnClose})})),c&&c.restore(C,{command:"docmanager:open",args:e=>({path:e.context.path,factory:O}),name:e=>e.context.path,when:g.ready});const x=e.docRegistry,_=new m.NotebookModelFactory({disableDocumentWideUndoRedo:t.notebookConfig.disableDocumentWideUndoRedo});x.addModelFactory(_),function(e,t,o,n){const r=o.load("jupyterlab"),{commands:s,shell:c}=e;n=null!=n?n:l.sessionContextDialogs;const d=()=>$.isEnabled(c,t),i=()=>$.isEnabledAndSingleSelected(c,t);t.currentChanged.connect(((e,t)=>{var o,n;(null===(n=null===(o=null==t?void 0:t.content)||void 0===o?void 0:o.model)||void 0===n?void 0:n.cells)&&(t.content.model.cells.changed.connect(((e,o)=>{(e=>{var t,o;for(const n of e.widgets)n instanceof a.MarkdownCell&&n.headingCollapsed&&m.NotebookActions.setHeadingCollapse(n,!0,e),n.model.id===(null===(o=null===(t=e.activeCell)||void 0===t?void 0:t.model)||void 0===o?void 0:o.id)&&m.NotebookActions.expandParent(n,e)})(t.content)})),t.content.activeCellChanged.connect(((e,t)=>{m.NotebookActions.expandParent(t,e)})))})),s.addCommand(I.runAndAdvance,{label:r.__("Run Selected Cells"),execute:e=>{const o=V(t,c,e);if(o){const{context:e,content:t}=o;return m.NotebookActions.runAndAdvance(t,e.sessionContext)}},isEnabled:d}),s.addCommand(I.run,{label:r.__("Run Selected Cells and Don't Advance"),execute:e=>{const o=V(t,c,e);if(o){const{context:e,content:t}=o;return m.NotebookActions.run(t,e.sessionContext)}},isEnabled:d}),s.addCommand(I.runAndInsert,{label:r.__("Run Selected Cells and Insert Below"),execute:e=>{const o=V(t,c,e);if(o){const{context:e,content:t}=o;return m.NotebookActions.runAndInsert(t,e.sessionContext)}},isEnabled:d}),s.addCommand(I.runAll,{label:r.__("Run All Cells"),execute:e=>{const o=V(t,c,e);if(o){const{context:e,content:t}=o;return m.NotebookActions.runAll(t,e.sessionContext)}},isEnabled:d}),s.addCommand(I.runAllAbove,{label:r.__("Run All Above Selected Cell"),execute:e=>{const o=V(t,c,e);if(o){const{context:e,content:t}=o;return m.NotebookActions.runAllAbove(t,e.sessionContext)}},isEnabled:()=>i()&&0!==t.currentWidget.content.activeCellIndex}),s.addCommand(I.runAllBelow,{label:r.__("Run Selected Cell and All Below"),execute:e=>{const o=V(t,c,e);if(o){const{context:e,content:t}=o;return m.NotebookActions.runAllBelow(t,e.sessionContext)}},isEnabled:()=>i()&&t.currentWidget.content.activeCellIndex!==t.currentWidget.content.widgets.length-1}),s.addCommand(I.renderAllMarkdown,{label:r.__("Render All Markdown Cells"),execute:e=>{const o=V(t,c,e);if(o){const{context:e,content:t}=o;return m.NotebookActions.renderAllMarkdown(t,e.sessionContext)}},isEnabled:d}),s.addCommand(I.restart,{label:r.__("Restart Kernel…"),execute:e=>{const l=V(t,c,e);if(l)return n.restart(l.sessionContext,o)},isEnabled:d}),s.addCommand(I.closeAndShutdown,{label:r.__("Close and Shut Down"),execute:e=>{const o=V(t,c,e);if(!o)return;const n=o.title.label;return(0,l.showDialog)({title:r.__("Shut down the notebook?"),body:r.__('Are you sure you want to close "%1"?',n),buttons:[l.Dialog.cancelButton(),l.Dialog.warnButton()]}).then((e=>{if(e.button.accept)return o.context.sessionContext.shutdown().then((()=>{o.dispose()}))}))},isEnabled:d}),s.addCommand(I.trust,{label:()=>r.__("Trust Notebook"),execute:e=>{const o=V(t,c,e);if(o){const{context:e,content:t}=o;return m.NotebookActions.trust(t).then((()=>e.save()))}},isEnabled:d}),s.addCommand(I.restartClear,{label:r.__("Restart Kernel and Clear All Outputs…"),execute:e=>{const l=V(t,c,e);if(l){const{content:e,sessionContext:t}=l;return n.restart(t,o).then((()=>{m.NotebookActions.clearAllOutputs(e)}))}},isEnabled:d}),s.addCommand(I.restartAndRunToSelected,{label:r.__("Restart Kernel and Run up to Selected Cell…"),execute:e=>{const l=V(t,c,e);if(l){const{context:e,content:t}=l;return n.restart(l.sessionContext,o).then((o=>{o&&m.NotebookActions.runAllAbove(t,e.sessionContext).then((o=>{(o||0===t.activeCellIndex)&&m.NotebookActions.run(t,e.sessionContext)}))}))}},isEnabled:i}),s.addCommand(I.restartRunAll,{label:r.__("Restart Kernel and Run All Cells…"),execute:e=>{const l=V(t,c,e);if(l){const{context:e,content:t,sessionContext:a}=l;return n.restart(a,o).then((o=>(o&&m.NotebookActions.runAll(t,e.sessionContext),o)))}},isEnabled:d}),s.addCommand(I.clearAllOutputs,{label:r.__("Clear All Outputs"),execute:e=>{const o=V(t,c,e);if(o)return m.NotebookActions.clearAllOutputs(o.content)},isEnabled:d}),s.addCommand(I.clearOutputs,{label:r.__("Clear Outputs"),execute:e=>{const o=V(t,c,e);if(o)return m.NotebookActions.clearOutputs(o.content)},isEnabled:d}),s.addCommand(I.interrupt,{label:r.__("Interrupt Kernel"),execute:e=>{var o;const n=V(t,c,e);if(!n)return;const l=null===(o=n.context.sessionContext.session)||void 0===o?void 0:o.kernel;return l?l.interrupt():void 0},isEnabled:d}),s.addCommand(I.toCode,{label:r.__("Change to Code Cell Type"),execute:e=>{const o=V(t,c,e);if(o)return m.NotebookActions.changeCellType(o.content,"code")},isEnabled:d}),s.addCommand(I.toMarkdown,{label:r.__("Change to Markdown Cell Type"),execute:e=>{const o=V(t,c,e);if(o)return m.NotebookActions.changeCellType(o.content,"markdown")},isEnabled:d}),s.addCommand(I.toRaw,{label:r.__("Change to Raw Cell Type"),execute:e=>{const o=V(t,c,e);if(o)return m.NotebookActions.changeCellType(o.content,"raw")},isEnabled:d}),s.addCommand(I.cut,{label:r.__("Cut Cells"),caption:r.__("Cut the selected cells"),execute:e=>{const o=V(t,c,e);if(o)return m.NotebookActions.cut(o.content)},icon:e=>e.toolbar?A.cutIcon:void 0,isEnabled:d}),s.addCommand(I.copy,{label:r.__("Copy Cells"),caption:r.__("Copy the selected cells"),execute:e=>{const o=V(t,c,e);if(o)return m.NotebookActions.copy(o.content)},icon:e=>e.toolbar?A.copyIcon:"",isEnabled:d}),s.addCommand(I.pasteBelow,{label:r.__("Paste Cells Below"),caption:r.__("Paste cells from the clipboard"),execute:e=>{const o=V(t,c,e);if(o)return m.NotebookActions.paste(o.content,"below")},icon:e=>e.toolbar?A.pasteIcon:void 0,isEnabled:d}),s.addCommand(I.pasteAbove,{label:r.__("Paste Cells Above"),execute:e=>{const o=V(t,c,e);if(o)return m.NotebookActions.paste(o.content,"above")},isEnabled:d}),s.addCommand(I.duplicateBelow,{label:r.__("Duplicate Cells Below"),caption:r.__("Copy the selected cells and paste them below the selection"),execute:e=>{const o=V(t,c,e);o&&m.NotebookActions.duplicate(o.content,"belowSelected")},icon:e=>e.toolbar?A.duplicateIcon:"",isEnabled:d}),s.addCommand(I.pasteAndReplace,{label:r.__("Paste Cells and Replace"),execute:e=>{const o=V(t,c,e);if(o)return m.NotebookActions.paste(o.content,"replace")},isEnabled:d}),s.addCommand(I.deleteCell,{label:r.__("Delete Cells"),execute:e=>{const o=V(t,c,e);if(o)return m.NotebookActions.deleteCells(o.content)},isEnabled:d}),s.addCommand(I.split,{label:r.__("Split Cell"),execute:e=>{const o=V(t,c,e);if(o)return m.NotebookActions.splitCell(o.content)},isEnabled:d}),s.addCommand(I.merge,{label:r.__("Merge Selected Cells"),execute:e=>{const o=V(t,c,e);if(o)return m.NotebookActions.mergeCells(o.content)},isEnabled:d}),s.addCommand(I.mergeAbove,{label:r.__("Merge Cell Above"),execute:e=>{const o=V(t,c,e);if(o)return m.NotebookActions.mergeCells(o.content,!0)},isEnabled:d}),s.addCommand(I.mergeBelow,{label:r.__("Merge Cell Below"),execute:e=>{const o=V(t,c,e);if(o)return m.NotebookActions.mergeCells(o.content,!1)},isEnabled:d}),s.addCommand(I.insertAbove,{label:r.__("Insert Cell Above"),execute:e=>{const o=V(t,c,e);if(o)return m.NotebookActions.insertAbove(o.content)},icon:e=>e.toolbar?A.addAboveIcon:void 0,isEnabled:d}),s.addCommand(I.insertBelow,{label:r.__("Insert Cell Below"),caption:r.__("Insert a cell below"),execute:e=>{const o=V(t,c,e);if(o)return m.NotebookActions.insertBelow(o.content)},icon:e=>e.toolbar?A.addBelowIcon:void 0,isEnabled:d}),s.addCommand(I.selectAbove,{label:r.__("Select Cell Above"),execute:e=>{const o=V(t,c,e);if(o)return m.NotebookActions.selectAbove(o.content)},isEnabled:d}),s.addCommand(I.selectBelow,{label:r.__("Select Cell Below"),execute:e=>{const o=V(t,c,e);if(o)return m.NotebookActions.selectBelow(o.content)},isEnabled:d}),s.addCommand(I.extendAbove,{label:r.__("Extend Selection Above"),execute:e=>{const o=V(t,c,e);if(o)return m.NotebookActions.extendSelectionAbove(o.content)},isEnabled:d}),s.addCommand(I.extendTop,{label:r.__("Extend Selection to Top"),execute:e=>{const o=V(t,c,e);if(o)return m.NotebookActions.extendSelectionAbove(o.content,!0)},isEnabled:d}),s.addCommand(I.extendBelow,{label:r.__("Extend Selection Below"),execute:e=>{const o=V(t,c,e);if(o)return m.NotebookActions.extendSelectionBelow(o.content)},isEnabled:d}),s.addCommand(I.extendBottom,{label:r.__("Extend Selection to Bottom"),execute:e=>{const o=V(t,c,e);if(o)return m.NotebookActions.extendSelectionBelow(o.content,!0)},isEnabled:d}),s.addCommand(I.selectAll,{label:r.__("Select All Cells"),execute:e=>{const o=V(t,c,e);if(o)return m.NotebookActions.selectAll(o.content)},isEnabled:d}),s.addCommand(I.deselectAll,{label:r.__("Deselect All Cells"),execute:e=>{const o=V(t,c,e);if(o)return m.NotebookActions.deselectAll(o.content)},isEnabled:d}),s.addCommand(I.moveUp,{label:r.__("Move Cells Up"),execute:e=>{const o=V(t,c,e);if(o)return m.NotebookActions.moveUp(o.content)},isEnabled:d,icon:e=>e.toolbar?A.moveUpIcon:void 0}),s.addCommand(I.moveDown,{label:r.__("Move Cells Down"),execute:e=>{const o=V(t,c,e);if(o)return m.NotebookActions.moveDown(o.content)},isEnabled:d,icon:e=>e.toolbar?A.moveDownIcon:void 0}),s.addCommand(I.toggleAllLines,{label:r.__("Toggle All Line Numbers"),execute:e=>{const o=V(t,c,e);if(o)return m.NotebookActions.toggleAllLineNumbers(o.content)},isEnabled:d}),s.addCommand(I.commandMode,{label:r.__("Enter Command Mode"),execute:e=>{const o=V(t,c,e);o&&(o.content.mode="command")},isEnabled:d}),s.addCommand(I.editMode,{label:r.__("Enter Edit Mode"),execute:e=>{const o=V(t,c,e);o&&(o.content.mode="edit")},isEnabled:d}),s.addCommand(I.undoCellAction,{label:r.__("Undo Cell Operation"),execute:e=>{const o=V(t,c,e);if(o)return m.NotebookActions.undo(o.content)},isEnabled:d}),s.addCommand(I.redoCellAction,{label:r.__("Redo Cell Operation"),execute:e=>{const o=V(t,c,e);if(o)return m.NotebookActions.redo(o.content)},isEnabled:d}),s.addCommand(I.changeKernel,{label:r.__("Change Kernel…"),execute:e=>{const l=V(t,c,e);if(l)return n.selectKernel(l.context.sessionContext,o)},isEnabled:d}),s.addCommand(I.reconnectToKernel,{label:r.__("Reconnect To Kernel"),execute:e=>{var o;const n=V(t,c,e);if(!n)return;const l=null===(o=n.context.sessionContext.session)||void 0===o?void 0:o.kernel;return l?l.reconnect():void 0},isEnabled:d}),s.addCommand(I.markdown1,{label:r.__("Change to Heading 1"),execute:e=>{const o=V(t,c,e);if(o)return m.NotebookActions.setMarkdownHeader(o.content,1)},isEnabled:d}),s.addCommand(I.markdown2,{label:r.__("Change to Heading 2"),execute:e=>{const o=V(t,c,e);if(o)return m.NotebookActions.setMarkdownHeader(o.content,2)},isEnabled:d}),s.addCommand(I.markdown3,{label:r.__("Change to Heading 3"),execute:e=>{const o=V(t,c,e);if(o)return m.NotebookActions.setMarkdownHeader(o.content,3)},isEnabled:d}),s.addCommand(I.markdown4,{label:r.__("Change to Heading 4"),execute:e=>{const o=V(t,c,e);if(o)return m.NotebookActions.setMarkdownHeader(o.content,4)},isEnabled:d}),s.addCommand(I.markdown5,{label:r.__("Change to Heading 5"),execute:e=>{const o=V(t,c,e);if(o)return m.NotebookActions.setMarkdownHeader(o.content,5)},isEnabled:d}),s.addCommand(I.markdown6,{label:r.__("Change to Heading 6"),execute:e=>{const o=V(t,c,e);if(o)return m.NotebookActions.setMarkdownHeader(o.content,6)},isEnabled:d}),s.addCommand(I.hideCode,{label:r.__("Collapse Selected Code"),execute:e=>{const o=V(t,c,e);if(o)return m.NotebookActions.hideCode(o.content)},isEnabled:d}),s.addCommand(I.showCode,{label:r.__("Expand Selected Code"),execute:e=>{const o=V(t,c,e);if(o)return m.NotebookActions.showCode(o.content)},isEnabled:d}),s.addCommand(I.hideAllCode,{label:r.__("Collapse All Code"),execute:e=>{const o=V(t,c,e);if(o)return m.NotebookActions.hideAllCode(o.content)},isEnabled:d}),s.addCommand(I.showAllCode,{label:r.__("Expand All Code"),execute:e=>{const o=V(t,c,e);if(o)return m.NotebookActions.showAllCode(o.content)},isEnabled:d}),s.addCommand(I.hideOutput,{label:r.__("Collapse Selected Outputs"),execute:e=>{const o=V(t,c,e);if(o)return m.NotebookActions.hideOutput(o.content)},isEnabled:d}),s.addCommand(I.showOutput,{label:r.__("Expand Selected Outputs"),execute:e=>{const o=V(t,c,e);if(o)return m.NotebookActions.showOutput(o.content)},isEnabled:d}),s.addCommand(I.hideAllOutputs,{label:r.__("Collapse All Outputs"),execute:e=>{const o=V(t,c,e);if(o)return m.NotebookActions.hideAllOutputs(o.content)},isEnabled:d}),s.addCommand(I.toggleRenderSideBySideCurrentNotebook,{label:r.__("Render Side-by-Side"),execute:e=>{const o=V(t,c,e);if(o)return"side-by-side"===o.content.renderingLayout?m.NotebookActions.renderDefault(o.content):m.NotebookActions.renderSideBySide(o.content)},isEnabled:d,isToggled:e=>{const o=V(t,c,Object.assign(Object.assign({},e),{activate:!1}));return!!o&&"side-by-side"===o.content.renderingLayout}}),s.addCommand(I.showAllOutputs,{label:r.__("Expand All Outputs"),execute:e=>{const o=V(t,c,e);if(o)return m.NotebookActions.showAllOutputs(o.content)},isEnabled:d}),s.addCommand(I.enableOutputScrolling,{label:r.__("Enable Scrolling for Outputs"),execute:e=>{const o=V(t,c,e);if(o)return m.NotebookActions.enableOutputScrolling(o.content)},isEnabled:d}),s.addCommand(I.disableOutputScrolling,{label:r.__("Disable Scrolling for Outputs"),execute:e=>{const o=V(t,c,e);if(o)return m.NotebookActions.disableOutputScrolling(o.content)},isEnabled:d}),s.addCommand(I.selectLastRunCell,{label:r.__("Select current running or last run cell"),execute:e=>{const o=V(t,c,e);if(o)return m.NotebookActions.selectLastRunCell(o.content)},isEnabled:d}),s.addCommand(I.replaceSelection,{label:r.__("Replace Selection in Notebook Cell"),execute:e=>{const o=V(t,c,e),n=e.text||"";if(o)return m.NotebookActions.replaceSelection(o.content,n)},isEnabled:d}),s.addCommand(I.toggleCollapseCmd,{label:"Toggle Collapse Notebook Heading",execute:e=>{const o=V(t,c,e);if(o)return m.NotebookActions.toggleCurrentHeadingCollapse(o.content)},isEnabled:()=>$.isEnabledAndHeadingSelected(c,t)}),s.addCommand(I.collapseAllCmd,{label:"Collapse All Cells",execute:e=>{const o=V(t,c,e);if(o)return m.NotebookActions.collapseAll(o.content)}}),s.addCommand(I.expandAllCmd,{label:"Expand All Headings",execute:e=>{const o=V(t,c,e);if(o)return m.NotebookActions.expandAllHeadings(o.content)}})}(e,C,o,u),n&&function(e,t){const o=t.load("jupyterlab");let n=o.__("Notebook Operations");[I.interrupt,I.restart,I.restartClear,I.restartRunAll,I.runAll,I.renderAllMarkdown,I.runAllAbove,I.runAllBelow,I.restartAndRunToSelected,I.selectAll,I.deselectAll,I.clearAllOutputs,I.toggleAllLines,I.editMode,I.commandMode,I.changeKernel,I.reconnectToKernel,I.createConsole,I.closeAndShutdown,I.trust,I.toggleCollapseCmd,I.collapseAllCmd,I.expandAllCmd].forEach((t=>{e.addItem({command:t,category:n})})),e.addItem({command:I.createNew,category:n,args:{isPalette:!0}}),n=o.__("Notebook Cell Operations"),[I.run,I.runAndAdvance,I.runAndInsert,I.runInConsole,I.clearOutputs,I.toCode,I.toMarkdown,I.toRaw,I.cut,I.copy,I.pasteBelow,I.pasteAbove,I.pasteAndReplace,I.deleteCell,I.split,I.merge,I.mergeAbove,I.mergeBelow,I.insertAbove,I.insertBelow,I.selectAbove,I.selectBelow,I.extendAbove,I.extendTop,I.extendBelow,I.extendBottom,I.moveDown,I.moveUp,I.undoCellAction,I.redoCellAction,I.markdown1,I.markdown2,I.markdown3,I.markdown4,I.markdown5,I.markdown6,I.hideCode,I.showCode,I.hideAllCode,I.showAllCode,I.hideOutput,I.showOutput,I.hideAllOutputs,I.showAllOutputs,I.toggleRenderSideBySideCurrentNotebook,I.setSideBySideRatio,I.enableOutputScrolling,I.disableOutputScrolling].forEach((t=>{e.addItem({command:t,category:n})}))}(n,o);let h=0;const v=e.docRegistry.getFileType("notebook");function y(e){C.forEach((t=>{t.setConfig(e)}))}function N(e){const o=Object.assign(Object.assign({},m.StaticNotebook.defaultEditorConfig.code),e.get("codeCellConfig").composite),n=Object.assign(Object.assign({},m.StaticNotebook.defaultEditorConfig.markdown),e.get("markdownCellConfig").composite),l=Object.assign(Object.assign({},m.StaticNotebook.defaultEditorConfig.raw),e.get("rawCellConfig").composite);t.editorConfig={code:o,markdown:n,raw:l},t.notebookConfig={scrollPastEnd:e.get("scrollPastEnd").composite,defaultCell:e.get("defaultCell").composite,recordTiming:e.get("recordTiming").composite,numberCellsToRenderDirectly:e.get("numberCellsToRenderDirectly").composite,remainingTimeBeforeRescheduling:e.get("remainingTimeBeforeRescheduling").composite,renderCellOnIdle:e.get("renderCellOnIdle").composite,observedTopMargin:e.get("observedTopMargin").composite,observedBottomMargin:e.get("observedBottomMargin").composite,maxNumberOutputs:e.get("maxNumberOutputs").composite,showEditorForReadOnlyMarkdown:e.get("showEditorForReadOnlyMarkdown").composite,disableDocumentWideUndoRedo:e.get("experimentalDisableDocumentWideUndoRedo").composite,renderingLayout:e.get("renderingLayout").composite,sideBySideLeftMarginOverride:e.get("sideBySideLeftMarginOverride").composite,sideBySideRightMarginOverride:e.get("sideBySideRightMarginOverride").composite,sideBySideOutputRatio:e.get("sideBySideOutputRatio").composite},k(t.notebookConfig.sideBySideOutputRatio);const a=`.jp-mod-sideBySide.jp-Notebook .jp-Notebook-cell { \n margin-left: ${t.notebookConfig.sideBySideLeftMarginOverride} !important;\n margin-right: ${t.notebookConfig.sideBySideRightMarginOverride} !important;`,r=document.getElementById(R);r?r.innerText=a:document.head.insertAdjacentHTML("beforeend",``),t.shutdownOnClose=e.get("kernelShutdown").composite,_.disableDocumentWideUndoRedo=e.get("experimentalDisableDocumentWideUndoRedo").composite,y({editorConfig:t.editorConfig,notebookConfig:t.notebookConfig,kernelShutdown:t.shutdownOnClose})}return t.widgetCreated.connect(((e,t)=>{var o,n;t.id=t.id||"notebook-"+ ++h,t.title.icon=null==v?void 0:v.icon,t.title.iconClass=null!==(o=null==v?void 0:v.iconClass)&&void 0!==o?o:"",t.title.iconLabel=null!==(n=null==v?void 0:v.iconLabel)&&void 0!==n?n:"",t.context.pathChanged.connect((()=>{C.save(t)})),C.add(t)})),d&&function(e,t,o,n,a){const r=n.load("jupyterlab"),{commands:s}=e;a=a||l.sessionContextDialogs,t.editMenu.undoers.add({tracker:o,undo:e=>{var t;null===(t=e.content.activeCell)||void 0===t||t.editor.undo()},redo:e=>{var t;null===(t=e.content.activeCell)||void 0===t||t.editor.redo()}}),t.editMenu.clearers.add({tracker:o,clearCurrentLabel:e=>r.__("Clear Output"),clearAllLabel:e=>r.__("Clear All Outputs"),clearCurrent:e=>m.NotebookActions.clearOutputs(e.content),clearAll:e=>m.NotebookActions.clearAllOutputs(e.content)}),t.fileMenu.closeAndCleaners.add({tracker:o,closeAndCleanupLabel:e=>r.__("Close and Shutdown Notebook"),closeAndCleanup:e=>{const t=e.title.label;return(0,l.showDialog)({title:r.__("Shut down the Notebook?"),body:r.__('Are you sure you want to close "%1"?',t),buttons:[l.Dialog.cancelButton(),l.Dialog.warnButton()]}).then((t=>{if(t.button.accept)return e.context.sessionContext.shutdown().then((()=>{e.dispose()}))}))}}),t.kernelMenu.kernelUsers.add({tracker:o,interruptKernel:e=>{var t;const o=null===(t=e.sessionContext.session)||void 0===t?void 0:t.kernel;return o?o.interrupt():Promise.resolve(void 0)},reconnectToKernel:e=>{var t;const o=null===(t=e.sessionContext.session)||void 0===t?void 0:t.kernel;return o?o.reconnect():Promise.resolve(void 0)},restartKernelAndClearLabel:e=>r.__("Restart Kernel and Clear All Outputs…"),restartKernel:e=>a.restart(e.sessionContext,n),restartKernelAndClear:e=>a.restart(e.sessionContext,n).then((t=>(t&&m.NotebookActions.clearAllOutputs(e.content),t))),changeKernel:e=>a.selectKernel(e.sessionContext,n),shutdownKernel:e=>e.sessionContext.shutdown()}),t.fileMenu.consoleCreators.add({tracker:o,createConsoleLabel:e=>r.__("New Console for Notebook"),createConsole:e=>$.createConsole(s,e,!0)}),t.viewMenu.editorViewers.add({tracker:o,toggleLineNumbers:e=>{m.NotebookActions.toggleAllLineNumbers(e.content)},lineNumbersToggled:e=>{const t=e.content.editorConfig;return!!(t.code.lineNumbers&&t.markdown.lineNumbers&&t.raw.lineNumbers)}}),t.runMenu.codeRunners.add({tracker:o,runLabel:e=>r.__("Run Selected Cells"),runCaption:e=>r.__("Run the selected cells and advance"),runAllLabel:e=>r.__("Run All Cells"),runAllCaption:e=>r.__("Run the all notebook cells"),restartAndRunAllLabel:e=>r.__("Restart Kernel and Run All Cells…"),restartAndRunAllCaption:e=>r.__("Restart the kernel, then re-run the whole notebook"),run:e=>{const{context:t,content:o}=e;return m.NotebookActions.runAndAdvance(o,t.sessionContext).then((()=>{}))},runAll:e=>{const{context:t,content:o}=e;return m.NotebookActions.runAll(o,t.sessionContext).then((()=>{}))},restartAndRunAll:e=>{const{context:t,content:o}=e;return a.restart(t.sessionContext,n).then((e=>(e&&m.NotebookActions.runAll(o,t.sessionContext),e)))}}),t.helpMenu.kernelUsers.add({tracker:o,getKernel:e=>{var t;return null===(t=e.sessionContext.session)||void 0===t?void 0:t.kernel}})}(e,d,C,o,u),p.addCommand(I.createNew,{label:e=>{var t,o,n;const l=e.kernelName||"";return e.isLauncher&&e.kernelName&&g.kernelspecs?null!==(n=null===(o=null===(t=g.kernelspecs.specs)||void 0===t?void 0:t.kernelspecs[l])||void 0===o?void 0:o.display_name)&&void 0!==n?n:"":e.isPalette||e.isContextMenu?b.__("New Notebook"):b.__("Notebook")},caption:b.__("Create a new notebook"),icon:e=>e.isPalette?void 0:A.notebookIcon,execute:e=>(async(e,t)=>{const o=await p.execute("docmanager:new-untitled",{path:e,type:"notebook"});if(null!=o){const e=await p.execute("docmanager:open",{path:o.path,factory:O,kernel:{name:t}});return e.isUntitled=!0,e}})(e.cwd||(r?r.defaultBrowser.model.path:""),e.kernelName||"")}),s&&g.ready.then((()=>{let e=null;const t=()=>{e&&(e.dispose(),e=null);const t=g.kernelspecs.specs;if(t){e=new w.DisposableSet;for(const o in t.kernelspecs){const n=o===t.default?0:1/0,l=t.kernelspecs[o],a=l.resources["logo-svg"]||l.resources["logo-64x64"];e.add(s.add({command:I.createNew,args:{isLauncher:!0,kernelName:o},category:b.__("Notebook"),rank:n,kernelIconUrl:a,metadata:{kernel:f.JSONExt.deepCopy(l.metadata||{})}}))}}};t(),g.kernelspecs.specsChanged.connect(t)})),C},autoStart:!0},M={id:"@jupyterlab/notebook-extension:factory",provides:m.NotebookPanel.IContentFactory,requires:[r.IEditorServices],autoStart:!0,activate:(e,t)=>{const o=t.factoryService.newInlineEditor;return new m.NotebookPanel.ContentFactory({editorFactory:o})}},j={activate:function(e,t,o,n,l,a){const r=l.load("jupyterlab"),s="notebook-tools",c=new m.NotebookTools({tracker:t,translator:l}),d=new m.NotebookTools.ActiveCellTool,i=m.NotebookTools.createSlideShowSelector(l),u=o.factoryService.newInlineEditor,b=new m.NotebookTools.CellMetadataEditorTool({editorFactory:u,collapsed:!1,translator:l}),g=new m.NotebookTools.NotebookMetadataEditorTool({editorFactory:u,translator:l});return e.serviceManager.nbconvert.getExportFormats().then((e=>{if(e){const t=["pdf","slides","script","notebook","custom"];let o=[[r.__("PDF"),"pdf"],[r.__("Slides"),"slides"],[r.__("Script"),"script"],[r.__("Notebook"),"notebook"],[r.__("Custom"),"custom"]];const n=Object.keys(e),a=$.getFormatLabels(l);n.forEach((function(n){if(-1===t.indexOf(n)){const t=r.__(n[0].toUpperCase()+n.substr(1)),l=a[n]?a[n]:t,s=e[n].output_mimetype;o.push([l,s])}}));const s=m.NotebookTools.createNBConvertSelector(o,l);c.addItem({tool:s,section:"common",rank:3})}})),c.title.icon=A.buildIcon,c.title.caption=r.__("Notebook Tools"),c.id=s,c.addItem({tool:d,section:"common",rank:1}),c.addItem({tool:i,section:"common",rank:2}),c.addItem({tool:b,section:"advanced",rank:1}),c.addItem({tool:g,section:"advanced",rank:2}),v.MessageLoop.installMessageHook(c,((e,t)=>{switch(t.type){case"activate-request":n.save(s,{open:!0});break;case"after-hide":case"close-request":n.remove(s)}return!0})),a&&t.widgetAdded.connect(((e,t)=>{a.register(t).render(c)})),c},provides:m.INotebookTools,id:"@jupyterlab/notebook-extension:tools",autoStart:!0,requires:[m.INotebookTracker,r.IEditorServices,k.IStateDB,_.ITranslator],optional:[g.IPropertyInspectorProvider]},L={id:"@jupyterlab/notebook-extension:mode-status",autoStart:!0,requires:[m.INotebookTracker,_.ITranslator],optional:[x.IStatusBar],activate:(e,t,o,n)=>{if(!n)return;const{shell:l}=e,a=new m.CommandEditStatus(o);t.currentChanged.connect((()=>{const e=t.currentWidget;a.model.notebook=e&&e.content})),n.registerStatusItem("@jupyterlab/notebook-extension:mode-status",{item:a,align:"right",rank:4,isActive:()=>!!l.currentWidget&&!!t.currentWidget&&l.currentWidget===t.currentWidget})}},D={id:"@jupyterlab/notebook-extension:execution-indicator",autoStart:!0,requires:[m.INotebookTracker,n.ILabShell,_.ITranslator],optional:[x.IStatusBar,C.ISettingRegistry],activate:(e,t,o,n,l,a)=>{let r,s,c;const d=e=>{var a,d;let{showOnToolBar:i,showProgress:u}=e;if(i)c&&(o.currentChanged.disconnect(s),c.dispose());else{if(!l)return;(null==r?void 0:r.model)||(r=new m.ExecutionIndicator(n),s=(e,o)=>{const{newValue:n}=o;if(n&&t.has(n)){const e=n;r.model.attachNotebook({content:e.content,context:e.sessionContext})}},c=l.registerStatusItem("@jupyterlab/notebook-extension:execution-indicator",{item:r,align:"left",rank:3,isActive:()=>{const e=o.currentWidget;return!!e&&t.has(e)}}),r.model.attachNotebook({content:null===(a=t.currentWidget)||void 0===a?void 0:a.content,context:null===(d=t.currentWidget)||void 0===d?void 0:d.sessionContext}),o.currentChanged.connect(s),r.disposed.connect((()=>{o.currentChanged.disconnect(s)}))),r.model.displayOption={showOnToolBar:i,showProgress:u}}};if(a){const t=a.load(B.id);Promise.all([t,e.restored]).then((([e])=>{d(m.ExecutionIndicator.getSettingValue(e)),e.changed.connect((e=>d(m.ExecutionIndicator.getSettingValue(e))))})).catch((e=>{console.error(e.message)}))}}},P={id:"@jupyterlab/notebook-extension:export",autoStart:!0,requires:[_.ITranslator,m.INotebookTracker],optional:[b.IMainMenu,l.ICommandPalette],activate:(e,t,o,n,l)=>{var a;const r=t.load("jupyterlab"),{commands:c,shell:d}=e,i=e.serviceManager;let u;c.addCommand(I.exportToFormat,{label:e=>{const t=e.label;return e.isPalette?r.__("Save and Export Notebook: %1",t):t},execute:e=>{const t=V(o,d,e);if(!t)return;const n=s.PageConfig.getNBConvertURL({format:e.format,download:!0,path:t.context.path}),{context:l}=t;return l.model.dirty&&!l.model.readOnly?l.save().then((()=>{window.open(n,"_blank","noopener")})):new Promise((e=>{window.open(n,"_blank","noopener"),e(void 0)}))},isEnabled:()=>$.isEnabled(d,o)}),n&&(u=null===(a=n.fileMenu.items.find((e=>{var t;return"submenu"===e.type&&"jp-mainmenu-file-notebookexport"===(null===(t=e.submenu)||void 0===t?void 0:t.id)})))||void 0===a?void 0:a.submenu),i.nbconvert.getExportFormats().then((e=>{if(e){const o=$.getFormatLabels(t);Object.keys(e).forEach((function(e){const t=r.__(e[0].toUpperCase()+e.substr(1)),n=o[e]?o[e]:t;let a={format:e,label:n,isPalette:!1};if(-1===T.indexOf(e)&&(u&&u.addItem({command:I.exportToFormat,args:a}),l)){a={format:e,label:n,isPalette:!0};const t=r.__("Notebook Operations");l.addItem({command:I.exportToFormat,category:t,args:a})}}))}}))}},W={id:"@jupyterlab/notebook-extension:trust-status",autoStart:!0,requires:[m.INotebookTracker,_.ITranslator],optional:[x.IStatusBar],activate:(e,t,o,n)=>{if(!n)return;const{shell:l}=e,a=new m.NotebookTrustStatus(o);t.currentChanged.connect((()=>{const e=t.currentWidget;a.model.notebook=e&&e.content})),n.registerStatusItem("@jupyterlab/notebook-extension:trust-status",{item:a,align:"right",rank:3,isActive:()=>!!l.currentWidget&&!!t.currentWidget&&l.currentWidget===t.currentWidget})}},F={id:"@jupyterlab/notebook-extension:widget-factory",provides:m.INotebookWidgetFactory,requires:[m.NotebookPanel.IContentFactory,r.IEditorServices,p.IRenderMimeRegistry,l.ISessionContextDialogs,l.IToolbarWidgetRegistry,_.ITranslator],optional:[C.ISettingRegistry],activate:function(e,t,o,n,a,r,c,i){const u=s.PageConfig.getOption("notebookStartsKernel"),b=""===u||"true"===u.toLowerCase(),{commands:g}=e;let p;r.registerFactory(O,"save",(e=>d.ToolbarItems.createSaveButton(g,e.context.fileChanged))),r.registerFactory(O,"cellType",(e=>m.ToolbarItems.createCellTypeItem(e,c))),r.registerFactory(O,"kernelName",(e=>l.Toolbar.createKernelNameItem(e.sessionContext,a,c))),r.registerFactory(O,"executionProgress",(e=>{const t=null==i?void 0:i.load(B.id),o=m.ExecutionIndicator.createExecutionIndicatorItem(e,c,t);return null==t||t.then((t=>{e.disposed.connect((()=>{t.dispose()}))})),o})),i&&(p=(0,l.createToolbarFactory)(r,i,O,"@jupyterlab/notebook-extension:panel",c));const C=new m.NotebookWidgetFactory({name:O,fileTypes:["notebook"],modelName:"notebook",defaultFor:["notebook"],preferKernel:b,canStartKernel:!0,rendermime:n,contentFactory:t,editorConfig:m.StaticNotebook.defaultEditorConfig,notebookConfig:m.StaticNotebook.defaultNotebookConfig,mimeTypeService:o.mimeTypeService,sessionDialogs:a,toolbarFactory:p,translator:c});return e.docRegistry.addWidgetFactory(C),C},autoStart:!0},K={id:"@jupyterlab/notebook-extension:cloned-outputs",requires:[c.IDocumentManager,m.INotebookTracker,_.ITranslator],optional:[n.ILayoutRestorer],activate:function(e,t,o,n,a){const r=n.load("jupyterlab"),s=new l.WidgetTracker({namespace:"cloned-outputs"});a&&a.restore(s,{command:I.createOutputView,args:e=>({path:e.content.path,index:e.content.index}),name:e=>`${e.content.path}:${e.content.index}`,when:o.restored});const{commands:c,shell:d}=e;c.addCommand(I.createOutputView,{label:r.__("Create New View for Output"),execute:async e=>{var a;let r,c;const d=e.path;let i=e.index;if(d&&null!=i){if(c=t.findWidget(d,O),!c)return}else{if(c=o.currentWidget,!c)return;r=c.content.activeCell,i=c.content.activeCellIndex}const u=new $.ClonedOutputArea({notebook:c,cell:r,index:i,translator:n}),b=new l.MainAreaWidget({content:u});c.context.addSibling(b,{ref:c.id,mode:"split-bottom"});const m=()=>{s.save(b)};c.context.pathChanged.connect(m),null===(a=c.context.model)||void 0===a||a.cells.changed.connect(m),s.add(b),c.content.disposed.connect((()=>{var e;c.context.pathChanged.disconnect(m),null===(e=c.context.model)||void 0===e||e.cells.changed.disconnect(m),b.dispose()}))},isEnabled:()=>$.isEnabledAndSingleSelected(d,o)})},autoStart:!0},U={id:"@jupyterlab/notebook-extension:code-console",requires:[m.INotebookTracker,_.ITranslator],activate:function(e,t,o){const n=o.load("jupyterlab"),{commands:l,shell:a}=e,r=()=>$.isEnabled(a,t);l.addCommand(I.createConsole,{label:n.__("New Console for Notebook"),execute:e=>{const o=t.currentWidget;if(o)return $.createConsole(l,o,e.activate)},isEnabled:r}),l.addCommand(I.runInConsole,{label:n.__("Run Selected Text or Current Line in Console"),execute:async e=>{var o,n;const a=t.currentWidget;if(!a)return;const{context:r,content:s}=a,c=s.activeCell,d=null==c?void 0:c.model.metadata.toJSON(),i=r.path;if(!c||"code"!==c.model.type)return;let u;const b=c.editor,m=b.getSelection(),{start:g,end:p}=m;if(g.column!==p.column||g.line!==p.line){const e=b.getOffsetAt(m.start),t=b.getOffsetAt(m.end);u=b.model.value.text.substring(e,t)}else{const e=b.getCursorPosition(),t=b.model.value.text.split("\n");let l=m.start.line;for(;l0,s=0,c=s+1;for(;;){u=t.slice(s,c).join("\n");const d=await(null===(n=null===(o=a.context.sessionContext.session)||void 0===o?void 0:o.kernel)||void 0===n?void 0:n.requestIsComplete({code:u+"\n\n"}));if("complete"===(null==d?void 0:d.content.status)){if(l{var t;const n=null===(t=o.currentWidget)||void 0===t?void 0:t.content.activeCell;if(null==n)return;const l=n.outputArea.outputTracker.currentWidget;if(null==l)return;const a=l.node.getElementsByClassName("jp-OutputArea-output");a.length>0&&function(e){const t=window.getSelection();if(null==t)return;const o=[];for(let e=0;et.addRange(e)))}(a[0])}}),e.contextMenu.addItem({command:I.copyToClipboard,selector:".jp-OutputArea-child",rank:0})},requires:[_.ITranslator,m.INotebookTracker],autoStart:!0},q=[M,B,D,P,j,L,W,F,E,K,U,H];function V(e,t,o){const n=e.currentWidget;return!1!==o.activate&&n&&t.activateById(n.id),n}var $;!function(e){e.createConsole=function(e,t,o){const n={path:t.context.path,preferredLanguage:t.context.model.defaultKernelLanguage,activate:o,ref:t.id,insertMode:"split-bottom"};return e.execute("console:create",n)},e.isEnabled=function(e,t){return null!==t.currentWidget&&t.currentWidget===e.currentWidget},e.isEnabledAndSingleSelected=function(t,o){if(!e.isEnabled(t,o))return!1;const{content:n}=o.currentWidget,l=n.activeCellIndex;for(let e=0;e{if(this._cell||(this._cell=this._notebook.content.widgets[this._index]),!this._cell||"code"!==this._cell.model.type)return void this.dispose();const e=this._cell.cloneOutputArea();this.addWidget(e)}))}get index(){return this._cell?h.ArrayExt.findFirstIndex(this._notebook.content.widgets,(e=>e===this._cell)):this._index}get path(){return this._notebook.context.path}}e.ClonedOutputArea=t}($||($={}))}}]); +//# sourceMappingURL=4875.375150e.js.map \ No newline at end of file diff --git a/_static/build/4875.375150e.js.map b/_static/build/4875.375150e.js.map new file mode 100644 index 0000000..e3eb0fe --- /dev/null +++ b/_static/build/4875.375150e.js.map @@ -0,0 +1 @@ +{"version":3,"file":"4875.375150e.js","mappings":"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","sources":["webpack://_JUPYTERLAB.CORE_OUTPUT/../src/nboutput.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/index.ts"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/_static/build/489.b981dea.js b/_static/build/489.b981dea.js new file mode 100644 index 0000000..f87fcec --- /dev/null +++ b/_static/build/489.b981dea.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[489],{36130:(e,n,t)=>{t.d(n,{Z:()=>s});var a=t(34663),r=t.n(a),o=t(7638),c=t.n(o)()(r());c.push([e.id,".cm-s-elegant span.cm-number, .cm-s-elegant span.cm-string, .cm-s-elegant span.cm-atom { color: #762; }\n.cm-s-elegant span.cm-comment { color: #262; font-style: italic; line-height: 1em; }\n.cm-s-elegant span.cm-meta { color: #555; font-style: italic; line-height: 1em; }\n.cm-s-elegant span.cm-variable { color: black; }\n.cm-s-elegant span.cm-variable-2 { color: #b11; }\n.cm-s-elegant span.cm-qualifier { color: #555; }\n.cm-s-elegant span.cm-keyword { color: #730; }\n.cm-s-elegant span.cm-builtin { color: #30a; }\n.cm-s-elegant span.cm-link { color: #762; }\n.cm-s-elegant span.cm-error { background-color: #fdd; }\n\n.cm-s-elegant .CodeMirror-activeline-background { background: #e8f2ff; }\n.cm-s-elegant .CodeMirror-matchingbracket { outline:1px solid grey; color:black !important; }\n","",{version:3,sources:["webpack://./../node_modules/codemirror/theme/elegant.css"],names:[],mappings:"AAAA,yFAAyF,WAAW,EAAE;AACtG,gCAAgC,WAAW,EAAE,kBAAkB,EAAE,gBAAgB,EAAE;AACnF,6BAA6B,WAAW,EAAE,kBAAkB,EAAE,gBAAgB,EAAE;AAChF,iCAAiC,YAAY,EAAE;AAC/C,mCAAmC,WAAW,EAAE;AAChD,kCAAkC,WAAW,EAAE;AAC/C,gCAAgC,WAAW,EAAE;AAC7C,gCAAgC,WAAW,EAAE;AAC7C,6BAA6B,WAAW,EAAE;AAC1C,8BAA8B,sBAAsB,EAAE;;AAEtD,kDAAkD,mBAAmB,EAAE;AACvE,4CAA4C,sBAAsB,EAAE,sBAAsB,EAAE",sourcesContent:[".cm-s-elegant span.cm-number, .cm-s-elegant span.cm-string, .cm-s-elegant span.cm-atom { color: #762; }\n.cm-s-elegant span.cm-comment { color: #262; font-style: italic; line-height: 1em; }\n.cm-s-elegant span.cm-meta { color: #555; font-style: italic; line-height: 1em; }\n.cm-s-elegant span.cm-variable { color: black; }\n.cm-s-elegant span.cm-variable-2 { color: #b11; }\n.cm-s-elegant span.cm-qualifier { color: #555; }\n.cm-s-elegant span.cm-keyword { color: #730; }\n.cm-s-elegant span.cm-builtin { color: #30a; }\n.cm-s-elegant span.cm-link { color: #762; }\n.cm-s-elegant span.cm-error { background-color: #fdd; }\n\n.cm-s-elegant .CodeMirror-activeline-background { background: #e8f2ff; }\n.cm-s-elegant .CodeMirror-matchingbracket { outline:1px solid grey; color:black !important; }\n"],sourceRoot:""}]);const s=c},7638:e=>{e.exports=function(e){var n=[];return n.toString=function(){return this.map((function(n){var t="",a=void 0!==n[5];return n[4]&&(t+="@supports (".concat(n[4],") {")),n[2]&&(t+="@media ".concat(n[2]," {")),a&&(t+="@layer".concat(n[5].length>0?" ".concat(n[5]):""," {")),t+=e(n),a&&(t+="}"),n[2]&&(t+="}"),n[4]&&(t+="}"),t})).join("")},n.i=function(e,t,a,r,o){"string"==typeof e&&(e=[[null,e,void 0]]);var c={};if(a)for(var s=0;s0?" ".concat(A[5]):""," {").concat(A[1],"}")),A[5]=o),t&&(A[2]?(A[1]="@media ".concat(A[2]," {").concat(A[1],"}"),A[2]=t):A[2]=t),r&&(A[4]?(A[1]="@supports (".concat(A[4],") {").concat(A[1],"}"),A[4]=r):A[4]="".concat(r)),n.push(A))}},n}},34663:e=>{e.exports=function(e){var n=e[1],t=e[3];if(!t)return n;if("function"==typeof btoa){var a=btoa(unescape(encodeURIComponent(JSON.stringify(t)))),r="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(a),o="/*# ".concat(r," */"),c=t.sources.map((function(e){return"/*# sourceURL=".concat(t.sourceRoot||"").concat(e," */")}));return[n].concat(c).concat([o]).join("\n")}return[n].join("\n")}},30489:(e,n,t)=>{t.r(n),t.d(n,{default:()=>v});var a=t(1892),r=t.n(a),o=t(95760),c=t.n(o),s=t(38311),i=t.n(s),l=t(58192),A=t.n(l),m=t(38060),u=t.n(m),p=t(54865),d=t.n(p),f=t(36130),g={};g.styleTagTransform=d(),g.setAttributes=A(),g.insert=i().bind(null,"head"),g.domAPI=c(),g.insertStyleElement=u(),r()(f.Z,g);const v=f.Z&&f.Z.locals?f.Z.locals:void 0},1892:e=>{var n=[];function t(e){for(var t=-1,a=0;a{var n={};e.exports=function(e,t){var a=function(e){if(void 0===n[e]){var t=document.querySelector(e);if(window.HTMLIFrameElement&&t instanceof window.HTMLIFrameElement)try{t=t.contentDocument.head}catch(e){t=null}n[e]=t}return n[e]}(e);if(!a)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");a.appendChild(t)}},38060:e=>{e.exports=function(e){var n=document.createElement("style");return e.setAttributes(n,e.attributes),e.insert(n,e.options),n}},58192:(e,n,t)=>{e.exports=function(e){var n=t.nc;n&&e.setAttribute("nonce",n)}},95760:e=>{e.exports=function(e){var n=e.insertStyleElement(e);return{update:function(t){!function(e,n,t){var a="";t.supports&&(a+="@supports (".concat(t.supports,") {")),t.media&&(a+="@media ".concat(t.media," {"));var r=void 0!==t.layer;r&&(a+="@layer".concat(t.layer.length>0?" ".concat(t.layer):""," {")),a+=t.css,r&&(a+="}"),t.media&&(a+="}"),t.supports&&(a+="}");var o=t.sourceMap;o&&"undefined"!=typeof btoa&&(a+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(o))))," */")),n.styleTagTransform(a,e,n.options)}(n,e,t)},remove:function(){!function(e){if(null===e.parentNode)return!1;e.parentNode.removeChild(e)}(n)}}}},54865:e=>{e.exports=function(e,n){if(n.styleSheet)n.styleSheet.cssText=e;else{for(;n.firstChild;)n.removeChild(n.firstChild);n.appendChild(document.createTextNode(e))}}}}]); +//# sourceMappingURL=489.b981dea.js.map \ No newline at end of file diff --git a/_static/build/489.b981dea.js.map b/_static/build/489.b981dea.js.map new file mode 100644 index 0000000..03b8fed --- /dev/null +++ b/_static/build/489.b981dea.js.map @@ -0,0 +1 @@ +{"version":3,"file":"489.b981dea.js","mappings":"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","sources":["webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/theme/elegant.css","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/css-loader/dist/runtime/api.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/css-loader/dist/runtime/sourceMaps.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/theme/elegant.css?6e75","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/insertBySelector.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/insertStyleElement.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/styleDomAPI.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/styleTagTransform.js"],"sourcesContent":["// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".cm-s-elegant span.cm-number, .cm-s-elegant span.cm-string, .cm-s-elegant span.cm-atom { color: #762; }\\n.cm-s-elegant span.cm-comment { color: #262; font-style: italic; line-height: 1em; }\\n.cm-s-elegant span.cm-meta { color: #555; font-style: italic; line-height: 1em; }\\n.cm-s-elegant span.cm-variable { color: black; }\\n.cm-s-elegant span.cm-variable-2 { color: #b11; }\\n.cm-s-elegant span.cm-qualifier { color: #555; }\\n.cm-s-elegant span.cm-keyword { color: #730; }\\n.cm-s-elegant span.cm-builtin { color: #30a; }\\n.cm-s-elegant span.cm-link { color: #762; }\\n.cm-s-elegant span.cm-error { background-color: #fdd; }\\n\\n.cm-s-elegant .CodeMirror-activeline-background { background: #e8f2ff; }\\n.cm-s-elegant .CodeMirror-matchingbracket { outline:1px solid grey; color:black !important; }\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./../node_modules/codemirror/theme/elegant.css\"],\"names\":[],\"mappings\":\"AAAA,yFAAyF,WAAW,EAAE;AACtG,gCAAgC,WAAW,EAAE,kBAAkB,EAAE,gBAAgB,EAAE;AACnF,6BAA6B,WAAW,EAAE,kBAAkB,EAAE,gBAAgB,EAAE;AAChF,iCAAiC,YAAY,EAAE;AAC/C,mCAAmC,WAAW,EAAE;AAChD,kCAAkC,WAAW,EAAE;AAC/C,gCAAgC,WAAW,EAAE;AAC7C,gCAAgC,WAAW,EAAE;AAC7C,6BAA6B,WAAW,EAAE;AAC1C,8BAA8B,sBAAsB,EAAE;;AAEtD,kDAAkD,mBAAmB,EAAE;AACvE,4CAA4C,sBAAsB,EAAE,sBAAsB,EAAE\",\"sourcesContent\":[\".cm-s-elegant span.cm-number, .cm-s-elegant span.cm-string, .cm-s-elegant span.cm-atom { color: #762; }\\n.cm-s-elegant span.cm-comment { color: #262; font-style: italic; line-height: 1em; }\\n.cm-s-elegant span.cm-meta { color: #555; font-style: italic; line-height: 1em; }\\n.cm-s-elegant span.cm-variable { color: black; }\\n.cm-s-elegant span.cm-variable-2 { color: #b11; }\\n.cm-s-elegant span.cm-qualifier { color: #555; }\\n.cm-s-elegant span.cm-keyword { color: #730; }\\n.cm-s-elegant span.cm-builtin { color: #30a; }\\n.cm-s-elegant span.cm-link { color: #762; }\\n.cm-s-elegant span.cm-error { background-color: #fdd; }\\n\\n.cm-s-elegant .CodeMirror-activeline-background { background: #e8f2ff; }\\n.cm-s-elegant .CodeMirror-matchingbracket { outline:1px solid grey; color:black !important; }\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\nmodule.exports = function (cssWithMappingToString) {\n var list = [];\n\n // return the list of modules as css string\n list.toString = function toString() {\n return this.map(function (item) {\n var content = \"\";\n var needLayer = typeof item[5] !== \"undefined\";\n if (item[4]) {\n content += \"@supports (\".concat(item[4], \") {\");\n }\n if (item[2]) {\n content += \"@media \".concat(item[2], \" {\");\n }\n if (needLayer) {\n content += \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\");\n }\n content += cssWithMappingToString(item);\n if (needLayer) {\n content += \"}\";\n }\n if (item[2]) {\n content += \"}\";\n }\n if (item[4]) {\n content += \"}\";\n }\n return content;\n }).join(\"\");\n };\n\n // import a list of modules into the list\n list.i = function i(modules, media, dedupe, supports, layer) {\n if (typeof modules === \"string\") {\n modules = [[null, modules, undefined]];\n }\n var alreadyImportedModules = {};\n if (dedupe) {\n for (var k = 0; k < this.length; k++) {\n var id = this[k][0];\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n for (var _k = 0; _k < modules.length; _k++) {\n var item = [].concat(modules[_k]);\n if (dedupe && alreadyImportedModules[item[0]]) {\n continue;\n }\n if (typeof layer !== \"undefined\") {\n if (typeof item[5] === \"undefined\") {\n item[5] = layer;\n } else {\n item[1] = \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\").concat(item[1], \"}\");\n item[5] = layer;\n }\n }\n if (media) {\n if (!item[2]) {\n item[2] = media;\n } else {\n item[1] = \"@media \".concat(item[2], \" {\").concat(item[1], \"}\");\n item[2] = media;\n }\n }\n if (supports) {\n if (!item[4]) {\n item[4] = \"\".concat(supports);\n } else {\n item[1] = \"@supports (\".concat(item[4], \") {\").concat(item[1], \"}\");\n item[4] = supports;\n }\n }\n list.push(item);\n }\n };\n return list;\n};","\"use strict\";\n\nmodule.exports = function (item) {\n var content = item[1];\n var cssMapping = item[3];\n if (!cssMapping) {\n return content;\n }\n if (typeof btoa === \"function\") {\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(cssMapping))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n var sourceMapping = \"/*# \".concat(data, \" */\");\n var sourceURLs = cssMapping.sources.map(function (source) {\n return \"/*# sourceURL=\".concat(cssMapping.sourceRoot || \"\").concat(source, \" */\");\n });\n return [content].concat(sourceURLs).concat([sourceMapping]).join(\"\\n\");\n }\n return [content].join(\"\\n\");\n};","\n import API from \"!../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../css-loader/dist/cjs.js!./elegant.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../css-loader/dist/cjs.js!./elegant.css\";\n export default content && content.locals ? content.locals : undefined;\n","\"use strict\";\n\nvar stylesInDOM = [];\n\nfunction getIndexByIdentifier(identifier) {\n var result = -1;\n\n for (var i = 0; i < stylesInDOM.length; i++) {\n if (stylesInDOM[i].identifier === identifier) {\n result = i;\n break;\n }\n }\n\n return result;\n}\n\nfunction modulesToDom(list, options) {\n var idCountMap = {};\n var identifiers = [];\n\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var count = idCountMap[id] || 0;\n var identifier = \"\".concat(id, \" \").concat(count);\n idCountMap[id] = count + 1;\n var indexByIdentifier = getIndexByIdentifier(identifier);\n var obj = {\n css: item[1],\n media: item[2],\n sourceMap: item[3],\n supports: item[4],\n layer: item[5]\n };\n\n if (indexByIdentifier !== -1) {\n stylesInDOM[indexByIdentifier].references++;\n stylesInDOM[indexByIdentifier].updater(obj);\n } else {\n var updater = addElementStyle(obj, options);\n options.byIndex = i;\n stylesInDOM.splice(i, 0, {\n identifier: identifier,\n updater: updater,\n references: 1\n });\n }\n\n identifiers.push(identifier);\n }\n\n return identifiers;\n}\n\nfunction addElementStyle(obj, options) {\n var api = options.domAPI(options);\n api.update(obj);\n\n var updater = function updater(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap && newObj.supports === obj.supports && newObj.layer === obj.layer) {\n return;\n }\n\n api.update(obj = newObj);\n } else {\n api.remove();\n }\n };\n\n return updater;\n}\n\nmodule.exports = function (list, options) {\n options = options || {};\n list = list || [];\n var lastIdentifiers = modulesToDom(list, options);\n return function update(newList) {\n newList = newList || [];\n\n for (var i = 0; i < lastIdentifiers.length; i++) {\n var identifier = lastIdentifiers[i];\n var index = getIndexByIdentifier(identifier);\n stylesInDOM[index].references--;\n }\n\n var newLastIdentifiers = modulesToDom(newList, options);\n\n for (var _i = 0; _i < lastIdentifiers.length; _i++) {\n var _identifier = lastIdentifiers[_i];\n\n var _index = getIndexByIdentifier(_identifier);\n\n if (stylesInDOM[_index].references === 0) {\n stylesInDOM[_index].updater();\n\n stylesInDOM.splice(_index, 1);\n }\n }\n\n lastIdentifiers = newLastIdentifiers;\n };\n};","\"use strict\";\n\nvar memo = {};\n/* istanbul ignore next */\n\nfunction getTarget(target) {\n if (typeof memo[target] === \"undefined\") {\n var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself\n\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n\n memo[target] = styleTarget;\n }\n\n return memo[target];\n}\n/* istanbul ignore next */\n\n\nfunction insertBySelector(insert, style) {\n var target = getTarget(insert);\n\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n\n target.appendChild(style);\n}\n\nmodule.exports = insertBySelector;","\"use strict\";\n\n/* istanbul ignore next */\nfunction insertStyleElement(options) {\n var element = document.createElement(\"style\");\n options.setAttributes(element, options.attributes);\n options.insert(element, options.options);\n return element;\n}\n\nmodule.exports = insertStyleElement;","\"use strict\";\n\n/* istanbul ignore next */\nfunction setAttributesWithoutAttributes(styleElement) {\n var nonce = typeof __webpack_nonce__ !== \"undefined\" ? __webpack_nonce__ : null;\n\n if (nonce) {\n styleElement.setAttribute(\"nonce\", nonce);\n }\n}\n\nmodule.exports = setAttributesWithoutAttributes;","\"use strict\";\n\n/* istanbul ignore next */\nfunction apply(styleElement, options, obj) {\n var css = \"\";\n\n if (obj.supports) {\n css += \"@supports (\".concat(obj.supports, \") {\");\n }\n\n if (obj.media) {\n css += \"@media \".concat(obj.media, \" {\");\n }\n\n var needLayer = typeof obj.layer !== \"undefined\";\n\n if (needLayer) {\n css += \"@layer\".concat(obj.layer.length > 0 ? \" \".concat(obj.layer) : \"\", \" {\");\n }\n\n css += obj.css;\n\n if (needLayer) {\n css += \"}\";\n }\n\n if (obj.media) {\n css += \"}\";\n }\n\n if (obj.supports) {\n css += \"}\";\n }\n\n var sourceMap = obj.sourceMap;\n\n if (sourceMap && typeof btoa !== \"undefined\") {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n } // For old IE\n\n /* istanbul ignore if */\n\n\n options.styleTagTransform(css, styleElement, options.options);\n}\n\nfunction removeStyleElement(styleElement) {\n // istanbul ignore if\n if (styleElement.parentNode === null) {\n return false;\n }\n\n styleElement.parentNode.removeChild(styleElement);\n}\n/* istanbul ignore next */\n\n\nfunction domAPI(options) {\n var styleElement = options.insertStyleElement(options);\n return {\n update: function update(obj) {\n apply(styleElement, options, obj);\n },\n remove: function remove() {\n removeStyleElement(styleElement);\n }\n };\n}\n\nmodule.exports = domAPI;","\"use strict\";\n\n/* istanbul ignore next */\nfunction styleTagTransform(css, styleElement) {\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = css;\n } else {\n while (styleElement.firstChild) {\n styleElement.removeChild(styleElement.firstChild);\n }\n\n styleElement.appendChild(document.createTextNode(css));\n }\n}\n\nmodule.exports = styleTagTransform;"],"names":["___CSS_LOADER_EXPORT___","push","module","id","exports","cssWithMappingToString","list","toString","this","map","item","content","needLayer","concat","length","join","i","modules","media","dedupe","supports","layer","undefined","alreadyImportedModules","k","_k","cssMapping","btoa","base64","unescape","encodeURIComponent","JSON","stringify","data","sourceMapping","sourceURLs","sources","source","sourceRoot","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","stylesInDOM","getIndexByIdentifier","identifier","result","modulesToDom","idCountMap","identifiers","base","count","indexByIdentifier","obj","css","sourceMap","references","updater","addElementStyle","byIndex","splice","api","update","newObj","remove","lastIdentifiers","newList","index","newLastIdentifiers","_i","_index","memo","style","target","styleTarget","document","querySelector","window","HTMLIFrameElement","contentDocument","head","e","getTarget","Error","appendChild","element","createElement","attributes","styleElement","nonce","setAttribute","apply","parentNode","removeChild","removeStyleElement","styleSheet","cssText","firstChild","createTextNode"],"sourceRoot":""} \ No newline at end of file diff --git a/_static/build/490.c2624d4.js b/_static/build/490.c2624d4.js new file mode 100644 index 0000000..534664d --- /dev/null +++ b/_static/build/490.c2624d4.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[490],{80490:(e,t,a)=>{a.r(t),a.d(t,{RenderedPDF:()=>d,default:()=>c,rendererFactory:()=>r});var s=a(26169),o=a(43231),i=a(94519);const n="application/pdf";class d extends i.Widget{constructor(){super(),this._base64="",this._disposable=null,this._ready=new s.PromiseDelegate,this.addClass("jp-PDFContainer");const e=document.createElement("iframe");this.node.appendChild(e),e.onload=()=>{const t=e.contentWindow.document.createElement("body");t.style.margin="0px",e.contentWindow.document.body=t,this._object=e.contentWindow.document.createElement("object"),window.safari||(this._object.type=n),this._object.width="100%",this._object.height="100%",t.appendChild(this._object),this._ready.resolve(void 0)}}async renderModel(e){await this._ready.promise;const t=e.data[n];if(!t||t.length===this._base64.length&&t===this._base64){if(e.metadata.fragment&&this._object.data){const t=this._object.data;this._object.data=`${t.split("#")[0]}${e.metadata.fragment}`}return l.IS_FIREFOX&&(this._object.data=this._object.data),Promise.resolve(void 0)}this._base64=t;const a=l.b64toBlob(t,n);this._disposable&&this._disposable.dispose();let s=URL.createObjectURL(a);e.metadata.fragment&&(s+=e.metadata.fragment),this._object.data=s,this._disposable=new o.DisposableDelegate((()=>{try{URL.revokeObjectURL(s)}catch(e){}}))}onBeforeHide(){l.IS_FIREFOX&&(this._object.data=this._object.data.split("#")[0])}dispose(){this._disposable&&this._disposable.dispose(),super.dispose()}}const r={safe:!1,mimeTypes:[n],defaultRank:100,createRenderer:e=>new d},c=[{id:"@jupyterlab/pdf-extension:factory",rendererFactory:r,dataType:"string",documentWidgetFactoryOptions:{name:"PDF",modelName:"base64",primaryFileType:"PDF",fileTypes:["PDF"],defaultFor:["PDF"]}}];var l;!function(e){e.IS_FIREFOX=/Firefox/.test(navigator.userAgent),e.b64toBlob=function(e,t="",a=512){const s=atob(e),o=[];for(let e=0;e{i.r(t),i.d(t,{ISingleWidgetShell:()=>p,SingleWidgetApp:()=>u,SingleWidgetShell:()=>d});var n=i(67504),s=i(61280),g=i(69207),a=i(55941),o=i(43892),r=i(26169),l=i(70942),h=i(94519);const p=new r.Token("@jupyterlite/application:ISingleWidgetShell");class d extends h.Widget{constructor(){super(),this._currentChanged=new l.Signal(this),this.id="main";const e=new h.PanelLayout;this._main=new h.Panel,this._main.id="single-widget-panel",e.addWidget(this._main),this.layout=e}get currentChanged(){return this._currentChanged}get currentWidget(){var e;return null!==(e=this._main.widgets[0])&&void 0!==e?e:null}activateById(e){const t=(0,o.find)(this.widgets("main"),(t=>t.id===e));t&&t.activate()}add(e,t,i){if("main"===t||void 0===t){if(this._main.widgets.length>0)return;this._main.addWidget(e),this._main.update(),this._currentChanged.emit(void 0)}}widgets(e){if("main"===(null!=e?e:"main"))return(0,o.iter)(this._main.widgets);throw new Error(`Invalid area: ${e}`)}}class u extends n.JupyterFrontEnd{constructor(e={shell:new d}){var t,i;if(super({...e,shell:null!==(t=e.shell)&&void 0!==t?t:new d}),this.name="Single Widget Application",this.namespace=this.name,this.status=new g.J(this),this.version=null!==(i=a.PageConfig.getOption("appVersion"))&&void 0!==i?i:"unknown",e.mimeExtensions)for(const t of(0,s.as)(e.mimeExtensions))this.registerPlugin(t)}get paths(){return{urls:{base:a.PageConfig.getOption("baseUrl"),notFound:a.PageConfig.getOption("notFoundUrl"),app:a.PageConfig.getOption("appUrl"),static:a.PageConfig.getOption("staticUrl"),settings:a.PageConfig.getOption("settingsUrl"),themes:a.PageConfig.getOption("themesUrl"),doc:a.PageConfig.getOption("docUrl"),translations:a.PageConfig.getOption("translationsApiUrl"),hubHost:a.PageConfig.getOption("hubHost")||void 0,hubPrefix:a.PageConfig.getOption("hubPrefix")||void 0,hubUser:a.PageConfig.getOption("hubUser")||void 0,hubServerName:a.PageConfig.getOption("hubServerName")||void 0},directories:{appSettings:a.PageConfig.getOption("appSettingsDir"),schemas:a.PageConfig.getOption("schemasDir"),static:a.PageConfig.getOption("staticDir"),templates:a.PageConfig.getOption("templatesDir"),themes:a.PageConfig.getOption("themesDir"),userSettings:a.PageConfig.getOption("userSettingsDir"),serverRoot:a.PageConfig.getOption("serverRoot"),workspaces:a.PageConfig.getOption("workspacesDir")}}}registerPluginModule(e){let t=e.default;Object.prototype.hasOwnProperty.call(e,"__esModule")||(t=e),Array.isArray(t)||(t=[t]),t.forEach((e=>{try{this.registerPlugin(e)}catch(e){console.error(e)}}))}registerPluginModules(e){e.forEach((e=>{this.registerPluginModule(e)}))}}}}]); +//# sourceMappingURL=4905.667bf33.js.map \ No newline at end of file diff --git a/_static/build/4905.667bf33.js.map b/_static/build/4905.667bf33.js.map new file mode 100644 index 0000000..9c23cb0 --- /dev/null +++ b/_static/build/4905.667bf33.js.map @@ -0,0 +1 @@ +{"version":3,"file":"4905.667bf33.js","mappings":"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","sources":["webpack://_JUPYTERLAB.CORE_OUTPUT/../packages/application/src/singleWidgetShell.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../packages/application/src/singleWidgetApp.ts"],"sourcesContent":["// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n\nimport { JupyterFrontEnd } from '@jupyterlab/application';\n\nimport { DocumentRegistry } from '@jupyterlab/docregistry';\n\nimport { find, IIterator, iter } from '@lumino/algorithm';\n\nimport { Token } from '@lumino/coreutils';\n\nimport { ISignal, Signal } from '@lumino/signaling';\n\nimport { Panel, Widget, PanelLayout } from '@lumino/widgets';\n\n/**\n * The single widget application shell token.\n */\nexport const ISingleWidgetShell = new Token(\n '@jupyterlite/application:ISingleWidgetShell'\n);\n\n/**\n * The single widget application shell interface.\n */\nexport interface ISingleWidgetShell extends SingleWidgetShell {}\n\n/**\n * The application shell.\n */\nexport class SingleWidgetShell extends Widget implements JupyterFrontEnd.IShell {\n constructor() {\n super();\n this.id = 'main';\n\n const rootLayout = new PanelLayout();\n this._main = new Panel();\n this._main.id = 'single-widget-panel';\n rootLayout.addWidget(this._main);\n this.layout = rootLayout;\n }\n\n /**\n * A signal emitted when the current widget changes.\n */\n get currentChanged(): ISignal {\n return this._currentChanged;\n }\n\n /**\n * The current widget in the shell's main area.\n */\n get currentWidget(): Widget | null {\n return this._main.widgets[0] ?? null;\n }\n\n /**\n * Activate a widget in its area.\n */\n activateById(id: string): void {\n const widget = find(this.widgets('main'), (w) => w.id === id);\n if (widget) {\n widget.activate();\n }\n }\n\n /**\n * Add a widget to the application shell.\n *\n * @param widget - The widget being added.\n *\n * @param area - Optional region in the shell into which the widget should\n * be added.\n *\n * @param options - Optional open options.\n *\n */\n add(\n widget: Widget,\n area?: Shell.Area,\n options?: DocumentRegistry.IOpenOptions\n ): void {\n if (area === 'main' || area === undefined) {\n if (this._main.widgets.length > 0) {\n // do not add the widget if there is already one\n return;\n }\n this._main.addWidget(widget);\n this._main.update();\n this._currentChanged.emit(void 0);\n }\n }\n\n /**\n * Return the list of widgets for the given area.\n *\n * @param area The area\n */\n widgets(area: Shell.Area): IIterator {\n switch (area ?? 'main') {\n case 'main':\n return iter(this._main.widgets);\n default:\n throw new Error(`Invalid area: ${area}`);\n }\n }\n\n private _main: Panel;\n private _currentChanged = new Signal(this);\n}\n\n/**\n * A namespace for Shell statics\n */\nexport namespace Shell {\n /**\n * The areas of the application shell where widgets can reside.\n */\n export type Area = 'main';\n}\n","// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n\nimport { JupyterFrontEnd, JupyterFrontEndPlugin } from '@jupyterlab/application';\n\nimport { createRendermimePlugins } from '@jupyterlab/application/lib/mimerenderers';\n\nimport { LabStatus } from '@jupyterlab/application/lib/status';\n\nimport { PageConfig } from '@jupyterlab/coreutils';\n\nimport { IRenderMime } from '@jupyterlab/rendermime-interfaces';\n\nimport { ISingleWidgetShell, SingleWidgetShell } from './singleWidgetShell';\n\n/**\n * App is the main application class. It is instantiated once and shared.\n */\nexport class SingleWidgetApp extends JupyterFrontEnd {\n /**\n * Construct a new SingleWidgetApp object.\n *\n * @param options The instantiation options for an application.\n */\n constructor(options: SingleWidgetApp.IOptions = { shell: new SingleWidgetShell() }) {\n super({\n ...options,\n shell: options.shell ?? new SingleWidgetShell(),\n });\n if (options.mimeExtensions) {\n for (const plugin of createRendermimePlugins(options.mimeExtensions)) {\n this.registerPlugin(plugin);\n }\n }\n }\n\n /**\n * The name of the application.\n */\n readonly name = 'Single Widget Application';\n\n /**\n * A namespace/prefix plugins may use to denote their provenance.\n */\n readonly namespace = this.name;\n\n /**\n * The application busy and dirty status signals and flags.\n */\n readonly status = new LabStatus(this);\n\n /**\n * The version of the application.\n */\n readonly version = PageConfig.getOption('appVersion') ?? 'unknown';\n\n /**\n * The JupyterLab application paths dictionary.\n */\n get paths(): JupyterFrontEnd.IPaths {\n return {\n urls: {\n base: PageConfig.getOption('baseUrl'),\n notFound: PageConfig.getOption('notFoundUrl'),\n app: PageConfig.getOption('appUrl'),\n static: PageConfig.getOption('staticUrl'),\n settings: PageConfig.getOption('settingsUrl'),\n themes: PageConfig.getOption('themesUrl'),\n doc: PageConfig.getOption('docUrl'),\n translations: PageConfig.getOption('translationsApiUrl'),\n hubHost: PageConfig.getOption('hubHost') || undefined,\n hubPrefix: PageConfig.getOption('hubPrefix') || undefined,\n hubUser: PageConfig.getOption('hubUser') || undefined,\n hubServerName: PageConfig.getOption('hubServerName') || undefined,\n },\n directories: {\n appSettings: PageConfig.getOption('appSettingsDir'),\n schemas: PageConfig.getOption('schemasDir'),\n static: PageConfig.getOption('staticDir'),\n templates: PageConfig.getOption('templatesDir'),\n themes: PageConfig.getOption('themesDir'),\n userSettings: PageConfig.getOption('userSettingsDir'),\n serverRoot: PageConfig.getOption('serverRoot'),\n workspaces: PageConfig.getOption('workspacesDir'),\n },\n };\n }\n\n /**\n * Register plugins from a plugin module.\n *\n * @param mod - The plugin module to register.\n */\n registerPluginModule(mod: SingleWidgetApp.IPluginModule): void {\n let data = mod.default;\n // Handle commonjs exports.\n if (!Object.prototype.hasOwnProperty.call(mod, '__esModule')) {\n data = mod as any;\n }\n if (!Array.isArray(data)) {\n data = [data];\n }\n data.forEach((item) => {\n try {\n this.registerPlugin(item);\n } catch (error) {\n console.error(error);\n }\n });\n }\n\n /**\n * Register the plugins from multiple plugin modules.\n *\n * @param mods - The plugin modules to register.\n */\n registerPluginModules(mods: SingleWidgetApp.IPluginModule[]): void {\n mods.forEach((mod) => {\n this.registerPluginModule(mod);\n });\n }\n}\n\n/**\n * A namespace for App statics.\n */\nexport namespace SingleWidgetApp {\n /**\n * The instantiation options for an App application.\n */\n export interface IOptions\n extends JupyterFrontEnd.IOptions,\n Partial {}\n\n /**\n * The information about a Jupyter Notebook application.\n */\n export interface IInfo {\n /**\n * The mime renderer extensions.\n */\n readonly mimeExtensions: IRenderMime.IExtensionModule[];\n }\n\n /**\n * The interface for a module that exports a plugin or plugins as\n * the default value.\n */\n export interface IPluginModule {\n /**\n * The default export.\n */\n default: JupyterFrontEndPlugin | JupyterFrontEndPlugin[];\n }\n}\n"],"names":["ISingleWidgetShell","Token","SingleWidgetShell","Widget","constructor","super","_currentChanged","Signal","this","id","rootLayout","PanelLayout","_main","Panel","addWidget","layout","currentChanged","currentWidget","widgets","activateById","widget","find","w","activate","add","area","options","undefined","length","update","emit","iter","Error","SingleWidgetApp","JupyterFrontEnd","shell","name","namespace","status","version","PageConfig","mimeExtensions","plugin","registerPlugin","paths","urls","base","notFound","app","static","settings","themes","doc","translations","hubHost","hubPrefix","hubUser","hubServerName","directories","appSettings","schemas","templates","userSettings","serverRoot","workspaces","registerPluginModule","mod","data","default","Object","prototype","hasOwnProperty","call","Array","isArray","forEach","item","error","console","registerPluginModules","mods"],"sourceRoot":""} \ No newline at end of file diff --git a/_static/build/4931.c1705a1.js b/_static/build/4931.c1705a1.js new file mode 100644 index 0000000..98e9609 --- /dev/null +++ b/_static/build/4931.c1705a1.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[4931,8732],{24931:(e,t,s)=>{s.r(t),s.d(t,{default:()=>O});var n=s(55941),r=s(58272),a=s(86580),o=s(45853),i=s(69471),c=s(62155),u=s(20313),l=s(2382),p=s(30176),g=s(29440),y=s.n(g);const w={id:"@jupyterlite/server-extension:localforage",autoStart:!0,provides:p.ILocalForage,activate:e=>({localforage:y()})},v={id:"@jupyterlite/server-extension:localforage-memory-storage",autoStart:!0,requires:[p.ILocalForage],activate:async(e,t)=>{JSON.parse(n.PageConfig.getOption("enableMemoryStorage")||"false")&&(console.warn("Memory storage fallback enabled: contents and settings may not be saved"),await(0,p.ensureMemoryStorage)(t.localforage))}},d={id:"@jupyterlite/server-extension:contents",requires:[p.ILocalForage],autoStart:!0,provides:r.IContents,activate:(e,t)=>{const s=n.PageConfig.getOption("contentsStorageName"),a=JSON.parse(n.PageConfig.getOption("contentsStorageDrivers")||"null"),{localforage:o}=t,i=new r.Contents({storageName:s,storageDrivers:a,localforage:o});return e.started.then((()=>i.initialize().catch(console.warn))),i}},S={id:"@jupyterlite/server-extension:contents-routes",autoStart:!0,requires:[r.IContents],activate:(e,t)=>{e.router.get("/api/contents/(.+)/checkpoints",(async(e,s)=>{const n=await t.listCheckpoints(s);return new Response(JSON.stringify(n))})),e.router.post("/api/contents/(.+)/checkpoints/(.*)",(async(e,s,n)=>{const r=await t.restoreCheckpoint(s,n);return new Response(JSON.stringify(r),{status:204})})),e.router.post("/api/contents/(.+)/checkpoints",(async(e,s)=>{const n=await t.createCheckpoint(s);return new Response(JSON.stringify(n),{status:201})})),e.router.delete("/api/contents/(.+)/checkpoints/(.*)",(async(e,s,n)=>{const r=await t.deleteCheckpoint(s,n);return new Response(JSON.stringify(r),{status:204})})),e.router.get("/api/contents(.*)",(async(e,s)=>{var n;const r={content:"1"===(null===(n=e.query)||void 0===n?void 0:n.content)},a=await t.get(s,r);return a?new Response(JSON.stringify(a)):new Response(null,{status:404})})),e.router.post("/api/contents(.*)",(async(e,s)=>{const n=e.body,r=null==n?void 0:n.copy_from;let a;return a=r?await t.copy(r,s):await t.newUntitled(n),a?new Response(JSON.stringify(a),{status:201}):new Response(null,{status:400})})),e.router.patch("/api/contents(.*)",(async(e,s)=>{var n,r;const a=null!==(r=null===(n=e.body)||void 0===n?void 0:n.path)&&void 0!==r?r:"";s="/"===s[0]?s.slice(1):s;const o=await t.rename(s,a);return new Response(JSON.stringify(o))})),e.router.put("/api/contents/(.+)",(async(e,s)=>{const n=e.body,r=await t.save(s,n);return new Response(JSON.stringify(r))})),e.router.delete("/api/contents/(.+)",(async(e,s)=>(await t.delete(s),new Response(null,{status:204}))))}},f={id:"@jupyterlite/server-extension:service-worker",autoStart:!0,provides:i.IServiceWorkerManager,activate:e=>new i.ServiceWorkerManager},O=[d,S,{id:"@jupyterlite/server-extension:emscripten-filesystem",autoStart:!0,optional:[i.IServiceWorkerManager],provides:r.IBroadcastChannelWrapper,activate:(e,t)=>{const{contents:s}=e.serviceManager,n=new r.BroadcastChannelWrapper({contents:s}),a="Kernel filesystem and JupyterLite contents";function o(e,t){t&&console.warn(t),e&&console.warn(e),t||e?console.warn(`${a} will NOT be synced`):console.info(`${a} will be synced`)}return t?t.ready.then((()=>{n.enable(),o()})).catch((e=>{o("JupyterLite ServiceWorker failed to become available",e)})):o("JupyterLite ServiceWorker not available"),n}},{id:"@jupyterlite/server-extension:kernels",autoStart:!0,provides:a.IKernels,requires:[a.IKernelSpecs],activate:(e,t)=>new a.Kernels({kernelspecs:t})},{id:"@jupyterlite/server-extension:kernels-routes",autoStart:!0,requires:[a.IKernels],activate:(e,t)=>{e.router.post("/api/kernels/(.*)/restart",(async(e,s)=>{const n=await t.restart(s);return new Response(JSON.stringify(n))})),e.router.delete("/api/kernels/(.*)",(async(e,s)=>{const n=await t.shutdown(s);return new Response(JSON.stringify(n),{status:204})}))}},{id:"@jupyterlite/server-extension:kernelspec",autoStart:!0,provides:a.IKernelSpecs,activate:e=>new a.KernelSpecs},{id:"@jupyterlite/server-extension:kernelspec-routes",autoStart:!0,requires:[a.IKernelSpecs],activate:(e,t)=>{e.router.get("/api/kernelspecs",(async e=>{const{specs:s}=t;if(!s)return new Response(null);const n={},r=s.kernelspecs;Object.keys(r).forEach((e=>{const t=r[e],{resources:s}=null!=t?t:{};n[e]={name:e,spec:t,resources:s}}));const a={default:s.default,kernelspecs:n};return new Response(JSON.stringify(a))}))}},{id:"@jupyterlite/server-extension:licenses",autoStart:!0,provides:o.ILicenses,activate:e=>new o.Licenses},{id:"@jupyterlite/server-extension:licenses-routes",autoStart:!0,requires:[o.ILicenses],activate(e,t){e.router.get("/api/licenses",(async e=>{const s=await t.get();return new Response(JSON.stringify(s))}))}},v,w,{id:"@jupyterlite/server-extension:nbconvert-routes",autoStart:!0,activate:e=>{e.router.get("/api/nbconvert",(async e=>new Response(JSON.stringify({}))))}},f,{id:"@jupyterlite/server-extension:sessions",autoStart:!0,provides:c.ISessions,requires:[a.IKernels],activate:(e,t)=>new c.Sessions({kernels:t})},{id:"@jupyterlite/server-extension:sessions-routes",autoStart:!0,requires:[c.ISessions],activate:(e,t)=>{e.router.get("/api/sessions/(.+)",(async(e,s)=>{const n=await t.get(s);return new Response(JSON.stringify(n),{status:200})})),e.router.get("/api/sessions",(async e=>{const s=await t.list();return new Response(JSON.stringify(s),{status:200})})),e.router.patch("/api/sessions(.*)",(async(e,s)=>{const n=e.body,r=await t.patch(n);return new Response(JSON.stringify(r),{status:200})})),e.router.delete("/api/sessions/(.+)",(async(e,s)=>(await t.shutdown(s),new Response(null,{status:204})))),e.router.post("/api/sessions",(async e=>{const s=e.body,n=await t.startNew(s);return new Response(JSON.stringify(n),{status:201})}))}},{id:"@jupyterlite/server-extension:settings",autoStart:!0,requires:[p.ILocalForage],provides:u.ISettings,activate:(e,t)=>{const s=n.PageConfig.getOption("settingsStorageName"),r=JSON.parse(n.PageConfig.getOption("settingsStorageDrivers")||"null"),{localforage:a}=t,o=new u.Settings({storageName:s,storageDrivers:r,localforage:a});return e.started.then((()=>o.initialize().catch(console.warn))),o}},{id:"@jupyterlite/server-extension:settings-routes",autoStart:!0,requires:[u.ISettings],activate:(e,t)=>{const s="/api/settings/((?:@([^/]+?)[/])?([^/]+?):([^:]+))$";e.router.get(s,(async(e,s)=>{const n=await t.get(s);return new Response(JSON.stringify(n))})),e.router.put(s,(async(e,s)=>{const n=e.body,{raw:r}=n;return await t.save(s,r),new Response(null,{status:204})})),e.router.get("/api/settings",(async e=>{const s=await t.getAll();return new Response(JSON.stringify(s))}))}},{id:"@jupyterlite/server-extension:translation",autoStart:!0,provides:l.ITranslation,activate:e=>{const t=new l.Translation;return e.router.get("/api/translations/?(.*)",(async(e,s)=>{const n=await t.get(s||"all");return new Response(JSON.stringify(n))})),t}},{id:"@jupyterlite/server-extension:translation-routes",autoStart:!0,requires:[l.ITranslation],activate:(e,t)=>{e.router.get("/api/translations/?(.*)",(async(e,s)=>{const n=await t.get(s||"all");return new Response(JSON.stringify(n))}))}}]}}]); +//# sourceMappingURL=4931.c1705a1.js.map \ No newline at end of file diff --git a/_static/build/4931.c1705a1.js.map b/_static/build/4931.c1705a1.js.map new file mode 100644 index 0000000..5012d4e --- /dev/null +++ b/_static/build/4931.c1705a1.js.map @@ -0,0 +1 @@ +{"version":3,"file":"4931.c1705a1.js","mappings":"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","sources":["webpack://_JUPYTERLAB.CORE_OUTPUT/../packages/server-extension/src/index.ts"],"sourcesContent":["// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n\nimport { PageConfig } from '@jupyterlab/coreutils';\n\nimport { Contents as ServerContents, KernelSpec } from '@jupyterlab/services';\n\nimport {\n BroadcastChannelWrapper,\n Contents,\n IContents,\n IBroadcastChannelWrapper,\n} from '@jupyterlite/contents';\n\nimport { IKernels, Kernels, IKernelSpecs, KernelSpecs } from '@jupyterlite/kernel';\n\nimport { ILicenses, Licenses } from '@jupyterlite/licenses';\n\nimport {\n JupyterLiteServer,\n JupyterLiteServerPlugin,\n Router,\n IServiceWorkerManager,\n ServiceWorkerManager,\n} from '@jupyterlite/server';\n\nimport { ISessions, Sessions } from '@jupyterlite/session';\n\nimport { ISettings, Settings } from '@jupyterlite/settings';\n\nimport { ITranslation, Translation } from '@jupyterlite/translation';\n\nimport { ILocalForage, ensureMemoryStorage } from '@jupyterlite/localforage';\n\nimport localforage from 'localforage';\n\n/**\n * The localforage plugin\n */\nconst localforagePlugin: JupyterLiteServerPlugin = {\n id: '@jupyterlite/server-extension:localforage',\n autoStart: true,\n provides: ILocalForage,\n activate: (app: JupyterLiteServer) => {\n return { localforage };\n },\n};\n\n/**\n * The volatile localforage memory plugin\n */\nconst localforageMemoryPlugin: JupyterLiteServerPlugin = {\n id: '@jupyterlite/server-extension:localforage-memory-storage',\n autoStart: true,\n requires: [ILocalForage],\n activate: async (app: JupyterLiteServer, forage: ILocalForage) => {\n if (JSON.parse(PageConfig.getOption('enableMemoryStorage') || 'false')) {\n console.warn(\n 'Memory storage fallback enabled: contents and settings may not be saved'\n );\n await ensureMemoryStorage(forage.localforage);\n }\n },\n};\n\n/**\n * The contents service plugin.\n */\nconst contentsPlugin: JupyterLiteServerPlugin = {\n id: '@jupyterlite/server-extension:contents',\n requires: [ILocalForage],\n autoStart: true,\n provides: IContents,\n activate: (app: JupyterLiteServer, forage: ILocalForage) => {\n const storageName = PageConfig.getOption('contentsStorageName');\n const storageDrivers = JSON.parse(\n PageConfig.getOption('contentsStorageDrivers') || 'null'\n );\n const { localforage } = forage;\n const contents = new Contents({\n storageName,\n storageDrivers,\n localforage,\n });\n app.started.then(() => contents.initialize().catch(console.warn));\n return contents;\n },\n};\n\n/**\n * A plugin providing the routes for the contents service.\n */\nconst contentsRoutesPlugin: JupyterLiteServerPlugin = {\n id: '@jupyterlite/server-extension:contents-routes',\n autoStart: true,\n requires: [IContents],\n activate: (app: JupyterLiteServer, contents: IContents) => {\n // GET /api/contents/{path}/checkpoints - Get a list of checkpoints for a file\n app.router.get(\n '/api/contents/(.+)/checkpoints',\n async (req: Router.IRequest, filename: string) => {\n const res = await contents.listCheckpoints(filename);\n return new Response(JSON.stringify(res));\n }\n );\n\n // POST /api/contents/{path}/checkpoints/{checkpoint_id} - Restore a file to a particular checkpointed state\n app.router.post(\n '/api/contents/(.+)/checkpoints/(.*)',\n async (req: Router.IRequest, filename: string, checkpoint: string) => {\n const res = await contents.restoreCheckpoint(filename, checkpoint);\n return new Response(JSON.stringify(res), { status: 204 });\n }\n );\n\n // POST /api/contents/{path}/checkpoints - Create a new checkpoint for a file\n app.router.post(\n '/api/contents/(.+)/checkpoints',\n async (req: Router.IRequest, filename: string) => {\n const res = await contents.createCheckpoint(filename);\n return new Response(JSON.stringify(res), { status: 201 });\n }\n );\n\n // DELETE /api/contents/{path}/checkpoints/{checkpoint_id} - Delete a checkpoint\n app.router.delete(\n '/api/contents/(.+)/checkpoints/(.*)',\n async (req: Router.IRequest, filename: string, checkpoint: string) => {\n const res = await contents.deleteCheckpoint(filename, checkpoint);\n return new Response(JSON.stringify(res), { status: 204 });\n }\n );\n\n // GET /api/contents/{path} - Get contents of file or directory\n app.router.get(\n '/api/contents(.*)',\n async (req: Router.IRequest, filename: string) => {\n const options: ServerContents.IFetchOptions = {\n content: req.query?.content === '1',\n };\n const nb = await contents.get(filename, options);\n if (!nb) {\n return new Response(null, { status: 404 });\n }\n return new Response(JSON.stringify(nb));\n }\n );\n\n // POST /api/contents/{path} - Create a new file in the specified path\n app.router.post('/api/contents(.*)', async (req: Router.IRequest, path: string) => {\n const options = req.body;\n const copyFrom = options?.copy_from as string;\n let file: ServerContents.IModel | null;\n if (copyFrom) {\n file = await contents.copy(copyFrom, path);\n } else {\n file = await contents.newUntitled(options);\n }\n if (!file) {\n return new Response(null, { status: 400 });\n }\n return new Response(JSON.stringify(file), { status: 201 });\n });\n\n // PATCH /api/contents/{path} - Rename a file or directory without re-uploading content\n app.router.patch(\n '/api/contents(.*)',\n async (req: Router.IRequest, filename: string) => {\n const newPath = (req.body?.path as string) ?? '';\n filename = filename[0] === '/' ? filename.slice(1) : filename;\n const nb = await contents.rename(filename, newPath);\n return new Response(JSON.stringify(nb));\n }\n );\n\n // PUT /api/contents/{path} - Save or upload a file\n app.router.put(\n '/api/contents/(.+)',\n async (req: Router.IRequest, filename: string) => {\n const body = req.body;\n const nb = await contents.save(filename, body);\n return new Response(JSON.stringify(nb));\n }\n );\n\n // DELETE /api/contents/{path} - Delete a file in the given path\n app.router.delete(\n '/api/contents/(.+)',\n async (req: Router.IRequest, filename: string) => {\n await contents.delete(filename);\n return new Response(null, { status: 204 });\n }\n );\n },\n};\n\n/**\n * A plugin installing the service worker.\n */\nconst serviceWorkerPlugin: JupyterLiteServerPlugin = {\n id: '@jupyterlite/server-extension:service-worker',\n autoStart: true,\n provides: IServiceWorkerManager,\n activate: (app: JupyterLiteServer) => {\n return new ServiceWorkerManager();\n },\n};\n\n/**\n * A plugin for handling communication with the Emscpriten file system.\n */\nconst emscriptenFileSystemPlugin: JupyterLiteServerPlugin = {\n id: '@jupyterlite/server-extension:emscripten-filesystem',\n autoStart: true,\n optional: [IServiceWorkerManager],\n provides: IBroadcastChannelWrapper,\n activate: (\n app: JupyterLiteServer,\n serviceWorkerRegistrationWrapper?: IServiceWorkerManager\n ): IBroadcastChannelWrapper => {\n const { contents } = app.serviceManager;\n const broadcaster = new BroadcastChannelWrapper({ contents });\n const what = 'Kernel filesystem and JupyterLite contents';\n\n function logStatus(msg?: string, err?: any) {\n if (err) {\n console.warn(err);\n }\n if (msg) {\n console.warn(msg);\n }\n if (err || msg) {\n console.warn(`${what} will NOT be synced`);\n } else {\n console.info(`${what} will be synced`);\n }\n }\n\n if (!serviceWorkerRegistrationWrapper) {\n logStatus('JupyterLite ServiceWorker not available');\n } else {\n serviceWorkerRegistrationWrapper.ready\n .then(() => {\n broadcaster.enable();\n logStatus();\n })\n .catch((err: any) => {\n logStatus('JupyterLite ServiceWorker failed to become available', err);\n });\n }\n\n return broadcaster;\n },\n};\n\n/**\n * The kernels service plugin.\n */\nconst kernelsPlugin: JupyterLiteServerPlugin = {\n id: '@jupyterlite/server-extension:kernels',\n autoStart: true,\n provides: IKernels,\n requires: [IKernelSpecs],\n activate: (app: JupyterLiteServer, kernelspecs: IKernelSpecs) => {\n return new Kernels({ kernelspecs });\n },\n};\n\n/**\n * A plugin providing the routes for the kernels service\n */\nconst kernelsRoutesPlugin: JupyterLiteServerPlugin = {\n id: '@jupyterlite/server-extension:kernels-routes',\n autoStart: true,\n requires: [IKernels],\n activate: (app: JupyterLiteServer, kernels: IKernels) => {\n // POST /api/kernels/{kernel_id} - Restart a kernel\n app.router.post(\n '/api/kernels/(.*)/restart',\n async (req: Router.IRequest, kernelId: string) => {\n const res = await kernels.restart(kernelId);\n return new Response(JSON.stringify(res));\n }\n );\n\n // DELETE /api/kernels/{kernel_id} - Kill a kernel and delete the kernel id\n app.router.delete(\n '/api/kernels/(.*)',\n async (req: Router.IRequest, kernelId: string) => {\n const res = await kernels.shutdown(kernelId);\n return new Response(JSON.stringify(res), { status: 204 });\n }\n );\n },\n};\n\n/**\n * The kernel spec service plugin.\n */\nconst kernelSpecPlugin: JupyterLiteServerPlugin = {\n id: '@jupyterlite/server-extension:kernelspec',\n autoStart: true,\n provides: IKernelSpecs,\n activate: (app: JupyterLiteServer) => {\n return new KernelSpecs();\n },\n};\n\n/**\n * A plugin providing the routes for the kernelspec service.\n */\nconst kernelSpecRoutesPlugin: JupyterLiteServerPlugin = {\n id: '@jupyterlite/server-extension:kernelspec-routes',\n autoStart: true,\n requires: [IKernelSpecs],\n activate: (app: JupyterLiteServer, kernelspecs: IKernelSpecs) => {\n app.router.get('/api/kernelspecs', async (req: Router.IRequest) => {\n const { specs } = kernelspecs;\n if (!specs) {\n return new Response(null);\n }\n // follow the same format as in Jupyter Server\n const allKernelSpecs: {\n [name: string]: {\n name: string;\n spec: KernelSpec.ISpecModel | undefined;\n resources: { [name: string]: string } | undefined;\n };\n } = {};\n const allSpecs = specs.kernelspecs;\n Object.keys(allSpecs).forEach((name) => {\n const spec = allSpecs[name];\n const { resources } = spec ?? {};\n allKernelSpecs[name] = {\n name,\n spec,\n resources,\n };\n });\n const res = {\n default: specs.default,\n kernelspecs: allKernelSpecs,\n };\n return new Response(JSON.stringify(res));\n });\n },\n};\n\n/**\n * The licenses service plugin\n */\nconst licensesPlugin: JupyterLiteServerPlugin = {\n id: '@jupyterlite/server-extension:licenses',\n autoStart: true,\n provides: ILicenses,\n activate: (app: JupyterLiteServer) => {\n return new Licenses();\n },\n};\n\n/**\n * A plugin providing the routes for the licenses service.\n */\nconst licensesRoutesPlugin: JupyterLiteServerPlugin = {\n id: '@jupyterlite/server-extension:licenses-routes',\n autoStart: true,\n requires: [ILicenses],\n activate(app: JupyterLiteServer, licenses: ILicenses) {\n app.router.get('/api/licenses', async (req: Router.IRequest) => {\n const res = await licenses.get();\n return new Response(JSON.stringify(res));\n });\n },\n};\n\n/**\n * A plugin providing the routes for the nbconvert service.\n * TODO: provide the service in a separate plugin?\n */\nconst nbconvertRoutesPlugin: JupyterLiteServerPlugin = {\n id: '@jupyterlite/server-extension:nbconvert-routes',\n autoStart: true,\n activate: (app: JupyterLiteServer) => {\n app.router.get('/api/nbconvert', async (req: Router.IRequest) => {\n return new Response(JSON.stringify({}));\n });\n },\n};\n\n/**\n * The sessions service plugin.\n */\nconst sessionsPlugin: JupyterLiteServerPlugin = {\n id: '@jupyterlite/server-extension:sessions',\n autoStart: true,\n provides: ISessions,\n requires: [IKernels],\n activate: (app: JupyterLiteServer, kernels: IKernels) => {\n return new Sessions({ kernels });\n },\n};\n\n/**\n * A plugin providing the routes for the session service.\n */\nconst sessionsRoutesPlugin: JupyterLiteServerPlugin = {\n id: '@jupyterlite/server-extension:sessions-routes',\n autoStart: true,\n requires: [ISessions],\n activate: (app: JupyterLiteServer, sessions: ISessions) => {\n // GET /api/sessions/{session} - Get session\n app.router.get('/api/sessions/(.+)', async (req: Router.IRequest, id: string) => {\n const session = await sessions.get(id);\n return new Response(JSON.stringify(session), { status: 200 });\n });\n\n // GET /api/sessions - List available sessions\n app.router.get('/api/sessions', async (req: Router.IRequest) => {\n const list = await sessions.list();\n return new Response(JSON.stringify(list), { status: 200 });\n });\n\n // PATCH /api/sessions/{session} - This can be used to rename a session\n app.router.patch('/api/sessions(.*)', async (req: Router.IRequest, id: string) => {\n const options = req.body as any;\n const session = await sessions.patch(options);\n return new Response(JSON.stringify(session), { status: 200 });\n });\n\n // DELETE /api/sessions/{session} - Delete a session\n app.router.delete(\n '/api/sessions/(.+)',\n async (req: Router.IRequest, id: string) => {\n await sessions.shutdown(id);\n return new Response(null, { status: 204 });\n }\n );\n\n // POST /api/sessions - Create a new session or return an existing session if a session of the same name already exists\n app.router.post('/api/sessions', async (req: Router.IRequest) => {\n const options = req.body as any;\n const session = await sessions.startNew(options);\n return new Response(JSON.stringify(session), { status: 201 });\n });\n },\n};\n\n/**\n * The settings service plugin.\n */\nconst settingsPlugin: JupyterLiteServerPlugin = {\n id: '@jupyterlite/server-extension:settings',\n autoStart: true,\n requires: [ILocalForage],\n provides: ISettings,\n activate: (app: JupyterLiteServer, forage: ILocalForage) => {\n const storageName = PageConfig.getOption('settingsStorageName');\n const storageDrivers = JSON.parse(\n PageConfig.getOption('settingsStorageDrivers') || 'null'\n );\n const { localforage } = forage;\n const settings = new Settings({ storageName, storageDrivers, localforage });\n app.started.then(() => settings.initialize().catch(console.warn));\n return settings;\n },\n};\n\n/**\n * A plugin providing the routes for the settings service.\n */\nconst settingsRoutesPlugin: JupyterLiteServerPlugin = {\n id: '@jupyterlite/server-extension:settings-routes',\n autoStart: true,\n requires: [ISettings],\n activate: (app: JupyterLiteServer, settings: ISettings) => {\n // TODO: improve the regex\n // const pluginPattern = new RegExp(/(?:@([^/]+?)[/])?([^/]+?):(\\w+)/);\n const pluginPattern = '/api/settings/((?:@([^/]+?)[/])?([^/]+?):([^:]+))$';\n\n app.router.get(pluginPattern, async (req: Router.IRequest, pluginId: string) => {\n const setting = await settings.get(pluginId);\n return new Response(JSON.stringify(setting));\n });\n\n app.router.put(pluginPattern, async (req: Router.IRequest, pluginId: string) => {\n const body = req.body as any;\n const { raw } = body;\n await settings.save(pluginId, raw);\n return new Response(null, { status: 204 });\n });\n\n app.router.get('/api/settings', async (req: Router.IRequest) => {\n const plugins = await settings.getAll();\n return new Response(JSON.stringify(plugins));\n });\n },\n};\n\n/**\n * The translation service plugin.\n */\nconst translationPlugin: JupyterLiteServerPlugin = {\n id: '@jupyterlite/server-extension:translation',\n autoStart: true,\n provides: ITranslation,\n activate: (app: JupyterLiteServer) => {\n const translation = new Translation();\n\n app.router.get(\n '/api/translations/?(.*)',\n async (req: Router.IRequest, locale: string) => {\n const data = await translation.get(locale || 'all');\n return new Response(JSON.stringify(data));\n }\n );\n\n return translation;\n },\n};\n\n/**\n * A plugin providing the routes for the translation service.\n */\nconst translationRoutesPlugin: JupyterLiteServerPlugin = {\n id: '@jupyterlite/server-extension:translation-routes',\n autoStart: true,\n requires: [ITranslation],\n activate: (app: JupyterLiteServer, translation: ITranslation) => {\n app.router.get(\n '/api/translations/?(.*)',\n async (req: Router.IRequest, locale: string) => {\n const data = await translation.get(locale || 'all');\n return new Response(JSON.stringify(data));\n }\n );\n },\n};\n\nconst plugins: JupyterLiteServerPlugin[] = [\n contentsPlugin,\n contentsRoutesPlugin,\n emscriptenFileSystemPlugin,\n kernelsPlugin,\n kernelsRoutesPlugin,\n kernelSpecPlugin,\n kernelSpecRoutesPlugin,\n licensesPlugin,\n licensesRoutesPlugin,\n localforageMemoryPlugin,\n localforagePlugin,\n nbconvertRoutesPlugin,\n serviceWorkerPlugin,\n sessionsPlugin,\n sessionsRoutesPlugin,\n settingsPlugin,\n settingsRoutesPlugin,\n translationPlugin,\n translationRoutesPlugin,\n];\n\nexport default plugins;\n"],"names":["localforagePlugin","id","autoStart","provides","ILocalForage","activate","app","localforage","localforageMemoryPlugin","requires","async","forage","JSON","parse","PageConfig","console","warn","ensureMemoryStorage","contentsPlugin","IContents","storageName","storageDrivers","contents","Contents","started","then","initialize","catch","contentsRoutesPlugin","router","get","req","filename","res","listCheckpoints","Response","stringify","post","checkpoint","restoreCheckpoint","status","createCheckpoint","delete","deleteCheckpoint","options","content","query","nb","path","body","copyFrom","copy_from","file","copy","newUntitled","patch","newPath","slice","rename","put","save","serviceWorkerPlugin","IServiceWorkerManager","ServiceWorkerManager","optional","IBroadcastChannelWrapper","serviceWorkerRegistrationWrapper","serviceManager","broadcaster","BroadcastChannelWrapper","what","logStatus","msg","err","info","ready","enable","IKernels","IKernelSpecs","kernelspecs","Kernels","kernels","kernelId","restart","shutdown","KernelSpecs","specs","allKernelSpecs","allSpecs","Object","keys","forEach","name","spec","resources","default","ILicenses","Licenses","licenses","ISessions","Sessions","sessions","session","list","startNew","ISettings","settings","Settings","pluginPattern","pluginId","setting","raw","plugins","getAll","ITranslation","translation","Translation","locale","data"],"sourceRoot":""} \ No newline at end of file diff --git a/_static/build/4942.b96c164.js b/_static/build/4942.b96c164.js new file mode 100644 index 0000000..e9d9623 --- /dev/null +++ b/_static/build/4942.b96c164.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[4942,2099],{2099:(e,t,o)=>{o.r(t),o.d(t,{default:()=>w});var n=o(2814),a=o(55941),s=o(42422),r=o(49005),l=o(33079),c=o(15786),d=o(4265),i=o(95191),u=o(61313),m=o(94519);const p="jp-RetroKernelStatus-error",k="jp-RetroKernelStatus-warn",g="jp-RetroKernelStatus-info",h="jp-RetroKernelStatus-fade",C={id:"@retrolab/notebook-extension:checkpoints",autoStart:!0,requires:[s.IDocumentManager,d.ITranslator],optional:[i.IRetroShell],activate:(e,t,o,s)=>{const{shell:r}=e,l=o.load("retrolab"),c=new m.Widget;c.id=n.DOMUtils.createDomID(),c.addClass("jp-RetroCheckpoint"),e.shell.add(c,"top",{rank:100});const d=async()=>{const e=r.currentWidget;if(!e)return;const o=t.contextForWidget(e);null==o||o.fileChanged.disconnect(d),null==o||o.fileChanged.connect(d);const n=await(null==o?void 0:o.listCheckpoints());if(!n)return;const s=n[n.length-1];c.node.textContent=l.__("Last Checkpoint: %1",a.Time.formatHuman(new Date(s.last_modified)))};s&&s.currentChanged.connect(d),new u.Poll({auto:!0,factory:()=>d(),frequency:{interval:2e3,backoff:!1},standby:"when-hidden"})}},b={id:"@retrolab/notebook-extension:kernel-logo",autoStart:!0,requires:[i.IRetroShell],activate:(e,t)=>{const{serviceManager:o}=e;let n;const a=async()=>{var s,r,c,d,i;n&&(n.dispose(),n.parent=null);const u=t.currentWidget;if(!(u instanceof l.NotebookPanel))return;await u.sessionContext.ready,u.sessionContext.kernelChanged.disconnect(a),u.sessionContext.kernelChanged.connect(a);const p=null!==(c=null===(r=null===(s=u.sessionContext.session)||void 0===s?void 0:s.kernel)||void 0===r?void 0:r.name)&&void 0!==c?c:"",k=null===(i=null===(d=o.kernelspecs)||void 0===d?void 0:d.specs)||void 0===i?void 0:i.kernelspecs[p];if(!k)return;const g=k.resources["logo-64x64"];if(!g)return;const h=document.createElement("div"),C=document.createElement("img");C.src=g,C.title=k.display_name,h.appendChild(C),n=new m.Widget({node:h}),n.addClass("jp-RetroKernelLogo"),e.shell.add(n,"top",{rank:10010})};e.started.then((()=>{t.currentChanged.connect(a)}))}},f={id:"@retrolab/notebook-extension:kernel-status",autoStart:!0,requires:[i.IRetroShell,d.ITranslator],activate:(e,t,o)=>{const n=o.load("retrolab"),s=new m.Widget;s.addClass("jp-RetroKernelStatus"),e.shell.add(s,"menu",{rank:10010});const r=e=>{const t=e.kernelDisplayStatus;let o=`Kernel ${a.Text.titleCase(t)}`;switch(s.removeClass(p),s.removeClass(k),s.removeClass(g),s.removeClass(h),t){case"busy":case"idle":o="",s.addClass(h);break;case"dead":case"terminating":s.addClass(p);break;case"unknown":s.addClass(k);break;default:s.addClass(g),s.addClass(h)}s.node.textContent=n.__(o)};t.currentChanged.connect((async()=>{const e=t.currentWidget;e instanceof l.NotebookPanel&&e.sessionContext.statusChanged.connect(r)}))}},v={id:"@retrolab/notebook-extension:menu-plugin",autoStart:!0,requires:[r.IMainMenu,d.ITranslator],activate:(e,t,o)=>{const{commands:n}=e,a=o.load("retrolab"),s=new m.Menu({commands:n});s.title.label=a._p("menu","Cell Type"),["notebook:change-cell-to-code","notebook:change-cell-to-markdown","notebook:change-cell-to-raw"].forEach((e=>{s.addItem({command:e})})),t.runMenu.addItem({type:"separator",rank:1e3}),t.runMenu.addItem({type:"submenu",submenu:s,rank:1010})}},y={id:"@retrolab/notebook-extension:scroll-output",autoStart:!0,requires:[l.INotebookTracker],optional:[c.ISettingRegistry],activate:async(e,t,o)=>{let n=!0;const a=e=>{if(!n)return;const{outputArea:t}=e;if(void 0!==e.model.metadata.get("scrolled"))return;const{node:o}=t,a=o.scrollHeight>1.3*(parseFloat(o.style.fontSize.replace("px",""))||14)*100;e.toggleClass("jp-mod-outputsScrolled",a)};if(t.widgetAdded.connect(((e,t)=>{var o;null===(o=t.model)||void 0===o||o.cells.changed.connect(((e,o)=>{if("add"!==o.type)return;const[n]=o.newValues;t.content.widgets.forEach((e=>{if(e.model.id===n.id&&"code"===e.model.type){const t=e;t.outputArea.model.changed.connect((()=>a(t)))}}))})),t.sessionContext.ready.then((()=>{t.content.widgets.forEach((e=>{"code"===e.model.type&&a(e)}))}))})),o){const t=o.load(y.id),a=e=>{n=e.get("autoScrollOutputs").composite};Promise.all([t,e.restored]).then((([e])=>{a(e),e.changed.connect((e=>{a(e)}))})).catch((e=>{console.error(e.message)}))}}},w=[C,b,f,v,{id:"@retrolab/notebook-extension:run-shortcut",autoStart:!0,activate:e=>{e.commands.addKeyBinding({command:"notebook:run-cell",keys:["Accel Enter"],selector:".jp-Notebook:focus"}),e.commands.addKeyBinding({command:"notebook:run-cell",keys:["Accel Enter"],selector:".jp-Notebook.jp-mod-editMode"})}},y]}}]); +//# sourceMappingURL=4942.b96c164.js.map \ No newline at end of file diff --git a/_static/build/4942.b96c164.js.map b/_static/build/4942.b96c164.js.map new file mode 100644 index 0000000..1a9dc4e --- /dev/null +++ b/_static/build/4942.b96c164.js.map @@ -0,0 +1 @@ +{"version":3,"file":"4942.b96c164.js","mappings":"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","sources":["webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@retrolab/notebook-extension/lib/index.js"],"sourcesContent":["// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\nimport { DOMUtils } from '@jupyterlab/apputils';\nimport { Text, Time } from '@jupyterlab/coreutils';\nimport { IDocumentManager } from '@jupyterlab/docmanager';\nimport { IMainMenu } from '@jupyterlab/mainmenu';\nimport { NotebookPanel, INotebookTracker } from '@jupyterlab/notebook';\nimport { ISettingRegistry } from '@jupyterlab/settingregistry';\nimport { ITranslator } from '@jupyterlab/translation';\nimport { IRetroShell } from '@retrolab/application';\nimport { Poll } from '@lumino/polling';\nimport { Menu, Widget } from '@lumino/widgets';\n/**\n * The class for kernel status errors.\n */\nconst KERNEL_STATUS_ERROR_CLASS = 'jp-RetroKernelStatus-error';\n/**\n * The class for kernel status warnings.\n */\nconst KERNEL_STATUS_WARN_CLASS = 'jp-RetroKernelStatus-warn';\n/**\n * The class for kernel status infos.\n */\nconst KERNEL_STATUS_INFO_CLASS = 'jp-RetroKernelStatus-info';\n/**\n * The class to fade out the kernel status.\n */\nconst KERNEL_STATUS_FADE_OUT_CLASS = 'jp-RetroKernelStatus-fade';\n/**\n * The class for scrolled outputs\n */\nconst SCROLLED_OUTPUTS_CLASS = 'jp-mod-outputsScrolled';\n/**\n * A plugin for the checkpoint indicator\n */\nconst checkpoints = {\n id: '@retrolab/notebook-extension:checkpoints',\n autoStart: true,\n requires: [IDocumentManager, ITranslator],\n optional: [IRetroShell],\n activate: (app, docManager, translator, retroShell) => {\n const { shell } = app;\n const trans = translator.load('retrolab');\n const widget = new Widget();\n widget.id = DOMUtils.createDomID();\n widget.addClass('jp-RetroCheckpoint');\n app.shell.add(widget, 'top', { rank: 100 });\n const onChange = async () => {\n const current = shell.currentWidget;\n if (!current) {\n return;\n }\n const context = docManager.contextForWidget(current);\n context === null || context === void 0 ? void 0 : context.fileChanged.disconnect(onChange);\n context === null || context === void 0 ? void 0 : context.fileChanged.connect(onChange);\n const checkpoints = await (context === null || context === void 0 ? void 0 : context.listCheckpoints());\n if (!checkpoints) {\n return;\n }\n const checkpoint = checkpoints[checkpoints.length - 1];\n widget.node.textContent = trans.__('Last Checkpoint: %1', Time.formatHuman(new Date(checkpoint.last_modified)));\n };\n if (retroShell) {\n retroShell.currentChanged.connect(onChange);\n }\n new Poll({\n auto: true,\n factory: () => onChange(),\n frequency: {\n interval: 2000,\n backoff: false\n },\n standby: 'when-hidden'\n });\n }\n};\n/**\n * The kernel logo plugin.\n */\nconst kernelLogo = {\n id: '@retrolab/notebook-extension:kernel-logo',\n autoStart: true,\n requires: [IRetroShell],\n activate: (app, shell) => {\n const { serviceManager } = app;\n let widget;\n const onChange = async () => {\n var _a, _b, _c, _d, _e;\n if (widget) {\n widget.dispose();\n widget.parent = null;\n }\n const current = shell.currentWidget;\n if (!(current instanceof NotebookPanel)) {\n return;\n }\n await current.sessionContext.ready;\n current.sessionContext.kernelChanged.disconnect(onChange);\n current.sessionContext.kernelChanged.connect(onChange);\n const name = (_c = (_b = (_a = current.sessionContext.session) === null || _a === void 0 ? void 0 : _a.kernel) === null || _b === void 0 ? void 0 : _b.name) !== null && _c !== void 0 ? _c : '';\n const spec = (_e = (_d = serviceManager.kernelspecs) === null || _d === void 0 ? void 0 : _d.specs) === null || _e === void 0 ? void 0 : _e.kernelspecs[name];\n if (!spec) {\n return;\n }\n const kernelIconUrl = spec.resources['logo-64x64'];\n if (!kernelIconUrl) {\n return;\n }\n const node = document.createElement('div');\n const img = document.createElement('img');\n img.src = kernelIconUrl;\n img.title = spec.display_name;\n node.appendChild(img);\n widget = new Widget({ node });\n widget.addClass('jp-RetroKernelLogo');\n app.shell.add(widget, 'top', { rank: 10010 });\n };\n app.started.then(() => {\n shell.currentChanged.connect(onChange);\n });\n }\n};\n/**\n * A plugin to display the kernel status;\n */\nconst kernelStatus = {\n id: '@retrolab/notebook-extension:kernel-status',\n autoStart: true,\n requires: [IRetroShell, ITranslator],\n activate: (app, shell, translator) => {\n const trans = translator.load('retrolab');\n const widget = new Widget();\n widget.addClass('jp-RetroKernelStatus');\n app.shell.add(widget, 'menu', { rank: 10010 });\n const removeClasses = () => {\n widget.removeClass(KERNEL_STATUS_ERROR_CLASS);\n widget.removeClass(KERNEL_STATUS_WARN_CLASS);\n widget.removeClass(KERNEL_STATUS_INFO_CLASS);\n widget.removeClass(KERNEL_STATUS_FADE_OUT_CLASS);\n };\n const onStatusChanged = (sessionContext) => {\n const status = sessionContext.kernelDisplayStatus;\n let text = `Kernel ${Text.titleCase(status)}`;\n removeClasses();\n switch (status) {\n case 'busy':\n case 'idle':\n text = '';\n widget.addClass(KERNEL_STATUS_FADE_OUT_CLASS);\n break;\n case 'dead':\n case 'terminating':\n widget.addClass(KERNEL_STATUS_ERROR_CLASS);\n break;\n case 'unknown':\n widget.addClass(KERNEL_STATUS_WARN_CLASS);\n break;\n default:\n widget.addClass(KERNEL_STATUS_INFO_CLASS);\n widget.addClass(KERNEL_STATUS_FADE_OUT_CLASS);\n break;\n }\n widget.node.textContent = trans.__(text);\n };\n const onChange = async () => {\n const current = shell.currentWidget;\n if (!(current instanceof NotebookPanel)) {\n return;\n }\n const sessionContext = current.sessionContext;\n sessionContext.statusChanged.connect(onStatusChanged);\n };\n shell.currentChanged.connect(onChange);\n }\n};\n/**\n * A plugin to customize notebook related menu entries\n * TODO: switch to settings define menus when fixed upstream: https://github.com/jupyterlab/jupyterlab/issues/11754\n */\nconst menuPlugin = {\n id: '@retrolab/notebook-extension:menu-plugin',\n autoStart: true,\n requires: [IMainMenu, ITranslator],\n activate: (app, mainMenu, translator) => {\n const { commands } = app;\n const trans = translator.load('retrolab');\n const cellTypeSubmenu = new Menu({ commands });\n cellTypeSubmenu.title.label = trans._p('menu', 'Cell Type');\n [\n 'notebook:change-cell-to-code',\n 'notebook:change-cell-to-markdown',\n 'notebook:change-cell-to-raw'\n ].forEach(command => {\n cellTypeSubmenu.addItem({\n command\n });\n });\n mainMenu.runMenu.addItem({ type: 'separator', rank: 1000 });\n mainMenu.runMenu.addItem({\n type: 'submenu',\n submenu: cellTypeSubmenu,\n rank: 1010\n });\n }\n};\n/**\n * A plugin to add an extra shortcut to execute a cell in place via Cmd-Enter on Mac.\n * TODO: switch to settings define menus when fixed upstream: https://github.com/jupyterlab/jupyterlab/issues/11754\n */\nconst runShortcut = {\n id: '@retrolab/notebook-extension:run-shortcut',\n autoStart: true,\n activate: (app) => {\n app.commands.addKeyBinding({\n command: 'notebook:run-cell',\n keys: ['Accel Enter'],\n selector: '.jp-Notebook:focus'\n });\n app.commands.addKeyBinding({\n command: 'notebook:run-cell',\n keys: ['Accel Enter'],\n selector: '.jp-Notebook.jp-mod-editMode'\n });\n }\n};\n/**\n * A plugin to enable scrolling for outputs by default.\n * Mimic the logic from the classic notebook, as found here:\n * https://github.com/jupyter/notebook/blob/a9a31c096eeffe1bff4e9164c6a0442e0e13cdb3/notebook/static/notebook/js/outputarea.js#L96-L120\n */\nconst scrollOutput = {\n id: '@retrolab/notebook-extension:scroll-output',\n autoStart: true,\n requires: [INotebookTracker],\n optional: [ISettingRegistry],\n activate: async (app, tracker, settingRegistry) => {\n const autoScrollThreshold = 100;\n let autoScrollOutputs = true;\n // decide whether to scroll the output of the cell based on some heuristics\n const autoScroll = (cell) => {\n if (!autoScrollOutputs) {\n // bail if disabled via the settings\n return;\n }\n const { outputArea } = cell;\n // respect cells with an explicit scrolled state\n const scrolled = cell.model.metadata.get('scrolled');\n if (scrolled !== undefined) {\n return;\n }\n const { node } = outputArea;\n const height = node.scrollHeight;\n const fontSize = parseFloat(node.style.fontSize.replace('px', ''));\n const lineHeight = (fontSize || 14) * 1.3;\n // do not set via cell.outputScrolled = true, as this would\n // otherwise synchronize the scrolled state to the notebook metadata\n const scroll = height > lineHeight * autoScrollThreshold;\n cell.toggleClass(SCROLLED_OUTPUTS_CLASS, scroll);\n };\n tracker.widgetAdded.connect((sender, notebook) => {\n var _a;\n (_a = notebook.model) === null || _a === void 0 ? void 0 : _a.cells.changed.connect((sender, changed) => {\n // process new cells only\n if (!(changed.type === 'add')) {\n return;\n }\n const [cellModel] = changed.newValues;\n notebook.content.widgets.forEach(cell => {\n if (cell.model.id === cellModel.id && cell.model.type === 'code') {\n const codeCell = cell;\n codeCell.outputArea.model.changed.connect(() => autoScroll(codeCell));\n }\n });\n });\n // when the notebook widget is created, process all the cells\n // TODO: investigate why notebook.content.fullyRendered is not enough\n notebook.sessionContext.ready.then(() => {\n notebook.content.widgets.forEach(cell => {\n if (cell.model.type === 'code') {\n autoScroll(cell);\n }\n });\n });\n });\n if (settingRegistry) {\n const loadSettings = settingRegistry.load(scrollOutput.id);\n const updateSettings = (settings) => {\n autoScrollOutputs = settings.get('autoScrollOutputs')\n .composite;\n };\n Promise.all([loadSettings, app.restored])\n .then(([settings]) => {\n updateSettings(settings);\n settings.changed.connect(settings => {\n updateSettings(settings);\n });\n })\n .catch((reason) => {\n console.error(reason.message);\n });\n }\n }\n};\n/**\n * Export the plugins as default.\n */\nconst plugins = [\n checkpoints,\n kernelLogo,\n kernelStatus,\n menuPlugin,\n runShortcut,\n scrollOutput\n];\nexport default plugins;\n"],"names":["KERNEL_STATUS_ERROR_CLASS","KERNEL_STATUS_WARN_CLASS","KERNEL_STATUS_INFO_CLASS","KERNEL_STATUS_FADE_OUT_CLASS","checkpoints","id","autoStart","requires","IDocumentManager","ITranslator","optional","IRetroShell","activate","app","docManager","translator","retroShell","shell","trans","load","widget","Widget","DOMUtils","addClass","add","rank","onChange","async","current","currentWidget","context","contextForWidget","fileChanged","disconnect","connect","listCheckpoints","checkpoint","length","node","textContent","__","Time","Date","last_modified","currentChanged","Poll","auto","factory","frequency","interval","backoff","standby","kernelLogo","serviceManager","_a","_b","_c","_d","_e","dispose","parent","NotebookPanel","sessionContext","ready","kernelChanged","name","session","kernel","spec","kernelspecs","specs","kernelIconUrl","resources","document","createElement","img","src","title","display_name","appendChild","started","then","kernelStatus","onStatusChanged","status","kernelDisplayStatus","text","Text","removeClass","statusChanged","menuPlugin","IMainMenu","mainMenu","commands","cellTypeSubmenu","Menu","label","_p","forEach","command","addItem","runMenu","type","submenu","scrollOutput","INotebookTracker","ISettingRegistry","tracker","settingRegistry","autoScrollOutputs","autoScroll","cell","outputArea","undefined","model","metadata","get","scroll","scrollHeight","parseFloat","style","fontSize","replace","toggleClass","widgetAdded","sender","notebook","cells","changed","cellModel","newValues","content","widgets","codeCell","loadSettings","updateSettings","settings","composite","Promise","all","restored","catch","reason","console","error","message","addKeyBinding","keys","selector"],"sourceRoot":""} \ No newline at end of file diff --git a/_static/build/5016.dd2fe83.js b/_static/build/5016.dd2fe83.js new file mode 100644 index 0000000..8380a3d --- /dev/null +++ b/_static/build/5016.dd2fe83.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[5016,9128],{9128:(t,e,s)=>{s.r(e),s.d(e,{AttachmentsModel:()=>h,AttachmentsResolver:()=>r});var a=s(92877),i=s(20040),n=s(70942);class h{constructor(t={}){if(this._map=new a.ObservableMap,this._isDisposed=!1,this._stateChanged=new n.Signal(this),this._changed=new n.Signal(this),this._modelDB=null,this._serialized=null,this._changeGuard=!1,this.contentFactory=t.contentFactory||h.defaultContentFactory,t.values)for(const e of Object.keys(t.values))void 0!==t.values[e]&&this.set(e,t.values[e]);this._map.changed.connect(this._onMapChanged,this),t.modelDB&&(this._modelDB=t.modelDB,this._serialized=this._modelDB.createValue("attachments"),this._serialized.get()?this.fromJSON(this._serialized.get()):this._serialized.set(this.toJSON()),this._serialized.changed.connect(this._onSerializedChanged,this))}get stateChanged(){return this._stateChanged}get changed(){return this._changed}get keys(){return this._map.keys()}get length(){return this._map.keys().length}get isDisposed(){return this._isDisposed}dispose(){this.isDisposed||(this._isDisposed=!0,this._map.dispose(),n.Signal.clearData(this))}has(t){return this._map.has(t)}get(t){return this._map.get(t)}set(t,e){const s=this._createItem({value:e});this._map.set(t,s)}remove(t){this._map.delete(t)}clear(){this._map.values().forEach((t=>{t.dispose()})),this._map.clear()}fromJSON(t){this.clear(),Object.keys(t).forEach((e=>{void 0!==t[e]&&this.set(e,t[e])}))}toJSON(){const t={};for(const e of this._map.keys())t[e]=this._map.get(e).toJSON();return t}_createItem(t){const e=this.contentFactory.createAttachmentModel(t);return e.changed.connect(this._onGenericChange,this),e}_onMapChanged(t,e){this._serialized&&!this._changeGuard&&(this._changeGuard=!0,this._serialized.set(this.toJSON()),this._changeGuard=!1),this._changed.emit(e),this._stateChanged.emit(void 0)}_onSerializedChanged(t,e){this._changeGuard||(this._changeGuard=!0,this.fromJSON(e.newValue),this._changeGuard=!1)}_onGenericChange(){this._stateChanged.emit(void 0)}}!function(t){class e{createAttachmentModel(t){return new i.AttachmentModel(t)}}t.ContentFactory=e,t.defaultContentFactory=new e}(h||(h={}));class r{constructor(t){this._parent=t.parent||null,this._model=t.model}async resolveUrl(t){return this._parent&&!t.startsWith("attachment:")?this._parent.resolveUrl(t):t}async getDownloadUrl(t){if(this._parent&&!t.startsWith("attachment:"))return this._parent.getDownloadUrl(t);const e=t.slice("attachment:".length),s=this._model.get(e);if(void 0===s)return t;const{data:a}=s,n=Object.keys(a)[0];if(void 0===n||-1===i.imageRendererFactory.mimeTypes.indexOf(n))throw new Error(`Cannot render unknown image mime type "${n}".`);return`data:${n};base64,${a[n]}`}isLocal(t){var e,s,a;return!(this._parent&&!t.startsWith("attachment:"))||null===(a=null===(s=(e=this._parent).isLocal)||void 0===s?void 0:s.call(e,t))||void 0===a||a}}}}]); +//# sourceMappingURL=5016.dd2fe83.js.map \ No newline at end of file diff --git a/_static/build/5016.dd2fe83.js.map b/_static/build/5016.dd2fe83.js.map new file mode 100644 index 0000000..d2b759c --- /dev/null +++ b/_static/build/5016.dd2fe83.js.map @@ -0,0 +1 @@ +{"version":3,"file":"5016.dd2fe83.js","mappings":"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","sources":["webpack://_JUPYTERLAB.CORE_OUTPUT/../src/model.ts"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/_static/build/5072.733a1b5.js b/_static/build/5072.733a1b5.js new file mode 100644 index 0000000..85b459d --- /dev/null +++ b/_static/build/5072.733a1b5.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[5072],{55072:(e,n,s)=>{s.r(n),s.d(n,{EditMenu:()=>a,FileMenu:()=>d,HelpMenu:()=>o,IJupyterLabMenu:()=>t.IRankedMenu,IMainMenu:()=>_,JupyterLabMenu:()=>t.RankedMenu,KernelMenu:()=>M,MainMenu:()=>p,RunMenu:()=>m,SettingsMenu:()=>c,TabsMenu:()=>l,ViewMenu:()=>h});var r,t=s(59674),i=s(43892),u=s(94519);class a extends t.RankedMenu{constructor(e){super(e),this.undoers=new Set,this.clearers=new Set,this.goToLiners=new Set}dispose(){this.undoers.clear(),this.clearers.clear(),super.dispose()}}class d extends t.RankedMenu{constructor(e){super(e),this.quitEntry=!1,this.closeAndCleaners=new Set,this.consoleCreators=new Set}get newMenu(){var e,n;return this._newMenu||(this._newMenu=null!==(n=null===(e=(0,i.find)(this.items,(e=>{var n;return"jp-mainmenu-file-new"===(null===(n=e.submenu)||void 0===n?void 0:n.id)})))||void 0===e?void 0:e.submenu)&&void 0!==n?n:new t.RankedMenu({commands:this.commands})),this._newMenu}dispose(){var e;null===(e=this._newMenu)||void 0===e||e.dispose(),this.consoleCreators.clear(),super.dispose()}}class o extends t.RankedMenu{constructor(e){super(e),this.kernelUsers=new Set}}class M extends t.RankedMenu{constructor(e){super(e),this.kernelUsers=new Set}dispose(){this.kernelUsers.clear(),super.dispose()}}class m extends t.RankedMenu{constructor(e){super(e),this.codeRunners=new Set}dispose(){this.codeRunners.clear(),super.dispose()}}class c extends t.RankedMenu{constructor(e){super(e)}}class l extends t.RankedMenu{constructor(e){super(e)}}class h extends t.RankedMenu{constructor(e){super(e),this.editorViewers=new Set}dispose(){this.editorViewers.clear(),super.dispose()}}class p extends u.MenuBar{constructor(e){super({forceItemsPosition:{forceX:!1,forceY:!0}}),this._items=[],this._commands=e}get editMenu(){return this._editMenu||(this._editMenu=new a({commands:this._commands,rank:2,renderer:t.MenuSvg.defaultRenderer})),this._editMenu}get fileMenu(){return this._fileMenu||(this._fileMenu=new d({commands:this._commands,rank:1,renderer:t.MenuSvg.defaultRenderer})),this._fileMenu}get helpMenu(){return this._helpMenu||(this._helpMenu=new o({commands:this._commands,rank:1e3,renderer:t.MenuSvg.defaultRenderer})),this._helpMenu}get kernelMenu(){return this._kernelMenu||(this._kernelMenu=new M({commands:this._commands,rank:5,renderer:t.MenuSvg.defaultRenderer})),this._kernelMenu}get runMenu(){return this._runMenu||(this._runMenu=new m({commands:this._commands,rank:4,renderer:t.MenuSvg.defaultRenderer})),this._runMenu}get settingsMenu(){return this._settingsMenu||(this._settingsMenu=new c({commands:this._commands,rank:999,renderer:t.MenuSvg.defaultRenderer})),this._settingsMenu}get viewMenu(){return this._viewMenu||(this._viewMenu=new h({commands:this._commands,rank:3,renderer:t.MenuSvg.defaultRenderer})),this._viewMenu}get tabsMenu(){return this._tabsMenu||(this._tabsMenu=new l({commands:this._commands,rank:500,renderer:t.MenuSvg.defaultRenderer})),this._tabsMenu}addMenu(e,n={}){if(i.ArrayExt.firstIndexOf(this.menus,e)>-1)return;t.MenuSvg.overrideDefaultRenderer(e);const s={menu:e,rank:"rank"in n?n.rank:"rank"in e?e.rank:t.IRankedMenu.DEFAULT_RANK},u=i.ArrayExt.upperBound(this._items,s,r.itemCmp);switch(e.disposed.connect(this._onMenuDisposed,this),i.ArrayExt.insert(this._items,u,s),this.insertMenu(u,e),e.id){case"jp-mainmenu-file":!this._fileMenu&&e instanceof d&&(this._fileMenu=e);break;case"jp-mainmenu-edit":!this._editMenu&&e instanceof a&&(this._editMenu=e);break;case"jp-mainmenu-view":!this._viewMenu&&e instanceof h&&(this._viewMenu=e);break;case"jp-mainmenu-run":!this._runMenu&&e instanceof m&&(this._runMenu=e);break;case"jp-mainmenu-kernel":!this._kernelMenu&&e instanceof M&&(this._kernelMenu=e);break;case"jp-mainmenu-tabs":!this._tabsMenu&&e instanceof l&&(this._tabsMenu=e);break;case"jp-mainmenu-settings":!this._settingsMenu&&e instanceof c&&(this._settingsMenu=e);break;case"jp-mainmenu-help":!this._helpMenu&&e instanceof o&&(this._helpMenu=e)}}dispose(){var e,n,s,r,t,i,u,a;null===(e=this._editMenu)||void 0===e||e.dispose(),null===(n=this._fileMenu)||void 0===n||n.dispose(),null===(s=this._helpMenu)||void 0===s||s.dispose(),null===(r=this._kernelMenu)||void 0===r||r.dispose(),null===(t=this._runMenu)||void 0===t||t.dispose(),null===(i=this._settingsMenu)||void 0===i||i.dispose(),null===(u=this._viewMenu)||void 0===u||u.dispose(),null===(a=this._tabsMenu)||void 0===a||a.dispose(),super.dispose()}static generateMenu(e,n,s){let r;const{id:i,label:u,rank:p}=n;switch(i){case"jp-mainmenu-file":r=new d({commands:e,rank:p,renderer:t.MenuSvg.defaultRenderer});break;case"jp-mainmenu-edit":r=new a({commands:e,rank:p,renderer:t.MenuSvg.defaultRenderer});break;case"jp-mainmenu-view":r=new h({commands:e,rank:p,renderer:t.MenuSvg.defaultRenderer});break;case"jp-mainmenu-run":r=new m({commands:e,rank:p,renderer:t.MenuSvg.defaultRenderer});break;case"jp-mainmenu-kernel":r=new M({commands:e,rank:p,renderer:t.MenuSvg.defaultRenderer});break;case"jp-mainmenu-tabs":r=new l({commands:e,rank:p,renderer:t.MenuSvg.defaultRenderer});break;case"jp-mainmenu-settings":r=new c({commands:e,rank:p,renderer:t.MenuSvg.defaultRenderer});break;case"jp-mainmenu-help":r=new o({commands:e,rank:p,renderer:t.MenuSvg.defaultRenderer});break;default:r=new t.RankedMenu({commands:e,rank:p,renderer:t.MenuSvg.defaultRenderer})}return u&&(r.title.label=s._p("menu",u)),r}_onMenuDisposed(e){this.removeMenu(e);const n=i.ArrayExt.findFirstIndex(this._items,(n=>n.menu===e));-1!==n&&i.ArrayExt.removeAt(this._items,n)}}!function(e){e.itemCmp=function(e,n){return e.rank-n.rank}}(r||(r={}));const _=new(s(26169).Token)("@jupyterlab/mainmenu:IMainMenu")}}]); +//# sourceMappingURL=5072.733a1b5.js.map \ No newline at end of file diff --git a/_static/build/5072.733a1b5.js.map b/_static/build/5072.733a1b5.js.map new file mode 100644 index 0000000..7eb587b --- /dev/null +++ b/_static/build/5072.733a1b5.js.map @@ -0,0 +1 @@ +{"version":3,"file":"5072.733a1b5.js","mappings":"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","sources":["webpack://_JUPYTERLAB.CORE_OUTPUT/../src/mainmenu.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/edit.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/file.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/help.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/kernel.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/run.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/settings.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/tabs.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/view.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/tokens.ts"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/_static/build/509.6448878.js b/_static/build/509.6448878.js new file mode 100644 index 0000000..5534ff1 --- /dev/null +++ b/_static/build/509.6448878.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[509,1507],{11507:(t,e,o)=>{o.r(e),o.d(e,{ITooltipManager:()=>s,Tooltip:()=>a});const s=new(o(26169).Token)("@jupyterlab/tooltip:ITooltipManager");var i=o(2814),n=o(20040),r=o(94519);const d="jp-mod-tooltip",h=!0;class a extends r.Widget{constructor(t){super(),this._content=null;const e=this.layout=new r.PanelLayout,o=new n.MimeModel({data:t.bundle});this.anchor=t.anchor,this.addClass("jp-Tooltip"),this.hide(),this._editor=t.editor,this._position=t.position,this._rendermime=t.rendermime;const s=this._rendermime.preferredMimeType(t.bundle,"any");s&&(this._content=this._rendermime.createRenderer(s),this._content.renderModel(o).then((()=>this._setGeometry())).catch((t=>console.error("tooltip rendering failed",t))),this._content.addClass("jp-Tooltip-content"),e.addWidget(this._content))}dispose(){this._content&&(this._content.dispose(),this._content=null),super.dispose()}handleEvent(t){if(this.isHidden||this.isDisposed)return;const{node:e}=this,o=t.target;switch(t.type){case"keydown":if(e.contains(o))return;this.dispose();break;case"mousedown":if(e.contains(o))return void this.activate();this.dispose();break;case"scroll":this._evtScroll(t)}}onActivateRequest(t){this.node.tabIndex=0,this.node.focus()}onAfterAttach(t){document.body.classList.add(d),document.addEventListener("keydown",this,h),document.addEventListener("mousedown",this,h),this.anchor.node.addEventListener("scroll",this,h),this.update()}onBeforeDetach(t){document.body.classList.remove(d),document.removeEventListener("keydown",this,h),document.removeEventListener("mousedown",this,h),this.anchor.node.removeEventListener("scroll",this,h)}onUpdateRequest(t){this.isHidden&&this.show(),this._setGeometry(),super.onUpdateRequest(t)}_evtScroll(t){this.node.contains(t.target)||this.update()}_getTokenPosition(){const t=this._editor,e=t.getCursorPosition(),o=t.getOffsetAt(e),s=t.getLine(e.line);if(!s)return;const i=s.substring(0,o).split(/\W+/),n=i[i.length-1],r=n?o-n.length:o;return t.getPositionAt(r)}_setGeometry(){const t=this._position?this._position:this._getTokenPosition();if(!t)return;const e=this._editor,o=e.getCoordinateForPosition(t),s=window.getComputedStyle(this.node),n=parseInt(s.paddingLeft,10)||0,r=e.host.closest(".jp-MainAreaWidget > .lm-Widget")||e.host;i.HoverBox.setGeometry({anchor:o,host:r,maxHeight:250,minHeight:20,node:this.node,offset:{horizontal:-1*n},privilege:"below",outOfViewDisplay:{top:"stick-inside",bottom:"stick-inside"},style:s})}}}}]); +//# sourceMappingURL=509.6448878.js.map \ No newline at end of file diff --git a/_static/build/509.6448878.js.map b/_static/build/509.6448878.js.map new file mode 100644 index 0000000..f3f4c59 --- /dev/null +++ b/_static/build/509.6448878.js.map @@ -0,0 +1 @@ +{"version":3,"file":"509.6448878.js","mappings":"2LAaO,MAAM,EAAkB,I,SAAI,OACjC,uC,oCCGF,MAUM,EAAa,iBAeb,GAAc,EAKd,MAAO,UAAgB,SAI3B,YAAY,GACV,QAkMM,cAAyC,KAhM/C,MAAM,EAAU,KAAK,OAAS,IAAI,cAC5B,EAAQ,IAAI,YAAU,CAAE,KAAM,EAAQ,SAE5C,KAAK,OAAS,EAAQ,OACtB,KAAK,SAzCa,cA0ClB,KAAK,OACL,KAAK,QAAU,EAAQ,OACvB,KAAK,UAAY,EAAQ,SACzB,KAAK,YAAc,EAAQ,WAE3B,MAAM,EAAW,KAAK,YAAY,kBAAkB,EAAQ,OAAQ,OAE/D,IAIL,KAAK,SAAW,KAAK,YAAY,eAAe,GAChD,KAAK,SACF,YAAY,GACZ,MAAK,IAAM,KAAK,iBAChB,OAAM,GAAS,QAAQ,MAAM,2BAA4B,KAC5D,KAAK,SAAS,SArDI,sBAsDlB,EAAO,UAAU,KAAK,UACxB,CAUA,UACM,KAAK,WACP,KAAK,SAAS,UACd,KAAK,SAAW,MAElB,MAAM,SACR,CAYA,YAAY,GACV,GAAI,KAAK,UAAY,KAAK,WACxB,OAGF,MAAM,KAAE,GAAS,KACX,EAAS,EAAM,OAErB,OAAQ,EAAM,MACZ,IAAK,UACH,GAAI,EAAK,SAAS,GAChB,OAEF,KAAK,UACL,MACF,IAAK,YACH,GAAI,EAAK,SAAS,GAEhB,YADA,KAAK,WAGP,KAAK,UACL,MACF,IAAK,SACH,KAAK,WAAW,GAKtB,CAKU,kBAAkB,GAC1B,KAAK,KAAK,SAAW,EACrB,KAAK,KAAK,OACZ,CAKU,cAAc,GACtB,SAAS,KAAK,UAAU,IAAI,GAC5B,SAAS,iBAAiB,UAAW,KAAM,GAC3C,SAAS,iBAAiB,YAAa,KAAM,GAC7C,KAAK,OAAO,KAAK,iBAAiB,SAAU,KAAM,GAClD,KAAK,QACP,CAKU,eAAe,GACvB,SAAS,KAAK,UAAU,OAAO,GAC/B,SAAS,oBAAoB,UAAW,KAAM,GAC9C,SAAS,oBAAoB,YAAa,KAAM,GAChD,KAAK,OAAO,KAAK,oBAAoB,SAAU,KAAM,EACvD,CAKU,gBAAgB,GACpB,KAAK,UACP,KAAK,OAEP,KAAK,eACL,MAAM,gBAAgB,EACxB,CAKQ,WAAW,GAIb,KAAK,KAAK,SAAS,EAAM,SAI7B,KAAK,QACP,CAKQ,oBACN,MAAM,EAAS,KAAK,QACd,EAAS,EAAO,oBAChB,EAAM,EAAO,YAAY,GACzB,EAAO,EAAO,QAAQ,EAAO,MAEnC,IAAK,EACH,OAGF,MAAM,EAAS,EAAK,UAAU,EAAG,GAAK,MAAM,OACtC,EAAO,EAAO,EAAO,OAAS,GAC9B,EAAQ,EAAO,EAAM,EAAK,OAAS,EACzC,OAAO,EAAO,cAAc,EAC9B,CAKQ,eAEN,MAAM,EAAW,KAAK,UAAY,KAAK,UAAY,KAAK,oBAExD,IAAK,EACH,OAGF,MAAM,EAAS,KAAK,QAEd,EAAS,EAAO,yBAAyB,GACzC,EAAQ,OAAO,iBAAiB,KAAK,MACrC,EAAc,SAAS,EAAM,YAAc,KAAO,EAElD,EACH,EAAO,KAAK,QAAQ,oCACrB,EAAO,KAGT,uBAAqB,CACnB,SACA,OACA,UApMa,IAqMb,UA1Ma,GA2Mb,KAAM,KAAK,KACX,OAAQ,CAAE,YAAa,EAAI,GAC3B,UAAW,QACX,iBAAkB,CAChB,IAAK,eACL,OAAQ,gBAEV,MAAO,GAEX,E","sources":["webpack://_JUPYTERLAB.CORE_OUTPUT/../src/tokens.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/widget.ts"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/_static/build/5096.8ed0d8e.js b/_static/build/5096.8ed0d8e.js new file mode 100644 index 0000000..ea111ce --- /dev/null +++ b/_static/build/5096.8ed0d8e.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[5096,5971],{15971:(e,t,r)=>{r.r(t),r.d(t,{default:()=>v});var n=r(67504),a=r(2814),o=r(17543),c=r(60192),i=r(49005),s=r(15786),l=r(4265),d=r(90901),g=r(985),h=r(70942);class u{constructor(){this.matches=[],this.currentMatchIndex=null,this.isReadOnly=!0,this._changed=new h.Signal(this)}static canSearchOn(e){return e instanceof g.DocumentWidget&&e.content instanceof o.CSVViewer}getInitialQuery(e){return null}async startQuery(e,t){return this._target=t,this._query=e,t.content.searchService.find(e),this.matches}async endQuery(){this._target.content.searchService.clear()}async endSearch(){this._target.content.searchService.clear()}async highlightNext(){this._target.content.searchService.find(this._query)}async highlightPrevious(){this._target.content.searchService.find(this._query,!0)}async replaceCurrentMatch(e){return!1}async replaceAllMatches(e){return!1}get changed(){return this._changed}}const T="CSVTable",y="TSVTable",C={activate:function(e,t,r,n,c,i,s,l){let d;l&&(l.registerFactory(T,"delimiter",(e=>new o.CSVDelimiter({widget:e.content,translator:t}))),s&&(d=(0,a.createToolbarFactory)(l,s,T,C.id,t)));const g=new o.CSVViewerFactory({name:T,fileTypes:["csv"],defaultFor:["csv"],readOnly:!0,toolbarFactory:d,translator:t}),h=new a.WidgetTracker({namespace:"csvviewer"});let y=L.LIGHT_STYLE,_=L.LIGHT_TEXT_CONFIG;r&&r.restore(h,{command:"docmanager:open",args:e=>({path:e.context.path,factory:T}),name:e=>e.context.path}),e.docRegistry.addWidgetFactory(g);const v=e.docRegistry.getFileType("csv");g.widgetCreated.connect(((e,t)=>{h.add(t),t.context.pathChanged.connect((()=>{h.save(t)})),v&&(t.title.icon=v.icon,t.title.iconClass=v.iconClass,t.title.iconLabel=v.iconLabel),t.content.style=y,t.content.rendererConfig=_}));n&&n.themeChanged.connect((()=>{const e=!n||!n.theme||n.isLight(n.theme);y=e?L.LIGHT_STYLE:L.DARK_STYLE,_=e?L.LIGHT_TEXT_CONFIG:L.DARK_TEXT_CONFIG,h.forEach((e=>{e.content.style=y,e.content.rendererConfig=_}))})),c&&F(c,h,t),i&&i.register("csv",u)},id:"@jupyterlab/csvviewer-extension:csv",requires:[l.ITranslator],optional:[n.ILayoutRestorer,a.IThemeManager,i.IMainMenu,c.ISearchProviderRegistry,s.ISettingRegistry,a.IToolbarWidgetRegistry],autoStart:!0},_={activate:function(e,t,r,n,c,i,s,l){let d;l&&(l.registerFactory(y,"delimiter",(e=>new o.CSVDelimiter({widget:e.content,translator:t}))),s&&(d=(0,a.createToolbarFactory)(l,s,y,_.id,t)));const g=new o.TSVViewerFactory({name:y,fileTypes:["tsv"],defaultFor:["tsv"],readOnly:!0,toolbarFactory:d,translator:t}),h=new a.WidgetTracker({namespace:"tsvviewer"});let T=L.LIGHT_STYLE,C=L.LIGHT_TEXT_CONFIG;r&&r.restore(h,{command:"docmanager:open",args:e=>({path:e.context.path,factory:y}),name:e=>e.context.path}),e.docRegistry.addWidgetFactory(g);const v=e.docRegistry.getFileType("tsv");g.widgetCreated.connect(((e,t)=>{h.add(t),t.context.pathChanged.connect((()=>{h.save(t)})),v&&(t.title.icon=v.icon,t.title.iconClass=v.iconClass,t.title.iconLabel=v.iconLabel),t.content.style=T,t.content.rendererConfig=C}));n&&n.themeChanged.connect((()=>{const e=!n||!n.theme||n.isLight(n.theme);T=e?L.LIGHT_STYLE:L.DARK_STYLE,C=e?L.LIGHT_TEXT_CONFIG:L.DARK_TEXT_CONFIG,h.forEach((e=>{e.content.style=T,e.content.rendererConfig=C}))})),c&&F(c,h,t),i&&i.register("tsv",u)},id:"@jupyterlab/csvviewer-extension:tsv",requires:[l.ITranslator],optional:[n.ILayoutRestorer,a.IThemeManager,i.IMainMenu,c.ISearchProviderRegistry,s.ISettingRegistry,a.IToolbarWidgetRegistry],autoStart:!0};function F(e,t,r){const n=r.load("jupyterlab");e.editMenu.goToLiners.add({tracker:t,goToLine:e=>a.InputDialog.getNumber({title:n.__("Go to Line"),value:0}).then((t=>{t.button.accept&&null!==t.value&&e.content.goToLine(t.value)}))})}const v=[C,_];var L;!function(e){e.LIGHT_STYLE=Object.assign(Object.assign({},d.DataGrid.defaultStyle),{voidColor:"#F3F3F3",backgroundColor:"white",headerBackgroundColor:"#EEEEEE",gridLineColor:"rgba(20, 20, 20, 0.15)",headerGridLineColor:"rgba(20, 20, 20, 0.25)",rowBackgroundColor:e=>e%2==0?"#F5F5F5":"white"}),e.DARK_STYLE=Object.assign(Object.assign({},d.DataGrid.defaultStyle),{voidColor:"black",backgroundColor:"#111111",headerBackgroundColor:"#424242",gridLineColor:"rgba(235, 235, 235, 0.15)",headerGridLineColor:"rgba(235, 235, 235, 0.25)",rowBackgroundColor:e=>e%2==0?"#212121":"#111111"}),e.LIGHT_TEXT_CONFIG={textColor:"#111111",matchBackgroundColor:"#FFFFE0",currentMatchBackgroundColor:"#FFFF00",horizontalAlignment:"right"},e.DARK_TEXT_CONFIG={textColor:"#F5F5F5",matchBackgroundColor:"#838423",currentMatchBackgroundColor:"#A3807A",horizontalAlignment:"right"}}(L||(L={}))}}]); +//# sourceMappingURL=5096.8ed0d8e.js.map \ No newline at end of file diff --git a/_static/build/5096.8ed0d8e.js.map b/_static/build/5096.8ed0d8e.js.map new file mode 100644 index 0000000..0a8c59a --- /dev/null +++ b/_static/build/5096.8ed0d8e.js.map @@ -0,0 +1 @@ +{"version":3,"file":"5096.8ed0d8e.js","mappings":"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","sources":["webpack://_JUPYTERLAB.CORE_OUTPUT/../src/searchprovider.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/index.ts"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/_static/build/5126.eecad7a.js b/_static/build/5126.eecad7a.js new file mode 100644 index 0000000..9026c9d --- /dev/null +++ b/_static/build/5126.eecad7a.js @@ -0,0 +1,2 @@ +(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[5126],{95126:(s,j,e)=>{var n={"./af":75436,"./af.js":75436,"./ar":27662,"./ar-dz":73578,"./ar-dz.js":73578,"./ar-kw":79535,"./ar-kw.js":79535,"./ar-ly":45801,"./ar-ly.js":45801,"./ar-ma":64784,"./ar-ma.js":64784,"./ar-sa":59050,"./ar-sa.js":59050,"./ar-tn":62042,"./ar-tn.js":62042,"./ar.js":27662,"./az":11071,"./az.js":11071,"./be":48369,"./be.js":48369,"./bg":37874,"./bg.js":37874,"./bm":88393,"./bm.js":88393,"./bn":92722,"./bn-bd":70643,"./bn-bd.js":70643,"./bn.js":92722,"./bo":85165,"./bo.js":85165,"./br":96645,"./br.js":96645,"./bs":15870,"./bs.js":15870,"./ca":3993,"./ca.js":3993,"./cs":3627,"./cs.js":3627,"./cv":58957,"./cv.js":58957,"./cy":55770,"./cy.js":55770,"./da":54649,"./da.js":54649,"./de":89084,"./de-at":28709,"./de-at.js":28709,"./de-ch":21320,"./de-ch.js":21320,"./de.js":89084,"./dv":63575,"./dv.js":63575,"./el":56395,"./el.js":56395,"./en-au":93826,"./en-au.js":93826,"./en-ca":13769,"./en-ca.js":13769,"./en-gb":24155,"./en-gb.js":24155,"./en-ie":1518,"./en-ie.js":1518,"./en-il":24043,"./en-il.js":24043,"./en-in":18404,"./en-in.js":18404,"./en-nz":79220,"./en-nz.js":79220,"./en-sg":29133,"./en-sg.js":29133,"./eo":48648,"./eo.js":48648,"./es":68465,"./es-do":16734,"./es-do.js":16734,"./es-mx":31910,"./es-mx.js":31910,"./es-us":67093,"./es-us.js":67093,"./es.js":68465,"./et":53742,"./et.js":53742,"./eu":41088,"./eu.js":41088,"./fa":13554,"./fa.js":13554,"./fi":3996,"./fi.js":3996,"./fil":20368,"./fil.js":20368,"./fo":36132,"./fo.js":36132,"./fr":71265,"./fr-ca":31467,"./fr-ca.js":31467,"./fr-ch":98279,"./fr-ch.js":98279,"./fr.js":71265,"./fy":88841,"./fy.js":88841,"./ga":65254,"./ga.js":65254,"./gd":72520,"./gd.js":72520,"./gl":94898,"./gl.js":94898,"./gom-deva":35171,"./gom-deva.js":35171,"./gom-latn":63681,"./gom-latn.js":63681,"./gu":32613,"./gu.js":32613,"./he":42716,"./he.js":42716,"./hi":71315,"./hi.js":71315,"./hr":14577,"./hr.js":14577,"./hu":26736,"./hu.js":26736,"./hy-am":3417,"./hy-am.js":3417,"./id":18890,"./id.js":18890,"./is":14468,"./is.js":14468,"./it":45652,"./it-ch":80981,"./it-ch.js":80981,"./it.js":45652,"./ja":44511,"./ja.js":44511,"./jv":63069,"./jv.js":63069,"./ka":75258,"./ka.js":75258,"./kk":77086,"./kk.js":77086,"./km":84125,"./km.js":84125,"./kn":37197,"./kn.js":37197,"./ko":65508,"./ko.js":65508,"./ku":18195,"./ku.js":18195,"./ky":83971,"./ky.js":83971,"./lb":79651,"./lb.js":79651,"./lo":58072,"./lo.js":58072,"./lt":62146,"./lt.js":62146,"./lv":84824,"./lv.js":84824,"./me":49674,"./me.js":49674,"./mi":56500,"./mi.js":56500,"./mk":85111,"./mk.js":85111,"./ml":55597,"./ml.js":55597,"./mn":83610,"./mn.js":83610,"./mr":47565,"./mr.js":47565,"./ms":7918,"./ms-my":64736,"./ms-my.js":64736,"./ms.js":7918,"./mt":5947,"./mt.js":5947,"./my":55624,"./my.js":55624,"./nb":98607,"./nb.js":98607,"./ne":85457,"./ne.js":85457,"./nl":54041,"./nl-be":3439,"./nl-be.js":3439,"./nl.js":54041,"./nn":82457,"./nn.js":82457,"./oc-lnc":26236,"./oc-lnc.js":26236,"./pa-in":38772,"./pa-in.js":38772,"./pl":43219,"./pl.js":43219,"./pt":31071,"./pt-br":10376,"./pt-br.js":10376,"./pt.js":31071,"./ro":43551,"./ro.js":43551,"./ru":878,"./ru.js":878,"./sd":93332,"./sd.js":93332,"./se":55268,"./se.js":55268,"./si":87050,"./si.js":87050,"./sk":46201,"./sk.js":46201,"./sl":96675,"./sl.js":96675,"./sq":27632,"./sq.js":27632,"./sr":83419,"./sr-cyrl":40617,"./sr-cyrl.js":40617,"./sr.js":83419,"./ss":65321,"./ss.js":65321,"./sv":52765,"./sv.js":52765,"./sw":32831,"./sw.js":32831,"./ta":77530,"./ta.js":77530,"./te":26726,"./te.js":26726,"./tet":78172,"./tet.js":78172,"./tg":48165,"./tg.js":48165,"./th":99496,"./th.js":99496,"./tk":58573,"./tk.js":58573,"./tl-ph":74742,"./tl-ph.js":74742,"./tlh":24780,"./tlh.js":24780,"./tr":80835,"./tr.js":80835,"./tzl":2840,"./tzl.js":2840,"./tzm":66757,"./tzm-latn":70442,"./tzm-latn.js":70442,"./tzm.js":66757,"./ug-cn":64413,"./ug-cn.js":64413,"./uk":64800,"./uk.js":64800,"./ur":61809,"./ur.js":61809,"./uz":37448,"./uz-latn":63337,"./uz-latn.js":63337,"./uz.js":37448,"./vi":83528,"./vi.js":83528,"./x-pseudo":581,"./x-pseudo.js":581,"./yo":7658,"./yo.js":7658,"./zh-cn":55526,"./zh-cn.js":55526,"./zh-hk":32809,"./zh-hk.js":32809,"./zh-mo":57892,"./zh-mo.js":57892,"./zh-tw":79204,"./zh-tw.js":79204};function a(s){var j=t(s);return e(j)}function t(s){if(!e.o(n,s)){var j=new Error("Cannot find module '"+s+"'");throw j.code="MODULE_NOT_FOUND",j}return n[s]}a.keys=function(){return Object.keys(n)},a.resolve=t,s.exports=a,a.id=95126}}]); +//# sourceMappingURL=5126.eecad7a.js.map \ No newline at end of file diff --git a/_static/build/5126.eecad7a.js.map b/_static/build/5126.eecad7a.js.map new file mode 100644 index 0000000..ff64586 --- /dev/null +++ b/_static/build/5126.eecad7a.js.map @@ -0,0 +1 @@ +{"version":3,"file":"5126.eecad7a.js","mappings":"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","sources":["webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/moment/locale/ sync ^\\.\\/.*$"],"sourcesContent":["var map = {\n\t\"./af\": 75436,\n\t\"./af.js\": 75436,\n\t\"./ar\": 27662,\n\t\"./ar-dz\": 73578,\n\t\"./ar-dz.js\": 73578,\n\t\"./ar-kw\": 79535,\n\t\"./ar-kw.js\": 79535,\n\t\"./ar-ly\": 45801,\n\t\"./ar-ly.js\": 45801,\n\t\"./ar-ma\": 64784,\n\t\"./ar-ma.js\": 64784,\n\t\"./ar-sa\": 59050,\n\t\"./ar-sa.js\": 59050,\n\t\"./ar-tn\": 62042,\n\t\"./ar-tn.js\": 62042,\n\t\"./ar.js\": 27662,\n\t\"./az\": 11071,\n\t\"./az.js\": 11071,\n\t\"./be\": 48369,\n\t\"./be.js\": 48369,\n\t\"./bg\": 37874,\n\t\"./bg.js\": 37874,\n\t\"./bm\": 88393,\n\t\"./bm.js\": 88393,\n\t\"./bn\": 92722,\n\t\"./bn-bd\": 70643,\n\t\"./bn-bd.js\": 70643,\n\t\"./bn.js\": 92722,\n\t\"./bo\": 85165,\n\t\"./bo.js\": 85165,\n\t\"./br\": 96645,\n\t\"./br.js\": 96645,\n\t\"./bs\": 15870,\n\t\"./bs.js\": 15870,\n\t\"./ca\": 3993,\n\t\"./ca.js\": 3993,\n\t\"./cs\": 3627,\n\t\"./cs.js\": 3627,\n\t\"./cv\": 58957,\n\t\"./cv.js\": 58957,\n\t\"./cy\": 55770,\n\t\"./cy.js\": 55770,\n\t\"./da\": 54649,\n\t\"./da.js\": 54649,\n\t\"./de\": 89084,\n\t\"./de-at\": 28709,\n\t\"./de-at.js\": 28709,\n\t\"./de-ch\": 21320,\n\t\"./de-ch.js\": 21320,\n\t\"./de.js\": 89084,\n\t\"./dv\": 63575,\n\t\"./dv.js\": 63575,\n\t\"./el\": 56395,\n\t\"./el.js\": 56395,\n\t\"./en-au\": 93826,\n\t\"./en-au.js\": 93826,\n\t\"./en-ca\": 13769,\n\t\"./en-ca.js\": 13769,\n\t\"./en-gb\": 24155,\n\t\"./en-gb.js\": 24155,\n\t\"./en-ie\": 1518,\n\t\"./en-ie.js\": 1518,\n\t\"./en-il\": 24043,\n\t\"./en-il.js\": 24043,\n\t\"./en-in\": 18404,\n\t\"./en-in.js\": 18404,\n\t\"./en-nz\": 79220,\n\t\"./en-nz.js\": 79220,\n\t\"./en-sg\": 29133,\n\t\"./en-sg.js\": 29133,\n\t\"./eo\": 48648,\n\t\"./eo.js\": 48648,\n\t\"./es\": 68465,\n\t\"./es-do\": 16734,\n\t\"./es-do.js\": 16734,\n\t\"./es-mx\": 31910,\n\t\"./es-mx.js\": 31910,\n\t\"./es-us\": 67093,\n\t\"./es-us.js\": 67093,\n\t\"./es.js\": 68465,\n\t\"./et\": 53742,\n\t\"./et.js\": 53742,\n\t\"./eu\": 41088,\n\t\"./eu.js\": 41088,\n\t\"./fa\": 13554,\n\t\"./fa.js\": 13554,\n\t\"./fi\": 3996,\n\t\"./fi.js\": 3996,\n\t\"./fil\": 20368,\n\t\"./fil.js\": 20368,\n\t\"./fo\": 36132,\n\t\"./fo.js\": 36132,\n\t\"./fr\": 71265,\n\t\"./fr-ca\": 31467,\n\t\"./fr-ca.js\": 31467,\n\t\"./fr-ch\": 98279,\n\t\"./fr-ch.js\": 98279,\n\t\"./fr.js\": 71265,\n\t\"./fy\": 88841,\n\t\"./fy.js\": 88841,\n\t\"./ga\": 65254,\n\t\"./ga.js\": 65254,\n\t\"./gd\": 72520,\n\t\"./gd.js\": 72520,\n\t\"./gl\": 94898,\n\t\"./gl.js\": 94898,\n\t\"./gom-deva\": 35171,\n\t\"./gom-deva.js\": 35171,\n\t\"./gom-latn\": 63681,\n\t\"./gom-latn.js\": 63681,\n\t\"./gu\": 32613,\n\t\"./gu.js\": 32613,\n\t\"./he\": 42716,\n\t\"./he.js\": 42716,\n\t\"./hi\": 71315,\n\t\"./hi.js\": 71315,\n\t\"./hr\": 14577,\n\t\"./hr.js\": 14577,\n\t\"./hu\": 26736,\n\t\"./hu.js\": 26736,\n\t\"./hy-am\": 3417,\n\t\"./hy-am.js\": 3417,\n\t\"./id\": 18890,\n\t\"./id.js\": 18890,\n\t\"./is\": 14468,\n\t\"./is.js\": 14468,\n\t\"./it\": 45652,\n\t\"./it-ch\": 80981,\n\t\"./it-ch.js\": 80981,\n\t\"./it.js\": 45652,\n\t\"./ja\": 44511,\n\t\"./ja.js\": 44511,\n\t\"./jv\": 63069,\n\t\"./jv.js\": 63069,\n\t\"./ka\": 75258,\n\t\"./ka.js\": 75258,\n\t\"./kk\": 77086,\n\t\"./kk.js\": 77086,\n\t\"./km\": 84125,\n\t\"./km.js\": 84125,\n\t\"./kn\": 37197,\n\t\"./kn.js\": 37197,\n\t\"./ko\": 65508,\n\t\"./ko.js\": 65508,\n\t\"./ku\": 18195,\n\t\"./ku.js\": 18195,\n\t\"./ky\": 83971,\n\t\"./ky.js\": 83971,\n\t\"./lb\": 79651,\n\t\"./lb.js\": 79651,\n\t\"./lo\": 58072,\n\t\"./lo.js\": 58072,\n\t\"./lt\": 62146,\n\t\"./lt.js\": 62146,\n\t\"./lv\": 84824,\n\t\"./lv.js\": 84824,\n\t\"./me\": 49674,\n\t\"./me.js\": 49674,\n\t\"./mi\": 56500,\n\t\"./mi.js\": 56500,\n\t\"./mk\": 85111,\n\t\"./mk.js\": 85111,\n\t\"./ml\": 55597,\n\t\"./ml.js\": 55597,\n\t\"./mn\": 83610,\n\t\"./mn.js\": 83610,\n\t\"./mr\": 47565,\n\t\"./mr.js\": 47565,\n\t\"./ms\": 7918,\n\t\"./ms-my\": 64736,\n\t\"./ms-my.js\": 64736,\n\t\"./ms.js\": 7918,\n\t\"./mt\": 5947,\n\t\"./mt.js\": 5947,\n\t\"./my\": 55624,\n\t\"./my.js\": 55624,\n\t\"./nb\": 98607,\n\t\"./nb.js\": 98607,\n\t\"./ne\": 85457,\n\t\"./ne.js\": 85457,\n\t\"./nl\": 54041,\n\t\"./nl-be\": 3439,\n\t\"./nl-be.js\": 3439,\n\t\"./nl.js\": 54041,\n\t\"./nn\": 82457,\n\t\"./nn.js\": 82457,\n\t\"./oc-lnc\": 26236,\n\t\"./oc-lnc.js\": 26236,\n\t\"./pa-in\": 38772,\n\t\"./pa-in.js\": 38772,\n\t\"./pl\": 43219,\n\t\"./pl.js\": 43219,\n\t\"./pt\": 31071,\n\t\"./pt-br\": 10376,\n\t\"./pt-br.js\": 10376,\n\t\"./pt.js\": 31071,\n\t\"./ro\": 43551,\n\t\"./ro.js\": 43551,\n\t\"./ru\": 878,\n\t\"./ru.js\": 878,\n\t\"./sd\": 93332,\n\t\"./sd.js\": 93332,\n\t\"./se\": 55268,\n\t\"./se.js\": 55268,\n\t\"./si\": 87050,\n\t\"./si.js\": 87050,\n\t\"./sk\": 46201,\n\t\"./sk.js\": 46201,\n\t\"./sl\": 96675,\n\t\"./sl.js\": 96675,\n\t\"./sq\": 27632,\n\t\"./sq.js\": 27632,\n\t\"./sr\": 83419,\n\t\"./sr-cyrl\": 40617,\n\t\"./sr-cyrl.js\": 40617,\n\t\"./sr.js\": 83419,\n\t\"./ss\": 65321,\n\t\"./ss.js\": 65321,\n\t\"./sv\": 52765,\n\t\"./sv.js\": 52765,\n\t\"./sw\": 32831,\n\t\"./sw.js\": 32831,\n\t\"./ta\": 77530,\n\t\"./ta.js\": 77530,\n\t\"./te\": 26726,\n\t\"./te.js\": 26726,\n\t\"./tet\": 78172,\n\t\"./tet.js\": 78172,\n\t\"./tg\": 48165,\n\t\"./tg.js\": 48165,\n\t\"./th\": 99496,\n\t\"./th.js\": 99496,\n\t\"./tk\": 58573,\n\t\"./tk.js\": 58573,\n\t\"./tl-ph\": 74742,\n\t\"./tl-ph.js\": 74742,\n\t\"./tlh\": 24780,\n\t\"./tlh.js\": 24780,\n\t\"./tr\": 80835,\n\t\"./tr.js\": 80835,\n\t\"./tzl\": 2840,\n\t\"./tzl.js\": 2840,\n\t\"./tzm\": 66757,\n\t\"./tzm-latn\": 70442,\n\t\"./tzm-latn.js\": 70442,\n\t\"./tzm.js\": 66757,\n\t\"./ug-cn\": 64413,\n\t\"./ug-cn.js\": 64413,\n\t\"./uk\": 64800,\n\t\"./uk.js\": 64800,\n\t\"./ur\": 61809,\n\t\"./ur.js\": 61809,\n\t\"./uz\": 37448,\n\t\"./uz-latn\": 63337,\n\t\"./uz-latn.js\": 63337,\n\t\"./uz.js\": 37448,\n\t\"./vi\": 83528,\n\t\"./vi.js\": 83528,\n\t\"./x-pseudo\": 581,\n\t\"./x-pseudo.js\": 581,\n\t\"./yo\": 7658,\n\t\"./yo.js\": 7658,\n\t\"./zh-cn\": 55526,\n\t\"./zh-cn.js\": 55526,\n\t\"./zh-hk\": 32809,\n\t\"./zh-hk.js\": 32809,\n\t\"./zh-mo\": 57892,\n\t\"./zh-mo.js\": 57892,\n\t\"./zh-tw\": 79204,\n\t\"./zh-tw.js\": 79204\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 95126;"],"names":["map","webpackContext","req","id","webpackContextResolve","__webpack_require__","o","e","Error","code","keys","Object","resolve","module","exports"],"sourceRoot":""} \ No newline at end of file diff --git a/_static/build/5129.1ba4763.js b/_static/build/5129.1ba4763.js new file mode 100644 index 0000000..4c2b338 --- /dev/null +++ b/_static/build/5129.1ba4763.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[5129,1290],{25129:(e,t,o)=>{o.r(t),o.d(t,{addCommands:()=>v,default:()=>g});var i,a=o(67504),n=o(2814),r=o(58033),l=o(4265);!function(e){e.resetImage="imageviewer:reset-image",e.zoomIn="imageviewer:zoom-in",e.zoomOut="imageviewer:zoom-out",e.flipHorizontal="imageviewer:flip-horizontal",e.flipVertical="imageviewer:flip-vertical",e.rotateClockwise="imageviewer:rotate-clockwise",e.rotateCounterclockwise="imageviewer:rotate-counterclockwise",e.invertColors="imageviewer:invert-colors"}(i||(i={}));const c=["png","gif","jpeg","bmp","ico","tiff"],d="Image",s="Image (Text)",m=["svg","xbm"],u=new RegExp(`[.](${m.join("|")})$`),g={activate:function(e,t,o,a){const l=t.load("jupyterlab");function g(t,o){var i,a;o.context.pathChanged.connect((()=>{w.save(o)})),w.add(o);const n=e.docRegistry.getFileTypesForPath(o.context.path);n.length>0&&(o.title.icon=n[0].icon,o.title.iconClass=null!==(i=n[0].iconClass)&&void 0!==i?i:"",o.title.iconLabel=null!==(a=n[0].iconLabel)&&void 0!==a?a:"")}[new r.ImageViewerFactory({name:d,modelName:"base64",fileTypes:[...c,...m],defaultFor:c,readOnly:!0}),new r.ImageViewerFactory({name:s,modelName:"text",fileTypes:m,defaultFor:m,readOnly:!0})].forEach((t=>{e.docRegistry.addWidgetFactory(t),t.widgetCreated.connect(g)}));const w=new n.WidgetTracker({namespace:"image-widget"});if(a&&a.restore(w,{command:"docmanager:open",args:e=>({path:e.context.path,factory:u.test(e.context.path)?s:d}),name:e=>e.context.path}),v(e,w,t),o){const e=l.__("Image Viewer");[i.zoomIn,i.zoomOut,i.resetImage,i.rotateClockwise,i.rotateCounterclockwise,i.flipHorizontal,i.flipVertical,i.invertColors].forEach((t=>{o.addItem({command:t,category:e})}))}return w},id:"@jupyterlab/imageviewer-extension:plugin",provides:r.IImageTracker,requires:[l.ITranslator],optional:[n.ICommandPalette,a.ILayoutRestorer],autoStart:!0};function v(e,t,o){const i=o.load("jupyterlab"),{commands:a,shell:n}=e;function r(){return null!==t.currentWidget&&t.currentWidget===n.currentWidget}a.addCommand("imageviewer:zoom-in",{execute:function(){var e;const o=null===(e=t.currentWidget)||void 0===e?void 0:e.content;o&&(o.scale=o.scale>1?o.scale+.5:2*o.scale)},label:i.__("Zoom In"),isEnabled:r}),a.addCommand("imageviewer:zoom-out",{execute:function(){var e;const o=null===(e=t.currentWidget)||void 0===e?void 0:e.content;o&&(o.scale=o.scale>1?o.scale-.5:o.scale/2)},label:i.__("Zoom Out"),isEnabled:r}),a.addCommand("imageviewer:reset-image",{execute:function(){var e;const o=null===(e=t.currentWidget)||void 0===e?void 0:e.content;o&&(o.scale=1,o.colorinversion=0,o.resetRotationFlip())},label:i.__("Reset Image"),isEnabled:r}),a.addCommand("imageviewer:rotate-clockwise",{execute:function(){var e;const o=null===(e=t.currentWidget)||void 0===e?void 0:e.content;o&&o.rotateClockwise()},label:i.__("Rotate Clockwise"),isEnabled:r}),a.addCommand("imageviewer:rotate-counterclockwise",{execute:function(){var e;const o=null===(e=t.currentWidget)||void 0===e?void 0:e.content;o&&o.rotateCounterclockwise()},label:i.__("Rotate Counterclockwise"),isEnabled:r}),a.addCommand("imageviewer:flip-horizontal",{execute:function(){var e;const o=null===(e=t.currentWidget)||void 0===e?void 0:e.content;o&&o.flipHorizontal()},label:i.__("Flip image horizontally"),isEnabled:r}),a.addCommand("imageviewer:flip-vertical",{execute:function(){var e;const o=null===(e=t.currentWidget)||void 0===e?void 0:e.content;o&&o.flipVertical()},label:i.__("Flip image vertically"),isEnabled:r}),a.addCommand("imageviewer:invert-colors",{execute:function(){var e;const o=null===(e=t.currentWidget)||void 0===e?void 0:e.content;o&&(o.colorinversion+=1,o.colorinversion%=2)},label:i.__("Invert Colors"),isEnabled:r})}}}]); +//# sourceMappingURL=5129.1ba4763.js.map \ No newline at end of file diff --git a/_static/build/5129.1ba4763.js.map b/_static/build/5129.1ba4763.js.map new file mode 100644 index 0000000..329477e --- /dev/null +++ b/_static/build/5129.1ba4763.js.map @@ -0,0 +1 @@ +{"version":3,"file":"5129.1ba4763.js","mappings":"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","sources":["webpack://_JUPYTERLAB.CORE_OUTPUT/../src/index.ts"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/_static/build/5153.763d8fa.js b/_static/build/5153.763d8fa.js new file mode 100644 index 0000000..b9f535a --- /dev/null +++ b/_static/build/5153.763d8fa.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[5153],{12091:(s,n,e)=>{e.d(n,{Z:()=>a});var r=e(34663),o=e.n(r),c=e(7638),t=e.n(c)()(o());t.push([s.id,".cm-s-ssms span.cm-keyword { color: blue; }\n.cm-s-ssms span.cm-comment { color: darkgreen; }\n.cm-s-ssms span.cm-string { color: red; }\n.cm-s-ssms span.cm-def { color: black; }\n.cm-s-ssms span.cm-variable { color: black; }\n.cm-s-ssms span.cm-variable-2 { color: black; }\n.cm-s-ssms span.cm-atom { color: darkgray; }\n.cm-s-ssms .CodeMirror-linenumber { color: teal; }\n.cm-s-ssms .CodeMirror-activeline-background { background: #ffffff; }\n.cm-s-ssms span.cm-string-2 { color: #FF00FF; }\n.cm-s-ssms span.cm-operator, \n.cm-s-ssms span.cm-bracket, \n.cm-s-ssms span.cm-punctuation { color: darkgray; }\n.cm-s-ssms .CodeMirror-gutters { border-right: 3px solid #ffee62; background-color: #ffffff; }\n.cm-s-ssms div.CodeMirror-selected { background: #ADD6FF; }\n\n","",{version:3,sources:["webpack://./../node_modules/codemirror/theme/ssms.css"],names:[],mappings:"AAAA,6BAA6B,WAAW,EAAE;AAC1C,6BAA6B,gBAAgB,EAAE;AAC/C,4BAA4B,UAAU,EAAE;AACxC,yBAAyB,YAAY,EAAE;AACvC,8BAA8B,YAAY,EAAE;AAC5C,gCAAgC,YAAY,EAAE;AAC9C,0BAA0B,eAAe,EAAE;AAC3C,oCAAoC,WAAW,EAAE;AACjD,+CAA+C,mBAAmB,EAAE;AACpE,8BAA8B,cAAc,EAAE;AAC9C;;iCAEiC,eAAe,EAAE;AAClD,iCAAiC,+BAA+B,EAAE,yBAAyB,EAAE;AAC7F,qCAAqC,mBAAmB,EAAE",sourcesContent:[".cm-s-ssms span.cm-keyword { color: blue; }\n.cm-s-ssms span.cm-comment { color: darkgreen; }\n.cm-s-ssms span.cm-string { color: red; }\n.cm-s-ssms span.cm-def { color: black; }\n.cm-s-ssms span.cm-variable { color: black; }\n.cm-s-ssms span.cm-variable-2 { color: black; }\n.cm-s-ssms span.cm-atom { color: darkgray; }\n.cm-s-ssms .CodeMirror-linenumber { color: teal; }\n.cm-s-ssms .CodeMirror-activeline-background { background: #ffffff; }\n.cm-s-ssms span.cm-string-2 { color: #FF00FF; }\n.cm-s-ssms span.cm-operator, \n.cm-s-ssms span.cm-bracket, \n.cm-s-ssms span.cm-punctuation { color: darkgray; }\n.cm-s-ssms .CodeMirror-gutters { border-right: 3px solid #ffee62; background-color: #ffffff; }\n.cm-s-ssms div.CodeMirror-selected { background: #ADD6FF; }\n\n"],sourceRoot:""}]);const a=t},7638:s=>{s.exports=function(s){var n=[];return n.toString=function(){return this.map((function(n){var e="",r=void 0!==n[5];return n[4]&&(e+="@supports (".concat(n[4],") {")),n[2]&&(e+="@media ".concat(n[2]," {")),r&&(e+="@layer".concat(n[5].length>0?" ".concat(n[5]):""," {")),e+=s(n),r&&(e+="}"),n[2]&&(e+="}"),n[4]&&(e+="}"),e})).join("")},n.i=function(s,e,r,o,c){"string"==typeof s&&(s=[[null,s,void 0]]);var t={};if(r)for(var a=0;a0?" ".concat(A[5]):""," {").concat(A[1],"}")),A[5]=c),e&&(A[2]?(A[1]="@media ".concat(A[2]," {").concat(A[1],"}"),A[2]=e):A[2]=e),o&&(A[4]?(A[1]="@supports (".concat(A[4],") {").concat(A[1],"}"),A[4]=o):A[4]="".concat(o)),n.push(A))}},n}},34663:s=>{s.exports=function(s){var n=s[1],e=s[3];if(!e)return n;if("function"==typeof btoa){var r=btoa(unescape(encodeURIComponent(JSON.stringify(e)))),o="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(r),c="/*# ".concat(o," */"),t=e.sources.map((function(s){return"/*# sourceURL=".concat(e.sourceRoot||"").concat(s," */")}));return[n].concat(t).concat([c]).join("\n")}return[n].join("\n")}},45153:(s,n,e)=>{e.r(n),e.d(n,{default:()=>C});var r=e(1892),o=e.n(r),c=e(95760),t=e.n(c),a=e(38311),i=e.n(a),m=e(58192),A=e.n(m),u=e(38060),l=e.n(u),p=e(54865),d=e.n(p),f=e(12091),v={};v.styleTagTransform=d(),v.setAttributes=A(),v.insert=i().bind(null,"head"),v.domAPI=t(),v.insertStyleElement=l(),o()(f.Z,v);const C=f.Z&&f.Z.locals?f.Z.locals:void 0},1892:s=>{var n=[];function e(s){for(var e=-1,r=0;r{var n={};s.exports=function(s,e){var r=function(s){if(void 0===n[s]){var e=document.querySelector(s);if(window.HTMLIFrameElement&&e instanceof window.HTMLIFrameElement)try{e=e.contentDocument.head}catch(s){e=null}n[s]=e}return n[s]}(s);if(!r)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");r.appendChild(e)}},38060:s=>{s.exports=function(s){var n=document.createElement("style");return s.setAttributes(n,s.attributes),s.insert(n,s.options),n}},58192:(s,n,e)=>{s.exports=function(s){var n=e.nc;n&&s.setAttribute("nonce",n)}},95760:s=>{s.exports=function(s){var n=s.insertStyleElement(s);return{update:function(e){!function(s,n,e){var r="";e.supports&&(r+="@supports (".concat(e.supports,") {")),e.media&&(r+="@media ".concat(e.media," {"));var o=void 0!==e.layer;o&&(r+="@layer".concat(e.layer.length>0?" ".concat(e.layer):""," {")),r+=e.css,o&&(r+="}"),e.media&&(r+="}"),e.supports&&(r+="}");var c=e.sourceMap;c&&"undefined"!=typeof btoa&&(r+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(c))))," */")),n.styleTagTransform(r,s,n.options)}(n,s,e)},remove:function(){!function(s){if(null===s.parentNode)return!1;s.parentNode.removeChild(s)}(n)}}}},54865:s=>{s.exports=function(s,n){if(n.styleSheet)n.styleSheet.cssText=s;else{for(;n.firstChild;)n.removeChild(n.firstChild);n.appendChild(document.createTextNode(s))}}}}]); +//# sourceMappingURL=5153.763d8fa.js.map \ No newline at end of file diff --git a/_static/build/5153.763d8fa.js.map b/_static/build/5153.763d8fa.js.map new file mode 100644 index 0000000..6d4b720 --- /dev/null +++ b/_static/build/5153.763d8fa.js.map @@ -0,0 +1 @@ +{"version":3,"file":"5153.763d8fa.js","mappings":"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","sources":["webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/theme/ssms.css","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/css-loader/dist/runtime/api.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/css-loader/dist/runtime/sourceMaps.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/theme/ssms.css?f494","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/insertBySelector.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/insertStyleElement.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/styleDomAPI.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/styleTagTransform.js"],"sourcesContent":["// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".cm-s-ssms span.cm-keyword { color: blue; }\\n.cm-s-ssms span.cm-comment { color: darkgreen; }\\n.cm-s-ssms span.cm-string { color: red; }\\n.cm-s-ssms span.cm-def { color: black; }\\n.cm-s-ssms span.cm-variable { color: black; }\\n.cm-s-ssms span.cm-variable-2 { color: black; }\\n.cm-s-ssms span.cm-atom { color: darkgray; }\\n.cm-s-ssms .CodeMirror-linenumber { color: teal; }\\n.cm-s-ssms .CodeMirror-activeline-background { background: #ffffff; }\\n.cm-s-ssms span.cm-string-2 { color: #FF00FF; }\\n.cm-s-ssms span.cm-operator, \\n.cm-s-ssms span.cm-bracket, \\n.cm-s-ssms span.cm-punctuation { color: darkgray; }\\n.cm-s-ssms .CodeMirror-gutters { border-right: 3px solid #ffee62; background-color: #ffffff; }\\n.cm-s-ssms div.CodeMirror-selected { background: #ADD6FF; }\\n\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./../node_modules/codemirror/theme/ssms.css\"],\"names\":[],\"mappings\":\"AAAA,6BAA6B,WAAW,EAAE;AAC1C,6BAA6B,gBAAgB,EAAE;AAC/C,4BAA4B,UAAU,EAAE;AACxC,yBAAyB,YAAY,EAAE;AACvC,8BAA8B,YAAY,EAAE;AAC5C,gCAAgC,YAAY,EAAE;AAC9C,0BAA0B,eAAe,EAAE;AAC3C,oCAAoC,WAAW,EAAE;AACjD,+CAA+C,mBAAmB,EAAE;AACpE,8BAA8B,cAAc,EAAE;AAC9C;;iCAEiC,eAAe,EAAE;AAClD,iCAAiC,+BAA+B,EAAE,yBAAyB,EAAE;AAC7F,qCAAqC,mBAAmB,EAAE\",\"sourcesContent\":[\".cm-s-ssms span.cm-keyword { color: blue; }\\n.cm-s-ssms span.cm-comment { color: darkgreen; }\\n.cm-s-ssms span.cm-string { color: red; }\\n.cm-s-ssms span.cm-def { color: black; }\\n.cm-s-ssms span.cm-variable { color: black; }\\n.cm-s-ssms span.cm-variable-2 { color: black; }\\n.cm-s-ssms span.cm-atom { color: darkgray; }\\n.cm-s-ssms .CodeMirror-linenumber { color: teal; }\\n.cm-s-ssms .CodeMirror-activeline-background { background: #ffffff; }\\n.cm-s-ssms span.cm-string-2 { color: #FF00FF; }\\n.cm-s-ssms span.cm-operator, \\n.cm-s-ssms span.cm-bracket, \\n.cm-s-ssms span.cm-punctuation { color: darkgray; }\\n.cm-s-ssms .CodeMirror-gutters { border-right: 3px solid #ffee62; background-color: #ffffff; }\\n.cm-s-ssms div.CodeMirror-selected { background: #ADD6FF; }\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\nmodule.exports = function (cssWithMappingToString) {\n var list = [];\n\n // return the list of modules as css string\n list.toString = function toString() {\n return this.map(function (item) {\n var content = \"\";\n var needLayer = typeof item[5] !== \"undefined\";\n if (item[4]) {\n content += \"@supports (\".concat(item[4], \") {\");\n }\n if (item[2]) {\n content += \"@media \".concat(item[2], \" {\");\n }\n if (needLayer) {\n content += \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\");\n }\n content += cssWithMappingToString(item);\n if (needLayer) {\n content += \"}\";\n }\n if (item[2]) {\n content += \"}\";\n }\n if (item[4]) {\n content += \"}\";\n }\n return content;\n }).join(\"\");\n };\n\n // import a list of modules into the list\n list.i = function i(modules, media, dedupe, supports, layer) {\n if (typeof modules === \"string\") {\n modules = [[null, modules, undefined]];\n }\n var alreadyImportedModules = {};\n if (dedupe) {\n for (var k = 0; k < this.length; k++) {\n var id = this[k][0];\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n for (var _k = 0; _k < modules.length; _k++) {\n var item = [].concat(modules[_k]);\n if (dedupe && alreadyImportedModules[item[0]]) {\n continue;\n }\n if (typeof layer !== \"undefined\") {\n if (typeof item[5] === \"undefined\") {\n item[5] = layer;\n } else {\n item[1] = \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\").concat(item[1], \"}\");\n item[5] = layer;\n }\n }\n if (media) {\n if (!item[2]) {\n item[2] = media;\n } else {\n item[1] = \"@media \".concat(item[2], \" {\").concat(item[1], \"}\");\n item[2] = media;\n }\n }\n if (supports) {\n if (!item[4]) {\n item[4] = \"\".concat(supports);\n } else {\n item[1] = \"@supports (\".concat(item[4], \") {\").concat(item[1], \"}\");\n item[4] = supports;\n }\n }\n list.push(item);\n }\n };\n return list;\n};","\"use strict\";\n\nmodule.exports = function (item) {\n var content = item[1];\n var cssMapping = item[3];\n if (!cssMapping) {\n return content;\n }\n if (typeof btoa === \"function\") {\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(cssMapping))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n var sourceMapping = \"/*# \".concat(data, \" */\");\n var sourceURLs = cssMapping.sources.map(function (source) {\n return \"/*# sourceURL=\".concat(cssMapping.sourceRoot || \"\").concat(source, \" */\");\n });\n return [content].concat(sourceURLs).concat([sourceMapping]).join(\"\\n\");\n }\n return [content].join(\"\\n\");\n};","\n import API from \"!../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../css-loader/dist/cjs.js!./ssms.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../css-loader/dist/cjs.js!./ssms.css\";\n export default content && content.locals ? content.locals : undefined;\n","\"use strict\";\n\nvar stylesInDOM = [];\n\nfunction getIndexByIdentifier(identifier) {\n var result = -1;\n\n for (var i = 0; i < stylesInDOM.length; i++) {\n if (stylesInDOM[i].identifier === identifier) {\n result = i;\n break;\n }\n }\n\n return result;\n}\n\nfunction modulesToDom(list, options) {\n var idCountMap = {};\n var identifiers = [];\n\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var count = idCountMap[id] || 0;\n var identifier = \"\".concat(id, \" \").concat(count);\n idCountMap[id] = count + 1;\n var indexByIdentifier = getIndexByIdentifier(identifier);\n var obj = {\n css: item[1],\n media: item[2],\n sourceMap: item[3],\n supports: item[4],\n layer: item[5]\n };\n\n if (indexByIdentifier !== -1) {\n stylesInDOM[indexByIdentifier].references++;\n stylesInDOM[indexByIdentifier].updater(obj);\n } else {\n var updater = addElementStyle(obj, options);\n options.byIndex = i;\n stylesInDOM.splice(i, 0, {\n identifier: identifier,\n updater: updater,\n references: 1\n });\n }\n\n identifiers.push(identifier);\n }\n\n return identifiers;\n}\n\nfunction addElementStyle(obj, options) {\n var api = options.domAPI(options);\n api.update(obj);\n\n var updater = function updater(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap && newObj.supports === obj.supports && newObj.layer === obj.layer) {\n return;\n }\n\n api.update(obj = newObj);\n } else {\n api.remove();\n }\n };\n\n return updater;\n}\n\nmodule.exports = function (list, options) {\n options = options || {};\n list = list || [];\n var lastIdentifiers = modulesToDom(list, options);\n return function update(newList) {\n newList = newList || [];\n\n for (var i = 0; i < lastIdentifiers.length; i++) {\n var identifier = lastIdentifiers[i];\n var index = getIndexByIdentifier(identifier);\n stylesInDOM[index].references--;\n }\n\n var newLastIdentifiers = modulesToDom(newList, options);\n\n for (var _i = 0; _i < lastIdentifiers.length; _i++) {\n var _identifier = lastIdentifiers[_i];\n\n var _index = getIndexByIdentifier(_identifier);\n\n if (stylesInDOM[_index].references === 0) {\n stylesInDOM[_index].updater();\n\n stylesInDOM.splice(_index, 1);\n }\n }\n\n lastIdentifiers = newLastIdentifiers;\n };\n};","\"use strict\";\n\nvar memo = {};\n/* istanbul ignore next */\n\nfunction getTarget(target) {\n if (typeof memo[target] === \"undefined\") {\n var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself\n\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n\n memo[target] = styleTarget;\n }\n\n return memo[target];\n}\n/* istanbul ignore next */\n\n\nfunction insertBySelector(insert, style) {\n var target = getTarget(insert);\n\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n\n target.appendChild(style);\n}\n\nmodule.exports = insertBySelector;","\"use strict\";\n\n/* istanbul ignore next */\nfunction insertStyleElement(options) {\n var element = document.createElement(\"style\");\n options.setAttributes(element, options.attributes);\n options.insert(element, options.options);\n return element;\n}\n\nmodule.exports = insertStyleElement;","\"use strict\";\n\n/* istanbul ignore next */\nfunction setAttributesWithoutAttributes(styleElement) {\n var nonce = typeof __webpack_nonce__ !== \"undefined\" ? __webpack_nonce__ : null;\n\n if (nonce) {\n styleElement.setAttribute(\"nonce\", nonce);\n }\n}\n\nmodule.exports = setAttributesWithoutAttributes;","\"use strict\";\n\n/* istanbul ignore next */\nfunction apply(styleElement, options, obj) {\n var css = \"\";\n\n if (obj.supports) {\n css += \"@supports (\".concat(obj.supports, \") {\");\n }\n\n if (obj.media) {\n css += \"@media \".concat(obj.media, \" {\");\n }\n\n var needLayer = typeof obj.layer !== \"undefined\";\n\n if (needLayer) {\n css += \"@layer\".concat(obj.layer.length > 0 ? \" \".concat(obj.layer) : \"\", \" {\");\n }\n\n css += obj.css;\n\n if (needLayer) {\n css += \"}\";\n }\n\n if (obj.media) {\n css += \"}\";\n }\n\n if (obj.supports) {\n css += \"}\";\n }\n\n var sourceMap = obj.sourceMap;\n\n if (sourceMap && typeof btoa !== \"undefined\") {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n } // For old IE\n\n /* istanbul ignore if */\n\n\n options.styleTagTransform(css, styleElement, options.options);\n}\n\nfunction removeStyleElement(styleElement) {\n // istanbul ignore if\n if (styleElement.parentNode === null) {\n return false;\n }\n\n styleElement.parentNode.removeChild(styleElement);\n}\n/* istanbul ignore next */\n\n\nfunction domAPI(options) {\n var styleElement = options.insertStyleElement(options);\n return {\n update: function update(obj) {\n apply(styleElement, options, obj);\n },\n remove: function remove() {\n removeStyleElement(styleElement);\n }\n };\n}\n\nmodule.exports = domAPI;","\"use strict\";\n\n/* istanbul ignore next */\nfunction styleTagTransform(css, styleElement) {\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = css;\n } else {\n while (styleElement.firstChild) {\n styleElement.removeChild(styleElement.firstChild);\n }\n\n styleElement.appendChild(document.createTextNode(css));\n }\n}\n\nmodule.exports = styleTagTransform;"],"names":["___CSS_LOADER_EXPORT___","push","module","id","exports","cssWithMappingToString","list","toString","this","map","item","content","needLayer","concat","length","join","i","modules","media","dedupe","supports","layer","undefined","alreadyImportedModules","k","_k","cssMapping","btoa","base64","unescape","encodeURIComponent","JSON","stringify","data","sourceMapping","sourceURLs","sources","source","sourceRoot","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","stylesInDOM","getIndexByIdentifier","identifier","result","modulesToDom","idCountMap","identifiers","base","count","indexByIdentifier","obj","css","sourceMap","references","updater","addElementStyle","byIndex","splice","api","update","newObj","remove","lastIdentifiers","newList","index","newLastIdentifiers","_i","_index","memo","style","target","styleTarget","document","querySelector","window","HTMLIFrameElement","contentDocument","head","e","getTarget","Error","appendChild","element","createElement","attributes","styleElement","nonce","setAttribute","apply","parentNode","removeChild","removeStyleElement","styleSheet","cssText","firstChild","createTextNode"],"sourceRoot":""} \ No newline at end of file diff --git a/_static/build/5155.06b4ea9.js b/_static/build/5155.06b4ea9.js new file mode 100644 index 0000000..7113a88 --- /dev/null +++ b/_static/build/5155.06b4ea9.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[5155],{15155:(t,e,a)=>{a.r(e),a.d(e,{default:()=>i});var o=a(15786),n=a(718),l=a(2814),r=a(4265);const s={id:"@jupyterlab/cell-toolbar-extension:plugin",autoStart:!0,activate:async(t,e,a,o)=>{const i=e&&a?(0,l.createToolbarFactory)(a,e,n.CellBarExtension.FACTORY_NAME,s.id,null!=o?o:r.nullTranslator):void 0;t.docRegistry.addWidgetExtension("Notebook",new n.CellBarExtension(t.commands,i))},optional:[o.ISettingRegistry,l.IToolbarWidgetRegistry,r.ITranslator]},i=s}}]); +//# sourceMappingURL=5155.06b4ea9.js.map \ No newline at end of file diff --git a/_static/build/5155.06b4ea9.js.map b/_static/build/5155.06b4ea9.js.map new file mode 100644 index 0000000..e9b68ab --- /dev/null +++ b/_static/build/5155.06b4ea9.js.map @@ -0,0 +1 @@ +{"version":3,"file":"5155.06b4ea9.js","mappings":"6MAqBA,MAAM,EAA2C,CAC/C,GAAI,4CACJ,WAAW,EACX,SAAU,MACR,EACA,EACA,EACA,KAEA,MAAM,EACJ,GAAmB,GACf,0BACE,EACA,EACA,gCACA,EAAY,GACZ,UAAc,uBAEhB,EAEN,EAAI,YAAY,mBACd,WACA,IAAI,mBAAiB,EAAI,SAAU,GACpC,EAEH,SAAU,CAAC,mBAAkB,yBAAwB,gBAGvD,G","sources":["webpack://_JUPYTERLAB.CORE_OUTPUT/../src/index.ts"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/_static/build/5193.e9f6866.js b/_static/build/5193.e9f6866.js new file mode 100644 index 0000000..d5a4989 --- /dev/null +++ b/_static/build/5193.e9f6866.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[5193],{75193:(e,t,s)=>{s.r(t),s.d(t,{AttachmentsCell:()=>ie,AttachmentsCellModel:()=>I,Cell:()=>ae,CellDragUtils:()=>u,CellFooter:()=>v,CellHeader:()=>y,CellModel:()=>F,CodeCell:()=>ne,CodeCellModel:()=>W,Collapser:()=>m,InputArea:()=>x,InputCollapser:()=>g,InputPlaceholder:()=>U,InputPrompt:()=>O,MARKDOWN_HEADING_COLLAPSED:()=>K,MarkdownCell:()=>oe,MarkdownCellModel:()=>H,OutputCollapser:()=>C,OutputPlaceholder:()=>T,Placeholder:()=>L,RawCell:()=>de,RawCellModel:()=>P,isCodeCellModel:()=>M,isMarkdownCellModel:()=>N,isRawCellModel:()=>A});var a=s(43892),n=s(93383);const i="jp-dragImage",o="jp-dragImage-singlePrompt",d="jp-dragImage-content",r="jp-dragImage-prompt",l="jp-dragImage-multipleBack";var u;!function(e){e.findCell=function(e,t,s){let n=-1;for(;e&&e.parentElement;){if(s(e)){(0,a.each)(t,((t,s)=>{if(t.node===e)return n=s,!1}));break}e=e.parentElement}return n},e.detectTargetArea=function(e,t){let s;return s=e?e.editorWidget.node.contains(t)?"input":e.promptNode.contains(t)?"prompt":"cell":"unknown",s},e.shouldStartDrag=function(e,t,s,a){const n=Math.abs(s-e),i=Math.abs(a-t);return n>=5||i>=5},e.createCellDragImage=function(e,t){const s=t.length;let a;if("code"===e.model.type){const t=e.model.executionCount;a=" ",t&&(a=t.toString())}else a="";const u=e.model.value.text.split("\n")[0].slice(0,26);return s>1?""!==a?n.VirtualDOM.realize(n.h.div(n.h.div({className:i},n.h.span({className:r},"["+a+"]:"),n.h.span({className:d},u)),n.h.div({className:l},""))):n.VirtualDOM.realize(n.h.div(n.h.div({className:i},n.h.span({className:r}),n.h.span({className:d},u)),n.h.div({className:l},""))):""!==a?n.VirtualDOM.realize(n.h.div(n.h.div({className:`${i} ${o}`},n.h.span({className:r},"["+a+"]:"),n.h.span({className:d},u)))):n.VirtualDOM.realize(n.h.div(n.h.div({className:`${i} ${o}`},n.h.span({className:r}),n.h.span({className:d},u))))}}(u||(u={}));var h=s(2814),c=s(33349),p=s(62471);class m extends h.ReactWidget{constructor(){super(),this.addClass("jp-Collapser")}get collapsed(){return!1}render(){return p.createElement("div",{className:"jp-Collapser-child",onClick:e=>this.handleClick(e)})}}class g extends m{constructor(){super(),this.addClass("jp-InputCollapser")}get collapsed(){var e;const t=null===(e=this.parent)||void 0===e?void 0:e.parent;return!!t&&t.inputHidden}handleClick(e){var t;const s=null===(t=this.parent)||void 0===t?void 0:t.parent;s&&(s.inputHidden=!s.inputHidden),this.update()}}class C extends m{constructor(){super(),this.addClass("jp-OutputCollapser")}get collapsed(){var e;const t=null===(e=this.parent)||void 0===e?void 0:e.parent;return!!t&&t.outputHidden}handleClick(e){var t,s;const a=null===(t=this.parent)||void 0===t?void 0:t.parent;if(a&&(a.outputHidden=!a.outputHidden,a.outputHidden)){let e=null===(s=a.parent)||void 0===s?void 0:s.node;e&&c.ElementExt.scrollIntoViewIfNeeded(e,a.node)}this.update()}}var _=s(94519);class y extends _.Widget{constructor(){super(),this.addClass("jp-CellHeader")}}class v extends _.Widget{constructor(){super(),this.addClass("jp-CellFooter")}}var w=s(84853),f=s(23059);class x extends _.Widget{constructor(e){super(),this.addClass("jp-InputArea");const t=this.model=e.model,s=this.contentFactory=e.contentFactory||x.defaultContentFactory,a=this._prompt=s.createInputPrompt();a.addClass("jp-InputArea-prompt");const n={model:t,factory:s.editorFactory,updateOnShow:e.updateOnShow},i=this._editor=new w.CodeEditorWrapper(n);i.addClass("jp-InputArea-editor");const o=this.layout=new _.PanelLayout;o.addWidget(a),e.placeholder||o.addWidget(i)}get editorWidget(){return this._editor}get editor(){return this._editor.editor}get promptNode(){return this._prompt.node}get renderedInput(){return this._rendered}renderInput(e){const t=this.layout;this._rendered&&(this._rendered.parent=null),this._editor.hide(),this._rendered=e,t.addWidget(e)}showEditor(){this._rendered&&(this._rendered.parent=null),this._editor.show()}setPrompt(e){this._prompt.executionCount=e}dispose(){this.isDisposed||(this._prompt=null,this._editor=null,this._rendered=null,super.dispose())}}!function(e){class t{constructor(t={}){this._editor=t.editorFactory||e.defaultEditorFactory}get editorFactory(){return this._editor}createInputPrompt(){return new O}}e.ContentFactory=t,e.defaultEditorFactory=(new f.CodeMirrorEditorFactory).newInlineEditor,e.defaultContentFactory=new t({})}(x||(x={}));class O extends _.Widget{constructor(){super(),this._executionCount=null,this.addClass("jp-InputPrompt")}get executionCount(){return this._executionCount}set executionCount(e){this._executionCount=e,this.node.textContent=null===e?" ":`[${e||" "}]:`}}var S=s(26169),b=s(70942),E=s(56531),k=s(56274),D=s(80178);const j=k.createMutex();function M(e){return"code"===e.type}function N(e){return"markdown"===e.type}function A(e){return"raw"===e.type}class F extends w.CodeEditor.Model{constructor(e){var t;super({modelDB:e.modelDB,id:e.id||(null===(t=e.cell)||void 0===t?void 0:t.id)||S.UUID.uuid4()}),this.contentChanged=new b.Signal(this),this.stateChanged=new b.Signal(this),this.value.changed.connect(this.onGenericChange,this),this.modelDB.createValue("type").set(this.type);const s=this.modelDB.createMap("metadata");s.changed.connect(this.onModelDBMetadataChange,this),s.changed.connect(this.onGenericChange,this);const a=e.cell,n=this.modelDB.createValue("trusted");if(n.changed.connect(this.onTrustedChanged,this),!a)return void n.set(!1);n.set(!!a.metadata.trusted),delete a.metadata.trusted,Array.isArray(a.source)?this.value.text=a.source.map((e=>e.replace(/\r\n/g,"\n").replace(/\r/g,"\n"))).join(""):this.value.text=a.source.replace(/\r\n/g,"\n").replace(/\r/g,"\n");const i=S.JSONExt.deepCopy(a.metadata);"raw"!==this.type&&delete i.format,"code"!==this.type&&(delete i.collapsed,delete i.scrolled);for(const e in i)s.set(e,i[e])}get type(){return"raw"}get id(){return this.sharedModel.getId()}get metadata(){return this.modelDB.get("metadata")}get trusted(){return this.modelDB.getValue("trusted")}set trusted(e){this.trusted!==e&&this.modelDB.setValue("trusted",e)}toJSON(){const e=Object.create(null);for(const t of this.metadata.keys()){const s=JSON.parse(JSON.stringify(this.metadata.get(t)));e[t]=s}return this.trusted&&(e.trusted=!0),{cell_type:this.type,source:this.value.text,metadata:e}}onTrustedChanged(e,t){}switchSharedModel(e,t){if(t){const t=e.getMetadata();t&&this._updateModelDBMetadata(t)}super.switchSharedModel(e,t)}onModelDBMetadataChange(e,t){const s=this.sharedModel.getMetadata();j((()=>{switch(t.type){case"add":case"change":this._changeCellMetadata(s,t);break;case"remove":delete s[t.key];break;default:throw new Error(`Invalid event type: ${t.type}`)}this.sharedModel.setMetadata(s)}))}_changeCellMetadata(e,t){switch(t.key){case"jupyter":e.jupyter=t.newValue;break;case"collapsed":e.collapsed=t.newValue;break;case"name":e.name=t.newValue;break;case"scrolled":e.scrolled=t.newValue;break;case"tags":e.tags=t.newValue;break;case"trusted":e.trusted=t.newValue;break;default:e[t.key]=t.newValue}}_onSharedModelChanged(e,t){super._onSharedModelChanged(e,t),j((()=>{var e;if(t.metadataChange){const s=null===(e=t.metadataChange)||void 0===e?void 0:e.newValue;s&&this._updateModelDBMetadata(s)}}))}_updateModelDBMetadata(e){Object.keys(e).map((t=>{switch(t){case"collapsed":this.metadata.set("collapsed",e.jupyter);break;case"jupyter":this.metadata.set("jupyter",e.jupyter);break;case"name":this.metadata.set("name",e.name);break;case"scrolled":this.metadata.set("scrolled",e.scrolled);break;case"tags":this.metadata.set("tags",e.tags);break;case"trusted":this.metadata.set("trusted",e.trusted);break;default:this.metadata.set(t,e[t])}}))}onGenericChange(){this.contentChanged.emit(void 0)}}class I extends F{constructor(e){super(e);const t=e.contentFactory||I.defaultContentFactory;let s;const a=e.cell;!a||"raw"!==a.cell_type&&"markdown"!==a.cell_type||(s=a.attachments),this._attachments=t.createAttachmentsModel({values:s,modelDB:this.modelDB}),this._attachments.stateChanged.connect(this.onGenericChange,this)}get attachments(){return this._attachments}toJSON(){const e=super.toJSON();return this.attachments.length&&(e.attachments=this.attachments.toJSON()),e}}!function(e){class t{createAttachmentsModel(e){return new E.AttachmentsModel(e)}}e.ContentFactory=t,e.defaultContentFactory=new t}(I||(I={}));class P extends I{get type(){return"raw"}toJSON(){const e=super.toJSON();return e.id=this.id,e}}class H extends I{constructor(e){super(e),this.mimeType="text/x-ipythongfm"}get type(){return"markdown"}toJSON(){const e=super.toJSON();return e.id=this.id,e}}class W extends F{constructor(e){var t;super(e),this._executedCode="",this._isDirty=!1;const s=e.contentFactory||W.defaultContentFactory,a=this.trusted,n=e.cell;let i=[];const o=this.modelDB.createValue("executionCount");if(o.get()||(n&&"code"===n.cell_type?(o.set(n.execution_count||null),i=null!==(t=n.outputs)&&void 0!==t?t:[],null!=n.execution_count&&(this._executedCode=this.value.text.trim())):o.set(null)),this.value.changed.connect(this._onValueChanged,this),o.changed.connect(this._onExecutionCountChanged,this),j((()=>{this.sharedModel.setOutputs(i)})),this._outputs=s.createOutputArea({trusted:a,values:i}),this._outputs.changed.connect(this.onGenericChange,this),this._outputs.changed.connect(this.onModelDBOutputsChange,this),this.metadata.changed.connect(V.collapseChanged,this),this.metadata.has("collapsed")){const e=this.metadata.get("collapsed");V.collapseChanged(this.metadata,{type:"change",key:"collapsed",oldValue:e,newValue:e})}else if(this.metadata.has("jupyter")){const e=this.metadata.get("jupyter");e.hasOwnProperty("outputs_hidden")&&V.collapseChanged(this.metadata,{type:"change",key:"jupyter",oldValue:e,newValue:e})}}switchSharedModel(e,t){t&&(this.clearExecution(),e.getOutputs().forEach((e=>this._outputs.add(e)))),super.switchSharedModel(e,t)}get type(){return"code"}get executionCount(){return this.modelDB.has("executionCount")?this.modelDB.getValue("executionCount"):null}set executionCount(e){e!==this.executionCount&&this.modelDB.setValue("executionCount",e||null)}get isDirty(){return this._isDirty}_setDirty(e){e!==this._isDirty&&(e||(this._executedCode=this.value.text.trim()),this._isDirty=e,this.stateChanged.emit({name:"isDirty",oldValue:!e,newValue:e}))}clearExecution(){this.outputs.clear(),this.executionCount=null,this._setDirty(!1),this.metadata.delete("execution")}get outputs(){return this._outputs}dispose(){this.isDisposed||(this._outputs.dispose(),this._outputs=null,super.dispose())}toJSON(){const e=super.toJSON();return e.execution_count=this.executionCount||null,e.outputs=this.outputs.toJSON(),e.id=this.id,e}onTrustedChanged(e,t){this._outputs&&(this._outputs.trusted=t.newValue),this.stateChanged.emit({name:"trusted",oldValue:t.oldValue,newValue:t.newValue})}onModelDBOutputsChange(e,t){const s=this.sharedModel;j((()=>{switch(t.type){case"add":{const e=t.newValues.map((e=>e.toJSON()));s.updateOutputs(t.newIndex,t.newIndex+e.length,e);break}case"set":{const e=t.newValues.map((e=>e.toJSON()));s.updateOutputs(t.oldIndex,t.oldIndex+e.length,e);break}case"remove":s.updateOutputs(t.oldIndex,t.oldValues.length);break;default:throw new Error(`Invalid event type: ${t.type}`)}}))}_onValueChanged(){null!==this.executionCount&&this._setDirty(this._executedCode!==this.value.text.trim())}_onSharedModelChanged(e,t){super._onSharedModelChanged(e,t),j((()=>{t.outputsChange&&(this.clearExecution(),e.getOutputs().forEach((e=>this._outputs.add(e)))),t.executionCountChange&&(this.executionCount=t.executionCountChange.newValue?t.executionCountChange.newValue:null)}))}_onExecutionCountChanged(e,t){const s=this.sharedModel;j((()=>{s.execution_count=t.newValue?t.newValue:null})),this.contentChanged.emit(void 0),this.stateChanged.emit({name:"executionCount",oldValue:t.oldValue,newValue:t.newValue}),t.newValue&&this.isDirty&&this._setDirty(!1)}}var V;!function(e){class t{createOutputArea(e){return new D.OutputAreaModel(e)}}e.ContentFactory=t,e.defaultContentFactory=new t}(W||(W={})),function(e){e.collapseChanged=function(e,t){if("collapsed"===t.key){const s=e.get("jupyter")||{},{outputs_hidden:a}=s,n=function(e,t){var s={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.indexOf(a)<0&&(s[a]=e[a]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var n=0;for(a=Object.getOwnPropertySymbols(e);nthis.handleClick(e),key:"content"},p.createElement(R.ellipsesIcon.react,{className:"jp-MoreHorizIcon",elementPosition:"center",height:"auto",width:"32px"}))]}}class T extends L{constructor(e){super(e),this.addClass("jp-OutputPlaceholder")}render(){return[p.createElement("div",{className:"jp-Placeholder-prompt jp-OutputPrompt",key:"output"}),p.createElement("div",{className:B,onClick:e=>this.handleClick(e),key:"content"},p.createElement(R.ellipsesIcon.react,{className:"jp-MoreHorizIcon",elementPosition:"center",height:"auto",width:"32px"}))]}}var $=s(21520),J=s(55941),z=s(20040),G=s(61313);const q="jp-mod-resizedCell";class X extends _.Widget{constructor(e){super(),this.targetNode=e,this._isActive=!1,this._isDragging=!1,this._protectedWidth=10,this.addClass("jp-CellResizeHandle")}onAfterAttach(e){super.onAfterAttach(e),this.node.addEventListener("dblclick",this),this.node.addEventListener("mousedown",this)}onAfterDetach(e){super.onAfterAttach(e),this.node.removeEventListener("dblclick",this),this.node.removeEventListener("mousedown",this)}handleEvent(e){var t,s;switch(e.type){case"dblclick":null===(t=this.targetNode.parentNode)||void 0===t||t.childNodes.forEach((e=>{e.classList.remove(q)})),document.documentElement.style.setProperty("--jp-side-by-side-output-size","1fr"),this._isActive=!1;break;case"mousedown":this._isDragging=!0,this._isActive||(null===(s=this.targetNode.parentNode)||void 0===s||s.childNodes.forEach((e=>{e.classList.add(q)})),this._isActive=!0),window.addEventListener("mousemove",this),window.addEventListener("mouseup",this);break;case"mousemove":{if(!this._isActive||!this._isDragging)return;const t=this.targetNode.getBoundingClientRect(),s=(t.width-2*this._protectedWidth)/(e.clientX-t.x-this._protectedWidth)-1;document.documentElement.style.setProperty("--jp-side-by-side-output-size",`${s}fr`);break}case"mouseup":this._isDragging=!1,window.removeEventListener("mousemove",this),window.removeEventListener("mouseup",this)}}}const Y="jp-mod-dirty",K="jp-MarkdownHeadingCollapsed",Q="jp-collapseHeadingButton",Z="jp-showHiddenCellsButton",ee="jp-mod-rendered",te="jp-mod-noOutputs",se="application/x-jupyter-icontentsrich";class ae extends _.Widget{constructor(e){super(),this._displayChanged=new b.Signal(this),this._readOnly=!1,this._inputHidden=!1,this._syncCollapse=!1,this._syncEditable=!1,this._resizeDebouncer=new G.Debouncer((()=>{this._displayChanged.emit()}),0),this.addClass("jp-Cell");const t=this._model=e.model,s=this.contentFactory=e.contentFactory||ae.defaultContentFactory;this.layout=new _.PanelLayout;const a=s.createCellHeader();a.addClass("jp-Cell-header"),this.layout.addWidget(a);const n=this._inputWrapper=new _.Panel;n.addClass("jp-Cell-inputWrapper");const i=new g;i.addClass("jp-Cell-inputCollapser");const o=this._input=new x({model:t,contentFactory:s,updateOnShow:e.updateEditorOnShow,placeholder:e.placeholder});o.addClass("jp-Cell-inputArea"),n.addWidget(i),n.addWidget(o),this.layout.addWidget(n),this._inputPlaceholder=new U((()=>{this.inputHidden=!this.inputHidden}));const d=this.contentFactory.createCellFooter();d.addClass("jp-Cell-footer"),this.layout.addWidget(d),e.editorConfig&&this.editor.setOptions(Object.assign({},e.editorConfig)),t.metadata.changed.connect(this.onMetadataChanged,this)}initializeState(){return this.loadCollapseState(),this.loadEditableState(),this}get displayChanged(){return this._displayChanged}get promptNode(){return this._inputHidden?this._inputPlaceholder.node.firstElementChild:this._input.promptNode}get editorWidget(){return this._input.editorWidget}get editor(){return this._input.editor}get model(){return this._model}get inputArea(){return this._input}get readOnly(){return this._readOnly}set readOnly(e){e!==this._readOnly&&(this._readOnly=e,this.syncEditable&&this.saveEditableState(),this.update())}saveEditableState(){const{metadata:e}=this.model,t=e.get("editable");this.readOnly&&!1===t||!this.readOnly&&void 0===t||(this.readOnly?this.model.metadata.set("editable",!1):this.model.metadata.delete("editable"))}loadEditableState(){this.readOnly=!1===this.model.metadata.get("editable")}get ready(){return Promise.resolve(void 0)}setPrompt(e){this._input.setPrompt(e)}get inputHidden(){return this._inputHidden}set inputHidden(e){if(this._inputHidden===e)return;const t=this._inputWrapper.layout;e?(this._input.parent=null,t.addWidget(this._inputPlaceholder)):(this._inputPlaceholder.parent=null,t.addWidget(this._input)),this._inputHidden=e,this.syncCollapse&&this.saveCollapseState(),this.handleInputHidden(e)}saveCollapseState(){const e=Object.assign({},this.model.metadata.get("jupyter"));this.inputHidden&&!0===e.source_hidden||!this.inputHidden&&void 0===e.source_hidden||(this.inputHidden?e.source_hidden=!0:delete e.source_hidden,0===Object.keys(e).length?this.model.metadata.delete("jupyter"):this.model.metadata.set("jupyter",e))}loadCollapseState(){const e=this.model.metadata.get("jupyter")||{};this.inputHidden=!!e.source_hidden}handleInputHidden(e){}get syncCollapse(){return this._syncCollapse}set syncCollapse(e){this._syncCollapse!==e&&(this._syncCollapse=e,e&&this.loadCollapseState())}get syncEditable(){return this._syncEditable}set syncEditable(e){this._syncEditable!==e&&(this._syncEditable=e,e&&this.loadEditableState())}clone(){return new(0,this.constructor)({model:this.model,contentFactory:this.contentFactory,placeholder:!1})}dispose(){this.isDisposed||(this._resizeDebouncer.dispose(),this._input=null,this._model=null,this._inputWrapper=null,this._inputPlaceholder=null,super.dispose())}onAfterAttach(e){this.update()}onActivateRequest(e){this.editor.focus()}onFitRequest(e){this.editor.refresh()}onResize(e){this._resizeDebouncer.invoke()}onUpdateRequest(e){this._model&&this.editor.getOption("readOnly")!==this._readOnly&&(this.editor.setOption("readOnly",this._readOnly),this.toggleClass("jp-mod-readOnly",this._readOnly))}onMetadataChanged(e,t){switch(t.key){case"jupyter":this.syncCollapse&&this.loadCollapseState();break;case"editable":this.syncEditable&&this.loadEditableState()}}}!function(e){class t{constructor(e={}){this._editorFactory=e.editorFactory||x.defaultEditorFactory}get editorFactory(){return this._editorFactory}createCellHeader(){return new y}createCellFooter(){return new v}createInputPrompt(){return new O}createOutputPrompt(){return new D.OutputPrompt}createStdin(e){return new D.Stdin(e)}}e.ContentFactory=t,e.defaultContentFactory=new t}(ae||(ae={}));class ne extends ae{constructor(e){super(e),this._outputHidden=!1,this._syncScrolled=!1,this._savingMetadata=!1,this.addClass("jp-CodeCell");const t=this._rendermime=e.rendermime,s=this.contentFactory,a=this.model;if(!e.placeholder){const n=this._outputWrapper=new _.Panel;n.addClass("jp-Cell-outputWrapper");const i=new C;i.addClass("jp-Cell-outputCollapser");const o=this._output=new D.OutputArea({model:a.outputs,rendermime:t,contentFactory:s,maxNumberOutputs:e.maxNumberOutputs});o.addClass("jp-Cell-outputArea"),0===a.outputs.length&&this.addClass(te),o.outputLengthChanged.connect(this._outputLengthHandler,this),n.addWidget(i),n.addWidget(o),this.layout.insertWidget(2,new X(this.node)),this.layout.insertWidget(3,n),a.isDirty&&this.addClass(Y),this._outputPlaceholder=new T((()=>{this.outputHidden=!this.outputHidden}))}a.stateChanged.connect(this.onStateChanged,this)}initializeState(){return super.initializeState(),this.loadScrolledState(),this.setPrompt(`${this.model.executionCount||""}`),this}get outputArea(){return this._output}get outputHidden(){return this._outputHidden}set outputHidden(e){if(this._outputHidden===e)return;const t=this._outputWrapper.layout;e?(t.removeWidget(this._output),t.addWidget(this._outputPlaceholder),this.inputHidden&&!this._outputWrapper.isHidden&&this._outputWrapper.hide()):(this._outputWrapper.isHidden&&this._outputWrapper.show(),t.removeWidget(this._outputPlaceholder),t.addWidget(this._output)),this._outputHidden=e,this.syncCollapse&&this.saveCollapseState()}saveCollapseState(){this._savingMetadata=!0;try{super.saveCollapseState();const e=this.model.metadata,t=this.model.metadata.get("collapsed");if(this.outputHidden&&!0===t||!this.outputHidden&&void 0===t)return;this.outputHidden?e.set("collapsed",!0):e.delete("collapsed")}finally{this._savingMetadata=!1}}loadCollapseState(){super.loadCollapseState(),this.outputHidden=!!this.model.metadata.get("collapsed")}get outputsScrolled(){return this._outputsScrolled}set outputsScrolled(e){this.toggleClass("jp-mod-outputsScrolled",e),this._outputsScrolled=e,this.syncScrolled&&this.saveScrolledState()}saveScrolledState(){const{metadata:e}=this.model,t=e.get("scrolled");this.outputsScrolled&&!0===t||!this.outputsScrolled&&void 0===t||(this.outputsScrolled?e.set("scrolled",!0):e.delete("scrolled"))}loadScrolledState(){const e=this.model.metadata;"auto"===e.get("scrolled")?this.outputsScrolled=!1:this.outputsScrolled=!!e.get("scrolled")}get syncScrolled(){return this._syncScrolled}set syncScrolled(e){this._syncScrolled!==e&&(this._syncScrolled=e,e&&this.loadScrolledState())}handleInputHidden(e){!e&&this._outputWrapper.isHidden?this._outputWrapper.show():e&&!this._outputWrapper.isHidden&&this._outputHidden&&this._outputWrapper.hide()}clone(){return new(0,this.constructor)({model:this.model,contentFactory:this.contentFactory,rendermime:this._rendermime,placeholder:!1})}cloneOutputArea(){return new D.SimplifiedOutputArea({model:this.model.outputs,contentFactory:this.contentFactory,rendermime:this._rendermime})}dispose(){this.isDisposed||(this._output.outputLengthChanged.disconnect(this._outputLengthHandler,this),this._rendermime=null,this._output=null,this._outputWrapper=null,this._outputPlaceholder=null,super.dispose())}onStateChanged(e,t){switch(t.name){case"executionCount":this.setPrompt(`${e.executionCount||""}`);break;case"isDirty":e.isDirty?this.addClass(Y):this.removeClass(Y)}}onMetadataChanged(e,t){if(!this._savingMetadata){switch(t.key){case"scrolled":this.syncScrolled&&this.loadScrolledState();break;case"collapsed":this.syncCollapse&&this.loadCollapseState()}super.onMetadataChanged(e,t)}}_outputLengthHandler(e,t){const s=0===t;this.toggleClass(te,s)}}!function(e){e.execute=async function(e,t,s){var a;const n=e.model,i=n.value.text;if(!i.trim()||!(null===(a=t.session)||void 0===a?void 0:a.kernel))return void n.clearExecution();const o={cellId:n.id};s=Object.assign(Object.assign(Object.assign({},n.metadata.toJSON()),s),o);const{recordTiming:d}=s;let r;n.clearExecution(),e.outputHidden=!1,e.setPrompt("*"),n.trusted=!0;try{const a=D.OutputArea.execute(i,e.outputArea,t,s);if(d){const t=e=>{let t;switch(e.header.msg_type){case"status":t=`status.${e.content.execution_state}`;break;case"execute_input":t="execute_input";break;default:return!0}const s=e.header.date||(new Date).toISOString(),a=Object.assign({},n.metadata.get("execution"));return a[`iopub.${t}`]=s,n.metadata.set("execution",a),!0};e.outputArea.future.registerMessageHook(t)}else n.metadata.delete("execution");r=e.outputArea.future;const o=await a;if(n.executionCount=o.content.execution_count,d){const e=Object.assign({},n.metadata.get("execution")),t=o.metadata.started;t&&(e["shell.execute_reply.started"]=t);const s=o.header.date;e["shell.execute_reply"]=s||(new Date).toISOString(),n.metadata.set("execution",e)}return o}catch(t){throw r&&!e.isDisposed&&e.outputArea.future===r&&e.setPrompt(""),t}}}(ne||(ne={}));class ie extends ae{handleEvent(e){switch(e.type){case"paste":this._evtPaste(e);break;case"dragenter":case"dragover":e.preventDefault();break;case"drop":this._evtNativeDrop(e);break;case"lm-dragover":this._evtDragOver(e);break;case"lm-drop":this._evtDrop(e)}}onAfterAttach(e){super.onAfterAttach(e);const t=this.node;t.addEventListener("lm-dragover",this),t.addEventListener("lm-drop",this),t.addEventListener("dragenter",this),t.addEventListener("dragover",this),t.addEventListener("drop",this),t.addEventListener("paste",this)}onBeforeDetach(e){const t=this.node;t.removeEventListener("drop",this),t.removeEventListener("dragover",this),t.removeEventListener("dragenter",this),t.removeEventListener("paste",this),t.removeEventListener("lm-dragover",this),t.removeEventListener("lm-drop",this)}_evtDragOver(e){(0,a.some)(z.imageRendererFactory.mimeTypes,(t=>!!e.mimeData.hasData(se)&&e.mimeData.getData(se).model.mimetype===t))&&(e.preventDefault(),e.stopPropagation(),e.dropAction=e.proposedAction)}_evtPaste(e){if(e.clipboardData){const t=e.clipboardData.items;for(let s=0;s{var t,s;null===(s=(t=this.editor).replaceSelection)||void 0===s||s.call(t,e)}))}this._attachFiles(e.clipboardData.items)}}e.preventDefault()}_evtNativeDrop(e){e.dataTransfer&&this._attachFiles(e.dataTransfer.items),e.preventDefault()}_evtDrop(e){const t=(0,a.toArray)((0,a.filter)(e.mimeData.types(),(t=>{if(t===se){const t=e.mimeData.getData(se);return-1!==z.imageRendererFactory.mimeTypes.indexOf(t.model.mimetype)}return-1!==z.imageRendererFactory.mimeTypes.indexOf(t)})));if(0!==t.length)if(e.preventDefault(),e.stopPropagation(),"none"!==e.proposedAction){e.dropAction="copy";for(const s of t)if(s===se){const{model:t,withContent:s}=e.mimeData.getData(se);if("file"===t.type){const e=this._generateURI(t.name);this.updateCellSourceWithAttachment(t.name,e),s().then((t=>{this.model.attachments.set(e,{[t.mimetype]:t.content})}))}}else{const t=this._generateURI();this.model.attachments.set(t,{[s]:e.mimeData.getData(s)}),this.updateCellSourceWithAttachment(t,t)}}else e.dropAction="none"}_attachFiles(e){for(let t=0;t{const{href:a,protocol:n}=J.URLExt.parse(t.result);if("data:"!==n)return;const i=/([\w+\/\+]+)?(?:;(charset=[\w\d-]*|base64))?,(.*)/.exec(a);if(!i||4!==i.length)return;const o=i[1],d={[o]:i[3]},r=this._generateURI(e.name);o.startsWith("image/")&&(this.model.attachments.set(r,d),this.updateCellSourceWithAttachment(e.name,r))},t.onerror=t=>{console.error(`Failed to attach ${e.name}`+t)},t.readAsDataURL(e)}_generateURI(e=""){const t=e.lastIndexOf(".");return-1!==t?S.UUID.uuid4().concat(e.substring(t)):S.UUID.uuid4()}}class oe extends ie{constructor(e){var t,s,a;super(e),this._toggleCollapsedSignal=new b.Signal(this),this._renderer=null,this._rendered=!0,this._prevText="",this._ready=new S.PromiseDelegate,this._showEditorForReadOnlyMarkdown=!0,this.addClass("jp-MarkdownCell"),this._rendermime=e.rendermime.clone({resolver:new E.AttachmentsResolver({parent:null!==(t=e.rendermime.resolver)&&void 0!==t?t:void 0,model:this.model.attachments})}),this.editor.setOption("handlePaste",!1),this._headingCollapsed=null!==(s=this.model.metadata.get(K))&&void 0!==s&&s,this._monitor=new J.ActivityMonitor({signal:this.model.contentChanged,timeout:1e3}),this._monitor.activityStopped.connect((()=>{this._rendered&&this.update()}),this),this._updateRenderedInput().then((()=>{this._ready.resolve(void 0)})),this.renderCollapseButtons(this._renderer),this.renderInput(this._renderer),this._showEditorForReadOnlyMarkdown=null!==(a=e.showEditorForReadOnlyMarkdown)&&void 0!==a?a:oe.defaultShowEditorForReadOnlyMarkdown}get ready(){return this._ready.promise}get headingInfo(){let e=this.model.value.text;const t=$.TU.lexer(e);let s;for(s of t){if("heading"===s.type)return{text:s.text,level:s.depth};if("html"===s.type){let e=s.raw.match(/(.*?)<\/h\1>/);return(null==e?void 0:e[3])?{text:e[3],level:parseInt(e[1])}:{text:"",level:-1}}}return{text:"",level:-1}}get headingCollapsed(){return this._headingCollapsed}set headingCollapsed(e){this._headingCollapsed=e,e?this.model.metadata.set(K,e):this.model.metadata.has(K)&&this.model.metadata.delete(K);const t=this.inputArea.promptNode.getElementsByClassName(Q)[0];t&&(e?t.classList.add("jp-mod-collapsed"):t.classList.remove("jp-mod-collapsed")),this.renderCollapseButtons(this._renderer)}get numberChildNodes(){return this._numberChildNodes}set numberChildNodes(e){this._numberChildNodes=e,this.renderCollapseButtons(this._renderer)}get toggleCollapsedSignal(){return this._toggleCollapsedSignal}get rendered(){return this._rendered}set rendered(e){this.readOnly&&!1===this._showEditorForReadOnlyMarkdown&&(e=!0),e!==this._rendered&&(this._rendered=e,this._handleRendered(),this._rendered||this.editor.refresh(),this._displayChanged.emit())}get showEditorForReadOnly(){return this._showEditorForReadOnlyMarkdown}set showEditorForReadOnly(e){this._showEditorForReadOnlyMarkdown=e,!1===e&&(this.rendered=!0)}dispose(){this.isDisposed||(this._monitor.dispose(),super.dispose())}maybeCreateCollapseButton(){if(this.headingInfo.level>0&&0==this.inputArea.promptNode.getElementsByClassName(Q).length){let e=this.inputArea.promptNode.appendChild(document.createElement("button"));e.className=`jp-Button ${Q}`,e.setAttribute("data-heading-level",this.headingInfo.level.toString()),this._headingCollapsed?e.classList.add("jp-mod-collapsed"):e.classList.remove("jp-mod-collapsed"),e.onclick=e=>{this.headingCollapsed=!this.headingCollapsed,this._toggleCollapsedSignal.emit(this._headingCollapsed)}}}maybeCreateOrUpdateExpandButton(){var e,t;const s=this.node.getElementsByClassName(Z);if(this.headingCollapsed&&0===s.length&&this._numberChildNodes>0){const e=document.createElement("button");e.className=`bp3-button bp3-minimal jp-Button ${Z}`,R.addIcon.render(e);const t=document.createElement("div");t.nodeValue=`${this._numberChildNodes} cell${this._numberChildNodes>1?"s":""} hidden`,e.appendChild(t),e.onclick=()=>{this.headingCollapsed=!1,this._toggleCollapsedSignal.emit(this._headingCollapsed)},this.node.appendChild(e)}else if((null===(t=null===(e=null==s?void 0:s[0])||void 0===e?void 0:e.childNodes)||void 0===t?void 0:t.length)>1)if(this._headingCollapsed)s[0].childNodes[1].textContent=`${this._numberChildNodes} cell${this._numberChildNodes>1?"s":""} hidden`;else for(const e of s)this.node.removeChild(e)}renderCollapseButtons(e){this.node.classList.toggle(K,this._headingCollapsed),this.maybeCreateCollapseButton(),this.maybeCreateOrUpdateExpandButton()}renderInput(e){this.addClass(ee),this.renderCollapseButtons(e),this.inputArea.renderInput(e)}showEditor(){this.removeClass(ee),this.inputArea.showEditor()}onUpdateRequest(e){this._handleRendered(),super.onUpdateRequest(e)}updateCellSourceWithAttachment(e,t){var s,a;const n=`![${e}](attachment:${null!=t?t:e})`;null===(a=(s=this.editor).replaceSelection)||void 0===a||a.call(s,n)}_handleRendered(){this._rendered?(this._updateRenderedInput(),this.renderInput(this._renderer)):this.showEditor()}_updateRenderedInput(){const e=this.model,t=e&&e.value.text||"Type Markdown and LaTeX: $ α^2 $";if(t!==this._prevText){const e=new z.MimeModel({data:{"text/markdown":t}});return this._renderer||(this._renderer=this._rendermime.createRenderer("text/markdown"),this._renderer.addClass("jp-MarkdownOutput")),this._prevText=t,this._renderer.renderModel(e)}return Promise.resolve(void 0)}clone(){return new(0,this.constructor)({model:this.model,contentFactory:this.contentFactory,rendermime:this._rendermime,placeholder:!1})}}!function(e){e.defaultShowEditorForReadOnlyMarkdown=!0}(oe||(oe={}));class de extends ae{constructor(e){super(e),this.addClass("jp-RawCell")}clone(){return new(0,this.constructor)({model:this.model,contentFactory:this.contentFactory,placeholder:!1})}}}}]); +//# sourceMappingURL=5193.e9f6866.js.map \ No newline at end of file diff --git a/_static/build/5193.e9f6866.js.map b/_static/build/5193.e9f6866.js.map new file mode 100644 index 0000000..a0691a8 --- /dev/null +++ b/_static/build/5193.e9f6866.js.map @@ -0,0 +1 @@ +{"version":3,"file":"5193.e9f6866.js","mappings":"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","sources":["webpack://_JUPYTERLAB.CORE_OUTPUT/../src/celldragutils.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/collapser.tsx","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/headerfooter.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/inputarea.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/model.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/placeholder.tsx","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/resizeHandle.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/widget.ts"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/_static/build/5213.3e1a360.js b/_static/build/5213.3e1a360.js new file mode 100644 index 0000000..9db9a7c --- /dev/null +++ b/_static/build/5213.3e1a360.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[5213],{50725:(r,a,c)=>{c.d(a,{Z:()=>A});var n=c(34663),o=c.n(n),e=c(7638),t=c.n(e)()(o());t.push([r.id,"/* Based on https://github.com/dempfi/ayu */\n\n.cm-s-ayu-dark.CodeMirror { background: #0a0e14; color: #b3b1ad; }\n.cm-s-ayu-dark div.CodeMirror-selected { background: #273747; }\n.cm-s-ayu-dark .CodeMirror-line::selection, .cm-s-ayu-dark .CodeMirror-line > span::selection, .cm-s-ayu-dark .CodeMirror-line > span > span::selection { background: rgba(39, 55, 71, 99); }\n.cm-s-ayu-dark .CodeMirror-line::-moz-selection, .cm-s-ayu-dark .CodeMirror-line > span::-moz-selection, .cm-s-ayu-dark .CodeMirror-line > span > span::-moz-selection { background: rgba(39, 55, 71, 99); }\n.cm-s-ayu-dark .CodeMirror-gutters { background: #0a0e14; border-right: 0px; }\n.cm-s-ayu-dark .CodeMirror-guttermarker { color: white; }\n.cm-s-ayu-dark .CodeMirror-guttermarker-subtle { color: #3d424d; }\n.cm-s-ayu-dark .CodeMirror-linenumber { color: #3d424d; }\n.cm-s-ayu-dark .CodeMirror-cursor { border-left: 1px solid #e6b450; }\n\n.cm-s-ayu-dark span.cm-comment { color: #626a73; }\n.cm-s-ayu-dark span.cm-atom { color: #ae81ff; }\n.cm-s-ayu-dark span.cm-number { color: #e6b450; }\n\n.cm-s-ayu-dark span.cm-comment.cm-attribute { color: #ffb454; }\n.cm-s-ayu-dark span.cm-comment.cm-def { color: rgba(57, 186, 230, 80); }\n.cm-s-ayu-dark span.cm-comment.cm-tag { color: #39bae6; }\n.cm-s-ayu-dark span.cm-comment.cm-type { color: #5998a6; }\n\n.cm-s-ayu-dark span.cm-property, .cm-s-ayu-dark span.cm-attribute { color: #ffb454; } \n.cm-s-ayu-dark span.cm-keyword { color: #ff8f40; } \n.cm-s-ayu-dark span.cm-builtin { color: #e6b450; }\n.cm-s-ayu-dark span.cm-string { color: #c2d94c; }\n\n.cm-s-ayu-dark span.cm-variable { color: #b3b1ad; }\n.cm-s-ayu-dark span.cm-variable-2 { color: #f07178; }\n.cm-s-ayu-dark span.cm-variable-3 { color: #39bae6; }\n.cm-s-ayu-dark span.cm-type { color: #ff8f40; }\n.cm-s-ayu-dark span.cm-def { color: #ffee99; }\n.cm-s-ayu-dark span.cm-bracket { color: #f8f8f2; }\n.cm-s-ayu-dark span.cm-tag { color: rgba(57, 186, 230, 80); }\n.cm-s-ayu-dark span.cm-header { color: #c2d94c; }\n.cm-s-ayu-dark span.cm-link { color: #39bae6; }\n.cm-s-ayu-dark span.cm-error { color: #ff3333; } \n\n.cm-s-ayu-dark .CodeMirror-activeline-background { background: #01060e; }\n.cm-s-ayu-dark .CodeMirror-matchingbracket {\n text-decoration: underline;\n color: white !important;\n}\n","",{version:3,sources:["webpack://./../node_modules/codemirror/theme/ayu-dark.css"],names:[],mappings:"AAAA,2CAA2C;;AAE3C,4BAA4B,mBAAmB,EAAE,cAAc,EAAE;AACjE,yCAAyC,mBAAmB,EAAE;AAC9D,0JAA0J,gCAAgC,EAAE;AAC5L,yKAAyK,gCAAgC,EAAE;AAC3M,qCAAqC,mBAAmB,EAAE,iBAAiB,EAAE;AAC7E,0CAA0C,YAAY,EAAE;AACxD,iDAAiD,cAAc,EAAE;AACjE,wCAAwC,cAAc,EAAE;AACxD,oCAAoC,8BAA8B,EAAE;;AAEpE,iCAAiC,cAAc,EAAE;AACjD,8BAA8B,cAAc,EAAE;AAC9C,gCAAgC,cAAc,EAAE;;AAEhD,8CAA8C,cAAc,EAAE;AAC9D,wCAAwC,6BAA6B,EAAE;AACvE,wCAAwC,cAAc,EAAE;AACxD,yCAAyC,cAAc,EAAE;;AAEzD,oEAAoE,cAAc,EAAE;AACpF,iCAAiC,cAAc,EAAE;AACjD,iCAAiC,cAAc,EAAE;AACjD,gCAAgC,cAAc,EAAE;;AAEhD,kCAAkC,cAAc,EAAE;AAClD,oCAAoC,cAAc,EAAE;AACpD,oCAAoC,cAAc,EAAE;AACpD,8BAA8B,cAAc,EAAE;AAC9C,6BAA6B,cAAc,EAAE;AAC7C,iCAAiC,cAAc,EAAE;AACjD,6BAA6B,6BAA6B,EAAE;AAC5D,gCAAgC,cAAc,EAAE;AAChD,8BAA8B,cAAc,EAAE;AAC9C,+BAA+B,cAAc,EAAE;;AAE/C,mDAAmD,mBAAmB,EAAE;AACxE;EACE,0BAA0B;EAC1B,uBAAuB;AACzB",sourcesContent:["/* Based on https://github.com/dempfi/ayu */\n\n.cm-s-ayu-dark.CodeMirror { background: #0a0e14; color: #b3b1ad; }\n.cm-s-ayu-dark div.CodeMirror-selected { background: #273747; }\n.cm-s-ayu-dark .CodeMirror-line::selection, .cm-s-ayu-dark .CodeMirror-line > span::selection, .cm-s-ayu-dark .CodeMirror-line > span > span::selection { background: rgba(39, 55, 71, 99); }\n.cm-s-ayu-dark .CodeMirror-line::-moz-selection, .cm-s-ayu-dark .CodeMirror-line > span::-moz-selection, .cm-s-ayu-dark .CodeMirror-line > span > span::-moz-selection { background: rgba(39, 55, 71, 99); }\n.cm-s-ayu-dark .CodeMirror-gutters { background: #0a0e14; border-right: 0px; }\n.cm-s-ayu-dark .CodeMirror-guttermarker { color: white; }\n.cm-s-ayu-dark .CodeMirror-guttermarker-subtle { color: #3d424d; }\n.cm-s-ayu-dark .CodeMirror-linenumber { color: #3d424d; }\n.cm-s-ayu-dark .CodeMirror-cursor { border-left: 1px solid #e6b450; }\n\n.cm-s-ayu-dark span.cm-comment { color: #626a73; }\n.cm-s-ayu-dark span.cm-atom { color: #ae81ff; }\n.cm-s-ayu-dark span.cm-number { color: #e6b450; }\n\n.cm-s-ayu-dark span.cm-comment.cm-attribute { color: #ffb454; }\n.cm-s-ayu-dark span.cm-comment.cm-def { color: rgba(57, 186, 230, 80); }\n.cm-s-ayu-dark span.cm-comment.cm-tag { color: #39bae6; }\n.cm-s-ayu-dark span.cm-comment.cm-type { color: #5998a6; }\n\n.cm-s-ayu-dark span.cm-property, .cm-s-ayu-dark span.cm-attribute { color: #ffb454; } \n.cm-s-ayu-dark span.cm-keyword { color: #ff8f40; } \n.cm-s-ayu-dark span.cm-builtin { color: #e6b450; }\n.cm-s-ayu-dark span.cm-string { color: #c2d94c; }\n\n.cm-s-ayu-dark span.cm-variable { color: #b3b1ad; }\n.cm-s-ayu-dark span.cm-variable-2 { color: #f07178; }\n.cm-s-ayu-dark span.cm-variable-3 { color: #39bae6; }\n.cm-s-ayu-dark span.cm-type { color: #ff8f40; }\n.cm-s-ayu-dark span.cm-def { color: #ffee99; }\n.cm-s-ayu-dark span.cm-bracket { color: #f8f8f2; }\n.cm-s-ayu-dark span.cm-tag { color: rgba(57, 186, 230, 80); }\n.cm-s-ayu-dark span.cm-header { color: #c2d94c; }\n.cm-s-ayu-dark span.cm-link { color: #39bae6; }\n.cm-s-ayu-dark span.cm-error { color: #ff3333; } \n\n.cm-s-ayu-dark .CodeMirror-activeline-background { background: #01060e; }\n.cm-s-ayu-dark .CodeMirror-matchingbracket {\n text-decoration: underline;\n color: white !important;\n}\n"],sourceRoot:""}]);const A=t},7638:r=>{r.exports=function(r){var a=[];return a.toString=function(){return this.map((function(a){var c="",n=void 0!==a[5];return a[4]&&(c+="@supports (".concat(a[4],") {")),a[2]&&(c+="@media ".concat(a[2]," {")),n&&(c+="@layer".concat(a[5].length>0?" ".concat(a[5]):""," {")),c+=r(a),n&&(c+="}"),a[2]&&(c+="}"),a[4]&&(c+="}"),c})).join("")},a.i=function(r,c,n,o,e){"string"==typeof r&&(r=[[null,r,void 0]]);var t={};if(n)for(var A=0;A0?" ".concat(d[5]):""," {").concat(d[1],"}")),d[5]=e),c&&(d[2]?(d[1]="@media ".concat(d[2]," {").concat(d[1],"}"),d[2]=c):d[2]=c),o&&(d[4]?(d[1]="@supports (".concat(d[4],") {").concat(d[1],"}"),d[4]=o):d[4]="".concat(o)),a.push(d))}},a}},34663:r=>{r.exports=function(r){var a=r[1],c=r[3];if(!c)return a;if("function"==typeof btoa){var n=btoa(unescape(encodeURIComponent(JSON.stringify(c)))),o="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(n),e="/*# ".concat(o," */"),t=c.sources.map((function(r){return"/*# sourceURL=".concat(c.sourceRoot||"").concat(r," */")}));return[a].concat(t).concat([e]).join("\n")}return[a].join("\n")}},5213:(r,a,c)=>{c.r(a),c.d(a,{default:()=>f});var n=c(1892),o=c.n(n),e=c(95760),t=c.n(e),A=c(38311),s=c.n(A),i=c(58192),d=c.n(i),m=c(38060),u=c.n(m),l=c(54865),p=c.n(l),C=c(50725),y={};y.styleTagTransform=p(),y.setAttributes=d(),y.insert=s().bind(null,"head"),y.domAPI=t(),y.insertStyleElement=u(),o()(C.Z,y);const f=C.Z&&C.Z.locals?C.Z.locals:void 0},1892:r=>{var a=[];function c(r){for(var c=-1,n=0;n{var a={};r.exports=function(r,c){var n=function(r){if(void 0===a[r]){var c=document.querySelector(r);if(window.HTMLIFrameElement&&c instanceof window.HTMLIFrameElement)try{c=c.contentDocument.head}catch(r){c=null}a[r]=c}return a[r]}(r);if(!n)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");n.appendChild(c)}},38060:r=>{r.exports=function(r){var a=document.createElement("style");return r.setAttributes(a,r.attributes),r.insert(a,r.options),a}},58192:(r,a,c)=>{r.exports=function(r){var a=c.nc;a&&r.setAttribute("nonce",a)}},95760:r=>{r.exports=function(r){var a=r.insertStyleElement(r);return{update:function(c){!function(r,a,c){var n="";c.supports&&(n+="@supports (".concat(c.supports,") {")),c.media&&(n+="@media ".concat(c.media," {"));var o=void 0!==c.layer;o&&(n+="@layer".concat(c.layer.length>0?" ".concat(c.layer):""," {")),n+=c.css,o&&(n+="}"),c.media&&(n+="}"),c.supports&&(n+="}");var e=c.sourceMap;e&&"undefined"!=typeof btoa&&(n+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(e))))," */")),a.styleTagTransform(n,r,a.options)}(a,r,c)},remove:function(){!function(r){if(null===r.parentNode)return!1;r.parentNode.removeChild(r)}(a)}}}},54865:r=>{r.exports=function(r,a){if(a.styleSheet)a.styleSheet.cssText=r;else{for(;a.firstChild;)a.removeChild(a.firstChild);a.appendChild(document.createTextNode(r))}}}}]); +//# sourceMappingURL=5213.3e1a360.js.map \ No newline at end of file diff --git a/_static/build/5213.3e1a360.js.map b/_static/build/5213.3e1a360.js.map new file mode 100644 index 0000000..bce1693 --- /dev/null +++ b/_static/build/5213.3e1a360.js.map @@ -0,0 +1 @@ +{"version":3,"file":"5213.3e1a360.js","mappings":"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","sources":["webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/theme/ayu-dark.css","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/css-loader/dist/runtime/api.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/css-loader/dist/runtime/sourceMaps.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/theme/ayu-dark.css?3404","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/insertBySelector.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/insertStyleElement.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/styleDomAPI.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/styleTagTransform.js"],"sourcesContent":["// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"/* Based on https://github.com/dempfi/ayu */\\n\\n.cm-s-ayu-dark.CodeMirror { background: #0a0e14; color: #b3b1ad; }\\n.cm-s-ayu-dark div.CodeMirror-selected { background: #273747; }\\n.cm-s-ayu-dark .CodeMirror-line::selection, .cm-s-ayu-dark .CodeMirror-line > span::selection, .cm-s-ayu-dark .CodeMirror-line > span > span::selection { background: rgba(39, 55, 71, 99); }\\n.cm-s-ayu-dark .CodeMirror-line::-moz-selection, .cm-s-ayu-dark .CodeMirror-line > span::-moz-selection, .cm-s-ayu-dark .CodeMirror-line > span > span::-moz-selection { background: rgba(39, 55, 71, 99); }\\n.cm-s-ayu-dark .CodeMirror-gutters { background: #0a0e14; border-right: 0px; }\\n.cm-s-ayu-dark .CodeMirror-guttermarker { color: white; }\\n.cm-s-ayu-dark .CodeMirror-guttermarker-subtle { color: #3d424d; }\\n.cm-s-ayu-dark .CodeMirror-linenumber { color: #3d424d; }\\n.cm-s-ayu-dark .CodeMirror-cursor { border-left: 1px solid #e6b450; }\\n\\n.cm-s-ayu-dark span.cm-comment { color: #626a73; }\\n.cm-s-ayu-dark span.cm-atom { color: #ae81ff; }\\n.cm-s-ayu-dark span.cm-number { color: #e6b450; }\\n\\n.cm-s-ayu-dark span.cm-comment.cm-attribute { color: #ffb454; }\\n.cm-s-ayu-dark span.cm-comment.cm-def { color: rgba(57, 186, 230, 80); }\\n.cm-s-ayu-dark span.cm-comment.cm-tag { color: #39bae6; }\\n.cm-s-ayu-dark span.cm-comment.cm-type { color: #5998a6; }\\n\\n.cm-s-ayu-dark span.cm-property, .cm-s-ayu-dark span.cm-attribute { color: #ffb454; } \\n.cm-s-ayu-dark span.cm-keyword { color: #ff8f40; } \\n.cm-s-ayu-dark span.cm-builtin { color: #e6b450; }\\n.cm-s-ayu-dark span.cm-string { color: #c2d94c; }\\n\\n.cm-s-ayu-dark span.cm-variable { color: #b3b1ad; }\\n.cm-s-ayu-dark span.cm-variable-2 { color: #f07178; }\\n.cm-s-ayu-dark span.cm-variable-3 { color: #39bae6; }\\n.cm-s-ayu-dark span.cm-type { color: #ff8f40; }\\n.cm-s-ayu-dark span.cm-def { color: #ffee99; }\\n.cm-s-ayu-dark span.cm-bracket { color: #f8f8f2; }\\n.cm-s-ayu-dark span.cm-tag { color: rgba(57, 186, 230, 80); }\\n.cm-s-ayu-dark span.cm-header { color: #c2d94c; }\\n.cm-s-ayu-dark span.cm-link { color: #39bae6; }\\n.cm-s-ayu-dark span.cm-error { color: #ff3333; } \\n\\n.cm-s-ayu-dark .CodeMirror-activeline-background { background: #01060e; }\\n.cm-s-ayu-dark .CodeMirror-matchingbracket {\\n text-decoration: underline;\\n color: white !important;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./../node_modules/codemirror/theme/ayu-dark.css\"],\"names\":[],\"mappings\":\"AAAA,2CAA2C;;AAE3C,4BAA4B,mBAAmB,EAAE,cAAc,EAAE;AACjE,yCAAyC,mBAAmB,EAAE;AAC9D,0JAA0J,gCAAgC,EAAE;AAC5L,yKAAyK,gCAAgC,EAAE;AAC3M,qCAAqC,mBAAmB,EAAE,iBAAiB,EAAE;AAC7E,0CAA0C,YAAY,EAAE;AACxD,iDAAiD,cAAc,EAAE;AACjE,wCAAwC,cAAc,EAAE;AACxD,oCAAoC,8BAA8B,EAAE;;AAEpE,iCAAiC,cAAc,EAAE;AACjD,8BAA8B,cAAc,EAAE;AAC9C,gCAAgC,cAAc,EAAE;;AAEhD,8CAA8C,cAAc,EAAE;AAC9D,wCAAwC,6BAA6B,EAAE;AACvE,wCAAwC,cAAc,EAAE;AACxD,yCAAyC,cAAc,EAAE;;AAEzD,oEAAoE,cAAc,EAAE;AACpF,iCAAiC,cAAc,EAAE;AACjD,iCAAiC,cAAc,EAAE;AACjD,gCAAgC,cAAc,EAAE;;AAEhD,kCAAkC,cAAc,EAAE;AAClD,oCAAoC,cAAc,EAAE;AACpD,oCAAoC,cAAc,EAAE;AACpD,8BAA8B,cAAc,EAAE;AAC9C,6BAA6B,cAAc,EAAE;AAC7C,iCAAiC,cAAc,EAAE;AACjD,6BAA6B,6BAA6B,EAAE;AAC5D,gCAAgC,cAAc,EAAE;AAChD,8BAA8B,cAAc,EAAE;AAC9C,+BAA+B,cAAc,EAAE;;AAE/C,mDAAmD,mBAAmB,EAAE;AACxE;EACE,0BAA0B;EAC1B,uBAAuB;AACzB\",\"sourcesContent\":[\"/* Based on https://github.com/dempfi/ayu */\\n\\n.cm-s-ayu-dark.CodeMirror { background: #0a0e14; color: #b3b1ad; }\\n.cm-s-ayu-dark div.CodeMirror-selected { background: #273747; }\\n.cm-s-ayu-dark .CodeMirror-line::selection, .cm-s-ayu-dark .CodeMirror-line > span::selection, .cm-s-ayu-dark .CodeMirror-line > span > span::selection { background: rgba(39, 55, 71, 99); }\\n.cm-s-ayu-dark .CodeMirror-line::-moz-selection, .cm-s-ayu-dark .CodeMirror-line > span::-moz-selection, .cm-s-ayu-dark .CodeMirror-line > span > span::-moz-selection { background: rgba(39, 55, 71, 99); }\\n.cm-s-ayu-dark .CodeMirror-gutters { background: #0a0e14; border-right: 0px; }\\n.cm-s-ayu-dark .CodeMirror-guttermarker { color: white; }\\n.cm-s-ayu-dark .CodeMirror-guttermarker-subtle { color: #3d424d; }\\n.cm-s-ayu-dark .CodeMirror-linenumber { color: #3d424d; }\\n.cm-s-ayu-dark .CodeMirror-cursor { border-left: 1px solid #e6b450; }\\n\\n.cm-s-ayu-dark span.cm-comment { color: #626a73; }\\n.cm-s-ayu-dark span.cm-atom { color: #ae81ff; }\\n.cm-s-ayu-dark span.cm-number { color: #e6b450; }\\n\\n.cm-s-ayu-dark span.cm-comment.cm-attribute { color: #ffb454; }\\n.cm-s-ayu-dark span.cm-comment.cm-def { color: rgba(57, 186, 230, 80); }\\n.cm-s-ayu-dark span.cm-comment.cm-tag { color: #39bae6; }\\n.cm-s-ayu-dark span.cm-comment.cm-type { color: #5998a6; }\\n\\n.cm-s-ayu-dark span.cm-property, .cm-s-ayu-dark span.cm-attribute { color: #ffb454; } \\n.cm-s-ayu-dark span.cm-keyword { color: #ff8f40; } \\n.cm-s-ayu-dark span.cm-builtin { color: #e6b450; }\\n.cm-s-ayu-dark span.cm-string { color: #c2d94c; }\\n\\n.cm-s-ayu-dark span.cm-variable { color: #b3b1ad; }\\n.cm-s-ayu-dark span.cm-variable-2 { color: #f07178; }\\n.cm-s-ayu-dark span.cm-variable-3 { color: #39bae6; }\\n.cm-s-ayu-dark span.cm-type { color: #ff8f40; }\\n.cm-s-ayu-dark span.cm-def { color: #ffee99; }\\n.cm-s-ayu-dark span.cm-bracket { color: #f8f8f2; }\\n.cm-s-ayu-dark span.cm-tag { color: rgba(57, 186, 230, 80); }\\n.cm-s-ayu-dark span.cm-header { color: #c2d94c; }\\n.cm-s-ayu-dark span.cm-link { color: #39bae6; }\\n.cm-s-ayu-dark span.cm-error { color: #ff3333; } \\n\\n.cm-s-ayu-dark .CodeMirror-activeline-background { background: #01060e; }\\n.cm-s-ayu-dark .CodeMirror-matchingbracket {\\n text-decoration: underline;\\n color: white !important;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\nmodule.exports = function (cssWithMappingToString) {\n var list = [];\n\n // return the list of modules as css string\n list.toString = function toString() {\n return this.map(function (item) {\n var content = \"\";\n var needLayer = typeof item[5] !== \"undefined\";\n if (item[4]) {\n content += \"@supports (\".concat(item[4], \") {\");\n }\n if (item[2]) {\n content += \"@media \".concat(item[2], \" {\");\n }\n if (needLayer) {\n content += \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\");\n }\n content += cssWithMappingToString(item);\n if (needLayer) {\n content += \"}\";\n }\n if (item[2]) {\n content += \"}\";\n }\n if (item[4]) {\n content += \"}\";\n }\n return content;\n }).join(\"\");\n };\n\n // import a list of modules into the list\n list.i = function i(modules, media, dedupe, supports, layer) {\n if (typeof modules === \"string\") {\n modules = [[null, modules, undefined]];\n }\n var alreadyImportedModules = {};\n if (dedupe) {\n for (var k = 0; k < this.length; k++) {\n var id = this[k][0];\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n for (var _k = 0; _k < modules.length; _k++) {\n var item = [].concat(modules[_k]);\n if (dedupe && alreadyImportedModules[item[0]]) {\n continue;\n }\n if (typeof layer !== \"undefined\") {\n if (typeof item[5] === \"undefined\") {\n item[5] = layer;\n } else {\n item[1] = \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\").concat(item[1], \"}\");\n item[5] = layer;\n }\n }\n if (media) {\n if (!item[2]) {\n item[2] = media;\n } else {\n item[1] = \"@media \".concat(item[2], \" {\").concat(item[1], \"}\");\n item[2] = media;\n }\n }\n if (supports) {\n if (!item[4]) {\n item[4] = \"\".concat(supports);\n } else {\n item[1] = \"@supports (\".concat(item[4], \") {\").concat(item[1], \"}\");\n item[4] = supports;\n }\n }\n list.push(item);\n }\n };\n return list;\n};","\"use strict\";\n\nmodule.exports = function (item) {\n var content = item[1];\n var cssMapping = item[3];\n if (!cssMapping) {\n return content;\n }\n if (typeof btoa === \"function\") {\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(cssMapping))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n var sourceMapping = \"/*# \".concat(data, \" */\");\n var sourceURLs = cssMapping.sources.map(function (source) {\n return \"/*# sourceURL=\".concat(cssMapping.sourceRoot || \"\").concat(source, \" */\");\n });\n return [content].concat(sourceURLs).concat([sourceMapping]).join(\"\\n\");\n }\n return [content].join(\"\\n\");\n};","\n import API from \"!../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../css-loader/dist/cjs.js!./ayu-dark.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../css-loader/dist/cjs.js!./ayu-dark.css\";\n export default content && content.locals ? content.locals : undefined;\n","\"use strict\";\n\nvar stylesInDOM = [];\n\nfunction getIndexByIdentifier(identifier) {\n var result = -1;\n\n for (var i = 0; i < stylesInDOM.length; i++) {\n if (stylesInDOM[i].identifier === identifier) {\n result = i;\n break;\n }\n }\n\n return result;\n}\n\nfunction modulesToDom(list, options) {\n var idCountMap = {};\n var identifiers = [];\n\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var count = idCountMap[id] || 0;\n var identifier = \"\".concat(id, \" \").concat(count);\n idCountMap[id] = count + 1;\n var indexByIdentifier = getIndexByIdentifier(identifier);\n var obj = {\n css: item[1],\n media: item[2],\n sourceMap: item[3],\n supports: item[4],\n layer: item[5]\n };\n\n if (indexByIdentifier !== -1) {\n stylesInDOM[indexByIdentifier].references++;\n stylesInDOM[indexByIdentifier].updater(obj);\n } else {\n var updater = addElementStyle(obj, options);\n options.byIndex = i;\n stylesInDOM.splice(i, 0, {\n identifier: identifier,\n updater: updater,\n references: 1\n });\n }\n\n identifiers.push(identifier);\n }\n\n return identifiers;\n}\n\nfunction addElementStyle(obj, options) {\n var api = options.domAPI(options);\n api.update(obj);\n\n var updater = function updater(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap && newObj.supports === obj.supports && newObj.layer === obj.layer) {\n return;\n }\n\n api.update(obj = newObj);\n } else {\n api.remove();\n }\n };\n\n return updater;\n}\n\nmodule.exports = function (list, options) {\n options = options || {};\n list = list || [];\n var lastIdentifiers = modulesToDom(list, options);\n return function update(newList) {\n newList = newList || [];\n\n for (var i = 0; i < lastIdentifiers.length; i++) {\n var identifier = lastIdentifiers[i];\n var index = getIndexByIdentifier(identifier);\n stylesInDOM[index].references--;\n }\n\n var newLastIdentifiers = modulesToDom(newList, options);\n\n for (var _i = 0; _i < lastIdentifiers.length; _i++) {\n var _identifier = lastIdentifiers[_i];\n\n var _index = getIndexByIdentifier(_identifier);\n\n if (stylesInDOM[_index].references === 0) {\n stylesInDOM[_index].updater();\n\n stylesInDOM.splice(_index, 1);\n }\n }\n\n lastIdentifiers = newLastIdentifiers;\n };\n};","\"use strict\";\n\nvar memo = {};\n/* istanbul ignore next */\n\nfunction getTarget(target) {\n if (typeof memo[target] === \"undefined\") {\n var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself\n\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n\n memo[target] = styleTarget;\n }\n\n return memo[target];\n}\n/* istanbul ignore next */\n\n\nfunction insertBySelector(insert, style) {\n var target = getTarget(insert);\n\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n\n target.appendChild(style);\n}\n\nmodule.exports = insertBySelector;","\"use strict\";\n\n/* istanbul ignore next */\nfunction insertStyleElement(options) {\n var element = document.createElement(\"style\");\n options.setAttributes(element, options.attributes);\n options.insert(element, options.options);\n return element;\n}\n\nmodule.exports = insertStyleElement;","\"use strict\";\n\n/* istanbul ignore next */\nfunction setAttributesWithoutAttributes(styleElement) {\n var nonce = typeof __webpack_nonce__ !== \"undefined\" ? __webpack_nonce__ : null;\n\n if (nonce) {\n styleElement.setAttribute(\"nonce\", nonce);\n }\n}\n\nmodule.exports = setAttributesWithoutAttributes;","\"use strict\";\n\n/* istanbul ignore next */\nfunction apply(styleElement, options, obj) {\n var css = \"\";\n\n if (obj.supports) {\n css += \"@supports (\".concat(obj.supports, \") {\");\n }\n\n if (obj.media) {\n css += \"@media \".concat(obj.media, \" {\");\n }\n\n var needLayer = typeof obj.layer !== \"undefined\";\n\n if (needLayer) {\n css += \"@layer\".concat(obj.layer.length > 0 ? \" \".concat(obj.layer) : \"\", \" {\");\n }\n\n css += obj.css;\n\n if (needLayer) {\n css += \"}\";\n }\n\n if (obj.media) {\n css += \"}\";\n }\n\n if (obj.supports) {\n css += \"}\";\n }\n\n var sourceMap = obj.sourceMap;\n\n if (sourceMap && typeof btoa !== \"undefined\") {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n } // For old IE\n\n /* istanbul ignore if */\n\n\n options.styleTagTransform(css, styleElement, options.options);\n}\n\nfunction removeStyleElement(styleElement) {\n // istanbul ignore if\n if (styleElement.parentNode === null) {\n return false;\n }\n\n styleElement.parentNode.removeChild(styleElement);\n}\n/* istanbul ignore next */\n\n\nfunction domAPI(options) {\n var styleElement = options.insertStyleElement(options);\n return {\n update: function update(obj) {\n apply(styleElement, options, obj);\n },\n remove: function remove() {\n removeStyleElement(styleElement);\n }\n };\n}\n\nmodule.exports = domAPI;","\"use strict\";\n\n/* istanbul ignore next */\nfunction styleTagTransform(css, styleElement) {\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = css;\n } else {\n while (styleElement.firstChild) {\n styleElement.removeChild(styleElement.firstChild);\n }\n\n styleElement.appendChild(document.createTextNode(css));\n }\n}\n\nmodule.exports = styleTagTransform;"],"names":["___CSS_LOADER_EXPORT___","push","module","id","exports","cssWithMappingToString","list","toString","this","map","item","content","needLayer","concat","length","join","i","modules","media","dedupe","supports","layer","undefined","alreadyImportedModules","k","_k","cssMapping","btoa","base64","unescape","encodeURIComponent","JSON","stringify","data","sourceMapping","sourceURLs","sources","source","sourceRoot","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","stylesInDOM","getIndexByIdentifier","identifier","result","modulesToDom","idCountMap","identifiers","base","count","indexByIdentifier","obj","css","sourceMap","references","updater","addElementStyle","byIndex","splice","api","update","newObj","remove","lastIdentifiers","newList","index","newLastIdentifiers","_i","_index","memo","style","target","styleTarget","document","querySelector","window","HTMLIFrameElement","contentDocument","head","e","getTarget","Error","appendChild","element","createElement","attributes","styleElement","nonce","setAttribute","apply","parentNode","removeChild","removeStyleElement","styleSheet","cssText","firstChild","createTextNode"],"sourceRoot":""} \ No newline at end of file diff --git a/_static/build/5227.8c8acd8.js b/_static/build/5227.8c8acd8.js new file mode 100644 index 0000000..f36f6ca --- /dev/null +++ b/_static/build/5227.8c8acd8.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[5227],{11213:(o,c,r)=>{r.d(c,{Z:()=>s});var e=r(34663),n=r.n(e),t=r(7638),a=r.n(t)()(n());a.push([o.id,".cm-s-cobalt.CodeMirror { background: #002240; color: white; }\n.cm-s-cobalt div.CodeMirror-selected { background: #b36539; }\n.cm-s-cobalt .CodeMirror-line::selection, .cm-s-cobalt .CodeMirror-line > span::selection, .cm-s-cobalt .CodeMirror-line > span > span::selection { background: rgba(179, 101, 57, .99); }\n.cm-s-cobalt .CodeMirror-line::-moz-selection, .cm-s-cobalt .CodeMirror-line > span::-moz-selection, .cm-s-cobalt .CodeMirror-line > span > span::-moz-selection { background: rgba(179, 101, 57, .99); }\n.cm-s-cobalt .CodeMirror-gutters { background: #002240; border-right: 1px solid #aaa; }\n.cm-s-cobalt .CodeMirror-guttermarker { color: #ffee80; }\n.cm-s-cobalt .CodeMirror-guttermarker-subtle { color: #d0d0d0; }\n.cm-s-cobalt .CodeMirror-linenumber { color: #d0d0d0; }\n.cm-s-cobalt .CodeMirror-cursor { border-left: 1px solid white; }\n\n.cm-s-cobalt span.cm-comment { color: #08f; }\n.cm-s-cobalt span.cm-atom { color: #845dc4; }\n.cm-s-cobalt span.cm-number, .cm-s-cobalt span.cm-attribute { color: #ff80e1; }\n.cm-s-cobalt span.cm-keyword { color: #ffee80; }\n.cm-s-cobalt span.cm-string { color: #3ad900; }\n.cm-s-cobalt span.cm-meta { color: #ff9d00; }\n.cm-s-cobalt span.cm-variable-2, .cm-s-cobalt span.cm-tag { color: #9effff; }\n.cm-s-cobalt span.cm-variable-3, .cm-s-cobalt span.cm-def, .cm-s-cobalt .cm-type { color: white; }\n.cm-s-cobalt span.cm-bracket { color: #d8d8d8; }\n.cm-s-cobalt span.cm-builtin, .cm-s-cobalt span.cm-special { color: #ff9e59; }\n.cm-s-cobalt span.cm-link { color: #845dc4; }\n.cm-s-cobalt span.cm-error { color: #9d1e15; }\n\n.cm-s-cobalt .CodeMirror-activeline-background { background: #002D57; }\n.cm-s-cobalt .CodeMirror-matchingbracket { outline:1px solid grey;color:white !important; }\n","",{version:3,sources:["webpack://./../node_modules/codemirror/theme/cobalt.css"],names:[],mappings:"AAAA,0BAA0B,mBAAmB,EAAE,YAAY,EAAE;AAC7D,uCAAuC,mBAAmB,EAAE;AAC5D,oJAAoJ,mCAAmC,EAAE;AACzL,mKAAmK,mCAAmC,EAAE;AACxM,mCAAmC,mBAAmB,EAAE,4BAA4B,EAAE;AACtF,wCAAwC,cAAc,EAAE;AACxD,+CAA+C,cAAc,EAAE;AAC/D,sCAAsC,cAAc,EAAE;AACtD,kCAAkC,4BAA4B,EAAE;;AAEhE,+BAA+B,WAAW,EAAE;AAC5C,4BAA4B,cAAc,EAAE;AAC5C,8DAA8D,cAAc,EAAE;AAC9E,+BAA+B,cAAc,EAAE;AAC/C,8BAA8B,cAAc,EAAE;AAC9C,4BAA4B,cAAc,EAAE;AAC5C,4DAA4D,cAAc,EAAE;AAC5E,mFAAmF,YAAY,EAAE;AACjG,+BAA+B,cAAc,EAAE;AAC/C,6DAA6D,cAAc,EAAE;AAC7E,4BAA4B,cAAc,EAAE;AAC5C,6BAA6B,cAAc,EAAE;;AAE7C,iDAAiD,mBAAmB,EAAE;AACtE,2CAA2C,sBAAsB,CAAC,sBAAsB,EAAE",sourcesContent:[".cm-s-cobalt.CodeMirror { background: #002240; color: white; }\n.cm-s-cobalt div.CodeMirror-selected { background: #b36539; }\n.cm-s-cobalt .CodeMirror-line::selection, .cm-s-cobalt .CodeMirror-line > span::selection, .cm-s-cobalt .CodeMirror-line > span > span::selection { background: rgba(179, 101, 57, .99); }\n.cm-s-cobalt .CodeMirror-line::-moz-selection, .cm-s-cobalt .CodeMirror-line > span::-moz-selection, .cm-s-cobalt .CodeMirror-line > span > span::-moz-selection { background: rgba(179, 101, 57, .99); }\n.cm-s-cobalt .CodeMirror-gutters { background: #002240; border-right: 1px solid #aaa; }\n.cm-s-cobalt .CodeMirror-guttermarker { color: #ffee80; }\n.cm-s-cobalt .CodeMirror-guttermarker-subtle { color: #d0d0d0; }\n.cm-s-cobalt .CodeMirror-linenumber { color: #d0d0d0; }\n.cm-s-cobalt .CodeMirror-cursor { border-left: 1px solid white; }\n\n.cm-s-cobalt span.cm-comment { color: #08f; }\n.cm-s-cobalt span.cm-atom { color: #845dc4; }\n.cm-s-cobalt span.cm-number, .cm-s-cobalt span.cm-attribute { color: #ff80e1; }\n.cm-s-cobalt span.cm-keyword { color: #ffee80; }\n.cm-s-cobalt span.cm-string { color: #3ad900; }\n.cm-s-cobalt span.cm-meta { color: #ff9d00; }\n.cm-s-cobalt span.cm-variable-2, .cm-s-cobalt span.cm-tag { color: #9effff; }\n.cm-s-cobalt span.cm-variable-3, .cm-s-cobalt span.cm-def, .cm-s-cobalt .cm-type { color: white; }\n.cm-s-cobalt span.cm-bracket { color: #d8d8d8; }\n.cm-s-cobalt span.cm-builtin, .cm-s-cobalt span.cm-special { color: #ff9e59; }\n.cm-s-cobalt span.cm-link { color: #845dc4; }\n.cm-s-cobalt span.cm-error { color: #9d1e15; }\n\n.cm-s-cobalt .CodeMirror-activeline-background { background: #002D57; }\n.cm-s-cobalt .CodeMirror-matchingbracket { outline:1px solid grey;color:white !important; }\n"],sourceRoot:""}]);const s=a},7638:o=>{o.exports=function(o){var c=[];return c.toString=function(){return this.map((function(c){var r="",e=void 0!==c[5];return c[4]&&(r+="@supports (".concat(c[4],") {")),c[2]&&(r+="@media ".concat(c[2]," {")),e&&(r+="@layer".concat(c[5].length>0?" ".concat(c[5]):""," {")),r+=o(c),e&&(r+="}"),c[2]&&(r+="}"),c[4]&&(r+="}"),r})).join("")},c.i=function(o,r,e,n,t){"string"==typeof o&&(o=[[null,o,void 0]]);var a={};if(e)for(var s=0;s0?" ".concat(A[5]):""," {").concat(A[1],"}")),A[5]=t),r&&(A[2]?(A[1]="@media ".concat(A[2]," {").concat(A[1],"}"),A[2]=r):A[2]=r),n&&(A[4]?(A[1]="@supports (".concat(A[4],") {").concat(A[1],"}"),A[4]=n):A[4]="".concat(n)),c.push(A))}},c}},34663:o=>{o.exports=function(o){var c=o[1],r=o[3];if(!r)return c;if("function"==typeof btoa){var e=btoa(unescape(encodeURIComponent(JSON.stringify(r)))),n="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(e),t="/*# ".concat(n," */"),a=r.sources.map((function(o){return"/*# sourceURL=".concat(r.sourceRoot||"").concat(o," */")}));return[c].concat(a).concat([t]).join("\n")}return[c].join("\n")}},15227:(o,c,r)=>{r.r(c),r.d(c,{default:()=>C});var e=r(1892),n=r.n(e),t=r(95760),a=r.n(t),s=r(38311),l=r.n(s),i=r(58192),A=r.n(i),m=r(38060),d=r.n(m),u=r(54865),p=r.n(u),b=r(11213),f={};f.styleTagTransform=p(),f.setAttributes=A(),f.insert=l().bind(null,"head"),f.domAPI=a(),f.insertStyleElement=d(),n()(b.Z,f);const C=b.Z&&b.Z.locals?b.Z.locals:void 0},1892:o=>{var c=[];function r(o){for(var r=-1,e=0;e{var c={};o.exports=function(o,r){var e=function(o){if(void 0===c[o]){var r=document.querySelector(o);if(window.HTMLIFrameElement&&r instanceof window.HTMLIFrameElement)try{r=r.contentDocument.head}catch(o){r=null}c[o]=r}return c[o]}(o);if(!e)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");e.appendChild(r)}},38060:o=>{o.exports=function(o){var c=document.createElement("style");return o.setAttributes(c,o.attributes),o.insert(c,o.options),c}},58192:(o,c,r)=>{o.exports=function(o){var c=r.nc;c&&o.setAttribute("nonce",c)}},95760:o=>{o.exports=function(o){var c=o.insertStyleElement(o);return{update:function(r){!function(o,c,r){var e="";r.supports&&(e+="@supports (".concat(r.supports,") {")),r.media&&(e+="@media ".concat(r.media," {"));var n=void 0!==r.layer;n&&(e+="@layer".concat(r.layer.length>0?" ".concat(r.layer):""," {")),e+=r.css,n&&(e+="}"),r.media&&(e+="}"),r.supports&&(e+="}");var t=r.sourceMap;t&&"undefined"!=typeof btoa&&(e+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(t))))," */")),c.styleTagTransform(e,o,c.options)}(c,o,r)},remove:function(){!function(o){if(null===o.parentNode)return!1;o.parentNode.removeChild(o)}(c)}}}},54865:o=>{o.exports=function(o,c){if(c.styleSheet)c.styleSheet.cssText=o;else{for(;c.firstChild;)c.removeChild(c.firstChild);c.appendChild(document.createTextNode(o))}}}}]); +//# sourceMappingURL=5227.8c8acd8.js.map \ No newline at end of file diff --git a/_static/build/5227.8c8acd8.js.map b/_static/build/5227.8c8acd8.js.map new file mode 100644 index 0000000..f5e8cd8 --- /dev/null +++ b/_static/build/5227.8c8acd8.js.map @@ -0,0 +1 @@ +{"version":3,"file":"5227.8c8acd8.js","mappings":"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","sources":["webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/theme/cobalt.css","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/css-loader/dist/runtime/api.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/css-loader/dist/runtime/sourceMaps.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/theme/cobalt.css?9fe1","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/insertBySelector.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/insertStyleElement.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/styleDomAPI.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/styleTagTransform.js"],"sourcesContent":["// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".cm-s-cobalt.CodeMirror { background: #002240; color: white; }\\n.cm-s-cobalt div.CodeMirror-selected { background: #b36539; }\\n.cm-s-cobalt .CodeMirror-line::selection, .cm-s-cobalt .CodeMirror-line > span::selection, .cm-s-cobalt .CodeMirror-line > span > span::selection { background: rgba(179, 101, 57, .99); }\\n.cm-s-cobalt .CodeMirror-line::-moz-selection, .cm-s-cobalt .CodeMirror-line > span::-moz-selection, .cm-s-cobalt .CodeMirror-line > span > span::-moz-selection { background: rgba(179, 101, 57, .99); }\\n.cm-s-cobalt .CodeMirror-gutters { background: #002240; border-right: 1px solid #aaa; }\\n.cm-s-cobalt .CodeMirror-guttermarker { color: #ffee80; }\\n.cm-s-cobalt .CodeMirror-guttermarker-subtle { color: #d0d0d0; }\\n.cm-s-cobalt .CodeMirror-linenumber { color: #d0d0d0; }\\n.cm-s-cobalt .CodeMirror-cursor { border-left: 1px solid white; }\\n\\n.cm-s-cobalt span.cm-comment { color: #08f; }\\n.cm-s-cobalt span.cm-atom { color: #845dc4; }\\n.cm-s-cobalt span.cm-number, .cm-s-cobalt span.cm-attribute { color: #ff80e1; }\\n.cm-s-cobalt span.cm-keyword { color: #ffee80; }\\n.cm-s-cobalt span.cm-string { color: #3ad900; }\\n.cm-s-cobalt span.cm-meta { color: #ff9d00; }\\n.cm-s-cobalt span.cm-variable-2, .cm-s-cobalt span.cm-tag { color: #9effff; }\\n.cm-s-cobalt span.cm-variable-3, .cm-s-cobalt span.cm-def, .cm-s-cobalt .cm-type { color: white; }\\n.cm-s-cobalt span.cm-bracket { color: #d8d8d8; }\\n.cm-s-cobalt span.cm-builtin, .cm-s-cobalt span.cm-special { color: #ff9e59; }\\n.cm-s-cobalt span.cm-link { color: #845dc4; }\\n.cm-s-cobalt span.cm-error { color: #9d1e15; }\\n\\n.cm-s-cobalt .CodeMirror-activeline-background { background: #002D57; }\\n.cm-s-cobalt .CodeMirror-matchingbracket { outline:1px solid grey;color:white !important; }\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./../node_modules/codemirror/theme/cobalt.css\"],\"names\":[],\"mappings\":\"AAAA,0BAA0B,mBAAmB,EAAE,YAAY,EAAE;AAC7D,uCAAuC,mBAAmB,EAAE;AAC5D,oJAAoJ,mCAAmC,EAAE;AACzL,mKAAmK,mCAAmC,EAAE;AACxM,mCAAmC,mBAAmB,EAAE,4BAA4B,EAAE;AACtF,wCAAwC,cAAc,EAAE;AACxD,+CAA+C,cAAc,EAAE;AAC/D,sCAAsC,cAAc,EAAE;AACtD,kCAAkC,4BAA4B,EAAE;;AAEhE,+BAA+B,WAAW,EAAE;AAC5C,4BAA4B,cAAc,EAAE;AAC5C,8DAA8D,cAAc,EAAE;AAC9E,+BAA+B,cAAc,EAAE;AAC/C,8BAA8B,cAAc,EAAE;AAC9C,4BAA4B,cAAc,EAAE;AAC5C,4DAA4D,cAAc,EAAE;AAC5E,mFAAmF,YAAY,EAAE;AACjG,+BAA+B,cAAc,EAAE;AAC/C,6DAA6D,cAAc,EAAE;AAC7E,4BAA4B,cAAc,EAAE;AAC5C,6BAA6B,cAAc,EAAE;;AAE7C,iDAAiD,mBAAmB,EAAE;AACtE,2CAA2C,sBAAsB,CAAC,sBAAsB,EAAE\",\"sourcesContent\":[\".cm-s-cobalt.CodeMirror { background: #002240; color: white; }\\n.cm-s-cobalt div.CodeMirror-selected { background: #b36539; }\\n.cm-s-cobalt .CodeMirror-line::selection, .cm-s-cobalt .CodeMirror-line > span::selection, .cm-s-cobalt .CodeMirror-line > span > span::selection { background: rgba(179, 101, 57, .99); }\\n.cm-s-cobalt .CodeMirror-line::-moz-selection, .cm-s-cobalt .CodeMirror-line > span::-moz-selection, .cm-s-cobalt .CodeMirror-line > span > span::-moz-selection { background: rgba(179, 101, 57, .99); }\\n.cm-s-cobalt .CodeMirror-gutters { background: #002240; border-right: 1px solid #aaa; }\\n.cm-s-cobalt .CodeMirror-guttermarker { color: #ffee80; }\\n.cm-s-cobalt .CodeMirror-guttermarker-subtle { color: #d0d0d0; }\\n.cm-s-cobalt .CodeMirror-linenumber { color: #d0d0d0; }\\n.cm-s-cobalt .CodeMirror-cursor { border-left: 1px solid white; }\\n\\n.cm-s-cobalt span.cm-comment { color: #08f; }\\n.cm-s-cobalt span.cm-atom { color: #845dc4; }\\n.cm-s-cobalt span.cm-number, .cm-s-cobalt span.cm-attribute { color: #ff80e1; }\\n.cm-s-cobalt span.cm-keyword { color: #ffee80; }\\n.cm-s-cobalt span.cm-string { color: #3ad900; }\\n.cm-s-cobalt span.cm-meta { color: #ff9d00; }\\n.cm-s-cobalt span.cm-variable-2, .cm-s-cobalt span.cm-tag { color: #9effff; }\\n.cm-s-cobalt span.cm-variable-3, .cm-s-cobalt span.cm-def, .cm-s-cobalt .cm-type { color: white; }\\n.cm-s-cobalt span.cm-bracket { color: #d8d8d8; }\\n.cm-s-cobalt span.cm-builtin, .cm-s-cobalt span.cm-special { color: #ff9e59; }\\n.cm-s-cobalt span.cm-link { color: #845dc4; }\\n.cm-s-cobalt span.cm-error { color: #9d1e15; }\\n\\n.cm-s-cobalt .CodeMirror-activeline-background { background: #002D57; }\\n.cm-s-cobalt .CodeMirror-matchingbracket { outline:1px solid grey;color:white !important; }\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\nmodule.exports = function (cssWithMappingToString) {\n var list = [];\n\n // return the list of modules as css string\n list.toString = function toString() {\n return this.map(function (item) {\n var content = \"\";\n var needLayer = typeof item[5] !== \"undefined\";\n if (item[4]) {\n content += \"@supports (\".concat(item[4], \") {\");\n }\n if (item[2]) {\n content += \"@media \".concat(item[2], \" {\");\n }\n if (needLayer) {\n content += \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\");\n }\n content += cssWithMappingToString(item);\n if (needLayer) {\n content += \"}\";\n }\n if (item[2]) {\n content += \"}\";\n }\n if (item[4]) {\n content += \"}\";\n }\n return content;\n }).join(\"\");\n };\n\n // import a list of modules into the list\n list.i = function i(modules, media, dedupe, supports, layer) {\n if (typeof modules === \"string\") {\n modules = [[null, modules, undefined]];\n }\n var alreadyImportedModules = {};\n if (dedupe) {\n for (var k = 0; k < this.length; k++) {\n var id = this[k][0];\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n for (var _k = 0; _k < modules.length; _k++) {\n var item = [].concat(modules[_k]);\n if (dedupe && alreadyImportedModules[item[0]]) {\n continue;\n }\n if (typeof layer !== \"undefined\") {\n if (typeof item[5] === \"undefined\") {\n item[5] = layer;\n } else {\n item[1] = \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\").concat(item[1], \"}\");\n item[5] = layer;\n }\n }\n if (media) {\n if (!item[2]) {\n item[2] = media;\n } else {\n item[1] = \"@media \".concat(item[2], \" {\").concat(item[1], \"}\");\n item[2] = media;\n }\n }\n if (supports) {\n if (!item[4]) {\n item[4] = \"\".concat(supports);\n } else {\n item[1] = \"@supports (\".concat(item[4], \") {\").concat(item[1], \"}\");\n item[4] = supports;\n }\n }\n list.push(item);\n }\n };\n return list;\n};","\"use strict\";\n\nmodule.exports = function (item) {\n var content = item[1];\n var cssMapping = item[3];\n if (!cssMapping) {\n return content;\n }\n if (typeof btoa === \"function\") {\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(cssMapping))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n var sourceMapping = \"/*# \".concat(data, \" */\");\n var sourceURLs = cssMapping.sources.map(function (source) {\n return \"/*# sourceURL=\".concat(cssMapping.sourceRoot || \"\").concat(source, \" */\");\n });\n return [content].concat(sourceURLs).concat([sourceMapping]).join(\"\\n\");\n }\n return [content].join(\"\\n\");\n};","\n import API from \"!../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../css-loader/dist/cjs.js!./cobalt.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../css-loader/dist/cjs.js!./cobalt.css\";\n export default content && content.locals ? content.locals : undefined;\n","\"use strict\";\n\nvar stylesInDOM = [];\n\nfunction getIndexByIdentifier(identifier) {\n var result = -1;\n\n for (var i = 0; i < stylesInDOM.length; i++) {\n if (stylesInDOM[i].identifier === identifier) {\n result = i;\n break;\n }\n }\n\n return result;\n}\n\nfunction modulesToDom(list, options) {\n var idCountMap = {};\n var identifiers = [];\n\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var count = idCountMap[id] || 0;\n var identifier = \"\".concat(id, \" \").concat(count);\n idCountMap[id] = count + 1;\n var indexByIdentifier = getIndexByIdentifier(identifier);\n var obj = {\n css: item[1],\n media: item[2],\n sourceMap: item[3],\n supports: item[4],\n layer: item[5]\n };\n\n if (indexByIdentifier !== -1) {\n stylesInDOM[indexByIdentifier].references++;\n stylesInDOM[indexByIdentifier].updater(obj);\n } else {\n var updater = addElementStyle(obj, options);\n options.byIndex = i;\n stylesInDOM.splice(i, 0, {\n identifier: identifier,\n updater: updater,\n references: 1\n });\n }\n\n identifiers.push(identifier);\n }\n\n return identifiers;\n}\n\nfunction addElementStyle(obj, options) {\n var api = options.domAPI(options);\n api.update(obj);\n\n var updater = function updater(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap && newObj.supports === obj.supports && newObj.layer === obj.layer) {\n return;\n }\n\n api.update(obj = newObj);\n } else {\n api.remove();\n }\n };\n\n return updater;\n}\n\nmodule.exports = function (list, options) {\n options = options || {};\n list = list || [];\n var lastIdentifiers = modulesToDom(list, options);\n return function update(newList) {\n newList = newList || [];\n\n for (var i = 0; i < lastIdentifiers.length; i++) {\n var identifier = lastIdentifiers[i];\n var index = getIndexByIdentifier(identifier);\n stylesInDOM[index].references--;\n }\n\n var newLastIdentifiers = modulesToDom(newList, options);\n\n for (var _i = 0; _i < lastIdentifiers.length; _i++) {\n var _identifier = lastIdentifiers[_i];\n\n var _index = getIndexByIdentifier(_identifier);\n\n if (stylesInDOM[_index].references === 0) {\n stylesInDOM[_index].updater();\n\n stylesInDOM.splice(_index, 1);\n }\n }\n\n lastIdentifiers = newLastIdentifiers;\n };\n};","\"use strict\";\n\nvar memo = {};\n/* istanbul ignore next */\n\nfunction getTarget(target) {\n if (typeof memo[target] === \"undefined\") {\n var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself\n\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n\n memo[target] = styleTarget;\n }\n\n return memo[target];\n}\n/* istanbul ignore next */\n\n\nfunction insertBySelector(insert, style) {\n var target = getTarget(insert);\n\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n\n target.appendChild(style);\n}\n\nmodule.exports = insertBySelector;","\"use strict\";\n\n/* istanbul ignore next */\nfunction insertStyleElement(options) {\n var element = document.createElement(\"style\");\n options.setAttributes(element, options.attributes);\n options.insert(element, options.options);\n return element;\n}\n\nmodule.exports = insertStyleElement;","\"use strict\";\n\n/* istanbul ignore next */\nfunction setAttributesWithoutAttributes(styleElement) {\n var nonce = typeof __webpack_nonce__ !== \"undefined\" ? __webpack_nonce__ : null;\n\n if (nonce) {\n styleElement.setAttribute(\"nonce\", nonce);\n }\n}\n\nmodule.exports = setAttributesWithoutAttributes;","\"use strict\";\n\n/* istanbul ignore next */\nfunction apply(styleElement, options, obj) {\n var css = \"\";\n\n if (obj.supports) {\n css += \"@supports (\".concat(obj.supports, \") {\");\n }\n\n if (obj.media) {\n css += \"@media \".concat(obj.media, \" {\");\n }\n\n var needLayer = typeof obj.layer !== \"undefined\";\n\n if (needLayer) {\n css += \"@layer\".concat(obj.layer.length > 0 ? \" \".concat(obj.layer) : \"\", \" {\");\n }\n\n css += obj.css;\n\n if (needLayer) {\n css += \"}\";\n }\n\n if (obj.media) {\n css += \"}\";\n }\n\n if (obj.supports) {\n css += \"}\";\n }\n\n var sourceMap = obj.sourceMap;\n\n if (sourceMap && typeof btoa !== \"undefined\") {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n } // For old IE\n\n /* istanbul ignore if */\n\n\n options.styleTagTransform(css, styleElement, options.options);\n}\n\nfunction removeStyleElement(styleElement) {\n // istanbul ignore if\n if (styleElement.parentNode === null) {\n return false;\n }\n\n styleElement.parentNode.removeChild(styleElement);\n}\n/* istanbul ignore next */\n\n\nfunction domAPI(options) {\n var styleElement = options.insertStyleElement(options);\n return {\n update: function update(obj) {\n apply(styleElement, options, obj);\n },\n remove: function remove() {\n removeStyleElement(styleElement);\n }\n };\n}\n\nmodule.exports = domAPI;","\"use strict\";\n\n/* istanbul ignore next */\nfunction styleTagTransform(css, styleElement) {\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = css;\n } else {\n while (styleElement.firstChild) {\n styleElement.removeChild(styleElement.firstChild);\n }\n\n styleElement.appendChild(document.createTextNode(css));\n }\n}\n\nmodule.exports = styleTagTransform;"],"names":["___CSS_LOADER_EXPORT___","push","module","id","exports","cssWithMappingToString","list","toString","this","map","item","content","needLayer","concat","length","join","i","modules","media","dedupe","supports","layer","undefined","alreadyImportedModules","k","_k","cssMapping","btoa","base64","unescape","encodeURIComponent","JSON","stringify","data","sourceMapping","sourceURLs","sources","source","sourceRoot","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","stylesInDOM","getIndexByIdentifier","identifier","result","modulesToDom","idCountMap","identifiers","base","count","indexByIdentifier","obj","css","sourceMap","references","updater","addElementStyle","byIndex","splice","api","update","newObj","remove","lastIdentifiers","newList","index","newLastIdentifiers","_i","_index","memo","style","target","styleTarget","document","querySelector","window","HTMLIFrameElement","contentDocument","head","e","getTarget","Error","appendChild","element","createElement","attributes","styleElement","nonce","setAttribute","apply","parentNode","removeChild","removeStyleElement","styleSheet","cssText","firstChild","createTextNode"],"sourceRoot":""} \ No newline at end of file diff --git a/_static/build/5238.02db84e.js b/_static/build/5238.02db84e.js new file mode 100644 index 0000000..43a072e --- /dev/null +++ b/_static/build/5238.02db84e.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[5238],{12563:(e,t,n)=>{n.d(t,{Z:()=>a});var i=n(34663),o=n.n(i),s=n(7638),r=n.n(s)()(o());r.push([e.id,"/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n","",{version:3,sources:["webpack://./../packages/application-extension/style/base.css"],names:[],mappings:"AAAA;;;8EAG8E",sourcesContent:["/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n"],sourceRoot:""}]);const a=r},59988:(e,t,n)=>{n.d(t,{Z:()=>a});var i=n(34663),o=n.n(i),s=n(7638),r=n.n(s)()(o());r.push([e.id,"/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n\n.jp-IFrameContainer iframe,\n.jp-IFrameContainer body {\n margin: 0;\n padding: 0;\n overflow: hidden;\n border: none;\n}\n","",{version:3,sources:["webpack://./../packages/iframe-extension/style/base.css"],names:[],mappings:"AAAA;;;8EAG8E;;AAE9E;;EAEE,SAAS;EACT,UAAU;EACV,gBAAgB;EAChB,YAAY;AACd",sourcesContent:["/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n\n.jp-IFrameContainer iframe,\n.jp-IFrameContainer body {\n margin: 0;\n padding: 0;\n overflow: hidden;\n border: none;\n}\n"],sourceRoot:""}]);const a=r},228:(e,t,n)=>{n.d(t,{Z:()=>a});var i=n(34663),o=n.n(i),s=n(7638),r=n.n(s)()(o());r.push([e.id,"/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n","",{version:3,sources:["webpack://./../packages/retro-application-extension/style/base.css"],names:[],mappings:"AAAA;;;8EAG8E",sourcesContent:["/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n"],sourceRoot:""}]);const a=r},94298:(e,t,n)=>{n.d(t,{Z:()=>a});var i=n(34663),o=n.n(i),s=n(7638),r=n.n(s)()(o());r.push([e.id,"/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n","",{version:3,sources:["webpack://./../packages/server-extension/style/base.css"],names:[],mappings:"AAAA;;;8EAG8E",sourcesContent:["/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n"],sourceRoot:""}]);const a=r},77600:(e,t,n)=>{n.r(t),n.d(t,{main:()=>A});var i=n(69471),o=n(55941);n(4436);const s=[n.e(4740).then(n.t.bind(n,64740,23))],r=[n.e(4202).then(n.t.bind(n,94202,23)),n.e(3946).then(n.t.bind(n,23946,23)),n.e(9265).then(n.t.bind(n,29265,23)),n.e(126).then(n.t.bind(n,30126,23))];async function a(e,t){try{return(await window._JUPYTERLAB[e].get(t))()}catch(n){throw console.warn(`Failed to create module: package: ${e}; module: ${t}`),n}}async function A(){const e=await Promise.all(r);let t=[n(54809),n(69081),n(88394).default.filter((({id:e})=>!["@retrolab/application-extension:logo","@retrolab/application-extension:opener"].includes(e))),n(31161),n(61474),n(29507).default.filter((({id:e})=>["@jupyterlab/application-extension:commands","@jupyterlab/application-extension:context-menu","@jupyterlab/application-extension:faviconbusy"].includes(e))),n(10310).default.filter((({id:e})=>["@jupyterlab/apputils-extension:palette","@jupyterlab/apputils-extension:settings","@jupyterlab/apputils-extension:state","@jupyterlab/apputils-extension:themes","@jupyterlab/apputils-extension:themes-palette-menu","@jupyterlab/apputils-extension:toolbar-registry"].includes(e))),n(15802).default.filter((({id:e})=>["@jupyterlab/codemirror-extension:services","@jupyterlab/codemirror-extension:codemirror"].includes(e))),n(65540).default.filter((({id:e})=>["@jupyterlab/completer-extension:manager"].includes(e))),n(78042),n(22437).default.filter((({id:e})=>["@jupyterlab/docmanager-extension:plugin","@jupyterlab/docmanager-extension:manager"].includes(e))),n(64948).default.filter((({id:e})=>["@jupyterlab/filebrowser-extension:factory"].includes(e))),n(46813),n(53516),n(62570).default.filter((({id:e})=>["@jupyterlab/notebook-extension:factory","@jupyterlab/notebook-extension:tracker","@jupyterlab/notebook-extension:widget-factory"].includes(e))),n(99256),n(89985),n(78036),n(85687),n(73624)];switch(o.PageConfig.getOption("retroPage")){case"tree":t=t.concat([n(64948).default.filter((({id:e})=>["@jupyterlab/filebrowser-extension:browser","@jupyterlab/filebrowser-extension:file-upload-status","@jupyterlab/filebrowser-extension:open-with"].includes(e))),n(24918).default.filter((({id:e})=>"@retrolab/tree-extension:new-terminal"!==e))]);break;case"notebooks":t=t.concat([n(48218),n(65540).default.filter((({id:e})=>["@jupyterlab/completer-extension:notebooks"].includes(e))),n(66325).default.filter((({id:e})=>["@jupyterlab/tooltip-extension:manager","@jupyterlab/tooltip-extension:notebooks"].includes(e)))]);break;case"consoles":t=t.concat([n(65540).default.filter((({id:e})=>["@jupyterlab/completer-extension:consoles"].includes(e))),n(66325).default.filter((({id:e})=>["@jupyterlab/tooltip-extension:manager","@jupyterlab/tooltip-extension:consoles"].includes(e)))]);break;case"edit":t=t.concat([n(65540).default.filter((({id:e})=>["@jupyterlab/completer-extension:files"].includes(e))),n(19656).default.filter((({id:e})=>["@jupyterlab/fileeditor-extension:plugin"].includes(e))),n(64948).default.filter((({id:e})=>["@jupyterlab/filebrowser-extension:browser"].includes(e)))])}const A=[],l=[],d=[],c=[],p=[],u=[],f=JSON.parse(o.PageConfig.getOption("federated_extensions")),m=new Set;function*g(e){let t;t=e.hasOwnProperty("__esModule")?e.default:e;let n=Array.isArray(t)?t:[t];for(let e of n)o.PageConfig.Extension.isDisabled(e.id)||(yield e)}f.forEach((e=>{e.liteExtension?u.push(a(e.name,e.extension)):(e.extension&&(m.add(e.name),l.push(a(e.name,e.extension))),e.mimeExtension&&(m.add(e.name),d.push(a(e.name,e.mimeExtension))),e.style&&c.push(a(e.name,e.style)))})),(await Promise.all(t)).forEach((e=>{for(let t of g(e))A.push(t)})),(await Promise.allSettled(d)).forEach((t=>{if("fulfilled"===t.status)for(let n of g(t.value))e.push(n);else console.error(t.reason)})),(await Promise.allSettled(l)).forEach((e=>{if("fulfilled"===e.status)for(let t of g(e.value))A.push(t);else console.error(e.reason)})),(await Promise.all(s)).forEach((e=>{for(let t of g(e))p.push(t)})),(await Promise.allSettled(u)).forEach((e=>{if("fulfilled"===e.status)for(let t of g(e.value))p.push(t);else console.error(e.reason)}));const b=new i.JupyterLiteServer({});b.registerPluginModules(p),await b.start();const{serviceManager:y}=b,{RetroApp:h}=n(95191),w=new h({serviceManager:y,mimeExtensions:e});w.name=o.PageConfig.getOption("appName")||"RetroLite",w.registerPluginModules(A),"true"===(o.PageConfig.getOption("exposeAppInBrowser")||"").toLowerCase()&&(window.jupyterapp=w),await w.start(),await w.restored}},4436:(e,t,n)=>{n.r(t),n(49336),n(51642),n(91778),n(40705),n(63505),n(44697),n(9123),n(45010),n(38786),n(47867),n(76294),n(70453),n(53974),n(10389),n(84396),n(88005),n(38016),n(83608),n(91487),n(74101);var i=n(1892),o=n.n(i),s=n(95760),r=n.n(s),a=n(38311),A=n.n(a),l=n(58192),d=n.n(l),c=n(38060),p=n.n(c),u=n(54865),f=n.n(u),m=n(12563),g={};g.styleTagTransform=f(),g.setAttributes=d(),g.insert=A().bind(null,"head"),g.domAPI=r(),g.insertStyleElement=p(),o()(m.Z,g),m.Z&&m.Z.locals&&m.Z.locals,n(47317);var b=n(59988),y={};y.styleTagTransform=f(),y.setAttributes=d(),y.insert=A().bind(null,"head"),y.domAPI=r(),y.insertStyleElement=p(),o()(b.Z,y),b.Z&&b.Z.locals&&b.Z.locals;var h=n(228),w={};w.styleTagTransform=f(),w.setAttributes=d(),w.insert=A().bind(null,"head"),w.domAPI=r(),w.insertStyleElement=p(),o()(h.Z,w),h.Z&&h.Z.locals&&h.Z.locals;var x=n(94298),v={};v.styleTagTransform=f(),v.setAttributes=d(),v.insert=A().bind(null,"head"),v.domAPI=r(),v.insertStyleElement=p(),o()(x.Z,v),x.Z&&x.Z.locals&&x.Z.locals,n(72073),n(96587),n(90381),n(28586),n(40250)},7413:e=>{e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAFCAYAAAB4ka1VAAAAsElEQVQIHQGlAFr/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7+r3zKmT0/+pk9P/7+r3zAAAAAAAAAAABAAAAAAAAAAA6OPzM+/q9wAAAAAA6OPzMwAAAAAAAAAAAgAAAAAAAAAAGR8NiRQaCgAZIA0AGR8NiQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQyoYJ/SY80UAAAAASUVORK5CYII="},6196:e=>{e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAMCAYAAAAkuj5RAAAAAXNSR0IArs4c6QAAAGFJREFUSMft1LsRQFAQheHPowAKoACx3IgEKtaEHujDjORSgWTH/ZOdnZOcM/sgk/kFFWY0qV8foQwS4MKBCS3qR6ixBJvElOobYAtivseIE120FaowJPN75GMu8j/LfMwNjh4HUpwg4LUAAAAASUVORK5CYII="},65767:e=>{e.exports="data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 16 16%27%3e%3cg fill=%27%235C7080%27%3e%3ccircle cx=%272%27 cy=%278.03%27 r=%272%27/%3e%3ccircle cx=%2714%27 cy=%278.03%27 r=%272%27/%3e%3ccircle cx=%278%27 cy=%278.03%27 r=%272%27/%3e%3c/g%3e%3c/svg%3e"},91116:e=>{e.exports="data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 16 16%27%3e%3cpath fill-rule=%27evenodd%27 clip-rule=%27evenodd%27 d=%27M10.71 7.29l-4-4a1.003 1.003 0 00-1.42 1.42L8.59 8 5.3 11.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l4-4c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71z%27 fill=%27%235C7080%27/%3e%3c/svg%3e"},83678:e=>{e.exports="data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 16 16%27%3e%3cpath fill-rule=%27evenodd%27 clip-rule=%27evenodd%27 d=%27M11 7H5c-.55 0-1 .45-1 1s.45 1 1 1h6c.55 0 1-.45 1-1s-.45-1-1-1z%27 fill=%27white%27/%3e%3c/svg%3e"},79080:e=>{e.exports="data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 16 16%27%3e%3cpath fill-rule=%27evenodd%27 clip-rule=%27evenodd%27 d=%27M12 5c-.28 0-.53.11-.71.29L7 9.59l-2.29-2.3a1.003 1.003 0 00-1.42 1.42l3 3c.18.18.43.29.71.29s.53-.11.71-.29l5-5A1.003 1.003 0 0012 5z%27 fill=%27white%27/%3e%3c/svg%3e"}}]); +//# sourceMappingURL=5238.02db84e.js.map \ No newline at end of file diff --git a/_static/build/5238.02db84e.js.map b/_static/build/5238.02db84e.js.map new file mode 100644 index 0000000..98b410c --- /dev/null +++ b/_static/build/5238.02db84e.js.map @@ -0,0 +1 @@ +{"version":3,"file":"5238.02db84e.js","mappings":"sLAGIA,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACC,EAAOC,GAAI,4QAA6Q,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,gEAAgE,MAAQ,GAAG,SAAW,gBAAgB,eAAiB,CAAC,6QAA6Q,WAAa,MAEnuB,S,qECJIH,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACC,EAAOC,GAAI,6YAA8Y,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,2DAA2D,MAAQ,GAAG,SAAW,wEAAwE,eAAiB,CAAC,8YAA8Y,WAAa,MAExhC,S,mECJIH,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACC,EAAOC,GAAI,4QAA6Q,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,sEAAsE,MAAQ,GAAG,SAAW,gBAAgB,eAAiB,CAAC,6QAA6Q,WAAa,MAEzuB,S,qECJIH,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACC,EAAOC,GAAI,4QAA6Q,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,2DAA2D,MAAQ,GAAG,SAAW,gBAAgB,eAAiB,CAAC,6QAA6Q,WAAa,MAE9tB,S,uECCA,EAAQ,MAER,MAAMC,EAAmB,CACvB,sCAGIC,EAAqB,CACzB,qCACA,qCACA,qCACA,qCAGFC,eAAeC,EAAaC,EAAON,GACjC,IAEE,aADsBO,OAAOC,YAAYF,GAAOG,IAAIT,KAKtD,CAHE,MAAOU,GAEP,MADAC,QAAQC,KAAK,qCAAqCN,cAAkBN,KAC9DU,CACR,CACF,CAKON,eAAeS,IACpB,MAAMC,QAAuBC,QAAQC,IAAIb,GAEzC,IAAIc,EAAW,CAEb,EAAQ,OACR,EAAQ,OAGR,yBACE,EAAGhB,SAAU,CACX,uCACA,0CACAiB,SAASjB,KAEb,EAAQ,OACR,EAAQ,OAGR,yBAA4D,EAAGA,QAC7D,CACE,6CACA,iDACA,iDACAiB,SAASjB,KAEb,yBAAyD,EAAGA,QAC1D,CACE,yCACA,0CACA,uCACA,wCACA,qDACA,mDACAiB,SAASjB,KAEb,yBAA2D,EAAGA,QAC5D,CACE,4CACA,+CACAiB,SAASjB,KAEb,yBAA0D,EAAGA,QAC3D,CAAC,2CAA2CiB,SAASjB,KAEvD,EAAQ,OACR,yBAA2D,EAAGA,QAC5D,CACE,0CACA,4CACAiB,SAASjB,KAEb,yBAA4D,EAAGA,QAC7D,CACE,6CACAiB,SAASjB,KAEb,EAAQ,OACR,EAAQ,OACR,yBAAyD,EAAGA,QAC1D,CACE,yCACA,yCACA,iDACAiB,SAASjB,KAEb,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,QAMV,OADa,EAAAkB,WAAA,UAAqB,cAEhC,IAAK,OACHF,EAAWA,EAASG,OAAO,CACzB,yBAA4D,EAAGnB,QAC7D,CACE,4CACA,uDACA,+CACAiB,SAASjB,KAGb,yBACE,EAAGA,QAAgB,0CAAPA,MAGhB,MAEF,IAAK,YACHgB,EAAWA,EAASG,OAAO,CACzB,EAAQ,OACR,yBAA0D,EAAGnB,QAC3D,CAAC,6CAA6CiB,SAASjB,KAEzD,yBAAwD,EAAGA,QACzD,CACE,wCACA,2CACAiB,SAASjB,OAGf,MAEF,IAAK,WACHgB,EAAWA,EAASG,OAAO,CACzB,yBAA0D,EAAGnB,QAC3D,CAAC,4CAA4CiB,SAASjB,KAExD,yBAAwD,EAAGA,QACzD,CACE,wCACA,0CACAiB,SAASjB,OAGf,MAEF,IAAK,OACHgB,EAAWA,EAASG,OAAO,CACzB,yBAA0D,EAAGnB,QAC3D,CAAC,yCAAyCiB,SAASjB,KAErD,yBAA2D,EAAGA,QAC5D,CAAC,2CAA2CiB,SAASjB,KAEvD,yBAA4D,EAAGA,QAC7D,CACE,6CACAiB,SAASjB,OAOnB,MAAMoB,EAAO,GACPC,EAA6B,GAC7BC,EAAiC,GACjCC,EAAyB,GACzBC,EAAwB,GACxBC,EAAwB,GAIxBC,EAAaC,KAAKC,MACtB,EAAAV,WAAA,UAAqB,yBAIjBW,EAA0B,IAAIC,IAuBpC,SAAUC,EAAcC,GAEtB,IAAIC,EAEFA,EADED,EAAUE,eAAe,cACjBF,EAAUG,QAGVH,EAGZ,IAAII,EAAUC,MAAMC,QAAQL,GAAWA,EAAU,CAACA,GAClD,IAAK,IAAIM,KAAUH,EACb,EAAAlB,WAAA,qBAAgCqB,EAAOvC,YAGrCuC,EAEV,CAtCAb,EAAWc,SAAQC,IACbA,EAAKC,cACPjB,EAAsB3B,KAAKM,EAAaqC,EAAKE,KAAMF,EAAKT,aAGtDS,EAAKT,YACPH,EAAwBe,IAAIH,EAAKE,MACjCtB,EAA2BvB,KAAKM,EAAaqC,EAAKE,KAAMF,EAAKT,aAE3DS,EAAKI,gBACPhB,EAAwBe,IAAIH,EAAKE,MACjCrB,EAA+BxB,KAAKM,EAAaqC,EAAKE,KAAMF,EAAKI,iBAE/DJ,EAAKK,OACPvB,EAAuBzB,KAAKM,EAAaqC,EAAKE,KAAMF,EAAKK,QAC3D,WA0B6BhC,QAAQC,IAAIC,IAC1BwB,SAAQO,IACvB,IAAK,IAAIR,KAAUR,EAAcgB,GAC/B3B,EAAKtB,KAAKyC,EACZ,WAIoCzB,QAAQkC,WAAW1B,IACjCkB,SAAQO,IAC9B,GAAiB,cAAbA,EAAEE,OACJ,IAAK,IAAIV,KAAUR,EAAcgB,EAAEG,OACjCrC,EAAef,KAAKyC,QAGtB7B,QAAQyC,MAAMJ,EAAEK,OAClB,WAIgCtC,QAAQkC,WAAW3B,IACjCmB,SAAQO,IAC1B,GAAiB,cAAbA,EAAEE,OACJ,IAAK,IAAIV,KAAUR,EAAcgB,EAAEG,OACjC9B,EAAKtB,KAAKyC,QAGZ7B,QAAQyC,MAAMJ,EAAEK,OAClB,WAIiCtC,QAAQC,IAAId,IAC1BuC,SAAQO,IAC3B,IAAK,IAAIR,KAAUR,EAAcgB,GAC/BvB,EAAsB1B,KAAKyC,EAC7B,WAIoCzB,QAAQkC,WAAWvB,IACjCe,SAAQO,IAC9B,GAAiB,cAAbA,EAAEE,OACJ,IAAK,IAAIV,KAAUR,EAAcgB,EAAEG,OACjC1B,EAAsB1B,KAAKyC,QAG7B7B,QAAQyC,MAAMJ,EAAEK,OAClB,IAIF,MAAMC,EAAoB,IAAI,EAAAC,kBAAkB,CAAC,GACjDD,EAAkBE,sBAAsB/B,SAElC6B,EAAkBG,QAGxB,MAAM,eAAEC,GAAmBJ,GAGrB,SAAEK,GAAa,EAAQ,OACvBC,EAAM,IAAID,EAAS,CAAED,iBAAgB5C,mBAE3C8C,EAAIhB,KAAO,EAAAzB,WAAA,UAAqB,YAAc,YAE9CyC,EAAIJ,sBAAsBnC,GAI6C,UAApE,EAAAF,WAAA,UAAqB,uBAAyB,IAAI0C,gBAGnDtD,OAAOuD,WAAaF,SAGhBA,EAAIH,cACJG,EAAIG,QACZ,C,iVC1SIC,EAAU,CAAC,EAEfA,EAAQC,kBAAoB,IAC5BD,EAAQE,cAAgB,IAElBF,EAAQG,OAAS,SAAc,KAAM,QAE3CH,EAAQI,OAAS,IACjBJ,EAAQK,mBAAqB,IAEhB,IAAI,IAASL,GAKJ,KAAW,YAAiB,W,wBCf9C,EAAU,CAAC,EAEf,EAAQC,kBAAoB,IAC5B,EAAQC,cAAgB,IAElB,EAAQC,OAAS,SAAc,KAAM,QAE3C,EAAQC,OAAS,IACjB,EAAQC,mBAAqB,IAEhB,IAAI,IAAS,GAKJ,KAAW,YAAiB,W,aCf9C,EAAU,CAAC,EAEf,EAAQJ,kBAAoB,IAC5B,EAAQC,cAAgB,IAElB,EAAQC,OAAS,SAAc,KAAM,QAE3C,EAAQC,OAAS,IACjB,EAAQC,mBAAqB,IAEhB,IAAI,IAAS,GAKJ,KAAW,YAAiB,W,eCf9C,EAAU,CAAC,EAEf,EAAQJ,kBAAoB,IAC5B,EAAQC,cAAgB,IAElB,EAAQC,OAAS,SAAc,KAAM,QAE3C,EAAQC,OAAS,IACjB,EAAQC,mBAAqB,IAEhB,IAAI,IAAS,GAKJ,KAAW,YAAiB,W","sources":["webpack://_JUPYTERLAB.CORE_OUTPUT/../packages/application-extension/style/base.css","webpack://_JUPYTERLAB.CORE_OUTPUT/../packages/iframe-extension/style/base.css","webpack://_JUPYTERLAB.CORE_OUTPUT/../packages/retro-application-extension/style/base.css","webpack://_JUPYTERLAB.CORE_OUTPUT/../packages/server-extension/style/base.css","webpack://_JUPYTERLAB.CORE_OUTPUT/./retro/build/index.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../packages/application-extension/style/base.css?cd6d","webpack://_JUPYTERLAB.CORE_OUTPUT/../packages/iframe-extension/style/base.css?2b6b","webpack://_JUPYTERLAB.CORE_OUTPUT/../packages/retro-application-extension/style/base.css?bd44","webpack://_JUPYTERLAB.CORE_OUTPUT/../packages/server-extension/style/base.css?6b81"],"sourcesContent":["// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"/*-----------------------------------------------------------------------------\\n| Copyright (c) Jupyter Development Team.\\n| Distributed under the terms of the Modified BSD License.\\n|----------------------------------------------------------------------------*/\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./../packages/application-extension/style/base.css\"],\"names\":[],\"mappings\":\"AAAA;;;8EAG8E\",\"sourcesContent\":[\"/*-----------------------------------------------------------------------------\\n| Copyright (c) Jupyter Development Team.\\n| Distributed under the terms of the Modified BSD License.\\n|----------------------------------------------------------------------------*/\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"/*-----------------------------------------------------------------------------\\n| Copyright (c) Jupyter Development Team.\\n| Distributed under the terms of the Modified BSD License.\\n|----------------------------------------------------------------------------*/\\n\\n.jp-IFrameContainer iframe,\\n.jp-IFrameContainer body {\\n margin: 0;\\n padding: 0;\\n overflow: hidden;\\n border: none;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./../packages/iframe-extension/style/base.css\"],\"names\":[],\"mappings\":\"AAAA;;;8EAG8E;;AAE9E;;EAEE,SAAS;EACT,UAAU;EACV,gBAAgB;EAChB,YAAY;AACd\",\"sourcesContent\":[\"/*-----------------------------------------------------------------------------\\n| Copyright (c) Jupyter Development Team.\\n| Distributed under the terms of the Modified BSD License.\\n|----------------------------------------------------------------------------*/\\n\\n.jp-IFrameContainer iframe,\\n.jp-IFrameContainer body {\\n margin: 0;\\n padding: 0;\\n overflow: hidden;\\n border: none;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"/*-----------------------------------------------------------------------------\\n| Copyright (c) Jupyter Development Team.\\n| Distributed under the terms of the Modified BSD License.\\n|----------------------------------------------------------------------------*/\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./../packages/retro-application-extension/style/base.css\"],\"names\":[],\"mappings\":\"AAAA;;;8EAG8E\",\"sourcesContent\":[\"/*-----------------------------------------------------------------------------\\n| Copyright (c) Jupyter Development Team.\\n| Distributed under the terms of the Modified BSD License.\\n|----------------------------------------------------------------------------*/\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"/*-----------------------------------------------------------------------------\\n| Copyright (c) Jupyter Development Team.\\n| Distributed under the terms of the Modified BSD License.\\n|----------------------------------------------------------------------------*/\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./../packages/server-extension/style/base.css\"],\"names\":[],\"mappings\":\"AAAA;;;8EAG8E\",\"sourcesContent\":[\"/*-----------------------------------------------------------------------------\\n| Copyright (c) Jupyter Development Team.\\n| Distributed under the terms of the Modified BSD License.\\n|----------------------------------------------------------------------------*/\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n\nimport { JupyterLiteServer } from '@jupyterlite/server';\n\n// The webpack public path needs to be set before loading the CSS assets.\nimport { PageConfig } from '@jupyterlab/coreutils';\n\nrequire('./style.js');\n\nconst serverExtensions = [\n import('@jupyterlite/server-extension')\n];\n\nconst mimeExtensionsMods = [\n import('@jupyterlite/iframe-extension'),\n import('@jupyterlab/javascript-extension'),\n import('@jupyterlab/json-extension'),\n import('@jupyterlab/vega5-extension')\n];\n\nasync function createModule(scope, module) {\n try {\n const factory = await window._JUPYTERLAB[scope].get(module);\n return factory();\n } catch (e) {\n console.warn(`Failed to create module: package: ${scope}; module: ${module}`);\n throw e;\n }\n}\n\n/**\n * The main entry point for the application.\n */\nexport async function main() {\n const mimeExtensions = await Promise.all(mimeExtensionsMods);\n\n let baseMods = [\n // @jupyterlite plugins\n require('@jupyterlite/application-extension'),\n require('@jupyterlite/retro-application-extension'),\n // @retrolab plugins\n // do not enable the document opener from RetroLab\n require('@retrolab/application-extension').default.filter(\n ({ id }) => ![\n '@retrolab/application-extension:logo',\n '@retrolab/application-extension:opener'\n ].includes(id)\n ),\n require('@retrolab/help-extension'),\n require('@retrolab/notebook-extension'),\n\n // @jupyterlab plugins\n require('@jupyterlab/application-extension').default.filter(({ id }) =>\n [\n '@jupyterlab/application-extension:commands',\n '@jupyterlab/application-extension:context-menu',\n '@jupyterlab/application-extension:faviconbusy'\n ].includes(id)\n ),\n require('@jupyterlab/apputils-extension').default.filter(({ id }) =>\n [\n '@jupyterlab/apputils-extension:palette',\n '@jupyterlab/apputils-extension:settings',\n '@jupyterlab/apputils-extension:state',\n '@jupyterlab/apputils-extension:themes',\n '@jupyterlab/apputils-extension:themes-palette-menu',\n '@jupyterlab/apputils-extension:toolbar-registry'\n ].includes(id)\n ),\n require('@jupyterlab/codemirror-extension').default.filter(({ id }) =>\n [\n '@jupyterlab/codemirror-extension:services',\n '@jupyterlab/codemirror-extension:codemirror'\n ].includes(id)\n ),\n require('@jupyterlab/completer-extension').default.filter(({ id }) =>\n ['@jupyterlab/completer-extension:manager'].includes(id)\n ),\n require('@jupyterlab/console-extension'),\n require('@jupyterlab/docmanager-extension').default.filter(({ id }) =>\n [\n '@jupyterlab/docmanager-extension:plugin',\n '@jupyterlab/docmanager-extension:manager'\n ].includes(id)\n ),\n require('@jupyterlab/filebrowser-extension').default.filter(({ id }) =>\n [\n '@jupyterlab/filebrowser-extension:factory'\n ].includes(id)\n ),\n require('@jupyterlab/mainmenu-extension'),\n require('@jupyterlab/mathjax2-extension'),\n require('@jupyterlab/notebook-extension').default.filter(({ id }) =>\n [\n '@jupyterlab/notebook-extension:factory',\n '@jupyterlab/notebook-extension:tracker',\n '@jupyterlab/notebook-extension:widget-factory'\n ].includes(id)\n ),\n require('@jupyterlab/rendermime-extension'),\n require('@jupyterlab/shortcuts-extension'),\n require('@jupyterlab/theme-light-extension'),\n require('@jupyterlab/theme-dark-extension'),\n require('@jupyterlab/translation-extension')\n ];\n\n // The motivation here is to only load a specific set of plugins dependending on\n // the current page\n const page = PageConfig.getOption('retroPage');\n switch (page) {\n case 'tree': {\n baseMods = baseMods.concat([\n require('@jupyterlab/filebrowser-extension').default.filter(({ id }) =>\n [\n '@jupyterlab/filebrowser-extension:browser',\n '@jupyterlab/filebrowser-extension:file-upload-status',\n '@jupyterlab/filebrowser-extension:open-with',\n ].includes(id)\n ),\n // do not enable the new terminal button from RetroLab\n require('@retrolab/tree-extension').default.filter(\n ({ id }) => id !== '@retrolab/tree-extension:new-terminal'\n )\n ]);\n break;\n }\n case 'notebooks': {\n baseMods = baseMods.concat([\n require('@jupyterlab/cell-toolbar-extension'),\n require('@jupyterlab/completer-extension').default.filter(({ id }) =>\n ['@jupyterlab/completer-extension:notebooks'].includes(id)\n ),\n require('@jupyterlab/tooltip-extension').default.filter(({ id }) =>\n [\n '@jupyterlab/tooltip-extension:manager',\n '@jupyterlab/tooltip-extension:notebooks'\n ].includes(id)\n )\n ]);\n break;\n }\n case 'consoles': {\n baseMods = baseMods.concat([\n require('@jupyterlab/completer-extension').default.filter(({ id }) =>\n ['@jupyterlab/completer-extension:consoles'].includes(id)\n ),\n require('@jupyterlab/tooltip-extension').default.filter(({ id }) =>\n [\n '@jupyterlab/tooltip-extension:manager',\n '@jupyterlab/tooltip-extension:consoles'\n ].includes(id)\n )\n ]);\n break;\n }\n case 'edit': {\n baseMods = baseMods.concat([\n require('@jupyterlab/completer-extension').default.filter(({ id }) =>\n ['@jupyterlab/completer-extension:files'].includes(id)\n ),\n require('@jupyterlab/fileeditor-extension').default.filter(({ id }) =>\n ['@jupyterlab/fileeditor-extension:plugin'].includes(id)\n ),\n require('@jupyterlab/filebrowser-extension').default.filter(({ id }) =>\n [\n '@jupyterlab/filebrowser-extension:browser'\n ].includes(id)\n ),\n ]);\n break;\n }\n }\n\n const mods = [];\n const federatedExtensionPromises = [];\n const federatedMimeExtensionPromises = [];\n const federatedStylePromises = [];\n const litePluginsToRegister = [];\n const liteExtensionPromises = [];\n\n // This is all the data needed to load and activate plugins. This should be\n // gathered by the server and put onto the initial page template.\n const extensions = JSON.parse(\n PageConfig.getOption('federated_extensions')\n );\n\n // The set of federated extension names.\n const federatedExtensionNames = new Set();\n\n extensions.forEach(data => {\n if (data.liteExtension) {\n liteExtensionPromises.push(createModule(data.name, data.extension));\n return;\n }\n if (data.extension) {\n federatedExtensionNames.add(data.name);\n federatedExtensionPromises.push(createModule(data.name, data.extension));\n }\n if (data.mimeExtension) {\n federatedExtensionNames.add(data.name);\n federatedMimeExtensionPromises.push(createModule(data.name, data.mimeExtension));\n }\n if (data.style) {\n federatedStylePromises.push(createModule(data.name, data.style));\n }\n });\n\n /**\n * Iterate over active plugins in an extension.\n */\n function* activePlugins(extension) {\n // Handle commonjs or es2015 modules\n let exports;\n if (extension.hasOwnProperty('__esModule')) {\n exports = extension.default;\n } else {\n // CommonJS exports.\n exports = extension;\n }\n\n let plugins = Array.isArray(exports) ? exports : [exports];\n for (let plugin of plugins) {\n if (PageConfig.Extension.isDisabled(plugin.id)) {\n continue;\n }\n yield plugin;\n }\n }\n\n // Add the base frontend extensions\n const baseFrontendMods = await Promise.all(baseMods);\n baseFrontendMods.forEach(p => {\n for (let plugin of activePlugins(p)) {\n mods.push(plugin);\n }\n });\n\n // Add the federated mime extensions.\n const federatedMimeExtensions = await Promise.allSettled(federatedMimeExtensionPromises);\n federatedMimeExtensions.forEach(p => {\n if (p.status === \"fulfilled\") {\n for (let plugin of activePlugins(p.value)) {\n mimeExtensions.push(plugin);\n }\n } else {\n console.error(p.reason);\n }\n });\n\n // Add the federated extensions.\n const federatedExtensions = await Promise.allSettled(federatedExtensionPromises);\n federatedExtensions.forEach(p => {\n if (p.status === \"fulfilled\") {\n for (let plugin of activePlugins(p.value)) {\n mods.push(plugin);\n }\n } else {\n console.error(p.reason);\n }\n });\n\n // Add the base serverlite extensions\n const baseServerExtensions = await Promise.all(serverExtensions);\n baseServerExtensions.forEach(p => {\n for (let plugin of activePlugins(p)) {\n litePluginsToRegister.push(plugin);\n }\n });\n\n // Add the serverlite federated extensions.\n const federatedLiteExtensions = await Promise.allSettled(liteExtensionPromises);\n federatedLiteExtensions.forEach(p => {\n if (p.status === \"fulfilled\") {\n for (let plugin of activePlugins(p.value)) {\n litePluginsToRegister.push(plugin);\n }\n } else {\n console.error(p.reason);\n }\n });\n\n // create the in-browser JupyterLite Server\n const jupyterLiteServer = new JupyterLiteServer({});\n jupyterLiteServer.registerPluginModules(litePluginsToRegister);\n // start the server\n await jupyterLiteServer.start();\n\n // retrieve the custom service manager from the server app\n const { serviceManager } = jupyterLiteServer;\n\n // create a RetroLab frontend\n const { RetroApp } = require('@retrolab/application');\n const app = new RetroApp({ serviceManager, mimeExtensions });\n\n app.name = PageConfig.getOption('appName') || 'RetroLite';\n\n app.registerPluginModules(mods);\n\n // Expose global app instance when in dev mode or when toggled explicitly.\n const exposeAppInBrowser =\n (PageConfig.getOption('exposeAppInBrowser') || '').toLowerCase() === 'true';\n\n if (exposeAppInBrowser) {\n window.jupyterapp = app;\n }\n\n await app.start();\n await app.restored;\n}\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!./base.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!./base.css\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!./base.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!./base.css\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!./base.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!./base.css\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!./base.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!./base.css\";\n export default content && content.locals ? content.locals : undefined;\n"],"names":["___CSS_LOADER_EXPORT___","push","module","id","serverExtensions","mimeExtensionsMods","async","createModule","scope","window","_JUPYTERLAB","get","e","console","warn","main","mimeExtensions","Promise","all","baseMods","includes","PageConfig","concat","mods","federatedExtensionPromises","federatedMimeExtensionPromises","federatedStylePromises","litePluginsToRegister","liteExtensionPromises","extensions","JSON","parse","federatedExtensionNames","Set","activePlugins","extension","exports","hasOwnProperty","default","plugins","Array","isArray","plugin","forEach","data","liteExtension","name","add","mimeExtension","style","p","allSettled","status","value","error","reason","jupyterLiteServer","JupyterLiteServer","registerPluginModules","start","serviceManager","RetroApp","app","toLowerCase","jupyterapp","restored","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement"],"sourceRoot":""} \ No newline at end of file diff --git a/_static/build/528.2262cb0.js b/_static/build/528.2262cb0.js new file mode 100644 index 0000000..3244d86 --- /dev/null +++ b/_static/build/528.2262cb0.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[528,4535],{77608:(t,e,s)=>{s.d(e,{$m:()=>l,Dp:()=>a,Z$:()=>r,kJ:()=>o,s7:()=>n});const r=t=>t[t.length-1],n=(t,e)=>{for(let s=0;s{return t.length===e.length&&(s=(t,s)=>t===e[s],t.every(s));var s},o=Array.isArray},12904:(t,e,s)=>{s.d(e,{Hi:()=>o,PP:()=>a,UV:()=>l,gB:()=>c});var r=s(77608),n=s(41042);const a=(t,e,s=0)=>{try{for(;st===e||null!=t&&null!=e&&t.constructor===e.constructor&&(t instanceof Array&&r.$m(t,e)||"object"==typeof t&&n.$m(t,e)),o=(t,e)=>{if(null==t||null==e)return((t,e)=>t===e)(t,e);if(t.constructor!==e.constructor)return!1;if(t===e)return!0;switch(t.constructor){case ArrayBuffer:t=new Uint8Array(t),e=new Uint8Array(e);case Uint8Array:if(t.byteLength!==e.byteLength)return!1;for(let s=0;se.includes(t)},31234:(t,e,s)=>{s.d(e,{JG:()=>n,UI:()=>l,Ue:()=>r,Yj:()=>o,Yu:()=>a});const r=()=>new Map,n=t=>{const e=r();return t.forEach(((t,s)=>{e.set(s,t)})),e},a=(t,e,s)=>{let r=t.get(e);return void 0===r&&t.set(e,r=s()),r},l=(t,e)=>{const s=[];for(const[r,n]of t)s.push(e(n,r));return s},o=(t,e)=>{for(const[s,r]of t)if(e(r,s))return!0;return!1}},41865:(t,e,s)=>{s.d(e,{Fp:()=>o,GR:()=>i,GW:()=>r,IH:()=>a,VV:()=>l,Wn:()=>n,sQ:()=>c});const r=Math.floor,n=(Math.ceil,Math.abs),a=(Math.imul,Math.round,Math.log10,Math.log2,Math.log,Math.sqrt,(t,e)=>t+e),l=(t,e)=>tt>e?t:e,c=(Number.isNaN,Math.pow),i=(Math.sign,t=>0!==t?t<0:1/t<0)},41042:(t,e,s)=>{s.d(e,{$m:()=>o,UI:()=>n,kE:()=>a,l$:()=>l}),Object.assign;const r=Object.keys,n=(t,e)=>{const s=[];for(const r in t)s.push(e(t[r],r));return s},a=t=>r(t).length,l=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),o=(t,e)=>t===e||a(t)===a(e)&&((t,e)=>{for(const s in t)if(!e(t[s],s))return!1;return!0})(t,((t,s)=>(void 0!==t||l(e,s))&&e[s]===t))},32549:(t,e,s)=>{s.d(e,{y:()=>l});var r=s(31234),n=s(64064),a=s(77608);class l{constructor(){this._observers=r.Ue()}on(t,e){r.Yu(this._observers,t,n.Ue).add(e)}once(t,e){const s=(...r)=>{this.off(t,s),e(...r)};this.on(t,s)}off(t,e){const s=this._observers.get(t);void 0!==s&&(s.delete(e),0===s.size&&this._observers.delete(t))}emit(t,e){return a.Dp((this._observers.get(t)||r.Ue()).values()).forEach((t=>t(...e)))}destroy(){this._observers=r.Ue()}}},64064:(t,e,s)=>{s.d(e,{Ue:()=>r});const r=()=>new Set},70528:(t,e,s)=>{s.d(e,{Ag:()=>h,GL:()=>i,oy:()=>d,xq:()=>u});var r=s(44918),n=s(27164),a=s(9817),l=s(41865),o=s(32549),c=s(12904);s(79915);class i extends o.y{constructor(t){super(),this.doc=t,this.clientID=t.clientID,this.states=new Map,this.meta=new Map,this._checkInterval=setInterval((()=>{const t=a.ZG();null!==this.getLocalState()&&15e3<=t-this.meta.get(this.clientID).lastUpdated&&this.setLocalState(this.getLocalState());const e=[];this.meta.forEach(((s,r)=>{r!==this.clientID&&3e4<=t-s.lastUpdated&&this.states.has(r)&&e.push(r)})),e.length>0&&h(this,e,"timeout")}),l.GW(3e3)),t.on("destroy",(()=>{this.destroy()})),this.setLocalState({})}destroy(){this.emit("destroy",[this]),this.setLocalState(null),super.destroy(),clearInterval(this._checkInterval)}getLocalState(){return this.states.get(this.clientID)||null}setLocalState(t){const e=this.clientID,s=this.meta.get(e),r=void 0===s?0:s.clock+1,n=this.states.get(e);null===t?this.states.delete(e):this.states.set(e,t),this.meta.set(e,{clock:r,lastUpdated:a.ZG()});const l=[],o=[],i=[],h=[];null===t?h.push(e):null==n?null!=t&&l.push(e):(o.push(e),c.Hi(n,t)||i.push(e)),(l.length>0||i.length>0||h.length>0)&&this.emit("change",[{added:l,updated:i,removed:h},"local"]),this.emit("update",[{added:l,updated:o,removed:h},"local"])}setLocalStateField(t,e){const s=this.getLocalState();null!==s&&this.setLocalState({...s,[t]:e})}getStates(){return this.states}}const h=(t,e,s)=>{const r=[];for(let s=0;s0&&(t.emit("change",[{added:[],updated:[],removed:r},s]),t.emit("update",[{added:[],updated:[],removed:r},s]))},u=(t,e,s=t.states)=>{const n=e.length,a=r.Mf();r.uE(a,n);for(let l=0;l{const r=n.l1(e),l=a.ZG(),o=[],i=[],h=[],u=[],d=n.yg(r);for(let e=0;e0||h.length>0||u.length>0)&&t.emit("change",[{added:o,updated:h,removed:u},s]),(o.length>0||i.length>0||u.length>0)&&t.emit("update",[{added:o,updated:i,removed:u},s])}}}]); +//# sourceMappingURL=528.2262cb0.js.map \ No newline at end of file diff --git a/_static/build/528.2262cb0.js.map b/_static/build/528.2262cb0.js.map new file mode 100644 index 0000000..29571db --- /dev/null +++ b/_static/build/528.2262cb0.js.map @@ -0,0 +1 @@ +{"version":3,"file":"528.2262cb0.js","mappings":"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","sources":["webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/lib0/array.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/lib0/function.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/lib0/map.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/lib0/math.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/lib0/object.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/lib0/observable.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/lib0/set.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/y-protocols/awareness.js"],"sourcesContent":["/**\n * Utility module to work with Arrays.\n *\n * @module array\n */\n\n/**\n * Return the last element of an array. The element must exist\n *\n * @template L\n * @param {Array} arr\n * @return {L}\n */\nexport const last = arr => arr[arr.length - 1]\n\n/**\n * @template C\n * @return {Array}\n */\nexport const create = () => /** @type {Array} */ ([])\n\n/**\n * @template D\n * @param {Array} a\n * @return {Array}\n */\nexport const copy = a => /** @type {Array} */ (a.slice())\n\n/**\n * Append elements from src to dest\n *\n * @template M\n * @param {Array} dest\n * @param {Array} src\n */\nexport const appendTo = (dest, src) => {\n for (let i = 0; i < src.length; i++) {\n dest.push(src[i])\n }\n}\n\n/**\n * Transforms something array-like to an actual Array.\n *\n * @function\n * @template T\n * @param {ArrayLike|Iterable} arraylike\n * @return {T}\n */\nexport const from = Array.from\n\n/**\n * True iff condition holds on every element in the Array.\n *\n * @function\n * @template ITEM\n *\n * @param {Array} arr\n * @param {function(ITEM, number, Array):boolean} f\n * @return {boolean}\n */\nexport const every = (arr, f) => arr.every(f)\n\n/**\n * True iff condition holds on some element in the Array.\n *\n * @function\n * @template S\n * @param {Array} arr\n * @param {function(S, number, Array):boolean} f\n * @return {boolean}\n */\nexport const some = (arr, f) => arr.some(f)\n\n/**\n * @template ELEM\n *\n * @param {Array} a\n * @param {Array} b\n * @return {boolean}\n */\nexport const equalFlat = (a, b) => a.length === b.length && every(a, (item, index) => item === b[index])\n\n/**\n * @template ELEM\n * @param {Array>} arr\n * @return {Array}\n */\nexport const flatten = arr => arr.reduce((acc, val) => acc.concat(val), [])\n\nexport const isArray = Array.isArray\n","/**\n * Common functions and function call helpers.\n *\n * @module function\n */\n\nimport * as array from './array.js'\nimport * as object from './object.js'\n\n/**\n * Calls all functions in `fs` with args. Only throws after all functions were called.\n *\n * @param {Array} fs\n * @param {Array} args\n */\nexport const callAll = (fs, args, i = 0) => {\n try {\n for (; i < fs.length; i++) {\n fs[i](...args)\n }\n } finally {\n if (i < fs.length) {\n callAll(fs, args, i + 1)\n }\n }\n}\n\nexport const nop = () => {}\n\n/**\n * @template T\n * @param {function():T} f\n * @return {T}\n */\nexport const apply = f => f()\n\n/**\n * @template A\n *\n * @param {A} a\n * @return {A}\n */\nexport const id = a => a\n\n/**\n * @template T\n *\n * @param {T} a\n * @param {T} b\n * @return {boolean}\n */\nexport const equalityStrict = (a, b) => a === b\n\n/**\n * @template T\n *\n * @param {Array|object} a\n * @param {Array|object} b\n * @return {boolean}\n */\nexport const equalityFlat = (a, b) => a === b || (a != null && b != null && a.constructor === b.constructor && ((a instanceof Array && array.equalFlat(a, /** @type {Array} */ (b))) || (typeof a === 'object' && object.equalFlat(a, b))))\n\n/**\n * @param {any} a\n * @param {any} b\n * @return {boolean}\n */\nexport const equalityDeep = (a, b) => {\n if (a == null || b == null) {\n return equalityStrict(a, b)\n }\n if (a.constructor !== b.constructor) {\n return false\n }\n if (a === b) {\n return true\n }\n switch (a.constructor) {\n case ArrayBuffer:\n a = new Uint8Array(a)\n b = new Uint8Array(b)\n // eslint-disable-next-line no-fallthrough\n case Uint8Array: {\n if (a.byteLength !== b.byteLength) {\n return false\n }\n for (let i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) {\n return false\n }\n }\n break\n }\n case Set: {\n if (a.size !== b.size) {\n return false\n }\n for (const value of a) {\n if (!b.has(value)) {\n return false\n }\n }\n break\n }\n case Map: {\n if (a.size !== b.size) {\n return false\n }\n for (const key of a.keys()) {\n if (!b.has(key) || !equalityDeep(a.get(key), b.get(key))) {\n return false\n }\n }\n break\n }\n case Object:\n if (object.length(a) !== object.length(b)) {\n return false\n }\n for (const key in a) {\n if (!object.hasProperty(a, key) || !equalityDeep(a[key], b[key])) {\n return false\n }\n }\n break\n case Array:\n if (a.length !== b.length) {\n return false\n }\n for (let i = 0; i < a.length; i++) {\n if (!equalityDeep(a[i], b[i])) {\n return false\n }\n }\n break\n default:\n return false\n }\n return true\n}\n\n/**\n * @template V\n * @template {V} OPTS\n *\n * @param {V} value\n * @param {Array} options\n */\n// @ts-ignore\nexport const isOneOf = (value, options) => options.includes(value)\n","/**\n * Utility module to work with key-value stores.\n *\n * @module map\n */\n\n/**\n * Creates a new Map instance.\n *\n * @function\n * @return {Map}\n *\n * @function\n */\nexport const create = () => new Map()\n\n/**\n * Copy a Map object into a fresh Map object.\n *\n * @function\n * @template X,Y\n * @param {Map} m\n * @return {Map}\n */\nexport const copy = m => {\n const r = create()\n m.forEach((v, k) => { r.set(k, v) })\n return r\n}\n\n/**\n * Get map property. Create T if property is undefined and set T on map.\n *\n * ```js\n * const listeners = map.setIfUndefined(events, 'eventName', set.create)\n * listeners.add(listener)\n * ```\n *\n * @function\n * @template T,K\n * @param {Map} map\n * @param {K} key\n * @param {function():T} createT\n * @return {T}\n */\nexport const setIfUndefined = (map, key, createT) => {\n let set = map.get(key)\n if (set === undefined) {\n map.set(key, set = createT())\n }\n return set\n}\n\n/**\n * Creates an Array and populates it with the content of all key-value pairs using the `f(value, key)` function.\n *\n * @function\n * @template K\n * @template V\n * @template R\n * @param {Map} m\n * @param {function(V,K):R} f\n * @return {Array}\n */\nexport const map = (m, f) => {\n const res = []\n for (const [key, value] of m) {\n res.push(f(value, key))\n }\n return res\n}\n\n/**\n * Tests whether any key-value pairs pass the test implemented by `f(value, key)`.\n *\n * @todo should rename to some - similarly to Array.some\n *\n * @function\n * @template K\n * @template V\n * @param {Map} m\n * @param {function(V,K):boolean} f\n * @return {boolean}\n */\nexport const any = (m, f) => {\n for (const [key, value] of m) {\n if (f(value, key)) {\n return true\n }\n }\n return false\n}\n\n/**\n * Tests whether all key-value pairs pass the test implemented by `f(value, key)`.\n *\n * @function\n * @template K\n * @template V\n * @param {Map} m\n * @param {function(V,K):boolean} f\n * @return {boolean}\n */\nexport const all = (m, f) => {\n for (const [key, value] of m) {\n if (!f(value, key)) {\n return false\n }\n }\n return true\n}\n","/**\n * Common Math expressions.\n *\n * @module math\n */\n\nexport const floor = Math.floor\nexport const ceil = Math.ceil\nexport const abs = Math.abs\nexport const imul = Math.imul\nexport const round = Math.round\nexport const log10 = Math.log10\nexport const log2 = Math.log2\nexport const log = Math.log\nexport const sqrt = Math.sqrt\n\n/**\n * @function\n * @param {number} a\n * @param {number} b\n * @return {number} The sum of a and b\n */\nexport const add = (a, b) => a + b\n\n/**\n * @function\n * @param {number} a\n * @param {number} b\n * @return {number} The smaller element of a and b\n */\nexport const min = (a, b) => a < b ? a : b\n\n/**\n * @function\n * @param {number} a\n * @param {number} b\n * @return {number} The bigger element of a and b\n */\nexport const max = (a, b) => a > b ? a : b\n\nexport const isNaN = Number.isNaN\n\nexport const pow = Math.pow\n/**\n * Base 10 exponential function. Returns the value of 10 raised to the power of pow.\n *\n * @param {number} exp\n * @return {number}\n */\nexport const exp10 = exp => Math.pow(10, exp)\n\nexport const sign = Math.sign\n\n/**\n * @param {number} n\n * @return {boolean} Wether n is negative. This function also differentiates between -0 and +0\n */\nexport const isNegativeZero = n => n !== 0 ? n < 0 : 1 / n < 0\n","/**\n * Utility functions for working with EcmaScript objects.\n *\n * @module object\n */\n\n/**\n * @return {Object} obj\n */\nexport const create = () => Object.create(null)\n\n/**\n * Object.assign\n */\nexport const assign = Object.assign\n\n/**\n * @param {Object} obj\n */\nexport const keys = Object.keys\n\n/**\n * @param {Object} obj\n * @param {function(any,string):any} f\n */\nexport const forEach = (obj, f) => {\n for (const key in obj) {\n f(obj[key], key)\n }\n}\n\n/**\n * @template R\n * @param {Object} obj\n * @param {function(any,string):R} f\n * @return {Array}\n */\nexport const map = (obj, f) => {\n const results = []\n for (const key in obj) {\n results.push(f(obj[key], key))\n }\n return results\n}\n\n/**\n * @param {Object} obj\n * @return {number}\n */\nexport const length = obj => keys(obj).length\n\n/**\n * @param {Object} obj\n * @param {function(any,string):boolean} f\n * @return {boolean}\n */\nexport const some = (obj, f) => {\n for (const key in obj) {\n if (f(obj[key], key)) {\n return true\n }\n }\n return false\n}\n\n/**\n * @param {Object} obj\n * @param {function(any,string):boolean} f\n * @return {boolean}\n */\nexport const every = (obj, f) => {\n for (const key in obj) {\n if (!f(obj[key], key)) {\n return false\n }\n }\n return true\n}\n\n/**\n * Calls `Object.prototype.hasOwnProperty`.\n *\n * @param {any} obj\n * @param {string|symbol} key\n * @return {boolean}\n */\nexport const hasProperty = (obj, key) => Object.prototype.hasOwnProperty.call(obj, key)\n\n/**\n * @param {Object} a\n * @param {Object} b\n * @return {boolean}\n */\nexport const equalFlat = (a, b) => a === b || (length(a) === length(b) && every(a, (val, key) => (val !== undefined || hasProperty(b, key)) && b[key] === val))\n","/**\n * Observable class prototype.\n *\n * @module observable\n */\n\nimport * as map from './map.js'\nimport * as set from './set.js'\nimport * as array from './array.js'\n\n/**\n * Handles named events.\n *\n * @template N\n */\nexport class Observable {\n constructor () {\n /**\n * Some desc.\n * @type {Map}\n */\n this._observers = map.create()\n }\n\n /**\n * @param {N} name\n * @param {function} f\n */\n on (name, f) {\n map.setIfUndefined(this._observers, name, set.create).add(f)\n }\n\n /**\n * @param {N} name\n * @param {function} f\n */\n once (name, f) {\n /**\n * @param {...any} args\n */\n const _f = (...args) => {\n this.off(name, _f)\n f(...args)\n }\n this.on(name, _f)\n }\n\n /**\n * @param {N} name\n * @param {function} f\n */\n off (name, f) {\n const observers = this._observers.get(name)\n if (observers !== undefined) {\n observers.delete(f)\n if (observers.size === 0) {\n this._observers.delete(name)\n }\n }\n }\n\n /**\n * Emit a named event. All registered event listeners that listen to the\n * specified name will receive the event.\n *\n * @todo This should catch exceptions\n *\n * @param {N} name The event name.\n * @param {Array} args The arguments that are applied to the event listener.\n */\n emit (name, args) {\n // copy all listeners to an array first to make sure that no event is emitted to listeners that are subscribed while the event handler is called.\n return array.from((this._observers.get(name) || map.create()).values()).forEach(f => f(...args))\n }\n\n destroy () {\n this._observers = map.create()\n }\n}\n","/**\n * Utility module to work with sets.\n *\n * @module set\n */\n\nexport const create = () => new Set()\n\n/**\n * @template T\n * @param {Set} set\n * @return {Array}\n */\nexport const toArray = set => Array.from(set)\n\n/**\n * @template T\n * @param {Set} set\n * @return {T}\n */\nexport const first = set => {\n return set.values().next().value || undefined\n}\n\n/**\n * @template T\n * @param {Iterable} entries\n * @return {Set}\n */\nexport const from = entries => {\n return new Set(entries)\n}\n","/**\n * @module awareness-protocol\n */\n\nimport * as encoding from 'lib0/encoding'\nimport * as decoding from 'lib0/decoding'\nimport * as time from 'lib0/time'\nimport * as math from 'lib0/math'\nimport { Observable } from 'lib0/observable'\nimport * as f from 'lib0/function'\nimport * as Y from 'yjs' // eslint-disable-line\n\nexport const outdatedTimeout = 30000\n\n/**\n * @typedef {Object} MetaClientState\n * @property {number} MetaClientState.clock\n * @property {number} MetaClientState.lastUpdated unix timestamp\n */\n\n/**\n * The Awareness class implements a simple shared state protocol that can be used for non-persistent data like awareness information\n * (cursor, username, status, ..). Each client can update its own local state and listen to state changes of\n * remote clients. Every client may set a state of a remote peer to `null` to mark the client as offline.\n *\n * Each client is identified by a unique client id (something we borrow from `doc.clientID`). A client can override\n * its own state by propagating a message with an increasing timestamp (`clock`). If such a message is received, it is\n * applied if the known state of that client is older than the new state (`clock < newClock`). If a client thinks that\n * a remote client is offline, it may propagate a message with\n * `{ clock: currentClientClock, state: null, client: remoteClient }`. If such a\n * message is received, and the known clock of that client equals the received clock, it will override the state with `null`.\n *\n * Before a client disconnects, it should propagate a `null` state with an updated clock.\n *\n * Awareness states must be updated every 30 seconds. Otherwise the Awareness instance will delete the client state.\n *\n * @extends {Observable}\n */\nexport class Awareness extends Observable {\n /**\n * @param {Y.Doc} doc\n */\n constructor (doc) {\n super()\n this.doc = doc\n /**\n * @type {number}\n */\n this.clientID = doc.clientID\n /**\n * Maps from client id to client state\n * @type {Map>}\n */\n this.states = new Map()\n /**\n * @type {Map}\n */\n this.meta = new Map()\n this._checkInterval = /** @type {any} */ (setInterval(() => {\n const now = time.getUnixTime()\n if (this.getLocalState() !== null && (outdatedTimeout / 2 <= now - /** @type {{lastUpdated:number}} */ (this.meta.get(this.clientID)).lastUpdated)) {\n // renew local clock\n this.setLocalState(this.getLocalState())\n }\n /**\n * @type {Array}\n */\n const remove = []\n this.meta.forEach((meta, clientid) => {\n if (clientid !== this.clientID && outdatedTimeout <= now - meta.lastUpdated && this.states.has(clientid)) {\n remove.push(clientid)\n }\n })\n if (remove.length > 0) {\n removeAwarenessStates(this, remove, 'timeout')\n }\n }, math.floor(outdatedTimeout / 10)))\n doc.on('destroy', () => {\n this.destroy()\n })\n this.setLocalState({})\n }\n\n destroy () {\n this.emit('destroy', [this])\n this.setLocalState(null)\n super.destroy()\n clearInterval(this._checkInterval)\n }\n\n /**\n * @return {Object|null}\n */\n getLocalState () {\n return this.states.get(this.clientID) || null\n }\n\n /**\n * @param {Object|null} state\n */\n setLocalState (state) {\n const clientID = this.clientID\n const currLocalMeta = this.meta.get(clientID)\n const clock = currLocalMeta === undefined ? 0 : currLocalMeta.clock + 1\n const prevState = this.states.get(clientID)\n if (state === null) {\n this.states.delete(clientID)\n } else {\n this.states.set(clientID, state)\n }\n this.meta.set(clientID, {\n clock,\n lastUpdated: time.getUnixTime()\n })\n const added = []\n const updated = []\n const filteredUpdated = []\n const removed = []\n if (state === null) {\n removed.push(clientID)\n } else if (prevState == null) {\n if (state != null) {\n added.push(clientID)\n }\n } else {\n updated.push(clientID)\n if (!f.equalityDeep(prevState, state)) {\n filteredUpdated.push(clientID)\n }\n }\n if (added.length > 0 || filteredUpdated.length > 0 || removed.length > 0) {\n this.emit('change', [{ added, updated: filteredUpdated, removed }, 'local'])\n }\n this.emit('update', [{ added, updated, removed }, 'local'])\n }\n\n /**\n * @param {string} field\n * @param {any} value\n */\n setLocalStateField (field, value) {\n const state = this.getLocalState()\n if (state !== null) {\n this.setLocalState({\n ...state,\n [field]: value\n })\n }\n }\n\n /**\n * @return {Map>}\n */\n getStates () {\n return this.states\n }\n}\n\n/**\n * Mark (remote) clients as inactive and remove them from the list of active peers.\n * This change will be propagated to remote clients.\n *\n * @param {Awareness} awareness\n * @param {Array} clients\n * @param {any} origin\n */\nexport const removeAwarenessStates = (awareness, clients, origin) => {\n const removed = []\n for (let i = 0; i < clients.length; i++) {\n const clientID = clients[i]\n if (awareness.states.has(clientID)) {\n awareness.states.delete(clientID)\n if (clientID === awareness.clientID) {\n const curMeta = /** @type {MetaClientState} */ (awareness.meta.get(clientID))\n awareness.meta.set(clientID, {\n clock: curMeta.clock + 1,\n lastUpdated: time.getUnixTime()\n })\n }\n removed.push(clientID)\n }\n }\n if (removed.length > 0) {\n awareness.emit('change', [{ added: [], updated: [], removed }, origin])\n awareness.emit('update', [{ added: [], updated: [], removed }, origin])\n }\n}\n\n/**\n * @param {Awareness} awareness\n * @param {Array} clients\n * @return {Uint8Array}\n */\nexport const encodeAwarenessUpdate = (awareness, clients, states = awareness.states) => {\n const len = clients.length\n const encoder = encoding.createEncoder()\n encoding.writeVarUint(encoder, len)\n for (let i = 0; i < len; i++) {\n const clientID = clients[i]\n const state = states.get(clientID) || null\n const clock = /** @type {MetaClientState} */ (awareness.meta.get(clientID)).clock\n encoding.writeVarUint(encoder, clientID)\n encoding.writeVarUint(encoder, clock)\n encoding.writeVarString(encoder, JSON.stringify(state))\n }\n return encoding.toUint8Array(encoder)\n}\n\n/**\n * Modify the content of an awareness update before re-encoding it to an awareness update.\n *\n * This might be useful when you have a central server that wants to ensure that clients\n * cant hijack somebody elses identity.\n *\n * @param {Uint8Array} update\n * @param {function(any):any} modify\n * @return {Uint8Array}\n */\nexport const modifyAwarenessUpdate = (update, modify) => {\n const decoder = decoding.createDecoder(update)\n const encoder = encoding.createEncoder()\n const len = decoding.readVarUint(decoder)\n encoding.writeVarUint(encoder, len)\n for (let i = 0; i < len; i++) {\n const clientID = decoding.readVarUint(decoder)\n const clock = decoding.readVarUint(decoder)\n const state = JSON.parse(decoding.readVarString(decoder))\n const modifiedState = modify(state)\n encoding.writeVarUint(encoder, clientID)\n encoding.writeVarUint(encoder, clock)\n encoding.writeVarString(encoder, JSON.stringify(modifiedState))\n }\n return encoding.toUint8Array(encoder)\n}\n\n/**\n * @param {Awareness} awareness\n * @param {Uint8Array} update\n * @param {any} origin This will be added to the emitted change event\n */\nexport const applyAwarenessUpdate = (awareness, update, origin) => {\n const decoder = decoding.createDecoder(update)\n const timestamp = time.getUnixTime()\n const added = []\n const updated = []\n const filteredUpdated = []\n const removed = []\n const len = decoding.readVarUint(decoder)\n for (let i = 0; i < len; i++) {\n const clientID = decoding.readVarUint(decoder)\n let clock = decoding.readVarUint(decoder)\n const state = JSON.parse(decoding.readVarString(decoder))\n const clientMeta = awareness.meta.get(clientID)\n const prevState = awareness.states.get(clientID)\n const currClock = clientMeta === undefined ? 0 : clientMeta.clock\n if (currClock < clock || (currClock === clock && state === null && awareness.states.has(clientID))) {\n if (state === null) {\n // never let a remote client remove this local state\n if (clientID === awareness.clientID && awareness.getLocalState() != null) {\n // remote client removed the local state. Do not remote state. Broadcast a message indicating\n // that this client still exists by increasing the clock\n clock++\n } else {\n awareness.states.delete(clientID)\n }\n } else {\n awareness.states.set(clientID, state)\n }\n awareness.meta.set(clientID, {\n clock,\n lastUpdated: timestamp\n })\n if (clientMeta === undefined && state !== null) {\n added.push(clientID)\n } else if (clientMeta !== undefined && state === null) {\n removed.push(clientID)\n } else if (state !== null) {\n if (!f.equalityDeep(state, prevState)) {\n filteredUpdated.push(clientID)\n }\n updated.push(clientID)\n }\n }\n }\n if (added.length > 0 || filteredUpdated.length > 0 || removed.length > 0) {\n awareness.emit('change', [{\n added, updated: filteredUpdated, removed\n }, origin])\n }\n if (added.length > 0 || updated.length > 0 || removed.length > 0) {\n awareness.emit('update', [{\n added, updated, removed\n }, origin])\n }\n}\n"],"names":["last","arr","length","appendTo","dest","src","i","push","from","Array","equalFlat","a","b","f","item","index","every","isArray","callAll","fs","args","equalityFlat","constructor","equalityDeep","equalityStrict","ArrayBuffer","Uint8Array","byteLength","Set","size","value","has","Map","key","keys","get","Object","isOneOf","options","includes","create","copy","m","r","forEach","v","k","set","setIfUndefined","map","createT","undefined","res","any","floor","Math","abs","ceil","add","imul","round","log10","log2","log","sqrt","min","max","pow","Number","isNaN","isNegativeZero","sign","n","assign","obj","results","hasProperty","prototype","hasOwnProperty","call","val","Observable","this","_observers","on","name","once","_f","off","observers","delete","emit","values","destroy","Awareness","doc","super","clientID","states","meta","_checkInterval","setInterval","now","getLocalState","outdatedTimeout","lastUpdated","setLocalState","remove","clientid","removeAwarenessStates","clearInterval","state","currLocalMeta","clock","prevState","added","updated","filteredUpdated","removed","setLocalStateField","field","getStates","awareness","clients","origin","curMeta","encodeAwarenessUpdate","len","encoder","JSON","stringify","applyAwarenessUpdate","update","decoder","timestamp","parse","clientMeta","currClock"],"sourceRoot":""} \ No newline at end of file diff --git a/_static/build/5292.79d4aba.js b/_static/build/5292.79d4aba.js new file mode 100644 index 0000000..5bb15c6 --- /dev/null +++ b/_static/build/5292.79d4aba.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[5292,6997],{96997:(t,e,s)=>{s.r(e),s.d(e,{AddWidget:()=>d,TagTool:()=>c,TagWidget:()=>r});var i=s(4265),a=s(59674),n=s(94519);class d extends n.Widget{constructor(t){super(),this.parent=null,this.input=document.createElement("input"),this.translator=t||i.nullTranslator,this._trans=this.translator.load("jupyterlab"),this.addClass("tag"),this.editing=!1,this.buildTag()}buildTag(){const t=this.input||document.createElement("input");t.value=this._trans.__("Add Tag"),t.contentEditable="true",t.className="add-tag",t.style.width="49px",this.input=t;const e=document.createElement("div");e.className="tag-holder",e.appendChild(t);const s=a.addIcon.element({tag:"span",elementPosition:"center",height:"18px",width:"18px",marginLeft:"3px",marginRight:"-5px"});this.addClass("unapplied-tag"),e.appendChild(s),this.node.appendChild(e)}onAfterAttach(){this.node.addEventListener("mousedown",this),this.input.addEventListener("keydown",this),this.input.addEventListener("focus",this),this.input.addEventListener("blur",this)}onBeforeDetach(){this.node.removeEventListener("mousedown",this),this.input.removeEventListener("keydown",this),this.input.removeEventListener("focus",this),this.input.removeEventListener("blur",this)}handleEvent(t){switch(t.type){case"mousedown":this._evtMouseDown(t);break;case"keydown":this._evtKeyDown(t);break;case"blur":this._evtBlur();break;case"focus":this._evtFocus()}}_evtMouseDown(t){if(this.editing){if(t.target!==this.input&&""!==this.input.value){const t=this.input.value;this.parent.addTag(t),this.input.blur(),this._evtBlur()}}else this.editing=!0,this.input.value="",this.input.focus();t.preventDefault()}_evtFocus(){this.editing||this.input.blur()}_evtKeyDown(t){const e=document.createElement("span");if(e.className="add-tag",e.innerHTML=this.input.value,document.body.appendChild(e),this.input.style.width=e.getBoundingClientRect().width+8+"px",document.body.removeChild(e),13===t.keyCode){const t=this.input.value;this.parent.addTag(t),this.input.blur(),this._evtBlur()}}_evtBlur(){this.editing&&(this.editing=!1,this.input.value=this._trans.__("Add Tag"),this.input.style.width="49px")}}var l=s(33079),o=s(43892),h=s(70942);class r extends n.Widget{constructor(t){super(),this.parent=null,this.applied=!0,this.name=t,this.addClass("tag"),this.buildTag()}buildTag(){const t=document.createElement("span");t.textContent=this.name,t.style.textOverflow="ellipsis";const e=document.createElement("div");e.className="tag-holder",e.appendChild(t);const s=a.checkIcon.element({tag:"span",elementPosition:"center",height:"18px",width:"18px",marginLeft:"5px",marginRight:"-3px"});this.applied?this.addClass("applied-tag"):(this.addClass("unapplied-tag"),s.style.display="none"),e.appendChild(s),this.node.appendChild(e)}onAfterAttach(){this.node.addEventListener("mousedown",this),this.node.addEventListener("mouseover",this),this.node.addEventListener("mouseout",this)}onBeforeDetach(){this.node.removeEventListener("mousedown",this),this.node.removeEventListener("mouseover",this),this.node.removeEventListener("mouseout",this)}handleEvent(t){switch(t.type){case"mousedown":this._evtClick();break;case"mouseover":this._evtMouseOver();break;case"mouseout":this._evtMouseOut()}}onUpdateRequest(){var t;(null===(t=this.parent)||void 0===t?void 0:t.checkApplied(this.name))!==this.applied&&this.toggleApplied()}toggleApplied(){var t,e;this.applied?(this.removeClass("applied-tag"),(null===(t=this.node.firstChild)||void 0===t?void 0:t.lastChild).style.display="none",this.addClass("unapplied-tag")):(this.removeClass("unapplied-tag"),(null===(e=this.node.firstChild)||void 0===e?void 0:e.lastChild).style.display="inline-block",this.addClass("applied-tag")),this.applied=!this.applied}_evtClick(){var t,e;this.applied?null===(t=this.parent)||void 0===t||t.removeTag(this.name):null===(e=this.parent)||void 0===e||e.addTag(this.name),this.toggleApplied()}_evtMouseOver(){this.node.classList.add("tag-hover")}_evtMouseOut(){this.node.classList.remove("tag-hover")}}class c extends l.NotebookTools.Tool{constructor(t,e,s){super(),this.tagList=[],this.label=!1,this.translator=s||i.nullTranslator,this._trans=this.translator.load("jupyterlab"),this.tracker=t,this.layout=new n.PanelLayout,this.createTagInput(),this.addClass("jp-TagTool")}createTagInput(){const t=this.layout,e=new d(this.translator);e.id="add-tag",t.insertWidget(0,e)}checkApplied(t){var e;const s=null===(e=this.tracker)||void 0===e?void 0:e.activeCell;if(s){const e=s.model.metadata.get("tags");if(e)return e.includes(t)}return!1}addTag(t){var e,s;const i=null===(e=this.tracker)||void 0===e?void 0:e.activeCell;if(i){const e=[...null!==(s=i.model.metadata.get("tags"))&&void 0!==s?s:[]];let a=t.split(/[,\s]+/);a=a.filter((t=>""!==t&&!e.includes(t))),i.model.metadata.set("tags",e.concat(a)),this.refreshTags(),this.loadActiveTags()}}removeTag(t){var e,s;const i=null===(e=this.tracker)||void 0===e?void 0:e.activeCell;if(i){let e=[...null!==(s=i.model.metadata.get("tags"))&&void 0!==s?s:[]].filter((e=>e!==t));i.model.metadata.set("tags",e),0===e.length&&i.model.metadata.delete("tags"),this.refreshTags(),this.loadActiveTags()}}loadActiveTags(){const t=this.layout;for(const e of t.widgets)e.update()}pullTags(){var t,e,s;const i=null===(t=this.tracker)||void 0===t?void 0:t.currentWidget,a=null!==(s=null===(e=null==i?void 0:i.model)||void 0===e?void 0:e.cells)&&void 0!==s?s:[],n=(0,o.reduce)(a,((t,e)=>{var s;return[...t,...null!==(s=e.metadata.get("tags"))&&void 0!==s?s:[]]}),[]);this.tagList=[...new Set(n)].filter((t=>""!==t))}refreshTags(){this.pullTags();const t=this.layout,e=t.widgets.filter((t=>"add-tag"!==t.id));e.forEach((t=>{this.tagList.includes(t.name)||t.dispose()}));const s=e.map((t=>t.name));this.tagList.forEach((e=>{if(!s.includes(e)){const s=t.widgets.length-1;t.insertWidget(s,new r(e))}}))}validateTags(t,e){e=e.filter((t=>"string"==typeof t)),e=(0,o.reduce)(e,((t,e)=>[...t,...e.split(/[,\s]+/)]),[]);const s=[...new Set(e)].filter((t=>""!==t));t.model.metadata.set("tags",s),this.refreshTags(),this.loadActiveTags()}onActiveCellChanged(){this.loadActiveTags()}onAfterShow(){this.refreshTags(),this.loadActiveTags()}onAfterAttach(t){if(!this.label){const t=document.createElement("label");t.textContent=this._trans.__("Cell Tags"),t.className="tag-label",this.parent.node.insertBefore(t,this.node),this.label=!0}this.onCurrentChanged(),super.onAfterAttach(t)}onBeforeDetach(t){super.onBeforeDetach(t),h.Signal.disconnectReceiver(this)}onActiveCellMetadataChanged(){const t=this.tracker.activeCell.model.metadata.get("tags");let e=[];t&&("string"==typeof t?e.push(t):e=t),this.validateTags(this.tracker.activeCell,e)}onCurrentChanged(){h.Signal.disconnectReceiver(this),this.tracker.currentChanged.connect(this.onCurrentChanged,this),this.tracker.currentWidget&&(this.tracker.currentWidget.context.ready.then((()=>{this.refresh()})),this.tracker.currentWidget.model.cells.changed.connect(this.refresh,this),this.tracker.currentWidget.content.activeCellChanged.connect(this.refresh,this)),this.refresh()}refresh(){this.refreshTags(),this.loadActiveTags()}}}}]); +//# sourceMappingURL=5292.79d4aba.js.map \ No newline at end of file diff --git a/_static/build/5292.79d4aba.js.map b/_static/build/5292.79d4aba.js.map new file mode 100644 index 0000000..b079cd0 --- /dev/null +++ b/_static/build/5292.79d4aba.js.map @@ -0,0 +1 @@ +{"version":3,"file":"5292.79d4aba.js","mappings":"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","sources":["webpack://_JUPYTERLAB.CORE_OUTPUT/../src/addwidget.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/widget.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/tool.ts"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/_static/build/5437.31236f7.js b/_static/build/5437.31236f7.js new file mode 100644 index 0000000..6c24230 --- /dev/null +++ b/_static/build/5437.31236f7.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[5437],{75437:(i,t,e)=>{e.r(t),e.d(t,{VirtualDOM:()=>n,VirtualElement:()=>s,VirtualElementPass:()=>b,VirtualText:()=>a,h:()=>v,hpass:()=>l});var n,d,r=e(43892),o=function(i,t){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,t){i.__proto__=t}||function(i,t){for(var e in t)Object.prototype.hasOwnProperty.call(t,e)&&(i[e]=t[e])},o(i,t)},a=function(i){this.type="text",this.content=i},s=function(i,t,e,n){this.type="element",this.tag=i,this.attrs=t,this.children=e,this.renderer=n},b=function(i){function t(t,e,n){return i.call(this,t,e,[],n||void 0)||this}return function(i,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function e(){this.constructor=i}o(i,t),i.prototype=null===t?Object.create(t):(e.prototype=t.prototype,new e)}(t,i),t}(s);function v(i){for(var t,e={},n=[],d=1,r=arguments.length;d3)throw new Error("hpass() should be called with 1, 2, or 3 arguments");return new b(i,t,e)}!function(i){i.a=i.bind(void 0,"a"),i.abbr=i.bind(void 0,"abbr"),i.address=i.bind(void 0,"address"),i.area=i.bind(void 0,"area"),i.article=i.bind(void 0,"article"),i.aside=i.bind(void 0,"aside"),i.audio=i.bind(void 0,"audio"),i.b=i.bind(void 0,"b"),i.bdi=i.bind(void 0,"bdi"),i.bdo=i.bind(void 0,"bdo"),i.blockquote=i.bind(void 0,"blockquote"),i.br=i.bind(void 0,"br"),i.button=i.bind(void 0,"button"),i.canvas=i.bind(void 0,"canvas"),i.caption=i.bind(void 0,"caption"),i.cite=i.bind(void 0,"cite"),i.code=i.bind(void 0,"code"),i.col=i.bind(void 0,"col"),i.colgroup=i.bind(void 0,"colgroup"),i.data=i.bind(void 0,"data"),i.datalist=i.bind(void 0,"datalist"),i.dd=i.bind(void 0,"dd"),i.del=i.bind(void 0,"del"),i.dfn=i.bind(void 0,"dfn"),i.div=i.bind(void 0,"div"),i.dl=i.bind(void 0,"dl"),i.dt=i.bind(void 0,"dt"),i.em=i.bind(void 0,"em"),i.embed=i.bind(void 0,"embed"),i.fieldset=i.bind(void 0,"fieldset"),i.figcaption=i.bind(void 0,"figcaption"),i.figure=i.bind(void 0,"figure"),i.footer=i.bind(void 0,"footer"),i.form=i.bind(void 0,"form"),i.h1=i.bind(void 0,"h1"),i.h2=i.bind(void 0,"h2"),i.h3=i.bind(void 0,"h3"),i.h4=i.bind(void 0,"h4"),i.h5=i.bind(void 0,"h5"),i.h6=i.bind(void 0,"h6"),i.header=i.bind(void 0,"header"),i.hr=i.bind(void 0,"hr"),i.i=i.bind(void 0,"i"),i.iframe=i.bind(void 0,"iframe"),i.img=i.bind(void 0,"img"),i.input=i.bind(void 0,"input"),i.ins=i.bind(void 0,"ins"),i.kbd=i.bind(void 0,"kbd"),i.label=i.bind(void 0,"label"),i.legend=i.bind(void 0,"legend"),i.li=i.bind(void 0,"li"),i.main=i.bind(void 0,"main"),i.map=i.bind(void 0,"map"),i.mark=i.bind(void 0,"mark"),i.meter=i.bind(void 0,"meter"),i.nav=i.bind(void 0,"nav"),i.noscript=i.bind(void 0,"noscript"),i.object=i.bind(void 0,"object"),i.ol=i.bind(void 0,"ol"),i.optgroup=i.bind(void 0,"optgroup"),i.option=i.bind(void 0,"option"),i.output=i.bind(void 0,"output"),i.p=i.bind(void 0,"p"),i.param=i.bind(void 0,"param"),i.pre=i.bind(void 0,"pre"),i.progress=i.bind(void 0,"progress"),i.q=i.bind(void 0,"q"),i.rp=i.bind(void 0,"rp"),i.rt=i.bind(void 0,"rt"),i.ruby=i.bind(void 0,"ruby"),i.s=i.bind(void 0,"s"),i.samp=i.bind(void 0,"samp"),i.section=i.bind(void 0,"section"),i.select=i.bind(void 0,"select"),i.small=i.bind(void 0,"small"),i.source=i.bind(void 0,"source"),i.span=i.bind(void 0,"span"),i.strong=i.bind(void 0,"strong"),i.sub=i.bind(void 0,"sub"),i.summary=i.bind(void 0,"summary"),i.sup=i.bind(void 0,"sup"),i.table=i.bind(void 0,"table"),i.tbody=i.bind(void 0,"tbody"),i.td=i.bind(void 0,"td"),i.textarea=i.bind(void 0,"textarea"),i.tfoot=i.bind(void 0,"tfoot"),i.th=i.bind(void 0,"th"),i.thead=i.bind(void 0,"thead"),i.time=i.bind(void 0,"time"),i.title=i.bind(void 0,"title"),i.tr=i.bind(void 0,"tr"),i.track=i.bind(void 0,"track"),i.u=i.bind(void 0,"u"),i.ul=i.bind(void 0,"ul"),i.var_=i.bind(void 0,"var"),i.video=i.bind(void 0,"video"),i.wbr=i.bind(void 0,"wbr")}(v||(v={})),function(i){i.realize=function(i){return d.createDOMNode(i)},i.render=function(i,t){var e=d.hostMap.get(t)||[],n=d.asContentArray(i);d.hostMap.set(t,n),d.updateContent(t,e,n)}}(n||(n={})),function(i){function t(i){var e=arguments[1]||null,n=arguments[2]||null;if(e)e.insertBefore(t(i),n);else{if("text"===i.type)return document.createTextNode(i.content);if(d(e=document.createElement(i.tag),i.attrs),i.renderer)return i.renderer.render(e,{attrs:i.attrs,children:i.children}),e;for(var r=0,o=i.children.length;r=n;--r){var o=t[r],a=d?i.lastChild:i.childNodes[r];"text"===o.type||(o.renderer&&o.renderer.unrender?o.renderer.unrender(a,{attrs:o.attrs,children:o.children}):e(a,o.children,0,!1)),d&&i.removeChild(a)}}i.hostMap=new WeakMap,i.asContentArray=function(i){return i?i instanceof Array?i:[i]:[]},i.createDOMNode=t,i.updateContent=function i(n,d,a){if(d!==a){for(var s=function(i,t){for(var e=i.firstChild,n=Object.create(null),d=0,r=t;d=b.length)t(a[u],n);else{var c=b[u],f=a[u];if(c!==f)if("text"!==c.type||"text"!==f.type)if("text"!==c.type&&"text"!==f.type)if(!c.renderer==!f.renderer){var h=f.attrs.key;if(h&&h in s){var p=s[h];p.vNode!==c&&(r.ArrayExt.move(b,b.indexOf(p.vNode,u+1),u),n.insertBefore(p.element,v),c=p.vNode,v=p.element)}if(c!==f){var m=c.attrs.key;m&&m!==h?(r.ArrayExt.insert(b,u,f),t(f,n,v)):c.tag===f.tag?(o(v,c.attrs,f.attrs),f.renderer?f.renderer.render(v,{attrs:f.attrs,children:f.children}):i(v,c.children,f.children),v=v.nextSibling):(r.ArrayExt.insert(b,u,f),t(f,n,v))}else v=v.nextSibling}else r.ArrayExt.insert(b,u,f),t(f,n,v);else r.ArrayExt.insert(b,u,f),t(f,n,v);else v.textContent!==f.content&&(v.textContent=f.content),v=v.nextSibling;else v=v.nextSibling}e(n,b,l,!0)}};var n={key:!0,className:!0,htmlFor:!0,dataset:!0,style:!0};function d(i,t){for(var e in t)e in n||("on"===e.substr(0,2)?i[e]=t[e]:i.setAttribute(e,t[e]));void 0!==t.className&&i.setAttribute("class",t.className),void 0!==t.htmlFor&&i.setAttribute("for",t.htmlFor),t.dataset&&function(i,t){for(var e in t)i.setAttribute("data-"+e,t[e])}(i,t.dataset),t.style&&function(i,t){var e,n=i.style;for(e in t)n[e]=t[e]}(i,t.style)}function o(i,t,e){if(t!==e){var d;for(d in t)d in n||d in e||("on"===d.substr(0,2)?i[d]=null:i.removeAttribute(d));for(d in e)d in n||t[d]===e[d]||("on"===d.substr(0,2)?i[d]=e[d]:i.setAttribute(d,e[d]));t.className!==e.className&&(void 0!==e.className?i.setAttribute("class",e.className):i.removeAttribute("class")),t.htmlFor!==e.htmlFor&&(void 0!==e.htmlFor?i.setAttribute("for",e.htmlFor):i.removeAttribute("for")),t.dataset!==e.dataset&&function(i,t,e){for(var n in t)n in e||i.removeAttribute("data-"+n);for(var d in e)t[d]!==e[d]&&i.setAttribute("data-"+d,e[d])}(i,t.dataset||{},e.dataset||{}),t.style!==e.style&&function(i,t,e){var n,d=i.style;for(n in t)n in e||(d[n]="");for(n in e)t[n]!==e[n]&&(d[n]=e[n])}(i,t.style||{},e.style||{})}}}(d||(d={}))}}]); +//# sourceMappingURL=5437.31236f7.js.map \ No newline at end of file diff --git a/_static/build/5437.31236f7.js.map b/_static/build/5437.31236f7.js.map new file mode 100644 index 0000000..9cbb031 --- /dev/null +++ b/_static/build/5437.31236f7.js.map @@ -0,0 +1 @@ +{"version":3,"file":"5437.31236f7.js","mappings":"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","sources":["webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@lumino/virtualdom/src/index.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@lumino/virtualdom/node_modules/tslib/tslib.es6.js"],"sourcesContent":["// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n/*-----------------------------------------------------------------------------\n| Copyright (c) 2014-2017, PhosphorJS Contributors\n|\n| Distributed under the terms of the BSD 3-Clause License.\n|\n| The full license is in the file LICENSE, distributed with this software.\n|----------------------------------------------------------------------------*/\nimport { ArrayExt } from '@lumino/algorithm';\n\n/**\n * The names of the supported HTML5 DOM element attributes.\n *\n * This list is not all-encompassing, rather it attempts to define the\n * attribute names which are relevant for use in a virtual DOM context.\n * If a standardized or widely supported name is missing, please open\n * an issue to have it added.\n *\n * The attribute names were collected from the following sources:\n * - https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes\n * - https://www.w3.org/TR/html5/index.html#attributes-1\n * - https://html.spec.whatwg.org/multipage/indices.html#attributes-3\n */\nexport type ElementAttrNames =\n | 'abbr'\n | 'accept'\n | 'accept-charset'\n | 'accesskey'\n | 'action'\n | 'allowfullscreen'\n | 'alt'\n | 'autocomplete'\n | 'autofocus'\n | 'autoplay'\n | 'autosave'\n | 'checked'\n | 'cite'\n | 'cols'\n | 'colspan'\n | 'contenteditable'\n | 'controls'\n | 'coords'\n | 'crossorigin'\n | 'data'\n | 'datetime'\n | 'default'\n | 'dir'\n | 'dirname'\n | 'disabled'\n | 'download'\n | 'draggable'\n | 'dropzone'\n | 'enctype'\n | 'form'\n | 'formaction'\n | 'formenctype'\n | 'formmethod'\n | 'formnovalidate'\n | 'formtarget'\n | 'headers'\n | 'height'\n | 'hidden'\n | 'high'\n | 'href'\n | 'hreflang'\n | 'id'\n | 'inputmode'\n | 'integrity'\n | 'ismap'\n | 'kind'\n | 'label'\n | 'lang'\n | 'list'\n | 'loop'\n | 'low'\n | 'max'\n | 'maxlength'\n | 'media'\n | 'mediagroup'\n | 'method'\n | 'min'\n | 'minlength'\n | 'multiple'\n | 'muted'\n | 'name'\n | 'novalidate'\n | 'optimum'\n | 'pattern'\n | 'placeholder'\n | 'poster'\n | 'preload'\n | 'readonly'\n | 'rel'\n | 'required'\n | 'reversed'\n | 'rows'\n | 'rowspan'\n | 'sandbox'\n | 'scope'\n | 'selected'\n | 'shape'\n | 'size'\n | 'sizes'\n | 'span'\n | 'spellcheck'\n | 'src'\n | 'srcdoc'\n | 'srclang'\n | 'srcset'\n | 'start'\n | 'step'\n | 'tabindex'\n | 'target'\n | 'title'\n | 'type'\n | 'typemustmatch'\n | 'usemap'\n | 'value'\n | 'width'\n | 'wrap';\n\n/**\n * The names of ARIA attributes for HTML elements.\n *\n * The attribute names are collected from\n * https://www.w3.org/TR/html5/infrastructure.html#element-attrdef-aria-role\n */\nexport type ARIAAttrNames =\n | 'aria-activedescendant'\n | 'aria-atomic'\n | 'aria-autocomplete'\n | 'aria-busy'\n | 'aria-checked'\n | 'aria-colcount'\n | 'aria-colindex'\n | 'aria-colspan'\n | 'aria-controls'\n | 'aria-current'\n | 'aria-describedby'\n | 'aria-details'\n | 'aria-dialog'\n | 'aria-disabled'\n | 'aria-dropeffect'\n | 'aria-errormessage'\n | 'aria-expanded'\n | 'aria-flowto'\n | 'aria-grabbed'\n | 'aria-haspopup'\n | 'aria-hidden'\n | 'aria-invalid'\n | 'aria-keyshortcuts'\n | 'aria-label'\n | 'aria-labelledby'\n | 'aria-level'\n | 'aria-live'\n | 'aria-multiline'\n | 'aria-multiselectable'\n | 'aria-orientation'\n | 'aria-owns'\n | 'aria-placeholder'\n | 'aria-posinset'\n | 'aria-pressed'\n | 'aria-readonly'\n | 'aria-relevant'\n | 'aria-required'\n | 'aria-roledescription'\n | 'aria-rowcount'\n | 'aria-rowindex'\n | 'aria-rowspan'\n | 'aria-selected'\n | 'aria-setsize'\n | 'aria-sort'\n | 'aria-valuemax'\n | 'aria-valuemin'\n | 'aria-valuenow'\n | 'aria-valuetext'\n | 'role';\n\n/**\n * The names of the supported HTML5 CSS property names.\n *\n * If a standardized or widely supported name is missing, please open\n * an issue to have it added.\n *\n * The property names were collected from the following sources:\n * - TypeScript's `lib.dom.d.ts` file\n */\nexport type CSSPropertyNames =\n | 'alignContent'\n | 'alignItems'\n | 'alignSelf'\n | 'alignmentBaseline'\n | 'animation'\n | 'animationDelay'\n | 'animationDirection'\n | 'animationDuration'\n | 'animationFillMode'\n | 'animationIterationCount'\n | 'animationName'\n | 'animationPlayState'\n | 'animationTimingFunction'\n | 'backfaceVisibility'\n | 'background'\n | 'backgroundAttachment'\n | 'backgroundClip'\n | 'backgroundColor'\n | 'backgroundImage'\n | 'backgroundOrigin'\n | 'backgroundPosition'\n | 'backgroundPositionX'\n | 'backgroundPositionY'\n | 'backgroundRepeat'\n | 'backgroundSize'\n | 'baselineShift'\n | 'border'\n | 'borderBottom'\n | 'borderBottomColor'\n | 'borderBottomLeftRadius'\n | 'borderBottomRightRadius'\n | 'borderBottomStyle'\n | 'borderBottomWidth'\n | 'borderCollapse'\n | 'borderColor'\n | 'borderImage'\n | 'borderImageOutset'\n | 'borderImageRepeat'\n | 'borderImageSlice'\n | 'borderImageSource'\n | 'borderImageWidth'\n | 'borderLeft'\n | 'borderLeftColor'\n | 'borderLeftStyle'\n | 'borderLeftWidth'\n | 'borderRadius'\n | 'borderRight'\n | 'borderRightColor'\n | 'borderRightStyle'\n | 'borderRightWidth'\n | 'borderSpacing'\n | 'borderStyle'\n | 'borderTop'\n | 'borderTopColor'\n | 'borderTopLeftRadius'\n | 'borderTopRightRadius'\n | 'borderTopStyle'\n | 'borderTopWidth'\n | 'borderWidth'\n | 'bottom'\n | 'boxShadow'\n | 'boxSizing'\n | 'breakAfter'\n | 'breakBefore'\n | 'breakInside'\n | 'captionSide'\n | 'clear'\n | 'clip'\n | 'clipPath'\n | 'clipRule'\n | 'color'\n | 'colorInterpolationFilters'\n | 'columnCount'\n | 'columnFill'\n | 'columnGap'\n | 'columnRule'\n | 'columnRuleColor'\n | 'columnRuleStyle'\n | 'columnRuleWidth'\n | 'columnSpan'\n | 'columnWidth'\n | 'columns'\n | 'content'\n | 'counterIncrement'\n | 'counterReset'\n | 'cssFloat'\n | 'cssText'\n | 'cursor'\n | 'direction'\n | 'display'\n | 'dominantBaseline'\n | 'emptyCells'\n | 'enableBackground'\n | 'fill'\n | 'fillOpacity'\n | 'fillRule'\n | 'filter'\n | 'flex'\n | 'flexBasis'\n | 'flexDirection'\n | 'flexFlow'\n | 'flexGrow'\n | 'flexShrink'\n | 'flexWrap'\n | 'floodColor'\n | 'floodOpacity'\n | 'font'\n | 'fontFamily'\n | 'fontFeatureSettings'\n | 'fontSize'\n | 'fontSizeAdjust'\n | 'fontStretch'\n | 'fontStyle'\n | 'fontVariant'\n | 'fontWeight'\n | 'glyphOrientationHorizontal'\n | 'glyphOrientationVertical'\n | 'height'\n | 'imeMode'\n | 'justifyContent'\n | 'kerning'\n | 'left'\n | 'letterSpacing'\n | 'lightingColor'\n | 'lineHeight'\n | 'listStyle'\n | 'listStyleImage'\n | 'listStylePosition'\n | 'listStyleType'\n | 'margin'\n | 'marginBottom'\n | 'marginLeft'\n | 'marginRight'\n | 'marginTop'\n | 'marker'\n | 'markerEnd'\n | 'markerMid'\n | 'markerStart'\n | 'mask'\n | 'maxHeight'\n | 'maxWidth'\n | 'minHeight'\n | 'minWidth'\n | 'msContentZoomChaining'\n | 'msContentZoomLimit'\n | 'msContentZoomLimitMax'\n | 'msContentZoomLimitMin'\n | 'msContentZoomSnap'\n | 'msContentZoomSnapPoints'\n | 'msContentZoomSnapType'\n | 'msContentZooming'\n | 'msFlowFrom'\n | 'msFlowInto'\n | 'msFontFeatureSettings'\n | 'msGridColumn'\n | 'msGridColumnAlign'\n | 'msGridColumnSpan'\n | 'msGridColumns'\n | 'msGridRow'\n | 'msGridRowAlign'\n | 'msGridRowSpan'\n | 'msGridRows'\n | 'msHighContrastAdjust'\n | 'msHyphenateLimitChars'\n | 'msHyphenateLimitLines'\n | 'msHyphenateLimitZone'\n | 'msHyphens'\n | 'msImeAlign'\n | 'msOverflowStyle'\n | 'msScrollChaining'\n | 'msScrollLimit'\n | 'msScrollLimitXMax'\n | 'msScrollLimitXMin'\n | 'msScrollLimitYMax'\n | 'msScrollLimitYMin'\n | 'msScrollRails'\n | 'msScrollSnapPointsX'\n | 'msScrollSnapPointsY'\n | 'msScrollSnapType'\n | 'msScrollSnapX'\n | 'msScrollSnapY'\n | 'msScrollTranslation'\n | 'msTextCombineHorizontal'\n | 'msTextSizeAdjust'\n | 'msTouchAction'\n | 'msTouchSelect'\n | 'msUserSelect'\n | 'msWrapFlow'\n | 'msWrapMargin'\n | 'msWrapThrough'\n | 'opacity'\n | 'order'\n | 'orphans'\n | 'outline'\n | 'outlineColor'\n | 'outlineStyle'\n | 'outlineWidth'\n | 'overflow'\n | 'overflowX'\n | 'overflowY'\n | 'padding'\n | 'paddingBottom'\n | 'paddingLeft'\n | 'paddingRight'\n | 'paddingTop'\n | 'pageBreakAfter'\n | 'pageBreakBefore'\n | 'pageBreakInside'\n | 'perspective'\n | 'perspectiveOrigin'\n | 'pointerEvents'\n | 'position'\n | 'quotes'\n | 'resize'\n | 'right'\n | 'rubyAlign'\n | 'rubyOverhang'\n | 'rubyPosition'\n | 'stopColor'\n | 'stopOpacity'\n | 'stroke'\n | 'strokeDasharray'\n | 'strokeDashoffset'\n | 'strokeLinecap'\n | 'strokeLinejoin'\n | 'strokeMiterlimit'\n | 'strokeOpacity'\n | 'strokeWidth'\n | 'tableLayout'\n | 'textAlign'\n | 'textAlignLast'\n | 'textAnchor'\n | 'textDecoration'\n | 'textIndent'\n | 'textJustify'\n | 'textKashida'\n | 'textKashidaSpace'\n | 'textOverflow'\n | 'textShadow'\n | 'textTransform'\n | 'textUnderlinePosition'\n | 'top'\n | 'touchAction'\n | 'transform'\n | 'transformOrigin'\n | 'transformStyle'\n | 'transition'\n | 'transitionDelay'\n | 'transitionDuration'\n | 'transitionProperty'\n | 'transitionTimingFunction'\n | 'unicodeBidi'\n | 'verticalAlign'\n | 'visibility'\n | 'webkitAlignContent'\n | 'webkitAlignItems'\n | 'webkitAlignSelf'\n | 'webkitAnimation'\n | 'webkitAnimationDelay'\n | 'webkitAnimationDirection'\n | 'webkitAnimationDuration'\n | 'webkitAnimationFillMode'\n | 'webkitAnimationIterationCount'\n | 'webkitAnimationName'\n | 'webkitAnimationPlayState'\n | 'webkitAnimationTimingFunction'\n | 'webkitAppearance'\n | 'webkitBackfaceVisibility'\n | 'webkitBackgroundClip'\n | 'webkitBackgroundOrigin'\n | 'webkitBackgroundSize'\n | 'webkitBorderBottomLeftRadius'\n | 'webkitBorderBottomRightRadius'\n | 'webkitBorderImage'\n | 'webkitBorderRadius'\n | 'webkitBorderTopLeftRadius'\n | 'webkitBorderTopRightRadius'\n | 'webkitBoxAlign'\n | 'webkitBoxDirection'\n | 'webkitBoxFlex'\n | 'webkitBoxOrdinalGroup'\n | 'webkitBoxOrient'\n | 'webkitBoxPack'\n | 'webkitBoxSizing'\n | 'webkitColumnBreakAfter'\n | 'webkitColumnBreakBefore'\n | 'webkitColumnBreakInside'\n | 'webkitColumnCount'\n | 'webkitColumnGap'\n | 'webkitColumnRule'\n | 'webkitColumnRuleColor'\n | 'webkitColumnRuleStyle'\n | 'webkitColumnRuleWidth'\n | 'webkitColumnSpan'\n | 'webkitColumnWidth'\n | 'webkitColumns'\n | 'webkitFilter'\n | 'webkitFlex'\n | 'webkitFlexBasis'\n | 'webkitFlexDirection'\n | 'webkitFlexFlow'\n | 'webkitFlexGrow'\n | 'webkitFlexShrink'\n | 'webkitFlexWrap'\n | 'webkitJustifyContent'\n | 'webkitOrder'\n | 'webkitPerspective'\n | 'webkitPerspectiveOrigin'\n | 'webkitTapHighlightColor'\n | 'webkitTextFillColor'\n | 'webkitTextSizeAdjust'\n | 'webkitTransform'\n | 'webkitTransformOrigin'\n | 'webkitTransformStyle'\n | 'webkitTransition'\n | 'webkitTransitionDelay'\n | 'webkitTransitionDuration'\n | 'webkitTransitionProperty'\n | 'webkitTransitionTimingFunction'\n | 'webkitUserModify'\n | 'webkitUserSelect'\n | 'webkitWritingMode'\n | 'whiteSpace'\n | 'widows'\n | 'width'\n | 'wordBreak'\n | 'wordSpacing'\n | 'wordWrap'\n | 'writingMode'\n | 'zIndex'\n | 'zoom';\n\n/**\n * A mapping of inline event name to event object type.\n *\n * This mapping is used to create the event listener properties for\n * the virtual DOM element attributes object. If a standardized or\n * widely supported name is missing, please open an issue to have it\n * added.\n *\n * The event names were collected from the following sources:\n * - TypeScript's `lib.dom.d.ts` file\n * - https://www.w3.org/TR/html5/index.html#attributes-1\n * - https://html.spec.whatwg.org/multipage/webappapis.html#idl-definitions\n */\nexport type ElementEventMap = {\n onabort: UIEvent;\n onauxclick: MouseEvent;\n onblur: FocusEvent;\n oncanplay: Event;\n oncanplaythrough: Event;\n onchange: Event;\n onclick: MouseEvent;\n oncontextmenu: PointerEvent;\n oncopy: ClipboardEvent;\n oncuechange: Event;\n oncut: ClipboardEvent;\n ondblclick: MouseEvent;\n ondrag: DragEvent;\n ondragend: DragEvent;\n ondragenter: DragEvent;\n ondragexit: DragEvent;\n ondragleave: DragEvent;\n ondragover: DragEvent;\n ondragstart: DragEvent;\n ondrop: DragEvent;\n ondurationchange: Event;\n onemptied: Event;\n onended: ErrorEvent;\n onerror: ErrorEvent;\n onfocus: FocusEvent;\n oninput: Event;\n oninvalid: Event;\n onkeydown: KeyboardEvent;\n onkeypress: KeyboardEvent;\n onkeyup: KeyboardEvent;\n onload: Event;\n onloadeddata: Event;\n onloadedmetadata: Event;\n onloadend: Event;\n onloadstart: Event;\n onmousedown: MouseEvent;\n onmouseenter: MouseEvent;\n onmouseleave: MouseEvent;\n onmousemove: MouseEvent;\n onmouseout: MouseEvent;\n onmouseover: MouseEvent;\n onmouseup: MouseEvent;\n onmousewheel: WheelEvent;\n onpaste: ClipboardEvent;\n onpause: Event;\n onplay: Event;\n onplaying: Event;\n onpointercancel: PointerEvent;\n onpointerdown: PointerEvent;\n onpointerenter: PointerEvent;\n onpointerleave: PointerEvent;\n onpointermove: PointerEvent;\n onpointerout: PointerEvent;\n onpointerover: PointerEvent;\n onpointerup: PointerEvent;\n onprogress: ProgressEvent;\n onratechange: Event;\n onreset: Event;\n onscroll: UIEvent;\n onseeked: Event;\n onseeking: Event;\n onselect: UIEvent;\n onselectstart: Event;\n onstalled: Event;\n onsubmit: Event;\n onsuspend: Event;\n ontimeupdate: Event;\n onvolumechange: Event;\n onwaiting: Event;\n};\n\n/**\n * An object which represents a dataset for a virtual DOM element.\n *\n * The names of the dataset properties will be automatically prefixed\n * with `data-` before being added to the node, e.g. `{ thing: '12' }`\n * will be rendered as `data-thing='12'` in the DOM element.\n *\n * Dataset property names should not contain spaces.\n */\nexport type ElementDataset = {\n readonly [name: string]: string;\n};\n\n/**\n * The inline style for for a virtual DOM element.\n *\n * Style attributes use the JS camel-cased property names instead of\n * the CSS hyphenated names for performance and security.\n */\nexport type ElementInlineStyle = {\n readonly [T in CSSPropertyNames]?: string;\n};\n\n/**\n * The ARIA attributes for a virtual element node.\n *\n * These are the attributes which are applied to a real DOM element via\n * `element.setAttribute()`. The supported attribute names are defined\n * by the `ARIAAttrNames` type.\n */\nexport type ElementARIAAttrs = {\n readonly [T in ARIAAttrNames]?: string;\n};\n\n/**\n * The base attributes for a virtual element node.\n *\n * These are the attributes which are applied to a real DOM element via\n * `element.setAttribute()`. The supported attribute names are defined\n * by the `ElementAttrNames` type.\n *\n * Node attributes are specified using the lower-case HTML name instead\n * of the camel-case JS name due to browser inconsistencies in handling\n * the JS versions.\n */\nexport type ElementBaseAttrs = {\n readonly [T in ElementAttrNames]?: string;\n};\n\n/**\n * The inline event listener attributes for a virtual element node.\n *\n * The supported listeners are defined by the `ElementEventMap` type.\n */\nexport type ElementEventAttrs = {\n readonly [T in keyof ElementEventMap]?: (\n this: HTMLElement,\n event: ElementEventMap[T]\n ) => any;\n};\n\n/**\n * The special-cased attributes for a virtual element node.\n */\nexport type ElementSpecialAttrs = {\n /**\n * The key id for the virtual element node.\n *\n * If a node is given a key id, the generated DOM node will not be\n * recreated during a rendering update if it only moves among its\n * siblings in the render tree.\n *\n * In general, reordering child nodes will cause the nodes to be\n * completely re-rendered. Keys allow this to be optimized away.\n *\n * If a key is provided, it must be unique among sibling nodes.\n */\n readonly key?: string;\n\n /**\n * The JS-safe name for the HTML `class` attribute.\n */\n readonly className?: string;\n\n /**\n * The JS-safe name for the HTML `for` attribute.\n */\n readonly htmlFor?: string;\n\n /**\n * The dataset for the rendered DOM element.\n */\n readonly dataset?: ElementDataset;\n\n /**\n * The inline style for the rendered DOM element.\n */\n readonly style?: ElementInlineStyle;\n};\n\n/**\n * The full set of attributes supported by a virtual element node.\n *\n * This is the combination of the base element attributes, the the ARIA attributes,\n * the inline element event listeners, and the special element attributes.\n */\nexport type ElementAttrs = ElementBaseAttrs &\n ElementARIAAttrs &\n ElementEventAttrs &\n ElementSpecialAttrs;\n\n/**\n * A virtual node which represents plain text content.\n *\n * #### Notes\n * User code will not typically create a `VirtualText` node directly.\n * Instead, the `h()` function will be used to create an element tree.\n */\nexport class VirtualText {\n /**\n * The text content for the node.\n */\n readonly content: string;\n\n /**\n * The type of the node.\n *\n * This value can be used as a type guard for discriminating the\n * `VirtualNode` union type.\n */\n readonly type: 'text' = 'text';\n\n /**\n * Construct a new virtual text node.\n *\n * @param content - The text content for the node.\n */\n constructor(content: string) {\n this.content = content;\n }\n}\n\n/**\n * A virtual node which represents an HTML element.\n *\n * #### Notes\n * User code will not typically create a `VirtualElement` node directly.\n * Instead, the `h()` function will be used to create an element tree.\n */\nexport class VirtualElement {\n /**\n * The tag name for the element.\n */\n readonly tag: string;\n\n /**\n * The attributes for the element.\n */\n readonly attrs: ElementAttrs;\n\n /**\n * The children for the element.\n */\n readonly children: ReadonlyArray;\n\n /**\n * An optional custom renderer for the element's children. If set, on render\n * this element's DOM node and it's attrs will be created/updated as normal.\n * At that point the DOM node is handed off to the renderer.\n */\n readonly renderer: VirtualElement.IRenderer | undefined;\n\n /**\n * The type of the node.\n *\n * This value can be used as a type guard for discriminating the\n * `VirtualNode` union type.\n */\n readonly type: 'element' = 'element';\n\n /**\n * Construct a new virtual element node.\n *\n * @param tag - The element tag name.\n *\n * @param attrs - The element attributes.\n *\n * @param children - The element children.\n *\n * @param renderer - An optional custom renderer for the element.\n */\n constructor(\n tag: string,\n attrs: ElementAttrs,\n children: ReadonlyArray,\n renderer?: VirtualElement.IRenderer\n ) {\n this.tag = tag;\n this.attrs = attrs;\n this.children = children;\n\n this.renderer = renderer;\n }\n}\n\nexport namespace VirtualElement {\n /**\n * A type describing a custom element renderer\n */\n export type IRenderer = {\n /**\n * Customize how a DOM node is rendered. If .renderer is set on a given\n * instance of VirtualElement, this function will be called every time\n * that VirtualElement is rendered.\n *\n * @param host - The actual DOM node created for a VirtualElement during\n * rendering.\n *\n * On render, host is created and its attrs are set/updated via\n * the standard routines in updateContent. host is then handed off to this\n * function.\n *\n * The render function is free to modify host. The only restriction is\n * is that render should not modify any attributes set by external\n * routines (ie updateContent), as this may cause thrashing when the\n * virtual element is next rendered.\n *\n * @param options - Will be populated with the .attrs and .children fields\n * set on the VirtualElement being rendered.\n */\n render: (\n host: HTMLElement,\n options?: { attrs?: ElementAttrs; children?: ReadonlyArray }\n ) => void;\n\n /**\n * Optional cleanup function for custom renderers. If the .renderer field\n * of a VirtualELement is set, and if .renderer.unrender is defined, when\n * the element is changed or removed its corresponding DOM element will be\n * passed to this function immediately before it is removed from the DOM.\n *\n * unrender is not required for for simple renderers, such as those\n * implemented using `document.createElement()`. However, for certain\n * rendering techniques explicit cleanup is required in order to avoid\n * resource leaks.\n *\n * For example, if render calls `ReactDOM.render(..., host)`, then\n * there has to also be a corresponding implementation of unrender that\n * calls `ReactDOM.unmountComponentAtNode(host)` in order to prevent\n * a memory leak.\n *\n * @param host - the DOM element to be removed.\n *\n * @param options - Will be populated with the .attrs and .children fields\n * set on the VirtualElement being unrendered.\n */\n unrender?: (\n host: HTMLElement,\n options?: { attrs?: ElementAttrs; children?: ReadonlyArray }\n ) => void;\n };\n}\n\n/**\n * DEPRECATED - use VirtualElement with a defined renderer param instead.\n * This class is provided as a backwards compatibility shim\n *\n * A \"pass thru\" virtual node whose children are managed by a render and an\n * unrender callback. The intent of this flavor of virtual node is to make\n * it easy to blend other kinds of virtualdom (eg React) into Phosphor's\n * virtualdom.\n *\n * #### Notes\n * User code will not typically create a `VirtualElementPass` node directly.\n * Instead, the `hpass()` function will be used to create an element tree.\n */\nexport class VirtualElementPass extends VirtualElement {\n /**\n * DEPRECATED - use VirtualElement with a defined renderer param instead\n *\n * Construct a new virtual element pass thru node.\n *\n * @param tag - the tag of the parent element of this node. Once the parent\n * element is rendered, it will be passed as an argument to\n * renderer.render\n *\n * @param attrs - attributes that will assigned to the\n * parent element\n *\n * @param renderer - an object with render and unrender\n * functions, each of which should take a single argument of type\n * HTMLElement and return nothing. If null, the parent element\n * will be rendered barren without any children.\n */\n constructor(\n tag: string,\n attrs: ElementAttrs,\n renderer: VirtualElementPass.IRenderer | null\n ) {\n super(tag, attrs, [], renderer || undefined);\n }\n}\n\nexport namespace VirtualElementPass {\n /**\n * DEPRECATED - use VirtualElement.IRenderer instead\n *\n * A type describing a custom element renderer\n */\n export type IRenderer = VirtualElement.IRenderer;\n}\n\n/**\n * A type alias for a general virtual node.\n */\nexport type VirtualNode = VirtualElement | VirtualText;\n\n/**\n * Create a new virtual element node.\n *\n * @param tag - The tag name for the element.\n *\n * @param attrs - The attributes for the element, if any.\n *\n * @param renderer - An optional custom renderer for the element.\n *\n * @param children - The children for the element, if any.\n *\n * @returns A new virtual element node for the given parameters.\n *\n * #### Notes\n * The children may be string literals, other virtual nodes, `null`, or\n * an array of those things. Strings are converted into text nodes, and\n * arrays are inlined as if the array contents were given as positional\n * arguments. This makes it simple to build up an array of children by\n * any desired means. `null` child values are simply ignored.\n *\n * A bound function for each HTML tag name is available as a static\n * function attached to the `h()` function. E.g. `h('div', ...)` is\n * equivalent to `h.div(...)`.\n */\nexport function h(tag: string, ...children: h.Child[]): VirtualElement;\nexport function h(\n tag: string,\n attrs: ElementAttrs,\n ...children: h.Child[]\n): VirtualElement;\nexport function h(\n tag: string,\n renderer: VirtualElement.IRenderer,\n ...children: h.Child[]\n): VirtualElement;\nexport function h(\n tag: string,\n attrs: ElementAttrs,\n renderer: VirtualElement.IRenderer,\n ...children: h.Child[]\n): VirtualElement;\nexport function h(tag: string): VirtualElement {\n let attrs: ElementAttrs = {};\n let renderer: VirtualElement.IRenderer | undefined;\n let children: VirtualNode[] = [];\n for (let i = 1, n = arguments.length; i < n; ++i) {\n // eslint-disable-next-line prefer-rest-params\n let arg = arguments[i];\n if (typeof arg === 'string') {\n children.push(new VirtualText(arg));\n } else if (arg instanceof VirtualText) {\n children.push(arg);\n } else if (arg instanceof VirtualElement) {\n children.push(arg);\n } else if (arg instanceof Array) {\n extend(children, arg);\n } else if ((i === 1 || i === 2) && arg && typeof arg === 'object') {\n if ('render' in arg) {\n renderer = arg;\n } else {\n attrs = arg;\n }\n }\n }\n return new VirtualElement(tag, attrs, children, renderer);\n\n function extend(array: VirtualNode[], values: h.Child[]): void {\n for (let child of values) {\n if (typeof child === 'string') {\n array.push(new VirtualText(child));\n } else if (child instanceof VirtualText) {\n array.push(child);\n } else if (child instanceof VirtualElement) {\n array.push(child);\n }\n }\n }\n}\n\n/**\n * The namespace for the `h` function statics.\n */\nexport namespace h {\n /**\n * A type alias for the supported child argument types.\n */\n export type Child =\n | (string | VirtualNode | null)\n | Array;\n\n /**\n * A bound factory function for a specific `h()` tag.\n */\n export interface IFactory {\n (...children: Child[]): VirtualElement;\n (attrs: ElementAttrs, ...children: Child[]): VirtualElement;\n (\n renderer: VirtualElement.IRenderer,\n ...children: h.Child[]\n ): VirtualElement;\n (\n attrs: ElementAttrs,\n renderer: VirtualElement.IRenderer,\n ...children: h.Child[]\n ): VirtualElement;\n }\n\n export const a: IFactory = h.bind(undefined, 'a');\n export const abbr: IFactory = h.bind(undefined, 'abbr');\n export const address: IFactory = h.bind(undefined, 'address');\n export const area: IFactory = h.bind(undefined, 'area');\n export const article: IFactory = h.bind(undefined, 'article');\n export const aside: IFactory = h.bind(undefined, 'aside');\n export const audio: IFactory = h.bind(undefined, 'audio');\n export const b: IFactory = h.bind(undefined, 'b');\n export const bdi: IFactory = h.bind(undefined, 'bdi');\n export const bdo: IFactory = h.bind(undefined, 'bdo');\n export const blockquote: IFactory = h.bind(undefined, 'blockquote');\n export const br: IFactory = h.bind(undefined, 'br');\n export const button: IFactory = h.bind(undefined, 'button');\n export const canvas: IFactory = h.bind(undefined, 'canvas');\n export const caption: IFactory = h.bind(undefined, 'caption');\n export const cite: IFactory = h.bind(undefined, 'cite');\n export const code: IFactory = h.bind(undefined, 'code');\n export const col: IFactory = h.bind(undefined, 'col');\n export const colgroup: IFactory = h.bind(undefined, 'colgroup');\n export const data: IFactory = h.bind(undefined, 'data');\n export const datalist: IFactory = h.bind(undefined, 'datalist');\n export const dd: IFactory = h.bind(undefined, 'dd');\n export const del: IFactory = h.bind(undefined, 'del');\n export const dfn: IFactory = h.bind(undefined, 'dfn');\n export const div: IFactory = h.bind(undefined, 'div');\n export const dl: IFactory = h.bind(undefined, 'dl');\n export const dt: IFactory = h.bind(undefined, 'dt');\n export const em: IFactory = h.bind(undefined, 'em');\n export const embed: IFactory = h.bind(undefined, 'embed');\n export const fieldset: IFactory = h.bind(undefined, 'fieldset');\n export const figcaption: IFactory = h.bind(undefined, 'figcaption');\n export const figure: IFactory = h.bind(undefined, 'figure');\n export const footer: IFactory = h.bind(undefined, 'footer');\n export const form: IFactory = h.bind(undefined, 'form');\n export const h1: IFactory = h.bind(undefined, 'h1');\n export const h2: IFactory = h.bind(undefined, 'h2');\n export const h3: IFactory = h.bind(undefined, 'h3');\n export const h4: IFactory = h.bind(undefined, 'h4');\n export const h5: IFactory = h.bind(undefined, 'h5');\n export const h6: IFactory = h.bind(undefined, 'h6');\n export const header: IFactory = h.bind(undefined, 'header');\n export const hr: IFactory = h.bind(undefined, 'hr');\n export const i: IFactory = h.bind(undefined, 'i');\n export const iframe: IFactory = h.bind(undefined, 'iframe');\n export const img: IFactory = h.bind(undefined, 'img');\n export const input: IFactory = h.bind(undefined, 'input');\n export const ins: IFactory = h.bind(undefined, 'ins');\n export const kbd: IFactory = h.bind(undefined, 'kbd');\n export const label: IFactory = h.bind(undefined, 'label');\n export const legend: IFactory = h.bind(undefined, 'legend');\n export const li: IFactory = h.bind(undefined, 'li');\n export const main: IFactory = h.bind(undefined, 'main');\n export const map: IFactory = h.bind(undefined, 'map');\n export const mark: IFactory = h.bind(undefined, 'mark');\n export const meter: IFactory = h.bind(undefined, 'meter');\n export const nav: IFactory = h.bind(undefined, 'nav');\n export const noscript: IFactory = h.bind(undefined, 'noscript');\n export const object: IFactory = h.bind(undefined, 'object');\n export const ol: IFactory = h.bind(undefined, 'ol');\n export const optgroup: IFactory = h.bind(undefined, 'optgroup');\n export const option: IFactory = h.bind(undefined, 'option');\n export const output: IFactory = h.bind(undefined, 'output');\n export const p: IFactory = h.bind(undefined, 'p');\n export const param: IFactory = h.bind(undefined, 'param');\n export const pre: IFactory = h.bind(undefined, 'pre');\n export const progress: IFactory = h.bind(undefined, 'progress');\n export const q: IFactory = h.bind(undefined, 'q');\n export const rp: IFactory = h.bind(undefined, 'rp');\n export const rt: IFactory = h.bind(undefined, 'rt');\n export const ruby: IFactory = h.bind(undefined, 'ruby');\n export const s: IFactory = h.bind(undefined, 's');\n export const samp: IFactory = h.bind(undefined, 'samp');\n export const section: IFactory = h.bind(undefined, 'section');\n export const select: IFactory = h.bind(undefined, 'select');\n export const small: IFactory = h.bind(undefined, 'small');\n export const source: IFactory = h.bind(undefined, 'source');\n export const span: IFactory = h.bind(undefined, 'span');\n export const strong: IFactory = h.bind(undefined, 'strong');\n export const sub: IFactory = h.bind(undefined, 'sub');\n export const summary: IFactory = h.bind(undefined, 'summary');\n export const sup: IFactory = h.bind(undefined, 'sup');\n export const table: IFactory = h.bind(undefined, 'table');\n export const tbody: IFactory = h.bind(undefined, 'tbody');\n export const td: IFactory = h.bind(undefined, 'td');\n export const textarea: IFactory = h.bind(undefined, 'textarea');\n export const tfoot: IFactory = h.bind(undefined, 'tfoot');\n export const th: IFactory = h.bind(undefined, 'th');\n export const thead: IFactory = h.bind(undefined, 'thead');\n export const time: IFactory = h.bind(undefined, 'time');\n export const title: IFactory = h.bind(undefined, 'title');\n export const tr: IFactory = h.bind(undefined, 'tr');\n export const track: IFactory = h.bind(undefined, 'track');\n export const u: IFactory = h.bind(undefined, 'u');\n export const ul: IFactory = h.bind(undefined, 'ul');\n export const var_: IFactory = h.bind(undefined, 'var');\n export const video: IFactory = h.bind(undefined, 'video');\n export const wbr: IFactory = h.bind(undefined, 'wbr');\n}\n\n/**\n * DEPRECATED - pass the renderer arg to the h function instead\n *\n * Create a new \"pass thru\" virtual element node.\n *\n * @param tag - The tag name for the parent element.\n *\n * @param attrs - The attributes for the parent element, if any.\n *\n * @param renderer - an object with render and unrender functions, if any.\n *\n * @returns A new \"pass thru\" virtual element node for the given parameters.\n *\n */\nexport function hpass(\n tag: string,\n renderer?: VirtualElementPass.IRenderer\n): VirtualElementPass;\nexport function hpass(\n tag: string,\n attrs: ElementAttrs,\n renderer?: VirtualElementPass.IRenderer\n): VirtualElementPass;\nexport function hpass(tag: string): VirtualElementPass {\n let attrs: ElementAttrs = {};\n let renderer: VirtualElementPass.IRenderer | null = null;\n\n if (arguments.length === 2) {\n // eslint-disable-next-line prefer-rest-params\n const arg = arguments[1];\n\n if ('render' in arg) {\n renderer = arg;\n } else {\n attrs = arg;\n }\n } else if (arguments.length === 3) {\n // eslint-disable-next-line prefer-rest-params\n attrs = arguments[1];\n // eslint-disable-next-line prefer-rest-params\n renderer = arguments[2];\n } else if (arguments.length > 3) {\n throw new Error('hpass() should be called with 1, 2, or 3 arguments');\n }\n\n return new VirtualElementPass(tag, attrs, renderer);\n}\n\n/**\n * The namespace for the virtual DOM rendering functions.\n */\nexport namespace VirtualDOM {\n /**\n * Create a real DOM element from a virtual element node.\n *\n * @param node - The virtual element node to realize.\n *\n * @returns A new DOM element for the given virtual element node.\n *\n * #### Notes\n * This creates a brand new *real* DOM element with a structure which\n * matches the given virtual DOM node.\n *\n * If virtual diffing is desired, use the `render` function instead.\n */\n export function realize(node: VirtualText): Text;\n export function realize(node: VirtualElement): HTMLElement;\n export function realize(node: VirtualNode): HTMLElement | Text {\n return Private.createDOMNode(node);\n }\n\n /**\n * Render virtual DOM content into a host element.\n *\n * @param content - The virtual DOM content to render.\n *\n * @param host - The host element for the rendered content.\n *\n * #### Notes\n * This renders the delta from the previous rendering. It assumes that\n * the content of the host element is not manipulated by external code.\n *\n * Providing `null` content will clear the rendering.\n *\n * Externally modifying the provided content or the host element will\n * result in undefined rendering behavior.\n */\n export function render(\n content: VirtualNode | ReadonlyArray | null,\n host: HTMLElement\n ): void {\n let oldContent = Private.hostMap.get(host) || [];\n let newContent = Private.asContentArray(content);\n Private.hostMap.set(host, newContent);\n Private.updateContent(host, oldContent, newContent);\n }\n}\n\n/**\n * The namespace for the module implementation details.\n */\nnamespace Private {\n /**\n * A weak mapping of host element to virtual DOM content.\n */\n export const hostMap = new WeakMap>();\n\n /**\n * Cast a content value to a content array.\n */\n export function asContentArray(\n value: VirtualNode | ReadonlyArray | null\n ): ReadonlyArray {\n if (!value) {\n return [];\n }\n if (value instanceof Array) {\n return value as ReadonlyArray;\n }\n return [value as VirtualNode];\n }\n\n /**\n * Create a new DOM element for a virtual node.\n */\n export function createDOMNode(node: VirtualText): Text;\n export function createDOMNode(node: VirtualElement): HTMLElement;\n export function createDOMNode(node: VirtualNode): HTMLElement | Text;\n export function createDOMNode(\n node: VirtualNode,\n host: HTMLElement | null\n ): HTMLElement | Text;\n export function createDOMNode(\n node: VirtualNode,\n host: HTMLElement | null,\n before: Node | null\n ): HTMLElement | Text;\n export function createDOMNode(node: VirtualNode): HTMLElement | Text {\n // eslint-disable-next-line prefer-rest-params\n let host = arguments[1] || null;\n // eslint-disable-next-line prefer-rest-params\n const before = arguments[2] || null;\n\n if (host) {\n host.insertBefore(createDOMNode(node), before);\n } else {\n // Create a text node for a virtual text node.\n if (node.type === 'text') {\n return document.createTextNode(node.content);\n }\n\n // Create the HTML element with the specified tag.\n host = document.createElement(node.tag);\n\n // Add the attributes for the new element.\n addAttrs(host, node.attrs);\n\n if (node.renderer) {\n node.renderer.render(host, {\n attrs: node.attrs,\n children: node.children\n });\n return host;\n }\n\n // Recursively populate the element with child content.\n for (let i = 0, n = node.children.length; i < n; ++i) {\n createDOMNode(node.children[i], host);\n }\n }\n\n return host;\n }\n\n /**\n * Update a host element with the delta of the virtual content.\n *\n * This is the core \"diff\" algorithm. There is no explicit \"patch\"\n * phase. The host is patched at each step as the diff progresses.\n */\n export function updateContent(\n host: HTMLElement,\n oldContent: ReadonlyArray,\n newContent: ReadonlyArray\n ): void {\n // Bail early if the content is identical.\n if (oldContent === newContent) {\n return;\n }\n\n // Collect the old keyed elems into a mapping.\n let oldKeyed = collectKeys(host, oldContent);\n\n // Create a copy of the old content which can be modified in-place.\n let oldCopy = oldContent.slice();\n\n // Update the host with the new content. The diff always proceeds\n // forward and never modifies a previously visited index. The old\n // copy array is modified in-place to reflect the changes made to\n // the host children. This causes the stale nodes to be pushed to\n // the end of the host node and removed at the end of the loop.\n let currElem = host.firstChild;\n let newCount = newContent.length;\n for (let i = 0; i < newCount; ++i) {\n // If the old content is exhausted, create a new node.\n if (i >= oldCopy.length) {\n createDOMNode(newContent[i], host);\n continue;\n }\n\n // Lookup the old and new virtual nodes.\n let oldVNode = oldCopy[i];\n let newVNode = newContent[i];\n\n // If both elements are identical, there is nothing to do.\n if (oldVNode === newVNode) {\n currElem = currElem!.nextSibling;\n continue;\n }\n\n // Handle the simplest case of in-place text update first.\n if (oldVNode.type === 'text' && newVNode.type === 'text') {\n // Avoid spurious updates for performance.\n if (currElem!.textContent !== newVNode.content) {\n currElem!.textContent = newVNode.content;\n }\n currElem = currElem!.nextSibling;\n continue;\n }\n\n // If the old or new node is a text node, the other node is now\n // known to be an element node, so create and insert a new node.\n if (oldVNode.type === 'text' || newVNode.type === 'text') {\n ArrayExt.insert(oldCopy, i, newVNode);\n createDOMNode(newVNode, host, currElem);\n continue;\n }\n\n // If the old XOR new node has a custom renderer,\n // create and insert a new node.\n if (!oldVNode.renderer != !newVNode.renderer) {\n ArrayExt.insert(oldCopy, i, newVNode);\n createDOMNode(newVNode, host, currElem);\n continue;\n }\n\n // At this point, both nodes are known to be element nodes.\n\n // If the new elem is keyed, move an old keyed elem to the proper\n // location before proceeding with the diff. The search can start\n // at the current index, since the unmatched old keyed elems are\n // pushed forward in the old copy array.\n let newKey = newVNode.attrs.key;\n if (newKey && newKey in oldKeyed) {\n let pair = oldKeyed[newKey];\n if (pair.vNode !== oldVNode) {\n ArrayExt.move(oldCopy, oldCopy.indexOf(pair.vNode, i + 1), i);\n host.insertBefore(pair.element, currElem);\n oldVNode = pair.vNode;\n currElem = pair.element;\n }\n }\n\n // If both elements are identical, there is nothing to do.\n if (oldVNode === newVNode) {\n currElem = currElem!.nextSibling;\n continue;\n }\n\n // If the old elem is keyed and does not match the new elem key,\n // create a new node. This is necessary since the old keyed elem\n // may be matched at a later point in the diff.\n let oldKey = oldVNode.attrs.key;\n if (oldKey && oldKey !== newKey) {\n ArrayExt.insert(oldCopy, i, newVNode);\n createDOMNode(newVNode, host, currElem);\n continue;\n }\n\n // If the tags are different, create a new node.\n if (oldVNode.tag !== newVNode.tag) {\n ArrayExt.insert(oldCopy, i, newVNode);\n createDOMNode(newVNode, host, currElem);\n continue;\n }\n\n // At this point, the element can be updated in-place.\n\n // Update the element attributes.\n updateAttrs(currElem as HTMLElement, oldVNode.attrs, newVNode.attrs);\n\n // Update the element content.\n if (newVNode.renderer) {\n newVNode.renderer.render(currElem as HTMLElement, {\n attrs: newVNode.attrs,\n children: newVNode.children\n });\n } else {\n updateContent(\n currElem as HTMLElement,\n oldVNode.children,\n newVNode.children\n );\n }\n\n // Step to the next sibling element.\n currElem = currElem!.nextSibling;\n }\n\n // Cleanup stale DOM\n removeContent(host, oldCopy, newCount, true);\n }\n\n /**\n * Handle cleanup of stale vdom and its associated DOM. The host node is\n * traversed recursively (in depth-first order), and any explicit cleanup\n * required by a child node is carried out when it is visited (eg if a node\n * has a custom renderer, the renderer.unrender function will be called).\n * Once the subtree beneath each child of host has been completely visited,\n * that child will be removed via a call to host.removeChild.\n */\n function removeContent(\n host: HTMLElement,\n oldContent: ReadonlyArray,\n newCount: number,\n _sentinel: boolean\n ) {\n // Dispose of the old nodes pushed to the end of the host.\n for (let i = oldContent.length - 1; i >= newCount; --i) {\n const oldNode = oldContent[i];\n const child = (_sentinel\n ? host.lastChild\n : host.childNodes[i]) as HTMLElement;\n\n // recursively clean up host children\n if (oldNode.type === 'text') {\n // pass\n } else if (oldNode.renderer && oldNode.renderer.unrender) {\n oldNode.renderer.unrender(child!, {\n attrs: oldNode.attrs,\n children: oldNode.children\n });\n } else {\n removeContent(child!, oldNode.children, 0, false);\n }\n\n if (_sentinel) {\n host.removeChild(child!);\n }\n }\n }\n\n /**\n * A set of special-cased attribute names.\n */\n const specialAttrs = {\n key: true,\n className: true,\n htmlFor: true,\n dataset: true,\n style: true\n };\n\n /**\n * Add element attributes to a newly created HTML element.\n */\n function addAttrs(element: HTMLElement, attrs: ElementAttrs): void {\n // Add the inline event listeners and node attributes.\n for (let name in attrs) {\n if (name in specialAttrs) {\n continue;\n }\n if (name.substr(0, 2) === 'on') {\n (element as any)[name] = (attrs as any)[name];\n } else {\n element.setAttribute(name, (attrs as any)[name]);\n }\n }\n\n // Add the element `class` attribute.\n if (attrs.className !== undefined) {\n element.setAttribute('class', attrs.className);\n }\n\n // Add the element `for` attribute.\n if (attrs.htmlFor !== undefined) {\n element.setAttribute('for', attrs.htmlFor);\n }\n\n // Add the dataset values.\n if (attrs.dataset) {\n addDataset(element, attrs.dataset);\n }\n\n // Add the inline styles.\n if (attrs.style) {\n addStyle(element, attrs.style);\n }\n }\n\n /**\n * Update the element attributes of an HTML element.\n */\n function updateAttrs(\n element: HTMLElement,\n oldAttrs: ElementAttrs,\n newAttrs: ElementAttrs\n ): void {\n // Do nothing if the attrs are the same object.\n if (oldAttrs === newAttrs) {\n return;\n }\n\n // Setup the strongly typed loop variable.\n let name: keyof ElementAttrs;\n\n // Remove attributes and listeners which no longer exist.\n for (name in oldAttrs) {\n if (name in specialAttrs || name in newAttrs) {\n continue;\n }\n if (name.substr(0, 2) === 'on') {\n (element as any)[name] = null;\n } else {\n element.removeAttribute(name);\n }\n }\n\n // Add and update new and existing attributes and listeners.\n for (name in newAttrs) {\n if (name in specialAttrs || oldAttrs[name] === newAttrs[name]) {\n continue;\n }\n if (name.substr(0, 2) === 'on') {\n (element as any)[name] = (newAttrs as any)[name];\n } else {\n element.setAttribute(name, (newAttrs as any)[name]);\n }\n }\n\n // Update the element `class` attribute.\n if (oldAttrs.className !== newAttrs.className) {\n if (newAttrs.className !== undefined) {\n element.setAttribute('class', newAttrs.className);\n } else {\n element.removeAttribute('class');\n }\n }\n\n // Add the element `for` attribute.\n if (oldAttrs.htmlFor !== newAttrs.htmlFor) {\n if (newAttrs.htmlFor !== undefined) {\n element.setAttribute('for', newAttrs.htmlFor);\n } else {\n element.removeAttribute('for');\n }\n }\n\n // Update the dataset values.\n if (oldAttrs.dataset !== newAttrs.dataset) {\n updateDataset(element, oldAttrs.dataset || {}, newAttrs.dataset || {});\n }\n\n // Update the inline styles.\n if (oldAttrs.style !== newAttrs.style) {\n updateStyle(element, oldAttrs.style || {}, newAttrs.style || {});\n }\n }\n\n /**\n * Add dataset values to a newly created HTML element.\n */\n function addDataset(element: HTMLElement, dataset: ElementDataset): void {\n for (let name in dataset) {\n element.setAttribute(`data-${name}`, dataset[name]);\n }\n }\n\n /**\n * Update the dataset values of an HTML element.\n */\n function updateDataset(\n element: HTMLElement,\n oldDataset: ElementDataset,\n newDataset: ElementDataset\n ): void {\n for (let name in oldDataset) {\n if (!(name in newDataset)) {\n element.removeAttribute(`data-${name}`);\n }\n }\n for (let name in newDataset) {\n if (oldDataset[name] !== newDataset[name]) {\n element.setAttribute(`data-${name}`, newDataset[name]);\n }\n }\n }\n\n /**\n * Add inline style values to a newly created HTML element.\n */\n function addStyle(element: HTMLElement, style: ElementInlineStyle): void {\n let elemStyle = element.style;\n let name: keyof ElementInlineStyle;\n for (name in style) {\n (elemStyle as any)[name] = style[name];\n }\n }\n\n /**\n * Update the inline style values of an HTML element.\n */\n function updateStyle(\n element: HTMLElement,\n oldStyle: ElementInlineStyle,\n newStyle: ElementInlineStyle\n ): void {\n let elemStyle = element.style;\n let name: keyof ElementInlineStyle;\n for (name in oldStyle) {\n if (!(name in newStyle)) {\n (elemStyle as any)[name] = '';\n }\n }\n for (name in newStyle) {\n if (oldStyle[name] !== newStyle[name]) {\n (elemStyle as any)[name] = newStyle[name];\n }\n }\n }\n\n /**\n * A mapping of string key to pair of element and rendered node.\n */\n type KeyMap = {\n [key: string]: { vNode: VirtualElement; element: HTMLElement };\n };\n\n /**\n * Collect a mapping of keyed elements for the host content.\n */\n function collectKeys(\n host: HTMLElement,\n content: ReadonlyArray\n ): KeyMap {\n let node = host.firstChild;\n let keyMap: KeyMap = Object.create(null);\n for (let vNode of content) {\n if (vNode.type === 'element' && vNode.attrs.key) {\n keyMap[vNode.attrs.key] = { vNode, element: node as HTMLElement };\n }\n node = node!.nextSibling;\n }\n return keyMap;\n }\n}\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || from);\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n"],"names":["VirtualDOM","Private","extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","prototype","hasOwnProperty","call","content","type","this","tag","attrs","children","renderer","undefined","TypeError","String","__","constructor","create","VirtualElement","h","i","n","arguments","length","arg","push","VirtualText","extend","array","values","child","hpass","Error","VirtualElementPass","a","bind","abbr","address","area","article","aside","audio","bdi","bdo","blockquote","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","dfn","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hr","iframe","img","input","ins","kbd","label","legend","li","main","map","mark","meter","nav","noscript","object","ol","optgroup","option","output","param","pre","progress","q","rp","rt","ruby","s","samp","section","select","small","source","span","strong","sub","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","title","tr","track","u","ul","var_","video","wbr","realize","node","createDOMNode","render","host","oldContent","hostMap","get","newContent","asContentArray","set","updateContent","before","insertBefore","document","createTextNode","addAttrs","createElement","removeContent","newCount","_sentinel","oldNode","lastChild","childNodes","unrender","removeChild","WeakMap","value","oldKeyed","firstChild","keyMap","vNode","key","element","nextSibling","collectKeys","oldCopy","slice","currElem","oldVNode","newVNode","newKey","pair","ArrayExt","indexOf","oldKey","updateAttrs","textContent","specialAttrs","className","htmlFor","dataset","style","substr","setAttribute","addDataset","name","elemStyle","addStyle","oldAttrs","newAttrs","removeAttribute","oldDataset","newDataset","updateDataset","oldStyle","newStyle","updateStyle"],"sourceRoot":""} \ No newline at end of file diff --git a/_static/build/5489.848a8cf.js b/_static/build/5489.848a8cf.js new file mode 100644 index 0000000..3b0e8d3 --- /dev/null +++ b/_static/build/5489.848a8cf.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[5489],{83635:(c,t,n)=>{n.d(t,{Z:()=>s});var o=n(34663),A=n.n(o),e=n(7638),r=n.n(e)()(A());r.push([c.id,".cm-s-ttcn .cm-quote { color: #090; }\n.cm-s-ttcn .cm-negative { color: #d44; }\n.cm-s-ttcn .cm-positive { color: #292; }\n.cm-s-ttcn .cm-header, .cm-strong { font-weight: bold; }\n.cm-s-ttcn .cm-em { font-style: italic; }\n.cm-s-ttcn .cm-link { text-decoration: underline; }\n.cm-s-ttcn .cm-strikethrough { text-decoration: line-through; }\n.cm-s-ttcn .cm-header { color: #00f; font-weight: bold; }\n\n.cm-s-ttcn .cm-atom { color: #219; }\n.cm-s-ttcn .cm-attribute { color: #00c; }\n.cm-s-ttcn .cm-bracket { color: #997; }\n.cm-s-ttcn .cm-comment { color: #333333; }\n.cm-s-ttcn .cm-def { color: #00f; }\n.cm-s-ttcn .cm-em { font-style: italic; }\n.cm-s-ttcn .cm-error { color: #f00; }\n.cm-s-ttcn .cm-hr { color: #999; }\n.cm-s-ttcn .cm-invalidchar { color: #f00; }\n.cm-s-ttcn .cm-keyword { font-weight:bold; }\n.cm-s-ttcn .cm-link { color: #00c; text-decoration: underline; }\n.cm-s-ttcn .cm-meta { color: #555; }\n.cm-s-ttcn .cm-negative { color: #d44; }\n.cm-s-ttcn .cm-positive { color: #292; }\n.cm-s-ttcn .cm-qualifier { color: #555; }\n.cm-s-ttcn .cm-strikethrough { text-decoration: line-through; }\n.cm-s-ttcn .cm-string { color: #006400; }\n.cm-s-ttcn .cm-string-2 { color: #f50; }\n.cm-s-ttcn .cm-strong { font-weight: bold; }\n.cm-s-ttcn .cm-tag { color: #170; }\n.cm-s-ttcn .cm-variable { color: #8B2252; }\n.cm-s-ttcn .cm-variable-2 { color: #05a; }\n.cm-s-ttcn .cm-variable-3, .cm-s-ttcn .cm-type { color: #085; }\n\n.cm-s-ttcn .cm-invalidchar { color: #f00; }\n\n/* ASN */\n.cm-s-ttcn .cm-accessTypes,\n.cm-s-ttcn .cm-compareTypes { color: #27408B; }\n.cm-s-ttcn .cm-cmipVerbs { color: #8B2252; }\n.cm-s-ttcn .cm-modifier { color:#D2691E; }\n.cm-s-ttcn .cm-status { color:#8B4545; }\n.cm-s-ttcn .cm-storage { color:#A020F0; }\n.cm-s-ttcn .cm-tags { color:#006400; }\n\n/* CFG */\n.cm-s-ttcn .cm-externalCommands { color: #8B4545; font-weight:bold; }\n.cm-s-ttcn .cm-fileNCtrlMaskOptions,\n.cm-s-ttcn .cm-sectionTitle { color: #2E8B57; font-weight:bold; }\n\n/* TTCN */\n.cm-s-ttcn .cm-booleanConsts,\n.cm-s-ttcn .cm-otherConsts,\n.cm-s-ttcn .cm-verdictConsts { color: #006400; }\n.cm-s-ttcn .cm-configOps,\n.cm-s-ttcn .cm-functionOps,\n.cm-s-ttcn .cm-portOps,\n.cm-s-ttcn .cm-sutOps,\n.cm-s-ttcn .cm-timerOps,\n.cm-s-ttcn .cm-verdictOps { color: #0000FF; }\n.cm-s-ttcn .cm-preprocessor,\n.cm-s-ttcn .cm-templateMatch,\n.cm-s-ttcn .cm-ttcn3Macros { color: #27408B; }\n.cm-s-ttcn .cm-types { color: #A52A2A; font-weight:bold; }\n.cm-s-ttcn .cm-visibilityModifiers { font-weight:bold; }\n","",{version:3,sources:["webpack://./../node_modules/codemirror/theme/ttcn.css"],names:[],mappings:"AAAA,uBAAuB,WAAW,EAAE;AACpC,0BAA0B,WAAW,EAAE;AACvC,0BAA0B,WAAW,EAAE;AACvC,oCAAoC,iBAAiB,EAAE;AACvD,oBAAoB,kBAAkB,EAAE;AACxC,sBAAsB,0BAA0B,EAAE;AAClD,+BAA+B,6BAA6B,EAAE;AAC9D,wBAAwB,WAAW,EAAE,iBAAiB,EAAE;;AAExD,sBAAsB,WAAW,EAAE;AACnC,2BAA2B,WAAW,EAAE;AACxC,yBAAyB,WAAW,EAAE;AACtC,yBAAyB,cAAc,EAAE;AACzC,qBAAqB,WAAW,EAAE;AAClC,oBAAoB,kBAAkB,EAAE;AACxC,uBAAuB,WAAW,EAAE;AACpC,oBAAoB,WAAW,EAAE;AACjC,6BAA6B,WAAW,EAAE;AAC1C,yBAAyB,gBAAgB,EAAE;AAC3C,sBAAsB,WAAW,EAAE,0BAA0B,EAAE;AAC/D,sBAAsB,WAAW,EAAE;AACnC,0BAA0B,WAAW,EAAE;AACvC,0BAA0B,WAAW,EAAE;AACvC,2BAA2B,WAAW,EAAE;AACxC,+BAA+B,6BAA6B,EAAE;AAC9D,wBAAwB,cAAc,EAAE;AACxC,0BAA0B,WAAW,EAAE;AACvC,wBAAwB,iBAAiB,EAAE;AAC3C,qBAAqB,WAAW,EAAE;AAClC,0BAA0B,cAAc,EAAE;AAC1C,4BAA4B,WAAW,EAAE;AACzC,iDAAiD,WAAW,EAAE;;AAE9D,6BAA6B,WAAW,EAAE;;AAE1C,QAAQ;AACR;8BAC8B,cAAc,EAAE;AAC9C,2BAA2B,cAAc,EAAE;AAC3C,0BAA0B,aAAa,EAAE;AACzC,wBAAwB,aAAa,EAAE;AACvC,yBAAyB,aAAa,EAAE;AACxC,sBAAsB,aAAa,EAAE;;AAErC,QAAQ;AACR,kCAAkC,cAAc,EAAE,gBAAgB,EAAE;AACpE;8BAC8B,cAAc,EAAE,gBAAgB,EAAE;;AAEhE,SAAS;AACT;;+BAE+B,cAAc,EAAE;AAC/C;;;;;4BAK4B,cAAc,EAAE;AAC5C;;6BAE6B,cAAc,EAAE;AAC7C,uBAAuB,cAAc,EAAE,gBAAgB,EAAE;AACzD,qCAAqC,gBAAgB,EAAE",sourcesContent:[".cm-s-ttcn .cm-quote { color: #090; }\n.cm-s-ttcn .cm-negative { color: #d44; }\n.cm-s-ttcn .cm-positive { color: #292; }\n.cm-s-ttcn .cm-header, .cm-strong { font-weight: bold; }\n.cm-s-ttcn .cm-em { font-style: italic; }\n.cm-s-ttcn .cm-link { text-decoration: underline; }\n.cm-s-ttcn .cm-strikethrough { text-decoration: line-through; }\n.cm-s-ttcn .cm-header { color: #00f; font-weight: bold; }\n\n.cm-s-ttcn .cm-atom { color: #219; }\n.cm-s-ttcn .cm-attribute { color: #00c; }\n.cm-s-ttcn .cm-bracket { color: #997; }\n.cm-s-ttcn .cm-comment { color: #333333; }\n.cm-s-ttcn .cm-def { color: #00f; }\n.cm-s-ttcn .cm-em { font-style: italic; }\n.cm-s-ttcn .cm-error { color: #f00; }\n.cm-s-ttcn .cm-hr { color: #999; }\n.cm-s-ttcn .cm-invalidchar { color: #f00; }\n.cm-s-ttcn .cm-keyword { font-weight:bold; }\n.cm-s-ttcn .cm-link { color: #00c; text-decoration: underline; }\n.cm-s-ttcn .cm-meta { color: #555; }\n.cm-s-ttcn .cm-negative { color: #d44; }\n.cm-s-ttcn .cm-positive { color: #292; }\n.cm-s-ttcn .cm-qualifier { color: #555; }\n.cm-s-ttcn .cm-strikethrough { text-decoration: line-through; }\n.cm-s-ttcn .cm-string { color: #006400; }\n.cm-s-ttcn .cm-string-2 { color: #f50; }\n.cm-s-ttcn .cm-strong { font-weight: bold; }\n.cm-s-ttcn .cm-tag { color: #170; }\n.cm-s-ttcn .cm-variable { color: #8B2252; }\n.cm-s-ttcn .cm-variable-2 { color: #05a; }\n.cm-s-ttcn .cm-variable-3, .cm-s-ttcn .cm-type { color: #085; }\n\n.cm-s-ttcn .cm-invalidchar { color: #f00; }\n\n/* ASN */\n.cm-s-ttcn .cm-accessTypes,\n.cm-s-ttcn .cm-compareTypes { color: #27408B; }\n.cm-s-ttcn .cm-cmipVerbs { color: #8B2252; }\n.cm-s-ttcn .cm-modifier { color:#D2691E; }\n.cm-s-ttcn .cm-status { color:#8B4545; }\n.cm-s-ttcn .cm-storage { color:#A020F0; }\n.cm-s-ttcn .cm-tags { color:#006400; }\n\n/* CFG */\n.cm-s-ttcn .cm-externalCommands { color: #8B4545; font-weight:bold; }\n.cm-s-ttcn .cm-fileNCtrlMaskOptions,\n.cm-s-ttcn .cm-sectionTitle { color: #2E8B57; font-weight:bold; }\n\n/* TTCN */\n.cm-s-ttcn .cm-booleanConsts,\n.cm-s-ttcn .cm-otherConsts,\n.cm-s-ttcn .cm-verdictConsts { color: #006400; }\n.cm-s-ttcn .cm-configOps,\n.cm-s-ttcn .cm-functionOps,\n.cm-s-ttcn .cm-portOps,\n.cm-s-ttcn .cm-sutOps,\n.cm-s-ttcn .cm-timerOps,\n.cm-s-ttcn .cm-verdictOps { color: #0000FF; }\n.cm-s-ttcn .cm-preprocessor,\n.cm-s-ttcn .cm-templateMatch,\n.cm-s-ttcn .cm-ttcn3Macros { color: #27408B; }\n.cm-s-ttcn .cm-types { color: #A52A2A; font-weight:bold; }\n.cm-s-ttcn .cm-visibilityModifiers { font-weight:bold; }\n"],sourceRoot:""}]);const s=r},7638:c=>{c.exports=function(c){var t=[];return t.toString=function(){return this.map((function(t){var n="",o=void 0!==t[5];return t[4]&&(n+="@supports (".concat(t[4],") {")),t[2]&&(n+="@media ".concat(t[2]," {")),o&&(n+="@layer".concat(t[5].length>0?" ".concat(t[5]):""," {")),n+=c(t),o&&(n+="}"),t[2]&&(n+="}"),t[4]&&(n+="}"),n})).join("")},t.i=function(c,n,o,A,e){"string"==typeof c&&(c=[[null,c,void 0]]);var r={};if(o)for(var s=0;s0?" ".concat(a[5]):""," {").concat(a[1],"}")),a[5]=e),n&&(a[2]?(a[1]="@media ".concat(a[2]," {").concat(a[1],"}"),a[2]=n):a[2]=n),A&&(a[4]?(a[1]="@supports (".concat(a[4],") {").concat(a[1],"}"),a[4]=A):a[4]="".concat(A)),t.push(a))}},t}},34663:c=>{c.exports=function(c){var t=c[1],n=c[3];if(!n)return t;if("function"==typeof btoa){var o=btoa(unescape(encodeURIComponent(JSON.stringify(n)))),A="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(o),e="/*# ".concat(A," */"),r=n.sources.map((function(c){return"/*# sourceURL=".concat(n.sourceRoot||"").concat(c," */")}));return[t].concat(r).concat([e]).join("\n")}return[t].join("\n")}},65489:(c,t,n)=>{n.r(t),n.d(t,{default:()=>C});var o=n(1892),A=n.n(o),e=n(95760),r=n.n(e),s=n(38311),m=n.n(s),i=n(58192),a=n.n(i),l=n(38060),B=n.n(l),u=n(54865),E=n.n(u),d=n(83635),p={};p.styleTagTransform=E(),p.setAttributes=a(),p.insert=m().bind(null,"head"),p.domAPI=r(),p.insertStyleElement=B(),A()(d.Z,p);const C=d.Z&&d.Z.locals?d.Z.locals:void 0},1892:c=>{var t=[];function n(c){for(var n=-1,o=0;o{var t={};c.exports=function(c,n){var o=function(c){if(void 0===t[c]){var n=document.querySelector(c);if(window.HTMLIFrameElement&&n instanceof window.HTMLIFrameElement)try{n=n.contentDocument.head}catch(c){n=null}t[c]=n}return t[c]}(c);if(!o)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");o.appendChild(n)}},38060:c=>{c.exports=function(c){var t=document.createElement("style");return c.setAttributes(t,c.attributes),c.insert(t,c.options),t}},58192:(c,t,n)=>{c.exports=function(c){var t=n.nc;t&&c.setAttribute("nonce",t)}},95760:c=>{c.exports=function(c){var t=c.insertStyleElement(c);return{update:function(n){!function(c,t,n){var o="";n.supports&&(o+="@supports (".concat(n.supports,") {")),n.media&&(o+="@media ".concat(n.media," {"));var A=void 0!==n.layer;A&&(o+="@layer".concat(n.layer.length>0?" ".concat(n.layer):""," {")),o+=n.css,A&&(o+="}"),n.media&&(o+="}"),n.supports&&(o+="}");var e=n.sourceMap;e&&"undefined"!=typeof btoa&&(o+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(e))))," */")),t.styleTagTransform(o,c,t.options)}(t,c,n)},remove:function(){!function(c){if(null===c.parentNode)return!1;c.parentNode.removeChild(c)}(t)}}}},54865:c=>{c.exports=function(c,t){if(t.styleSheet)t.styleSheet.cssText=c;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(c))}}}}]); +//# sourceMappingURL=5489.848a8cf.js.map \ No newline at end of file diff --git a/_static/build/5489.848a8cf.js.map b/_static/build/5489.848a8cf.js.map new file mode 100644 index 0000000..7a3c27f --- /dev/null +++ b/_static/build/5489.848a8cf.js.map @@ -0,0 +1 @@ +{"version":3,"file":"5489.848a8cf.js","mappings":"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","sources":["webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/theme/ttcn.css","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/css-loader/dist/runtime/api.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/css-loader/dist/runtime/sourceMaps.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/theme/ttcn.css?efdb","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/insertBySelector.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/insertStyleElement.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/styleDomAPI.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/styleTagTransform.js"],"sourcesContent":["// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".cm-s-ttcn .cm-quote { color: #090; }\\n.cm-s-ttcn .cm-negative { color: #d44; }\\n.cm-s-ttcn .cm-positive { color: #292; }\\n.cm-s-ttcn .cm-header, .cm-strong { font-weight: bold; }\\n.cm-s-ttcn .cm-em { font-style: italic; }\\n.cm-s-ttcn .cm-link { text-decoration: underline; }\\n.cm-s-ttcn .cm-strikethrough { text-decoration: line-through; }\\n.cm-s-ttcn .cm-header { color: #00f; font-weight: bold; }\\n\\n.cm-s-ttcn .cm-atom { color: #219; }\\n.cm-s-ttcn .cm-attribute { color: #00c; }\\n.cm-s-ttcn .cm-bracket { color: #997; }\\n.cm-s-ttcn .cm-comment { color: #333333; }\\n.cm-s-ttcn .cm-def { color: #00f; }\\n.cm-s-ttcn .cm-em { font-style: italic; }\\n.cm-s-ttcn .cm-error { color: #f00; }\\n.cm-s-ttcn .cm-hr { color: #999; }\\n.cm-s-ttcn .cm-invalidchar { color: #f00; }\\n.cm-s-ttcn .cm-keyword { font-weight:bold; }\\n.cm-s-ttcn .cm-link { color: #00c; text-decoration: underline; }\\n.cm-s-ttcn .cm-meta { color: #555; }\\n.cm-s-ttcn .cm-negative { color: #d44; }\\n.cm-s-ttcn .cm-positive { color: #292; }\\n.cm-s-ttcn .cm-qualifier { color: #555; }\\n.cm-s-ttcn .cm-strikethrough { text-decoration: line-through; }\\n.cm-s-ttcn .cm-string { color: #006400; }\\n.cm-s-ttcn .cm-string-2 { color: #f50; }\\n.cm-s-ttcn .cm-strong { font-weight: bold; }\\n.cm-s-ttcn .cm-tag { color: #170; }\\n.cm-s-ttcn .cm-variable { color: #8B2252; }\\n.cm-s-ttcn .cm-variable-2 { color: #05a; }\\n.cm-s-ttcn .cm-variable-3, .cm-s-ttcn .cm-type { color: #085; }\\n\\n.cm-s-ttcn .cm-invalidchar { color: #f00; }\\n\\n/* ASN */\\n.cm-s-ttcn .cm-accessTypes,\\n.cm-s-ttcn .cm-compareTypes { color: #27408B; }\\n.cm-s-ttcn .cm-cmipVerbs { color: #8B2252; }\\n.cm-s-ttcn .cm-modifier { color:#D2691E; }\\n.cm-s-ttcn .cm-status { color:#8B4545; }\\n.cm-s-ttcn .cm-storage { color:#A020F0; }\\n.cm-s-ttcn .cm-tags { color:#006400; }\\n\\n/* CFG */\\n.cm-s-ttcn .cm-externalCommands { color: #8B4545; font-weight:bold; }\\n.cm-s-ttcn .cm-fileNCtrlMaskOptions,\\n.cm-s-ttcn .cm-sectionTitle { color: #2E8B57; font-weight:bold; }\\n\\n/* TTCN */\\n.cm-s-ttcn .cm-booleanConsts,\\n.cm-s-ttcn .cm-otherConsts,\\n.cm-s-ttcn .cm-verdictConsts { color: #006400; }\\n.cm-s-ttcn .cm-configOps,\\n.cm-s-ttcn .cm-functionOps,\\n.cm-s-ttcn .cm-portOps,\\n.cm-s-ttcn .cm-sutOps,\\n.cm-s-ttcn .cm-timerOps,\\n.cm-s-ttcn .cm-verdictOps { color: #0000FF; }\\n.cm-s-ttcn .cm-preprocessor,\\n.cm-s-ttcn .cm-templateMatch,\\n.cm-s-ttcn .cm-ttcn3Macros { color: #27408B; }\\n.cm-s-ttcn .cm-types { color: #A52A2A; font-weight:bold; }\\n.cm-s-ttcn .cm-visibilityModifiers { font-weight:bold; }\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./../node_modules/codemirror/theme/ttcn.css\"],\"names\":[],\"mappings\":\"AAAA,uBAAuB,WAAW,EAAE;AACpC,0BAA0B,WAAW,EAAE;AACvC,0BAA0B,WAAW,EAAE;AACvC,oCAAoC,iBAAiB,EAAE;AACvD,oBAAoB,kBAAkB,EAAE;AACxC,sBAAsB,0BAA0B,EAAE;AAClD,+BAA+B,6BAA6B,EAAE;AAC9D,wBAAwB,WAAW,EAAE,iBAAiB,EAAE;;AAExD,sBAAsB,WAAW,EAAE;AACnC,2BAA2B,WAAW,EAAE;AACxC,yBAAyB,WAAW,EAAE;AACtC,yBAAyB,cAAc,EAAE;AACzC,qBAAqB,WAAW,EAAE;AAClC,oBAAoB,kBAAkB,EAAE;AACxC,uBAAuB,WAAW,EAAE;AACpC,oBAAoB,WAAW,EAAE;AACjC,6BAA6B,WAAW,EAAE;AAC1C,yBAAyB,gBAAgB,EAAE;AAC3C,sBAAsB,WAAW,EAAE,0BAA0B,EAAE;AAC/D,sBAAsB,WAAW,EAAE;AACnC,0BAA0B,WAAW,EAAE;AACvC,0BAA0B,WAAW,EAAE;AACvC,2BAA2B,WAAW,EAAE;AACxC,+BAA+B,6BAA6B,EAAE;AAC9D,wBAAwB,cAAc,EAAE;AACxC,0BAA0B,WAAW,EAAE;AACvC,wBAAwB,iBAAiB,EAAE;AAC3C,qBAAqB,WAAW,EAAE;AAClC,0BAA0B,cAAc,EAAE;AAC1C,4BAA4B,WAAW,EAAE;AACzC,iDAAiD,WAAW,EAAE;;AAE9D,6BAA6B,WAAW,EAAE;;AAE1C,QAAQ;AACR;8BAC8B,cAAc,EAAE;AAC9C,2BAA2B,cAAc,EAAE;AAC3C,0BAA0B,aAAa,EAAE;AACzC,wBAAwB,aAAa,EAAE;AACvC,yBAAyB,aAAa,EAAE;AACxC,sBAAsB,aAAa,EAAE;;AAErC,QAAQ;AACR,kCAAkC,cAAc,EAAE,gBAAgB,EAAE;AACpE;8BAC8B,cAAc,EAAE,gBAAgB,EAAE;;AAEhE,SAAS;AACT;;+BAE+B,cAAc,EAAE;AAC/C;;;;;4BAK4B,cAAc,EAAE;AAC5C;;6BAE6B,cAAc,EAAE;AAC7C,uBAAuB,cAAc,EAAE,gBAAgB,EAAE;AACzD,qCAAqC,gBAAgB,EAAE\",\"sourcesContent\":[\".cm-s-ttcn .cm-quote { color: #090; }\\n.cm-s-ttcn .cm-negative { color: #d44; }\\n.cm-s-ttcn .cm-positive { color: #292; }\\n.cm-s-ttcn .cm-header, .cm-strong { font-weight: bold; }\\n.cm-s-ttcn .cm-em { font-style: italic; }\\n.cm-s-ttcn .cm-link { text-decoration: underline; }\\n.cm-s-ttcn .cm-strikethrough { text-decoration: line-through; }\\n.cm-s-ttcn .cm-header { color: #00f; font-weight: bold; }\\n\\n.cm-s-ttcn .cm-atom { color: #219; }\\n.cm-s-ttcn .cm-attribute { color: #00c; }\\n.cm-s-ttcn .cm-bracket { color: #997; }\\n.cm-s-ttcn .cm-comment { color: #333333; }\\n.cm-s-ttcn .cm-def { color: #00f; }\\n.cm-s-ttcn .cm-em { font-style: italic; }\\n.cm-s-ttcn .cm-error { color: #f00; }\\n.cm-s-ttcn .cm-hr { color: #999; }\\n.cm-s-ttcn .cm-invalidchar { color: #f00; }\\n.cm-s-ttcn .cm-keyword { font-weight:bold; }\\n.cm-s-ttcn .cm-link { color: #00c; text-decoration: underline; }\\n.cm-s-ttcn .cm-meta { color: #555; }\\n.cm-s-ttcn .cm-negative { color: #d44; }\\n.cm-s-ttcn .cm-positive { color: #292; }\\n.cm-s-ttcn .cm-qualifier { color: #555; }\\n.cm-s-ttcn .cm-strikethrough { text-decoration: line-through; }\\n.cm-s-ttcn .cm-string { color: #006400; }\\n.cm-s-ttcn .cm-string-2 { color: #f50; }\\n.cm-s-ttcn .cm-strong { font-weight: bold; }\\n.cm-s-ttcn .cm-tag { color: #170; }\\n.cm-s-ttcn .cm-variable { color: #8B2252; }\\n.cm-s-ttcn .cm-variable-2 { color: #05a; }\\n.cm-s-ttcn .cm-variable-3, .cm-s-ttcn .cm-type { color: #085; }\\n\\n.cm-s-ttcn .cm-invalidchar { color: #f00; }\\n\\n/* ASN */\\n.cm-s-ttcn .cm-accessTypes,\\n.cm-s-ttcn .cm-compareTypes { color: #27408B; }\\n.cm-s-ttcn .cm-cmipVerbs { color: #8B2252; }\\n.cm-s-ttcn .cm-modifier { color:#D2691E; }\\n.cm-s-ttcn .cm-status { color:#8B4545; }\\n.cm-s-ttcn .cm-storage { color:#A020F0; }\\n.cm-s-ttcn .cm-tags { color:#006400; }\\n\\n/* CFG */\\n.cm-s-ttcn .cm-externalCommands { color: #8B4545; font-weight:bold; }\\n.cm-s-ttcn .cm-fileNCtrlMaskOptions,\\n.cm-s-ttcn .cm-sectionTitle { color: #2E8B57; font-weight:bold; }\\n\\n/* TTCN */\\n.cm-s-ttcn .cm-booleanConsts,\\n.cm-s-ttcn .cm-otherConsts,\\n.cm-s-ttcn .cm-verdictConsts { color: #006400; }\\n.cm-s-ttcn .cm-configOps,\\n.cm-s-ttcn .cm-functionOps,\\n.cm-s-ttcn .cm-portOps,\\n.cm-s-ttcn .cm-sutOps,\\n.cm-s-ttcn .cm-timerOps,\\n.cm-s-ttcn .cm-verdictOps { color: #0000FF; }\\n.cm-s-ttcn .cm-preprocessor,\\n.cm-s-ttcn .cm-templateMatch,\\n.cm-s-ttcn .cm-ttcn3Macros { color: #27408B; }\\n.cm-s-ttcn .cm-types { color: #A52A2A; font-weight:bold; }\\n.cm-s-ttcn .cm-visibilityModifiers { font-weight:bold; }\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\nmodule.exports = function (cssWithMappingToString) {\n var list = [];\n\n // return the list of modules as css string\n list.toString = function toString() {\n return this.map(function (item) {\n var content = \"\";\n var needLayer = typeof item[5] !== \"undefined\";\n if (item[4]) {\n content += \"@supports (\".concat(item[4], \") {\");\n }\n if (item[2]) {\n content += \"@media \".concat(item[2], \" {\");\n }\n if (needLayer) {\n content += \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\");\n }\n content += cssWithMappingToString(item);\n if (needLayer) {\n content += \"}\";\n }\n if (item[2]) {\n content += \"}\";\n }\n if (item[4]) {\n content += \"}\";\n }\n return content;\n }).join(\"\");\n };\n\n // import a list of modules into the list\n list.i = function i(modules, media, dedupe, supports, layer) {\n if (typeof modules === \"string\") {\n modules = [[null, modules, undefined]];\n }\n var alreadyImportedModules = {};\n if (dedupe) {\n for (var k = 0; k < this.length; k++) {\n var id = this[k][0];\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n for (var _k = 0; _k < modules.length; _k++) {\n var item = [].concat(modules[_k]);\n if (dedupe && alreadyImportedModules[item[0]]) {\n continue;\n }\n if (typeof layer !== \"undefined\") {\n if (typeof item[5] === \"undefined\") {\n item[5] = layer;\n } else {\n item[1] = \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\").concat(item[1], \"}\");\n item[5] = layer;\n }\n }\n if (media) {\n if (!item[2]) {\n item[2] = media;\n } else {\n item[1] = \"@media \".concat(item[2], \" {\").concat(item[1], \"}\");\n item[2] = media;\n }\n }\n if (supports) {\n if (!item[4]) {\n item[4] = \"\".concat(supports);\n } else {\n item[1] = \"@supports (\".concat(item[4], \") {\").concat(item[1], \"}\");\n item[4] = supports;\n }\n }\n list.push(item);\n }\n };\n return list;\n};","\"use strict\";\n\nmodule.exports = function (item) {\n var content = item[1];\n var cssMapping = item[3];\n if (!cssMapping) {\n return content;\n }\n if (typeof btoa === \"function\") {\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(cssMapping))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n var sourceMapping = \"/*# \".concat(data, \" */\");\n var sourceURLs = cssMapping.sources.map(function (source) {\n return \"/*# sourceURL=\".concat(cssMapping.sourceRoot || \"\").concat(source, \" */\");\n });\n return [content].concat(sourceURLs).concat([sourceMapping]).join(\"\\n\");\n }\n return [content].join(\"\\n\");\n};","\n import API from \"!../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../css-loader/dist/cjs.js!./ttcn.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../css-loader/dist/cjs.js!./ttcn.css\";\n export default content && content.locals ? content.locals : undefined;\n","\"use strict\";\n\nvar stylesInDOM = [];\n\nfunction getIndexByIdentifier(identifier) {\n var result = -1;\n\n for (var i = 0; i < stylesInDOM.length; i++) {\n if (stylesInDOM[i].identifier === identifier) {\n result = i;\n break;\n }\n }\n\n return result;\n}\n\nfunction modulesToDom(list, options) {\n var idCountMap = {};\n var identifiers = [];\n\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var count = idCountMap[id] || 0;\n var identifier = \"\".concat(id, \" \").concat(count);\n idCountMap[id] = count + 1;\n var indexByIdentifier = getIndexByIdentifier(identifier);\n var obj = {\n css: item[1],\n media: item[2],\n sourceMap: item[3],\n supports: item[4],\n layer: item[5]\n };\n\n if (indexByIdentifier !== -1) {\n stylesInDOM[indexByIdentifier].references++;\n stylesInDOM[indexByIdentifier].updater(obj);\n } else {\n var updater = addElementStyle(obj, options);\n options.byIndex = i;\n stylesInDOM.splice(i, 0, {\n identifier: identifier,\n updater: updater,\n references: 1\n });\n }\n\n identifiers.push(identifier);\n }\n\n return identifiers;\n}\n\nfunction addElementStyle(obj, options) {\n var api = options.domAPI(options);\n api.update(obj);\n\n var updater = function updater(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap && newObj.supports === obj.supports && newObj.layer === obj.layer) {\n return;\n }\n\n api.update(obj = newObj);\n } else {\n api.remove();\n }\n };\n\n return updater;\n}\n\nmodule.exports = function (list, options) {\n options = options || {};\n list = list || [];\n var lastIdentifiers = modulesToDom(list, options);\n return function update(newList) {\n newList = newList || [];\n\n for (var i = 0; i < lastIdentifiers.length; i++) {\n var identifier = lastIdentifiers[i];\n var index = getIndexByIdentifier(identifier);\n stylesInDOM[index].references--;\n }\n\n var newLastIdentifiers = modulesToDom(newList, options);\n\n for (var _i = 0; _i < lastIdentifiers.length; _i++) {\n var _identifier = lastIdentifiers[_i];\n\n var _index = getIndexByIdentifier(_identifier);\n\n if (stylesInDOM[_index].references === 0) {\n stylesInDOM[_index].updater();\n\n stylesInDOM.splice(_index, 1);\n }\n }\n\n lastIdentifiers = newLastIdentifiers;\n };\n};","\"use strict\";\n\nvar memo = {};\n/* istanbul ignore next */\n\nfunction getTarget(target) {\n if (typeof memo[target] === \"undefined\") {\n var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself\n\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n\n memo[target] = styleTarget;\n }\n\n return memo[target];\n}\n/* istanbul ignore next */\n\n\nfunction insertBySelector(insert, style) {\n var target = getTarget(insert);\n\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n\n target.appendChild(style);\n}\n\nmodule.exports = insertBySelector;","\"use strict\";\n\n/* istanbul ignore next */\nfunction insertStyleElement(options) {\n var element = document.createElement(\"style\");\n options.setAttributes(element, options.attributes);\n options.insert(element, options.options);\n return element;\n}\n\nmodule.exports = insertStyleElement;","\"use strict\";\n\n/* istanbul ignore next */\nfunction setAttributesWithoutAttributes(styleElement) {\n var nonce = typeof __webpack_nonce__ !== \"undefined\" ? __webpack_nonce__ : null;\n\n if (nonce) {\n styleElement.setAttribute(\"nonce\", nonce);\n }\n}\n\nmodule.exports = setAttributesWithoutAttributes;","\"use strict\";\n\n/* istanbul ignore next */\nfunction apply(styleElement, options, obj) {\n var css = \"\";\n\n if (obj.supports) {\n css += \"@supports (\".concat(obj.supports, \") {\");\n }\n\n if (obj.media) {\n css += \"@media \".concat(obj.media, \" {\");\n }\n\n var needLayer = typeof obj.layer !== \"undefined\";\n\n if (needLayer) {\n css += \"@layer\".concat(obj.layer.length > 0 ? \" \".concat(obj.layer) : \"\", \" {\");\n }\n\n css += obj.css;\n\n if (needLayer) {\n css += \"}\";\n }\n\n if (obj.media) {\n css += \"}\";\n }\n\n if (obj.supports) {\n css += \"}\";\n }\n\n var sourceMap = obj.sourceMap;\n\n if (sourceMap && typeof btoa !== \"undefined\") {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n } // For old IE\n\n /* istanbul ignore if */\n\n\n options.styleTagTransform(css, styleElement, options.options);\n}\n\nfunction removeStyleElement(styleElement) {\n // istanbul ignore if\n if (styleElement.parentNode === null) {\n return false;\n }\n\n styleElement.parentNode.removeChild(styleElement);\n}\n/* istanbul ignore next */\n\n\nfunction domAPI(options) {\n var styleElement = options.insertStyleElement(options);\n return {\n update: function update(obj) {\n apply(styleElement, options, obj);\n },\n remove: function remove() {\n removeStyleElement(styleElement);\n }\n };\n}\n\nmodule.exports = domAPI;","\"use strict\";\n\n/* istanbul ignore next */\nfunction styleTagTransform(css, styleElement) {\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = css;\n } else {\n while (styleElement.firstChild) {\n styleElement.removeChild(styleElement.firstChild);\n }\n\n styleElement.appendChild(document.createTextNode(css));\n }\n}\n\nmodule.exports = styleTagTransform;"],"names":["___CSS_LOADER_EXPORT___","push","module","id","exports","cssWithMappingToString","list","toString","this","map","item","content","needLayer","concat","length","join","i","modules","media","dedupe","supports","layer","undefined","alreadyImportedModules","k","_k","cssMapping","btoa","base64","unescape","encodeURIComponent","JSON","stringify","data","sourceMapping","sourceURLs","sources","source","sourceRoot","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","stylesInDOM","getIndexByIdentifier","identifier","result","modulesToDom","idCountMap","identifiers","base","count","indexByIdentifier","obj","css","sourceMap","references","updater","addElementStyle","byIndex","splice","api","update","newObj","remove","lastIdentifiers","newList","index","newLastIdentifiers","_i","_index","memo","style","target","styleTarget","document","querySelector","window","HTMLIFrameElement","contentDocument","head","e","getTarget","Error","appendChild","element","createElement","attributes","styleElement","nonce","setAttribute","apply","parentNode","removeChild","removeStyleElement","styleSheet","cssText","firstChild","createTextNode"],"sourceRoot":""} \ No newline at end of file diff --git a/_static/build/5508.317fca3.js b/_static/build/5508.317fca3.js new file mode 100644 index 0000000..72b5472 --- /dev/null +++ b/_static/build/5508.317fca3.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[5508,362],{80362:(e,t,o)=>{o.r(t),o.d(t,{CellBarExtension:()=>u,CellToolbarTracker:()=>d});var l=o(2814),n=o(92877),i=o(43892),a=o(70942);const r=["text/plain","application/vnd.jupyter.stdout","application/vnd.jupyter.stderr"],s="jp-cell-toolbar",c="jp-toolbar-overlap";class d{constructor(e,t){this._isDisposed=!1,this._panel=e,this._previousActiveCell=this._panel.content.activeCell,this._toolbar=t,this._onToolbarChanged(),this._toolbar.changed.connect(this._onToolbarChanged,this),e.revealed.then((()=>this._onActiveCellChanged(e.content))),e.content.renderingLayoutChanged.connect(this._onActiveCellChanged,this),e.content.activeCellChanged.connect(this._onActiveCellChanged,this)}_onActiveCellChanged(e){this._previousActiveCell&&this._removeToolbar(this._previousActiveCell.model);const t=e.activeCell;t&&(this._addToolbar(t.model),this._previousActiveCell=t,this._updateCellForToolbarOverlap(t))}get isDisposed(){return this._isDisposed}dispose(){var e;if(this.isDisposed)return;this._isDisposed=!0,this._toolbar.changed.disconnect(this._onToolbarChanged,this);const t=null===(e=this._panel)||void 0===e?void 0:e.context.model.cells;t&&(0,i.each)(t.iter(),(e=>this._removeToolbar(e))),this._panel=null,a.Signal.clearData(this)}_addToolbar(e){const t=this._getCell(e);if(t){const e=new l.Toolbar;e.addClass("jp-cell-menu"),(0,i.toArray)(this._toolbar).forEach((({name:t,widget:o})=>{e.addItem(t,o)})),e.addClass(s),t.layout.insertWidget(0,e),t.displayChanged.connect(this._resizeEventCallback,this),t.model.contentChanged.connect(this._changedEventCallback,this)}}_getCell(e){var t;return null===(t=this._panel)||void 0===t?void 0:t.content.widgets.find((t=>t.model===e))}_findToolbarWidgets(e){return e.layout.widgets.filter((e=>e.hasClass(s)))||[]}_removeToolbar(e){const t=this._getCell(e);t&&(this._findToolbarWidgets(t).forEach((e=>e.dispose())),t.displayChanged.disconnect(this._resizeEventCallback,this)),e.contentChanged.disconnect(this._changedEventCallback,this)}_onToolbarChanged(){var e;const t=null===(e=this._panel)||void 0===e?void 0:e.content.activeCell;t&&(this._removeToolbar(t.model),this._addToolbar(t.model))}_changedEventCallback(){var e;const t=null===(e=this._panel)||void 0===e?void 0:e.content.activeCell;null!=t&&this._updateCellForToolbarOverlap(t)}_resizeEventCallback(){var e;const t=null===(e=this._panel)||void 0===e?void 0:e.content.activeCell;null!=t&&this._updateCellForToolbarOverlap(t)}_updateCellForToolbarOverlap(e){const t=e.node;t.classList.remove(c),this._cellToolbarOverlapsContents(e)&&t.classList.add(c)}_cellToolbarOverlapsContents(e){var t;const o=e.model.type,l=this._cellEditorWidgetLeft(e),n=this._cellEditorWidgetRight(e),i=this._cellToolbarLeft(e);return null!==i&&((l+n)/2>i||("markdown"===o&&e.rendered?this._markdownOverlapsToolbar(e):"default"===(null===(t=this._panel)||void 0===t?void 0:t.content.renderingLayout)?this._codeOverlapsToolbar(e):this._outputOverlapsToolbar(e)))}_markdownOverlapsToolbar(e){const t=e.inputArea.renderedInput.node.firstElementChild;if(null===t)return!1;const o=t.style.maxWidth;t.style.maxWidth="max-content";const l=t.getBoundingClientRect().right;t.style.maxWidth=o;const n=this._cellToolbarLeft(e);return null!==n&&l>n}_outputOverlapsToolbar(e){const t=e.outputArea.node;if(t){const o=t.querySelectorAll("[data-mime-type]"),l=this._cellToolbarRect(e);if(l){const{left:e,bottom:t}=l;return Array.from(o).some((o=>{const l=o.firstElementChild;if(l){const n=new Range;r.includes(o.getAttribute("data-mime-type")||"")?n.selectNodeContents(l):n.selectNode(l);const{right:i,top:a}=n.getBoundingClientRect();return i>e&&an}_cellEditorWidgetLeft(e){return e.editorWidget.node.getBoundingClientRect().left}_cellEditorWidgetRight(e){return e.editorWidget.node.getBoundingClientRect().right}_cellToolbarRect(e){const t=this._findToolbarWidgets(e);return t.length<1?null:t[0].node.getBoundingClientRect()}_cellToolbarLeft(e){var t;return(null===(t=this._cellToolbarRect(e))||void 0===t?void 0:t.left)||null}}const h=[{command:"notebook:duplicate-below",name:"duplicate-cell"},{command:"notebook:move-cell-up",name:"move-cell-up"},{command:"notebook:move-cell-down",name:"move-cell-down"},{command:"notebook:insert-cell-above",name:"insert-cell-above"},{command:"notebook:insert-cell-below",name:"insert-cell-below"},{command:"notebook:delete-cell",name:"delete-cell"}];class u{constructor(e,t){this._commands=e,this._toolbarFactory=null!=t?t:this.defaultToolbarFactory}get defaultToolbarFactory(){const e=(0,l.createDefaultFactory)(this._commands);return t=>new n.ObservableList({values:h.map((o=>({name:o.name,widget:e(u.FACTORY_NAME,t,o)})))})}createNew(e){return new d(e,this._toolbarFactory(e))}}u.FACTORY_NAME="Cell"}}]); +//# sourceMappingURL=5508.317fca3.js.map \ No newline at end of file diff --git a/_static/build/5508.317fca3.js.map b/_static/build/5508.317fca3.js.map new file mode 100644 index 0000000..fb4a540 --- /dev/null +++ b/_static/build/5508.317fca3.js.map @@ -0,0 +1 @@ +{"version":3,"file":"5508.317fca3.js","mappings":"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","sources":["webpack://_JUPYTERLAB.CORE_OUTPUT/../src/celltoolbartracker.ts"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/_static/build/554.ac98303.js b/_static/build/554.ac98303.js new file mode 100644 index 0000000..27e443f --- /dev/null +++ b/_static/build/554.ac98303.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[554],{51289:(r,o,c)=>{c.d(o,{Z:()=>t});var e=c(34663),a=c.n(e),n=c(7638),A=c.n(n)()(a());A.push([r.id,"/* Port of TextMate's Blackboard theme */\n\n.cm-s-blackboard.CodeMirror { background: #0C1021; color: #F8F8F8; }\n.cm-s-blackboard div.CodeMirror-selected { background: #253B76; }\n.cm-s-blackboard .CodeMirror-line::selection, .cm-s-blackboard .CodeMirror-line > span::selection, .cm-s-blackboard .CodeMirror-line > span > span::selection { background: rgba(37, 59, 118, .99); }\n.cm-s-blackboard .CodeMirror-line::-moz-selection, .cm-s-blackboard .CodeMirror-line > span::-moz-selection, .cm-s-blackboard .CodeMirror-line > span > span::-moz-selection { background: rgba(37, 59, 118, .99); }\n.cm-s-blackboard .CodeMirror-gutters { background: #0C1021; border-right: 0; }\n.cm-s-blackboard .CodeMirror-guttermarker { color: #FBDE2D; }\n.cm-s-blackboard .CodeMirror-guttermarker-subtle { color: #888; }\n.cm-s-blackboard .CodeMirror-linenumber { color: #888; }\n.cm-s-blackboard .CodeMirror-cursor { border-left: 1px solid #A7A7A7; }\n\n.cm-s-blackboard .cm-keyword { color: #FBDE2D; }\n.cm-s-blackboard .cm-atom { color: #D8FA3C; }\n.cm-s-blackboard .cm-number { color: #D8FA3C; }\n.cm-s-blackboard .cm-def { color: #8DA6CE; }\n.cm-s-blackboard .cm-variable { color: #FF6400; }\n.cm-s-blackboard .cm-operator { color: #FBDE2D; }\n.cm-s-blackboard .cm-comment { color: #AEAEAE; }\n.cm-s-blackboard .cm-string { color: #61CE3C; }\n.cm-s-blackboard .cm-string-2 { color: #61CE3C; }\n.cm-s-blackboard .cm-meta { color: #D8FA3C; }\n.cm-s-blackboard .cm-builtin { color: #8DA6CE; }\n.cm-s-blackboard .cm-tag { color: #8DA6CE; }\n.cm-s-blackboard .cm-attribute { color: #8DA6CE; }\n.cm-s-blackboard .cm-header { color: #FF6400; }\n.cm-s-blackboard .cm-hr { color: #AEAEAE; }\n.cm-s-blackboard .cm-link { color: #8DA6CE; }\n.cm-s-blackboard .cm-error { background: #9D1E15; color: #F8F8F8; }\n\n.cm-s-blackboard .CodeMirror-activeline-background { background: #3C3636; }\n.cm-s-blackboard .CodeMirror-matchingbracket { outline:1px solid grey;color:white !important; }\n","",{version:3,sources:["webpack://./../node_modules/codemirror/theme/blackboard.css"],names:[],mappings:"AAAA,wCAAwC;;AAExC,8BAA8B,mBAAmB,EAAE,cAAc,EAAE;AACnE,2CAA2C,mBAAmB,EAAE;AAChE,gKAAgK,kCAAkC,EAAE;AACpM,+KAA+K,kCAAkC,EAAE;AACnN,uCAAuC,mBAAmB,EAAE,eAAe,EAAE;AAC7E,4CAA4C,cAAc,EAAE;AAC5D,mDAAmD,WAAW,EAAE;AAChE,0CAA0C,WAAW,EAAE;AACvD,sCAAsC,8BAA8B,EAAE;;AAEtE,+BAA+B,cAAc,EAAE;AAC/C,4BAA4B,cAAc,EAAE;AAC5C,8BAA8B,cAAc,EAAE;AAC9C,2BAA2B,cAAc,EAAE;AAC3C,gCAAgC,cAAc,EAAE;AAChD,gCAAgC,cAAc,EAAE;AAChD,+BAA+B,cAAc,EAAE;AAC/C,8BAA8B,cAAc,EAAE;AAC9C,gCAAgC,cAAc,EAAE;AAChD,4BAA4B,cAAc,EAAE;AAC5C,+BAA+B,cAAc,EAAE;AAC/C,2BAA2B,cAAc,EAAE;AAC3C,iCAAiC,cAAc,EAAE;AACjD,8BAA8B,cAAc,EAAE;AAC9C,0BAA0B,cAAc,EAAE;AAC1C,4BAA4B,cAAc,EAAE;AAC5C,6BAA6B,mBAAmB,EAAE,cAAc,EAAE;;AAElE,qDAAqD,mBAAmB,EAAE;AAC1E,+CAA+C,sBAAsB,CAAC,sBAAsB,EAAE",sourcesContent:["/* Port of TextMate's Blackboard theme */\n\n.cm-s-blackboard.CodeMirror { background: #0C1021; color: #F8F8F8; }\n.cm-s-blackboard div.CodeMirror-selected { background: #253B76; }\n.cm-s-blackboard .CodeMirror-line::selection, .cm-s-blackboard .CodeMirror-line > span::selection, .cm-s-blackboard .CodeMirror-line > span > span::selection { background: rgba(37, 59, 118, .99); }\n.cm-s-blackboard .CodeMirror-line::-moz-selection, .cm-s-blackboard .CodeMirror-line > span::-moz-selection, .cm-s-blackboard .CodeMirror-line > span > span::-moz-selection { background: rgba(37, 59, 118, .99); }\n.cm-s-blackboard .CodeMirror-gutters { background: #0C1021; border-right: 0; }\n.cm-s-blackboard .CodeMirror-guttermarker { color: #FBDE2D; }\n.cm-s-blackboard .CodeMirror-guttermarker-subtle { color: #888; }\n.cm-s-blackboard .CodeMirror-linenumber { color: #888; }\n.cm-s-blackboard .CodeMirror-cursor { border-left: 1px solid #A7A7A7; }\n\n.cm-s-blackboard .cm-keyword { color: #FBDE2D; }\n.cm-s-blackboard .cm-atom { color: #D8FA3C; }\n.cm-s-blackboard .cm-number { color: #D8FA3C; }\n.cm-s-blackboard .cm-def { color: #8DA6CE; }\n.cm-s-blackboard .cm-variable { color: #FF6400; }\n.cm-s-blackboard .cm-operator { color: #FBDE2D; }\n.cm-s-blackboard .cm-comment { color: #AEAEAE; }\n.cm-s-blackboard .cm-string { color: #61CE3C; }\n.cm-s-blackboard .cm-string-2 { color: #61CE3C; }\n.cm-s-blackboard .cm-meta { color: #D8FA3C; }\n.cm-s-blackboard .cm-builtin { color: #8DA6CE; }\n.cm-s-blackboard .cm-tag { color: #8DA6CE; }\n.cm-s-blackboard .cm-attribute { color: #8DA6CE; }\n.cm-s-blackboard .cm-header { color: #FF6400; }\n.cm-s-blackboard .cm-hr { color: #AEAEAE; }\n.cm-s-blackboard .cm-link { color: #8DA6CE; }\n.cm-s-blackboard .cm-error { background: #9D1E15; color: #F8F8F8; }\n\n.cm-s-blackboard .CodeMirror-activeline-background { background: #3C3636; }\n.cm-s-blackboard .CodeMirror-matchingbracket { outline:1px solid grey;color:white !important; }\n"],sourceRoot:""}]);const t=A},7638:r=>{r.exports=function(r){var o=[];return o.toString=function(){return this.map((function(o){var c="",e=void 0!==o[5];return o[4]&&(c+="@supports (".concat(o[4],") {")),o[2]&&(c+="@media ".concat(o[2]," {")),e&&(c+="@layer".concat(o[5].length>0?" ".concat(o[5]):""," {")),c+=r(o),e&&(c+="}"),o[2]&&(c+="}"),o[4]&&(c+="}"),c})).join("")},o.i=function(r,c,e,a,n){"string"==typeof r&&(r=[[null,r,void 0]]);var A={};if(e)for(var t=0;t0?" ".concat(i[5]):""," {").concat(i[1],"}")),i[5]=n),c&&(i[2]?(i[1]="@media ".concat(i[2]," {").concat(i[1],"}"),i[2]=c):i[2]=c),a&&(i[4]?(i[1]="@supports (".concat(i[4],") {").concat(i[1],"}"),i[4]=a):i[4]="".concat(a)),o.push(i))}},o}},34663:r=>{r.exports=function(r){var o=r[1],c=r[3];if(!c)return o;if("function"==typeof btoa){var e=btoa(unescape(encodeURIComponent(JSON.stringify(c)))),a="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(e),n="/*# ".concat(a," */"),A=c.sources.map((function(r){return"/*# sourceURL=".concat(c.sourceRoot||"").concat(r," */")}));return[o].concat(A).concat([n]).join("\n")}return[o].join("\n")}},20554:(r,o,c)=>{c.r(o),c.d(o,{default:()=>k});var e=c(1892),a=c.n(e),n=c(95760),A=c.n(n),t=c(38311),s=c.n(t),l=c(58192),i=c.n(l),d=c(38060),b=c.n(d),m=c(54865),C=c.n(m),u=c(51289),E={};E.styleTagTransform=C(),E.setAttributes=i(),E.insert=s().bind(null,"head"),E.domAPI=A(),E.insertStyleElement=b(),a()(u.Z,E);const k=u.Z&&u.Z.locals?u.Z.locals:void 0},1892:r=>{var o=[];function c(r){for(var c=-1,e=0;e{var o={};r.exports=function(r,c){var e=function(r){if(void 0===o[r]){var c=document.querySelector(r);if(window.HTMLIFrameElement&&c instanceof window.HTMLIFrameElement)try{c=c.contentDocument.head}catch(r){c=null}o[r]=c}return o[r]}(r);if(!e)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");e.appendChild(c)}},38060:r=>{r.exports=function(r){var o=document.createElement("style");return r.setAttributes(o,r.attributes),r.insert(o,r.options),o}},58192:(r,o,c)=>{r.exports=function(r){var o=c.nc;o&&r.setAttribute("nonce",o)}},95760:r=>{r.exports=function(r){var o=r.insertStyleElement(r);return{update:function(c){!function(r,o,c){var e="";c.supports&&(e+="@supports (".concat(c.supports,") {")),c.media&&(e+="@media ".concat(c.media," {"));var a=void 0!==c.layer;a&&(e+="@layer".concat(c.layer.length>0?" ".concat(c.layer):""," {")),e+=c.css,a&&(e+="}"),c.media&&(e+="}"),c.supports&&(e+="}");var n=c.sourceMap;n&&"undefined"!=typeof btoa&&(e+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(n))))," */")),o.styleTagTransform(e,r,o.options)}(o,r,c)},remove:function(){!function(r){if(null===r.parentNode)return!1;r.parentNode.removeChild(r)}(o)}}}},54865:r=>{r.exports=function(r,o){if(o.styleSheet)o.styleSheet.cssText=r;else{for(;o.firstChild;)o.removeChild(o.firstChild);o.appendChild(document.createTextNode(r))}}}}]); +//# sourceMappingURL=554.ac98303.js.map \ No newline at end of file diff --git a/_static/build/554.ac98303.js.map b/_static/build/554.ac98303.js.map new file mode 100644 index 0000000..69c4165 --- /dev/null +++ b/_static/build/554.ac98303.js.map @@ -0,0 +1 @@ +{"version":3,"file":"554.ac98303.js","mappings":"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","sources":["webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/theme/blackboard.css","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/css-loader/dist/runtime/api.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/css-loader/dist/runtime/sourceMaps.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/theme/blackboard.css?e17e","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/insertBySelector.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/insertStyleElement.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/styleDomAPI.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/styleTagTransform.js"],"sourcesContent":["// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"/* Port of TextMate's Blackboard theme */\\n\\n.cm-s-blackboard.CodeMirror { background: #0C1021; color: #F8F8F8; }\\n.cm-s-blackboard div.CodeMirror-selected { background: #253B76; }\\n.cm-s-blackboard .CodeMirror-line::selection, .cm-s-blackboard .CodeMirror-line > span::selection, .cm-s-blackboard .CodeMirror-line > span > span::selection { background: rgba(37, 59, 118, .99); }\\n.cm-s-blackboard .CodeMirror-line::-moz-selection, .cm-s-blackboard .CodeMirror-line > span::-moz-selection, .cm-s-blackboard .CodeMirror-line > span > span::-moz-selection { background: rgba(37, 59, 118, .99); }\\n.cm-s-blackboard .CodeMirror-gutters { background: #0C1021; border-right: 0; }\\n.cm-s-blackboard .CodeMirror-guttermarker { color: #FBDE2D; }\\n.cm-s-blackboard .CodeMirror-guttermarker-subtle { color: #888; }\\n.cm-s-blackboard .CodeMirror-linenumber { color: #888; }\\n.cm-s-blackboard .CodeMirror-cursor { border-left: 1px solid #A7A7A7; }\\n\\n.cm-s-blackboard .cm-keyword { color: #FBDE2D; }\\n.cm-s-blackboard .cm-atom { color: #D8FA3C; }\\n.cm-s-blackboard .cm-number { color: #D8FA3C; }\\n.cm-s-blackboard .cm-def { color: #8DA6CE; }\\n.cm-s-blackboard .cm-variable { color: #FF6400; }\\n.cm-s-blackboard .cm-operator { color: #FBDE2D; }\\n.cm-s-blackboard .cm-comment { color: #AEAEAE; }\\n.cm-s-blackboard .cm-string { color: #61CE3C; }\\n.cm-s-blackboard .cm-string-2 { color: #61CE3C; }\\n.cm-s-blackboard .cm-meta { color: #D8FA3C; }\\n.cm-s-blackboard .cm-builtin { color: #8DA6CE; }\\n.cm-s-blackboard .cm-tag { color: #8DA6CE; }\\n.cm-s-blackboard .cm-attribute { color: #8DA6CE; }\\n.cm-s-blackboard .cm-header { color: #FF6400; }\\n.cm-s-blackboard .cm-hr { color: #AEAEAE; }\\n.cm-s-blackboard .cm-link { color: #8DA6CE; }\\n.cm-s-blackboard .cm-error { background: #9D1E15; color: #F8F8F8; }\\n\\n.cm-s-blackboard .CodeMirror-activeline-background { background: #3C3636; }\\n.cm-s-blackboard .CodeMirror-matchingbracket { outline:1px solid grey;color:white !important; }\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./../node_modules/codemirror/theme/blackboard.css\"],\"names\":[],\"mappings\":\"AAAA,wCAAwC;;AAExC,8BAA8B,mBAAmB,EAAE,cAAc,EAAE;AACnE,2CAA2C,mBAAmB,EAAE;AAChE,gKAAgK,kCAAkC,EAAE;AACpM,+KAA+K,kCAAkC,EAAE;AACnN,uCAAuC,mBAAmB,EAAE,eAAe,EAAE;AAC7E,4CAA4C,cAAc,EAAE;AAC5D,mDAAmD,WAAW,EAAE;AAChE,0CAA0C,WAAW,EAAE;AACvD,sCAAsC,8BAA8B,EAAE;;AAEtE,+BAA+B,cAAc,EAAE;AAC/C,4BAA4B,cAAc,EAAE;AAC5C,8BAA8B,cAAc,EAAE;AAC9C,2BAA2B,cAAc,EAAE;AAC3C,gCAAgC,cAAc,EAAE;AAChD,gCAAgC,cAAc,EAAE;AAChD,+BAA+B,cAAc,EAAE;AAC/C,8BAA8B,cAAc,EAAE;AAC9C,gCAAgC,cAAc,EAAE;AAChD,4BAA4B,cAAc,EAAE;AAC5C,+BAA+B,cAAc,EAAE;AAC/C,2BAA2B,cAAc,EAAE;AAC3C,iCAAiC,cAAc,EAAE;AACjD,8BAA8B,cAAc,EAAE;AAC9C,0BAA0B,cAAc,EAAE;AAC1C,4BAA4B,cAAc,EAAE;AAC5C,6BAA6B,mBAAmB,EAAE,cAAc,EAAE;;AAElE,qDAAqD,mBAAmB,EAAE;AAC1E,+CAA+C,sBAAsB,CAAC,sBAAsB,EAAE\",\"sourcesContent\":[\"/* Port of TextMate's Blackboard theme */\\n\\n.cm-s-blackboard.CodeMirror { background: #0C1021; color: #F8F8F8; }\\n.cm-s-blackboard div.CodeMirror-selected { background: #253B76; }\\n.cm-s-blackboard .CodeMirror-line::selection, .cm-s-blackboard .CodeMirror-line > span::selection, .cm-s-blackboard .CodeMirror-line > span > span::selection { background: rgba(37, 59, 118, .99); }\\n.cm-s-blackboard .CodeMirror-line::-moz-selection, .cm-s-blackboard .CodeMirror-line > span::-moz-selection, .cm-s-blackboard .CodeMirror-line > span > span::-moz-selection { background: rgba(37, 59, 118, .99); }\\n.cm-s-blackboard .CodeMirror-gutters { background: #0C1021; border-right: 0; }\\n.cm-s-blackboard .CodeMirror-guttermarker { color: #FBDE2D; }\\n.cm-s-blackboard .CodeMirror-guttermarker-subtle { color: #888; }\\n.cm-s-blackboard .CodeMirror-linenumber { color: #888; }\\n.cm-s-blackboard .CodeMirror-cursor { border-left: 1px solid #A7A7A7; }\\n\\n.cm-s-blackboard .cm-keyword { color: #FBDE2D; }\\n.cm-s-blackboard .cm-atom { color: #D8FA3C; }\\n.cm-s-blackboard .cm-number { color: #D8FA3C; }\\n.cm-s-blackboard .cm-def { color: #8DA6CE; }\\n.cm-s-blackboard .cm-variable { color: #FF6400; }\\n.cm-s-blackboard .cm-operator { color: #FBDE2D; }\\n.cm-s-blackboard .cm-comment { color: #AEAEAE; }\\n.cm-s-blackboard .cm-string { color: #61CE3C; }\\n.cm-s-blackboard .cm-string-2 { color: #61CE3C; }\\n.cm-s-blackboard .cm-meta { color: #D8FA3C; }\\n.cm-s-blackboard .cm-builtin { color: #8DA6CE; }\\n.cm-s-blackboard .cm-tag { color: #8DA6CE; }\\n.cm-s-blackboard .cm-attribute { color: #8DA6CE; }\\n.cm-s-blackboard .cm-header { color: #FF6400; }\\n.cm-s-blackboard .cm-hr { color: #AEAEAE; }\\n.cm-s-blackboard .cm-link { color: #8DA6CE; }\\n.cm-s-blackboard .cm-error { background: #9D1E15; color: #F8F8F8; }\\n\\n.cm-s-blackboard .CodeMirror-activeline-background { background: #3C3636; }\\n.cm-s-blackboard .CodeMirror-matchingbracket { outline:1px solid grey;color:white !important; }\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\nmodule.exports = function (cssWithMappingToString) {\n var list = [];\n\n // return the list of modules as css string\n list.toString = function toString() {\n return this.map(function (item) {\n var content = \"\";\n var needLayer = typeof item[5] !== \"undefined\";\n if (item[4]) {\n content += \"@supports (\".concat(item[4], \") {\");\n }\n if (item[2]) {\n content += \"@media \".concat(item[2], \" {\");\n }\n if (needLayer) {\n content += \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\");\n }\n content += cssWithMappingToString(item);\n if (needLayer) {\n content += \"}\";\n }\n if (item[2]) {\n content += \"}\";\n }\n if (item[4]) {\n content += \"}\";\n }\n return content;\n }).join(\"\");\n };\n\n // import a list of modules into the list\n list.i = function i(modules, media, dedupe, supports, layer) {\n if (typeof modules === \"string\") {\n modules = [[null, modules, undefined]];\n }\n var alreadyImportedModules = {};\n if (dedupe) {\n for (var k = 0; k < this.length; k++) {\n var id = this[k][0];\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n for (var _k = 0; _k < modules.length; _k++) {\n var item = [].concat(modules[_k]);\n if (dedupe && alreadyImportedModules[item[0]]) {\n continue;\n }\n if (typeof layer !== \"undefined\") {\n if (typeof item[5] === \"undefined\") {\n item[5] = layer;\n } else {\n item[1] = \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\").concat(item[1], \"}\");\n item[5] = layer;\n }\n }\n if (media) {\n if (!item[2]) {\n item[2] = media;\n } else {\n item[1] = \"@media \".concat(item[2], \" {\").concat(item[1], \"}\");\n item[2] = media;\n }\n }\n if (supports) {\n if (!item[4]) {\n item[4] = \"\".concat(supports);\n } else {\n item[1] = \"@supports (\".concat(item[4], \") {\").concat(item[1], \"}\");\n item[4] = supports;\n }\n }\n list.push(item);\n }\n };\n return list;\n};","\"use strict\";\n\nmodule.exports = function (item) {\n var content = item[1];\n var cssMapping = item[3];\n if (!cssMapping) {\n return content;\n }\n if (typeof btoa === \"function\") {\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(cssMapping))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n var sourceMapping = \"/*# \".concat(data, \" */\");\n var sourceURLs = cssMapping.sources.map(function (source) {\n return \"/*# sourceURL=\".concat(cssMapping.sourceRoot || \"\").concat(source, \" */\");\n });\n return [content].concat(sourceURLs).concat([sourceMapping]).join(\"\\n\");\n }\n return [content].join(\"\\n\");\n};","\n import API from \"!../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../css-loader/dist/cjs.js!./blackboard.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../css-loader/dist/cjs.js!./blackboard.css\";\n export default content && content.locals ? content.locals : undefined;\n","\"use strict\";\n\nvar stylesInDOM = [];\n\nfunction getIndexByIdentifier(identifier) {\n var result = -1;\n\n for (var i = 0; i < stylesInDOM.length; i++) {\n if (stylesInDOM[i].identifier === identifier) {\n result = i;\n break;\n }\n }\n\n return result;\n}\n\nfunction modulesToDom(list, options) {\n var idCountMap = {};\n var identifiers = [];\n\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var count = idCountMap[id] || 0;\n var identifier = \"\".concat(id, \" \").concat(count);\n idCountMap[id] = count + 1;\n var indexByIdentifier = getIndexByIdentifier(identifier);\n var obj = {\n css: item[1],\n media: item[2],\n sourceMap: item[3],\n supports: item[4],\n layer: item[5]\n };\n\n if (indexByIdentifier !== -1) {\n stylesInDOM[indexByIdentifier].references++;\n stylesInDOM[indexByIdentifier].updater(obj);\n } else {\n var updater = addElementStyle(obj, options);\n options.byIndex = i;\n stylesInDOM.splice(i, 0, {\n identifier: identifier,\n updater: updater,\n references: 1\n });\n }\n\n identifiers.push(identifier);\n }\n\n return identifiers;\n}\n\nfunction addElementStyle(obj, options) {\n var api = options.domAPI(options);\n api.update(obj);\n\n var updater = function updater(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap && newObj.supports === obj.supports && newObj.layer === obj.layer) {\n return;\n }\n\n api.update(obj = newObj);\n } else {\n api.remove();\n }\n };\n\n return updater;\n}\n\nmodule.exports = function (list, options) {\n options = options || {};\n list = list || [];\n var lastIdentifiers = modulesToDom(list, options);\n return function update(newList) {\n newList = newList || [];\n\n for (var i = 0; i < lastIdentifiers.length; i++) {\n var identifier = lastIdentifiers[i];\n var index = getIndexByIdentifier(identifier);\n stylesInDOM[index].references--;\n }\n\n var newLastIdentifiers = modulesToDom(newList, options);\n\n for (var _i = 0; _i < lastIdentifiers.length; _i++) {\n var _identifier = lastIdentifiers[_i];\n\n var _index = getIndexByIdentifier(_identifier);\n\n if (stylesInDOM[_index].references === 0) {\n stylesInDOM[_index].updater();\n\n stylesInDOM.splice(_index, 1);\n }\n }\n\n lastIdentifiers = newLastIdentifiers;\n };\n};","\"use strict\";\n\nvar memo = {};\n/* istanbul ignore next */\n\nfunction getTarget(target) {\n if (typeof memo[target] === \"undefined\") {\n var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself\n\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n\n memo[target] = styleTarget;\n }\n\n return memo[target];\n}\n/* istanbul ignore next */\n\n\nfunction insertBySelector(insert, style) {\n var target = getTarget(insert);\n\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n\n target.appendChild(style);\n}\n\nmodule.exports = insertBySelector;","\"use strict\";\n\n/* istanbul ignore next */\nfunction insertStyleElement(options) {\n var element = document.createElement(\"style\");\n options.setAttributes(element, options.attributes);\n options.insert(element, options.options);\n return element;\n}\n\nmodule.exports = insertStyleElement;","\"use strict\";\n\n/* istanbul ignore next */\nfunction setAttributesWithoutAttributes(styleElement) {\n var nonce = typeof __webpack_nonce__ !== \"undefined\" ? __webpack_nonce__ : null;\n\n if (nonce) {\n styleElement.setAttribute(\"nonce\", nonce);\n }\n}\n\nmodule.exports = setAttributesWithoutAttributes;","\"use strict\";\n\n/* istanbul ignore next */\nfunction apply(styleElement, options, obj) {\n var css = \"\";\n\n if (obj.supports) {\n css += \"@supports (\".concat(obj.supports, \") {\");\n }\n\n if (obj.media) {\n css += \"@media \".concat(obj.media, \" {\");\n }\n\n var needLayer = typeof obj.layer !== \"undefined\";\n\n if (needLayer) {\n css += \"@layer\".concat(obj.layer.length > 0 ? \" \".concat(obj.layer) : \"\", \" {\");\n }\n\n css += obj.css;\n\n if (needLayer) {\n css += \"}\";\n }\n\n if (obj.media) {\n css += \"}\";\n }\n\n if (obj.supports) {\n css += \"}\";\n }\n\n var sourceMap = obj.sourceMap;\n\n if (sourceMap && typeof btoa !== \"undefined\") {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n } // For old IE\n\n /* istanbul ignore if */\n\n\n options.styleTagTransform(css, styleElement, options.options);\n}\n\nfunction removeStyleElement(styleElement) {\n // istanbul ignore if\n if (styleElement.parentNode === null) {\n return false;\n }\n\n styleElement.parentNode.removeChild(styleElement);\n}\n/* istanbul ignore next */\n\n\nfunction domAPI(options) {\n var styleElement = options.insertStyleElement(options);\n return {\n update: function update(obj) {\n apply(styleElement, options, obj);\n },\n remove: function remove() {\n removeStyleElement(styleElement);\n }\n };\n}\n\nmodule.exports = domAPI;","\"use strict\";\n\n/* istanbul ignore next */\nfunction styleTagTransform(css, styleElement) {\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = css;\n } else {\n while (styleElement.firstChild) {\n styleElement.removeChild(styleElement.firstChild);\n }\n\n styleElement.appendChild(document.createTextNode(css));\n }\n}\n\nmodule.exports = styleTagTransform;"],"names":["___CSS_LOADER_EXPORT___","push","module","id","exports","cssWithMappingToString","list","toString","this","map","item","content","needLayer","concat","length","join","i","modules","media","dedupe","supports","layer","undefined","alreadyImportedModules","k","_k","cssMapping","btoa","base64","unescape","encodeURIComponent","JSON","stringify","data","sourceMapping","sourceURLs","sources","source","sourceRoot","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","stylesInDOM","getIndexByIdentifier","identifier","result","modulesToDom","idCountMap","identifiers","base","count","indexByIdentifier","obj","css","sourceMap","references","updater","addElementStyle","byIndex","splice","api","update","newObj","remove","lastIdentifiers","newList","index","newLastIdentifiers","_i","_index","memo","style","target","styleTarget","document","querySelector","window","HTMLIFrameElement","contentDocument","head","e","getTarget","Error","appendChild","element","createElement","attributes","styleElement","nonce","setAttribute","apply","parentNode","removeChild","removeStyleElement","styleSheet","cssText","firstChild","createTextNode"],"sourceRoot":""} \ No newline at end of file diff --git a/_static/build/555.2cd31dd.js b/_static/build/555.2cd31dd.js new file mode 100644 index 0000000..4342d02 --- /dev/null +++ b/_static/build/555.2cd31dd.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[555,3151],{53151:(t,e,s)=>{s.r(e),s.d(e,{ISettings:()=>l,Settings:()=>o});var a=s(55941),r=s(7537),i=s(26169);const n="JupyterLite Storage";class o{constructor(t){this._storageName=n,this._storageDrivers=null,this._localforage=t.localforage,this._storageName=t.storageName||n,this._storageDrivers=t.storageDrivers||null,this._ready=new i.PromiseDelegate}get ready(){return this._ready.promise}get storage(){return this.ready.then((()=>this._storage))}async initialize(){await this.initStorage(),this._ready.resolve(void 0)}async initStorage(){this._storage=this.defaultSettingsStorage()}get defaultStorageOptions(){var t;const e=(null===(t=this._storageDrivers)||void 0===t?void 0:t.length)?this._storageDrivers:null;return{version:1,name:this._storageName,...e?{driver:e}:{}}}defaultSettingsStorage(){return this._localforage.createInstance({description:"Offline Storage for Settings",storeName:"settings",...this.defaultStorageOptions})}async get(t){let e=(await this.getAll()).settings.find((e=>e.id===t));return e||(e=await this._getFederated(t)),e}async getAll(){var t;const e=null!==(t=a.PageConfig.getOption("settingsUrl"))&&void 0!==t?t:"/",s=await this.storage,i=await(await fetch(a.URLExt.join(e,"all.json"))).json(),n=await Promise.all(i.map((async t=>{var e;const{id:a}=t,i=null!==(e=await s.getItem(a))&&void 0!==e?e:t.raw;return{...g.override(t),raw:i,settings:r.parse(i)}})));return{settings:n}}async save(t,e){await(await this.storage).setItem(t,e)}async _getFederated(t){var e;const[s,i]=t.split(":");if(!g.isFederated(s))return;const n=a.PageConfig.getOption("fullLabextensionsUrl"),o=a.URLExt.join(n,s,"schemas",s,`${i}.json`),l=a.URLExt.join(n,s,"package.json"),c=await(await fetch(o)).json(),d=await(await fetch(l)).json(),h=null!==(e=await(await this.storage).getItem(t))&&void 0!==e?e:"{}",u=r.parse(h)||{};return g.override({id:t,raw:h,schema:c,settings:u,version:d.version||"3.0.8"})}}var g;!function(t){const e=JSON.parse(a.PageConfig.getOption("settingsOverrides")||"{}");t.isFederated=function(t){let e;try{e=JSON.parse(a.PageConfig.getOption("federated_extensions"))}catch{return!1}for(const{name:s}of e)if(s===t)return!0;return!1},t.override=function(t){if(e[t.id]){t.schema.properties||(t.schema.properties={});for(const[s,a]of Object.entries(e[t.id]||{}))t.schema.properties[s].default=a}return t}}(g||(g={}));const l=new i.Token("@jupyterlite/settings:ISettings")}}]); +//# sourceMappingURL=555.2cd31dd.js.map \ No newline at end of file diff --git a/_static/build/555.2cd31dd.js.map b/_static/build/555.2cd31dd.js.map new file mode 100644 index 0000000..2a99dc7 --- /dev/null +++ b/_static/build/555.2cd31dd.js.map @@ -0,0 +1 @@ +{"version":3,"file":"555.2cd31dd.js","mappings":"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","sources":["webpack://_JUPYTERLAB.CORE_OUTPUT/../packages/settings/src/settings.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../packages/settings/src/tokens.ts"],"sourcesContent":["import { PageConfig, URLExt } from '@jupyterlab/coreutils';\n\nimport * as json5 from 'json5';\n\nimport type localforage from 'localforage';\n\nimport { IFederatedExtension } from '@jupyterlite/types';\n\nimport { IPlugin, ISettings } from './tokens';\nimport { PromiseDelegate } from '@lumino/coreutils';\n\n/**\n * The name of the local storage.\n */\nconst DEFAULT_STORAGE_NAME = 'JupyterLite Storage';\n\n/**\n * A class to handle requests to /api/settings\n */\nexport class Settings implements ISettings {\n constructor(options: Settings.IOptions) {\n this._localforage = options.localforage;\n this._storageName = options.storageName || DEFAULT_STORAGE_NAME;\n this._storageDrivers = options.storageDrivers || null;\n\n this._ready = new PromiseDelegate();\n }\n\n /**\n * A promise that resolves when the settings storage is fully initialized\n */\n get ready(): Promise {\n return this._ready.promise;\n }\n\n /**\n * A lazy reference to initialized storage\n */\n protected get storage(): Promise {\n return this.ready.then(() => this._storage as LocalForage);\n }\n\n /**\n * Finish any initialization after server has started and all extensions are applied.\n */\n async initialize() {\n await this.initStorage();\n this._ready.resolve(void 0);\n }\n\n /**\n * Prepare the storage\n */\n protected async initStorage() {\n this._storage = this.defaultSettingsStorage();\n }\n\n /**\n * Get default options for localForage instances\n */\n protected get defaultStorageOptions(): LocalForageOptions {\n const driver = this._storageDrivers?.length ? this._storageDrivers : null;\n return {\n version: 1,\n name: this._storageName,\n ...(driver ? { driver } : {}),\n };\n }\n\n /**\n * Create a settings store.\n */\n protected defaultSettingsStorage(): LocalForage {\n return this._localforage.createInstance({\n description: 'Offline Storage for Settings',\n storeName: 'settings',\n ...this.defaultStorageOptions,\n });\n }\n\n /**\n * Get settings by plugin id\n *\n * @param pluginId the id of the plugin\n *\n */\n async get(pluginId: string): Promise {\n const all = await this.getAll();\n const settings = all.settings as IPlugin[];\n let found = settings.find((setting: IPlugin) => {\n return setting.id === pluginId;\n });\n\n if (!found) {\n found = await this._getFederated(pluginId);\n }\n\n return found;\n }\n\n /**\n * Get all the settings\n */\n async getAll(): Promise<{ settings: IPlugin[] }> {\n const settingsUrl = PageConfig.getOption('settingsUrl') ?? '/';\n const storage = await this.storage;\n const all = (await (\n await fetch(URLExt.join(settingsUrl, 'all.json'))\n ).json()) as IPlugin[];\n const settings = await Promise.all(\n all.map(async (plugin) => {\n const { id } = plugin;\n const raw = ((await storage.getItem(id)) as string) ?? plugin.raw;\n return {\n ...Private.override(plugin),\n raw,\n settings: json5.parse(raw),\n };\n })\n );\n return { settings };\n }\n\n /**\n * Save settings for a given plugin id\n *\n * @param pluginId The id of the plugin\n * @param raw The raw settings\n *\n */\n async save(pluginId: string, raw: string): Promise {\n await (await this.storage).setItem(pluginId, raw);\n }\n\n /**\n * Get the settings for a federated extension\n *\n * @param pluginId The id of a plugin\n */\n private async _getFederated(pluginId: string): Promise {\n const [packageName, schemaName] = pluginId.split(':');\n\n if (!Private.isFederated(packageName)) {\n return;\n }\n\n const labExtensionsUrl = PageConfig.getOption('fullLabextensionsUrl');\n const schemaUrl = URLExt.join(\n labExtensionsUrl,\n packageName,\n 'schemas',\n packageName,\n `${schemaName}.json`\n );\n const packageUrl = URLExt.join(labExtensionsUrl, packageName, 'package.json');\n const schema = await (await fetch(schemaUrl)).json();\n const packageJson = await (await fetch(packageUrl)).json();\n const raw = ((await (await this.storage).getItem(pluginId)) as string) ?? '{}';\n const settings = json5.parse(raw) || {};\n return Private.override({\n id: pluginId,\n raw,\n schema,\n settings,\n version: packageJson.version || '3.0.8',\n });\n }\n\n private _storageName: string = DEFAULT_STORAGE_NAME;\n private _storageDrivers: string[] | null = null;\n private _storage: LocalForage | undefined;\n private _localforage: typeof localforage;\n private _ready: PromiseDelegate;\n}\n\n/**\n * A namespace for settings metadata.\n */\nexport namespace Settings {\n /**\n * Initialization options for settings.\n */\n export interface IOptions {\n localforage: typeof localforage;\n storageName?: string | null;\n storageDrivers?: string[] | null;\n }\n}\n\n/**\n * A namespace for private data\n */\nnamespace Private {\n const _overrides: Record = JSON.parse(\n PageConfig.getOption('settingsOverrides') || '{}'\n );\n\n /**\n * Test whether this package is configured in `federated_extensions` in this app\n *\n * @param packageName The npm name of a package\n */\n export function isFederated(packageName: string): boolean {\n let federated: IFederatedExtension[];\n\n try {\n federated = JSON.parse(PageConfig.getOption('federated_extensions'));\n } catch {\n return false;\n }\n\n for (const { name } of federated) {\n if (name === packageName) {\n return true;\n }\n }\n\n return false;\n }\n\n /**\n * Override the defaults of the schema with ones from PageConfig\n *\n * @see https://github.com/jupyterlab/jupyterlab_server/blob/v2.5.2/jupyterlab_server/settings_handler.py#L216-L227\n */\n export function override(plugin: IPlugin): IPlugin {\n if (_overrides[plugin.id]) {\n if (!plugin.schema.properties) {\n // probably malformed, or only provides keyboard shortcuts, etc.\n plugin.schema.properties = {};\n }\n for (const [prop, propDefault] of Object.entries(_overrides[plugin.id] || {})) {\n plugin.schema.properties[prop].default = propDefault;\n }\n }\n return plugin;\n }\n}\n","import { ISettingRegistry } from '@jupyterlab/settingregistry';\n\nimport { JSONObject, PartialJSONObject, Token } from '@lumino/coreutils';\n\n/**\n * The token for the settings service.\n */\nexport const ISettings = new Token('@jupyterlite/settings:ISettings');\n\n/**\n * An interface for the plugin settings.\n */\nexport interface IPlugin extends PartialJSONObject {\n /**\n * The name of the plugin.\n */\n id: string;\n\n /**\n * The settings for the plugin.\n */\n settings: JSONObject;\n\n /**\n * The raw user settings data as a string containing JSON with comments.\n */\n raw: string;\n\n /**\n * The JSON schema for the plugin.\n */\n schema: ISettingRegistry.ISchema;\n\n /**\n * The published version of the NPM package containing the plugin.\n */\n version: string;\n}\n\n/**\n * The interface for the Settings service.\n */\nexport interface ISettings {\n /**\n * A promise that resolves after the settings have been full initialized\n */\n ready: Promise;\n\n /**\n * Get settings by plugin id\n *\n * @param pluginId the id of the plugin\n *\n */\n get(pluginId: string): Promise;\n\n /**\n * Get all the settings\n */\n getAll(): Promise<{ settings: IPlugin[] }>;\n\n /**\n * Save settings for a given plugin id\n *\n * @param pluginId The id of the plugin\n * @param raw The raw settings\n *\n */\n save(pluginId: string, raw: string): Promise;\n}\n"],"names":["DEFAULT_STORAGE_NAME","Settings","constructor","options","_storageName","_storageDrivers","this","_localforage","localforage","storageName","storageDrivers","_ready","PromiseDelegate","ready","promise","storage","then","_storage","async","initStorage","resolve","defaultSettingsStorage","defaultStorageOptions","driver","length","version","name","createInstance","description","storeName","pluginId","found","getAll","settings","find","setting","id","_getFederated","settingsUrl","PageConfig","all","fetch","URLExt","json","Promise","map","plugin","raw","getItem","Private","override","setItem","packageName","schemaName","split","isFederated","labExtensionsUrl","schemaUrl","packageUrl","schema","packageJson","_overrides","JSON","parse","federated","properties","prop","propDefault","Object","entries","default","ISettings","Token"],"sourceRoot":""} \ No newline at end of file diff --git a/_static/build/5573.ebcdb93.js b/_static/build/5573.ebcdb93.js new file mode 100644 index 0000000..ab3d30c --- /dev/null +++ b/_static/build/5573.ebcdb93.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[5573],{65573:(e,t,s)=>{s.r(t),s.d(t,{GroupItem:()=>h,IStatusBar:()=>se,KernelStatus:()=>L,LineCol:()=>J,Popup:()=>j,ProgressBar:()=>N,ProgressCircle:()=>B,RunningSessions:()=>Q,StatusBar:()=>te,TextItem:()=>R,clickedItem:()=>S,interactiveItem:()=>w,item:()=>k,leftSide:()=>f,rightSide:()=>y,showPopup:()=>I,side:()=>x,statusBar:()=>b});var n=s(62471),i=s.n(n),a=s(82161);const r={display:"flex",alignItems:"center"},o={flexDirection:"row"};const l=(0,a.oB)(r,o);function h(e){const{spacing:t,children:s,className:i}=e,r=function(e,t){var s={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(s[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(n=Object.getOwnPropertySymbols(e);i0===s?n.createElement("div",{style:{marginRight:`${t}px`}},e):s===o-1?n.createElement("div",{style:{marginLeft:`${t}px`}},e):n.createElement("div",{style:{margin:`0px ${t}px`}},e))))}var d=s(2814),c=s(94519);const u="var(--jp-statusbar-height)",m="var(--jp-ui-font-color1)",p="10px",g=(0,a.oB)({fontSize:"var(--jp-ui-font-size1)",fontFamily:"var(--jp-ui-font-family)"},{lineHeight:"24px",color:m}),_={paddingLeft:"6px",paddingRight:"6px"},v={$nest:{"&:hover":{backgroundColor:"var(--jp-layout-color3)"}}},C={backgroundColor:"var(--jp-brand-color1)",$nest:{["."+g]:{color:"white"}}},b=(0,a.oB)({background:"var(--jp-layout-color2)",minHeight:u,justifyContent:"space-between",paddingLeft:p,paddingRight:p},r),x=(0,a.oB)(r),f=(0,a.oB)(o),y=(0,a.oB)({flexDirection:"row-reverse"}),k=(0,a.oB)({maxHeight:u,marginLeft:"2px",marginRight:"2px",height:u,whiteSpace:"nowrap",textOverflow:"ellipsis",color:m},_),S=(0,a.oB)(C),w=(0,a.oB)(v),E=(0,a.oB)({boxShadow:"0px 4px 4px rgba(0, 0, 0, 0.25)"});function I(e){const t=new j(e);return t.launch(),t}class j extends c.Widget{constructor(e){super(),this._body=e.body,this._body.addClass(E),this._anchor=e.anchor,this._align=e.align,(this.layout=new c.PanelLayout).addWidget(e.body),this._body.node.addEventListener("resize",(()=>{this.update()}))}launch(){this._setGeometry(),c.Widget.attach(this,document.body),this.update(),this._anchor.addClass(S),this._anchor.removeClass(w)}onUpdateRequest(e){this._setGeometry(),super.onUpdateRequest(e)}onAfterAttach(e){document.addEventListener("click",this,!1),this.node.addEventListener("keydown",this,!1),window.addEventListener("resize",this,!1)}onAfterDetach(e){document.removeEventListener("click",this,!1),this.node.removeEventListener("keydown",this,!1),window.removeEventListener("resize",this,!1)}onResize(){this.update()}dispose(){super.dispose(),this._anchor.removeClass(S),this._anchor.addClass(w)}handleEvent(e){switch(e.type){case"keydown":this._evtKeydown(e);break;case"click":this._evtClick(e);break;case"resize":this.onResize()}}_evtClick(e){!e.target||this._body.node.contains(e.target)||this._anchor.node.contains(e.target)||this.dispose()}_evtKeydown(e){27===e.keyCode&&(e.stopPropagation(),e.preventDefault(),this.dispose())}_setGeometry(){let e=0;const t=this._anchor.node.getBoundingClientRect(),s=this._body.node.getBoundingClientRect();"right"===this._align&&(e=-(s.width-t.width));const n=window.getComputedStyle(this._body.node);d.HoverBox.setGeometry({anchor:t,host:document.body,maxHeight:500,minHeight:20,node:this._body.node,offset:{horizontal:e},privilege:"forceAbove",style:n})}}function N(e){const{width:t,percentage:s}=e,i=function(e,t){var s={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(s[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(n=Object.getOwnPropertySymbols(e);i{const t=Math.max(3.6*e,.1),s=t*Math.PI/180,n=104*Math.sin(s),i=-104*Math.cos(s);return"M 0 0 v -104 A 104 104 1 "+(t<180?1:0)+" 0 "+n.toFixed(4)+" "+i.toFixed(4)+" z"})(e.progress),fill:"var(--jp-inverse-layout-color3)"})))}var P=s(4265),A=s(26169);function D(e){const t=(e.translator||P.nullTranslator).load("jupyterlab");let s="";return e.status&&(s=` | ${e.status}`),i().createElement(R,{onClick:e.handleClick,source:`${e.kernelName}${s}`,title:t.__("Change kernel for %1",e.activityName)})}class L extends d.VDomRenderer{constructor(e,t){super(new L.Model(t)),this.translator=t||P.nullTranslator,this._handleClick=e.onClick,this.addClass(w)}render(){return null===this.model?null:i().createElement(D,{status:this.model.status,kernelName:this.model.kernelName,activityName:this.model.activityName,handleClick:this._handleClick,translator:this.translator})}}!function(e){class t extends d.VDomModel{constructor(e){super(),this._activityName="activity",this._kernelStatus="",this._sessionContext=null,e=e||P.nullTranslator,this._trans=e.load("jupyterlab"),this._kernelName=this._trans.__("No Kernel!"),this._statusNames=(0,d.translateKernelStatuses)(e)}get kernelName(){return this._kernelName}get status(){return this._kernelStatus?this._statusNames[this._kernelStatus]:void 0}get activityName(){return this._activityName}set activityName(e){this._activityName!==e&&(this._activityName=e,this.stateChanged.emit(void 0))}get sessionContext(){return this._sessionContext}set sessionContext(e){var t,s,n,i;null===(t=this._sessionContext)||void 0===t||t.statusChanged.disconnect(this._onKernelStatusChanged,this),null===(s=this._sessionContext)||void 0===s||s.connectionStatusChanged.disconnect(this._onKernelStatusChanged,this),null===(n=this._sessionContext)||void 0===n||n.kernelChanged.disconnect(this._onKernelChanged,this);const a=this._getAllState();this._sessionContext=e,this._kernelStatus=null==e?void 0:e.kernelDisplayStatus,this._kernelName=null!==(i=null==e?void 0:e.kernelDisplayName)&&void 0!==i?i:this._trans.__("No Kernel"),null==e||e.statusChanged.connect(this._onKernelStatusChanged,this),null==e||e.connectionStatusChanged.connect(this._onKernelStatusChanged,this),null==e||e.kernelChanged.connect(this._onKernelChanged,this),this._triggerChange(a,this._getAllState())}_onKernelStatusChanged(){var e;this._kernelStatus=null===(e=this._sessionContext)||void 0===e?void 0:e.kernelDisplayStatus,this.stateChanged.emit(void 0)}_onKernelChanged(e,t){var s;const n=this._getAllState();this._kernelStatus=null===(s=this._sessionContext)||void 0===s?void 0:s.kernelDisplayStatus,this._kernelName=e.kernelDisplayName,this._triggerChange(n,this._getAllState())}_getAllState(){return[this._kernelName,this._kernelStatus,this._activityName]}_triggerChange(e,t){A.JSONExt.deepEqual(e,t)&&this.stateChanged.emit(void 0)}}e.Model=t}(L||(L={}));var M=s(59674);(0,a.oB)({boxShadow:"0px 4px 4px rgba(0, 0, 0, 0.25)"});const T=(0,a.oB)({padding:"4px 12px",backgroundColor:"var(--jp-layout-color2)",boxShadow:"var(--jp-toolbar-box-shadow)",zIndex:2,fontSize:"var(--jp-ui-font-size1)"}),z=(0,a.oB)({fontSize:"var(--jp-ui-font-size0)",lineHeight:"var(--jp-ui-font-size1)",marginTop:"4px",color:"var(--jp-ui-font-color0)"}),F={border:"none",borderRadius:"0px",position:"absolute",backgroundSize:"16px",backgroundRepeat:"no-repeat",backgroundPosition:"center",outline:"none",top:"0px",right:"0px"},K=(0,a.oB)(F,{top:"4px",right:"8px",height:"24px",padding:"0px 12px",width:"12px"}),W=(0,a.oB)(F,{backgroundColor:"var(--jp-brand-color1)",height:"100%",width:"100%",boxSizing:"border-box",padding:"4px 6px"}),U=(0,a.oB)(F,{backgroundColor:"transparent",height:"100%",width:"100%",boxSizing:"border-box"}),$=(0,a.oB)({overflow:"hidden",padding:"0px 8px",border:"1px solid var(--jp-border-color0)",backgroundColor:"var(--jp-input-active-background)",height:"22px"}),H=(0,a.oB)({border:"var(--jp-border-width) solid var(--md-blue-500)",boxShadow:"inset 0 0 4px var(--md-blue-300)"}),G=(0,a.oB)({background:"transparent",width:"200px",height:"100%",border:"none",outline:"none",color:"var(--jp-ui-font-color0)",lineHeight:"28px"});class V extends i().Component{constructor(e){super(e),this._handleChange=e=>{this.setState({value:e.currentTarget.value})},this._handleSubmit=e=>{e.preventDefault();const t=parseInt(this._textInput.value,10);return!isNaN(t)&&isFinite(t)&&1<=t&&t<=this.props.maxLine&&this.props.handleSubmit(t),!1},this._handleFocus=()=>{this.setState({hasFocus:!0})},this._handleBlur=()=>{this.setState({hasFocus:!1})},this._textInput=null,this.translator=e.translator||P.nullTranslator,this._trans=this.translator.load("jupyterlab"),this.state={value:"",hasFocus:!1}}componentDidMount(){this._textInput.focus()}render(){return i().createElement("div",{className:T},i().createElement("form",{name:"lineColumnForm",onSubmit:this._handleSubmit,noValidate:!0},i().createElement("div",{className:(0,a.Sh)($,"lm-lineForm-wrapper",this.state.hasFocus?H:void 0)},i().createElement("input",{type:"text",className:G,onChange:this._handleChange,onFocus:this._handleFocus,onBlur:this._handleBlur,value:this.state.value,ref:e=>{this._textInput=e}}),i().createElement("div",{className:K},i().createElement(M.lineFormIcon.react,{className:W,elementPosition:"center"}),i().createElement("input",{type:"submit",className:U,value:""}))),i().createElement("label",{className:z},this._trans.__("Go to line number between 1 and %1",this.props.maxLine))))}}function q(e){const t=(e.translator||P.nullTranslator).load("jupyterlab");return i().createElement(R,{onClick:e.handleClick,source:t.__("Ln %1, Col %2",e.line,e.column),title:t.__("Go to line number…")})}class J extends d.VDomRenderer{constructor(e){super(new J.Model),this._popup=null,this.addClass(w),this.translator=e||P.nullTranslator}render(){return null===this.model?null:i().createElement(q,{line:this.model.line,column:this.model.column,translator:this.translator,handleClick:()=>this._handleClick()})}_handleClick(){this._popup&&this._popup.dispose();const e=d.ReactWidget.create(i().createElement(V,{handleSubmit:e=>this._handleSubmit(e),currentLine:this.model.line,maxLine:this.model.editor.lineCount,translator:this.translator}));this._popup=I({body:e,anchor:this,align:"right"})}_handleSubmit(e){this.model.editor.setCursorPosition({line:e-1,column:0}),this._popup.dispose(),this.model.editor.focus()}}function Y(e){return i().createElement(h,{spacing:4,onClick:e.handleClick},i().createElement(h,{spacing:4},i().createElement(R,{source:e.terminals}),i().createElement(M.terminalIcon.react,{left:"1px",top:"3px",stylesheet:"statusBar"})),i().createElement(h,{spacing:4},i().createElement(R,{source:e.sessions}),i().createElement(M.kernelIcon.react,{top:"2px",stylesheet:"statusBar"})))}!function(e){class t extends d.VDomModel{constructor(){super(...arguments),this._onSelectionChanged=()=>{const e=this._getAllState(),t=this.editor.getCursorPosition();this._line=t.line+1,this._column=t.column+1,this._triggerChange(e,this._getAllState())},this._line=1,this._column=1,this._editor=null}get editor(){return this._editor}set editor(e){var t;const s=this._editor;(null===(t=null==s?void 0:s.model)||void 0===t?void 0:t.selections)&&s.model.selections.changed.disconnect(this._onSelectionChanged);const n=this._getAllState();if(this._editor=e,this._editor){this._editor.model.selections.changed.connect(this._onSelectionChanged);const e=this._editor.getCursorPosition();this._column=e.column+1,this._line=e.line+1}else this._column=1,this._line=1;this._triggerChange(n,this._getAllState())}get line(){return this._line}get column(){return this._column}_getAllState(){return[this._line,this._column]}_triggerChange(e,t){e[0]===t[0]&&e[1]===t[1]||this.stateChanged.emit(void 0)}}e.Model=t}(J||(J={}));class Q extends d.VDomRenderer{constructor(e){super(new Q.Model),this._serviceManager=e.serviceManager,this._handleClick=e.onClick,this.translator=e.translator||P.nullTranslator,this._trans=this.translator.load("jupyterload"),this._serviceManager.sessions.runningChanged.connect(this._onSessionsRunningChanged,this),this._serviceManager.terminals.runningChanged.connect(this._onTerminalsRunningChanged,this),this.addClass(w)}render(){return this.model?(this.title.caption=this._trans.__("%1 Terminals, %2 Kernel sessions",this.model.terminals,this.model.sessions),i().createElement(Y,{sessions:this.model.sessions,terminals:this.model.terminals,handleClick:this._handleClick})):null}dispose(){super.dispose(),this._serviceManager.sessions.runningChanged.disconnect(this._onSessionsRunningChanged,this),this._serviceManager.terminals.runningChanged.disconnect(this._onTerminalsRunningChanged,this)}_onSessionsRunningChanged(e,t){this.model.sessions=t.length}_onTerminalsRunningChanged(e,t){this.model.terminals=t.length}}!function(e){class t extends d.VDomModel{constructor(){super(...arguments),this._terminals=0,this._sessions=0}get sessions(){return this._sessions}set sessions(e){const t=this._sessions;this._sessions=e,t!==this._sessions&&this.stateChanged.emit(void 0)}get terminals(){return this._terminals}set terminals(e){const t=this._terminals;this._terminals=e,t!==this._terminals&&this.stateChanged.emit(void 0)}}e.Model=t}(Q||(Q={}));var X,Z=s(43892),ee=s(43231);class te extends c.Widget{constructor(){super(),this._leftRankItems=[],this._rightRankItems=[],this._statusItems={},this._disposables=new ee.DisposableSet,this.addClass(b);const e=this.layout=new c.PanelLayout,t=this._leftSide=new c.Panel,s=this._middlePanel=new c.Panel,n=this._rightSide=new c.Panel;t.addClass(x),t.addClass(f),s.addClass(x),n.addClass(x),n.addClass(y),e.addWidget(t),e.addWidget(s),e.addWidget(n)}registerStatusItem(e,t){if(e in this._statusItems)throw new Error(`Status item ${e} already registered.`);const s=Object.assign(Object.assign({},X.statusItemDefaults),t),{align:n,item:i,rank:a}=s,r=()=>{this._refreshItem(e)};s.activeStateChanged&&s.activeStateChanged.connect(r);const o={id:e,rank:a};if(s.item.addClass(k),this._statusItems[e]=s,"left"===n){const e=this._findInsertIndex(this._leftRankItems,o);-1===e?(this._leftSide.addWidget(i),this._leftRankItems.push(o)):(Z.ArrayExt.insert(this._leftRankItems,e,o),this._leftSide.insertWidget(e,i))}else if("right"===n){const e=this._findInsertIndex(this._rightRankItems,o);-1===e?(this._rightSide.addWidget(i),this._rightRankItems.push(o)):(Z.ArrayExt.insert(this._rightRankItems,e,o),this._rightSide.insertWidget(e,i))}else this._middlePanel.addWidget(i);this._refreshItem(e);const l=new ee.DisposableDelegate((()=>{delete this._statusItems[e],s.activeStateChanged&&s.activeStateChanged.disconnect(r),i.parent=null,i.dispose()}));return this._disposables.add(l),l}dispose(){this._leftRankItems.length=0,this._rightRankItems.length=0,this._disposables.dispose(),super.dispose()}onUpdateRequest(e){this._refreshAll(),super.onUpdateRequest(e)}_findInsertIndex(e,t){return Z.ArrayExt.findFirstIndex(e,(e=>e.rank>t.rank))}_refreshItem(e){const t=this._statusItems[e];t.isActive()?(t.item.show(),t.item.update()):t.item.hide()}_refreshAll(){Object.keys(this._statusItems).forEach((e=>{this._refreshItem(e)}))}}!function(e){e.statusItemDefaults={align:"left",rank:0,isActive:()=>!0,activeStateChanged:void 0}}(X||(X={}));const se=new A.Token("@jupyterlab/statusbar:IStatusBar")}}]); +//# sourceMappingURL=5573.ebcdb93.js.map \ No newline at end of file diff --git a/_static/build/5573.ebcdb93.js.map b/_static/build/5573.ebcdb93.js.map new file mode 100644 index 0000000..54314e6 --- /dev/null +++ b/_static/build/5573.ebcdb93.js.map @@ -0,0 +1 @@ +{"version":3,"file":"5573.ebcdb93.js","mappings":"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","sources":["webpack://_JUPYTERLAB.CORE_OUTPUT/../../src/style/layout.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../../src/components/group.tsx","webpack://_JUPYTERLAB.CORE_OUTPUT/../../src/style/variables.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../../src/style/text.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../../src/style/statusbar.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../../src/components/hover.tsx","webpack://_JUPYTERLAB.CORE_OUTPUT/../../src/components/progressBar.tsx","webpack://_JUPYTERLAB.CORE_OUTPUT/../../src/components/text.tsx","webpack://_JUPYTERLAB.CORE_OUTPUT/../../src/components/progressCircle.tsx","webpack://_JUPYTERLAB.CORE_OUTPUT/../../src/defaults/kernelStatus.tsx","webpack://_JUPYTERLAB.CORE_OUTPUT/../../src/style/lineForm.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../../src/defaults/lineCol.tsx","webpack://_JUPYTERLAB.CORE_OUTPUT/../../src/defaults/runningSessions.tsx","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/statusbar.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/tokens.ts"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/_static/build/5666.c5e5324.js b/_static/build/5666.c5e5324.js new file mode 100644 index 0000000..83ba341 --- /dev/null +++ b/_static/build/5666.c5e5324.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[5666],{75666:(e,t,i)=>{i.r(t),i.d(t,{AccordionLayout:()=>P,AccordionPanel:()=>R,BoxEngine:()=>g,BoxLayout:()=>H,BoxPanel:()=>j,BoxSizer:()=>b,CommandPalette:()=>F,ContextMenu:()=>X,DockLayout:()=>Q,DockPanel:()=>$,FocusTracker:()=>te,GridLayout:()=>ie,Layout:()=>x,LayoutItem:()=>C,Menu:()=>U,MenuBar:()=>oe,Panel:()=>B,PanelLayout:()=>E,ScrollBar:()=>se,SingletonLayout:()=>de,SplitLayout:()=>z,SplitPanel:()=>k,StackedLayout:()=>he,StackedPanel:()=>ce,TabBar:()=>G,TabPanel:()=>ue,Title:()=>_,Widget:()=>M});var n=i(43892),o=i(33349),r=i(14064),s=i(89116),a=i(70942),d=i(81563),h=i(26169),c=i(72867),l=i(93383),u=i(43231),p=i(46831),m=function(e,t){return m=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i])},m(e,t)};function f(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function i(){this.constructor=e}m(e,t),e.prototype=null===t?Object.create(t):(i.prototype=t.prototype,new i)}var g,v=function(){return v=Object.assign||function(e){for(var t,i=1,n=arguments.length;i0&&(s+=b.stretch,a++)}if(t===r)return 0;if(t<=n){for(d=0;d=o){for(d=0;d0&&m>u;){var f=m,g=s;for(d=0;d0&&m>u;)for(v=m/p,d=0;d0&&m>u;)for(f=m,g=s,d=0;d=b.maxSize?(m-=b.maxSize-b.size,s-=b.stretch,b.size=b.maxSize,b.done=!0,p--,a--):(m-=v,b.size+=v));for(;p>0&&m>u;)for(v=m/p,d=0;d=b.maxSize?(m-=b.maxSize-b.size,b.size=b.maxSize,b.done=!0,p--):(m-=v,b.size+=v))}}return 0},e.adjust=function(e,t,i){0!==e.length&&0!==i&&(i>0?function(e,t,i){for(var n=0,o=0;o<=t;++o)n+=(h=e[o]).maxSize-h.size;for(var r=0,s=(o=t+1,e.length);o=0&&a>0;--o)(c=(h=e[o]).maxSize-h.size)>=a?(h.sizeHint=h.size+a,a=0):(h.sizeHint=h.size+c,a-=c);var d=i;for(o=t+1,s=e.length;o0;++o){var h,c;(c=(h=e[o]).size-h.minSize)>=d?(h.sizeHint=h.size-d,d=0):(h.sizeHint=h.size-c,d-=c)}}(e,t,i):function(e,t,i){for(var n=0,o=t+1,r=e.length;o0;++o)(c=(h=e[o]).maxSize-h.size)>=a?(h.sizeHint=h.size+a,a=0):(h.sizeHint=h.size+c,a-=c);var d=i;for(o=t;o>=0&&d>0;--o){var h,c;(c=(h=e[o]).size-h.minSize)>=d?(h.sizeHint=h.size-d,d=0):(h.sizeHint=h.size-c,d-=c)}}(e,t,-i))}}(g||(g={}));var y,_=function(){function e(e){this._label="",this._caption="",this._mnemonic=-1,this._iconClass="",this._iconLabel="",this._className="",this._closable=!1,this._changed=new a.Signal(this),this._isDisposed=!1,this.owner=e.owner,void 0!==e.label&&(this._label=e.label),void 0!==e.mnemonic&&(this._mnemonic=e.mnemonic),void 0!==e.icon?"string"==typeof e.icon?(this._icon=null,this._iconClass=e.icon):this._icon=e.icon:this._icon=null,void 0!==e.iconClass&&(this._iconClass=e.iconClass),void 0!==e.iconLabel&&(this._iconLabel=e.iconLabel),void 0!==e.iconRenderer&&(this._icon=e.iconRenderer),void 0!==e.caption&&(this._caption=e.caption),void 0!==e.className&&(this._className=e.className),void 0!==e.closable&&(this._closable=e.closable),this._dataset=e.dataset||{}}return Object.defineProperty(e.prototype,"changed",{get:function(){return this._changed},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"label",{get:function(){return this._label},set:function(e){this._label!==e&&(this._label=e,this._changed.emit(void 0))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"mnemonic",{get:function(){return this._mnemonic},set:function(e){this._mnemonic!==e&&(this._mnemonic=e,this._changed.emit(void 0))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"icon",{get:function(){return null===this._icon?this.iconClass:this._icon},set:function(e){if("string"==typeof e)this._icon=null,this.iconClass=e;else{if(this._icon===e)return;this._icon=e,this._changed.emit(void 0)}},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"iconClass",{get:function(){return this._iconClass},set:function(e){this._iconClass!==e&&(this._iconClass=e,this._changed.emit(void 0))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"iconLabel",{get:function(){return this._iconLabel},set:function(e){this._iconLabel!==e&&(this._iconLabel=e,this._changed.emit(void 0))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"iconRenderer",{get:function(){return this._icon||void 0},set:function(e){this.icon=e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"caption",{get:function(){return this._caption},set:function(e){this._caption!==e&&(this._caption=e,this._changed.emit(void 0))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"className",{get:function(){return this._className},set:function(e){this._className!==e&&(this._className=e,this._changed.emit(void 0))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"closable",{get:function(){return this._closable},set:function(e){this._closable!==e&&(this._closable=e,this._changed.emit(void 0))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"dataset",{get:function(){return this._dataset},set:function(e){this._dataset!==e&&(this._dataset=e,this._changed.emit(void 0))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isDisposed",{get:function(){return this._isDisposed},enumerable:!0,configurable:!0}),e.prototype.dispose=function(){this.isDisposed||(this._isDisposed=!0,a.Signal.clearData(this))},e}(),M=function(){function e(t){void 0===t&&(t={}),this._flags=0,this._layout=null,this._parent=null,this._disposed=new a.Signal(this),this._hiddenMode=e.HiddenMode.Display,this.node=y.createNode(t),this.addClass("lm-Widget"),this.addClass("p-Widget")}return e.prototype.dispose=function(){this.isDisposed||(this.setFlag(e.Flag.IsDisposed),this._disposed.emit(void 0),this.parent?this.parent=null:this.isAttached&&e.detach(this),this._layout&&(this._layout.dispose(),this._layout=null),this.title.dispose(),a.Signal.clearData(this),r.MessageLoop.clearData(this),s.AttachedProperty.clearData(this))},Object.defineProperty(e.prototype,"disposed",{get:function(){return this._disposed},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isDisposed",{get:function(){return this.testFlag(e.Flag.IsDisposed)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isAttached",{get:function(){return this.testFlag(e.Flag.IsAttached)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isHidden",{get:function(){return this.testFlag(e.Flag.IsHidden)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isVisible",{get:function(){return this.testFlag(e.Flag.IsVisible)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"title",{get:function(){return y.titleProperty.get(this)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"id",{get:function(){return this.node.id},set:function(e){this.node.id=e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"dataset",{get:function(){return this.node.dataset},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"hiddenMode",{get:function(){return this._hiddenMode},set:function(t){this._hiddenMode!==t&&(this.isHidden&&this._toggleHidden(!1),t==e.HiddenMode.Scale?this.node.style.willChange="transform":this.node.style.willChange="auto",this._hiddenMode=t,this.isHidden&&this._toggleHidden(!0))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"parent",{get:function(){return this._parent},set:function(t){if(this._parent!==t){if(t&&this.contains(t))throw new Error("Invalid parent widget.");if(this._parent&&!this._parent.isDisposed){var i=new e.ChildMessage("child-removed",this);r.MessageLoop.sendMessage(this._parent,i)}this._parent=t,this._parent&&!this._parent.isDisposed&&(i=new e.ChildMessage("child-added",this),r.MessageLoop.sendMessage(this._parent,i)),this.isDisposed||r.MessageLoop.sendMessage(this,e.Msg.ParentChanged)}},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"layout",{get:function(){return this._layout},set:function(t){if(this._layout!==t){if(this.testFlag(e.Flag.DisallowLayout))throw new Error("Cannot set widget layout.");if(this._layout)throw new Error("Cannot change widget layout.");if(t.parent)throw new Error("Cannot change layout parent.");this._layout=t,t.parent=this}},enumerable:!0,configurable:!0}),e.prototype.children=function(){return this._layout?this._layout.iter():(0,n.empty)()},e.prototype.contains=function(e){for(var t=e;t;t=t._parent)if(t===this)return!0;return!1},e.prototype.hasClass=function(e){return this.node.classList.contains(e)},e.prototype.addClass=function(e){this.node.classList.add(e)},e.prototype.removeClass=function(e){this.node.classList.remove(e)},e.prototype.toggleClass=function(e,t){return!0===t?(this.node.classList.add(e),!0):!1===t?(this.node.classList.remove(e),!1):this.node.classList.toggle(e)},e.prototype.update=function(){r.MessageLoop.postMessage(this,e.Msg.UpdateRequest)},e.prototype.fit=function(){r.MessageLoop.postMessage(this,e.Msg.FitRequest)},e.prototype.activate=function(){r.MessageLoop.postMessage(this,e.Msg.ActivateRequest)},e.prototype.close=function(){r.MessageLoop.sendMessage(this,e.Msg.CloseRequest)},e.prototype.show=function(){if(this.testFlag(e.Flag.IsHidden)&&(!this.isAttached||this.parent&&!this.parent.isVisible||r.MessageLoop.sendMessage(this,e.Msg.BeforeShow),this.clearFlag(e.Flag.IsHidden),this.node.removeAttribute("aria-hidden"),this._toggleHidden(!1),!this.isAttached||this.parent&&!this.parent.isVisible||r.MessageLoop.sendMessage(this,e.Msg.AfterShow),this.parent)){var t=new e.ChildMessage("child-shown",this);r.MessageLoop.sendMessage(this.parent,t)}},e.prototype.hide=function(){if(!this.testFlag(e.Flag.IsHidden)&&(!this.isAttached||this.parent&&!this.parent.isVisible||r.MessageLoop.sendMessage(this,e.Msg.BeforeHide),this.setFlag(e.Flag.IsHidden),this.node.setAttribute("aria-hidden","true"),this._toggleHidden(!0),!this.isAttached||this.parent&&!this.parent.isVisible||r.MessageLoop.sendMessage(this,e.Msg.AfterHide),this.parent)){var t=new e.ChildMessage("child-hidden",this);r.MessageLoop.sendMessage(this.parent,t)}},e.prototype.setHidden=function(e){e?this.hide():this.show()},e.prototype.testFlag=function(e){return 0!=(this._flags&e)},e.prototype.setFlag=function(e){this._flags|=e},e.prototype.clearFlag=function(e){this._flags&=~e},e.prototype.processMessage=function(t){switch(t.type){case"resize":this.notifyLayout(t),this.onResize(t);break;case"update-request":this.notifyLayout(t),this.onUpdateRequest(t);break;case"fit-request":this.notifyLayout(t),this.onFitRequest(t);break;case"before-show":this.notifyLayout(t),this.onBeforeShow(t);break;case"after-show":this.setFlag(e.Flag.IsVisible),this.notifyLayout(t),this.onAfterShow(t);break;case"before-hide":this.notifyLayout(t),this.onBeforeHide(t);break;case"after-hide":this.clearFlag(e.Flag.IsVisible),this.notifyLayout(t),this.onAfterHide(t);break;case"before-attach":this.notifyLayout(t),this.onBeforeAttach(t);break;case"after-attach":this.isHidden||this.parent&&!this.parent.isVisible||this.setFlag(e.Flag.IsVisible),this.setFlag(e.Flag.IsAttached),this.notifyLayout(t),this.onAfterAttach(t);break;case"before-detach":this.notifyLayout(t),this.onBeforeDetach(t);break;case"after-detach":this.clearFlag(e.Flag.IsVisible),this.clearFlag(e.Flag.IsAttached),this.notifyLayout(t),this.onAfterDetach(t);break;case"activate-request":this.notifyLayout(t),this.onActivateRequest(t);break;case"close-request":this.notifyLayout(t),this.onCloseRequest(t);break;case"child-added":this.notifyLayout(t),this.onChildAdded(t);break;case"child-removed":this.notifyLayout(t),this.onChildRemoved(t);break;default:this.notifyLayout(t)}},e.prototype.notifyLayout=function(e){this._layout&&this._layout.processParentMessage(e)},e.prototype.onCloseRequest=function(t){this.parent?this.parent=null:this.isAttached&&e.detach(this)},e.prototype.onResize=function(e){},e.prototype.onUpdateRequest=function(e){},e.prototype.onFitRequest=function(e){},e.prototype.onActivateRequest=function(e){},e.prototype.onBeforeShow=function(e){},e.prototype.onAfterShow=function(e){},e.prototype.onBeforeHide=function(e){},e.prototype.onAfterHide=function(e){},e.prototype.onBeforeAttach=function(e){},e.prototype.onAfterAttach=function(e){},e.prototype.onBeforeDetach=function(e){},e.prototype.onAfterDetach=function(e){},e.prototype.onChildAdded=function(e){},e.prototype.onChildRemoved=function(e){},e.prototype._toggleHidden=function(t){if(t)switch(this._hiddenMode){case e.HiddenMode.Display:this.addClass("lm-mod-hidden"),this.addClass("p-mod-hidden");break;case e.HiddenMode.Scale:this.node.style.transform="scale(0)";break;case e.HiddenMode.ContentVisibility:this.node.style.contentVisibility="hidden",this.node.style.zIndex="-1"}else switch(this._hiddenMode){case e.HiddenMode.Display:this.removeClass("lm-mod-hidden"),this.removeClass("p-mod-hidden");break;case e.HiddenMode.Scale:this.node.style.transform="";break;case e.HiddenMode.ContentVisibility:this.node.style.contentVisibility="",this.node.style.zIndex=""}},e}();!function(e){var t,i,n;(t=e.HiddenMode||(e.HiddenMode={}))[t.Display=0]="Display",t[t.Scale=1]="Scale",t[t.ContentVisibility=2]="ContentVisibility",(i=e.Flag||(e.Flag={}))[i.IsDisposed=1]="IsDisposed",i[i.IsAttached=2]="IsAttached",i[i.IsHidden=4]="IsHidden",i[i.IsVisible=8]="IsVisible",i[i.DisallowLayout=16]="DisallowLayout",(n=e.Msg||(e.Msg={})).BeforeShow=new r.Message("before-show"),n.AfterShow=new r.Message("after-show"),n.BeforeHide=new r.Message("before-hide"),n.AfterHide=new r.Message("after-hide"),n.BeforeAttach=new r.Message("before-attach"),n.AfterAttach=new r.Message("after-attach"),n.BeforeDetach=new r.Message("before-detach"),n.AfterDetach=new r.Message("after-detach"),n.ParentChanged=new r.Message("parent-changed"),n.UpdateRequest=new r.ConflatableMessage("update-request"),n.FitRequest=new r.ConflatableMessage("fit-request"),n.ActivateRequest=new r.ConflatableMessage("activate-request"),n.CloseRequest=new r.ConflatableMessage("close-request");var o=function(e){function t(t,i){var n=e.call(this,t)||this;return n.child=i,n}return f(t,e),t}(r.Message);e.ChildMessage=o;var s=function(e){function t(t,i){var n=e.call(this,"resize")||this;return n.width=t,n.height=i,n}return f(t,e),t}(r.Message);e.ResizeMessage=s,function(e){e.UnknownSize=new e(-1,-1)}(s=e.ResizeMessage||(e.ResizeMessage={})),e.attach=function(t,i,n){if(void 0===n&&(n=null),t.parent)throw new Error("Cannot attach a child widget.");if(t.isAttached||t.node.isConnected)throw new Error("Widget is already attached.");if(!i.isConnected)throw new Error("Host is not attached.");r.MessageLoop.sendMessage(t,e.Msg.BeforeAttach),i.insertBefore(t.node,n),r.MessageLoop.sendMessage(t,e.Msg.AfterAttach)},e.detach=function(t){if(t.parent)throw new Error("Cannot detach a child widget.");if(!t.isAttached||!t.node.isConnected)throw new Error("Widget is not attached.");r.MessageLoop.sendMessage(t,e.Msg.BeforeDetach),t.node.parentNode.removeChild(t.node),r.MessageLoop.sendMessage(t,e.Msg.AfterDetach)}}(M||(M={})),function(e){e.titleProperty=new s.AttachedProperty({name:"title",create:function(e){return new _({owner:e})}}),e.createNode=function(e){return e.node||document.createElement(e.tag||"div")}}(y||(y={}));var x=function(){function e(e){void 0===e&&(e={}),this._disposed=!1,this._parent=null,this._fitPolicy=e.fitPolicy||"set-min-size"}return e.prototype.dispose=function(){this._parent=null,this._disposed=!0,a.Signal.clearData(this),s.AttachedProperty.clearData(this)},Object.defineProperty(e.prototype,"isDisposed",{get:function(){return this._disposed},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"parent",{get:function(){return this._parent},set:function(e){if(this._parent!==e){if(this._parent)throw new Error("Cannot change parent widget.");if(e.layout!==this)throw new Error("Invalid parent widget.");this._parent=e,this.init()}},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"fitPolicy",{get:function(){return this._fitPolicy},set:function(e){if(this._fitPolicy!==e&&(this._fitPolicy=e,this._parent)){var t=this._parent.node.style;t.minWidth="",t.minHeight="",t.maxWidth="",t.maxHeight="",this._parent.fit()}},enumerable:!0,configurable:!0}),e.prototype.processParentMessage=function(e){switch(e.type){case"resize":this.onResize(e);break;case"update-request":this.onUpdateRequest(e);break;case"fit-request":this.onFitRequest(e);break;case"before-show":this.onBeforeShow(e);break;case"after-show":this.onAfterShow(e);break;case"before-hide":this.onBeforeHide(e);break;case"after-hide":this.onAfterHide(e);break;case"before-attach":this.onBeforeAttach(e);break;case"after-attach":this.onAfterAttach(e);break;case"before-detach":this.onBeforeDetach(e);break;case"after-detach":this.onAfterDetach(e);break;case"child-removed":this.onChildRemoved(e);break;case"child-shown":this.onChildShown(e);break;case"child-hidden":this.onChildHidden(e)}},e.prototype.init=function(){var e=this;(0,n.each)(this,(function(t){t.parent=e.parent}))},e.prototype.onResize=function(e){(0,n.each)(this,(function(e){r.MessageLoop.sendMessage(e,M.ResizeMessage.UnknownSize)}))},e.prototype.onUpdateRequest=function(e){(0,n.each)(this,(function(e){r.MessageLoop.sendMessage(e,M.ResizeMessage.UnknownSize)}))},e.prototype.onBeforeAttach=function(e){(0,n.each)(this,(function(t){r.MessageLoop.sendMessage(t,e)}))},e.prototype.onAfterAttach=function(e){(0,n.each)(this,(function(t){r.MessageLoop.sendMessage(t,e)}))},e.prototype.onBeforeDetach=function(e){(0,n.each)(this,(function(t){r.MessageLoop.sendMessage(t,e)}))},e.prototype.onAfterDetach=function(e){(0,n.each)(this,(function(t){r.MessageLoop.sendMessage(t,e)}))},e.prototype.onBeforeShow=function(e){(0,n.each)(this,(function(t){t.isHidden||r.MessageLoop.sendMessage(t,e)}))},e.prototype.onAfterShow=function(e){(0,n.each)(this,(function(t){t.isHidden||r.MessageLoop.sendMessage(t,e)}))},e.prototype.onBeforeHide=function(e){(0,n.each)(this,(function(t){t.isHidden||r.MessageLoop.sendMessage(t,e)}))},e.prototype.onAfterHide=function(e){(0,n.each)(this,(function(t){t.isHidden||r.MessageLoop.sendMessage(t,e)}))},e.prototype.onChildRemoved=function(e){this.removeWidget(e.child)},e.prototype.onFitRequest=function(e){},e.prototype.onChildShown=function(e){},e.prototype.onChildHidden=function(e){},e}();!function(e){e.getHorizontalAlignment=function(e){return w.horizontalAlignmentProperty.get(e)},e.setHorizontalAlignment=function(e,t){w.horizontalAlignmentProperty.set(e,t)},e.getVerticalAlignment=function(e){return w.verticalAlignmentProperty.get(e)},e.setVerticalAlignment=function(e,t){w.verticalAlignmentProperty.set(e,t)}}(x||(x={}));var w,C=function(){function e(e){this._top=NaN,this._left=NaN,this._width=NaN,this._height=NaN,this._minWidth=0,this._minHeight=0,this._maxWidth=1/0,this._maxHeight=1/0,this._disposed=!1,this.widget=e,this.widget.node.style.position="absolute"}return e.prototype.dispose=function(){if(!this._disposed){this._disposed=!0;var e=this.widget.node.style;e.position="",e.top="",e.left="",e.width="",e.height=""}},Object.defineProperty(e.prototype,"minWidth",{get:function(){return this._minWidth},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"minHeight",{get:function(){return this._minHeight},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"maxWidth",{get:function(){return this._maxWidth},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"maxHeight",{get:function(){return this._maxHeight},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isDisposed",{get:function(){return this._disposed},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isHidden",{get:function(){return this.widget.isHidden},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isVisible",{get:function(){return this.widget.isVisible},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isAttached",{get:function(){return this.widget.isAttached},enumerable:!0,configurable:!0}),e.prototype.fit=function(){var e=o.ElementExt.sizeLimits(this.widget.node);this._minWidth=e.minWidth,this._minHeight=e.minHeight,this._maxWidth=e.maxWidth,this._maxHeight=e.maxHeight},e.prototype.update=function(e,t,i,n){var o=Math.max(this._minWidth,Math.min(i,this._maxWidth)),s=Math.max(this._minHeight,Math.min(n,this._maxHeight));if(o0;)this._widgets.pop().dispose();e.prototype.dispose.call(this)},Object.defineProperty(t.prototype,"widgets",{get:function(){return this._widgets},enumerable:!0,configurable:!0}),t.prototype.iter=function(){return(0,n.iter)(this._widgets)},t.prototype.addWidget=function(e){this.insertWidget(this._widgets.length,e)},t.prototype.insertWidget=function(e,t){t.parent=this.parent;var i=this._widgets.indexOf(t),o=Math.max(0,Math.min(e,this._widgets.length));if(-1===i)return n.ArrayExt.insert(this._widgets,o,t),void(this.parent&&this.attachWidget(o,t));o===this._widgets.length&&o--,i!==o&&(n.ArrayExt.move(this._widgets,i,o),this.parent&&this.moveWidget(i,o,t))},t.prototype.removeWidget=function(e){this.removeWidgetAt(this._widgets.indexOf(e))},t.prototype.removeWidgetAt=function(e){var t=n.ArrayExt.removeAt(this._widgets,e);t&&this.parent&&this.detachWidget(e,t)},t.prototype.init=function(){var t=this;e.prototype.init.call(this),(0,n.each)(this,(function(e,i){t.attachWidget(i,e)}))},t.prototype.attachWidget=function(e,t){var i=this.parent.node.children[e];this.parent.isAttached&&r.MessageLoop.sendMessage(t,M.Msg.BeforeAttach),this.parent.node.insertBefore(t.node,i),this.parent.isAttached&&r.MessageLoop.sendMessage(t,M.Msg.AfterAttach)},t.prototype.moveWidget=function(e,t,i){this.parent.isAttached&&r.MessageLoop.sendMessage(i,M.Msg.BeforeDetach),this.parent.node.removeChild(i.node),this.parent.isAttached&&r.MessageLoop.sendMessage(i,M.Msg.AfterDetach);var n=this.parent.node.children[t];this.parent.isAttached&&r.MessageLoop.sendMessage(i,M.Msg.BeforeAttach),this.parent.node.insertBefore(i.node,n),this.parent.isAttached&&r.MessageLoop.sendMessage(i,M.Msg.AfterAttach)},t.prototype.detachWidget=function(e,t){this.parent.isAttached&&r.MessageLoop.sendMessage(t,M.Msg.BeforeDetach),this.parent.node.removeChild(t.node),this.parent.isAttached&&r.MessageLoop.sendMessage(t,M.Msg.AfterDetach)},t}(x);!function(e){e.clampDimension=function(e){return Math.max(0,Math.floor(e))}}(L||(L={}));var A,S=L,z=function(e){function t(t){var i=e.call(this)||this;return i.widgetOffset=0,i._fixed=0,i._spacing=4,i._dirty=!1,i._hasNormedSizes=!1,i._sizers=[],i._items=[],i._handles=[],i._box=null,i._alignment="start",i._orientation="horizontal",i.renderer=t.renderer,void 0!==t.orientation&&(i._orientation=t.orientation),void 0!==t.alignment&&(i._alignment=t.alignment),void 0!==t.spacing&&(i._spacing=L.clampDimension(t.spacing)),i}return f(t,e),t.prototype.dispose=function(){(0,n.each)(this._items,(function(e){e.dispose()})),this._box=null,this._items.length=0,this._sizers.length=0,this._handles.length=0,e.prototype.dispose.call(this)},Object.defineProperty(t.prototype,"orientation",{get:function(){return this._orientation},set:function(e){this._orientation!==e&&(this._orientation=e,this.parent&&(this.parent.dataset.orientation=e,this.parent.fit()))},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"alignment",{get:function(){return this._alignment},set:function(e){this._alignment!==e&&(this._alignment=e,this.parent&&(this.parent.dataset.alignment=e,this.parent.update()))},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"spacing",{get:function(){return this._spacing},set:function(e){e=L.clampDimension(e),this._spacing!==e&&(this._spacing=e,this.parent&&this.parent.fit())},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"handles",{get:function(){return this._handles},enumerable:!0,configurable:!0}),t.prototype.absoluteSizes=function(){return this._sizers.map((function(e){return e.size}))},t.prototype.relativeSizes=function(){return A.normalize(this._sizers.map((function(e){return e.size})))},t.prototype.setRelativeSizes=function(e,t){void 0===t&&(t=!0);for(var i=this._sizers.length,n=e.slice(0,i);n.length0&&(s.sizeHint=s.size)}g.adjust(this._sizers,e,i),this.parent&&this.parent.update()}},t.prototype.init=function(){this.parent.dataset.orientation=this.orientation,this.parent.dataset.alignment=this.alignment,e.prototype.init.call(this)},t.prototype.attachWidget=function(e,t){var i=new C(t),o=A.createHandle(this.renderer),s=A.averageSize(this._sizers),a=A.createSizer(s);n.ArrayExt.insert(this._items,e,i),n.ArrayExt.insert(this._sizers,e,a),n.ArrayExt.insert(this._handles,e,o),this.parent.isAttached&&r.MessageLoop.sendMessage(t,M.Msg.BeforeAttach),this.parent.node.appendChild(t.node),this.parent.node.appendChild(o),this.parent.isAttached&&r.MessageLoop.sendMessage(t,M.Msg.AfterAttach),this.parent.fit()},t.prototype.moveWidget=function(e,t,i){n.ArrayExt.move(this._items,e,t),n.ArrayExt.move(this._sizers,e,t),n.ArrayExt.move(this._handles,e,t),this.parent.fit()},t.prototype.detachWidget=function(e,t){var i=n.ArrayExt.removeAt(this._items,e),o=n.ArrayExt.removeAt(this._handles,e);n.ArrayExt.removeAt(this._sizers,e),this.parent.isAttached&&r.MessageLoop.sendMessage(t,M.Msg.BeforeDetach),this.parent.node.removeChild(t.node),this.parent.node.removeChild(o),this.parent.isAttached&&r.MessageLoop.sendMessage(t,M.Msg.AfterDetach),i.dispose(),this.parent.fit()},t.prototype.onBeforeShow=function(t){e.prototype.onBeforeShow.call(this,t),this.parent.update()},t.prototype.onBeforeAttach=function(t){e.prototype.onBeforeAttach.call(this,t),this.parent.fit()},t.prototype.onChildShown=function(e){this.parent.fit()},t.prototype.onChildHidden=function(e){this.parent.fit()},t.prototype.onResize=function(e){this.parent.isVisible&&this._update(e.width,e.height)},t.prototype.onUpdateRequest=function(e){this.parent.isVisible&&this._update(-1,-1)},t.prototype.onFitRequest=function(e){this.parent.isAttached&&this._fit()},t.prototype.updateItemPosition=function(e,t,i,n,o,r,s){var a=this._items[e];if(!a.isHidden){var d=this._handles[e].style;t?(i+=this.widgetOffset,a.update(i,n,s,o),i+=s,d.top=n+"px",d.left=i+"px",d.width=this._spacing+"px",d.height=o+"px"):(n+=this.widgetOffset,a.update(i,n,r,s),n+=s,d.top=n+"px",d.left=i+"px",d.width=r+"px",d.height=this._spacing+"px")}},t.prototype._fit=function(){for(var e=0,i=-1,n=0,s=this._items.length;n0&&(l.sizeHint=l.size),c.isHidden?(l.minSize=0,l.maxSize=0):(c.fit(),l.stretch=t.getStretch(c.widget),a?(l.minSize=c.minWidth,l.maxSize=c.maxWidth,d+=c.minWidth,h=Math.max(h,c.minHeight)):(l.minSize=c.minHeight,l.maxSize=c.maxHeight,h+=c.minHeight,d=Math.max(d,c.minWidth)))}var u=this._box=o.ElementExt.boxSizing(this.parent.node);d+=u.horizontalSum,h+=u.verticalSum;var p=this.parent.node.style;p.minWidth=d+"px",p.minHeight=h+"px",this._dirty=!0,this.parent.parent&&r.MessageLoop.sendMessage(this.parent.parent,M.Msg.FitRequest),this._dirty&&r.MessageLoop.sendMessage(this.parent,M.Msg.UpdateRequest)},t.prototype._update=function(e,t){this._dirty=!1;for(var i=0,n=0,r=this._items.length;n0){var p;if(p=u?Math.max(0,d-this._fixed):Math.max(0,h-this._fixed),this._hasNormedSizes){for(var m=0,f=this._sizers;m0)switch(this._alignment){case"start":break;case"center":c=0,l=v/2;break;case"end":c=0,l=v;break;case"justify":c=v/i,l=0;break;default:throw"unreachable"}}for(n=0,r=this._items.length;n=0&&(this.layout.updateTitle(t,e.owner),this.update())},t.prototype._computeWidgetSize=function(e){var t=this.layout,i=t.widgets[e];if(i){var n=i.isHidden,o=t.absoluteSizes(),r=(n?-1:1)*this.spacing,s=o.reduce((function(e,t){return e+t})),a=function(){for(var e=0,t=0,i=arguments.length;t0})).lastIndexOf(!0))?a.forEach((function(t,i){i!==e&&(a[i]-=o[i]/s*(d-r))})):a[h]-=d-r}else{var h,c=o[e];if(this._widgetSizesCache.set(i,c),a[e]=0,-1===(h=a.map((function(e){return e>0})).lastIndexOf(!0)))return;a[h]=o[h]+c+r}return a.map((function(e){return e/(s+r)}))}},t.prototype._evtClick=function(e){var t=e.target;if(t){var i=n.ArrayExt.findFirstIndex(this.titles,(function(e){return e.contains(t)}));i>=0&&(e.preventDefault(),e.stopPropagation(),this._toggleExpansion(i))}},t.prototype._eventKeyDown=function(e){if(!e.defaultPrevented){var t=e.target,i=!1;if(t){var o=n.ArrayExt.findFirstIndex(this.titles,(function(e){return e.contains(t)}));if(o>=0){var r=e.keyCode.toString();if(e.key.match(/Space|Enter/)||r.match(/13|32/))t.click(),i=!0;else if("horizontal"===this.orientation?e.key.match(/ArrowLeft|ArrowRight/)||r.match(/37|39/):e.key.match(/ArrowUp|ArrowDown/)||r.match(/38|40/)){var s=e.key.match(/ArrowLeft|ArrowUp/)||r.match(/37|38/)?-1:1,a=this.titles.length,d=(o+a+s)%a;this.titles[d].focus(),i=!0}else"End"===e.key||"35"===r?(this.titles[this.titles.length-1].focus(),i=!0):"Home"!==e.key&&"36"!==r||(this.titles[0].focus(),i=!0)}i&&e.preventDefault()}}},t.prototype._toggleExpansion=function(e){var t=this.titles[e],i=this.layout.widgets[e],n=this._computeWidgetSize(e);n&&this.setRelativeSizes(n,!1),i.isHidden?(t.classList.add("lm-mod-expanded"),t.setAttribute("aria-expanded","true"),i.show()):(t.classList.remove("lm-mod-expanded"),t.setAttribute("aria-expanded","false"),i.hide())},t}(k);!function(e){var t=function(e){function t(){var i=e.call(this)||this;return i.titleClassName="lm-AccordionPanel-title",i._titleID=0,i._titleKeys=new WeakMap,i._uuid=++t._nInstance,i}return f(t,e),t.prototype.createCollapseIcon=function(e){return document.createElement("span")},t.prototype.createSectionTitle=function(e){var t=document.createElement("h3");for(var i in t.setAttribute("role","button"),t.setAttribute("tabindex","0"),t.id=this.createTitleKey(e),t.className=this.titleClassName,e.dataset)t.dataset[i]=e.dataset[i];t.appendChild(this.createCollapseIcon(e)).className="lm-AccordionPanel-titleCollapser";var n=t.appendChild(document.createElement("span"));return n.className="lm-AccordionPanel-titleLabel",n.textContent=e.label,n.title=e.caption||e.label,t},t.prototype.createTitleKey=function(e){var t=this._titleKeys.get(e);return void 0===t&&(t="title-key-"+this._uuid+"-"+this._titleID++,this._titleKeys.set(e,t)),t},t._nInstance=0,t}(k.Renderer);e.Renderer=t,e.defaultRenderer=new t}(R||(R={})),function(e){e.createLayout=function(e){return e.layout||new P({renderer:e.renderer||R.defaultRenderer,orientation:e.orientation,alignment:e.alignment,spacing:e.spacing,titleSpace:e.titleSpace})}}(O||(O={}));var N,H=function(e){function t(t){void 0===t&&(t={});var i=e.call(this)||this;return i._fixed=0,i._spacing=4,i._dirty=!1,i._sizers=[],i._items=[],i._box=null,i._alignment="start",i._direction="top-to-bottom",void 0!==t.direction&&(i._direction=t.direction),void 0!==t.alignment&&(i._alignment=t.alignment),void 0!==t.spacing&&(i._spacing=S.clampDimension(t.spacing)),i}return f(t,e),t.prototype.dispose=function(){(0,n.each)(this._items,(function(e){e.dispose()})),this._box=null,this._items.length=0,this._sizers.length=0,e.prototype.dispose.call(this)},Object.defineProperty(t.prototype,"direction",{get:function(){return this._direction},set:function(e){this._direction!==e&&(this._direction=e,this.parent&&(this.parent.dataset.direction=e,this.parent.fit()))},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"alignment",{get:function(){return this._alignment},set:function(e){this._alignment!==e&&(this._alignment=e,this.parent&&(this.parent.dataset.alignment=e,this.parent.update()))},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"spacing",{get:function(){return this._spacing},set:function(e){e=S.clampDimension(e),this._spacing!==e&&(this._spacing=e,this.parent&&this.parent.fit())},enumerable:!0,configurable:!0}),t.prototype.init=function(){this.parent.dataset.direction=this.direction,this.parent.dataset.alignment=this.alignment,e.prototype.init.call(this)},t.prototype.attachWidget=function(e,t){n.ArrayExt.insert(this._items,e,new C(t)),n.ArrayExt.insert(this._sizers,e,new b),this.parent.isAttached&&r.MessageLoop.sendMessage(t,M.Msg.BeforeAttach),this.parent.node.appendChild(t.node),this.parent.isAttached&&r.MessageLoop.sendMessage(t,M.Msg.AfterAttach),this.parent.fit()},t.prototype.moveWidget=function(e,t,i){n.ArrayExt.move(this._items,e,t),n.ArrayExt.move(this._sizers,e,t),this.parent.update()},t.prototype.detachWidget=function(e,t){var i=n.ArrayExt.removeAt(this._items,e);n.ArrayExt.removeAt(this._sizers,e),this.parent.isAttached&&r.MessageLoop.sendMessage(t,M.Msg.BeforeDetach),this.parent.node.removeChild(t.node),this.parent.isAttached&&r.MessageLoop.sendMessage(t,M.Msg.AfterDetach),i.dispose(),this.parent.fit()},t.prototype.onBeforeShow=function(t){e.prototype.onBeforeShow.call(this,t),this.parent.update()},t.prototype.onBeforeAttach=function(t){e.prototype.onBeforeAttach.call(this,t),this.parent.fit()},t.prototype.onChildShown=function(e){this.parent.fit()},t.prototype.onChildHidden=function(e){this.parent.fit()},t.prototype.onResize=function(e){this.parent.isVisible&&this._update(e.width,e.height)},t.prototype.onUpdateRequest=function(e){this.parent.isVisible&&this._update(-1,-1)},t.prototype.onFitRequest=function(e){this.parent.isAttached&&this._fit()},t.prototype._fit=function(){for(var e=0,i=0,n=this._items.length;i0)switch(this._alignment){case"start":break;case"center":l=0,u=s/2;break;case"end":l=0,u=s;break;case"justify":l=s/i,u=0;break;default:throw"unreachable"}for(n=0,r=this._items.length;n=r.length)i.scrollTop=0;else{var b=i.children[d];o.ElementExt.scrollIntoViewIfNeeded(i,b)}}else l.VirtualDOM.render(null,i)},t.prototype._evtClick=function(e){if(0===e.button){if(e.target.classList.contains("lm-close-icon"))return this.inputNode.value="",void this.refresh();var t=n.ArrayExt.findFirstIndex(this.contentNode.children,(function(t){return t.contains(e.target)}));-1!==t&&(e.preventDefault(),e.stopPropagation(),this._execute(t))}},t.prototype._evtKeyDown=function(e){if(!(e.altKey||e.ctrlKey||e.metaKey||e.shiftKey))switch(e.keyCode){case 13:e.preventDefault(),e.stopPropagation(),this._execute(this._activeIndex);break;case 38:e.preventDefault(),e.stopPropagation(),this._activatePreviousItem();break;case 40:e.preventDefault(),e.stopPropagation(),this._activateNextItem()}},t.prototype._activateNextItem=function(){if(this._results&&0!==this._results.length){var e=this._activeIndex,t=this._results.length,i=e=this._items.length)&&(e=-1),-1===e||V.canActivate(this._items[e])||(e=-1),this._activeIndex!==e&&(this._activeIndex=e,this._activeIndex>=0&&this.contentNode.childNodes[this._activeIndex]&&this.contentNode.childNodes[this._activeIndex].focus(),this.update())},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"items",{get:function(){return this._items},enumerable:!0,configurable:!0}),t.prototype.activateNextItem=function(){var e=this._items.length,t=this._activeIndex,i=t=i.length)return i;var o=i.slice(0,n),r=i.slice(n+1),s=i[n];return[o,l.h.span({className:"lm-Menu-itemMnemonic p-Menu-itemMnemonic"},s),r]},e.prototype.formatShortcut=function(e){var t=e.item.keyBinding;return t?c.CommandRegistry.formatKeystroke(t.keys):null},e}();e.Renderer=t,e.defaultRenderer=new t}(U||(U={})),function(e){e.TIMER_DELAY=300,e.SUBMENU_OVERLAP=3;var t=null,i=0;function s(){return i>0?(i--,t):d()}function a(e){return"separator"!==e.type&&e.isEnabled&&e.isVisible}function d(){return{pageXOffset:window.pageXOffset,pageYOffset:window.pageYOffset,clientWidth:document.documentElement.clientWidth,clientHeight:document.documentElement.clientHeight}}e.saveWindowData=function(){t=d(),i++},e.createNode=function(){var e=document.createElement("div"),t=document.createElement("ul");return t.className="lm-Menu-content",t.classList.add("p-Menu-content"),e.appendChild(t),t.setAttribute("role","menu"),e.tabIndex=0,e},e.canActivate=a,e.createItem=function(e,t){return new c(e.commands,t)},e.hitTestMenus=function(e,t,i){for(var n=e;n;n=n.childMenu)if(o.ElementExt.hitTest(n.node,t,i))return!0;return!1},e.computeCollapsed=function(e){var t=new Array(e.length);n.ArrayExt.fill(t,!1);for(var i=0,o=e.length;i=0;--r)if((a=e[r]).isVisible){if("separator"!==a.type)break;t[r]=!0}for(var s=!1;++id+c&&(t=d+c-g),!o&&i+v>h+l&&(i>h+l?i=h+l-v:i-=v),m.transform="translate("+Math.max(0,t)+"px, "+Math.max(0,i)+"px",m.opacity="1"},e.openSubmenu=function(t,i){var n=s(),a=n.pageXOffset,d=n.pageYOffset,h=n.clientWidth,c=n.clientHeight;r.MessageLoop.sendMessage(t,M.Msg.UpdateRequest);var l=c,u=t.node,p=u.style;p.opacity="0",p.maxHeight=l+"px",M.attach(t,document.body);var m=u.getBoundingClientRect(),f=m.width,g=m.height,v=o.ElementExt.boxSizing(t.node),b=i.getBoundingClientRect(),y=b.right-e.SUBMENU_OVERLAP;y+f>a+h&&(y=b.left+e.SUBMENU_OVERLAP-f);var _=b.top-v.borderTop-v.paddingTop;_+g>d+c&&(_=b.bottom+v.borderBottom+v.paddingBottom-g),p.transform="translate("+Math.max(0,y)+"px, "+Math.max(0,_)+"px",p.opacity="1"},e.findMnemonic=function(e,t,i){for(var n=-1,o=-1,r=!1,s=t.toUpperCase(),d=0,h=e.length;d=0&&p=this._titles.length)&&(e=-1),this._currentIndex!==e){var t=this._currentIndex,i=this._titles[t]||null,n=e,o=this._titles[n]||null;this._currentIndex=n,this._previousTitle=i,this.update(),this._currentChanged.emit({previousIndex:t,previousTitle:i,currentIndex:n,currentTitle:o})}},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"name",{get:function(){return this._name},set:function(e){this._name=e,e?this.contentNode.setAttribute("aria-label",e):this.contentNode.removeAttribute("aria-label")},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"orientation",{get:function(){return this._orientation},set:function(e){this._orientation!==e&&(this._releaseMouse(),this._orientation=e,this.dataset.orientation=e,this.contentNode.setAttribute("aria-orientation",e))},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"addButtonEnabled",{get:function(){return this._addButtonEnabled},set:function(e){this._addButtonEnabled!==e&&(this._addButtonEnabled=e,e?this.addButtonNode.classList.remove("lm-mod-hidden"):this.addButtonNode.classList.add("lm-mod-hidden"))},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"titles",{get:function(){return this._titles},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"contentNode",{get:function(){return this.node.getElementsByClassName("lm-TabBar-content")[0]},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"addButtonNode",{get:function(){return this.node.getElementsByClassName("lm-TabBar-addButton")[0]},enumerable:!0,configurable:!0}),t.prototype.addTab=function(e){return this.insertTab(this._titles.length,e)},t.prototype.insertTab=function(e,t){this._releaseMouse();var i=K.asTitle(t),o=this._titles.indexOf(i),r=Math.max(0,Math.min(e,this._titles.length));return-1===o?(n.ArrayExt.insert(this._titles,r,i),i.changed.connect(this._onTitleChanged,this),this.update(),this._adjustCurrentForInsert(r,i),i):(r===this._titles.length&&r--,o===r||(n.ArrayExt.move(this._titles,o,r),this.update(),this._adjustCurrentForMove(o,r)),i)},t.prototype.removeTab=function(e){this.removeTabAt(this._titles.indexOf(e))},t.prototype.removeTabAt=function(e){this._releaseMouse();var t=n.ArrayExt.removeAt(this._titles,e);t&&(t.changed.disconnect(this._onTitleChanged,this),t===this._previousTitle&&(this._previousTitle=null),this.update(),this._adjustCurrentForRemove(e,t))},t.prototype.clearTabs=function(){if(0!==this._titles.length){this._releaseMouse();for(var e=0,t=this._titles;e0&&s.children[0].focus()}}}},t.prototype._evtKeyDown=function(e){e.preventDefault(),e.stopPropagation(),27===e.keyCode&&this._releaseMouse()},t.prototype._evtMouseDown=function(e){if((0===e.button||1===e.button)&&!this._dragData){var t=this.addButtonEnabled&&this.addButtonNode.contains(e.target),i=this.contentNode.children,r=n.ArrayExt.findFirstIndex(i,(function(t){return o.ElementExt.hitTest(t,e.clientX,e.clientY)}));if((-1!==r||t)&&(e.preventDefault(),e.stopPropagation(),this._dragData={tab:i[r],index:r,pressX:e.clientX,pressY:e.clientY,tabPos:-1,tabSize:-1,tabPressPos:-1,targetIndex:-1,tabLayout:null,contentRect:null,override:null,dragActive:!1,dragAborted:!1,detachRequested:!1},this.document.addEventListener("mouseup",this,!0),this.document.addEventListener("pointerup",this,!0),1!==e.button&&!t)){var s=i[r].querySelector(this.renderer.closeIconSelector);s&&s.contains(e.target)||(this.tabsMovable&&(this.document.addEventListener("mousemove",this,!0),this.document.addEventListener("pointermove",this,!0),this.document.addEventListener("keydown",this,!0),this.document.addEventListener("contextmenu",this,!0)),this.allowDeselect&&this.currentIndex===r?this.currentIndex=-1:this.currentIndex=r,-1!==this.currentIndex&&this._tabActivateRequested.emit({index:this.currentIndex,title:this.currentTitle}))}}},t.prototype._evtMouseMove=function(e){var t=this._dragData;if(t){e.preventDefault(),e.stopPropagation();var i=this.contentNode.children;if(t.dragActive||K.dragExceeded(t,e)){if(!t.dragActive){var n=t.tab.getBoundingClientRect();"horizontal"===this._orientation?(t.tabPos=t.tab.offsetLeft,t.tabSize=n.width,t.tabPressPos=t.pressX-n.left):(t.tabPos=t.tab.offsetTop,t.tabSize=n.height,t.tabPressPos=t.pressY-n.top),t.tabLayout=K.snapTabLayout(i,this._orientation),t.contentRect=this.contentNode.getBoundingClientRect(),t.override=d.Drag.overrideCursor("default"),t.tab.classList.add("lm-mod-dragging"),this.addClass("lm-mod-dragging"),t.tab.classList.add("p-mod-dragging"),this.addClass("p-mod-dragging"),t.dragActive=!0}if(!t.detachRequested&&K.detachExceeded(t,e)){t.detachRequested=!0;var o=t.index,r=e.clientX,s=e.clientY,a=i[o],h=this._titles[o];if(this._tabDetachRequested.emit({index:o,title:h,tab:a,clientX:r,clientY:s}),t.dragAborted)return}K.layoutTabs(i,t,e,this._orientation)}}},t.prototype._evtMouseUp=function(e){var t=this;if(0===e.button||1===e.button){var i=this._dragData;if(i){if(e.preventDefault(),e.stopPropagation(),this.document.removeEventListener("mousemove",this,!0),this.document.removeEventListener("mouseup",this,!0),this.document.removeEventListener("pointermove",this,!0),this.document.removeEventListener("pointerup",this,!0),this.document.removeEventListener("keydown",this,!0),this.document.removeEventListener("contextmenu",this,!0),!i.dragActive){if(this._dragData=null,this.addButtonEnabled&&this.addButtonNode.contains(e.target))return void this._addRequested.emit(void 0);var s=this.contentNode.children,a=n.ArrayExt.findFirstIndex(s,(function(t){return o.ElementExt.hitTest(t,e.clientX,e.clientY)}));if(a!==i.index)return;var d=this._titles[a];if(!d.closable)return;if(1===e.button)return void this._tabCloseRequested.emit({index:a,title:d});var h=s[a].querySelector(this.renderer.closeIconSelector);return h&&h.contains(e.target)?void this._tabCloseRequested.emit({index:a,title:d}):void 0}if(0===e.button){K.finalizeTabPosition(i,this._orientation),i.tab.classList.remove("lm-mod-dragging"),i.tab.classList.remove("p-mod-dragging");var c=K.parseTransitionDuration(i.tab);setTimeout((function(){if(!i.dragAborted){t._dragData=null,K.resetTabPositions(t.contentNode.children,t._orientation),i.override.dispose(),t.removeClass("lm-mod-dragging"),t.removeClass("p-mod-dragging");var e=i.index,o=i.targetIndex;-1!==o&&e!==o&&(n.ArrayExt.move(t._titles,e,o),t._adjustCurrentForMove(e,o),t._tabMoved.emit({fromIndex:e,toIndex:o,title:t._titles[o]}),r.MessageLoop.sendMessage(t,M.Msg.UpdateRequest))}}),c)}}}},t.prototype._releaseMouse=function(){var e=this._dragData;e&&(this._dragData=null,this.document.removeEventListener("mousemove",this,!0),this.document.removeEventListener("mouseup",this,!0),this.document.removeEventListener("pointermove",this,!0),this.document.removeEventListener("pointerup",this,!0),this.document.removeEventListener("keydown",this,!0),this.document.removeEventListener("contextmenu",this,!0),e.dragAborted=!0,e.dragActive&&(K.resetTabPositions(this.contentNode.children,this._orientation),e.override.dispose(),e.tab.classList.remove("lm-mod-dragging"),this.removeClass("lm-mod-dragging"),e.tab.classList.remove("p-mod-dragging"),this.removeClass("p-mod-dragging")))},t.prototype._adjustCurrentForInsert=function(e,t){var i=this.currentTitle,n=this._currentIndex,o=this.insertBehavior;if("select-tab"===o||"select-tab-if-needed"===o&&-1===n)return this._currentIndex=e,this._previousTitle=i,void this._currentChanged.emit({previousIndex:n,previousTitle:i,currentIndex:e,currentTitle:t});n>=e&&this._currentIndex++},t.prototype._adjustCurrentForMove=function(e,t){this._currentIndex===e?this._currentIndex=t:this._currentIndex=t?this._currentIndex++:this._currentIndex>e&&this._currentIndex<=t&&this._currentIndex--},t.prototype._adjustCurrentForRemove=function(e,t){var i=this._currentIndex,n=this.removeBehavior;if(i===e){if(0===this._titles.length)return this._currentIndex=-1,void this._currentChanged.emit({previousIndex:e,previousTitle:t,currentIndex:-1,currentTitle:null});if("select-tab-after"===n)return this._currentIndex=Math.min(e,this._titles.length-1),void this._currentChanged.emit({previousIndex:e,previousTitle:t,currentIndex:this._currentIndex,currentTitle:this.currentTitle});if("select-tab-before"===n)return this._currentIndex=Math.max(0,e-1),void this._currentChanged.emit({previousIndex:e,previousTitle:t,currentIndex:this._currentIndex,currentTitle:this.currentTitle});if("select-previous-tab"===n)return this._previousTitle?(this._currentIndex=this._titles.indexOf(this._previousTitle),this._previousTitle=null):this._currentIndex=Math.min(e,this._titles.length-1),void this._currentChanged.emit({previousIndex:e,previousTitle:t,currentIndex:this._currentIndex,currentTitle:this.currentTitle});this._currentIndex=-1,this._currentChanged.emit({previousIndex:e,previousTitle:t,currentIndex:-1,currentTitle:null})}else i>e&&this._currentIndex--},t.prototype._onTitleChanged=function(e){this.update()},t}(M);!function(e){var t=function(){function e(){this.closeIconSelector=".lm-TabBar-tabCloseIcon",this._tabID=0,this._tabKeys=new WeakMap,this._uuid=++e._nInstance}return e.prototype.renderTab=function(e){var t=e.title.caption,i=this.createTabKey(e),n=i,o=this.createTabStyle(e),r=this.createTabClass(e),s=this.createTabDataset(e),a=this.createTabARIA(e);return e.title.closable?l.h.li(v({id:n,key:i,className:r,title:t,style:o,dataset:s},a),this.renderIcon(e),this.renderLabel(e),this.renderCloseIcon(e)):l.h.li(v({id:n,key:i,className:r,title:t,style:o,dataset:s},a),this.renderIcon(e),this.renderLabel(e))},e.prototype.renderIcon=function(e){var t=e.title,i=this.createIconClass(e);return"string"==typeof t.icon?l.h.div({className:i},t.iconLabel):l.h.div({className:i},t.icon,t.iconLabel)},e.prototype.renderLabel=function(e){return l.h.div({className:"lm-TabBar-tabLabel p-TabBar-tabLabel"},e.title.label)},e.prototype.renderCloseIcon=function(e){return l.h.div({className:"lm-TabBar-tabCloseIcon p-TabBar-tabCloseIcon"})},e.prototype.createTabKey=function(e){var t=this._tabKeys.get(e.title);return void 0===t&&(t="tab-key-"+this._uuid+"-"+this._tabID++,this._tabKeys.set(e.title,t)),t},e.prototype.createTabStyle=function(e){return{zIndex:""+e.zIndex}},e.prototype.createTabClass=function(e){var t="lm-TabBar-tab";return t+=" p-TabBar-tab",e.title.className&&(t+=" "+e.title.className),e.title.closable&&(t+=" lm-mod-closable",t+=" p-mod-closable"),e.current&&(t+=" lm-mod-current",t+=" p-mod-current"),t},e.prototype.createTabDataset=function(e){return e.title.dataset},e.prototype.createTabARIA=function(e){return{role:"tab","aria-selected":e.current.toString()}},e.prototype.createIconClass=function(e){var t="lm-TabBar-tabIcon";t+=" p-TabBar-tabIcon";var i=e.title.iconClass;return i?t+" "+i:t},e._nInstance=0,e}();e.Renderer=t,e.defaultRenderer=new t,e.addButtonSelector=".lm-TabBar-addButton"}(G||(G={})),function(e){e.DRAG_THRESHOLD=5,e.DETACH_THRESHOLD=20,e.createNode=function(){var e=document.createElement("div"),t=document.createElement("ul");t.setAttribute("role","tablist"),t.className="lm-TabBar-content",t.classList.add("p-TabBar-content"),e.appendChild(t);var i=document.createElement("div");return i.className="lm-TabBar-addButton lm-mod-hidden",e.appendChild(i),e},e.asTitle=function(e){return e instanceof _?e:new _(e)},e.parseTransitionDuration=function(e){var t=window.getComputedStyle(e);return 1e3*(parseFloat(t.transitionDuration)||0)},e.snapTabLayout=function(e,t){for(var i=new Array(e.length),n=0,o=e.length;n=e.DRAG_THRESHOLD||o>=e.DRAG_THRESHOLD},e.detachExceeded=function(t,i){var n=t.contentRect;return i.clientX=n.right+e.DETACH_THRESHOLD||i.clientY=n.bottom+e.DETACH_THRESHOLD},e.layoutTabs=function(e,t,i,n){var o,r,s,a;"horizontal"===n?(o=t.pressX,r=i.clientX-t.contentRect.left,s=i.clientX,a=t.contentRect.width):(o=t.pressY,r=i.clientY-t.contentRect.top,s=i.clientY,a=t.contentRect.height);for(var d=t.index,h=r-t.tabPressPos,c=h+t.tabSize,l=0,u=e.length;l>1);if(lt.index&&c>f)p=-t.tabSize-m.margin+"px",d=Math.max(d,l);else if(l===t.index){var g=s-o,v=a-(t.tabPos+t.tabSize);p=Math.max(-t.tabPos,Math.min(g,v))+"px"}else p="";"horizontal"===n?e[l].style.left=p:e[l].style.top=p}t.targetIndex=d},e.finalizeTabPosition=function(e,t){var i,n;if(i="horizontal"===t?e.contentRect.width:e.contentRect.height,e.targetIndex===e.index)n=0;else if(e.targetIndex>e.index)n=(o=e.tabLayout[e.targetIndex]).pos+o.size-e.tabSize-e.tabPos;else{var o;n=(o=e.tabLayout[e.targetIndex]).pos-e.tabPos}var r=i-(e.tabPos+e.tabSize),s=Math.max(-e.tabPos,Math.min(n,r));"horizontal"===t?e.tab.style.left=s+"px":e.tab.style.top=s+"px"},e.resetTabPositions=function(e,t){(0,n.each)(e,(function(e){"horizontal"===t?e.style.left="":e.style.top=""}))}}(K||(K={}));var J,Q=function(e){function t(t){var i=e.call(this)||this;return i._spacing=4,i._dirty=!1,i._root=null,i._box=null,i._items=new Map,i.renderer=t.renderer,void 0!==t.spacing&&(i._spacing=S.clampDimension(t.spacing)),i._document=t.document||document,i._hiddenMode=void 0!==t.hiddenMode?t.hiddenMode:M.HiddenMode.Display,i}return f(t,e),t.prototype.dispose=function(){var t=this.iter();this._items.forEach((function(e){e.dispose()})),this._box=null,this._root=null,this._items.clear(),(0,n.each)(t,(function(e){e.dispose()})),e.prototype.dispose.call(this)},Object.defineProperty(t.prototype,"hiddenMode",{get:function(){return this._hiddenMode},set:function(e){var t=this;this._hiddenMode!==e&&(this._hiddenMode=e,(0,n.each)(this.tabBars(),(function(e){e.titles.length>1&&e.titles.forEach((function(e){e.owner.hiddenMode=t._hiddenMode}))})))},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"spacing",{get:function(){return this._spacing},set:function(e){e=S.clampDimension(e),this._spacing!==e&&(this._spacing=e,this.parent&&this.parent.fit())},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isEmpty",{get:function(){return null===this._root},enumerable:!0,configurable:!0}),t.prototype.iter=function(){return this._root?this._root.iterAllWidgets():(0,n.empty)()},t.prototype.widgets=function(){return this._root?this._root.iterUserWidgets():(0,n.empty)()},t.prototype.selectedWidgets=function(){return this._root?this._root.iterSelectedWidgets():(0,n.empty)()},t.prototype.tabBars=function(){return this._root?this._root.iterTabBars():(0,n.empty)()},t.prototype.handles=function(){return this._root?this._root.iterHandles():(0,n.empty)()},t.prototype.moveHandle=function(e,t,i){var n=e.classList.contains("lm-mod-hidden");if(n=n||e.classList.contains("p-mod-hidden"),this._root&&!n){var o,r=this._root.findSplitNode(e);r&&0!=(o="horizontal"===r.node.orientation?t-e.offsetLeft:i-e.offsetTop)&&(r.node.holdSizes(),g.adjust(r.node.sizers,r.index,o),this.parent&&this.parent.update())}},t.prototype.saveLayout=function(){return this._root?(this._root.holdAllSizes(),{main:this._root.createConfig()}):{main:null}},t.prototype.restoreLayout=function(e){var t,i=this,o=new Set;t=e.main?J.normalizeAreaConfig(e.main,o):null;var r=this.widgets(),s=this.tabBars(),a=this.handles();this._root=null,(0,n.each)(r,(function(e){o.has(e)||(e.parent=null)})),(0,n.each)(s,(function(e){e.dispose()})),(0,n.each)(a,(function(e){e.parentNode&&e.parentNode.removeChild(e)})),o.forEach((function(e){e.parent=i.parent})),this._root=t?J.realizeAreaConfig(t,{createTabBar:function(e){return i._createTabBar()},createHandle:function(){return i._createHandle()}},this._document):null,this.parent&&(o.forEach((function(e){i.attachWidget(e)})),this.parent.fit())},t.prototype.addWidget=function(e,t){void 0===t&&(t={});var i=t.ref||null,n=t.mode||"tab-after",o=null;if(this._root&&i&&(o=this._root.findTabNode(i)),i&&!o)throw new Error("Reference widget is not in the layout.");switch(e.parent=this.parent,n){case"tab-after":this._insertTab(e,i,o,!0);break;case"tab-before":this._insertTab(e,i,o,!1);break;case"split-top":this._insertSplit(e,i,o,"vertical",!1);break;case"split-left":this._insertSplit(e,i,o,"horizontal",!1);break;case"split-right":this._insertSplit(e,i,o,"horizontal",!0);break;case"split-bottom":this._insertSplit(e,i,o,"vertical",!0)}this.parent&&(this.attachWidget(e),this.parent.fit())},t.prototype.removeWidget=function(e){this._removeWidget(e),this.parent&&(this.detachWidget(e),this.parent.fit())},t.prototype.hitTestTabAreas=function(e,t){if(!this._root||!this.parent||!this.parent.isVisible)return null;this._box||(this._box=o.ElementExt.boxSizing(this.parent.node));var i=this.parent.node.getBoundingClientRect(),n=e-i.left-this._box.borderLeft,r=t-i.top-this._box.borderTop,s=this._root.hitTestTabNodes(n,r);if(!s)return null;var a=s.tabBar,d=s.top,h=s.left,c=s.width,l=s.height,u=this._box.borderLeft+this._box.borderRight,p=this._box.borderTop+this._box.borderBottom;return{tabBar:a,x:n,y:r,top:d,left:h,right:i.width-u-(h+c),bottom:i.height-p-(d+l),width:c,height:l}},t.prototype.init=function(){var t=this;e.prototype.init.call(this),(0,n.each)(this,(function(e){t.attachWidget(e)})),(0,n.each)(this.handles(),(function(e){t.parent.node.appendChild(e)})),this.parent.fit()},t.prototype.attachWidget=function(e){this.parent.node!==e.node.parentNode&&(this._items.set(e,new C(e)),this.parent.isAttached&&r.MessageLoop.sendMessage(e,M.Msg.BeforeAttach),this.parent.node.appendChild(e.node),this.parent.isAttached&&r.MessageLoop.sendMessage(e,M.Msg.AfterAttach))},t.prototype.detachWidget=function(e){if(this.parent.node===e.node.parentNode){this.parent.isAttached&&r.MessageLoop.sendMessage(e,M.Msg.BeforeDetach),this.parent.node.removeChild(e.node),this.parent.isAttached&&r.MessageLoop.sendMessage(e,M.Msg.AfterDetach);var t=this._items.get(e);t&&(this._items.delete(e),t.dispose())}},t.prototype.onBeforeShow=function(t){e.prototype.onBeforeShow.call(this,t),this.parent.update()},t.prototype.onBeforeAttach=function(t){e.prototype.onBeforeAttach.call(this,t),this.parent.fit()},t.prototype.onChildShown=function(e){this.parent.fit()},t.prototype.onChildHidden=function(e){this.parent.fit()},t.prototype.onResize=function(e){this.parent.isVisible&&this._update(e.width,e.height)},t.prototype.onUpdateRequest=function(e){this.parent.isVisible&&this._update(-1,-1)},t.prototype.onFitRequest=function(e){this.parent.isAttached&&this._fit()},t.prototype._removeWidget=function(e){if(this._root){var t=this._root.findTabNode(e);if(t)if(J.removeAria(e),t.tabBar.titles.length>1)t.tabBar.removeTab(e.title),this._hiddenMode===M.HiddenMode.Scale&&1==t.tabBar.titles.length&&(t.tabBar.titles[0].owner.hiddenMode=M.HiddenMode.Display);else if(t.tabBar.dispose(),this._root!==t){this._root.holdAllSizes();var i=t.parent;t.parent=null;var o=n.ArrayExt.removeFirstOf(i.children,t),r=n.ArrayExt.removeAt(i.handles,o);if(n.ArrayExt.removeAt(i.sizers,o),r.parentNode&&r.parentNode.removeChild(r),i.children.length>1)i.syncHandles();else{var s=i.parent;i.parent=null;var a=i.children[0],d=i.handles[0];if(i.children.length=0,i.handles.length=0,i.sizers.length=0,d.parentNode&&d.parentNode.removeChild(d),this._root===i)return a.parent=null,void(this._root=a);var h=s,c=h.children.indexOf(i);if(a instanceof J.TabLayoutNode)return a.parent=h,void(h.children[c]=a);var l=n.ArrayExt.removeAt(h.handles,c);n.ArrayExt.removeAt(h.children,c),n.ArrayExt.removeAt(h.sizers,c),l.parentNode&&l.parentNode.removeChild(l);for(var u=0,p=a.children.length;u=i.length)&&(o=0),{type:"tab-area",widgets:i,currentIndex:o}}(t,i):function(t,i){for(var n=t.orientation,o=[],r=[],s=0,a=t.children.length;s=this._left+this._width||t=this._top+this._height?null:this},e.prototype.createConfig=function(){return{type:"tab-area",widgets:this.tabBar.titles.map((function(e){return e.owner})),currentIndex:this.tabBar.currentIndex}},e.prototype.holdAllSizes=function(){},e.prototype.fit=function(e,t){var i=0,n=0,o=t.get(this.tabBar),r=this.tabBar.currentTitle,s=r?t.get(r.owner):void 0,a=this.sizers,d=a[0],h=a[1];return o&&o.fit(),s&&s.fit(),o&&!o.isHidden?(i=Math.max(i,o.minWidth),n+=o.minHeight,d.minSize=o.minHeight,d.maxSize=o.maxHeight):(d.minSize=0,d.maxSize=0),s&&!s.isHidden?(i=Math.max(i,s.minWidth),n+=s.minHeight,h.minSize=s.minHeight,h.maxSize=1/0):(h.minSize=0,h.maxSize=1/0),{minWidth:i,minHeight:n,maxWidth:1/0,maxHeight:1/0}},e.prototype.update=function(e,t,i,n,o,r){this._top=t,this._left=e,this._width=i,this._height=n;var s=r.get(this.tabBar),a=this.tabBar.currentTitle,d=a?r.get(a.owner):void 0;if(g.calc(this.sizers,n),s&&!s.isHidden){var h=this.sizers[0].size;s.update(e,t,i,h),t+=h}d&&!d.isHidden&&(h=this.sizers[1].size,d.update(e,t,i,h))},e}();e.TabLayoutNode=i;var o=function(){function e(e){this.parent=null,this.normalized=!1,this.children=[],this.sizers=[],this.handles=[],this.orientation=e}return e.prototype.iterAllWidgets=function(){var e=(0,n.map)(this.children,(function(e){return e.iterAllWidgets()}));return new n.ChainIterator(e)},e.prototype.iterUserWidgets=function(){var e=(0,n.map)(this.children,(function(e){return e.iterUserWidgets()}));return new n.ChainIterator(e)},e.prototype.iterSelectedWidgets=function(){var e=(0,n.map)(this.children,(function(e){return e.iterSelectedWidgets()}));return new n.ChainIterator(e)},e.prototype.iterTabBars=function(){var e=(0,n.map)(this.children,(function(e){return e.iterTabBars()}));return new n.ChainIterator(e)},e.prototype.iterHandles=function(){var e=(0,n.map)(this.children,(function(e){return e.iterHandles()}));return(0,n.chain)(this.handles,new n.ChainIterator(e))},e.prototype.findTabNode=function(e){for(var t=0,i=this.children.length;tv&&m>v&&p>b&&f>b)return{zone:"widget-all",target:l};switch(u/=v,p/=b,m/=v,f/=b,Math.min(u,p,m,f)){case u:g="widget-left";break;case p:g="widget-top";break;case m:g="widget-right";break;case f:g="widget-bottom";break;default:throw"unreachable"}return{zone:g,target:l}},e.getDropRef=function(e){return 0===e.titles.length?null:e.currentTitle?e.currentTitle.owner:e.titles[e.titles.length-1].owner}}(Z||(Z={}));var ee,te=function(){function e(){this._counter=0,this._widgets=[],this._activeWidget=null,this._currentWidget=null,this._numbers=new Map,this._nodes=new Map,this._activeChanged=new a.Signal(this),this._currentChanged=new a.Signal(this)}return e.prototype.dispose=function(){var e=this;this._counter<0||(this._counter=-1,a.Signal.clearData(this),(0,n.each)(this._widgets,(function(t){t.node.removeEventListener("focus",e,!0),t.node.removeEventListener("blur",e,!0)})),this._activeWidget=null,this._currentWidget=null,this._nodes.clear(),this._numbers.clear(),this._widgets.length=0)},Object.defineProperty(e.prototype,"currentChanged",{get:function(){return this._currentChanged},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"activeChanged",{get:function(){return this._activeChanged},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isDisposed",{get:function(){return this._counter<0},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"currentWidget",{get:function(){return this._currentWidget},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"activeWidget",{get:function(){return this._activeWidget},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"widgets",{get:function(){return this._widgets},enumerable:!0,configurable:!0}),e.prototype.focusNumber=function(e){var t=this._numbers.get(e);return void 0===t?-1:t},e.prototype.has=function(e){return this._numbers.has(e)},e.prototype.add=function(e){if(!this._numbers.has(e)){var t=e.node.contains(document.activeElement),i=t?this._counter++:-1;this._widgets.push(e),this._numbers.set(e,i),this._nodes.set(e.node,e),e.node.addEventListener("focus",this,!0),e.node.addEventListener("blur",this,!0),e.disposed.connect(this._onWidgetDisposed,this),t&&this._setWidgets(e,e)}},e.prototype.remove=function(e){var t=this;if(this._numbers.has(e)&&(e.disposed.disconnect(this._onWidgetDisposed,this),e.node.removeEventListener("focus",this,!0),e.node.removeEventListener("blur",this,!0),n.ArrayExt.removeFirstOf(this._widgets,e),this._nodes.delete(e.node),this._numbers.delete(e),this._currentWidget===e)){var i=(0,n.filter)(this._widgets,(function(e){return-1!==t._numbers.get(e)})),o=(0,n.max)(i,(function(e,i){return t._numbers.get(e)-t._numbers.get(i)}))||null;this._setWidgets(o,null)}},e.prototype.handleEvent=function(e){switch(e.type){case"focus":this._evtFocus(e);break;case"blur":this._evtBlur(e)}},e.prototype._setWidgets=function(e,t){var i=this._currentWidget;this._currentWidget=e;var n=this._activeWidget;this._activeWidget=t,i!==e&&this._currentChanged.emit({oldValue:i,newValue:e}),n!==t&&this._activeChanged.emit({oldValue:n,newValue:t})},e.prototype._evtFocus=function(e){var t=this._nodes.get(e.currentTarget);t!==this._currentWidget&&this._numbers.set(t,this._counter++),this._setWidgets(t,t)},e.prototype._evtBlur=function(e){var t=this._nodes.get(e.currentTarget),i=e.relatedTarget;i&&(t.node.contains(i)||(0,n.find)(this._widgets,(function(e){return e.node.contains(i)})))||this._setWidgets(this._currentWidget,null)},e.prototype._onWidgetDisposed=function(e){this.remove(e)},e}(),ie=function(e){function t(t){void 0===t&&(t={});var i=e.call(this,t)||this;return i._dirty=!1,i._rowSpacing=4,i._columnSpacing=4,i._items=[],i._rowStarts=[],i._columnStarts=[],i._rowSizers=[new b],i._columnSizers=[new b],i._box=null,void 0!==t.rowCount&&ee.reallocSizers(i._rowSizers,t.rowCount),void 0!==t.columnCount&&ee.reallocSizers(i._columnSizers,t.columnCount),void 0!==t.rowSpacing&&(i._rowSpacing=ee.clampValue(t.rowSpacing)),void 0!==t.columnSpacing&&(i._columnSpacing=ee.clampValue(t.columnSpacing)),i}return f(t,e),t.prototype.dispose=function(){(0,n.each)(this._items,(function(e){var t=e.widget;e.dispose(),t.dispose()})),this._box=null,this._items.length=0,this._rowStarts.length=0,this._rowSizers.length=0,this._columnStarts.length=0,this._columnSizers.length=0,e.prototype.dispose.call(this)},Object.defineProperty(t.prototype,"rowCount",{get:function(){return this._rowSizers.length},set:function(e){e!==this.rowCount&&(ee.reallocSizers(this._rowSizers,e),this.parent&&this.parent.fit())},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"columnCount",{get:function(){return this._columnSizers.length},set:function(e){e!==this.columnCount&&(ee.reallocSizers(this._columnSizers,e),this.parent&&this.parent.fit())},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"rowSpacing",{get:function(){return this._rowSpacing},set:function(e){e=ee.clampValue(e),this._rowSpacing!==e&&(this._rowSpacing=e,this.parent&&this.parent.fit())},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"columnSpacing",{get:function(){return this._columnSpacing},set:function(e){e=ee.clampValue(e),this._columnSpacing!==e&&(this._columnSpacing=e,this.parent&&this.parent.fit())},enumerable:!0,configurable:!0}),t.prototype.rowStretch=function(e){var t=this._rowSizers[e];return t?t.stretch:-1},t.prototype.setRowStretch=function(e,t){var i=this._rowSizers[e];i&&(t=ee.clampValue(t),i.stretch!==t&&(i.stretch=t,this.parent&&this.parent.update()))},t.prototype.columnStretch=function(e){var t=this._columnSizers[e];return t?t.stretch:-1},t.prototype.setColumnStretch=function(e,t){var i=this._columnSizers[e];i&&(t=ee.clampValue(t),i.stretch!==t&&(i.stretch=t,this.parent&&this.parent.update()))},t.prototype.iter=function(){return(0,n.map)(this._items,(function(e){return e.widget}))},t.prototype.addWidget=function(e){-1===n.ArrayExt.findFirstIndex(this._items,(function(t){return t.widget===e}))&&(this._items.push(new C(e)),this.parent&&this.attachWidget(e))},t.prototype.removeWidget=function(e){var t=n.ArrayExt.findFirstIndex(this._items,(function(t){return t.widget===e}));if(-1!==t){var i=n.ArrayExt.removeAt(this._items,t);this.parent&&this.detachWidget(e),i.dispose()}},t.prototype.init=function(){var t=this;e.prototype.init.call(this),(0,n.each)(this,(function(e){t.attachWidget(e)}))},t.prototype.attachWidget=function(e){this.parent.isAttached&&r.MessageLoop.sendMessage(e,M.Msg.BeforeAttach),this.parent.node.appendChild(e.node),this.parent.isAttached&&r.MessageLoop.sendMessage(e,M.Msg.AfterAttach),this.parent.fit()},t.prototype.detachWidget=function(e){this.parent.isAttached&&r.MessageLoop.sendMessage(e,M.Msg.BeforeDetach),this.parent.node.removeChild(e.node),this.parent.isAttached&&r.MessageLoop.sendMessage(e,M.Msg.AfterDetach),this.parent.fit()},t.prototype.onBeforeShow=function(t){e.prototype.onBeforeShow.call(this,t),this.parent.update()},t.prototype.onBeforeAttach=function(t){e.prototype.onBeforeAttach.call(this,t),this.parent.fit()},t.prototype.onChildShown=function(e){this.parent.fit()},t.prototype.onChildHidden=function(e){this.parent.fit()},t.prototype.onResize=function(e){this.parent.isVisible&&this._update(e.width,e.height)},t.prototype.onUpdateRequest=function(e){this.parent.isVisible&&this._update(-1,-1)},t.prototype.onFitRequest=function(e){this.parent.isAttached&&this._fit()},t.prototype._fit=function(){for(var e=0,i=this.rowCount;et&&(e.length=t)},e.distributeMin=function(e,t,i,n){if(!(i=n)){var s=(n-o)/(i-t+1);for(r=t;r<=i;++r)e[r].minSize+=s}}else{var a=e[t];a.minSize=Math.max(a.minSize,n)}}}(ee||(ee={}));var ne,oe=function(e){function t(i){void 0===i&&(i={});var n=e.call(this,{node:ne.createNode()})||this;return n._activeIndex=-1,n._tabFocusIndex=0,n._menus=[],n._childMenu=null,n.addClass("lm-MenuBar"),n.addClass("p-MenuBar"),n.setFlag(M.Flag.DisallowLayout),n.renderer=i.renderer||t.defaultRenderer,n._forceItemsPosition=i.forceItemsPosition||{forceX:!0,forceY:!0},n}return f(t,e),t.prototype.dispose=function(){this._closeChildMenu(),this._menus.length=0,e.prototype.dispose.call(this)},Object.defineProperty(t.prototype,"childMenu",{get:function(){return this._childMenu},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"contentNode",{get:function(){return this.node.getElementsByClassName("lm-MenuBar-content")[0]},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"activeMenu",{get:function(){return this._menus[this._activeIndex]||null},set:function(e){this.activeIndex=e?this._menus.indexOf(e):-1},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"activeIndex",{get:function(){return this._activeIndex},set:function(e){(e<0||e>=this._menus.length)&&(e=-1),this._activeIndex!==e&&(this._activeIndex=e,-1!==e&&(this._tabFocusIndex=e),this._activeIndex>=0&&this.contentNode.childNodes[this._activeIndex]&&this.contentNode.childNodes[this._activeIndex].focus(),this.update())},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"menus",{get:function(){return this._menus},enumerable:!0,configurable:!0}),t.prototype.openActiveMenu=function(){-1!==this._activeIndex&&(this._openChildMenu(),this._childMenu&&(this._childMenu.activeIndex=-1,this._childMenu.activateNextItem()))},t.prototype.addMenu=function(e){this.insertMenu(this._menus.length,e)},t.prototype.insertMenu=function(e,t){this._closeChildMenu();var i=this._menus.indexOf(t),o=Math.max(0,Math.min(e,this._menus.length));if(-1===i)return n.ArrayExt.insert(this._menus,o,t),t.addClass("lm-MenuBar-menu"),t.addClass("p-MenuBar-menu"),t.aboutToClose.connect(this._onMenuAboutToClose,this),t.menuRequested.connect(this._onMenuMenuRequested,this),t.title.changed.connect(this._onTitleChanged,this),void this.update();o===this._menus.length&&o--,i!==o&&(n.ArrayExt.move(this._menus,i,o),this.update())},t.prototype.removeMenu=function(e){this.removeMenuAt(this._menus.indexOf(e))},t.prototype.removeMenuAt=function(e){this._closeChildMenu();var t=n.ArrayExt.removeAt(this._menus,e);t&&(t.aboutToClose.disconnect(this._onMenuAboutToClose,this),t.menuRequested.disconnect(this._onMenuMenuRequested,this),t.title.changed.disconnect(this._onTitleChanged,this),t.removeClass("lm-MenuBar-menu"),t.removeClass("p-MenuBar-menu"),this.update())},t.prototype.clearMenus=function(){if(0!==this._menus.length){this._closeChildMenu();for(var e=0,t=this._menus;e=0&&this._tabFocusIndex0&&i.open(o,s,this._forceItemsPosition)}}else this._closeChildMenu()},t.prototype._closeChildMenu=function(){if(this._childMenu){this.removeClass("lm-mod-active"),this.removeClass("p-mod-active"),document.removeEventListener("mousedown",this,!0);var e=this._childMenu;this._childMenu=null,e.close(),this.activeIndex=-1}},t.prototype._onMenuAboutToClose=function(e){e===this._childMenu&&(this.removeClass("lm-mod-active"),this.removeClass("p-mod-active"),document.removeEventListener("mousedown",this,!0),this._childMenu=null,this.activeIndex=-1)},t.prototype._onMenuMenuRequested=function(e,t){if(e===this._childMenu){var i=this._activeIndex,n=this._menus.length;switch(t){case"next":this.activeIndex=i===n-1?0:i+1;break;case"previous":this.activeIndex=0===i?n-1:i-1}this.openActiveMenu()}},t.prototype._onTitleChanged=function(){this.update()},t}(M);!function(e){var t=function(){function e(){}return e.prototype.renderItem=function(e){var t=this.createItemClass(e),i=this.createItemDataset(e),n=this.createItemARIA(e);return l.h.li(v({className:t,dataset:i,tabindex:e.tabbable?"0":"-1",onfocus:e.onfocus},n),this.renderIcon(e),this.renderLabel(e))},e.prototype.renderIcon=function(e){var t=this.createIconClass(e);return"string"==typeof e.title.icon?l.h.div({className:t},e.title.iconLabel):l.h.div({className:t},e.title.icon,e.title.iconLabel)},e.prototype.renderLabel=function(e){var t=this.formatLabel(e);return l.h.div({className:"lm-MenuBar-itemLabel p-MenuBar-itemLabel"},t)},e.prototype.createItemClass=function(e){var t="lm-MenuBar-item";return t+=" p-MenuBar-item",e.title.className&&(t+=" "+e.title.className),e.active&&(t+=" lm-mod-active",t+=" p-mod-active"),t},e.prototype.createItemDataset=function(e){return e.title.dataset},e.prototype.createItemARIA=function(e){return{role:"menuitem","aria-haspopup":"true"}},e.prototype.createIconClass=function(e){var t="lm-MenuBar-itemIcon";t+=" p-MenuBar-itemIcon";var i=e.title.iconClass;return i?t+" "+i:t},e.prototype.formatLabel=function(e){var t=e.title,i=t.label,n=t.mnemonic;if(n<0||n>=i.length)return i;var o=i.slice(0,n),r=i.slice(n+1),s=i[n];return[o,l.h.span({className:"lm-MenuBar-itemMnemonic p-MenuBar-itemMnemonic"},s),r]},e}();e.Renderer=t,e.defaultRenderer=new t}(oe||(oe={})),function(e){e.createNode=function(){var e=document.createElement("div"),t=document.createElement("ul");return t.className="lm-MenuBar-content",t.classList.add("p-MenuBar-content"),e.appendChild(t),t.setAttribute("role","menubar"),e},e.findMnemonic=function(e,t,i){for(var n=-1,o=-1,r=!1,s=t.toUpperCase(),a=0,d=e.length;a=0&&l1&&this.widgets.forEach((function(e){e.hiddenMode=t._hiddenMode})))},enumerable:!0,configurable:!0}),t.prototype.dispose=function(){(0,n.each)(this._items,(function(e){e.dispose()})),this._box=null,this._items.length=0,e.prototype.dispose.call(this)},t.prototype.attachWidget=function(e,t){this._hiddenMode===M.HiddenMode.Scale&&this._items.length>0?(1===this._items.length&&(this.widgets[0].hiddenMode=M.HiddenMode.Scale),t.hiddenMode=M.HiddenMode.Scale):t.hiddenMode=M.HiddenMode.Display,n.ArrayExt.insert(this._items,e,new C(t)),this.parent.isAttached&&r.MessageLoop.sendMessage(t,M.Msg.BeforeAttach),this.parent.node.appendChild(t.node),this.parent.isAttached&&r.MessageLoop.sendMessage(t,M.Msg.AfterAttach),this.parent.fit()},t.prototype.moveWidget=function(e,t,i){n.ArrayExt.move(this._items,e,t),this.parent.update()},t.prototype.detachWidget=function(e,t){var i=n.ArrayExt.removeAt(this._items,e);this.parent.isAttached&&r.MessageLoop.sendMessage(t,M.Msg.BeforeDetach),this.parent.node.removeChild(t.node),this.parent.isAttached&&r.MessageLoop.sendMessage(t,M.Msg.AfterDetach),i.widget.node.style.zIndex="",this._hiddenMode===M.HiddenMode.Scale&&(t.hiddenMode=M.HiddenMode.Display,1===this._items.length&&(this._items[0].widget.hiddenMode=M.HiddenMode.Display)),i.dispose(),this.parent.fit()},t.prototype.onBeforeShow=function(t){e.prototype.onBeforeShow.call(this,t),this.parent.update()},t.prototype.onBeforeAttach=function(t){e.prototype.onBeforeAttach.call(this,t),this.parent.fit()},t.prototype.onChildShown=function(e){this.parent.fit()},t.prototype.onChildHidden=function(e){this.parent.fit()},t.prototype.onResize=function(e){this.parent.isVisible&&this._update(e.width,e.height)},t.prototype.onUpdateRequest=function(e){this.parent.isVisible&&this._update(-1,-1)},t.prototype.onFitRequest=function(e){this.parent.isAttached&&this._fit()},t.prototype._fit=function(){for(var e=0,t=0,i=0,n=this._items.length;i= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || from);\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n/*-----------------------------------------------------------------------------\n| Copyright (c) 2014-2017, PhosphorJS Contributors\n|\n| Distributed under the terms of the BSD 3-Clause License.\n|\n| The full license is in the file LICENSE, distributed with this software.\n|----------------------------------------------------------------------------*/\n\n/**\n * A sizer object for use with the box engine layout functions.\n *\n * #### Notes\n * A box sizer holds the geometry information for an object along an\n * arbitrary layout orientation.\n *\n * For best performance, this class should be treated as a raw data\n * struct. It should not typically be subclassed.\n */\nexport class BoxSizer {\n /**\n * The preferred size for the sizer.\n *\n * #### Notes\n * The sizer will be given this initial size subject to its size\n * bounds. The sizer will not deviate from this size unless such\n * deviation is required to fit into the available layout space.\n *\n * There is no limit to this value, but it will be clamped to the\n * bounds defined by [[minSize]] and [[maxSize]].\n *\n * The default value is `0`.\n */\n sizeHint = 0;\n\n /**\n * The minimum size of the sizer.\n *\n * #### Notes\n * The sizer will never be sized less than this value, even if\n * it means the sizer will overflow the available layout space.\n *\n * It is assumed that this value lies in the range `[0, Infinity)`\n * and that it is `<=` to [[maxSize]]. Failure to adhere to this\n * constraint will yield undefined results.\n *\n * The default value is `0`.\n */\n minSize = 0;\n\n /**\n * The maximum size of the sizer.\n *\n * #### Notes\n * The sizer will never be sized greater than this value, even if\n * it means the sizer will underflow the available layout space.\n *\n * It is assumed that this value lies in the range `[0, Infinity]`\n * and that it is `>=` to [[minSize]]. Failure to adhere to this\n * constraint will yield undefined results.\n *\n * The default value is `Infinity`.\n */\n maxSize = Infinity;\n\n /**\n * The stretch factor for the sizer.\n *\n * #### Notes\n * This controls how much the sizer stretches relative to its sibling\n * sizers when layout space is distributed. A stretch factor of zero\n * is special and will cause the sizer to only be resized after all\n * other sizers with a stretch factor greater than zero have been\n * resized to their limits.\n *\n * It is assumed that this value is an integer that lies in the range\n * `[0, Infinity)`. Failure to adhere to this constraint will yield\n * undefined results.\n *\n * The default value is `1`.\n */\n stretch = 1;\n\n /**\n * The computed size of the sizer.\n *\n * #### Notes\n * This value is the output of a call to [[boxCalc]]. It represents\n * the computed size for the object along the layout orientation,\n * and will always lie in the range `[minSize, maxSize]`.\n *\n * This value is output only.\n *\n * Changing this value will have no effect.\n */\n size = 0;\n\n /**\n * An internal storage property for the layout algorithm.\n *\n * #### Notes\n * This value is used as temporary storage by the layout algorithm.\n *\n * Changing this value will have no effect.\n */\n done = false;\n}\n\n/**\n * The namespace for the box engine layout functions.\n */\nexport namespace BoxEngine {\n /**\n * Calculate the optimal layout sizes for a sequence of box sizers.\n *\n * This distributes the available layout space among the box sizers\n * according to the following algorithm:\n *\n * 1. Initialize the sizers's size to its size hint and compute the\n * sums for each of size hint, min size, and max size.\n *\n * 2. If the total size hint equals the available space, return.\n *\n * 3. If the available space is less than the total min size, set all\n * sizers to their min size and return.\n *\n * 4. If the available space is greater than the total max size, set\n * all sizers to their max size and return.\n *\n * 5. If the layout space is less than the total size hint, distribute\n * the negative delta as follows:\n *\n * a. Shrink each sizer with a stretch factor greater than zero by\n * an amount proportional to the negative space and the sum of\n * stretch factors. If the sizer reaches its min size, remove\n * it and its stretch factor from the computation.\n *\n * b. If after adjusting all stretch sizers there remains negative\n * space, distribute the space equally among the sizers with a\n * stretch factor of zero. If a sizer reaches its min size,\n * remove it from the computation.\n *\n * 6. If the layout space is greater than the total size hint,\n * distribute the positive delta as follows:\n *\n * a. Expand each sizer with a stretch factor greater than zero by\n * an amount proportional to the postive space and the sum of\n * stretch factors. If the sizer reaches its max size, remove\n * it and its stretch factor from the computation.\n *\n * b. If after adjusting all stretch sizers there remains positive\n * space, distribute the space equally among the sizers with a\n * stretch factor of zero. If a sizer reaches its max size,\n * remove it from the computation.\n *\n * 7. return\n *\n * @param sizers - The sizers for a particular layout line.\n *\n * @param space - The available layout space for the sizers.\n *\n * @returns The delta between the provided available space and the\n * actual consumed space. This value will be zero if the sizers\n * can be adjusted to fit, negative if the available space is too\n * small, and positive if the available space is too large.\n *\n * #### Notes\n * The [[size]] of each sizer is updated with the computed size.\n *\n * This function can be called at any time to recompute the layout for\n * an existing sequence of sizers. The previously computed results will\n * have no effect on the new output. It is therefore not necessary to\n * create new sizer objects on each resize event.\n */\n export function calc(sizers: ArrayLike, space: number): number {\n // Bail early if there is nothing to do.\n let count = sizers.length;\n if (count === 0) {\n return space;\n }\n\n // Setup the size and stretch counters.\n let totalMin = 0;\n let totalMax = 0;\n let totalSize = 0;\n let totalStretch = 0;\n let stretchCount = 0;\n\n // Setup the sizers and compute the totals.\n for (let i = 0; i < count; ++i) {\n let sizer = sizers[i];\n let min = sizer.minSize;\n let max = sizer.maxSize;\n let hint = sizer.sizeHint;\n sizer.done = false;\n sizer.size = Math.max(min, Math.min(hint, max));\n totalSize += sizer.size;\n totalMin += min;\n totalMax += max;\n if (sizer.stretch > 0) {\n totalStretch += sizer.stretch;\n stretchCount++;\n }\n }\n\n // If the space is equal to the total size, return early.\n if (space === totalSize) {\n return 0;\n }\n\n // If the space is less than the total min, minimize each sizer.\n if (space <= totalMin) {\n for (let i = 0; i < count; ++i) {\n let sizer = sizers[i];\n sizer.size = sizer.minSize;\n }\n return space - totalMin;\n }\n\n // If the space is greater than the total max, maximize each sizer.\n if (space >= totalMax) {\n for (let i = 0; i < count; ++i) {\n let sizer = sizers[i];\n sizer.size = sizer.maxSize;\n }\n return space - totalMax;\n }\n\n // The loops below perform sub-pixel precision sizing. A near zero\n // value is used for compares instead of zero to ensure that the\n // loop terminates when the subdivided space is reasonably small.\n let nearZero = 0.01;\n\n // A counter which is decremented each time a sizer is resized to\n // its limit. This ensures the loops terminate even if there is\n // space remaining to distribute.\n let notDoneCount = count;\n\n // Distribute negative delta space.\n if (space < totalSize) {\n // Shrink each stretchable sizer by an amount proportional to its\n // stretch factor. If a sizer reaches its min size it's marked as\n // done. The loop progresses in phases where each sizer is given\n // a chance to consume its fair share for the pass, regardless of\n // whether a sizer before it reached its limit. This continues\n // until the stretchable sizers or the free space is exhausted.\n let freeSpace = totalSize - space;\n while (stretchCount > 0 && freeSpace > nearZero) {\n let distSpace = freeSpace;\n let distStretch = totalStretch;\n for (let i = 0; i < count; ++i) {\n let sizer = sizers[i];\n if (sizer.done || sizer.stretch === 0) {\n continue;\n }\n let amt = (sizer.stretch * distSpace) / distStretch;\n if (sizer.size - amt <= sizer.minSize) {\n freeSpace -= sizer.size - sizer.minSize;\n totalStretch -= sizer.stretch;\n sizer.size = sizer.minSize;\n sizer.done = true;\n notDoneCount--;\n stretchCount--;\n } else {\n freeSpace -= amt;\n sizer.size -= amt;\n }\n }\n }\n // Distribute any remaining space evenly among the non-stretchable\n // sizers. This progresses in phases in the same manner as above.\n while (notDoneCount > 0 && freeSpace > nearZero) {\n let amt = freeSpace / notDoneCount;\n for (let i = 0; i < count; ++i) {\n let sizer = sizers[i];\n if (sizer.done) {\n continue;\n }\n if (sizer.size - amt <= sizer.minSize) {\n freeSpace -= sizer.size - sizer.minSize;\n sizer.size = sizer.minSize;\n sizer.done = true;\n notDoneCount--;\n } else {\n freeSpace -= amt;\n sizer.size -= amt;\n }\n }\n }\n }\n // Distribute positive delta space.\n else {\n // Expand each stretchable sizer by an amount proportional to its\n // stretch factor. If a sizer reaches its max size it's marked as\n // done. The loop progresses in phases where each sizer is given\n // a chance to consume its fair share for the pass, regardless of\n // whether a sizer before it reached its limit. This continues\n // until the stretchable sizers or the free space is exhausted.\n let freeSpace = space - totalSize;\n while (stretchCount > 0 && freeSpace > nearZero) {\n let distSpace = freeSpace;\n let distStretch = totalStretch;\n for (let i = 0; i < count; ++i) {\n let sizer = sizers[i];\n if (sizer.done || sizer.stretch === 0) {\n continue;\n }\n let amt = (sizer.stretch * distSpace) / distStretch;\n if (sizer.size + amt >= sizer.maxSize) {\n freeSpace -= sizer.maxSize - sizer.size;\n totalStretch -= sizer.stretch;\n sizer.size = sizer.maxSize;\n sizer.done = true;\n notDoneCount--;\n stretchCount--;\n } else {\n freeSpace -= amt;\n sizer.size += amt;\n }\n }\n }\n // Distribute any remaining space evenly among the non-stretchable\n // sizers. This progresses in phases in the same manner as above.\n while (notDoneCount > 0 && freeSpace > nearZero) {\n let amt = freeSpace / notDoneCount;\n for (let i = 0; i < count; ++i) {\n let sizer = sizers[i];\n if (sizer.done) {\n continue;\n }\n if (sizer.size + amt >= sizer.maxSize) {\n freeSpace -= sizer.maxSize - sizer.size;\n sizer.size = sizer.maxSize;\n sizer.done = true;\n notDoneCount--;\n } else {\n freeSpace -= amt;\n sizer.size += amt;\n }\n }\n }\n }\n\n // Indicate that the consumed space equals the available space.\n return 0;\n }\n\n /**\n * Adjust a sizer by a delta and update its neighbors accordingly.\n *\n * @param sizers - The sizers which should be adjusted.\n *\n * @param index - The index of the sizer to grow.\n *\n * @param delta - The amount to adjust the sizer, positive or negative.\n *\n * #### Notes\n * This will adjust the indicated sizer by the specified amount, along\n * with the sizes of the appropriate neighbors, subject to the limits\n * specified by each of the sizers.\n *\n * This is useful when implementing box layouts where the boundaries\n * between the sizers are interactively adjustable by the user.\n */\n export function adjust(\n sizers: ArrayLike,\n index: number,\n delta: number\n ): void {\n // Bail early when there is nothing to do.\n if (sizers.length === 0 || delta === 0) {\n return;\n }\n\n // Dispatch to the proper implementation.\n if (delta > 0) {\n growSizer(sizers, index, delta);\n } else {\n shrinkSizer(sizers, index, -delta);\n }\n }\n\n /**\n * Grow a sizer by a positive delta and adjust neighbors.\n */\n function growSizer(\n sizers: ArrayLike,\n index: number,\n delta: number\n ): void {\n // Compute how much the items to the left can expand.\n let growLimit = 0;\n for (let i = 0; i <= index; ++i) {\n let sizer = sizers[i];\n growLimit += sizer.maxSize - sizer.size;\n }\n\n // Compute how much the items to the right can shrink.\n let shrinkLimit = 0;\n for (let i = index + 1, n = sizers.length; i < n; ++i) {\n let sizer = sizers[i];\n shrinkLimit += sizer.size - sizer.minSize;\n }\n\n // Clamp the delta adjustment to the limits.\n delta = Math.min(delta, growLimit, shrinkLimit);\n\n // Grow the sizers to the left by the delta.\n let grow = delta;\n for (let i = index; i >= 0 && grow > 0; --i) {\n let sizer = sizers[i];\n let limit = sizer.maxSize - sizer.size;\n if (limit >= grow) {\n sizer.sizeHint = sizer.size + grow;\n grow = 0;\n } else {\n sizer.sizeHint = sizer.size + limit;\n grow -= limit;\n }\n }\n\n // Shrink the sizers to the right by the delta.\n let shrink = delta;\n for (let i = index + 1, n = sizers.length; i < n && shrink > 0; ++i) {\n let sizer = sizers[i];\n let limit = sizer.size - sizer.minSize;\n if (limit >= shrink) {\n sizer.sizeHint = sizer.size - shrink;\n shrink = 0;\n } else {\n sizer.sizeHint = sizer.size - limit;\n shrink -= limit;\n }\n }\n }\n\n /**\n * Shrink a sizer by a positive delta and adjust neighbors.\n */\n function shrinkSizer(\n sizers: ArrayLike,\n index: number,\n delta: number\n ): void {\n // Compute how much the items to the right can expand.\n let growLimit = 0;\n for (let i = index + 1, n = sizers.length; i < n; ++i) {\n let sizer = sizers[i];\n growLimit += sizer.maxSize - sizer.size;\n }\n\n // Compute how much the items to the left can shrink.\n let shrinkLimit = 0;\n for (let i = 0; i <= index; ++i) {\n let sizer = sizers[i];\n shrinkLimit += sizer.size - sizer.minSize;\n }\n\n // Clamp the delta adjustment to the limits.\n delta = Math.min(delta, growLimit, shrinkLimit);\n\n // Grow the sizers to the right by the delta.\n let grow = delta;\n for (let i = index + 1, n = sizers.length; i < n && grow > 0; ++i) {\n let sizer = sizers[i];\n let limit = sizer.maxSize - sizer.size;\n if (limit >= grow) {\n sizer.sizeHint = sizer.size + grow;\n grow = 0;\n } else {\n sizer.sizeHint = sizer.size + limit;\n grow -= limit;\n }\n }\n\n // Shrink the sizers to the left by the delta.\n let shrink = delta;\n for (let i = index; i >= 0 && shrink > 0; --i) {\n let sizer = sizers[i];\n let limit = sizer.size - sizer.minSize;\n if (limit >= shrink) {\n sizer.sizeHint = sizer.size - shrink;\n shrink = 0;\n } else {\n sizer.sizeHint = sizer.size - limit;\n shrink -= limit;\n }\n }\n }\n}\n","/* eslint-disable @typescript-eslint/no-empty-function */\n// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n/*-----------------------------------------------------------------------------\n| Copyright (c) 2014-2017, PhosphorJS Contributors\n|\n| Distributed under the terms of the BSD 3-Clause License.\n|\n| The full license is in the file LICENSE, distributed with this software.\n|----------------------------------------------------------------------------*/\nimport { empty, IIterator } from '@lumino/algorithm';\n\nimport { IObservableDisposable } from '@lumino/disposable';\n\nimport {\n ConflatableMessage,\n IMessageHandler,\n Message,\n MessageLoop\n} from '@lumino/messaging';\n\nimport { AttachedProperty } from '@lumino/properties';\n\nimport { ISignal, Signal } from '@lumino/signaling';\n\nimport { Layout } from './layout';\n\nimport { Title } from './title';\n\n/**\n * The base class of the lumino widget hierarchy.\n *\n * #### Notes\n * This class will typically be subclassed in order to create a useful\n * widget. However, it can be used directly to host externally created\n * content.\n */\nexport class Widget implements IMessageHandler, IObservableDisposable {\n /**\n * Construct a new widget.\n *\n * @param options - The options for initializing the widget.\n */\n constructor(options: Widget.IOptions = {}) {\n this.node = Private.createNode(options);\n this.addClass('lm-Widget');\n /* */\n this.addClass('p-Widget');\n /* */\n }\n\n /**\n * Dispose of the widget and its descendant widgets.\n *\n * #### Notes\n * It is unsafe to use the widget after it has been disposed.\n *\n * All calls made to this method after the first are a no-op.\n */\n dispose(): void {\n // Do nothing if the widget is already disposed.\n if (this.isDisposed) {\n return;\n }\n\n // Set the disposed flag and emit the disposed signal.\n this.setFlag(Widget.Flag.IsDisposed);\n this._disposed.emit(undefined);\n\n // Remove or detach the widget if necessary.\n if (this.parent) {\n this.parent = null;\n } else if (this.isAttached) {\n Widget.detach(this);\n }\n\n // Dispose of the widget layout.\n if (this._layout) {\n this._layout.dispose();\n this._layout = null;\n }\n\n // Dispose the title\n this.title.dispose();\n\n // Clear the extra data associated with the widget.\n Signal.clearData(this);\n MessageLoop.clearData(this);\n AttachedProperty.clearData(this);\n }\n\n /**\n * A signal emitted when the widget is disposed.\n */\n get disposed(): ISignal {\n return this._disposed;\n }\n\n /**\n * Get the DOM node owned by the widget.\n */\n readonly node: HTMLElement;\n\n /**\n * Test whether the widget has been disposed.\n */\n get isDisposed(): boolean {\n return this.testFlag(Widget.Flag.IsDisposed);\n }\n\n /**\n * Test whether the widget's node is attached to the DOM.\n */\n get isAttached(): boolean {\n return this.testFlag(Widget.Flag.IsAttached);\n }\n\n /**\n * Test whether the widget is explicitly hidden.\n */\n get isHidden(): boolean {\n return this.testFlag(Widget.Flag.IsHidden);\n }\n\n /**\n * Test whether the widget is visible.\n *\n * #### Notes\n * A widget is visible when it is attached to the DOM, is not\n * explicitly hidden, and has no explicitly hidden ancestors.\n */\n get isVisible(): boolean {\n return this.testFlag(Widget.Flag.IsVisible);\n }\n\n /**\n * The title object for the widget.\n *\n * #### Notes\n * The title object is used by some container widgets when displaying\n * the widget alongside some title, such as a tab panel or side bar.\n *\n * Since not all widgets will use the title, it is created on demand.\n *\n * The `owner` property of the title is set to this widget.\n */\n get title(): Title {\n return Private.titleProperty.get(this);\n }\n\n /**\n * Get the id of the widget's DOM node.\n */\n get id(): string {\n return this.node.id;\n }\n\n /**\n * Set the id of the widget's DOM node.\n */\n set id(value: string) {\n this.node.id = value;\n }\n\n /**\n * The dataset for the widget's DOM node.\n */\n get dataset(): DOMStringMap {\n return this.node.dataset;\n }\n\n /**\n * Get the method for hiding the widget.\n */\n get hiddenMode(): Widget.HiddenMode {\n return this._hiddenMode;\n }\n\n /**\n * Set the method for hiding the widget.\n */\n set hiddenMode(value: Widget.HiddenMode) {\n if (this._hiddenMode === value) {\n return;\n }\n\n if (this.isHidden) {\n // Reset styles set by previous mode.\n this._toggleHidden(false);\n }\n\n if (value == Widget.HiddenMode.Scale) {\n this.node.style.willChange = 'transform';\n } else {\n this.node.style.willChange = 'auto';\n }\n\n this._hiddenMode = value;\n\n if (this.isHidden) {\n // Set styles for new mode.\n this._toggleHidden(true);\n }\n }\n\n /**\n * Get the parent of the widget.\n */\n get parent(): Widget | null {\n return this._parent;\n }\n\n /**\n * Set the parent of the widget.\n *\n * #### Notes\n * Children are typically added to a widget by using a layout, which\n * means user code will not normally set the parent widget directly.\n *\n * The widget will be automatically removed from its old parent.\n *\n * This is a no-op if there is no effective parent change.\n */\n set parent(value: Widget | null) {\n if (this._parent === value) {\n return;\n }\n if (value && this.contains(value)) {\n throw new Error('Invalid parent widget.');\n }\n if (this._parent && !this._parent.isDisposed) {\n let msg = new Widget.ChildMessage('child-removed', this);\n MessageLoop.sendMessage(this._parent, msg);\n }\n this._parent = value;\n if (this._parent && !this._parent.isDisposed) {\n let msg = new Widget.ChildMessage('child-added', this);\n MessageLoop.sendMessage(this._parent, msg);\n }\n if (!this.isDisposed) {\n MessageLoop.sendMessage(this, Widget.Msg.ParentChanged);\n }\n }\n\n /**\n * Get the layout for the widget.\n */\n get layout(): Layout | null {\n return this._layout;\n }\n\n /**\n * Set the layout for the widget.\n *\n * #### Notes\n * The layout is single-use only. It cannot be changed after the\n * first assignment.\n *\n * The layout is disposed automatically when the widget is disposed.\n */\n set layout(value: Layout | null) {\n if (this._layout === value) {\n return;\n }\n if (this.testFlag(Widget.Flag.DisallowLayout)) {\n throw new Error('Cannot set widget layout.');\n }\n if (this._layout) {\n throw new Error('Cannot change widget layout.');\n }\n if (value!.parent) {\n throw new Error('Cannot change layout parent.');\n }\n this._layout = value;\n value!.parent = this;\n }\n\n /**\n * Create an iterator over the widget's children.\n *\n * @returns A new iterator over the children of the widget.\n *\n * #### Notes\n * The widget must have a populated layout in order to have children.\n *\n * If a layout is not installed, the returned iterator will be empty.\n */\n children(): IIterator {\n return this._layout ? this._layout.iter() : empty();\n }\n\n /**\n * Test whether a widget is a descendant of this widget.\n *\n * @param widget - The descendant widget of interest.\n *\n * @returns `true` if the widget is a descendant, `false` otherwise.\n */\n contains(widget: Widget): boolean {\n for (let value: Widget | null = widget; value; value = value._parent) {\n if (value === this) {\n return true;\n }\n }\n return false;\n }\n\n /**\n * Test whether the widget's DOM node has the given class name.\n *\n * @param name - The class name of interest.\n *\n * @returns `true` if the node has the class, `false` otherwise.\n */\n hasClass(name: string): boolean {\n return this.node.classList.contains(name);\n }\n\n /**\n * Add a class name to the widget's DOM node.\n *\n * @param name - The class name to add to the node.\n *\n * #### Notes\n * If the class name is already added to the node, this is a no-op.\n *\n * The class name must not contain whitespace.\n */\n addClass(name: string): void {\n this.node.classList.add(name);\n }\n\n /**\n * Remove a class name from the widget's DOM node.\n *\n * @param name - The class name to remove from the node.\n *\n * #### Notes\n * If the class name is not yet added to the node, this is a no-op.\n *\n * The class name must not contain whitespace.\n */\n removeClass(name: string): void {\n this.node.classList.remove(name);\n }\n\n /**\n * Toggle a class name on the widget's DOM node.\n *\n * @param name - The class name to toggle on the node.\n *\n * @param force - Whether to force add the class (`true`) or force\n * remove the class (`false`). If not provided, the presence of\n * the class will be toggled from its current state.\n *\n * @returns `true` if the class is now present, `false` otherwise.\n *\n * #### Notes\n * The class name must not contain whitespace.\n */\n toggleClass(name: string, force?: boolean): boolean {\n if (force === true) {\n this.node.classList.add(name);\n return true;\n }\n if (force === false) {\n this.node.classList.remove(name);\n return false;\n }\n return this.node.classList.toggle(name);\n }\n\n /**\n * Post an `'update-request'` message to the widget.\n *\n * #### Notes\n * This is a simple convenience method for posting the message.\n */\n update(): void {\n MessageLoop.postMessage(this, Widget.Msg.UpdateRequest);\n }\n\n /**\n * Post a `'fit-request'` message to the widget.\n *\n * #### Notes\n * This is a simple convenience method for posting the message.\n */\n fit(): void {\n MessageLoop.postMessage(this, Widget.Msg.FitRequest);\n }\n\n /**\n * Post an `'activate-request'` message to the widget.\n *\n * #### Notes\n * This is a simple convenience method for posting the message.\n */\n activate(): void {\n MessageLoop.postMessage(this, Widget.Msg.ActivateRequest);\n }\n\n /**\n * Send a `'close-request'` message to the widget.\n *\n * #### Notes\n * This is a simple convenience method for sending the message.\n */\n close(): void {\n MessageLoop.sendMessage(this, Widget.Msg.CloseRequest);\n }\n\n /**\n * Show the widget and make it visible to its parent widget.\n *\n * #### Notes\n * This causes the [[isHidden]] property to be `false`.\n *\n * If the widget is not explicitly hidden, this is a no-op.\n */\n show(): void {\n if (!this.testFlag(Widget.Flag.IsHidden)) {\n return;\n }\n if (this.isAttached && (!this.parent || this.parent.isVisible)) {\n MessageLoop.sendMessage(this, Widget.Msg.BeforeShow);\n }\n this.clearFlag(Widget.Flag.IsHidden);\n this.node.removeAttribute('aria-hidden');\n this._toggleHidden(false);\n\n if (this.isAttached && (!this.parent || this.parent.isVisible)) {\n MessageLoop.sendMessage(this, Widget.Msg.AfterShow);\n }\n if (this.parent) {\n let msg = new Widget.ChildMessage('child-shown', this);\n MessageLoop.sendMessage(this.parent, msg);\n }\n }\n\n /**\n * Hide the widget and make it hidden to its parent widget.\n *\n * #### Notes\n * This causes the [[isHidden]] property to be `true`.\n *\n * If the widget is explicitly hidden, this is a no-op.\n */\n hide(): void {\n if (this.testFlag(Widget.Flag.IsHidden)) {\n return;\n }\n if (this.isAttached && (!this.parent || this.parent.isVisible)) {\n MessageLoop.sendMessage(this, Widget.Msg.BeforeHide);\n }\n this.setFlag(Widget.Flag.IsHidden);\n this.node.setAttribute('aria-hidden', 'true');\n this._toggleHidden(true);\n\n if (this.isAttached && (!this.parent || this.parent.isVisible)) {\n MessageLoop.sendMessage(this, Widget.Msg.AfterHide);\n }\n if (this.parent) {\n let msg = new Widget.ChildMessage('child-hidden', this);\n MessageLoop.sendMessage(this.parent, msg);\n }\n }\n\n /**\n * Show or hide the widget according to a boolean value.\n *\n * @param hidden - `true` to hide the widget, or `false` to show it.\n *\n * #### Notes\n * This is a convenience method for `hide()` and `show()`.\n */\n setHidden(hidden: boolean): void {\n if (hidden) {\n this.hide();\n } else {\n this.show();\n }\n }\n\n /**\n * Test whether the given widget flag is set.\n *\n * #### Notes\n * This will not typically be called directly by user code.\n */\n testFlag(flag: Widget.Flag): boolean {\n return (this._flags & flag) !== 0;\n }\n\n /**\n * Set the given widget flag.\n *\n * #### Notes\n * This will not typically be called directly by user code.\n */\n setFlag(flag: Widget.Flag): void {\n this._flags |= flag;\n }\n\n /**\n * Clear the given widget flag.\n *\n * #### Notes\n * This will not typically be called directly by user code.\n */\n clearFlag(flag: Widget.Flag): void {\n this._flags &= ~flag;\n }\n\n /**\n * Process a message sent to the widget.\n *\n * @param msg - The message sent to the widget.\n *\n * #### Notes\n * Subclasses may reimplement this method as needed.\n */\n processMessage(msg: Message): void {\n switch (msg.type) {\n case 'resize':\n this.notifyLayout(msg);\n this.onResize(msg as Widget.ResizeMessage);\n break;\n case 'update-request':\n this.notifyLayout(msg);\n this.onUpdateRequest(msg);\n break;\n case 'fit-request':\n this.notifyLayout(msg);\n this.onFitRequest(msg);\n break;\n case 'before-show':\n this.notifyLayout(msg);\n this.onBeforeShow(msg);\n break;\n case 'after-show':\n this.setFlag(Widget.Flag.IsVisible);\n this.notifyLayout(msg);\n this.onAfterShow(msg);\n break;\n case 'before-hide':\n this.notifyLayout(msg);\n this.onBeforeHide(msg);\n break;\n case 'after-hide':\n this.clearFlag(Widget.Flag.IsVisible);\n this.notifyLayout(msg);\n this.onAfterHide(msg);\n break;\n case 'before-attach':\n this.notifyLayout(msg);\n this.onBeforeAttach(msg);\n break;\n case 'after-attach':\n if (!this.isHidden && (!this.parent || this.parent.isVisible)) {\n this.setFlag(Widget.Flag.IsVisible);\n }\n this.setFlag(Widget.Flag.IsAttached);\n this.notifyLayout(msg);\n this.onAfterAttach(msg);\n break;\n case 'before-detach':\n this.notifyLayout(msg);\n this.onBeforeDetach(msg);\n break;\n case 'after-detach':\n this.clearFlag(Widget.Flag.IsVisible);\n this.clearFlag(Widget.Flag.IsAttached);\n this.notifyLayout(msg);\n this.onAfterDetach(msg);\n break;\n case 'activate-request':\n this.notifyLayout(msg);\n this.onActivateRequest(msg);\n break;\n case 'close-request':\n this.notifyLayout(msg);\n this.onCloseRequest(msg);\n break;\n case 'child-added':\n this.notifyLayout(msg);\n this.onChildAdded(msg as Widget.ChildMessage);\n break;\n case 'child-removed':\n this.notifyLayout(msg);\n this.onChildRemoved(msg as Widget.ChildMessage);\n break;\n default:\n this.notifyLayout(msg);\n break;\n }\n }\n\n /**\n * Invoke the message processing routine of the widget's layout.\n *\n * @param msg - The message to dispatch to the layout.\n *\n * #### Notes\n * This is a no-op if the widget does not have a layout.\n *\n * This will not typically be called directly by user code.\n */\n protected notifyLayout(msg: Message): void {\n if (this._layout) {\n this._layout.processParentMessage(msg);\n }\n }\n\n /**\n * A message handler invoked on a `'close-request'` message.\n *\n * #### Notes\n * The default implementation unparents or detaches the widget.\n */\n protected onCloseRequest(msg: Message): void {\n if (this.parent) {\n this.parent = null;\n } else if (this.isAttached) {\n Widget.detach(this);\n }\n }\n\n /**\n * A message handler invoked on a `'resize'` message.\n *\n * #### Notes\n * The default implementation of this handler is a no-op.\n */\n protected onResize(msg: Widget.ResizeMessage): void {}\n\n /**\n * A message handler invoked on an `'update-request'` message.\n *\n * #### Notes\n * The default implementation of this handler is a no-op.\n */\n protected onUpdateRequest(msg: Message): void {}\n\n /**\n * A message handler invoked on a `'fit-request'` message.\n *\n * #### Notes\n * The default implementation of this handler is a no-op.\n */\n protected onFitRequest(msg: Message): void {}\n\n /**\n * A message handler invoked on an `'activate-request'` message.\n *\n * #### Notes\n * The default implementation of this handler is a no-op.\n */\n protected onActivateRequest(msg: Message): void {}\n\n /**\n * A message handler invoked on a `'before-show'` message.\n *\n * #### Notes\n * The default implementation of this handler is a no-op.\n */\n protected onBeforeShow(msg: Message): void {}\n\n /**\n * A message handler invoked on an `'after-show'` message.\n *\n * #### Notes\n * The default implementation of this handler is a no-op.\n */\n protected onAfterShow(msg: Message): void {}\n\n /**\n * A message handler invoked on a `'before-hide'` message.\n *\n * #### Notes\n * The default implementation of this handler is a no-op.\n */\n protected onBeforeHide(msg: Message): void {}\n\n /**\n * A message handler invoked on an `'after-hide'` message.\n *\n * #### Notes\n * The default implementation of this handler is a no-op.\n */\n protected onAfterHide(msg: Message): void {}\n\n /**\n * A message handler invoked on a `'before-attach'` message.\n *\n * #### Notes\n * The default implementation of this handler is a no-op.\n */\n protected onBeforeAttach(msg: Message): void {}\n\n /**\n * A message handler invoked on an `'after-attach'` message.\n *\n * #### Notes\n * The default implementation of this handler is a no-op.\n */\n protected onAfterAttach(msg: Message): void {}\n\n /**\n * A message handler invoked on a `'before-detach'` message.\n *\n * #### Notes\n * The default implementation of this handler is a no-op.\n */\n protected onBeforeDetach(msg: Message): void {}\n\n /**\n * A message handler invoked on an `'after-detach'` message.\n *\n * #### Notes\n * The default implementation of this handler is a no-op.\n */\n protected onAfterDetach(msg: Message): void {}\n\n /**\n * A message handler invoked on a `'child-added'` message.\n *\n * #### Notes\n * The default implementation of this handler is a no-op.\n */\n protected onChildAdded(msg: Widget.ChildMessage): void {}\n\n /**\n * A message handler invoked on a `'child-removed'` message.\n *\n * #### Notes\n * The default implementation of this handler is a no-op.\n */\n protected onChildRemoved(msg: Widget.ChildMessage): void {}\n\n private _toggleHidden(hidden: boolean) {\n if (hidden) {\n switch (this._hiddenMode) {\n case Widget.HiddenMode.Display:\n this.addClass('lm-mod-hidden');\n /* */\n this.addClass('p-mod-hidden');\n /* */\n break;\n case Widget.HiddenMode.Scale:\n this.node.style.transform = 'scale(0)';\n break;\n case Widget.HiddenMode.ContentVisibility:\n this.node.style.contentVisibility = 'hidden';\n this.node.style.zIndex = '-1';\n break;\n }\n } else {\n switch (this._hiddenMode) {\n case Widget.HiddenMode.Display:\n this.removeClass('lm-mod-hidden');\n /* */\n this.removeClass('p-mod-hidden');\n /* */\n break;\n case Widget.HiddenMode.Scale:\n this.node.style.transform = '';\n break;\n case Widget.HiddenMode.ContentVisibility:\n this.node.style.contentVisibility = '';\n this.node.style.zIndex = '';\n break;\n }\n }\n }\n\n private _flags = 0;\n private _layout: Layout | null = null;\n private _parent: Widget | null = null;\n private _disposed = new Signal(this);\n private _hiddenMode: Widget.HiddenMode = Widget.HiddenMode.Display;\n}\n\n/**\n * The namespace for the `Widget` class statics.\n */\nexport namespace Widget {\n /**\n * An options object for initializing a widget.\n */\n export interface IOptions {\n /**\n * The optional node to use for the widget.\n *\n * If a node is provided, the widget will assume full ownership\n * and control of the node, as if it had created the node itself.\n *\n * The default is a new `
    `.\n */\n node?: HTMLElement;\n\n /**\n * The optional element tag, used for constructing the widget's node.\n *\n * If a pre-constructed node is provided via the `node` arg, this\n * value is ignored.\n */\n tag?: keyof HTMLElementTagNameMap;\n }\n\n /**\n * The method for hiding the widget.\n *\n * The default is Display.\n *\n * Using `Scale` will often increase performance as most browsers will not\n * trigger style computation for the `transform` action. This should be used\n * sparingly and tested, since increasing the number of composition layers\n * may slow things down.\n *\n * To ensure the transformation does not trigger style recomputation, you\n * may need to set the widget CSS style `will-change: transform`. This\n * should be used only when needed as it may overwhelm the browser with a\n * high number of layers. See\n * https://developer.mozilla.org/en-US/docs/Web/CSS/will-change\n */\n export enum HiddenMode {\n /**\n * Set a `lm-mod-hidden` CSS class to hide the widget using `display:none`\n * CSS from the standard Lumino CSS.\n */\n Display = 0,\n\n /**\n * Hide the widget by setting the `transform` to `'scale(0)'`.\n */\n Scale,\n\n /**\n *Hide the widget by setting the `content-visibility` to `'hidden'`.\n */\n ContentVisibility\n }\n\n /**\n * An enum of widget bit flags.\n */\n export enum Flag {\n /**\n * The widget has been disposed.\n */\n IsDisposed = 0x1,\n\n /**\n * The widget is attached to the DOM.\n */\n IsAttached = 0x2,\n\n /**\n * The widget is hidden.\n */\n IsHidden = 0x4,\n\n /**\n * The widget is visible.\n */\n IsVisible = 0x8,\n\n /**\n * A layout cannot be set on the widget.\n */\n DisallowLayout = 0x10\n }\n\n /**\n * A collection of stateless messages related to widgets.\n */\n export namespace Msg {\n /**\n * A singleton `'before-show'` message.\n *\n * #### Notes\n * This message is sent to a widget before it becomes visible.\n *\n * This message is **not** sent when the widget is being attached.\n */\n export const BeforeShow = new Message('before-show');\n\n /**\n * A singleton `'after-show'` message.\n *\n * #### Notes\n * This message is sent to a widget after it becomes visible.\n *\n * This message is **not** sent when the widget is being attached.\n */\n export const AfterShow = new Message('after-show');\n\n /**\n * A singleton `'before-hide'` message.\n *\n * #### Notes\n * This message is sent to a widget before it becomes not-visible.\n *\n * This message is **not** sent when the widget is being detached.\n */\n export const BeforeHide = new Message('before-hide');\n\n /**\n * A singleton `'after-hide'` message.\n *\n * #### Notes\n * This message is sent to a widget after it becomes not-visible.\n *\n * This message is **not** sent when the widget is being detached.\n */\n export const AfterHide = new Message('after-hide');\n\n /**\n * A singleton `'before-attach'` message.\n *\n * #### Notes\n * This message is sent to a widget before it is attached.\n */\n export const BeforeAttach = new Message('before-attach');\n\n /**\n * A singleton `'after-attach'` message.\n *\n * #### Notes\n * This message is sent to a widget after it is attached.\n */\n export const AfterAttach = new Message('after-attach');\n\n /**\n * A singleton `'before-detach'` message.\n *\n * #### Notes\n * This message is sent to a widget before it is detached.\n */\n export const BeforeDetach = new Message('before-detach');\n\n /**\n * A singleton `'after-detach'` message.\n *\n * #### Notes\n * This message is sent to a widget after it is detached.\n */\n export const AfterDetach = new Message('after-detach');\n\n /**\n * A singleton `'parent-changed'` message.\n *\n * #### Notes\n * This message is sent to a widget when its parent has changed.\n */\n export const ParentChanged = new Message('parent-changed');\n\n /**\n * A singleton conflatable `'update-request'` message.\n *\n * #### Notes\n * This message can be dispatched to supporting widgets in order to\n * update their content based on the current widget state. Not all\n * widgets will respond to messages of this type.\n *\n * For widgets with a layout, this message will inform the layout to\n * update the position and size of its child widgets.\n */\n export const UpdateRequest = new ConflatableMessage('update-request');\n\n /**\n * A singleton conflatable `'fit-request'` message.\n *\n * #### Notes\n * For widgets with a layout, this message will inform the layout to\n * recalculate its size constraints to fit the space requirements of\n * its child widgets, and to update their position and size. Not all\n * layouts will respond to messages of this type.\n */\n export const FitRequest = new ConflatableMessage('fit-request');\n\n /**\n * A singleton conflatable `'activate-request'` message.\n *\n * #### Notes\n * This message should be dispatched to a widget when it should\n * perform the actions necessary to activate the widget, which\n * may include focusing its node or descendant node.\n */\n export const ActivateRequest = new ConflatableMessage('activate-request');\n\n /**\n * A singleton conflatable `'close-request'` message.\n *\n * #### Notes\n * This message should be dispatched to a widget when it should close\n * and remove itself from the widget hierarchy.\n */\n export const CloseRequest = new ConflatableMessage('close-request');\n }\n\n /**\n * A message class for child related messages.\n */\n export class ChildMessage extends Message {\n /**\n * Construct a new child message.\n *\n * @param type - The message type.\n *\n * @param child - The child widget for the message.\n */\n constructor(type: string, child: Widget) {\n super(type);\n this.child = child;\n }\n\n /**\n * The child widget for the message.\n */\n readonly child: Widget;\n }\n\n /**\n * A message class for `'resize'` messages.\n */\n export class ResizeMessage extends Message {\n /**\n * Construct a new resize message.\n *\n * @param width - The **offset width** of the widget, or `-1` if\n * the width is not known.\n *\n * @param height - The **offset height** of the widget, or `-1` if\n * the height is not known.\n */\n constructor(width: number, height: number) {\n super('resize');\n this.width = width;\n this.height = height;\n }\n\n /**\n * The offset width of the widget.\n *\n * #### Notes\n * This will be `-1` if the width is unknown.\n */\n readonly width: number;\n\n /**\n * The offset height of the widget.\n *\n * #### Notes\n * This will be `-1` if the height is unknown.\n */\n readonly height: number;\n }\n\n /**\n * The namespace for the `ResizeMessage` class statics.\n */\n export namespace ResizeMessage {\n /**\n * A singleton `'resize'` message with an unknown size.\n */\n export const UnknownSize = new ResizeMessage(-1, -1);\n }\n\n /**\n * Attach a widget to a host DOM node.\n *\n * @param widget - The widget of interest.\n *\n * @param host - The DOM node to use as the widget's host.\n *\n * @param ref - The child of `host` to use as the reference element.\n * If this is provided, the widget will be inserted before this\n * node in the host. The default is `null`, which will cause the\n * widget to be added as the last child of the host.\n *\n * #### Notes\n * This will throw an error if the widget is not a root widget, if\n * the widget is already attached, or if the host is not attached\n * to the DOM.\n */\n export function attach(\n widget: Widget,\n host: HTMLElement,\n ref: HTMLElement | null = null\n ): void {\n if (widget.parent) {\n throw new Error('Cannot attach a child widget.');\n }\n if (widget.isAttached || widget.node.isConnected) {\n throw new Error('Widget is already attached.');\n }\n if (!host.isConnected) {\n throw new Error('Host is not attached.');\n }\n MessageLoop.sendMessage(widget, Widget.Msg.BeforeAttach);\n host.insertBefore(widget.node, ref);\n MessageLoop.sendMessage(widget, Widget.Msg.AfterAttach);\n }\n\n /**\n * Detach the widget from its host DOM node.\n *\n * @param widget - The widget of interest.\n *\n * #### Notes\n * This will throw an error if the widget is not a root widget,\n * or if the widget is not attached to the DOM.\n */\n export function detach(widget: Widget): void {\n if (widget.parent) {\n throw new Error('Cannot detach a child widget.');\n }\n if (!widget.isAttached || !widget.node.isConnected) {\n throw new Error('Widget is not attached.');\n }\n MessageLoop.sendMessage(widget, Widget.Msg.BeforeDetach);\n widget.node.parentNode!.removeChild(widget.node);\n MessageLoop.sendMessage(widget, Widget.Msg.AfterDetach);\n }\n}\n\n/**\n * The namespace for the module implementation details.\n */\nnamespace Private {\n /**\n * An attached property for the widget title object.\n */\n export const titleProperty = new AttachedProperty>({\n name: 'title',\n create: owner => new Title({ owner })\n });\n\n /**\n * Create a DOM node for the given widget options.\n */\n export function createNode(options: Widget.IOptions): HTMLElement {\n return options.node || document.createElement(options.tag || 'div');\n }\n}\n","// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n/*-----------------------------------------------------------------------------\n| Copyright (c) 2014-2017, PhosphorJS Contributors\n|\n| Distributed under the terms of the BSD 3-Clause License.\n|\n| The full license is in the file LICENSE, distributed with this software.\n|----------------------------------------------------------------------------*/\nimport { IDisposable } from '@lumino/disposable';\n\nimport { ISignal, Signal } from '@lumino/signaling';\n\nimport { VirtualElement } from '@lumino/virtualdom';\n\n/**\n * An object which holds data related to an object's title.\n *\n * #### Notes\n * A title object is intended to hold the data necessary to display a\n * header for a particular object. A common example is the `TabPanel`,\n * which uses the widget title to populate the tab for a child widget.\n *\n * It is the responsibility of the owner to call the title disposal.\n */\nexport class Title implements IDisposable {\n /**\n * Construct a new title.\n *\n * @param options - The options for initializing the title.\n */\n constructor(options: Title.IOptions) {\n this.owner = options.owner;\n if (options.label !== undefined) {\n this._label = options.label;\n }\n if (options.mnemonic !== undefined) {\n this._mnemonic = options.mnemonic;\n }\n if (options.icon !== undefined) {\n /* */\n if (typeof options.icon === 'string') {\n // when ._icon is null, the .icon getter will alias .iconClass\n this._icon = null;\n this._iconClass = options.icon;\n } else {\n /* */\n\n this._icon = options.icon;\n\n /* */\n }\n /* */\n } else {\n /* */\n // if unset, default to aliasing .iconClass\n this._icon = null;\n }\n /* */\n\n if (options.iconClass !== undefined) {\n this._iconClass = options.iconClass;\n }\n if (options.iconLabel !== undefined) {\n this._iconLabel = options.iconLabel;\n }\n if (options.iconRenderer !== undefined) {\n this._icon = options.iconRenderer;\n }\n if (options.caption !== undefined) {\n this._caption = options.caption;\n }\n if (options.className !== undefined) {\n this._className = options.className;\n }\n if (options.closable !== undefined) {\n this._closable = options.closable;\n }\n this._dataset = options.dataset || {};\n }\n\n /**\n * A signal emitted when the state of the title changes.\n */\n get changed(): ISignal {\n return this._changed;\n }\n\n /**\n * The object which owns the title.\n */\n readonly owner: T;\n\n /**\n * Get the label for the title.\n *\n * #### Notes\n * The default value is an empty string.\n */\n get label(): string {\n return this._label;\n }\n\n /**\n * Set the label for the title.\n */\n set label(value: string) {\n if (this._label === value) {\n return;\n }\n this._label = value;\n this._changed.emit(undefined);\n }\n\n /**\n * Get the mnemonic index for the title.\n *\n * #### Notes\n * The default value is `-1`.\n */\n get mnemonic(): number {\n return this._mnemonic;\n }\n\n /**\n * Set the mnemonic index for the title.\n */\n set mnemonic(value: number) {\n if (this._mnemonic === value) {\n return;\n }\n this._mnemonic = value;\n this._changed.emit(undefined);\n }\n\n /**\n * Get the icon renderer for the title.\n *\n * #### Notes\n * The default value is undefined.\n *\n * DEPRECATED: if set to a string value, the .icon field will function as\n * an alias for the .iconClass field, for backwards compatibility\n */\n get icon():\n | VirtualElement.IRenderer\n | undefined\n /* */\n | string /* */ {\n /* */\n if (this._icon === null) {\n // only alias .iconClass if ._icon has been explicitly nulled\n return this.iconClass;\n }\n /* */\n\n return this._icon;\n }\n\n /**\n * Set the icon renderer for the title.\n *\n * #### Notes\n * A renderer is an object that supplies a render and unrender function.\n *\n * DEPRECATED: if set to a string value, the .icon field will function as\n * an alias for the .iconClass field, for backwards compatibility\n */\n set icon(\n value:\n | VirtualElement.IRenderer\n | undefined\n /* */\n | string /* */\n ) {\n /* */\n if (typeof value === 'string') {\n // when ._icon is null, the .icon getter will alias .iconClass\n this._icon = null;\n this.iconClass = value;\n } else {\n /* */\n\n if (this._icon === value) {\n return;\n }\n this._icon = value;\n this._changed.emit(undefined);\n\n /* */\n }\n /* */\n }\n\n /**\n * Get the icon class name for the title.\n *\n * #### Notes\n * The default value is an empty string.\n */\n get iconClass(): string {\n return this._iconClass;\n }\n\n /**\n * Set the icon class name for the title.\n *\n * #### Notes\n * Multiple class names can be separated with whitespace.\n */\n set iconClass(value: string) {\n if (this._iconClass === value) {\n return;\n }\n this._iconClass = value;\n this._changed.emit(undefined);\n }\n\n /**\n * Get the icon label for the title.\n *\n * #### Notes\n * The default value is an empty string.\n */\n get iconLabel(): string {\n return this._iconLabel;\n }\n\n /**\n * Set the icon label for the title.\n *\n * #### Notes\n * Multiple class names can be separated with whitespace.\n */\n set iconLabel(value: string) {\n if (this._iconLabel === value) {\n return;\n }\n this._iconLabel = value;\n this._changed.emit(undefined);\n }\n\n /**\n * @deprecated Use `icon` instead.\n */\n get iconRenderer(): VirtualElement.IRenderer | undefined {\n return this._icon || undefined;\n }\n\n /**\n * @deprecated Use `icon` instead.\n */\n set iconRenderer(value: VirtualElement.IRenderer | undefined) {\n this.icon = value;\n }\n\n /**\n * Get the caption for the title.\n *\n * #### Notes\n * The default value is an empty string.\n */\n get caption(): string {\n return this._caption;\n }\n\n /**\n * Set the caption for the title.\n */\n set caption(value: string) {\n if (this._caption === value) {\n return;\n }\n this._caption = value;\n this._changed.emit(undefined);\n }\n\n /**\n * Get the extra class name for the title.\n *\n * #### Notes\n * The default value is an empty string.\n */\n get className(): string {\n return this._className;\n }\n\n /**\n * Set the extra class name for the title.\n *\n * #### Notes\n * Multiple class names can be separated with whitespace.\n */\n set className(value: string) {\n if (this._className === value) {\n return;\n }\n this._className = value;\n this._changed.emit(undefined);\n }\n\n /**\n * Get the closable state for the title.\n *\n * #### Notes\n * The default value is `false`.\n */\n get closable(): boolean {\n return this._closable;\n }\n\n /**\n * Set the closable state for the title.\n *\n * #### Notes\n * This controls the presence of a close icon when applicable.\n */\n set closable(value: boolean) {\n if (this._closable === value) {\n return;\n }\n this._closable = value;\n this._changed.emit(undefined);\n }\n\n /**\n * Get the dataset for the title.\n *\n * #### Notes\n * The default value is an empty dataset.\n */\n get dataset(): Title.Dataset {\n return this._dataset;\n }\n\n /**\n * Set the dataset for the title.\n *\n * #### Notes\n * This controls the data attributes when applicable.\n */\n set dataset(value: Title.Dataset) {\n if (this._dataset === value) {\n return;\n }\n this._dataset = value;\n this._changed.emit(undefined);\n }\n\n /**\n * Test whether the title has been disposed.\n */\n get isDisposed(): boolean {\n return this._isDisposed;\n }\n\n /**\n * Dispose of the resources held by the title.\n *\n * #### Notes\n * It is the responsibility of the owner to call the title disposal.\n */\n dispose(): void {\n if (this.isDisposed) {\n return;\n }\n this._isDisposed = true;\n\n Signal.clearData(this);\n }\n\n private _label = '';\n private _caption = '';\n private _mnemonic = -1;\n\n private _icon:\n | VirtualElement.IRenderer\n | undefined\n /* */\n | null /* */;\n\n private _iconClass = '';\n private _iconLabel = '';\n private _className = '';\n private _closable = false;\n private _dataset: Title.Dataset;\n private _changed = new Signal(this);\n private _isDisposed = false;\n}\n\n/**\n * The namespace for the `Title` class statics.\n */\nexport namespace Title {\n /**\n * A type alias for a simple immutable string dataset.\n */\n export type Dataset = { readonly [key: string]: string };\n\n /**\n * An options object for initializing a title.\n */\n export interface IOptions {\n /**\n * The object which owns the title.\n */\n owner: T;\n\n /**\n * The label for the title.\n */\n label?: string;\n\n /**\n * The mnemonic index for the title.\n */\n mnemonic?: number;\n\n /**\n * The icon renderer for the title.\n *\n * DEPRECATED: if set to a string value, the .icon field will function as\n * an alias for the .iconClass field, for backwards compatibility\n */\n icon?: VirtualElement.IRenderer | string;\n\n /**\n * The icon class name for the title.\n */\n iconClass?: string;\n\n /**\n * The icon label for the title.\n */\n iconLabel?: string;\n\n /**\n * @deprecated Use `icon` instead.\n */\n iconRenderer?: VirtualElement.IRenderer;\n\n /**\n * The caption for the title.\n */\n caption?: string;\n\n /**\n * The extra class name for the title.\n */\n className?: string;\n\n /**\n * The closable state for the title.\n */\n closable?: boolean;\n\n /**\n * The dataset for the title.\n */\n dataset?: Dataset;\n }\n}\n","/* eslint-disable @typescript-eslint/no-empty-function */\n// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n/*-----------------------------------------------------------------------------\n| Copyright (c) 2014-2017, PhosphorJS Contributors\n|\n| Distributed under the terms of the BSD 3-Clause License.\n|\n| The full license is in the file LICENSE, distributed with this software.\n|----------------------------------------------------------------------------*/\nimport { each, IIterable, IIterator } from '@lumino/algorithm';\n\nimport { IDisposable } from '@lumino/disposable';\n\nimport { ElementExt } from '@lumino/domutils';\n\nimport { Message, MessageLoop } from '@lumino/messaging';\n\nimport { AttachedProperty } from '@lumino/properties';\n\nimport { Signal } from '@lumino/signaling';\n\nimport { Widget } from './widget';\n\n/**\n * An abstract base class for creating lumino layouts.\n *\n * #### Notes\n * A layout is used to add widgets to a parent and to arrange those\n * widgets within the parent's DOM node.\n *\n * This class implements the base functionality which is required of\n * nearly all layouts. It must be subclassed in order to be useful.\n *\n * Notably, this class does not define a uniform interface for adding\n * widgets to the layout. A subclass should define that API in a way\n * which is meaningful for its intended use.\n */\nexport abstract class Layout implements IIterable, IDisposable {\n /**\n * Construct a new layout.\n *\n * @param options - The options for initializing the layout.\n */\n constructor(options: Layout.IOptions = {}) {\n this._fitPolicy = options.fitPolicy || 'set-min-size';\n }\n\n /**\n * Dispose of the resources held by the layout.\n *\n * #### Notes\n * This should be reimplemented to clear and dispose of the widgets.\n *\n * All reimplementations should call the superclass method.\n *\n * This method is called automatically when the parent is disposed.\n */\n dispose(): void {\n this._parent = null;\n this._disposed = true;\n Signal.clearData(this);\n AttachedProperty.clearData(this);\n }\n\n /**\n * Test whether the layout is disposed.\n */\n get isDisposed(): boolean {\n return this._disposed;\n }\n\n /**\n * Get the parent widget of the layout.\n */\n get parent(): Widget | null {\n return this._parent;\n }\n\n /**\n * Set the parent widget of the layout.\n *\n * #### Notes\n * This is set automatically when installing the layout on the parent\n * widget. The parent widget should not be set directly by user code.\n */\n set parent(value: Widget | null) {\n if (this._parent === value) {\n return;\n }\n if (this._parent) {\n throw new Error('Cannot change parent widget.');\n }\n if (value!.layout !== this) {\n throw new Error('Invalid parent widget.');\n }\n this._parent = value;\n this.init();\n }\n\n /**\n * Get the fit policy for the layout.\n *\n * #### Notes\n * The fit policy controls the computed size constraints which are\n * applied to the parent widget by the layout.\n *\n * Some layout implementations may ignore the fit policy.\n */\n get fitPolicy(): Layout.FitPolicy {\n return this._fitPolicy;\n }\n\n /**\n * Set the fit policy for the layout.\n *\n * #### Notes\n * The fit policy controls the computed size constraints which are\n * applied to the parent widget by the layout.\n *\n * Some layout implementations may ignore the fit policy.\n *\n * Changing the fit policy will clear the current size constraint\n * for the parent widget and then re-fit the parent.\n */\n set fitPolicy(value: Layout.FitPolicy) {\n // Bail if the policy does not change\n if (this._fitPolicy === value) {\n return;\n }\n\n // Update the internal policy.\n this._fitPolicy = value;\n\n // Clear the size constraints and schedule a fit of the parent.\n if (this._parent) {\n let style = this._parent.node.style;\n style.minWidth = '';\n style.minHeight = '';\n style.maxWidth = '';\n style.maxHeight = '';\n this._parent.fit();\n }\n }\n\n /**\n * Create an iterator over the widgets in the layout.\n *\n * @returns A new iterator over the widgets in the layout.\n *\n * #### Notes\n * This abstract method must be implemented by a subclass.\n */\n abstract iter(): IIterator;\n\n /**\n * Remove a widget from the layout.\n *\n * @param widget - The widget to remove from the layout.\n *\n * #### Notes\n * A widget is automatically removed from the layout when its `parent`\n * is set to `null`. This method should only be invoked directly when\n * removing a widget from a layout which has yet to be installed on a\n * parent widget.\n *\n * This method should *not* modify the widget's `parent`.\n */\n abstract removeWidget(widget: Widget): void;\n\n /**\n * Process a message sent to the parent widget.\n *\n * @param msg - The message sent to the parent widget.\n *\n * #### Notes\n * This method is called by the parent widget to process a message.\n *\n * Subclasses may reimplement this method as needed.\n */\n processParentMessage(msg: Message): void {\n switch (msg.type) {\n case 'resize':\n this.onResize(msg as Widget.ResizeMessage);\n break;\n case 'update-request':\n this.onUpdateRequest(msg);\n break;\n case 'fit-request':\n this.onFitRequest(msg);\n break;\n case 'before-show':\n this.onBeforeShow(msg);\n break;\n case 'after-show':\n this.onAfterShow(msg);\n break;\n case 'before-hide':\n this.onBeforeHide(msg);\n break;\n case 'after-hide':\n this.onAfterHide(msg);\n break;\n case 'before-attach':\n this.onBeforeAttach(msg);\n break;\n case 'after-attach':\n this.onAfterAttach(msg);\n break;\n case 'before-detach':\n this.onBeforeDetach(msg);\n break;\n case 'after-detach':\n this.onAfterDetach(msg);\n break;\n case 'child-removed':\n this.onChildRemoved(msg as Widget.ChildMessage);\n break;\n case 'child-shown':\n this.onChildShown(msg as Widget.ChildMessage);\n break;\n case 'child-hidden':\n this.onChildHidden(msg as Widget.ChildMessage);\n break;\n }\n }\n\n /**\n * Perform layout initialization which requires the parent widget.\n *\n * #### Notes\n * This method is invoked immediately after the layout is installed\n * on the parent widget.\n *\n * The default implementation reparents all of the widgets to the\n * layout parent widget.\n *\n * Subclasses should reimplement this method and attach the child\n * widget nodes to the parent widget's node.\n */\n protected init(): void {\n each(this, widget => {\n widget.parent = this.parent;\n });\n }\n\n /**\n * A message handler invoked on a `'resize'` message.\n *\n * #### Notes\n * The layout should ensure that its widgets are resized according\n * to the specified layout space, and that they are sent a `'resize'`\n * message if appropriate.\n *\n * The default implementation of this method sends an `UnknownSize`\n * resize message to all widgets.\n *\n * This may be reimplemented by subclasses as needed.\n */\n protected onResize(msg: Widget.ResizeMessage): void {\n each(this, widget => {\n MessageLoop.sendMessage(widget, Widget.ResizeMessage.UnknownSize);\n });\n }\n\n /**\n * A message handler invoked on an `'update-request'` message.\n *\n * #### Notes\n * The layout should ensure that its widgets are resized according\n * to the available layout space, and that they are sent a `'resize'`\n * message if appropriate.\n *\n * The default implementation of this method sends an `UnknownSize`\n * resize message to all widgets.\n *\n * This may be reimplemented by subclasses as needed.\n */\n protected onUpdateRequest(msg: Message): void {\n each(this, widget => {\n MessageLoop.sendMessage(widget, Widget.ResizeMessage.UnknownSize);\n });\n }\n\n /**\n * A message handler invoked on a `'before-attach'` message.\n *\n * #### Notes\n * The default implementation of this method forwards the message\n * to all widgets. It assumes all widget nodes are attached to the\n * parent widget node.\n *\n * This may be reimplemented by subclasses as needed.\n */\n protected onBeforeAttach(msg: Message): void {\n each(this, widget => {\n MessageLoop.sendMessage(widget, msg);\n });\n }\n\n /**\n * A message handler invoked on an `'after-attach'` message.\n *\n * #### Notes\n * The default implementation of this method forwards the message\n * to all widgets. It assumes all widget nodes are attached to the\n * parent widget node.\n *\n * This may be reimplemented by subclasses as needed.\n */\n protected onAfterAttach(msg: Message): void {\n each(this, widget => {\n MessageLoop.sendMessage(widget, msg);\n });\n }\n\n /**\n * A message handler invoked on a `'before-detach'` message.\n *\n * #### Notes\n * The default implementation of this method forwards the message\n * to all widgets. It assumes all widget nodes are attached to the\n * parent widget node.\n *\n * This may be reimplemented by subclasses as needed.\n */\n protected onBeforeDetach(msg: Message): void {\n each(this, widget => {\n MessageLoop.sendMessage(widget, msg);\n });\n }\n\n /**\n * A message handler invoked on an `'after-detach'` message.\n *\n * #### Notes\n * The default implementation of this method forwards the message\n * to all widgets. It assumes all widget nodes are attached to the\n * parent widget node.\n *\n * This may be reimplemented by subclasses as needed.\n */\n protected onAfterDetach(msg: Message): void {\n each(this, widget => {\n MessageLoop.sendMessage(widget, msg);\n });\n }\n\n /**\n * A message handler invoked on a `'before-show'` message.\n *\n * #### Notes\n * The default implementation of this method forwards the message to\n * all non-hidden widgets. It assumes all widget nodes are attached\n * to the parent widget node.\n *\n * This may be reimplemented by subclasses as needed.\n */\n protected onBeforeShow(msg: Message): void {\n each(this, widget => {\n if (!widget.isHidden) {\n MessageLoop.sendMessage(widget, msg);\n }\n });\n }\n\n /**\n * A message handler invoked on an `'after-show'` message.\n *\n * #### Notes\n * The default implementation of this method forwards the message to\n * all non-hidden widgets. It assumes all widget nodes are attached\n * to the parent widget node.\n *\n * This may be reimplemented by subclasses as needed.\n */\n protected onAfterShow(msg: Message): void {\n each(this, widget => {\n if (!widget.isHidden) {\n MessageLoop.sendMessage(widget, msg);\n }\n });\n }\n\n /**\n * A message handler invoked on a `'before-hide'` message.\n *\n * #### Notes\n * The default implementation of this method forwards the message to\n * all non-hidden widgets. It assumes all widget nodes are attached\n * to the parent widget node.\n *\n * This may be reimplemented by subclasses as needed.\n */\n protected onBeforeHide(msg: Message): void {\n each(this, widget => {\n if (!widget.isHidden) {\n MessageLoop.sendMessage(widget, msg);\n }\n });\n }\n\n /**\n * A message handler invoked on an `'after-hide'` message.\n *\n * #### Notes\n * The default implementation of this method forwards the message to\n * all non-hidden widgets. It assumes all widget nodes are attached\n * to the parent widget node.\n *\n * This may be reimplemented by subclasses as needed.\n */\n protected onAfterHide(msg: Message): void {\n each(this, widget => {\n if (!widget.isHidden) {\n MessageLoop.sendMessage(widget, msg);\n }\n });\n }\n\n /**\n * A message handler invoked on a `'child-removed'` message.\n *\n * #### Notes\n * This will remove the child widget from the layout.\n *\n * Subclasses should **not** typically reimplement this method.\n */\n protected onChildRemoved(msg: Widget.ChildMessage): void {\n this.removeWidget(msg.child);\n }\n\n /**\n * A message handler invoked on a `'fit-request'` message.\n *\n * #### Notes\n * The default implementation of this handler is a no-op.\n */\n protected onFitRequest(msg: Message): void {}\n\n /**\n * A message handler invoked on a `'child-shown'` message.\n *\n * #### Notes\n * The default implementation of this handler is a no-op.\n */\n protected onChildShown(msg: Widget.ChildMessage): void {}\n\n /**\n * A message handler invoked on a `'child-hidden'` message.\n *\n * #### Notes\n * The default implementation of this handler is a no-op.\n */\n protected onChildHidden(msg: Widget.ChildMessage): void {}\n\n private _disposed = false;\n private _fitPolicy: Layout.FitPolicy;\n private _parent: Widget | null = null;\n}\n\n/**\n * The namespace for the `Layout` class statics.\n */\nexport namespace Layout {\n /**\n * A type alias for the layout fit policy.\n *\n * #### Notes\n * The fit policy controls the computed size constraints which are\n * applied to the parent widget by the layout.\n *\n * Some layout implementations may ignore the fit policy.\n */\n export type FitPolicy =\n | /**\n * No size constraint will be applied to the parent widget.\n */\n 'set-no-constraint'\n\n /**\n * The computed min size will be applied to the parent widget.\n */\n | 'set-min-size';\n\n /**\n * An options object for initializing a layout.\n */\n export interface IOptions {\n /**\n * The fit policy for the layout.\n *\n * The default is `'set-min-size'`.\n */\n fitPolicy?: FitPolicy;\n }\n\n /**\n * A type alias for the horizontal alignment of a widget.\n */\n export type HorizontalAlignment = 'left' | 'center' | 'right';\n\n /**\n * A type alias for the vertical alignment of a widget.\n */\n export type VerticalAlignment = 'top' | 'center' | 'bottom';\n\n /**\n * Get the horizontal alignment for a widget.\n *\n * @param widget - The widget of interest.\n *\n * @returns The horizontal alignment for the widget.\n *\n * #### Notes\n * If the layout width allocated to a widget is larger than its max\n * width, the horizontal alignment controls how the widget is placed\n * within the extra horizontal space.\n *\n * If the allocated width is less than the widget's max width, the\n * horizontal alignment has no effect.\n *\n * Some layout implementations may ignore horizontal alignment.\n */\n export function getHorizontalAlignment(widget: Widget): HorizontalAlignment {\n return Private.horizontalAlignmentProperty.get(widget);\n }\n\n /**\n * Set the horizontal alignment for a widget.\n *\n * @param widget - The widget of interest.\n *\n * @param value - The value for the horizontal alignment.\n *\n * #### Notes\n * If the layout width allocated to a widget is larger than its max\n * width, the horizontal alignment controls how the widget is placed\n * within the extra horizontal space.\n *\n * If the allocated width is less than the widget's max width, the\n * horizontal alignment has no effect.\n *\n * Some layout implementations may ignore horizontal alignment.\n *\n * Changing the horizontal alignment will post an `update-request`\n * message to widget's parent, provided the parent has a layout\n * installed.\n */\n export function setHorizontalAlignment(\n widget: Widget,\n value: HorizontalAlignment\n ): void {\n Private.horizontalAlignmentProperty.set(widget, value);\n }\n\n /**\n * Get the vertical alignment for a widget.\n *\n * @param widget - The widget of interest.\n *\n * @returns The vertical alignment for the widget.\n *\n * #### Notes\n * If the layout height allocated to a widget is larger than its max\n * height, the vertical alignment controls how the widget is placed\n * within the extra vertical space.\n *\n * If the allocated height is less than the widget's max height, the\n * vertical alignment has no effect.\n *\n * Some layout implementations may ignore vertical alignment.\n */\n export function getVerticalAlignment(widget: Widget): VerticalAlignment {\n return Private.verticalAlignmentProperty.get(widget);\n }\n\n /**\n * Set the vertical alignment for a widget.\n *\n * @param widget - The widget of interest.\n *\n * @param value - The value for the vertical alignment.\n *\n * #### Notes\n * If the layout height allocated to a widget is larger than its max\n * height, the vertical alignment controls how the widget is placed\n * within the extra vertical space.\n *\n * If the allocated height is less than the widget's max height, the\n * vertical alignment has no effect.\n *\n * Some layout implementations may ignore vertical alignment.\n *\n * Changing the horizontal alignment will post an `update-request`\n * message to widget's parent, provided the parent has a layout\n * installed.\n */\n export function setVerticalAlignment(\n widget: Widget,\n value: VerticalAlignment\n ): void {\n Private.verticalAlignmentProperty.set(widget, value);\n }\n}\n\n/**\n * An object which assists in the absolute layout of widgets.\n *\n * #### Notes\n * This class is useful when implementing a layout which arranges its\n * widgets using absolute positioning.\n *\n * This class is used by nearly all of the built-in lumino layouts.\n */\nexport class LayoutItem implements IDisposable {\n /**\n * Construct a new layout item.\n *\n * @param widget - The widget to be managed by the item.\n *\n * #### Notes\n * The widget will be set to absolute positioning.\n */\n constructor(widget: Widget) {\n this.widget = widget;\n this.widget.node.style.position = 'absolute';\n }\n\n /**\n * Dispose of the the layout item.\n *\n * #### Notes\n * This will reset the positioning of the widget.\n */\n dispose(): void {\n // Do nothing if the item is already disposed.\n if (this._disposed) {\n return;\n }\n\n // Mark the item as disposed.\n this._disposed = true;\n\n // Reset the widget style.\n let style = this.widget.node.style;\n style.position = '';\n style.top = '';\n style.left = '';\n style.width = '';\n style.height = '';\n }\n\n /**\n * The widget managed by the layout item.\n */\n readonly widget: Widget;\n\n /**\n * The computed minimum width of the widget.\n *\n * #### Notes\n * This value can be updated by calling the `fit` method.\n */\n get minWidth(): number {\n return this._minWidth;\n }\n\n /**\n * The computed minimum height of the widget.\n *\n * #### Notes\n * This value can be updated by calling the `fit` method.\n */\n get minHeight(): number {\n return this._minHeight;\n }\n\n /**\n * The computed maximum width of the widget.\n *\n * #### Notes\n * This value can be updated by calling the `fit` method.\n */\n get maxWidth(): number {\n return this._maxWidth;\n }\n\n /**\n * The computed maximum height of the widget.\n *\n * #### Notes\n * This value can be updated by calling the `fit` method.\n */\n get maxHeight(): number {\n return this._maxHeight;\n }\n\n /**\n * Whether the layout item is disposed.\n */\n get isDisposed(): boolean {\n return this._disposed;\n }\n\n /**\n * Whether the managed widget is hidden.\n */\n get isHidden(): boolean {\n return this.widget.isHidden;\n }\n\n /**\n * Whether the managed widget is visible.\n */\n get isVisible(): boolean {\n return this.widget.isVisible;\n }\n\n /**\n * Whether the managed widget is attached.\n */\n get isAttached(): boolean {\n return this.widget.isAttached;\n }\n\n /**\n * Update the computed size limits of the managed widget.\n */\n fit(): void {\n let limits = ElementExt.sizeLimits(this.widget.node);\n this._minWidth = limits.minWidth;\n this._minHeight = limits.minHeight;\n this._maxWidth = limits.maxWidth;\n this._maxHeight = limits.maxHeight;\n }\n\n /**\n * Update the position and size of the managed widget.\n *\n * @param left - The left edge position of the layout box.\n *\n * @param top - The top edge position of the layout box.\n *\n * @param width - The width of the layout box.\n *\n * @param height - The height of the layout box.\n */\n update(left: number, top: number, width: number, height: number): void {\n // Clamp the size to the computed size limits.\n let clampW = Math.max(this._minWidth, Math.min(width, this._maxWidth));\n let clampH = Math.max(this._minHeight, Math.min(height, this._maxHeight));\n\n // Adjust the left edge for the horizontal alignment, if needed.\n if (clampW < width) {\n switch (Layout.getHorizontalAlignment(this.widget)) {\n case 'left':\n break;\n case 'center':\n left += (width - clampW) / 2;\n break;\n case 'right':\n left += width - clampW;\n break;\n default:\n throw 'unreachable';\n }\n }\n\n // Adjust the top edge for the vertical alignment, if needed.\n if (clampH < height) {\n switch (Layout.getVerticalAlignment(this.widget)) {\n case 'top':\n break;\n case 'center':\n top += (height - clampH) / 2;\n break;\n case 'bottom':\n top += height - clampH;\n break;\n default:\n throw 'unreachable';\n }\n }\n\n // Set up the resize variables.\n let resized = false;\n let style = this.widget.node.style;\n\n // Update the top edge of the widget if needed.\n if (this._top !== top) {\n this._top = top;\n style.top = `${top}px`;\n }\n\n // Update the left edge of the widget if needed.\n if (this._left !== left) {\n this._left = left;\n style.left = `${left}px`;\n }\n\n // Update the width of the widget if needed.\n if (this._width !== clampW) {\n resized = true;\n this._width = clampW;\n style.width = `${clampW}px`;\n }\n\n // Update the height of the widget if needed.\n if (this._height !== clampH) {\n resized = true;\n this._height = clampH;\n style.height = `${clampH}px`;\n }\n\n // Send a resize message to the widget if needed.\n if (resized) {\n let msg = new Widget.ResizeMessage(clampW, clampH);\n MessageLoop.sendMessage(this.widget, msg);\n }\n }\n\n private _top = NaN;\n private _left = NaN;\n private _width = NaN;\n private _height = NaN;\n private _minWidth = 0;\n private _minHeight = 0;\n private _maxWidth = Infinity;\n private _maxHeight = Infinity;\n private _disposed = false;\n}\n\n/**\n * The namespace for the module implementation details.\n */\nnamespace Private {\n /**\n * The attached property for a widget horizontal alignment.\n */\n export const horizontalAlignmentProperty = new AttachedProperty<\n Widget,\n Layout.HorizontalAlignment\n >({\n name: 'horizontalAlignment',\n create: () => 'center',\n changed: onAlignmentChanged\n });\n\n /**\n * The attached property for a widget vertical alignment.\n */\n export const verticalAlignmentProperty = new AttachedProperty<\n Widget,\n Layout.VerticalAlignment\n >({\n name: 'verticalAlignment',\n create: () => 'top',\n changed: onAlignmentChanged\n });\n\n /**\n * The change handler for the attached alignment properties.\n */\n function onAlignmentChanged(child: Widget): void {\n if (child.parent && child.parent.layout) {\n child.parent.update();\n }\n }\n}\n","export namespace Utils {\n /**\n * Clamp a dimension value to an integer >= 0.\n */\n export function clampDimension(value: number): number {\n return Math.max(0, Math.floor(value));\n }\n}\n\nexport default Utils;\n","// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n/*-----------------------------------------------------------------------------\n| Copyright (c) 2014-2017, PhosphorJS Contributors\n|\n| Distributed under the terms of the BSD 3-Clause License.\n|\n| The full license is in the file LICENSE, distributed with this software.\n|----------------------------------------------------------------------------*/\nimport { ArrayExt, each, IIterator, iter } from '@lumino/algorithm';\n\nimport { MessageLoop } from '@lumino/messaging';\n\nimport { Layout } from './layout';\n\nimport { Widget } from './widget';\n\n/**\n * A concrete layout implementation suitable for many use cases.\n *\n * #### Notes\n * This class is suitable as a base class for implementing a variety of\n * layouts, but can also be used directly with standard CSS to layout a\n * collection of widgets.\n */\nexport class PanelLayout extends Layout {\n /**\n * Dispose of the resources held by the layout.\n *\n * #### Notes\n * This will clear and dispose all widgets in the layout.\n *\n * All reimplementations should call the superclass method.\n *\n * This method is called automatically when the parent is disposed.\n */\n dispose(): void {\n while (this._widgets.length > 0) {\n this._widgets.pop()!.dispose();\n }\n super.dispose();\n }\n\n /**\n * A read-only array of the widgets in the layout.\n */\n get widgets(): ReadonlyArray {\n return this._widgets;\n }\n\n /**\n * Create an iterator over the widgets in the layout.\n *\n * @returns A new iterator over the widgets in the layout.\n */\n iter(): IIterator {\n return iter(this._widgets);\n }\n\n /**\n * Add a widget to the end of the layout.\n *\n * @param widget - The widget to add to the layout.\n *\n * #### Notes\n * If the widget is already contained in the layout, it will be moved.\n */\n addWidget(widget: Widget): void {\n this.insertWidget(this._widgets.length, widget);\n }\n\n /**\n * Insert a widget into the layout at the specified index.\n *\n * @param index - The index at which to insert the widget.\n *\n * @param widget - The widget to insert into the layout.\n *\n * #### Notes\n * The index will be clamped to the bounds of the widgets.\n *\n * If the widget is already added to the layout, it will be moved.\n *\n * #### Undefined Behavior\n * An `index` which is non-integral.\n */\n insertWidget(index: number, widget: Widget): void {\n // Remove the widget from its current parent. This is a no-op\n // if the widget's parent is already the layout parent widget.\n widget.parent = this.parent;\n\n // Look up the current index of the widget.\n let i = this._widgets.indexOf(widget);\n\n // Clamp the insert index to the array bounds.\n let j = Math.max(0, Math.min(index, this._widgets.length));\n\n // If the widget is not in the array, insert it.\n if (i === -1) {\n // Insert the widget into the array.\n ArrayExt.insert(this._widgets, j, widget);\n\n // If the layout is parented, attach the widget to the DOM.\n if (this.parent) {\n this.attachWidget(j, widget);\n }\n\n // There is nothing more to do.\n return;\n }\n\n // Otherwise, the widget exists in the array and should be moved.\n\n // Adjust the index if the location is at the end of the array.\n if (j === this._widgets.length) {\n j--;\n }\n\n // Bail if there is no effective move.\n if (i === j) {\n return;\n }\n\n // Move the widget to the new location.\n ArrayExt.move(this._widgets, i, j);\n\n // If the layout is parented, move the widget in the DOM.\n if (this.parent) {\n this.moveWidget(i, j, widget);\n }\n }\n\n /**\n * Remove a widget from the layout.\n *\n * @param widget - The widget to remove from the layout.\n *\n * #### Notes\n * A widget is automatically removed from the layout when its `parent`\n * is set to `null`. This method should only be invoked directly when\n * removing a widget from a layout which has yet to be installed on a\n * parent widget.\n *\n * This method does *not* modify the widget's `parent`.\n */\n removeWidget(widget: Widget): void {\n this.removeWidgetAt(this._widgets.indexOf(widget));\n }\n\n /**\n * Remove the widget at a given index from the layout.\n *\n * @param index - The index of the widget to remove.\n *\n * #### Notes\n * A widget is automatically removed from the layout when its `parent`\n * is set to `null`. This method should only be invoked directly when\n * removing a widget from a layout which has yet to be installed on a\n * parent widget.\n *\n * This method does *not* modify the widget's `parent`.\n *\n * #### Undefined Behavior\n * An `index` which is non-integral.\n */\n removeWidgetAt(index: number): void {\n // Remove the widget from the array.\n let widget = ArrayExt.removeAt(this._widgets, index);\n\n // If the layout is parented, detach the widget from the DOM.\n if (widget && this.parent) {\n this.detachWidget(index, widget);\n }\n }\n\n /**\n * Perform layout initialization which requires the parent widget.\n */\n protected init(): void {\n super.init();\n each(this, (widget, index) => {\n this.attachWidget(index, widget);\n });\n }\n\n /**\n * Attach a widget to the parent's DOM node.\n *\n * @param index - The current index of the widget in the layout.\n *\n * @param widget - The widget to attach to the parent.\n *\n * #### Notes\n * This method is called automatically by the panel layout at the\n * appropriate time. It should not be called directly by user code.\n *\n * The default implementation adds the widgets's node to the parent's\n * node at the proper location, and sends the appropriate attach\n * messages to the widget if the parent is attached to the DOM.\n *\n * Subclasses may reimplement this method to control how the widget's\n * node is added to the parent's node.\n */\n protected attachWidget(index: number, widget: Widget): void {\n // Look up the next sibling reference node.\n let ref = this.parent!.node.children[index];\n\n // Send a `'before-attach'` message if the parent is attached.\n if (this.parent!.isAttached) {\n MessageLoop.sendMessage(widget, Widget.Msg.BeforeAttach);\n }\n\n // Insert the widget's node before the sibling.\n this.parent!.node.insertBefore(widget.node, ref);\n\n // Send an `'after-attach'` message if the parent is attached.\n if (this.parent!.isAttached) {\n MessageLoop.sendMessage(widget, Widget.Msg.AfterAttach);\n }\n }\n\n /**\n * Move a widget in the parent's DOM node.\n *\n * @param fromIndex - The previous index of the widget in the layout.\n *\n * @param toIndex - The current index of the widget in the layout.\n *\n * @param widget - The widget to move in the parent.\n *\n * #### Notes\n * This method is called automatically by the panel layout at the\n * appropriate time. It should not be called directly by user code.\n *\n * The default implementation moves the widget's node to the proper\n * location in the parent's node and sends the appropriate attach and\n * detach messages to the widget if the parent is attached to the DOM.\n *\n * Subclasses may reimplement this method to control how the widget's\n * node is moved in the parent's node.\n */\n protected moveWidget(\n fromIndex: number,\n toIndex: number,\n widget: Widget\n ): void {\n // Send a `'before-detach'` message if the parent is attached.\n if (this.parent!.isAttached) {\n MessageLoop.sendMessage(widget, Widget.Msg.BeforeDetach);\n }\n\n // Remove the widget's node from the parent.\n this.parent!.node.removeChild(widget.node);\n\n // Send an `'after-detach'` and message if the parent is attached.\n if (this.parent!.isAttached) {\n MessageLoop.sendMessage(widget, Widget.Msg.AfterDetach);\n }\n\n // Look up the next sibling reference node.\n let ref = this.parent!.node.children[toIndex];\n\n // Send a `'before-attach'` message if the parent is attached.\n if (this.parent!.isAttached) {\n MessageLoop.sendMessage(widget, Widget.Msg.BeforeAttach);\n }\n\n // Insert the widget's node before the sibling.\n this.parent!.node.insertBefore(widget.node, ref);\n\n // Send an `'after-attach'` message if the parent is attached.\n if (this.parent!.isAttached) {\n MessageLoop.sendMessage(widget, Widget.Msg.AfterAttach);\n }\n }\n\n /**\n * Detach a widget from the parent's DOM node.\n *\n * @param index - The previous index of the widget in the layout.\n *\n * @param widget - The widget to detach from the parent.\n *\n * #### Notes\n * This method is called automatically by the panel layout at the\n * appropriate time. It should not be called directly by user code.\n *\n * The default implementation removes the widget's node from the\n * parent's node, and sends the appropriate detach messages to the\n * widget if the parent is attached to the DOM.\n *\n * Subclasses may reimplement this method to control how the widget's\n * node is removed from the parent's node.\n */\n protected detachWidget(index: number, widget: Widget): void {\n // Send a `'before-detach'` message if the parent is attached.\n if (this.parent!.isAttached) {\n MessageLoop.sendMessage(widget, Widget.Msg.BeforeDetach);\n }\n\n // Remove the widget's node from the parent.\n this.parent!.node.removeChild(widget.node);\n\n // Send an `'after-detach'` message if the parent is attached.\n if (this.parent!.isAttached) {\n MessageLoop.sendMessage(widget, Widget.Msg.AfterDetach);\n }\n }\n\n private _widgets: Widget[] = [];\n}\n","// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n/*-----------------------------------------------------------------------------\n| Copyright (c) 2014-2017, PhosphorJS Contributors\n|\n| Distributed under the terms of the BSD 3-Clause License.\n|\n| The full license is in the file LICENSE, distributed with this software.\n|----------------------------------------------------------------------------*/\nimport { ArrayExt, each } from '@lumino/algorithm';\n\nimport { ElementExt } from '@lumino/domutils';\n\nimport { Message, MessageLoop } from '@lumino/messaging';\n\nimport { AttachedProperty } from '@lumino/properties';\n\nimport { BoxEngine, BoxSizer } from './boxengine';\n\nimport { LayoutItem } from './layout';\n\nimport { PanelLayout } from './panellayout';\n\nimport { Utils } from './utils';\n\nimport { Widget } from './widget';\n\n/**\n * A layout which arranges its widgets into resizable sections.\n */\nexport class SplitLayout extends PanelLayout {\n /**\n * Construct a new split layout.\n *\n * @param options - The options for initializing the layout.\n */\n constructor(options: SplitLayout.IOptions) {\n super();\n this.renderer = options.renderer;\n if (options.orientation !== undefined) {\n this._orientation = options.orientation;\n }\n if (options.alignment !== undefined) {\n this._alignment = options.alignment;\n }\n if (options.spacing !== undefined) {\n this._spacing = Utils.clampDimension(options.spacing);\n }\n }\n\n /**\n * Dispose of the resources held by the layout.\n */\n dispose(): void {\n // Dispose of the layout items.\n each(this._items, item => {\n item.dispose();\n });\n\n // Clear the layout state.\n this._box = null;\n this._items.length = 0;\n this._sizers.length = 0;\n this._handles.length = 0;\n\n // Dispose of the rest of the layout.\n super.dispose();\n }\n\n /**\n * The renderer used by the split layout.\n */\n readonly renderer: SplitLayout.IRenderer;\n\n /**\n * Get the layout orientation for the split layout.\n */\n get orientation(): SplitLayout.Orientation {\n return this._orientation;\n }\n\n /**\n * Set the layout orientation for the split layout.\n */\n set orientation(value: SplitLayout.Orientation) {\n if (this._orientation === value) {\n return;\n }\n this._orientation = value;\n if (!this.parent) {\n return;\n }\n this.parent.dataset['orientation'] = value;\n this.parent.fit();\n }\n\n /**\n * Get the content alignment for the split layout.\n *\n * #### Notes\n * This is the alignment of the widgets in the layout direction.\n *\n * The alignment has no effect if the widgets can expand to fill the\n * entire split layout.\n */\n get alignment(): SplitLayout.Alignment {\n return this._alignment;\n }\n\n /**\n * Set the content alignment for the split layout.\n *\n * #### Notes\n * This is the alignment of the widgets in the layout direction.\n *\n * The alignment has no effect if the widgets can expand to fill the\n * entire split layout.\n */\n set alignment(value: SplitLayout.Alignment) {\n if (this._alignment === value) {\n return;\n }\n this._alignment = value;\n if (!this.parent) {\n return;\n }\n this.parent.dataset['alignment'] = value;\n this.parent.update();\n }\n\n /**\n * Get the inter-element spacing for the split layout.\n */\n get spacing(): number {\n return this._spacing;\n }\n\n /**\n * Set the inter-element spacing for the split layout.\n */\n set spacing(value: number) {\n value = Utils.clampDimension(value);\n if (this._spacing === value) {\n return;\n }\n this._spacing = value;\n if (!this.parent) {\n return;\n }\n this.parent.fit();\n }\n\n /**\n * A read-only array of the split handles in the layout.\n */\n get handles(): ReadonlyArray {\n return this._handles;\n }\n\n /**\n * Get the absolute sizes of the widgets in the layout.\n *\n * @returns A new array of the absolute sizes of the widgets.\n *\n * This method **does not** measure the DOM nodes.\n */\n absoluteSizes(): number[] {\n return this._sizers.map(sizer => sizer.size);\n }\n\n /**\n * Get the relative sizes of the widgets in the layout.\n *\n * @returns A new array of the relative sizes of the widgets.\n *\n * #### Notes\n * The returned sizes reflect the sizes of the widgets normalized\n * relative to their siblings.\n *\n * This method **does not** measure the DOM nodes.\n */\n relativeSizes(): number[] {\n return Private.normalize(this._sizers.map(sizer => sizer.size));\n }\n\n /**\n * Set the relative sizes for the widgets in the layout.\n *\n * @param sizes - The relative sizes for the widgets in the panel.\n * @param update - Update the layout after setting relative sizes.\n * Default is True.\n *\n * #### Notes\n * Extra values are ignored, too few will yield an undefined layout.\n *\n * The actual geometry of the DOM nodes is updated asynchronously.\n */\n setRelativeSizes(sizes: number[], update = true): void {\n // Copy the sizes and pad with zeros as needed.\n let n = this._sizers.length;\n let temp = sizes.slice(0, n);\n while (temp.length < n) {\n temp.push(0);\n }\n\n // Normalize the padded sizes.\n let normed = Private.normalize(temp);\n\n // Apply the normalized sizes to the sizers.\n for (let i = 0; i < n; ++i) {\n let sizer = this._sizers[i];\n sizer.sizeHint = normed[i];\n sizer.size = normed[i];\n }\n\n // Set the flag indicating the sizes are normalized.\n this._hasNormedSizes = true;\n\n // Trigger an update of the parent widget.\n if (update && this.parent) {\n this.parent.update();\n }\n }\n\n /**\n * Move the offset position of a split handle.\n *\n * @param index - The index of the handle of the interest.\n *\n * @param position - The desired offset position of the handle.\n *\n * #### Notes\n * The position is relative to the offset parent.\n *\n * This will move the handle as close as possible to the desired\n * position. The sibling widgets will be adjusted as necessary.\n */\n moveHandle(index: number, position: number): void {\n // Bail if the index is invalid or the handle is hidden.\n let handle = this._handles[index];\n if (!handle || handle.classList.contains('lm-mod-hidden')) {\n return;\n }\n\n // Compute the desired delta movement for the handle.\n let delta: number;\n if (this._orientation === 'horizontal') {\n delta = position - handle.offsetLeft;\n } else {\n delta = position - handle.offsetTop;\n }\n\n // Bail if there is no handle movement.\n if (delta === 0) {\n return;\n }\n\n // Prevent widget resizing unless needed.\n for (let sizer of this._sizers) {\n if (sizer.size > 0) {\n sizer.sizeHint = sizer.size;\n }\n }\n\n // Adjust the sizers to reflect the handle movement.\n BoxEngine.adjust(this._sizers, index, delta);\n\n // Update the layout of the widgets.\n if (this.parent) {\n this.parent.update();\n }\n }\n\n /**\n * Perform layout initialization which requires the parent widget.\n */\n protected init(): void {\n this.parent!.dataset['orientation'] = this.orientation;\n this.parent!.dataset['alignment'] = this.alignment;\n super.init();\n }\n\n /**\n * Attach a widget to the parent's DOM node.\n *\n * @param index - The current index of the widget in the layout.\n *\n * @param widget - The widget to attach to the parent.\n *\n * #### Notes\n * This is a reimplementation of the superclass method.\n */\n protected attachWidget(index: number, widget: Widget): void {\n // Create the item, handle, and sizer for the new widget.\n let item = new LayoutItem(widget);\n let handle = Private.createHandle(this.renderer);\n let average = Private.averageSize(this._sizers);\n let sizer = Private.createSizer(average);\n\n // Insert the item, handle, and sizer into the internal arrays.\n ArrayExt.insert(this._items, index, item);\n ArrayExt.insert(this._sizers, index, sizer);\n ArrayExt.insert(this._handles, index, handle);\n\n // Send a `'before-attach'` message if the parent is attached.\n if (this.parent!.isAttached) {\n MessageLoop.sendMessage(widget, Widget.Msg.BeforeAttach);\n }\n\n // Add the widget and handle nodes to the parent.\n this.parent!.node.appendChild(widget.node);\n this.parent!.node.appendChild(handle);\n\n // Send an `'after-attach'` message if the parent is attached.\n if (this.parent!.isAttached) {\n MessageLoop.sendMessage(widget, Widget.Msg.AfterAttach);\n }\n\n // Post a fit request for the parent widget.\n this.parent!.fit();\n }\n\n /**\n * Move a widget in the parent's DOM node.\n *\n * @param fromIndex - The previous index of the widget in the layout.\n *\n * @param toIndex - The current index of the widget in the layout.\n *\n * @param widget - The widget to move in the parent.\n *\n * #### Notes\n * This is a reimplementation of the superclass method.\n */\n protected moveWidget(\n fromIndex: number,\n toIndex: number,\n widget: Widget\n ): void {\n // Move the item, sizer, and handle for the widget.\n ArrayExt.move(this._items, fromIndex, toIndex);\n ArrayExt.move(this._sizers, fromIndex, toIndex);\n ArrayExt.move(this._handles, fromIndex, toIndex);\n\n // Post a fit request to the parent to show/hide last handle.\n this.parent!.fit();\n }\n\n /**\n * Detach a widget from the parent's DOM node.\n *\n * @param index - The previous index of the widget in the layout.\n *\n * @param widget - The widget to detach from the parent.\n *\n * #### Notes\n * This is a reimplementation of the superclass method.\n */\n protected detachWidget(index: number, widget: Widget): void {\n // Remove the item, handle, and sizer for the widget.\n let item = ArrayExt.removeAt(this._items, index);\n let handle = ArrayExt.removeAt(this._handles, index);\n ArrayExt.removeAt(this._sizers, index);\n\n // Send a `'before-detach'` message if the parent is attached.\n if (this.parent!.isAttached) {\n MessageLoop.sendMessage(widget, Widget.Msg.BeforeDetach);\n }\n\n // Remove the widget and handle nodes from the parent.\n this.parent!.node.removeChild(widget.node);\n this.parent!.node.removeChild(handle!);\n\n // Send an `'after-detach'` message if the parent is attached.\n if (this.parent!.isAttached) {\n MessageLoop.sendMessage(widget, Widget.Msg.AfterDetach);\n }\n\n // Dispose of the layout item.\n item!.dispose();\n\n // Post a fit request for the parent widget.\n this.parent!.fit();\n }\n\n /**\n * A message handler invoked on a `'before-show'` message.\n */\n protected onBeforeShow(msg: Message): void {\n super.onBeforeShow(msg);\n this.parent!.update();\n }\n\n /**\n * A message handler invoked on a `'before-attach'` message.\n */\n protected onBeforeAttach(msg: Message): void {\n super.onBeforeAttach(msg);\n this.parent!.fit();\n }\n\n /**\n * A message handler invoked on a `'child-shown'` message.\n */\n protected onChildShown(msg: Widget.ChildMessage): void {\n this.parent!.fit();\n }\n\n /**\n * A message handler invoked on a `'child-hidden'` message.\n */\n protected onChildHidden(msg: Widget.ChildMessage): void {\n this.parent!.fit();\n }\n\n /**\n * A message handler invoked on a `'resize'` message.\n */\n protected onResize(msg: Widget.ResizeMessage): void {\n if (this.parent!.isVisible) {\n this._update(msg.width, msg.height);\n }\n }\n\n /**\n * A message handler invoked on an `'update-request'` message.\n */\n protected onUpdateRequest(msg: Message): void {\n if (this.parent!.isVisible) {\n this._update(-1, -1);\n }\n }\n\n /**\n * A message handler invoked on a `'fit-request'` message.\n */\n protected onFitRequest(msg: Message): void {\n if (this.parent!.isAttached) {\n this._fit();\n }\n }\n\n /**\n * Update the item position.\n *\n * @param i Item index\n * @param isHorizontal Whether the layout is horizontal or not\n * @param left Left position in pixels\n * @param top Top position in pixels\n * @param height Item height\n * @param width Item width\n * @param size Item size\n */\n protected updateItemPosition(\n i: number,\n isHorizontal: boolean,\n left: number,\n top: number,\n height: number,\n width: number,\n size: number\n ): void {\n const item = this._items[i];\n if (item.isHidden) {\n return;\n }\n\n // Fetch the style for the handle.\n let handleStyle = this._handles[i].style;\n\n // Update the widget and handle, and advance the relevant edge.\n if (isHorizontal) {\n left += this.widgetOffset;\n item.update(left, top, size, height);\n left += size;\n handleStyle.top = `${top}px`;\n handleStyle.left = `${left}px`;\n handleStyle.width = `${this._spacing}px`;\n handleStyle.height = `${height}px`;\n } else {\n top += this.widgetOffset;\n item.update(left, top, width, size);\n top += size;\n handleStyle.top = `${top}px`;\n handleStyle.left = `${left}px`;\n handleStyle.width = `${width}px`;\n handleStyle.height = `${this._spacing}px`;\n }\n }\n\n /**\n * Fit the layout to the total size required by the widgets.\n */\n private _fit(): void {\n // Update the handles and track the visible widget count.\n let nVisible = 0;\n let lastHandleIndex = -1;\n for (let i = 0, n = this._items.length; i < n; ++i) {\n if (this._items[i].isHidden) {\n this._handles[i].classList.add('lm-mod-hidden');\n /* */\n this._handles[i].classList.add('p-mod-hidden');\n /* */\n } else {\n this._handles[i].classList.remove('lm-mod-hidden');\n /* */\n this._handles[i].classList.remove('p-mod-hidden');\n /* */\n lastHandleIndex = i;\n nVisible++;\n }\n }\n\n // Hide the handle for the last visible widget.\n if (lastHandleIndex !== -1) {\n this._handles[lastHandleIndex].classList.add('lm-mod-hidden');\n /* */\n this._handles[lastHandleIndex].classList.add('p-mod-hidden');\n /* */\n }\n\n // Update the fixed space for the visible items.\n this._fixed =\n this._spacing * Math.max(0, nVisible - 1) +\n this.widgetOffset * this._items.length;\n\n // Setup the computed minimum size.\n let horz = this._orientation === 'horizontal';\n let minW = horz ? this._fixed : 0;\n let minH = horz ? 0 : this._fixed;\n\n // Update the sizers and computed size limits.\n for (let i = 0, n = this._items.length; i < n; ++i) {\n // Fetch the item and corresponding box sizer.\n let item = this._items[i];\n let sizer = this._sizers[i];\n\n // Prevent resizing unless necessary.\n if (sizer.size > 0) {\n sizer.sizeHint = sizer.size;\n }\n\n // If the item is hidden, it should consume zero size.\n if (item.isHidden) {\n sizer.minSize = 0;\n sizer.maxSize = 0;\n continue;\n }\n\n // Update the size limits for the item.\n item.fit();\n\n // Update the stretch factor.\n sizer.stretch = SplitLayout.getStretch(item.widget);\n\n // Update the sizer limits and computed min size.\n if (horz) {\n sizer.minSize = item.minWidth;\n sizer.maxSize = item.maxWidth;\n minW += item.minWidth;\n minH = Math.max(minH, item.minHeight);\n } else {\n sizer.minSize = item.minHeight;\n sizer.maxSize = item.maxHeight;\n minH += item.minHeight;\n minW = Math.max(minW, item.minWidth);\n }\n }\n\n // Update the box sizing and add it to the computed min size.\n let box = (this._box = ElementExt.boxSizing(this.parent!.node));\n minW += box.horizontalSum;\n minH += box.verticalSum;\n\n // Update the parent's min size constraints.\n let style = this.parent!.node.style;\n style.minWidth = `${minW}px`;\n style.minHeight = `${minH}px`;\n\n // Set the dirty flag to ensure only a single update occurs.\n this._dirty = true;\n\n // Notify the ancestor that it should fit immediately. This may\n // cause a resize of the parent, fulfilling the required update.\n if (this.parent!.parent) {\n MessageLoop.sendMessage(this.parent!.parent!, Widget.Msg.FitRequest);\n }\n\n // If the dirty flag is still set, the parent was not resized.\n // Trigger the required update on the parent widget immediately.\n if (this._dirty) {\n MessageLoop.sendMessage(this.parent!, Widget.Msg.UpdateRequest);\n }\n }\n\n /**\n * Update the layout position and size of the widgets.\n *\n * The parent offset dimensions should be `-1` if unknown.\n */\n private _update(offsetWidth: number, offsetHeight: number): void {\n // Clear the dirty flag to indicate the update occurred.\n this._dirty = false;\n\n // Compute the visible item count.\n let nVisible = 0;\n for (let i = 0, n = this._items.length; i < n; ++i) {\n nVisible += +!this._items[i].isHidden;\n }\n\n // Bail early if there are no visible items to layout.\n if (nVisible === 0 && this.widgetOffset === 0) {\n return;\n }\n\n // Measure the parent if the offset dimensions are unknown.\n if (offsetWidth < 0) {\n offsetWidth = this.parent!.node.offsetWidth;\n }\n if (offsetHeight < 0) {\n offsetHeight = this.parent!.node.offsetHeight;\n }\n\n // Ensure the parent box sizing data is computed.\n if (!this._box) {\n this._box = ElementExt.boxSizing(this.parent!.node);\n }\n\n // Compute the actual layout bounds adjusted for border and padding.\n let top = this._box.paddingTop;\n let left = this._box.paddingLeft;\n let width = offsetWidth - this._box.horizontalSum;\n let height = offsetHeight - this._box.verticalSum;\n\n // Set up the variables for justification and alignment offset.\n let extra = 0;\n let offset = 0;\n let horz = this._orientation === 'horizontal';\n\n if (nVisible > 0) {\n // Compute the adjusted layout space.\n let space: number;\n if (horz) {\n // left += this.widgetOffset;\n space = Math.max(0, width - this._fixed);\n } else {\n // top += this.widgetOffset;\n space = Math.max(0, height - this._fixed);\n }\n\n // Scale the size hints if they are normalized.\n if (this._hasNormedSizes) {\n for (let sizer of this._sizers) {\n sizer.sizeHint *= space;\n }\n this._hasNormedSizes = false;\n }\n\n // Distribute the layout space to the box sizers.\n let delta = BoxEngine.calc(this._sizers, space);\n\n // Account for alignment if there is extra layout space.\n if (delta > 0) {\n switch (this._alignment) {\n case 'start':\n break;\n case 'center':\n extra = 0;\n offset = delta / 2;\n break;\n case 'end':\n extra = 0;\n offset = delta;\n break;\n case 'justify':\n extra = delta / nVisible;\n offset = 0;\n break;\n default:\n throw 'unreachable';\n }\n }\n }\n\n // Layout the items using the computed box sizes.\n for (let i = 0, n = this._items.length; i < n; ++i) {\n // Fetch the item.\n const item = this._items[i];\n\n // Fetch the computed size for the widget.\n const size = item.isHidden ? 0 : this._sizers[i].size + extra;\n\n this.updateItemPosition(\n i,\n horz,\n horz ? left + offset : left,\n horz ? top : top + offset,\n height,\n width,\n size\n );\n\n const fullOffset =\n this.widgetOffset +\n (this._handles[i].classList.contains('lm-mod-hidden')\n ? 0\n : this._spacing);\n\n if (horz) {\n left += size + fullOffset;\n } else {\n top += size + fullOffset;\n }\n }\n }\n\n protected widgetOffset = 0;\n private _fixed = 0;\n private _spacing = 4;\n private _dirty = false;\n private _hasNormedSizes = false;\n private _sizers: BoxSizer[] = [];\n private _items: LayoutItem[] = [];\n private _handles: HTMLDivElement[] = [];\n private _box: ElementExt.IBoxSizing | null = null;\n private _alignment: SplitLayout.Alignment = 'start';\n private _orientation: SplitLayout.Orientation = 'horizontal';\n}\n\n/**\n * The namespace for the `SplitLayout` class statics.\n */\nexport namespace SplitLayout {\n /**\n * A type alias for a split layout orientation.\n */\n export type Orientation = 'horizontal' | 'vertical';\n\n /**\n * A type alias for a split layout alignment.\n */\n export type Alignment = 'start' | 'center' | 'end' | 'justify';\n\n /**\n * An options object for initializing a split layout.\n */\n export interface IOptions {\n /**\n * The renderer to use for the split layout.\n */\n renderer: IRenderer;\n\n /**\n * The orientation of the layout.\n *\n * The default is `'horizontal'`.\n */\n orientation?: Orientation;\n\n /**\n * The content alignment of the layout.\n *\n * The default is `'start'`.\n */\n alignment?: Alignment;\n\n /**\n * The spacing between items in the layout.\n *\n * The default is `4`.\n */\n spacing?: number;\n }\n\n /**\n * A renderer for use with a split layout.\n */\n export interface IRenderer {\n /**\n * Create a new handle for use with a split layout.\n *\n * @returns A new handle element.\n */\n createHandle(): HTMLDivElement;\n }\n\n /**\n * Get the split layout stretch factor for the given widget.\n *\n * @param widget - The widget of interest.\n *\n * @returns The split layout stretch factor for the widget.\n */\n export function getStretch(widget: Widget): number {\n return Private.stretchProperty.get(widget);\n }\n\n /**\n * Set the split layout stretch factor for the given widget.\n *\n * @param widget - The widget of interest.\n *\n * @param value - The value for the stretch factor.\n */\n export function setStretch(widget: Widget, value: number): void {\n Private.stretchProperty.set(widget, value);\n }\n}\n\n/**\n * The namespace for the module implementation details.\n */\nnamespace Private {\n /**\n * The property descriptor for a widget stretch factor.\n */\n export const stretchProperty = new AttachedProperty({\n name: 'stretch',\n create: () => 0,\n coerce: (owner, value) => Math.max(0, Math.floor(value)),\n changed: onChildSizingChanged\n });\n\n /**\n * Create a new box sizer with the given size hint.\n */\n export function createSizer(size: number): BoxSizer {\n let sizer = new BoxSizer();\n sizer.sizeHint = Math.floor(size);\n return sizer;\n }\n\n /**\n * Create a new split handle node using the given renderer.\n */\n export function createHandle(\n renderer: SplitLayout.IRenderer\n ): HTMLDivElement {\n let handle = renderer.createHandle();\n handle.style.position = 'absolute';\n return handle;\n }\n\n /**\n * Compute the average size of an array of box sizers.\n */\n export function averageSize(sizers: BoxSizer[]): number {\n return sizers.reduce((v, s) => v + s.size, 0) / sizers.length || 0;\n }\n\n /**\n * Normalize an array of values.\n */\n export function normalize(values: number[]): number[] {\n let n = values.length;\n if (n === 0) {\n return [];\n }\n let sum = values.reduce((a, b) => a + Math.abs(b), 0);\n return sum === 0 ? values.map(v => 1 / n) : values.map(v => v / sum);\n }\n\n /**\n * The change handler for the attached sizing properties.\n */\n function onChildSizingChanged(child: Widget): void {\n if (child.parent && child.parent.layout instanceof SplitLayout) {\n child.parent.fit();\n }\n }\n}\n","import { ArrayExt } from '@lumino/algorithm';\nimport { SplitLayout } from './splitlayout';\nimport { Title } from './title';\nimport Utils from './utils';\nimport { Widget } from './widget';\n\n/**\n * A layout which arranges its widgets into collapsible resizable sections.\n */\nexport class AccordionLayout extends SplitLayout {\n /**\n * Construct a new accordion layout.\n *\n * @param options - The options for initializing the layout.\n *\n * #### Notes\n * The default orientation will be vertical.\n *\n * Titles must be rotated for horizontal accordion panel using CSS: see accordionpanel.css\n */\n constructor(options: AccordionLayout.IOptions) {\n super({ ...options, orientation: options.orientation || 'vertical' });\n this.titleSpace = options.titleSpace || 22;\n }\n\n /**\n * The section title height or width depending on the orientation.\n */\n get titleSpace(): number {\n return this.widgetOffset;\n }\n set titleSpace(value: number) {\n value = Utils.clampDimension(value);\n if (this.widgetOffset === value) {\n return;\n }\n this.widgetOffset = value;\n if (!this.parent) {\n return;\n }\n this.parent.fit();\n }\n\n /**\n * A read-only array of the section titles in the panel.\n */\n get titles(): ReadonlyArray {\n return this._titles;\n }\n\n /**\n * Dispose of the resources held by the layout.\n */\n dispose(): void {\n if (this.isDisposed) {\n return;\n }\n\n // Clear the layout state.\n this._titles.length = 0;\n\n // Dispose of the rest of the layout.\n super.dispose();\n }\n\n /**\n * The renderer used by the accordion layout.\n */\n readonly renderer: AccordionLayout.IRenderer;\n\n public updateTitle(index: number, widget: Widget): void {\n const oldTitle = this._titles[index];\n const expanded = oldTitle.classList.contains('lm-mod-expanded');\n const newTitle = Private.createTitle(this.renderer, widget.title, expanded);\n this._titles[index] = newTitle;\n\n // Add the title node to the parent before the widget.\n this.parent!.node.replaceChild(newTitle, oldTitle);\n }\n\n /**\n * Attach a widget to the parent's DOM node.\n *\n * @param index - The current index of the widget in the layout.\n *\n * @param widget - The widget to attach to the parent.\n */\n protected attachWidget(index: number, widget: Widget): void {\n const title = Private.createTitle(this.renderer, widget.title);\n\n ArrayExt.insert(this._titles, index, title);\n\n // Add the title node to the parent before the widget.\n this.parent!.node.appendChild(title);\n\n widget.node.setAttribute('role', 'region');\n widget.node.setAttribute('aria-labelledby', title.id);\n\n super.attachWidget(index, widget);\n }\n\n /**\n * Move a widget in the parent's DOM node.\n *\n * @param fromIndex - The previous index of the widget in the layout.\n *\n * @param toIndex - The current index of the widget in the layout.\n *\n * @param widget - The widget to move in the parent.\n */\n protected moveWidget(\n fromIndex: number,\n toIndex: number,\n widget: Widget\n ): void {\n ArrayExt.move(this._titles, fromIndex, toIndex);\n super.moveWidget(fromIndex, toIndex, widget);\n }\n\n /**\n * Detach a widget from the parent's DOM node.\n *\n * @param index - The previous index of the widget in the layout.\n *\n * @param widget - The widget to detach from the parent.\n *\n * #### Notes\n * This is a reimplementation of the superclass method.\n */\n protected detachWidget(index: number, widget: Widget): void {\n const title = ArrayExt.removeAt(this._titles, index);\n\n this.parent!.node.removeChild(title!);\n\n super.detachWidget(index, widget);\n }\n\n /**\n * Update the item position.\n *\n * @param i Item index\n * @param isHorizontal Whether the layout is horizontal or not\n * @param left Left position in pixels\n * @param top Top position in pixels\n * @param height Item height\n * @param width Item width\n * @param size Item size\n */\n protected updateItemPosition(\n i: number,\n isHorizontal: boolean,\n left: number,\n top: number,\n height: number,\n width: number,\n size: number\n ): void {\n const titleStyle = this._titles[i].style;\n\n // Titles must be rotated for horizontal accordion panel using CSS: see accordionpanel.css\n titleStyle.top = `${top}px`;\n titleStyle.left = `${left}px`;\n titleStyle.height = `${this.widgetOffset}px`;\n if (isHorizontal) {\n titleStyle.width = `${height}px`;\n } else {\n titleStyle.width = `${width}px`;\n }\n\n super.updateItemPosition(i, isHorizontal, left, top, height, width, size);\n }\n\n private _titles: HTMLElement[] = [];\n}\n\nexport namespace AccordionLayout {\n /**\n * A type alias for a accordion layout orientation.\n */\n export type Orientation = SplitLayout.Orientation;\n\n /**\n * A type alias for a accordion layout alignment.\n */\n export type Alignment = SplitLayout.Alignment;\n\n /**\n * An options object for initializing a accordion layout.\n */\n export interface IOptions extends SplitLayout.IOptions {\n /**\n * The renderer to use for the accordion layout.\n */\n renderer: IRenderer;\n\n /**\n * The section title height or width depending on the orientation.\n *\n * The default is `22`.\n */\n titleSpace?: number;\n }\n\n /**\n * A renderer for use with an accordion layout.\n */\n export interface IRenderer extends SplitLayout.IRenderer {\n /**\n * Common class name for all accordion titles.\n */\n readonly titleClassName: string;\n\n /**\n * Render the element for a section title.\n *\n * @param data - The data to use for rendering the section title.\n *\n * @returns A element representing the section title.\n */\n createSectionTitle(title: Title): HTMLElement;\n }\n}\n\nnamespace Private {\n /**\n * Create the title HTML element.\n *\n * @param renderer Accordion renderer\n * @param data Widget title\n * @returns Title HTML element\n */\n export function createTitle(\n renderer: AccordionLayout.IRenderer,\n data: Title,\n expanded: boolean = true\n ): HTMLElement {\n const title = renderer.createSectionTitle(data);\n title.style.position = 'absolute';\n title.setAttribute('aria-label', `${data.label} Section`);\n title.setAttribute('aria-expanded', expanded ? 'true' : 'false');\n title.setAttribute('aria-controls', data.owner.id);\n if (expanded) {\n title.classList.add('lm-mod-expanded');\n }\n return title;\n }\n}\n","// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n/*-----------------------------------------------------------------------------\n| Copyright (c) 2014-2017, PhosphorJS Contributors\n|\n| Distributed under the terms of the BSD 3-Clause License.\n|\n| The full license is in the file LICENSE, distributed with this software.\n|----------------------------------------------------------------------------*/\nimport { PanelLayout } from './panellayout';\n\nimport { Widget } from './widget';\n\n/**\n * A simple and convenient panel widget class.\n *\n * #### Notes\n * This class is suitable as a base class for implementing a variety of\n * convenience panel widgets, but can also be used directly with CSS to\n * arrange a collection of widgets.\n *\n * This class provides a convenience wrapper around a [[PanelLayout]].\n */\nexport class Panel extends Widget {\n /**\n * Construct a new panel.\n *\n * @param options - The options for initializing the panel.\n */\n constructor(options: Panel.IOptions = {}) {\n super();\n this.addClass('lm-Panel');\n /* */\n this.addClass('p-Panel');\n /* */\n this.layout = Private.createLayout(options);\n }\n\n /**\n * A read-only array of the widgets in the panel.\n */\n get widgets(): ReadonlyArray {\n return (this.layout as PanelLayout).widgets;\n }\n\n /**\n * Add a widget to the end of the panel.\n *\n * @param widget - The widget to add to the panel.\n *\n * #### Notes\n * If the widget is already contained in the panel, it will be moved.\n */\n addWidget(widget: Widget): void {\n (this.layout as PanelLayout).addWidget(widget);\n }\n\n /**\n * Insert a widget at the specified index.\n *\n * @param index - The index at which to insert the widget.\n *\n * @param widget - The widget to insert into to the panel.\n *\n * #### Notes\n * If the widget is already contained in the panel, it will be moved.\n */\n insertWidget(index: number, widget: Widget): void {\n (this.layout as PanelLayout).insertWidget(index, widget);\n }\n}\n\n/**\n * The namespace for the `Panel` class statics.\n */\nexport namespace Panel {\n /**\n * An options object for creating a panel.\n */\n export interface IOptions {\n /**\n * The panel layout to use for the panel.\n *\n * The default is a new `PanelLayout`.\n */\n layout?: PanelLayout;\n }\n}\n\n/**\n * The namespace for the module implementation details.\n */\nnamespace Private {\n /**\n * Create a panel layout for the given panel options.\n */\n export function createLayout(options: Panel.IOptions): PanelLayout {\n return options.layout || new PanelLayout();\n }\n}\n","// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n/*-----------------------------------------------------------------------------\n| Copyright (c) 2014-2017, PhosphorJS Contributors\n|\n| Distributed under the terms of the BSD 3-Clause License.\n|\n| The full license is in the file LICENSE, distributed with this software.\n|----------------------------------------------------------------------------*/\nimport { ArrayExt } from '@lumino/algorithm';\n\nimport { IDisposable } from '@lumino/disposable';\n\nimport { Drag } from '@lumino/dragdrop';\n\nimport { Message } from '@lumino/messaging';\n\nimport { ISignal, Signal } from '@lumino/signaling';\n\nimport { Panel } from './panel';\n\nimport { SplitLayout } from './splitlayout';\n\nimport { Widget } from './widget';\n\n/**\n * A panel which arranges its widgets into resizable sections.\n *\n * #### Notes\n * This class provides a convenience wrapper around a [[SplitLayout]].\n */\nexport class SplitPanel extends Panel {\n /**\n * Construct a new split panel.\n *\n * @param options - The options for initializing the split panel.\n */\n constructor(options: SplitPanel.IOptions = {}) {\n super({ layout: Private.createLayout(options) });\n this.addClass('lm-SplitPanel');\n /* */\n this.addClass('p-SplitPanel');\n /* */\n }\n\n /**\n * Dispose of the resources held by the panel.\n */\n dispose(): void {\n this._releaseMouse();\n super.dispose();\n }\n\n /**\n * Get the layout orientation for the split panel.\n */\n get orientation(): SplitPanel.Orientation {\n return (this.layout as SplitLayout).orientation;\n }\n\n /**\n * Set the layout orientation for the split panel.\n */\n set orientation(value: SplitPanel.Orientation) {\n (this.layout as SplitLayout).orientation = value;\n }\n\n /**\n * Get the content alignment for the split panel.\n *\n * #### Notes\n * This is the alignment of the widgets in the layout direction.\n *\n * The alignment has no effect if the widgets can expand to fill the\n * entire split panel.\n */\n get alignment(): SplitPanel.Alignment {\n return (this.layout as SplitLayout).alignment;\n }\n\n /**\n * Set the content alignment for the split panel.\n *\n * #### Notes\n * This is the alignment of the widgets in the layout direction.\n *\n * The alignment has no effect if the widgets can expand to fill the\n * entire split panel.\n */\n set alignment(value: SplitPanel.Alignment) {\n (this.layout as SplitLayout).alignment = value;\n }\n\n /**\n * Get the inter-element spacing for the split panel.\n */\n get spacing(): number {\n return (this.layout as SplitLayout).spacing;\n }\n\n /**\n * Set the inter-element spacing for the split panel.\n */\n set spacing(value: number) {\n (this.layout as SplitLayout).spacing = value;\n }\n\n /**\n * The renderer used by the split panel.\n */\n get renderer(): SplitPanel.IRenderer {\n return (this.layout as SplitLayout).renderer;\n }\n\n /**\n * A signal emitted when a split handle has moved.\n */\n get handleMoved(): ISignal {\n return this._handleMoved;\n }\n\n /**\n * A read-only array of the split handles in the panel.\n */\n get handles(): ReadonlyArray {\n return (this.layout as SplitLayout).handles;\n }\n\n /**\n * Get the relative sizes of the widgets in the panel.\n *\n * @returns A new array of the relative sizes of the widgets.\n *\n * #### Notes\n * The returned sizes reflect the sizes of the widgets normalized\n * relative to their siblings.\n *\n * This method **does not** measure the DOM nodes.\n */\n relativeSizes(): number[] {\n return (this.layout as SplitLayout).relativeSizes();\n }\n\n /**\n * Set the relative sizes for the widgets in the panel.\n *\n * @param sizes - The relative sizes for the widgets in the panel.\n * @param update - Update the layout after setting relative sizes.\n * Default is True.\n *\n * #### Notes\n * Extra values are ignored, too few will yield an undefined layout.\n *\n * The actual geometry of the DOM nodes is updated asynchronously.\n */\n setRelativeSizes(sizes: number[], update = true): void {\n (this.layout as SplitLayout).setRelativeSizes(sizes, update);\n }\n\n /**\n * Handle the DOM events for the split panel.\n *\n * @param event - The DOM event sent to the panel.\n *\n * #### Notes\n * This method implements the DOM `EventListener` interface and is\n * called in response to events on the panel's DOM node. It should\n * not be called directly by user code.\n */\n handleEvent(event: Event): void {\n switch (event.type) {\n case 'mousedown':\n this._evtMouseDown(event as MouseEvent);\n break;\n case 'mousemove':\n this._evtMouseMove(event as MouseEvent);\n break;\n case 'mouseup':\n this._evtMouseUp(event as MouseEvent);\n break;\n case 'pointerdown':\n this._evtMouseDown(event as MouseEvent);\n break;\n case 'pointermove':\n this._evtMouseMove(event as MouseEvent);\n break;\n case 'pointerup':\n this._evtMouseUp(event as MouseEvent);\n break;\n case 'keydown':\n this._evtKeyDown(event as KeyboardEvent);\n break;\n case 'contextmenu':\n event.preventDefault();\n event.stopPropagation();\n break;\n }\n }\n\n /**\n * A message handler invoked on a `'before-attach'` message.\n */\n protected onBeforeAttach(msg: Message): void {\n this.node.addEventListener('mousedown', this);\n this.node.addEventListener('pointerdown', this);\n }\n\n /**\n * A message handler invoked on an `'after-detach'` message.\n */\n protected onAfterDetach(msg: Message): void {\n this.node.removeEventListener('mousedown', this);\n this.node.removeEventListener('pointerdown', this);\n this._releaseMouse();\n }\n\n /**\n * A message handler invoked on a `'child-added'` message.\n */\n protected onChildAdded(msg: Widget.ChildMessage): void {\n msg.child.addClass('lm-SplitPanel-child');\n /* */\n msg.child.addClass('p-SplitPanel-child');\n /* */\n this._releaseMouse();\n }\n\n /**\n * A message handler invoked on a `'child-removed'` message.\n */\n protected onChildRemoved(msg: Widget.ChildMessage): void {\n msg.child.removeClass('lm-SplitPanel-child');\n /* */\n msg.child.removeClass('p-SplitPanel-child');\n /* */\n this._releaseMouse();\n }\n\n /**\n * Handle the `'keydown'` event for the split panel.\n */\n private _evtKeyDown(event: KeyboardEvent): void {\n // Stop input events during drag.\n if (this._pressData) {\n event.preventDefault();\n event.stopPropagation();\n }\n\n // Release the mouse if `Escape` is pressed.\n if (event.keyCode === 27) {\n this._releaseMouse();\n }\n }\n\n /**\n * Handle the `'mousedown'` event for the split panel.\n */\n private _evtMouseDown(event: MouseEvent): void {\n // Do nothing if the left mouse button is not pressed.\n if (event.button !== 0) {\n return;\n }\n\n // Find the handle which contains the mouse target, if any.\n let layout = this.layout as SplitLayout;\n let index = ArrayExt.findFirstIndex(layout.handles, handle => {\n return handle.contains(event.target as HTMLElement);\n });\n\n // Bail early if the mouse press was not on a handle.\n if (index === -1) {\n return;\n }\n\n // Stop the event when a split handle is pressed.\n event.preventDefault();\n event.stopPropagation();\n\n // Add the extra document listeners.\n document.addEventListener('mouseup', this, true);\n document.addEventListener('mousemove', this, true);\n document.addEventListener('pointerup', this, true);\n document.addEventListener('pointermove', this, true);\n document.addEventListener('keydown', this, true);\n document.addEventListener('contextmenu', this, true);\n\n // Compute the offset delta for the handle press.\n let delta: number;\n let handle = layout.handles[index];\n let rect = handle.getBoundingClientRect();\n if (layout.orientation === 'horizontal') {\n delta = event.clientX - rect.left;\n } else {\n delta = event.clientY - rect.top;\n }\n\n // Override the cursor and store the press data.\n let style = window.getComputedStyle(handle);\n let override = Drag.overrideCursor(style.cursor!);\n this._pressData = { index, delta, override };\n }\n\n /**\n * Handle the `'mousemove'` event for the split panel.\n */\n private _evtMouseMove(event: MouseEvent): void {\n // Stop the event when dragging a split handle.\n event.preventDefault();\n event.stopPropagation();\n\n // Compute the desired offset position for the handle.\n let pos: number;\n let layout = this.layout as SplitLayout;\n let rect = this.node.getBoundingClientRect();\n if (layout.orientation === 'horizontal') {\n pos = event.clientX - rect.left - this._pressData!.delta;\n } else {\n pos = event.clientY - rect.top - this._pressData!.delta;\n }\n\n // Move the handle as close to the desired position as possible.\n layout.moveHandle(this._pressData!.index, pos);\n }\n\n /**\n * Handle the `'mouseup'` event for the split panel.\n */\n private _evtMouseUp(event: MouseEvent): void {\n // Do nothing if the left mouse button is not released.\n if (event.button !== 0) {\n return;\n }\n\n // Stop the event when releasing a handle.\n event.preventDefault();\n event.stopPropagation();\n\n // Finalize the mouse release.\n this._releaseMouse();\n }\n\n /**\n * Release the mouse grab for the split panel.\n */\n private _releaseMouse(): void {\n // Bail early if no drag is in progress.\n if (!this._pressData) {\n return;\n }\n\n // Clear the override cursor.\n this._pressData.override.dispose();\n this._pressData = null;\n\n // Emit the handle moved signal.\n this._handleMoved.emit();\n\n // Remove the extra document listeners.\n document.removeEventListener('mouseup', this, true);\n document.removeEventListener('mousemove', this, true);\n document.removeEventListener('keydown', this, true);\n document.removeEventListener('pointerup', this, true);\n document.removeEventListener('pointermove', this, true);\n document.removeEventListener('contextmenu', this, true);\n }\n\n private _handleMoved = new Signal(this);\n private _pressData: Private.IPressData | null = null;\n}\n\n/**\n * The namespace for the `SplitPanel` class statics.\n */\nexport namespace SplitPanel {\n /**\n * A type alias for a split panel orientation.\n */\n export type Orientation = SplitLayout.Orientation;\n\n /**\n * A type alias for a split panel alignment.\n */\n export type Alignment = SplitLayout.Alignment;\n\n /**\n * A type alias for a split panel renderer.\n */\n export type IRenderer = SplitLayout.IRenderer;\n\n /**\n * An options object for initializing a split panel.\n */\n export interface IOptions {\n /**\n * The renderer to use for the split panel.\n *\n * The default is a shared renderer instance.\n */\n renderer?: IRenderer;\n\n /**\n * The layout orientation of the panel.\n *\n * The default is `'horizontal'`.\n */\n orientation?: Orientation;\n\n /**\n * The content alignment of the panel.\n *\n * The default is `'start'`.\n */\n alignment?: Alignment;\n\n /**\n * The spacing between items in the panel.\n *\n * The default is `4`.\n */\n spacing?: number;\n\n /**\n * The split layout to use for the split panel.\n *\n * If this is provided, the other options are ignored.\n *\n * The default is a new `SplitLayout`.\n */\n layout?: SplitLayout;\n }\n\n /**\n * The default implementation of `IRenderer`.\n */\n export class Renderer implements IRenderer {\n /**\n * Create a new handle for use with a split panel.\n *\n * @returns A new handle element for a split panel.\n */\n createHandle(): HTMLDivElement {\n let handle = document.createElement('div');\n handle.className = 'lm-SplitPanel-handle';\n /* */\n handle.classList.add('p-SplitPanel-handle');\n /* */\n return handle;\n }\n }\n\n /**\n * The default `Renderer` instance.\n */\n export const defaultRenderer = new Renderer();\n\n /**\n * Get the split panel stretch factor for the given widget.\n *\n * @param widget - The widget of interest.\n *\n * @returns The split panel stretch factor for the widget.\n */\n export function getStretch(widget: Widget): number {\n return SplitLayout.getStretch(widget);\n }\n\n /**\n * Set the split panel stretch factor for the given widget.\n *\n * @param widget - The widget of interest.\n *\n * @param value - The value for the stretch factor.\n */\n export function setStretch(widget: Widget, value: number): void {\n SplitLayout.setStretch(widget, value);\n }\n}\n\n/**\n * The namespace for the module implementation details.\n */\nnamespace Private {\n /**\n * An object which holds mouse press data.\n */\n export interface IPressData {\n /**\n * The index of the pressed handle.\n */\n index: number;\n\n /**\n * The offset of the press in handle coordinates.\n */\n delta: number;\n\n /**\n * The disposable which will clear the override cursor.\n */\n override: IDisposable;\n }\n\n /**\n * Create a split layout for the given panel options.\n */\n export function createLayout(options: SplitPanel.IOptions): SplitLayout {\n return (\n options.layout ||\n new SplitLayout({\n renderer: options.renderer || SplitPanel.defaultRenderer,\n orientation: options.orientation,\n alignment: options.alignment,\n spacing: options.spacing\n })\n );\n }\n}\n","// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n\nimport { ArrayExt } from '@lumino/algorithm';\nimport { Message } from '@lumino/messaging';\nimport { AccordionLayout } from './accordionlayout';\nimport { SplitLayout } from './splitlayout';\nimport { SplitPanel } from './splitpanel';\nimport { Title } from './title';\nimport { Widget } from './widget';\n\n/**\n * A panel which arranges its widgets into resizable sections separated by a title widget.\n *\n * #### Notes\n * This class provides a convenience wrapper around [[AccordionLayout]].\n */\nexport class AccordionPanel extends SplitPanel {\n /**\n * Construct a new accordion panel.\n *\n * @param options - The options for initializing the accordion panel.\n */\n constructor(options: AccordionPanel.IOptions = {}) {\n super({ ...options, layout: Private.createLayout(options) });\n this.addClass('lm-AccordionPanel');\n }\n\n /**\n * The renderer used by the accordion panel.\n */\n get renderer(): AccordionPanel.IRenderer {\n return (this.layout as AccordionLayout).renderer;\n }\n\n /**\n * The section title space.\n *\n * This is the height if the panel is vertical and the width if it is\n * horizontal.\n */\n get titleSpace(): number {\n return (this.layout as AccordionLayout).titleSpace;\n }\n set titleSpace(value: number) {\n (this.layout as AccordionLayout).titleSpace = value;\n }\n\n /**\n * A read-only array of the section titles in the panel.\n */\n get titles(): ReadonlyArray {\n return (this.layout as AccordionLayout).titles;\n }\n\n /**\n * Add a widget to the end of the panel.\n *\n * @param widget - The widget to add to the panel.\n *\n * #### Notes\n * If the widget is already contained in the panel, it will be moved.\n */\n addWidget(widget: Widget): void {\n super.addWidget(widget);\n widget.title.changed.connect(this._onTitleChanged, this);\n }\n\n /**\n * Collapse the widget at position `index`.\n *\n * #### Notes\n * If no widget is found for `index`, this will bail.\n *\n * @param index Widget index\n */\n collapse(index: number): void {\n const widget = (this.layout as AccordionLayout).widgets[index];\n\n if (widget && !widget.isHidden) {\n this._toggleExpansion(index);\n }\n }\n\n /**\n * Expand the widget at position `index`.\n *\n * #### Notes\n * If no widget is found for `index`, this will bail.\n *\n * @param index Widget index\n */\n expand(index: number): void {\n const widget = (this.layout as AccordionLayout).widgets[index];\n\n if (widget && widget.isHidden) {\n this._toggleExpansion(index);\n }\n }\n\n /**\n * Insert a widget at the specified index.\n *\n * @param index - The index at which to insert the widget.\n *\n * @param widget - The widget to insert into to the panel.\n *\n * #### Notes\n * If the widget is already contained in the panel, it will be moved.\n */\n insertWidget(index: number, widget: Widget): void {\n super.insertWidget(index, widget);\n widget.title.changed.connect(this._onTitleChanged, this);\n }\n\n /**\n * Handle the DOM events for the accordion panel.\n *\n * @param event - The DOM event sent to the panel.\n *\n * #### Notes\n * This method implements the DOM `EventListener` interface and is\n * called in response to events on the panel's DOM node. It should\n * not be called directly by user code.\n */\n handleEvent(event: Event): void {\n super.handleEvent(event);\n switch (event.type) {\n case 'click':\n this._evtClick(event as MouseEvent);\n break;\n case 'keydown':\n this._eventKeyDown(event as KeyboardEvent);\n break;\n }\n }\n\n /**\n * A message handler invoked on a `'before-attach'` message.\n */\n protected onBeforeAttach(msg: Message): void {\n this.node.addEventListener('click', this);\n this.node.addEventListener('keydown', this);\n super.onBeforeAttach(msg);\n }\n\n /**\n * A message handler invoked on an `'after-detach'` message.\n */\n protected onAfterDetach(msg: Message): void {\n super.onAfterDetach(msg);\n this.node.removeEventListener('click', this);\n this.node.removeEventListener('keydown', this);\n }\n\n /**\n * Handle the `changed` signal of a title object.\n */\n private _onTitleChanged(sender: Title): void {\n const index = ArrayExt.findFirstIndex(this.widgets, widget => {\n return widget.contains(sender.owner);\n });\n\n if (index >= 0) {\n (this.layout as AccordionLayout).updateTitle(index, sender.owner);\n this.update();\n }\n }\n\n /**\n * Compute the size of widgets in this panel on the title click event.\n * On closing, the size of the widget is cached and we will try to expand\n * the last opened widget.\n * On opening, we will use the cached size if it is available to restore the\n * widget.\n * In both cases, if we can not compute the size of widgets, we will let\n * `SplitLayout` decide.\n *\n * @param index - The index of widget to be opened of closed\n *\n * @returns Relative size of widgets in this panel, if this size can\n * not be computed, return `undefined`\n */\n private _computeWidgetSize(index: number): number[] | undefined {\n const layout = this.layout as AccordionLayout;\n\n const widget = layout.widgets[index];\n if (!widget) {\n return undefined;\n }\n const isHidden = widget.isHidden;\n const widgetSizes = layout.absoluteSizes();\n const delta = (isHidden ? -1 : 1) * this.spacing;\n const totalSize = widgetSizes.reduce(\n (prev: number, curr: number) => prev + curr\n );\n\n let newSize = [...widgetSizes];\n\n if (!isHidden) {\n // Hide the widget\n const currentSize = widgetSizes[index];\n\n this._widgetSizesCache.set(widget, currentSize);\n newSize[index] = 0;\n\n const widgetToCollapse = newSize.map(sz => sz > 0).lastIndexOf(true);\n if (widgetToCollapse === -1) {\n // All widget are closed, let the `SplitLayout` compute widget sizes.\n return undefined;\n }\n\n newSize[widgetToCollapse] =\n widgetSizes[widgetToCollapse] + currentSize + delta;\n } else {\n // Show the widget\n const previousSize = this._widgetSizesCache.get(widget);\n if (!previousSize) {\n // Previous size is unavailable, let the `SplitLayout` compute widget sizes.\n return undefined;\n }\n newSize[index] += previousSize;\n\n const widgetToCollapse = newSize\n .map(sz => sz - previousSize > 0)\n .lastIndexOf(true);\n if (widgetToCollapse === -1) {\n // Can not reduce the size of one widget, reduce all opened widgets\n // proportionally with its size.\n newSize.forEach((_, idx) => {\n if (idx !== index) {\n newSize[idx] -=\n (widgetSizes[idx] / totalSize) * (previousSize - delta);\n }\n });\n } else {\n newSize[widgetToCollapse] -= previousSize - delta;\n }\n }\n return newSize.map(sz => sz / (totalSize + delta));\n }\n /**\n * Handle the `'click'` event for the accordion panel\n */\n private _evtClick(event: MouseEvent): void {\n const target = event.target as HTMLElement | null;\n\n if (target) {\n const index = ArrayExt.findFirstIndex(this.titles, title => {\n return title.contains(target);\n });\n\n if (index >= 0) {\n event.preventDefault();\n event.stopPropagation();\n this._toggleExpansion(index);\n }\n }\n }\n\n /**\n * Handle the `'keydown'` event for the accordion panel.\n */\n private _eventKeyDown(event: KeyboardEvent): void {\n if (event.defaultPrevented) {\n return;\n }\n\n const target = event.target as HTMLElement | null;\n let handled = false;\n if (target) {\n const index = ArrayExt.findFirstIndex(this.titles, title => {\n return title.contains(target);\n });\n\n if (index >= 0) {\n const keyCode = event.keyCode.toString();\n\n // If Space or Enter is pressed on title, emulate click event\n if (event.key.match(/Space|Enter/) || keyCode.match(/13|32/)) {\n target.click();\n handled = true;\n } else if (\n this.orientation === 'horizontal'\n ? event.key.match(/ArrowLeft|ArrowRight/) || keyCode.match(/37|39/)\n : event.key.match(/ArrowUp|ArrowDown/) || keyCode.match(/38|40/)\n ) {\n // If Up or Down (for vertical) / Left or Right (for horizontal) is pressed on title, loop on titles\n const direction =\n event.key.match(/ArrowLeft|ArrowUp/) || keyCode.match(/37|38/)\n ? -1\n : 1;\n const length = this.titles.length;\n const newIndex = (index + length + direction) % length;\n\n this.titles[newIndex].focus();\n handled = true;\n } else if (event.key === 'End' || keyCode === '35') {\n // If End is pressed on title, focus on the last title\n this.titles[this.titles.length - 1].focus();\n handled = true;\n } else if (event.key === 'Home' || keyCode === '36') {\n // If Home is pressed on title, focus on the first title\n this.titles[0].focus();\n handled = true;\n }\n }\n\n if (handled) {\n event.preventDefault();\n }\n }\n }\n\n private _toggleExpansion(index: number) {\n const title = this.titles[index];\n const widget = (this.layout as AccordionLayout).widgets[index];\n\n const newSize = this._computeWidgetSize(index);\n if (newSize) {\n this.setRelativeSizes(newSize, false);\n }\n\n if (widget.isHidden) {\n title.classList.add('lm-mod-expanded');\n title.setAttribute('aria-expanded', 'true');\n widget.show();\n } else {\n title.classList.remove('lm-mod-expanded');\n title.setAttribute('aria-expanded', 'false');\n widget.hide();\n }\n }\n\n private _widgetSizesCache: WeakMap = new WeakMap();\n}\n\n/**\n * The namespace for the `AccordionPanel` class statics.\n */\nexport namespace AccordionPanel {\n /**\n * A type alias for a accordion panel orientation.\n */\n export type Orientation = SplitLayout.Orientation;\n\n /**\n * A type alias for a accordion panel alignment.\n */\n export type Alignment = SplitLayout.Alignment;\n\n /**\n * A type alias for a accordion panel renderer.\n */\n export type IRenderer = AccordionLayout.IRenderer;\n\n /**\n * An options object for initializing a accordion panel.\n */\n export interface IOptions extends Partial {\n /**\n * The accordion layout to use for the accordion panel.\n *\n * If this is provided, the other options are ignored.\n *\n * The default is a new `AccordionLayout`.\n */\n layout?: AccordionLayout;\n }\n\n /**\n * The default implementation of `IRenderer`.\n */\n export class Renderer extends SplitPanel.Renderer implements IRenderer {\n constructor() {\n super();\n this._uuid = ++Renderer._nInstance;\n }\n /**\n * A selector which matches any title node in the accordion.\n */\n readonly titleClassName = 'lm-AccordionPanel-title';\n\n /**\n * Render the collapse indicator for a section title.\n *\n * @param data - The data to use for rendering the section title.\n *\n * @returns A element representing the collapse indicator.\n */\n createCollapseIcon(data: Title): HTMLElement {\n return document.createElement('span');\n }\n\n /**\n * Render the element for a section title.\n *\n * @param data - The data to use for rendering the section title.\n *\n * @returns A element representing the section title.\n */\n createSectionTitle(data: Title): HTMLElement {\n const handle = document.createElement('h3');\n handle.setAttribute('role', 'button');\n handle.setAttribute('tabindex', '0');\n handle.id = this.createTitleKey(data);\n handle.className = this.titleClassName;\n for (const aData in data.dataset) {\n handle.dataset[aData] = data.dataset[aData];\n }\n\n const collapser = handle.appendChild(this.createCollapseIcon(data));\n collapser.className = 'lm-AccordionPanel-titleCollapser';\n\n const label = handle.appendChild(document.createElement('span'));\n label.className = 'lm-AccordionPanel-titleLabel';\n label.textContent = data.label;\n label.title = data.caption || data.label;\n\n return handle;\n }\n\n /**\n * Create a unique render key for the title.\n *\n * @param data - The data to use for the title.\n *\n * @returns The unique render key for the title.\n *\n * #### Notes\n * This method caches the key against the section title the first time\n * the key is generated.\n */\n createTitleKey(data: Title): string {\n let key = this._titleKeys.get(data);\n if (key === undefined) {\n key = `title-key-${this._uuid}-${this._titleID++}`;\n this._titleKeys.set(data, key);\n }\n return key;\n }\n\n private static _nInstance = 0;\n private readonly _uuid: number;\n private _titleID = 0;\n private _titleKeys = new WeakMap, string>();\n }\n\n /**\n * The default `Renderer` instance.\n */\n export const defaultRenderer = new Renderer();\n}\n\nnamespace Private {\n /**\n * Create an accordion layout for the given panel options.\n *\n * @param options Panel options\n * @returns Panel layout\n */\n export function createLayout(\n options: AccordionPanel.IOptions\n ): AccordionLayout {\n return (\n options.layout ||\n new AccordionLayout({\n renderer: options.renderer || AccordionPanel.defaultRenderer,\n orientation: options.orientation,\n alignment: options.alignment,\n spacing: options.spacing,\n titleSpace: options.titleSpace\n })\n );\n }\n}\n","// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n/*-----------------------------------------------------------------------------\n| Copyright (c) 2014-2017, PhosphorJS Contributors\n|\n| Distributed under the terms of the BSD 3-Clause License.\n|\n| The full license is in the file LICENSE, distributed with this software.\n|----------------------------------------------------------------------------*/\nimport { ArrayExt, each } from '@lumino/algorithm';\n\nimport { ElementExt } from '@lumino/domutils';\n\nimport { Message, MessageLoop } from '@lumino/messaging';\n\nimport { AttachedProperty } from '@lumino/properties';\n\nimport { BoxEngine, BoxSizer } from './boxengine';\n\nimport { LayoutItem } from './layout';\n\nimport { PanelLayout } from './panellayout';\n\nimport Utils from './utils';\n\nimport { Widget } from './widget';\n\n/**\n * A layout which arranges its widgets in a single row or column.\n */\nexport class BoxLayout extends PanelLayout {\n /**\n * Construct a new box layout.\n *\n * @param options - The options for initializing the layout.\n */\n constructor(options: BoxLayout.IOptions = {}) {\n super();\n if (options.direction !== undefined) {\n this._direction = options.direction;\n }\n if (options.alignment !== undefined) {\n this._alignment = options.alignment;\n }\n if (options.spacing !== undefined) {\n this._spacing = Utils.clampDimension(options.spacing);\n }\n }\n\n /**\n * Dispose of the resources held by the layout.\n */\n dispose(): void {\n // Dispose of the layout items.\n each(this._items, item => {\n item.dispose();\n });\n\n // Clear the layout state.\n this._box = null;\n this._items.length = 0;\n this._sizers.length = 0;\n\n // Dispose of the rest of the layout.\n super.dispose();\n }\n\n /**\n * Get the layout direction for the box layout.\n */\n get direction(): BoxLayout.Direction {\n return this._direction;\n }\n\n /**\n * Set the layout direction for the box layout.\n */\n set direction(value: BoxLayout.Direction) {\n if (this._direction === value) {\n return;\n }\n this._direction = value;\n if (!this.parent) {\n return;\n }\n this.parent.dataset['direction'] = value;\n this.parent.fit();\n }\n\n /**\n * Get the content alignment for the box layout.\n *\n * #### Notes\n * This is the alignment of the widgets in the layout direction.\n *\n * The alignment has no effect if the widgets can expand to fill the\n * entire box layout.\n */\n get alignment(): BoxLayout.Alignment {\n return this._alignment;\n }\n\n /**\n * Set the content alignment for the box layout.\n *\n * #### Notes\n * This is the alignment of the widgets in the layout direction.\n *\n * The alignment has no effect if the widgets can expand to fill the\n * entire box layout.\n */\n set alignment(value: BoxLayout.Alignment) {\n if (this._alignment === value) {\n return;\n }\n this._alignment = value;\n if (!this.parent) {\n return;\n }\n this.parent.dataset['alignment'] = value;\n this.parent.update();\n }\n\n /**\n * Get the inter-element spacing for the box layout.\n */\n get spacing(): number {\n return this._spacing;\n }\n\n /**\n * Set the inter-element spacing for the box layout.\n */\n set spacing(value: number) {\n value = Utils.clampDimension(value);\n if (this._spacing === value) {\n return;\n }\n this._spacing = value;\n if (!this.parent) {\n return;\n }\n this.parent.fit();\n }\n\n /**\n * Perform layout initialization which requires the parent widget.\n */\n protected init(): void {\n this.parent!.dataset['direction'] = this.direction;\n this.parent!.dataset['alignment'] = this.alignment;\n super.init();\n }\n\n /**\n * Attach a widget to the parent's DOM node.\n *\n * @param index - The current index of the widget in the layout.\n *\n * @param widget - The widget to attach to the parent.\n *\n * #### Notes\n * This is a reimplementation of the superclass method.\n */\n protected attachWidget(index: number, widget: Widget): void {\n // Create and add a new layout item for the widget.\n ArrayExt.insert(this._items, index, new LayoutItem(widget));\n\n // Create and add a new sizer for the widget.\n ArrayExt.insert(this._sizers, index, new BoxSizer());\n\n // Send a `'before-attach'` message if the parent is attached.\n if (this.parent!.isAttached) {\n MessageLoop.sendMessage(widget, Widget.Msg.BeforeAttach);\n }\n\n // Add the widget's node to the parent.\n this.parent!.node.appendChild(widget.node);\n\n // Send an `'after-attach'` message if the parent is attached.\n if (this.parent!.isAttached) {\n MessageLoop.sendMessage(widget, Widget.Msg.AfterAttach);\n }\n\n // Post a fit request for the parent widget.\n this.parent!.fit();\n }\n\n /**\n * Move a widget in the parent's DOM node.\n *\n * @param fromIndex - The previous index of the widget in the layout.\n *\n * @param toIndex - The current index of the widget in the layout.\n *\n * @param widget - The widget to move in the parent.\n *\n * #### Notes\n * This is a reimplementation of the superclass method.\n */\n protected moveWidget(\n fromIndex: number,\n toIndex: number,\n widget: Widget\n ): void {\n // Move the layout item for the widget.\n ArrayExt.move(this._items, fromIndex, toIndex);\n\n // Move the sizer for the widget.\n ArrayExt.move(this._sizers, fromIndex, toIndex);\n\n // Post an update request for the parent widget.\n this.parent!.update();\n }\n\n /**\n * Detach a widget from the parent's DOM node.\n *\n * @param index - The previous index of the widget in the layout.\n *\n * @param widget - The widget to detach from the parent.\n *\n * #### Notes\n * This is a reimplementation of the superclass method.\n */\n protected detachWidget(index: number, widget: Widget): void {\n // Remove the layout item for the widget.\n let item = ArrayExt.removeAt(this._items, index);\n\n // Remove the sizer for the widget.\n ArrayExt.removeAt(this._sizers, index);\n\n // Send a `'before-detach'` message if the parent is attached.\n if (this.parent!.isAttached) {\n MessageLoop.sendMessage(widget, Widget.Msg.BeforeDetach);\n }\n\n // Remove the widget's node from the parent.\n this.parent!.node.removeChild(widget.node);\n\n // Send an `'after-detach'` message if the parent is attached.\n if (this.parent!.isAttached) {\n MessageLoop.sendMessage(widget, Widget.Msg.AfterDetach);\n }\n\n // Dispose of the layout item.\n item!.dispose();\n\n // Post a fit request for the parent widget.\n this.parent!.fit();\n }\n\n /**\n * A message handler invoked on a `'before-show'` message.\n */\n protected onBeforeShow(msg: Message): void {\n super.onBeforeShow(msg);\n this.parent!.update();\n }\n\n /**\n * A message handler invoked on a `'before-attach'` message.\n */\n protected onBeforeAttach(msg: Message): void {\n super.onBeforeAttach(msg);\n this.parent!.fit();\n }\n\n /**\n * A message handler invoked on a `'child-shown'` message.\n */\n protected onChildShown(msg: Widget.ChildMessage): void {\n this.parent!.fit();\n }\n\n /**\n * A message handler invoked on a `'child-hidden'` message.\n */\n protected onChildHidden(msg: Widget.ChildMessage): void {\n this.parent!.fit();\n }\n\n /**\n * A message handler invoked on a `'resize'` message.\n */\n protected onResize(msg: Widget.ResizeMessage): void {\n if (this.parent!.isVisible) {\n this._update(msg.width, msg.height);\n }\n }\n\n /**\n * A message handler invoked on an `'update-request'` message.\n */\n protected onUpdateRequest(msg: Message): void {\n if (this.parent!.isVisible) {\n this._update(-1, -1);\n }\n }\n\n /**\n * A message handler invoked on a `'fit-request'` message.\n */\n protected onFitRequest(msg: Message): void {\n if (this.parent!.isAttached) {\n this._fit();\n }\n }\n\n /**\n * Fit the layout to the total size required by the widgets.\n */\n private _fit(): void {\n // Compute the visible item count.\n let nVisible = 0;\n for (let i = 0, n = this._items.length; i < n; ++i) {\n nVisible += +!this._items[i].isHidden;\n }\n\n // Update the fixed space for the visible items.\n this._fixed = this._spacing * Math.max(0, nVisible - 1);\n\n // Setup the computed minimum size.\n let horz = Private.isHorizontal(this._direction);\n let minW = horz ? this._fixed : 0;\n let minH = horz ? 0 : this._fixed;\n\n // Update the sizers and computed minimum size.\n for (let i = 0, n = this._items.length; i < n; ++i) {\n // Fetch the item and corresponding box sizer.\n let item = this._items[i];\n let sizer = this._sizers[i];\n\n // If the item is hidden, it should consume zero size.\n if (item.isHidden) {\n sizer.minSize = 0;\n sizer.maxSize = 0;\n continue;\n }\n\n // Update the size limits for the item.\n item.fit();\n\n // Update the size basis and stretch factor.\n sizer.sizeHint = BoxLayout.getSizeBasis(item.widget);\n sizer.stretch = BoxLayout.getStretch(item.widget);\n\n // Update the sizer limits and computed min size.\n if (horz) {\n sizer.minSize = item.minWidth;\n sizer.maxSize = item.maxWidth;\n minW += item.minWidth;\n minH = Math.max(minH, item.minHeight);\n } else {\n sizer.minSize = item.minHeight;\n sizer.maxSize = item.maxHeight;\n minH += item.minHeight;\n minW = Math.max(minW, item.minWidth);\n }\n }\n\n // Update the box sizing and add it to the computed min size.\n let box = (this._box = ElementExt.boxSizing(this.parent!.node));\n minW += box.horizontalSum;\n minH += box.verticalSum;\n\n // Update the parent's min size constraints.\n let style = this.parent!.node.style;\n style.minWidth = `${minW}px`;\n style.minHeight = `${minH}px`;\n\n // Set the dirty flag to ensure only a single update occurs.\n this._dirty = true;\n\n // Notify the ancestor that it should fit immediately. This may\n // cause a resize of the parent, fulfilling the required update.\n if (this.parent!.parent) {\n MessageLoop.sendMessage(this.parent!.parent!, Widget.Msg.FitRequest);\n }\n\n // If the dirty flag is still set, the parent was not resized.\n // Trigger the required update on the parent widget immediately.\n if (this._dirty) {\n MessageLoop.sendMessage(this.parent!, Widget.Msg.UpdateRequest);\n }\n }\n\n /**\n * Update the layout position and size of the widgets.\n *\n * The parent offset dimensions should be `-1` if unknown.\n */\n private _update(offsetWidth: number, offsetHeight: number): void {\n // Clear the dirty flag to indicate the update occurred.\n this._dirty = false;\n\n // Compute the visible item count.\n let nVisible = 0;\n for (let i = 0, n = this._items.length; i < n; ++i) {\n nVisible += +!this._items[i].isHidden;\n }\n\n // Bail early if there are no visible items to layout.\n if (nVisible === 0) {\n return;\n }\n\n // Measure the parent if the offset dimensions are unknown.\n if (offsetWidth < 0) {\n offsetWidth = this.parent!.node.offsetWidth;\n }\n if (offsetHeight < 0) {\n offsetHeight = this.parent!.node.offsetHeight;\n }\n\n // Ensure the parent box sizing data is computed.\n if (!this._box) {\n this._box = ElementExt.boxSizing(this.parent!.node);\n }\n\n // Compute the layout area adjusted for border and padding.\n let top = this._box.paddingTop;\n let left = this._box.paddingLeft;\n let width = offsetWidth - this._box.horizontalSum;\n let height = offsetHeight - this._box.verticalSum;\n\n // Distribute the layout space and adjust the start position.\n let delta: number;\n switch (this._direction) {\n case 'left-to-right':\n delta = BoxEngine.calc(this._sizers, Math.max(0, width - this._fixed));\n break;\n case 'top-to-bottom':\n delta = BoxEngine.calc(this._sizers, Math.max(0, height - this._fixed));\n break;\n case 'right-to-left':\n delta = BoxEngine.calc(this._sizers, Math.max(0, width - this._fixed));\n left += width;\n break;\n case 'bottom-to-top':\n delta = BoxEngine.calc(this._sizers, Math.max(0, height - this._fixed));\n top += height;\n break;\n default:\n throw 'unreachable';\n }\n\n // Setup the variables for justification and alignment offset.\n let extra = 0;\n let offset = 0;\n\n // Account for alignment if there is extra layout space.\n if (delta > 0) {\n switch (this._alignment) {\n case 'start':\n break;\n case 'center':\n extra = 0;\n offset = delta / 2;\n break;\n case 'end':\n extra = 0;\n offset = delta;\n break;\n case 'justify':\n extra = delta / nVisible;\n offset = 0;\n break;\n default:\n throw 'unreachable';\n }\n }\n\n // Layout the items using the computed box sizes.\n for (let i = 0, n = this._items.length; i < n; ++i) {\n // Fetch the item.\n let item = this._items[i];\n\n // Ignore hidden items.\n if (item.isHidden) {\n continue;\n }\n\n // Fetch the computed size for the widget.\n let size = this._sizers[i].size;\n\n // Update the widget geometry and advance the relevant edge.\n switch (this._direction) {\n case 'left-to-right':\n item.update(left + offset, top, size + extra, height);\n left += size + extra + this._spacing;\n break;\n case 'top-to-bottom':\n item.update(left, top + offset, width, size + extra);\n top += size + extra + this._spacing;\n break;\n case 'right-to-left':\n item.update(left - offset - size - extra, top, size + extra, height);\n left -= size + extra + this._spacing;\n break;\n case 'bottom-to-top':\n item.update(left, top - offset - size - extra, width, size + extra);\n top -= size + extra + this._spacing;\n break;\n default:\n throw 'unreachable';\n }\n }\n }\n\n private _fixed = 0;\n private _spacing = 4;\n private _dirty = false;\n private _sizers: BoxSizer[] = [];\n private _items: LayoutItem[] = [];\n private _box: ElementExt.IBoxSizing | null = null;\n private _alignment: BoxLayout.Alignment = 'start';\n private _direction: BoxLayout.Direction = 'top-to-bottom';\n}\n\n/**\n * The namespace for the `BoxLayout` class statics.\n */\nexport namespace BoxLayout {\n /**\n * A type alias for a box layout direction.\n */\n export type Direction =\n | 'left-to-right'\n | 'right-to-left'\n | 'top-to-bottom'\n | 'bottom-to-top';\n\n /**\n * A type alias for a box layout alignment.\n */\n export type Alignment = 'start' | 'center' | 'end' | 'justify';\n\n /**\n * An options object for initializing a box layout.\n */\n export interface IOptions {\n /**\n * The direction of the layout.\n *\n * The default is `'top-to-bottom'`.\n */\n direction?: Direction;\n\n /**\n * The content alignment of the layout.\n *\n * The default is `'start'`.\n */\n alignment?: Alignment;\n\n /**\n * The spacing between items in the layout.\n *\n * The default is `4`.\n */\n spacing?: number;\n }\n\n /**\n * Get the box layout stretch factor for the given widget.\n *\n * @param widget - The widget of interest.\n *\n * @returns The box layout stretch factor for the widget.\n */\n export function getStretch(widget: Widget): number {\n return Private.stretchProperty.get(widget);\n }\n\n /**\n * Set the box layout stretch factor for the given widget.\n *\n * @param widget - The widget of interest.\n *\n * @param value - The value for the stretch factor.\n */\n export function setStretch(widget: Widget, value: number): void {\n Private.stretchProperty.set(widget, value);\n }\n\n /**\n * Get the box layout size basis for the given widget.\n *\n * @param widget - The widget of interest.\n *\n * @returns The box layout size basis for the widget.\n */\n export function getSizeBasis(widget: Widget): number {\n return Private.sizeBasisProperty.get(widget);\n }\n\n /**\n * Set the box layout size basis for the given widget.\n *\n * @param widget - The widget of interest.\n *\n * @param value - The value for the size basis.\n */\n export function setSizeBasis(widget: Widget, value: number): void {\n Private.sizeBasisProperty.set(widget, value);\n }\n}\n\n/**\n * The namespace for the module implementation details.\n */\nnamespace Private {\n /**\n * The property descriptor for a widget stretch factor.\n */\n export const stretchProperty = new AttachedProperty({\n name: 'stretch',\n create: () => 0,\n coerce: (owner, value) => Math.max(0, Math.floor(value)),\n changed: onChildSizingChanged\n });\n\n /**\n * The property descriptor for a widget size basis.\n */\n export const sizeBasisProperty = new AttachedProperty({\n name: 'sizeBasis',\n create: () => 0,\n coerce: (owner, value) => Math.max(0, Math.floor(value)),\n changed: onChildSizingChanged\n });\n\n /**\n * Test whether a direction has horizontal orientation.\n */\n export function isHorizontal(dir: BoxLayout.Direction): boolean {\n return dir === 'left-to-right' || dir === 'right-to-left';\n }\n\n /**\n * Clamp a spacing value to an integer >= 0.\n */\n export function clampSpacing(value: number): number {\n return Math.max(0, Math.floor(value));\n }\n\n /**\n * The change handler for the attached sizing properties.\n */\n function onChildSizingChanged(child: Widget): void {\n if (child.parent && child.parent.layout instanceof BoxLayout) {\n child.parent.fit();\n }\n }\n}\n","// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n/*-----------------------------------------------------------------------------\n| Copyright (c) 2014-2017, PhosphorJS Contributors\n|\n| Distributed under the terms of the BSD 3-Clause License.\n|\n| The full license is in the file LICENSE, distributed with this software.\n|----------------------------------------------------------------------------*/\nimport { BoxLayout } from './boxlayout';\n\nimport { Panel } from './panel';\n\nimport { Widget } from './widget';\n\n/**\n * A panel which arranges its widgets in a single row or column.\n *\n * #### Notes\n * This class provides a convenience wrapper around a [[BoxLayout]].\n */\nexport class BoxPanel extends Panel {\n /**\n * Construct a new box panel.\n *\n * @param options - The options for initializing the box panel.\n */\n constructor(options: BoxPanel.IOptions = {}) {\n super({ layout: Private.createLayout(options) });\n this.addClass('lm-BoxPanel');\n /* */\n this.addClass('p-BoxPanel');\n /* */\n }\n\n /**\n * Get the layout direction for the box panel.\n */\n get direction(): BoxPanel.Direction {\n return (this.layout as BoxLayout).direction;\n }\n\n /**\n * Set the layout direction for the box panel.\n */\n set direction(value: BoxPanel.Direction) {\n (this.layout as BoxLayout).direction = value;\n }\n\n /**\n * Get the content alignment for the box panel.\n *\n * #### Notes\n * This is the alignment of the widgets in the layout direction.\n *\n * The alignment has no effect if the widgets can expand to fill the\n * entire box layout.\n */\n get alignment(): BoxPanel.Alignment {\n return (this.layout as BoxLayout).alignment;\n }\n\n /**\n * Set the content alignment for the box panel.\n *\n * #### Notes\n * This is the alignment of the widgets in the layout direction.\n *\n * The alignment has no effect if the widgets can expand to fill the\n * entire box layout.\n */\n set alignment(value: BoxPanel.Alignment) {\n (this.layout as BoxLayout).alignment = value;\n }\n\n /**\n * Get the inter-element spacing for the box panel.\n */\n get spacing(): number {\n return (this.layout as BoxLayout).spacing;\n }\n\n /**\n * Set the inter-element spacing for the box panel.\n */\n set spacing(value: number) {\n (this.layout as BoxLayout).spacing = value;\n }\n\n /**\n * A message handler invoked on a `'child-added'` message.\n */\n protected onChildAdded(msg: Widget.ChildMessage): void {\n msg.child.addClass('lm-BoxPanel-child');\n /* */\n msg.child.addClass('p-BoxPanel-child');\n /* */\n }\n\n /**\n * A message handler invoked on a `'child-removed'` message.\n */\n protected onChildRemoved(msg: Widget.ChildMessage): void {\n msg.child.removeClass('lm-BoxPanel-child');\n /* */\n msg.child.removeClass('p-BoxPanel-child');\n /* */\n }\n}\n\n/**\n * The namespace for the `BoxPanel` class statics.\n */\nexport namespace BoxPanel {\n /**\n * A type alias for a box panel direction.\n */\n export type Direction = BoxLayout.Direction;\n\n /**\n * A type alias for a box panel alignment.\n */\n export type Alignment = BoxLayout.Alignment;\n\n /**\n * An options object for initializing a box panel.\n */\n export interface IOptions {\n /**\n * The layout direction of the panel.\n *\n * The default is `'top-to-bottom'`.\n */\n direction?: Direction;\n\n /**\n * The content alignment of the panel.\n *\n * The default is `'start'`.\n */\n alignment?: Alignment;\n\n /**\n * The spacing between items in the panel.\n *\n * The default is `4`.\n */\n spacing?: number;\n\n /**\n * The box layout to use for the box panel.\n *\n * If this is provided, the other options are ignored.\n *\n * The default is a new `BoxLayout`.\n */\n layout?: BoxLayout;\n }\n\n /**\n * Get the box panel stretch factor for the given widget.\n *\n * @param widget - The widget of interest.\n *\n * @returns The box panel stretch factor for the widget.\n */\n export function getStretch(widget: Widget): number {\n return BoxLayout.getStretch(widget);\n }\n\n /**\n * Set the box panel stretch factor for the given widget.\n *\n * @param widget - The widget of interest.\n *\n * @param value - The value for the stretch factor.\n */\n export function setStretch(widget: Widget, value: number): void {\n BoxLayout.setStretch(widget, value);\n }\n\n /**\n * Get the box panel size basis for the given widget.\n *\n * @param widget - The widget of interest.\n *\n * @returns The box panel size basis for the widget.\n */\n export function getSizeBasis(widget: Widget): number {\n return BoxLayout.getSizeBasis(widget);\n }\n\n /**\n * Set the box panel size basis for the given widget.\n *\n * @param widget - The widget of interest.\n *\n * @param value - The value for the size basis.\n */\n export function setSizeBasis(widget: Widget, value: number): void {\n BoxLayout.setSizeBasis(widget, value);\n }\n}\n\n/**\n * The namespace for the module implementation details.\n */\nnamespace Private {\n /**\n * Create a box layout for the given panel options.\n */\n export function createLayout(options: BoxPanel.IOptions): BoxLayout {\n return options.layout || new BoxLayout(options);\n }\n}\n","// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n/*-----------------------------------------------------------------------------\n| Copyright (c) 2014-2017, PhosphorJS Contributors\n|\n| Distributed under the terms of the BSD 3-Clause License.\n|\n| The full license is in the file LICENSE, distributed with this software.\n|----------------------------------------------------------------------------*/\nimport { ArrayExt, StringExt } from '@lumino/algorithm';\n\nimport { JSONExt, ReadonlyJSONObject } from '@lumino/coreutils';\n\nimport { CommandRegistry } from '@lumino/commands';\n\nimport { ElementExt } from '@lumino/domutils';\n\nimport { Message } from '@lumino/messaging';\n\nimport {\n ElementDataset,\n h,\n VirtualDOM,\n VirtualElement\n} from '@lumino/virtualdom';\n\nimport { Widget } from './widget';\n\n/**\n * A widget which displays command items as a searchable palette.\n */\nexport class CommandPalette extends Widget {\n /**\n * Construct a new command palette.\n *\n * @param options - The options for initializing the palette.\n */\n constructor(options: CommandPalette.IOptions) {\n super({ node: Private.createNode() });\n this.addClass('lm-CommandPalette');\n /* */\n this.addClass('p-CommandPalette');\n /* */\n this.setFlag(Widget.Flag.DisallowLayout);\n this.commands = options.commands;\n this.renderer = options.renderer || CommandPalette.defaultRenderer;\n this.commands.commandChanged.connect(this._onGenericChange, this);\n this.commands.keyBindingChanged.connect(this._onGenericChange, this);\n }\n\n /**\n * Dispose of the resources held by the widget.\n */\n dispose(): void {\n this._items.length = 0;\n this._results = null;\n super.dispose();\n }\n\n /**\n * The command registry used by the command palette.\n */\n readonly commands: CommandRegistry;\n\n /**\n * The renderer used by the command palette.\n */\n readonly renderer: CommandPalette.IRenderer;\n\n /**\n * The command palette search node.\n *\n * #### Notes\n * This is the node which contains the search-related elements.\n */\n get searchNode(): HTMLDivElement {\n return this.node.getElementsByClassName(\n 'lm-CommandPalette-search'\n )[0] as HTMLDivElement;\n }\n\n /**\n * The command palette input node.\n *\n * #### Notes\n * This is the actual input node for the search area.\n */\n get inputNode(): HTMLInputElement {\n return this.node.getElementsByClassName(\n 'lm-CommandPalette-input'\n )[0] as HTMLInputElement;\n }\n\n /**\n * The command palette content node.\n *\n * #### Notes\n * This is the node which holds the command item nodes.\n *\n * Modifying this node directly can lead to undefined behavior.\n */\n get contentNode(): HTMLUListElement {\n return this.node.getElementsByClassName(\n 'lm-CommandPalette-content'\n )[0] as HTMLUListElement;\n }\n\n /**\n * A read-only array of the command items in the palette.\n */\n get items(): ReadonlyArray {\n return this._items;\n }\n\n /**\n * Add a command item to the command palette.\n *\n * @param options - The options for creating the command item.\n *\n * @returns The command item added to the palette.\n */\n addItem(options: CommandPalette.IItemOptions): CommandPalette.IItem {\n // Create a new command item for the options.\n let item = Private.createItem(this.commands, options);\n\n // Add the item to the array.\n this._items.push(item);\n\n // Refresh the search results.\n this.refresh();\n\n // Return the item added to the palette.\n return item;\n }\n\n /**\n * Adds command items to the command palette.\n *\n * @param items - An array of options for creating each command item.\n *\n * @returns The command items added to the palette.\n */\n addItems(items: CommandPalette.IItemOptions[]): CommandPalette.IItem[] {\n const newItems = items.map(item => Private.createItem(this.commands, item));\n newItems.forEach(item => this._items.push(item));\n this.refresh();\n return newItems;\n }\n\n /**\n * Remove an item from the command palette.\n *\n * @param item - The item to remove from the palette.\n *\n * #### Notes\n * This is a no-op if the item is not in the palette.\n */\n removeItem(item: CommandPalette.IItem): void {\n this.removeItemAt(this._items.indexOf(item));\n }\n\n /**\n * Remove the item at a given index from the command palette.\n *\n * @param index - The index of the item to remove.\n *\n * #### Notes\n * This is a no-op if the index is out of range.\n */\n removeItemAt(index: number): void {\n // Remove the item from the array.\n let item = ArrayExt.removeAt(this._items, index);\n\n // Bail if the index is out of range.\n if (!item) {\n return;\n }\n\n // Refresh the search results.\n this.refresh();\n }\n\n /**\n * Remove all items from the command palette.\n */\n clearItems(): void {\n // Bail if there is nothing to remove.\n if (this._items.length === 0) {\n return;\n }\n\n // Clear the array of items.\n this._items.length = 0;\n\n // Refresh the search results.\n this.refresh();\n }\n\n /**\n * Clear the search results and schedule an update.\n *\n * #### Notes\n * This should be called whenever the search results of the palette\n * should be updated.\n *\n * This is typically called automatically by the palette as needed,\n * but can be called manually if the input text is programatically\n * changed.\n *\n * The rendered results are updated asynchronously.\n */\n refresh(): void {\n this._results = null;\n if (this.inputNode.value !== '') {\n let clear = this.node.getElementsByClassName(\n 'lm-close-icon'\n )[0] as HTMLInputElement;\n clear.style.display = 'inherit';\n } else {\n let clear = this.node.getElementsByClassName(\n 'lm-close-icon'\n )[0] as HTMLInputElement;\n clear.style.display = 'none';\n }\n this.update();\n }\n\n /**\n * Handle the DOM events for the command palette.\n *\n * @param event - The DOM event sent to the command palette.\n *\n * #### Notes\n * This method implements the DOM `EventListener` interface and is\n * called in response to events on the command palette's DOM node.\n * It should not be called directly by user code.\n */\n handleEvent(event: Event): void {\n switch (event.type) {\n case 'click':\n this._evtClick(event as MouseEvent);\n break;\n case 'keydown':\n this._evtKeyDown(event as KeyboardEvent);\n break;\n case 'input':\n this.refresh();\n break;\n case 'focus':\n case 'blur':\n this._toggleFocused();\n break;\n }\n }\n\n /**\n * A message handler invoked on a `'before-attach'` message.\n */\n protected onBeforeAttach(msg: Message): void {\n this.node.addEventListener('click', this);\n this.node.addEventListener('keydown', this);\n this.node.addEventListener('input', this);\n this.node.addEventListener('focus', this, true);\n this.node.addEventListener('blur', this, true);\n }\n\n /**\n * A message handler invoked on an `'after-detach'` message.\n */\n protected onAfterDetach(msg: Message): void {\n this.node.removeEventListener('click', this);\n this.node.removeEventListener('keydown', this);\n this.node.removeEventListener('input', this);\n this.node.removeEventListener('focus', this, true);\n this.node.removeEventListener('blur', this, true);\n }\n\n /**\n * A message handler invoked on an `'activate-request'` message.\n */\n protected onActivateRequest(msg: Message): void {\n if (this.isAttached) {\n let input = this.inputNode;\n input.focus();\n input.select();\n }\n }\n\n /**\n * A message handler invoked on an `'update-request'` message.\n */\n protected onUpdateRequest(msg: Message): void {\n // Fetch the current query text and content node.\n let query = this.inputNode.value;\n let contentNode = this.contentNode;\n\n // Ensure the search results are generated.\n let results = this._results;\n if (!results) {\n // Generate and store the new search results.\n results = this._results = Private.search(this._items, query);\n\n // Reset the active index.\n this._activeIndex = query\n ? ArrayExt.findFirstIndex(results, Private.canActivate)\n : -1;\n }\n\n // If there is no query and no results, clear the content.\n if (!query && results.length === 0) {\n VirtualDOM.render(null, contentNode);\n return;\n }\n\n // If the is a query but no results, render the empty message.\n if (query && results.length === 0) {\n let content = this.renderer.renderEmptyMessage({ query });\n VirtualDOM.render(content, contentNode);\n return;\n }\n\n // Create the render content for the search results.\n let renderer = this.renderer;\n let activeIndex = this._activeIndex;\n let content = new Array(results.length);\n for (let i = 0, n = results.length; i < n; ++i) {\n let result = results[i];\n if (result.type === 'header') {\n let indices = result.indices;\n let category = result.category;\n content[i] = renderer.renderHeader({ category, indices });\n } else {\n let item = result.item;\n let indices = result.indices;\n let active = i === activeIndex;\n content[i] = renderer.renderItem({ item, indices, active });\n }\n }\n\n // Render the search result content.\n VirtualDOM.render(content, contentNode);\n\n // Adjust the scroll position as needed.\n if (activeIndex < 0 || activeIndex >= results.length) {\n contentNode.scrollTop = 0;\n } else {\n let element = contentNode.children[activeIndex];\n ElementExt.scrollIntoViewIfNeeded(contentNode, element);\n }\n }\n\n /**\n * Handle the `'click'` event for the command palette.\n */\n private _evtClick(event: MouseEvent): void {\n // Bail if the click is not the left button.\n if (event.button !== 0) {\n return;\n }\n\n // Clear input if the target is clear button\n if ((event.target as HTMLElement).classList.contains('lm-close-icon')) {\n this.inputNode.value = '';\n this.refresh();\n return;\n }\n\n // Find the index of the item which was clicked.\n let index = ArrayExt.findFirstIndex(this.contentNode.children, node => {\n return node.contains(event.target as HTMLElement);\n });\n\n // Bail if the click was not on an item.\n if (index === -1) {\n return;\n }\n\n // Kill the event when a content item is clicked.\n event.preventDefault();\n event.stopPropagation();\n\n // Execute the item if possible.\n this._execute(index);\n }\n\n /**\n * Handle the `'keydown'` event for the command palette.\n */\n private _evtKeyDown(event: KeyboardEvent): void {\n if (event.altKey || event.ctrlKey || event.metaKey || event.shiftKey) {\n return;\n }\n switch (event.keyCode) {\n case 13: // Enter\n event.preventDefault();\n event.stopPropagation();\n this._execute(this._activeIndex);\n break;\n case 38: // Up Arrow\n event.preventDefault();\n event.stopPropagation();\n this._activatePreviousItem();\n break;\n case 40: // Down Arrow\n event.preventDefault();\n event.stopPropagation();\n this._activateNextItem();\n break;\n }\n }\n\n /**\n * Activate the next enabled command item.\n */\n private _activateNextItem(): void {\n // Bail if there are no search results.\n if (!this._results || this._results.length === 0) {\n return;\n }\n\n // Find the next enabled item index.\n let ai = this._activeIndex;\n let n = this._results.length;\n let start = ai < n - 1 ? ai + 1 : 0;\n let stop = start === 0 ? n - 1 : start - 1;\n this._activeIndex = ArrayExt.findFirstIndex(\n this._results,\n Private.canActivate,\n start,\n stop\n );\n\n // Schedule an update of the items.\n this.update();\n }\n\n /**\n * Activate the previous enabled command item.\n */\n private _activatePreviousItem(): void {\n // Bail if there are no search results.\n if (!this._results || this._results.length === 0) {\n return;\n }\n\n // Find the previous enabled item index.\n let ai = this._activeIndex;\n let n = this._results.length;\n let start = ai <= 0 ? n - 1 : ai - 1;\n let stop = start === n - 1 ? 0 : start + 1;\n this._activeIndex = ArrayExt.findLastIndex(\n this._results,\n Private.canActivate,\n start,\n stop\n );\n\n // Schedule an update of the items.\n this.update();\n }\n\n /**\n * Execute the command item at the given index, if possible.\n */\n private _execute(index: number): void {\n // Bail if there are no search results.\n if (!this._results) {\n return;\n }\n\n // Bail if the index is out of range.\n let part = this._results[index];\n if (!part) {\n return;\n }\n\n // Update the search text if the item is a header.\n if (part.type === 'header') {\n let input = this.inputNode;\n input.value = `${part.category.toLowerCase()} `;\n input.focus();\n this.refresh();\n return;\n }\n\n // Bail if item is not enabled.\n if (!part.item.isEnabled) {\n return;\n }\n\n // Execute the item.\n this.commands.execute(part.item.command, part.item.args);\n\n // Clear the query text.\n this.inputNode.value = '';\n\n // Refresh the search results.\n this.refresh();\n }\n\n /**\n * Toggle the focused modifier based on the input node focus state.\n */\n private _toggleFocused(): void {\n let focused = document.activeElement === this.inputNode;\n this.toggleClass('lm-mod-focused', focused);\n /* */\n this.toggleClass('p-mod-focused', focused);\n /* */\n }\n\n /**\n * A signal handler for generic command changes.\n */\n private _onGenericChange(): void {\n this.refresh();\n }\n\n private _activeIndex = -1;\n private _items: CommandPalette.IItem[] = [];\n private _results: Private.SearchResult[] | null = null;\n}\n\n/**\n * The namespace for the `CommandPalette` class statics.\n */\nexport namespace CommandPalette {\n /**\n * An options object for creating a command palette.\n */\n export interface IOptions {\n /**\n * The command registry for use with the command palette.\n */\n commands: CommandRegistry;\n\n /**\n * A custom renderer for use with the command palette.\n *\n * The default is a shared renderer instance.\n */\n renderer?: IRenderer;\n }\n\n /**\n * An options object for creating a command item.\n */\n export interface IItemOptions {\n /**\n * The category for the item.\n */\n category: string;\n\n /**\n * The command to execute when the item is triggered.\n */\n command: string;\n\n /**\n * The arguments for the command.\n *\n * The default value is an empty object.\n */\n args?: ReadonlyJSONObject;\n\n /**\n * The rank for the command item.\n *\n * The rank is used as a tie-breaker when ordering command items\n * for display. Items are sorted in the following order:\n * 1. Text match (lower is better)\n * 2. Category (locale order)\n * 3. Rank (lower is better)\n * 4. Label (locale order)\n *\n * The default rank is `Infinity`.\n */\n rank?: number;\n }\n\n /**\n * An object which represents an item in a command palette.\n *\n * #### Notes\n * Item objects are created automatically by a command palette.\n */\n export interface IItem {\n /**\n * The command to execute when the item is triggered.\n */\n readonly command: string;\n\n /**\n * The arguments for the command.\n */\n readonly args: ReadonlyJSONObject;\n\n /**\n * The category for the command item.\n */\n readonly category: string;\n\n /**\n * The rank for the command item.\n */\n readonly rank: number;\n\n /**\n * The display label for the command item.\n */\n readonly label: string;\n\n /**\n * The display caption for the command item.\n */\n readonly caption: string;\n\n /**\n * The icon renderer for the command item.\n */\n readonly icon:\n | VirtualElement.IRenderer\n | undefined\n /* */\n | string /* */;\n\n /**\n * The icon class for the command item.\n */\n readonly iconClass: string;\n\n /**\n * The icon label for the command item.\n */\n readonly iconLabel: string;\n\n /**\n * The extra class name for the command item.\n */\n readonly className: string;\n\n /**\n * The dataset for the command item.\n */\n readonly dataset: CommandRegistry.Dataset;\n\n /**\n * Whether the command item is enabled.\n */\n readonly isEnabled: boolean;\n\n /**\n * Whether the command item is toggled.\n */\n readonly isToggled: boolean;\n\n /**\n * Whether the command item is toggleable.\n */\n readonly isToggleable: boolean;\n\n /**\n * Whether the command item is visible.\n */\n readonly isVisible: boolean;\n\n /**\n * The key binding for the command item.\n */\n readonly keyBinding: CommandRegistry.IKeyBinding | null;\n }\n\n /**\n * The render data for a command palette header.\n */\n export interface IHeaderRenderData {\n /**\n * The category of the header.\n */\n readonly category: string;\n\n /**\n * The indices of the matched characters in the category.\n */\n readonly indices: ReadonlyArray | null;\n }\n\n /**\n * The render data for a command palette item.\n */\n export interface IItemRenderData {\n /**\n * The command palette item to render.\n */\n readonly item: IItem;\n\n /**\n * The indices of the matched characters in the label.\n */\n readonly indices: ReadonlyArray | null;\n\n /**\n * Whether the item is the active item.\n */\n readonly active: boolean;\n }\n\n /**\n * The render data for a command palette empty message.\n */\n export interface IEmptyMessageRenderData {\n /**\n * The query which failed to match any commands.\n */\n query: string;\n }\n\n /**\n * A renderer for use with a command palette.\n */\n export interface IRenderer {\n /**\n * Render the virtual element for a command palette header.\n *\n * @param data - The data to use for rendering the header.\n *\n * @returns A virtual element representing the header.\n */\n renderHeader(data: IHeaderRenderData): VirtualElement;\n\n /**\n * Render the virtual element for a command palette item.\n *\n * @param data - The data to use for rendering the item.\n *\n * @returns A virtual element representing the item.\n *\n * #### Notes\n * The command palette will not render invisible items.\n */\n renderItem(data: IItemRenderData): VirtualElement;\n\n /**\n * Render the empty results message for a command palette.\n *\n * @param data - The data to use for rendering the message.\n *\n * @returns A virtual element representing the message.\n */\n renderEmptyMessage(data: IEmptyMessageRenderData): VirtualElement;\n }\n\n /**\n * The default implementation of `IRenderer`.\n */\n export class Renderer implements IRenderer {\n /**\n * Render the virtual element for a command palette header.\n *\n * @param data - The data to use for rendering the header.\n *\n * @returns A virtual element representing the header.\n */\n renderHeader(data: IHeaderRenderData): VirtualElement {\n let content = this.formatHeader(data);\n return h.li(\n {\n className:\n 'lm-CommandPalette-header' +\n /* */\n ' p-CommandPalette-header'\n /* */\n },\n content\n );\n }\n\n /**\n * Render the virtual element for a command palette item.\n *\n * @param data - The data to use for rendering the item.\n *\n * @returns A virtual element representing the item.\n */\n renderItem(data: IItemRenderData): VirtualElement {\n let className = this.createItemClass(data);\n let dataset = this.createItemDataset(data);\n if (data.item.isToggleable) {\n return h.li(\n {\n className,\n dataset,\n role: 'checkbox',\n 'aria-checked': `${data.item.isToggled}`\n },\n this.renderItemIcon(data),\n this.renderItemContent(data),\n this.renderItemShortcut(data)\n );\n }\n return h.li(\n {\n className,\n dataset\n },\n this.renderItemIcon(data),\n this.renderItemContent(data),\n this.renderItemShortcut(data)\n );\n }\n\n /**\n * Render the empty results message for a command palette.\n *\n * @param data - The data to use for rendering the message.\n *\n * @returns A virtual element representing the message.\n */\n renderEmptyMessage(data: IEmptyMessageRenderData): VirtualElement {\n let content = this.formatEmptyMessage(data);\n return h.li(\n {\n className:\n 'lm-CommandPalette-emptyMessage' +\n /* */\n ' p-CommandPalette-emptyMessage'\n /* */\n },\n content\n );\n }\n\n /**\n * Render the icon for a command palette item.\n *\n * @param data - The data to use for rendering the icon.\n *\n * @returns A virtual element representing the icon.\n */\n renderItemIcon(data: IItemRenderData): VirtualElement {\n let className = this.createIconClass(data);\n\n /* */\n if (typeof data.item.icon === 'string') {\n return h.div({ className }, data.item.iconLabel);\n }\n /* */\n\n // if data.item.icon is undefined, it will be ignored\n return h.div({ className }, data.item.icon!, data.item.iconLabel);\n }\n\n /**\n * Render the content for a command palette item.\n *\n * @param data - The data to use for rendering the content.\n *\n * @returns A virtual element representing the content.\n */\n renderItemContent(data: IItemRenderData): VirtualElement {\n return h.div(\n {\n className:\n 'lm-CommandPalette-itemContent' +\n /* */\n ' p-CommandPalette-itemContent'\n /* */\n },\n this.renderItemLabel(data),\n this.renderItemCaption(data)\n );\n }\n\n /**\n * Render the label for a command palette item.\n *\n * @param data - The data to use for rendering the label.\n *\n * @returns A virtual element representing the label.\n */\n renderItemLabel(data: IItemRenderData): VirtualElement {\n let content = this.formatItemLabel(data);\n return h.div(\n {\n className:\n 'lm-CommandPalette-itemLabel' +\n /* */\n ' p-CommandPalette-itemLabel'\n /* */\n },\n content\n );\n }\n\n /**\n * Render the caption for a command palette item.\n *\n * @param data - The data to use for rendering the caption.\n *\n * @returns A virtual element representing the caption.\n */\n renderItemCaption(data: IItemRenderData): VirtualElement {\n let content = this.formatItemCaption(data);\n return h.div(\n {\n className:\n 'lm-CommandPalette-itemCaption' +\n /* */\n ' p-CommandPalette-itemCaption'\n /* */\n },\n content\n );\n }\n\n /**\n * Render the shortcut for a command palette item.\n *\n * @param data - The data to use for rendering the shortcut.\n *\n * @returns A virtual element representing the shortcut.\n */\n renderItemShortcut(data: IItemRenderData): VirtualElement {\n let content = this.formatItemShortcut(data);\n return h.div(\n {\n className:\n 'lm-CommandPalette-itemShortcut' +\n /* */\n ' p-CommandPalette-itemShortcut'\n /* */\n },\n content\n );\n }\n\n /**\n * Create the class name for the command palette item.\n *\n * @param data - The data to use for the class name.\n *\n * @returns The full class name for the command palette item.\n */\n createItemClass(data: IItemRenderData): string {\n // Set up the initial class name.\n let name = 'lm-CommandPalette-item';\n /* */\n name += ' p-CommandPalette-item';\n /* */\n\n // Add the boolean state classes.\n if (!data.item.isEnabled) {\n name += ' lm-mod-disabled';\n /* */\n name += ' p-mod-disabled';\n /* */\n }\n if (data.item.isToggled) {\n name += ' lm-mod-toggled';\n /* */\n name += ' p-mod-toggled';\n /* */\n }\n if (data.active) {\n name += ' lm-mod-active';\n /* */\n name += ' p-mod-active';\n /* */\n }\n\n // Add the extra class.\n let extra = data.item.className;\n if (extra) {\n name += ` ${extra}`;\n }\n\n // Return the complete class name.\n return name;\n }\n\n /**\n * Create the dataset for the command palette item.\n *\n * @param data - The data to use for creating the dataset.\n *\n * @returns The dataset for the command palette item.\n */\n createItemDataset(data: IItemRenderData): ElementDataset {\n return { ...data.item.dataset, command: data.item.command };\n }\n\n /**\n * Create the class name for the command item icon.\n *\n * @param data - The data to use for the class name.\n *\n * @returns The full class name for the item icon.\n */\n createIconClass(data: IItemRenderData): string {\n let name = 'lm-CommandPalette-itemIcon';\n /* */\n name += ' p-CommandPalette-itemIcon';\n /* */\n let extra = data.item.iconClass;\n return extra ? `${name} ${extra}` : name;\n }\n\n /**\n * Create the render content for the header node.\n *\n * @param data - The data to use for the header content.\n *\n * @returns The content to add to the header node.\n */\n formatHeader(data: IHeaderRenderData): h.Child {\n if (!data.indices || data.indices.length === 0) {\n return data.category;\n }\n return StringExt.highlight(data.category, data.indices, h.mark);\n }\n\n /**\n * Create the render content for the empty message node.\n *\n * @param data - The data to use for the empty message content.\n *\n * @returns The content to add to the empty message node.\n */\n formatEmptyMessage(data: IEmptyMessageRenderData): h.Child {\n return `No commands found that match '${data.query}'`;\n }\n\n /**\n * Create the render content for the item shortcut node.\n *\n * @param data - The data to use for the shortcut content.\n *\n * @returns The content to add to the shortcut node.\n */\n formatItemShortcut(data: IItemRenderData): h.Child {\n let kb = data.item.keyBinding;\n return kb ? CommandRegistry.formatKeystroke(kb.keys) : null;\n }\n\n /**\n * Create the render content for the item label node.\n *\n * @param data - The data to use for the label content.\n *\n * @returns The content to add to the label node.\n */\n formatItemLabel(data: IItemRenderData): h.Child {\n if (!data.indices || data.indices.length === 0) {\n return data.item.label;\n }\n return StringExt.highlight(data.item.label, data.indices, h.mark);\n }\n\n /**\n * Create the render content for the item caption node.\n *\n * @param data - The data to use for the caption content.\n *\n * @returns The content to add to the caption node.\n */\n formatItemCaption(data: IItemRenderData): h.Child {\n return data.item.caption;\n }\n }\n\n /**\n * The default `Renderer` instance.\n */\n export const defaultRenderer = new Renderer();\n}\n\n/**\n * The namespace for the module implementation details.\n */\nnamespace Private {\n /**\n * Create the DOM node for a command palette.\n */\n export function createNode(): HTMLDivElement {\n let node = document.createElement('div');\n let search = document.createElement('div');\n let wrapper = document.createElement('div');\n let input = document.createElement('input');\n let content = document.createElement('ul');\n let clear = document.createElement('button');\n search.className = 'lm-CommandPalette-search';\n wrapper.className = 'lm-CommandPalette-wrapper';\n input.className = 'lm-CommandPalette-input';\n clear.className = 'lm-close-icon';\n\n content.className = 'lm-CommandPalette-content';\n /* */\n search.classList.add('p-CommandPalette-search');\n wrapper.classList.add('p-CommandPalette-wrapper');\n input.classList.add('p-CommandPalette-input');\n content.classList.add('p-CommandPalette-content');\n /* */\n input.spellcheck = false;\n wrapper.appendChild(input);\n wrapper.appendChild(clear);\n search.appendChild(wrapper);\n node.appendChild(search);\n node.appendChild(content);\n return node;\n }\n\n /**\n * Create a new command item from a command registry and options.\n */\n export function createItem(\n commands: CommandRegistry,\n options: CommandPalette.IItemOptions\n ): CommandPalette.IItem {\n return new CommandItem(commands, options);\n }\n\n /**\n * A search result object for a header label.\n */\n export interface IHeaderResult {\n /**\n * The discriminated type of the object.\n */\n readonly type: 'header';\n\n /**\n * The category for the header.\n */\n readonly category: string;\n\n /**\n * The indices of the matched category characters.\n */\n readonly indices: ReadonlyArray | null;\n }\n\n /**\n * A search result object for a command item.\n */\n export interface IItemResult {\n /**\n * The discriminated type of the object.\n */\n readonly type: 'item';\n\n /**\n * The command item which was matched.\n */\n readonly item: CommandPalette.IItem;\n\n /**\n * The indices of the matched label characters.\n */\n readonly indices: ReadonlyArray | null;\n }\n\n /**\n * A type alias for a search result item.\n */\n export type SearchResult = IHeaderResult | IItemResult;\n\n /**\n * Search an array of command items for fuzzy matches.\n */\n export function search(\n items: CommandPalette.IItem[],\n query: string\n ): SearchResult[] {\n // Fuzzy match the items for the query.\n let scores = matchItems(items, query);\n\n // Sort the items based on their score.\n scores.sort(scoreCmp);\n\n // Create the results for the search.\n return createResults(scores);\n }\n\n /**\n * Test whether a result item can be activated.\n */\n export function canActivate(result: SearchResult): boolean {\n return result.type === 'item' && result.item.isEnabled;\n }\n\n /**\n * Normalize a category for a command item.\n */\n function normalizeCategory(category: string): string {\n return category.trim().replace(/\\s+/g, ' ');\n }\n\n /**\n * Normalize the query text for a fuzzy search.\n */\n function normalizeQuery(text: string): string {\n return text.replace(/\\s+/g, '').toLowerCase();\n }\n\n /**\n * An enum of the supported match types.\n */\n const enum MatchType {\n Label,\n Category,\n Split,\n Default\n }\n\n /**\n * A text match score with associated command item.\n */\n interface IScore {\n /**\n * The numerical type for the text match.\n */\n matchType: MatchType;\n\n /**\n * The numerical score for the text match.\n */\n score: number;\n\n /**\n * The indices of the matched category characters.\n */\n categoryIndices: number[] | null;\n\n /**\n * The indices of the matched label characters.\n */\n labelIndices: number[] | null;\n\n /**\n * The command item associated with the match.\n */\n item: CommandPalette.IItem;\n }\n\n /**\n * Perform a fuzzy match on an array of command items.\n */\n function matchItems(items: CommandPalette.IItem[], query: string): IScore[] {\n // Normalize the query text to lower case with no whitespace.\n query = normalizeQuery(query);\n\n // Create the array to hold the scores.\n let scores: IScore[] = [];\n\n // Iterate over the items and match against the query.\n for (let i = 0, n = items.length; i < n; ++i) {\n // Ignore items which are not visible.\n let item = items[i];\n if (!item.isVisible) {\n continue;\n }\n\n // If the query is empty, all items are matched by default.\n if (!query) {\n scores.push({\n matchType: MatchType.Default,\n categoryIndices: null,\n labelIndices: null,\n score: 0,\n item\n });\n continue;\n }\n\n // Run the fuzzy search for the item and query.\n let score = fuzzySearch(item, query);\n\n // Ignore the item if it is not a match.\n if (!score) {\n continue;\n }\n\n // Penalize disabled items.\n // TODO - push disabled items all the way down in sort cmp?\n if (!item.isEnabled) {\n score.score += 1000;\n }\n\n // Add the score to the results.\n scores.push(score);\n }\n\n // Return the final array of scores.\n return scores;\n }\n\n /**\n * Perform a fuzzy search on a single command item.\n */\n function fuzzySearch(\n item: CommandPalette.IItem,\n query: string\n ): IScore | null {\n // Create the source text to be searched.\n let category = item.category.toLowerCase();\n let label = item.label.toLowerCase();\n let source = `${category} ${label}`;\n\n // Set up the match score and indices array.\n let score = Infinity;\n let indices: number[] | null = null;\n\n // The regex for search word boundaries\n let rgx = /\\b\\w/g;\n\n // Search the source by word boundary.\n // eslint-disable-next-line no-constant-condition\n while (true) {\n // Find the next word boundary in the source.\n let rgxMatch = rgx.exec(source);\n\n // Break if there is no more source context.\n if (!rgxMatch) {\n break;\n }\n\n // Run the string match on the relevant substring.\n let match = StringExt.matchSumOfDeltas(source, query, rgxMatch.index);\n\n // Break if there is no match.\n if (!match) {\n break;\n }\n\n // Update the match if the score is better.\n if (match && match.score <= score) {\n score = match.score;\n indices = match.indices;\n }\n }\n\n // Bail if there was no match.\n if (!indices || score === Infinity) {\n return null;\n }\n\n // Compute the pivot index between category and label text.\n let pivot = category.length + 1;\n\n // Find the slice index to separate matched indices.\n let j = ArrayExt.lowerBound(indices, pivot, (a, b) => a - b);\n\n // Extract the matched category and label indices.\n let categoryIndices = indices.slice(0, j);\n let labelIndices = indices.slice(j);\n\n // Adjust the label indices for the pivot offset.\n for (let i = 0, n = labelIndices.length; i < n; ++i) {\n labelIndices[i] -= pivot;\n }\n\n // Handle a pure label match.\n if (categoryIndices.length === 0) {\n return {\n matchType: MatchType.Label,\n categoryIndices: null,\n labelIndices,\n score,\n item\n };\n }\n\n // Handle a pure category match.\n if (labelIndices.length === 0) {\n return {\n matchType: MatchType.Category,\n categoryIndices,\n labelIndices: null,\n score,\n item\n };\n }\n\n // Handle a split match.\n return {\n matchType: MatchType.Split,\n categoryIndices,\n labelIndices,\n score,\n item\n };\n }\n\n /**\n * A sort comparison function for a match score.\n */\n function scoreCmp(a: IScore, b: IScore): number {\n // First compare based on the match type\n let m1 = a.matchType - b.matchType;\n if (m1 !== 0) {\n return m1;\n }\n\n // Otherwise, compare based on the match score.\n let d1 = a.score - b.score;\n if (d1 !== 0) {\n return d1;\n }\n\n // Find the match index based on the match type.\n let i1 = 0;\n let i2 = 0;\n switch (a.matchType) {\n case MatchType.Label:\n i1 = a.labelIndices![0];\n i2 = b.labelIndices![0];\n break;\n case MatchType.Category:\n case MatchType.Split:\n i1 = a.categoryIndices![0];\n i2 = b.categoryIndices![0];\n break;\n }\n\n // Compare based on the match index.\n if (i1 !== i2) {\n return i1 - i2;\n }\n\n // Otherwise, compare by category.\n let d2 = a.item.category.localeCompare(b.item.category);\n if (d2 !== 0) {\n return d2;\n }\n\n // Otherwise, compare by rank.\n let r1 = a.item.rank;\n let r2 = b.item.rank;\n if (r1 !== r2) {\n return r1 < r2 ? -1 : 1; // Infinity safe\n }\n\n // Finally, compare by label.\n return a.item.label.localeCompare(b.item.label);\n }\n\n /**\n * Create the results from an array of sorted scores.\n */\n function createResults(scores: IScore[]): SearchResult[] {\n // Set up an array to track which scores have been visited.\n let visited = new Array(scores.length);\n ArrayExt.fill(visited, false);\n\n // Set up the search results array.\n let results: SearchResult[] = [];\n\n // Iterate over each score in the array.\n for (let i = 0, n = scores.length; i < n; ++i) {\n // Ignore a score which has already been processed.\n if (visited[i]) {\n continue;\n }\n\n // Extract the current item and indices.\n let { item, categoryIndices } = scores[i];\n\n // Extract the category for the current item.\n let category = item.category;\n\n // Add the header result for the category.\n results.push({ type: 'header', category, indices: categoryIndices });\n\n // Find the rest of the scores with the same category.\n for (let j = i; j < n; ++j) {\n // Ignore a score which has already been processed.\n if (visited[j]) {\n continue;\n }\n\n // Extract the data for the current score.\n let { item, labelIndices } = scores[j];\n\n // Ignore an item with a different category.\n if (item.category !== category) {\n continue;\n }\n\n // Create the item result for the score.\n results.push({ type: 'item', item, indices: labelIndices });\n\n // Mark the score as processed.\n visited[j] = true;\n }\n }\n\n // Return the final results.\n return results;\n }\n\n /**\n * A concrete implementation of `CommandPalette.IItem`.\n */\n class CommandItem implements CommandPalette.IItem {\n /**\n * Construct a new command item.\n */\n constructor(\n commands: CommandRegistry,\n options: CommandPalette.IItemOptions\n ) {\n this._commands = commands;\n this.category = normalizeCategory(options.category);\n this.command = options.command;\n this.args = options.args || JSONExt.emptyObject;\n this.rank = options.rank !== undefined ? options.rank : Infinity;\n }\n\n /**\n * The category for the command item.\n */\n readonly category: string;\n\n /**\n * The command to execute when the item is triggered.\n */\n readonly command: string;\n\n /**\n * The arguments for the command.\n */\n readonly args: ReadonlyJSONObject;\n\n /**\n * The rank for the command item.\n */\n readonly rank: number;\n\n /**\n * The display label for the command item.\n */\n get label(): string {\n return this._commands.label(this.command, this.args);\n }\n\n /**\n * The icon renderer for the command item.\n */\n get icon():\n | VirtualElement.IRenderer\n | undefined\n /* */\n | string /* */ {\n return this._commands.icon(this.command, this.args);\n }\n\n /**\n * The icon class for the command item.\n */\n get iconClass(): string {\n return this._commands.iconClass(this.command, this.args);\n }\n\n /**\n * The icon label for the command item.\n */\n get iconLabel(): string {\n return this._commands.iconLabel(this.command, this.args);\n }\n\n /**\n * The display caption for the command item.\n */\n get caption(): string {\n return this._commands.caption(this.command, this.args);\n }\n\n /**\n * The extra class name for the command item.\n */\n get className(): string {\n return this._commands.className(this.command, this.args);\n }\n\n /**\n * The dataset for the command item.\n */\n get dataset(): CommandRegistry.Dataset {\n return this._commands.dataset(this.command, this.args);\n }\n\n /**\n * Whether the command item is enabled.\n */\n get isEnabled(): boolean {\n return this._commands.isEnabled(this.command, this.args);\n }\n\n /**\n * Whether the command item is toggled.\n */\n get isToggled(): boolean {\n return this._commands.isToggled(this.command, this.args);\n }\n\n /**\n * Whether the command item is toggleable.\n */\n get isToggleable(): boolean {\n return this._commands.isToggleable(this.command, this.args);\n }\n\n /**\n * Whether the command item is visible.\n */\n get isVisible(): boolean {\n return this._commands.isVisible(this.command, this.args);\n }\n\n /**\n * The key binding for the command item.\n */\n get keyBinding(): CommandRegistry.IKeyBinding | null {\n let { command, args } = this;\n return (\n ArrayExt.findLastValue(this._commands.keyBindings, kb => {\n return kb.command === command && JSONExt.deepEqual(kb.args, args);\n }) || null\n );\n }\n\n private _commands: CommandRegistry;\n }\n}\n","// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n/*-----------------------------------------------------------------------------\n| Copyright (c) 2014-2017, PhosphorJS Contributors\n|\n| Distributed under the terms of the BSD 3-Clause License.\n|\n| The full license is in the file LICENSE, distributed with this software.\n|----------------------------------------------------------------------------*/\nimport { ArrayExt } from '@lumino/algorithm';\n\nimport { CommandRegistry } from '@lumino/commands';\n\nimport { JSONExt, ReadonlyJSONObject } from '@lumino/coreutils';\n\nimport { ElementExt } from '@lumino/domutils';\n\nimport { getKeyboardLayout } from '@lumino/keyboard';\n\nimport { Message, MessageLoop } from '@lumino/messaging';\n\nimport { ISignal, Signal } from '@lumino/signaling';\n\nimport {\n ARIAAttrNames,\n ElementARIAAttrs,\n ElementDataset,\n h,\n VirtualDOM,\n VirtualElement\n} from '@lumino/virtualdom';\n\nimport { Widget } from './widget';\n\ninterface IWindowData {\n pageXOffset: number;\n pageYOffset: number;\n clientWidth: number;\n clientHeight: number;\n}\n\n/**\n * A widget which displays items as a canonical menu.\n */\nexport class Menu extends Widget {\n /**\n * Construct a new menu.\n *\n * @param options - The options for initializing the menu.\n */\n constructor(options: Menu.IOptions) {\n super({ node: Private.createNode() });\n this.addClass('lm-Menu');\n /* */\n this.addClass('p-Menu');\n /* */\n this.setFlag(Widget.Flag.DisallowLayout);\n this.commands = options.commands;\n this.renderer = options.renderer || Menu.defaultRenderer;\n }\n\n /**\n * Dispose of the resources held by the menu.\n */\n dispose(): void {\n this.close();\n this._items.length = 0;\n super.dispose();\n }\n\n /**\n * A signal emitted just before the menu is closed.\n *\n * #### Notes\n * This signal is emitted when the menu receives a `'close-request'`\n * message, just before it removes itself from the DOM.\n *\n * This signal is not emitted if the menu is already detached from\n * the DOM when it receives the `'close-request'` message.\n */\n get aboutToClose(): ISignal {\n return this._aboutToClose;\n }\n\n /**\n * A signal emitted when a new menu is requested by the user.\n *\n * #### Notes\n * This signal is emitted whenever the user presses the right or left\n * arrow keys, and a submenu cannot be opened or closed in response.\n *\n * This signal is useful when implementing menu bars in order to open\n * the next or previous menu in response to a user key press.\n *\n * This signal is only emitted for the root menu in a hierarchy.\n */\n get menuRequested(): ISignal {\n return this._menuRequested;\n }\n\n /**\n * The command registry used by the menu.\n */\n readonly commands: CommandRegistry;\n\n /**\n * The renderer used by the menu.\n */\n readonly renderer: Menu.IRenderer;\n\n /**\n * The parent menu of the menu.\n *\n * #### Notes\n * This is `null` unless the menu is an open submenu.\n */\n get parentMenu(): Menu | null {\n return this._parentMenu;\n }\n\n /**\n * The child menu of the menu.\n *\n * #### Notes\n * This is `null` unless the menu has an open submenu.\n */\n get childMenu(): Menu | null {\n return this._childMenu;\n }\n\n /**\n * The root menu of the menu hierarchy.\n */\n get rootMenu(): Menu {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n let menu: Menu = this;\n while (menu._parentMenu) {\n menu = menu._parentMenu;\n }\n return menu;\n }\n\n /**\n * The leaf menu of the menu hierarchy.\n */\n get leafMenu(): Menu {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n let menu: Menu = this;\n while (menu._childMenu) {\n menu = menu._childMenu;\n }\n return menu;\n }\n\n /**\n * The menu content node.\n *\n * #### Notes\n * This is the node which holds the menu item nodes.\n *\n * Modifying this node directly can lead to undefined behavior.\n */\n get contentNode(): HTMLUListElement {\n return this.node.getElementsByClassName(\n 'lm-Menu-content'\n )[0] as HTMLUListElement;\n }\n\n /**\n * Get the currently active menu item.\n */\n get activeItem(): Menu.IItem | null {\n return this._items[this._activeIndex] || null;\n }\n\n /**\n * Set the currently active menu item.\n *\n * #### Notes\n * If the item cannot be activated, the item will be set to `null`.\n */\n set activeItem(value: Menu.IItem | null) {\n this.activeIndex = value ? this._items.indexOf(value) : -1;\n }\n\n /**\n * Get the index of the currently active menu item.\n *\n * #### Notes\n * This will be `-1` if no menu item is active.\n */\n get activeIndex(): number {\n return this._activeIndex;\n }\n\n /**\n * Set the index of the currently active menu item.\n *\n * #### Notes\n * If the item cannot be activated, the index will be set to `-1`.\n */\n set activeIndex(value: number) {\n // Adjust the value for an out of range index.\n if (value < 0 || value >= this._items.length) {\n value = -1;\n }\n\n // Ensure the item can be activated.\n if (value !== -1 && !Private.canActivate(this._items[value])) {\n value = -1;\n }\n\n // Bail if the index will not change.\n if (this._activeIndex === value) {\n return;\n }\n\n // Update the active index.\n this._activeIndex = value;\n\n // Make active element in focus\n if (\n this._activeIndex >= 0 &&\n this.contentNode.childNodes[this._activeIndex]\n ) {\n (this.contentNode.childNodes[this._activeIndex] as HTMLElement).focus();\n }\n\n // schedule an update of the items.\n this.update();\n }\n\n /**\n * A read-only array of the menu items in the menu.\n */\n get items(): ReadonlyArray {\n return this._items;\n }\n\n /**\n * Activate the next selectable item in the menu.\n *\n * #### Notes\n * If no item is selectable, the index will be set to `-1`.\n */\n activateNextItem(): void {\n let n = this._items.length;\n let ai = this._activeIndex;\n let start = ai < n - 1 ? ai + 1 : 0;\n let stop = start === 0 ? n - 1 : start - 1;\n this.activeIndex = ArrayExt.findFirstIndex(\n this._items,\n Private.canActivate,\n start,\n stop\n );\n }\n\n /**\n * Activate the previous selectable item in the menu.\n *\n * #### Notes\n * If no item is selectable, the index will be set to `-1`.\n */\n activatePreviousItem(): void {\n let n = this._items.length;\n let ai = this._activeIndex;\n let start = ai <= 0 ? n - 1 : ai - 1;\n let stop = start === n - 1 ? 0 : start + 1;\n this.activeIndex = ArrayExt.findLastIndex(\n this._items,\n Private.canActivate,\n start,\n stop\n );\n }\n\n /**\n * Trigger the active menu item.\n *\n * #### Notes\n * If the active item is a submenu, it will be opened and the first\n * item will be activated.\n *\n * If the active item is a command, the command will be executed.\n *\n * If the menu is not attached, this is a no-op.\n *\n * If there is no active item, this is a no-op.\n */\n triggerActiveItem(): void {\n // Bail if the menu is not attached.\n if (!this.isAttached) {\n return;\n }\n\n // Bail if there is no active item.\n let item = this.activeItem;\n if (!item) {\n return;\n }\n\n // Cancel the pending timers.\n this._cancelOpenTimer();\n this._cancelCloseTimer();\n\n // If the item is a submenu, open it.\n if (item.type === 'submenu') {\n this._openChildMenu(true);\n return;\n }\n\n // Close the root menu before executing the command.\n this.rootMenu.close();\n\n // Execute the command for the item.\n let { command, args } = item;\n if (this.commands.isEnabled(command, args)) {\n this.commands.execute(command, args);\n } else {\n console.log(`Command '${command}' is disabled.`);\n }\n }\n\n /**\n * Add a menu item to the end of the menu.\n *\n * @param options - The options for creating the menu item.\n *\n * @returns The menu item added to the menu.\n */\n addItem(options: Menu.IItemOptions): Menu.IItem {\n return this.insertItem(this._items.length, options);\n }\n\n /**\n * Insert a menu item into the menu at the specified index.\n *\n * @param index - The index at which to insert the item.\n *\n * @param options - The options for creating the menu item.\n *\n * @returns The menu item added to the menu.\n *\n * #### Notes\n * The index will be clamped to the bounds of the items.\n */\n insertItem(index: number, options: Menu.IItemOptions): Menu.IItem {\n // Close the menu if it's attached.\n if (this.isAttached) {\n this.close();\n }\n\n // Reset the active index.\n this.activeIndex = -1;\n\n // Clamp the insert index to the array bounds.\n let i = Math.max(0, Math.min(index, this._items.length));\n\n // Create the item for the options.\n let item = Private.createItem(this, options);\n\n // Insert the item into the array.\n ArrayExt.insert(this._items, i, item);\n\n // Schedule an update of the items.\n this.update();\n\n // Return the item added to the menu.\n return item;\n }\n\n /**\n * Remove an item from the menu.\n *\n * @param item - The item to remove from the menu.\n *\n * #### Notes\n * This is a no-op if the item is not in the menu.\n */\n removeItem(item: Menu.IItem): void {\n this.removeItemAt(this._items.indexOf(item));\n }\n\n /**\n * Remove the item at a given index from the menu.\n *\n * @param index - The index of the item to remove.\n *\n * #### Notes\n * This is a no-op if the index is out of range.\n */\n removeItemAt(index: number): void {\n // Close the menu if it's attached.\n if (this.isAttached) {\n this.close();\n }\n\n // Reset the active index.\n this.activeIndex = -1;\n\n // Remove the item from the array.\n let item = ArrayExt.removeAt(this._items, index);\n\n // Bail if the index is out of range.\n if (!item) {\n return;\n }\n\n // Schedule an update of the items.\n this.update();\n }\n\n /**\n * Remove all menu items from the menu.\n */\n clearItems(): void {\n // Close the menu if it's attached.\n if (this.isAttached) {\n this.close();\n }\n\n // Reset the active index.\n this.activeIndex = -1;\n\n // Bail if there is nothing to remove.\n if (this._items.length === 0) {\n return;\n }\n\n // Clear the items.\n this._items.length = 0;\n\n // Schedule an update of the items.\n this.update();\n }\n\n /**\n * Open the menu at the specified location.\n *\n * @param x - The client X coordinate of the menu location.\n *\n * @param y - The client Y coordinate of the menu location.\n *\n * @param options - The additional options for opening the menu.\n *\n * #### Notes\n * The menu will be opened at the given location unless it will not\n * fully fit on the screen. If it will not fit, it will be adjusted\n * to fit naturally on the screen.\n *\n * This is a no-op if the menu is already attached to the DOM.\n */\n open(x: number, y: number, options: Menu.IOpenOptions = {}): void {\n // Bail early if the menu is already attached.\n if (this.isAttached) {\n return;\n }\n\n // Extract the position options.\n let forceX = options.forceX || false;\n let forceY = options.forceY || false;\n\n // Open the menu as a root menu.\n Private.openRootMenu(this, x, y, forceX, forceY);\n\n // Activate the menu to accept keyboard input.\n this.activate();\n }\n\n /**\n * Handle the DOM events for the menu.\n *\n * @param event - The DOM event sent to the menu.\n *\n * #### Notes\n * This method implements the DOM `EventListener` interface and is\n * called in response to events on the menu's DOM nodes. It should\n * not be called directly by user code.\n */\n handleEvent(event: Event): void {\n switch (event.type) {\n case 'keydown':\n this._evtKeyDown(event as KeyboardEvent);\n break;\n case 'mouseup':\n this._evtMouseUp(event as MouseEvent);\n break;\n case 'mousemove':\n this._evtMouseMove(event as MouseEvent);\n break;\n case 'mouseenter':\n this._evtMouseEnter(event as MouseEvent);\n break;\n case 'mouseleave':\n this._evtMouseLeave(event as MouseEvent);\n break;\n case 'mousedown':\n this._evtMouseDown(event as MouseEvent);\n break;\n case 'contextmenu':\n event.preventDefault();\n event.stopPropagation();\n break;\n }\n }\n\n /**\n * A message handler invoked on a `'before-attach'` message.\n */\n protected onBeforeAttach(msg: Message): void {\n this.node.addEventListener('keydown', this);\n this.node.addEventListener('mouseup', this);\n this.node.addEventListener('mousemove', this);\n this.node.addEventListener('mouseenter', this);\n this.node.addEventListener('mouseleave', this);\n this.node.addEventListener('contextmenu', this);\n document.addEventListener('mousedown', this, true);\n }\n\n /**\n * A message handler invoked on an `'after-detach'` message.\n */\n protected onAfterDetach(msg: Message): void {\n this.node.removeEventListener('keydown', this);\n this.node.removeEventListener('mouseup', this);\n this.node.removeEventListener('mousemove', this);\n this.node.removeEventListener('mouseenter', this);\n this.node.removeEventListener('mouseleave', this);\n this.node.removeEventListener('contextmenu', this);\n document.removeEventListener('mousedown', this, true);\n }\n\n /**\n * A message handler invoked on an `'activate-request'` message.\n */\n protected onActivateRequest(msg: Message): void {\n if (this.isAttached) {\n this.node.focus();\n }\n }\n\n /**\n * A message handler invoked on an `'update-request'` message.\n */\n protected onUpdateRequest(msg: Message): void {\n let items = this._items;\n let renderer = this.renderer;\n let activeIndex = this._activeIndex;\n let collapsedFlags = Private.computeCollapsed(items);\n let content = new Array(items.length);\n for (let i = 0, n = items.length; i < n; ++i) {\n let item = items[i];\n let active = i === activeIndex;\n let collapsed = collapsedFlags[i];\n content[i] = renderer.renderItem({\n item,\n active,\n collapsed,\n onfocus: () => {\n this.activeIndex = i;\n }\n });\n }\n VirtualDOM.render(content, this.contentNode);\n }\n\n /**\n * A message handler invoked on a `'close-request'` message.\n */\n protected onCloseRequest(msg: Message): void {\n // Cancel the pending timers.\n this._cancelOpenTimer();\n this._cancelCloseTimer();\n\n // Reset the active index.\n this.activeIndex = -1;\n\n // Close any open child menu.\n let childMenu = this._childMenu;\n if (childMenu) {\n this._childIndex = -1;\n this._childMenu = null;\n childMenu._parentMenu = null;\n childMenu.close();\n }\n\n // Remove this menu from its parent and activate the parent.\n let parentMenu = this._parentMenu;\n if (parentMenu) {\n this._parentMenu = null;\n parentMenu._childIndex = -1;\n parentMenu._childMenu = null;\n parentMenu.activate();\n }\n\n // Emit the `aboutToClose` signal if the menu is attached.\n if (this.isAttached) {\n this._aboutToClose.emit(undefined);\n }\n\n // Finish closing the menu.\n super.onCloseRequest(msg);\n }\n\n /**\n * Handle the `'keydown'` event for the menu.\n *\n * #### Notes\n * This listener is attached to the menu node.\n */\n private _evtKeyDown(event: KeyboardEvent): void {\n // A menu handles all keydown events.\n event.preventDefault();\n event.stopPropagation();\n\n // Fetch the key code for the event.\n let kc = event.keyCode;\n\n // Enter\n if (kc === 13) {\n this.triggerActiveItem();\n return;\n }\n\n // Escape\n if (kc === 27) {\n this.close();\n return;\n }\n\n // Left Arrow\n if (kc === 37) {\n if (this._parentMenu) {\n this.close();\n } else {\n this._menuRequested.emit('previous');\n }\n return;\n }\n\n // Up Arrow\n if (kc === 38) {\n this.activatePreviousItem();\n return;\n }\n\n // Right Arrow\n if (kc === 39) {\n let item = this.activeItem;\n if (item && item.type === 'submenu') {\n this.triggerActiveItem();\n } else {\n this.rootMenu._menuRequested.emit('next');\n }\n return;\n }\n\n // Down Arrow\n if (kc === 40) {\n this.activateNextItem();\n return;\n }\n\n // Get the pressed key character.\n let key = getKeyboardLayout().keyForKeydownEvent(event);\n\n // Bail if the key is not valid.\n if (!key) {\n return;\n }\n\n // Search for the next best matching mnemonic item.\n let start = this._activeIndex + 1;\n let result = Private.findMnemonic(this._items, key, start);\n\n // Handle the requested mnemonic based on the search results.\n // If exactly one mnemonic is matched, that item is triggered.\n // Otherwise, the next mnemonic is activated if available,\n // followed by the auto mnemonic if available.\n if (result.index !== -1 && !result.multiple) {\n this.activeIndex = result.index;\n this.triggerActiveItem();\n } else if (result.index !== -1) {\n this.activeIndex = result.index;\n } else if (result.auto !== -1) {\n this.activeIndex = result.auto;\n }\n }\n\n /**\n * Handle the `'mouseup'` event for the menu.\n *\n * #### Notes\n * This listener is attached to the menu node.\n */\n private _evtMouseUp(event: MouseEvent): void {\n if (event.button !== 0) {\n return;\n }\n event.preventDefault();\n event.stopPropagation();\n this.triggerActiveItem();\n }\n\n /**\n * Handle the `'mousemove'` event for the menu.\n *\n * #### Notes\n * This listener is attached to the menu node.\n */\n private _evtMouseMove(event: MouseEvent): void {\n // Hit test the item nodes for the item under the mouse.\n let index = ArrayExt.findFirstIndex(this.contentNode.children, node => {\n return ElementExt.hitTest(node, event.clientX, event.clientY);\n });\n\n // Bail early if the mouse is already over the active index.\n if (index === this._activeIndex) {\n return;\n }\n\n // Update and coerce the active index.\n this.activeIndex = index;\n index = this.activeIndex;\n\n // If the index is the current child index, cancel the timers.\n if (index === this._childIndex) {\n this._cancelOpenTimer();\n this._cancelCloseTimer();\n return;\n }\n\n // If a child menu is currently open, start the close timer.\n if (this._childIndex !== -1) {\n this._startCloseTimer();\n }\n\n // Cancel the open timer to give a full delay for opening.\n this._cancelOpenTimer();\n\n // Bail if the active item is not a valid submenu item.\n let item = this.activeItem;\n if (!item || item.type !== 'submenu' || !item.submenu) {\n return;\n }\n\n // Start the open timer to open the active item submenu.\n this._startOpenTimer();\n }\n\n /**\n * Handle the `'mouseenter'` event for the menu.\n *\n * #### Notes\n * This listener is attached to the menu node.\n */\n private _evtMouseEnter(event: MouseEvent): void {\n // Synchronize the active ancestor items.\n for (let menu = this._parentMenu; menu; menu = menu._parentMenu) {\n menu._cancelOpenTimer();\n menu._cancelCloseTimer();\n menu.activeIndex = menu._childIndex;\n }\n }\n\n /**\n * Handle the `'mouseleave'` event for the menu.\n *\n * #### Notes\n * This listener is attached to the menu node.\n */\n private _evtMouseLeave(event: MouseEvent): void {\n // Cancel any pending submenu opening.\n this._cancelOpenTimer();\n\n // If there is no open child menu, just reset the active index.\n if (!this._childMenu) {\n this.activeIndex = -1;\n return;\n }\n\n // If the mouse is over the child menu, cancel the close timer.\n let { clientX, clientY } = event;\n if (ElementExt.hitTest(this._childMenu.node, clientX, clientY)) {\n this._cancelCloseTimer();\n return;\n }\n\n // Otherwise, reset the active index and start the close timer.\n this.activeIndex = -1;\n this._startCloseTimer();\n }\n\n /**\n * Handle the `'mousedown'` event for the menu.\n *\n * #### Notes\n * This listener is attached to the document node.\n */\n private _evtMouseDown(event: MouseEvent): void {\n // Bail if the menu is not a root menu.\n if (this._parentMenu) {\n return;\n }\n\n // The mouse button which is pressed is irrelevant. If the press\n // is not on a menu, the entire hierarchy is closed and the event\n // is allowed to propagate. This allows other code to act on the\n // event, such as focusing the clicked element.\n if (Private.hitTestMenus(this, event.clientX, event.clientY)) {\n event.preventDefault();\n event.stopPropagation();\n } else {\n this.close();\n }\n }\n\n /**\n * Open the child menu at the active index immediately.\n *\n * If a different child menu is already open, it will be closed,\n * even if the active item is not a valid submenu.\n */\n private _openChildMenu(activateFirst = false): void {\n // If the item is not a valid submenu, close the child menu.\n let item = this.activeItem;\n if (!item || item.type !== 'submenu' || !item.submenu) {\n this._closeChildMenu();\n return;\n }\n\n // Do nothing if the child menu will not change.\n let submenu = item.submenu;\n if (submenu === this._childMenu) {\n return;\n }\n\n // Prior to any DOM modifications save window data\n Menu.saveWindowData();\n\n // Ensure the current child menu is closed.\n this._closeChildMenu();\n\n // Update the private child state.\n this._childMenu = submenu;\n this._childIndex = this._activeIndex;\n\n // Set the parent menu reference for the child.\n submenu._parentMenu = this;\n\n // Ensure the menu is updated and lookup the item node.\n MessageLoop.sendMessage(this, Widget.Msg.UpdateRequest);\n let itemNode = this.contentNode.children[this._activeIndex];\n\n // Open the submenu at the active node.\n Private.openSubmenu(submenu, itemNode as HTMLElement);\n\n // Activate the first item if desired.\n if (activateFirst) {\n submenu.activeIndex = -1;\n submenu.activateNextItem();\n }\n\n // Activate the child menu.\n submenu.activate();\n }\n\n /**\n * Close the child menu immediately.\n *\n * This is a no-op if a child menu is not open.\n */\n private _closeChildMenu(): void {\n if (this._childMenu) {\n this._childMenu.close();\n }\n }\n\n /**\n * Start the open timer, unless it is already pending.\n */\n private _startOpenTimer(): void {\n if (this._openTimerID === 0) {\n this._openTimerID = window.setTimeout(() => {\n this._openTimerID = 0;\n this._openChildMenu();\n }, Private.TIMER_DELAY);\n }\n }\n\n /**\n * Start the close timer, unless it is already pending.\n */\n private _startCloseTimer(): void {\n if (this._closeTimerID === 0) {\n this._closeTimerID = window.setTimeout(() => {\n this._closeTimerID = 0;\n this._closeChildMenu();\n }, Private.TIMER_DELAY);\n }\n }\n\n /**\n * Cancel the open timer, if the timer is pending.\n */\n private _cancelOpenTimer(): void {\n if (this._openTimerID !== 0) {\n clearTimeout(this._openTimerID);\n this._openTimerID = 0;\n }\n }\n\n /**\n * Cancel the close timer, if the timer is pending.\n */\n private _cancelCloseTimer(): void {\n if (this._closeTimerID !== 0) {\n clearTimeout(this._closeTimerID);\n this._closeTimerID = 0;\n }\n }\n\n /**\n * Save window data used for menu positioning in transient cache.\n *\n * In order to avoid layout trashing it is recommended to invoke this\n * method immediately prior to opening the menu and any DOM modifications\n * (like closing previously visible menu, or adding a class to menu widget).\n *\n * The transient cache will be released upon `open()` call.\n */\n static saveWindowData(): void {\n Private.saveWindowData();\n }\n\n private _childIndex = -1;\n private _activeIndex = -1;\n private _openTimerID = 0;\n private _closeTimerID = 0;\n private _items: Menu.IItem[] = [];\n private _childMenu: Menu | null = null;\n private _parentMenu: Menu | null = null;\n private _aboutToClose = new Signal(this);\n private _menuRequested = new Signal(this);\n}\n\n/**\n * The namespace for the `Menu` class statics.\n */\nexport namespace Menu {\n /**\n * An options object for creating a menu.\n */\n export interface IOptions {\n /**\n * The command registry for use with the menu.\n */\n commands: CommandRegistry;\n\n /**\n * A custom renderer for use with the menu.\n *\n * The default is a shared renderer instance.\n */\n renderer?: IRenderer;\n }\n\n /**\n * An options object for the `open` method on a menu.\n */\n export interface IOpenOptions {\n /**\n * Whether to force the X position of the menu.\n *\n * Setting to `true` will disable the logic which repositions the\n * X coordinate of the menu if it will not fit entirely on screen.\n *\n * The default is `false`.\n */\n forceX?: boolean;\n\n /**\n * Whether to force the Y position of the menu.\n *\n * Setting to `true` will disable the logic which repositions the\n * Y coordinate of the menu if it will not fit entirely on screen.\n *\n * The default is `false`.\n */\n forceY?: boolean;\n }\n\n /**\n * A type alias for a menu item type.\n */\n export type ItemType = 'command' | 'submenu' | 'separator';\n\n /**\n * An options object for creating a menu item.\n */\n export interface IItemOptions {\n /**\n * The type of the menu item.\n *\n * The default value is `'command'`.\n */\n type?: ItemType;\n\n /**\n * The command to execute when the item is triggered.\n *\n * The default value is an empty string.\n */\n command?: string;\n\n /**\n * The arguments for the command.\n *\n * The default value is an empty object.\n */\n args?: ReadonlyJSONObject;\n\n /**\n * The submenu for a `'submenu'` type item.\n *\n * The default value is `null`.\n */\n submenu?: Menu | null;\n }\n\n /**\n * An object which represents a menu item.\n *\n * #### Notes\n * Item objects are created automatically by a menu.\n */\n export interface IItem {\n /**\n * The type of the menu item.\n */\n readonly type: ItemType;\n\n /**\n * The command to execute when the item is triggered.\n */\n readonly command: string;\n\n /**\n * The arguments for the command.\n */\n readonly args: ReadonlyJSONObject;\n\n /**\n * The submenu for a `'submenu'` type item.\n */\n readonly submenu: Menu | null;\n\n /**\n * The display label for the menu item.\n */\n readonly label: string;\n\n /**\n * The mnemonic index for the menu item.\n */\n readonly mnemonic: number;\n\n /**\n * The icon renderer for the menu item.\n */\n readonly icon:\n | VirtualElement.IRenderer\n | undefined\n /* */\n | string /* */;\n\n /**\n * The icon class for the menu item.\n */\n readonly iconClass: string;\n\n /**\n * The icon label for the menu item.\n */\n readonly iconLabel: string;\n\n /**\n * The display caption for the menu item.\n */\n readonly caption: string;\n\n /**\n * The extra class name for the menu item.\n */\n readonly className: string;\n\n /**\n * The dataset for the menu item.\n */\n readonly dataset: CommandRegistry.Dataset;\n\n /**\n * Whether the menu item is enabled.\n */\n readonly isEnabled: boolean;\n\n /**\n * Whether the menu item is toggled.\n */\n readonly isToggled: boolean;\n\n /**\n * Whether the menu item is visible.\n */\n readonly isVisible: boolean;\n\n /**\n * The key binding for the menu item.\n */\n readonly keyBinding: CommandRegistry.IKeyBinding | null;\n }\n\n /**\n * An object which holds the data to render a menu item.\n */\n export interface IRenderData {\n /**\n * The item to be rendered.\n */\n readonly item: IItem;\n\n /**\n * Whether the item is the active item.\n */\n readonly active: boolean;\n\n /**\n * Whether the item should be collapsed.\n */\n readonly collapsed: boolean;\n\n /**\n * Handler for when element is in focus.\n */\n readonly onfocus?: () => void;\n }\n\n /**\n * A renderer for use with a menu.\n */\n export interface IRenderer {\n /**\n * Render the virtual element for a menu item.\n *\n * @param data - The data to use for rendering the item.\n *\n * @returns A virtual element representing the item.\n */\n renderItem(data: IRenderData): VirtualElement;\n }\n\n /**\n * The default implementation of `IRenderer`.\n *\n * #### Notes\n * Subclasses are free to reimplement rendering methods as needed.\n */\n export class Renderer implements IRenderer {\n /**\n * Render the virtual element for a menu item.\n *\n * @param data - The data to use for rendering the item.\n *\n * @returns A virtual element representing the item.\n */\n renderItem(data: IRenderData): VirtualElement {\n let className = this.createItemClass(data);\n let dataset = this.createItemDataset(data);\n let aria = this.createItemARIA(data);\n return h.li(\n {\n className,\n dataset,\n tabindex: '0',\n onfocus: data.onfocus,\n ...aria\n },\n this.renderIcon(data),\n this.renderLabel(data),\n this.renderShortcut(data),\n this.renderSubmenu(data)\n );\n }\n\n /**\n * Render the icon element for a menu item.\n *\n * @param data - The data to use for rendering the icon.\n *\n * @returns A virtual element representing the item icon.\n */\n renderIcon(data: IRenderData): VirtualElement {\n let className = this.createIconClass(data);\n\n /* */\n if (typeof data.item.icon === 'string') {\n return h.div({ className }, data.item.iconLabel);\n }\n /* */\n\n // if data.item.icon is undefined, it will be ignored\n return h.div({ className }, data.item.icon!, data.item.iconLabel);\n }\n\n /**\n * Render the label element for a menu item.\n *\n * @param data - The data to use for rendering the label.\n *\n * @returns A virtual element representing the item label.\n */\n renderLabel(data: IRenderData): VirtualElement {\n let content = this.formatLabel(data);\n return h.div(\n {\n className:\n 'lm-Menu-itemLabel' +\n /* */\n ' p-Menu-itemLabel'\n /* */\n },\n content\n );\n }\n\n /**\n * Render the shortcut element for a menu item.\n *\n * @param data - The data to use for rendering the shortcut.\n *\n * @returns A virtual element representing the item shortcut.\n */\n renderShortcut(data: IRenderData): VirtualElement {\n let content = this.formatShortcut(data);\n return h.div(\n {\n className:\n 'lm-Menu-itemShortcut' +\n /* */\n ' p-Menu-itemShortcut'\n /* */\n },\n content\n );\n }\n\n /**\n * Render the submenu icon element for a menu item.\n *\n * @param data - The data to use for rendering the submenu icon.\n *\n * @returns A virtual element representing the submenu icon.\n */\n renderSubmenu(data: IRenderData): VirtualElement {\n return h.div({\n className:\n 'lm-Menu-itemSubmenuIcon' +\n /* */\n ' p-Menu-itemSubmenuIcon'\n /* */\n });\n }\n\n /**\n * Create the class name for the menu item.\n *\n * @param data - The data to use for the class name.\n *\n * @returns The full class name for the menu item.\n */\n createItemClass(data: IRenderData): string {\n // Setup the initial class name.\n let name = 'lm-Menu-item';\n /* */\n name += ' p-Menu-item';\n /* */\n\n // Add the boolean state classes.\n if (!data.item.isEnabled) {\n name += ' lm-mod-disabled';\n /* */\n name += ' p-mod-disabled';\n /* */\n }\n if (data.item.isToggled) {\n name += ' lm-mod-toggled';\n /* */\n name += ' p-mod-toggled';\n /* */\n }\n if (!data.item.isVisible) {\n name += ' lm-mod-hidden';\n /* */\n name += ' p-mod-hidden';\n /* */\n }\n if (data.active) {\n name += ' lm-mod-active';\n /* */\n name += ' p-mod-active';\n /* */\n }\n if (data.collapsed) {\n name += ' lm-mod-collapsed';\n /* */\n name += ' p-mod-collapsed';\n /* */\n }\n\n // Add the extra class.\n let extra = data.item.className;\n if (extra) {\n name += ` ${extra}`;\n }\n\n // Return the complete class name.\n return name;\n }\n\n /**\n * Create the dataset for the menu item.\n *\n * @param data - The data to use for creating the dataset.\n *\n * @returns The dataset for the menu item.\n */\n createItemDataset(data: IRenderData): ElementDataset {\n let result: ElementDataset;\n let { type, command, dataset } = data.item;\n if (type === 'command') {\n result = { ...dataset, type, command };\n } else {\n result = { ...dataset, type };\n }\n return result;\n }\n\n /**\n * Create the class name for the menu item icon.\n *\n * @param data - The data to use for the class name.\n *\n * @returns The full class name for the item icon.\n */\n createIconClass(data: IRenderData): string {\n let name = 'lm-Menu-itemIcon';\n /* */\n name += ' p-Menu-itemIcon';\n /* */\n let extra = data.item.iconClass;\n return extra ? `${name} ${extra}` : name;\n }\n\n /**\n * Create the aria attributes for menu item.\n *\n * @param data - The data to use for the aria attributes.\n *\n * @returns The aria attributes object for the item.\n */\n createItemARIA(data: IRenderData): ElementARIAAttrs {\n let aria: { [T in ARIAAttrNames]?: string } = {};\n switch (data.item.type) {\n case 'separator':\n aria.role = 'presentation';\n break;\n case 'submenu':\n aria['aria-haspopup'] = 'true';\n if (!data.item.isEnabled) {\n aria['aria-disabled'] = 'true';\n }\n break;\n default:\n if (!data.item.isEnabled) {\n aria['aria-disabled'] = 'true';\n }\n aria.role = 'menuitem';\n }\n return aria;\n }\n\n /**\n * Create the render content for the label node.\n *\n * @param data - The data to use for the label content.\n *\n * @returns The content to add to the label node.\n */\n formatLabel(data: IRenderData): h.Child {\n // Fetch the label text and mnemonic index.\n let { label, mnemonic } = data.item;\n\n // If the index is out of range, do not modify the label.\n if (mnemonic < 0 || mnemonic >= label.length) {\n return label;\n }\n\n // Split the label into parts.\n let prefix = label.slice(0, mnemonic);\n let suffix = label.slice(mnemonic + 1);\n let char = label[mnemonic];\n\n // Wrap the mnemonic character in a span.\n let span = h.span(\n {\n className:\n 'lm-Menu-itemMnemonic' +\n /* */\n ' p-Menu-itemMnemonic'\n /* */\n },\n char\n );\n\n // Return the content parts.\n return [prefix, span, suffix];\n }\n\n /**\n * Create the render content for the shortcut node.\n *\n * @param data - The data to use for the shortcut content.\n *\n * @returns The content to add to the shortcut node.\n */\n formatShortcut(data: IRenderData): h.Child {\n let kb = data.item.keyBinding;\n return kb ? CommandRegistry.formatKeystroke(kb.keys) : null;\n }\n }\n\n /**\n * The default `Renderer` instance.\n */\n export const defaultRenderer = new Renderer();\n}\n\n/**\n * The namespace for the module implementation details.\n */\nnamespace Private {\n /**\n * The ms delay for opening and closing a submenu.\n */\n export const TIMER_DELAY = 300;\n\n /**\n * The horizontal pixel overlap for an open submenu.\n */\n export const SUBMENU_OVERLAP = 3;\n\n let transientWindowDataCache: IWindowData | null = null;\n let transientCacheCounter: number = 0;\n\n function getWindowData(): IWindowData {\n // if transient cache is in use, take one from it\n if (transientCacheCounter > 0) {\n transientCacheCounter--;\n return transientWindowDataCache!;\n }\n return _getWindowData();\n }\n\n /**\n * Store window data in transient cache.\n *\n * The transient cache will be released upon `getWindowData()` call.\n * If this function is called multiple times, the cache will be\n * retained until as many calls to `getWindowData()` were made.\n *\n * Note: should be called before any DOM modifications.\n */\n export function saveWindowData(): void {\n transientWindowDataCache = _getWindowData();\n transientCacheCounter++;\n }\n\n /**\n * Create the DOM node for a menu.\n */\n export function createNode(): HTMLDivElement {\n let node = document.createElement('div');\n let content = document.createElement('ul');\n content.className = 'lm-Menu-content';\n /* */\n content.classList.add('p-Menu-content');\n /* */\n node.appendChild(content);\n content.setAttribute('role', 'menu');\n node.tabIndex = 0;\n return node;\n }\n\n /**\n * Test whether a menu item can be activated.\n */\n export function canActivate(item: Menu.IItem): boolean {\n return item.type !== 'separator' && item.isEnabled && item.isVisible;\n }\n\n /**\n * Create a new menu item for an owner menu.\n */\n export function createItem(\n owner: Menu,\n options: Menu.IItemOptions\n ): Menu.IItem {\n return new MenuItem(owner.commands, options);\n }\n\n /**\n * Hit test a menu hierarchy starting at the given root.\n */\n export function hitTestMenus(menu: Menu, x: number, y: number): boolean {\n for (let temp: Menu | null = menu; temp; temp = temp.childMenu) {\n if (ElementExt.hitTest(temp.node, x, y)) {\n return true;\n }\n }\n return false;\n }\n\n /**\n * Compute which extra separator items should be collapsed.\n */\n export function computeCollapsed(\n items: ReadonlyArray\n ): boolean[] {\n // Allocate the return array and fill it with `false`.\n let result = new Array(items.length);\n ArrayExt.fill(result, false);\n\n // Collapse the leading separators.\n let k1 = 0;\n let n = items.length;\n for (; k1 < n; ++k1) {\n let item = items[k1];\n if (!item.isVisible) {\n continue;\n }\n if (item.type !== 'separator') {\n break;\n }\n result[k1] = true;\n }\n\n // Hide the trailing separators.\n let k2 = n - 1;\n for (; k2 >= 0; --k2) {\n let item = items[k2];\n if (!item.isVisible) {\n continue;\n }\n if (item.type !== 'separator') {\n break;\n }\n result[k2] = true;\n }\n\n // Hide the remaining consecutive separators.\n let hide = false;\n while (++k1 < k2) {\n let item = items[k1];\n if (!item.isVisible) {\n continue;\n }\n if (item.type !== 'separator') {\n hide = false;\n } else if (hide) {\n result[k1] = true;\n } else {\n hide = true;\n }\n }\n\n // Return the resulting flags.\n return result;\n }\n\n function _getWindowData(): IWindowData {\n return {\n pageXOffset: window.pageXOffset,\n pageYOffset: window.pageYOffset,\n clientWidth: document.documentElement.clientWidth,\n clientHeight: document.documentElement.clientHeight\n };\n }\n\n /**\n * Open a menu as a root menu at the target location.\n */\n export function openRootMenu(\n menu: Menu,\n x: number,\n y: number,\n forceX: boolean,\n forceY: boolean\n ): void {\n // Get the current position and size of the main viewport.\n const windowData = getWindowData();\n let px = windowData.pageXOffset;\n let py = windowData.pageYOffset;\n let cw = windowData.clientWidth;\n let ch = windowData.clientHeight;\n\n // Ensure the menu is updated before attaching and measuring.\n MessageLoop.sendMessage(menu, Widget.Msg.UpdateRequest);\n\n // Compute the maximum allowed height for the menu.\n let maxHeight = ch - (forceY ? y : 0);\n\n // Fetch common variables.\n let node = menu.node;\n let style = node.style;\n\n // Clear the menu geometry and prepare it for measuring.\n style.opacity = '0';\n style.maxHeight = `${maxHeight}px`;\n\n // Attach the menu to the document.\n Widget.attach(menu, document.body);\n\n // Measure the size of the menu.\n let { width, height } = node.getBoundingClientRect();\n\n // Adjust the X position of the menu to fit on-screen.\n if (!forceX && x + width > px + cw) {\n x = px + cw - width;\n }\n\n // Adjust the Y position of the menu to fit on-screen.\n if (!forceY && y + height > py + ch) {\n if (y > py + ch) {\n y = py + ch - height;\n } else {\n y = y - height;\n }\n }\n\n // Update the position of the menu to the computed position.\n style.transform = `translate(${Math.max(0, x)}px, ${Math.max(0, y)}px`;\n\n // Finally, make the menu visible on the screen.\n style.opacity = '1';\n }\n\n /**\n * Open a menu as a submenu using an item node for positioning.\n */\n export function openSubmenu(submenu: Menu, itemNode: HTMLElement): void {\n // Get the current position and size of the main viewport.\n const windowData = getWindowData();\n let px = windowData.pageXOffset;\n let py = windowData.pageYOffset;\n let cw = windowData.clientWidth;\n let ch = windowData.clientHeight;\n\n // Ensure the menu is updated before opening.\n MessageLoop.sendMessage(submenu, Widget.Msg.UpdateRequest);\n\n // Compute the maximum allowed height for the menu.\n let maxHeight = ch;\n\n // Fetch common variables.\n let node = submenu.node;\n let style = node.style;\n\n // Clear the menu geometry and prepare it for measuring.\n style.opacity = '0';\n style.maxHeight = `${maxHeight}px`;\n\n // Attach the menu to the document.\n Widget.attach(submenu, document.body);\n\n // Measure the size of the menu.\n let { width, height } = node.getBoundingClientRect();\n\n // Compute the box sizing for the menu.\n let box = ElementExt.boxSizing(submenu.node);\n\n // Get the bounding rect for the target item node.\n let itemRect = itemNode.getBoundingClientRect();\n\n // Compute the target X position.\n let x = itemRect.right - SUBMENU_OVERLAP;\n\n // Adjust the X position to fit on the screen.\n if (x + width > px + cw) {\n x = itemRect.left + SUBMENU_OVERLAP - width;\n }\n\n // Compute the target Y position.\n let y = itemRect.top - box.borderTop - box.paddingTop;\n\n // Adjust the Y position to fit on the screen.\n if (y + height > py + ch) {\n y = itemRect.bottom + box.borderBottom + box.paddingBottom - height;\n }\n\n // Update the position of the menu to the computed position.\n style.transform = `translate(${Math.max(0, x)}px, ${Math.max(0, y)}px`;\n\n // Finally, make the menu visible on the screen.\n style.opacity = '1';\n }\n\n /**\n * The results of a mnemonic search.\n */\n export interface IMnemonicResult {\n /**\n * The index of the first matching mnemonic item, or `-1`.\n */\n index: number;\n\n /**\n * Whether multiple mnemonic items matched.\n */\n multiple: boolean;\n\n /**\n * The index of the first auto matched non-mnemonic item.\n */\n auto: number;\n }\n\n /**\n * Find the best matching mnemonic item.\n *\n * The search starts at the given index and wraps around.\n */\n export function findMnemonic(\n items: ReadonlyArray,\n key: string,\n start: number\n ): IMnemonicResult {\n // Setup the result variables.\n let index = -1;\n let auto = -1;\n let multiple = false;\n\n // Normalize the key to upper case.\n let upperKey = key.toUpperCase();\n\n // Search the items from the given start index.\n for (let i = 0, n = items.length; i < n; ++i) {\n // Compute the wrapped index.\n let k = (i + start) % n;\n\n // Lookup the item\n let item = items[k];\n\n // Ignore items which cannot be activated.\n if (!canActivate(item)) {\n continue;\n }\n\n // Ignore items with an empty label.\n let label = item.label;\n if (label.length === 0) {\n continue;\n }\n\n // Lookup the mnemonic index for the label.\n let mn = item.mnemonic;\n\n // Handle a valid mnemonic index.\n if (mn >= 0 && mn < label.length) {\n if (label[mn].toUpperCase() === upperKey) {\n if (index === -1) {\n index = k;\n } else {\n multiple = true;\n }\n }\n continue;\n }\n\n // Finally, handle the auto index if possible.\n if (auto === -1 && label[0].toUpperCase() === upperKey) {\n auto = k;\n }\n }\n\n // Return the search results.\n return { index, multiple, auto };\n }\n\n /**\n * A concrete implementation of `Menu.IItem`.\n */\n class MenuItem implements Menu.IItem {\n /**\n * Construct a new menu item.\n */\n constructor(commands: CommandRegistry, options: Menu.IItemOptions) {\n this._commands = commands;\n this.type = options.type || 'command';\n this.command = options.command || '';\n this.args = options.args || JSONExt.emptyObject;\n this.submenu = options.submenu || null;\n }\n\n /**\n * The type of the menu item.\n */\n readonly type: Menu.ItemType;\n\n /**\n * The command to execute when the item is triggered.\n */\n readonly command: string;\n\n /**\n * The arguments for the command.\n */\n readonly args: ReadonlyJSONObject;\n\n /**\n * The submenu for a `'submenu'` type item.\n */\n readonly submenu: Menu | null;\n\n /**\n * The display label for the menu item.\n */\n get label(): string {\n if (this.type === 'command') {\n return this._commands.label(this.command, this.args);\n }\n if (this.type === 'submenu' && this.submenu) {\n return this.submenu.title.label;\n }\n return '';\n }\n\n /**\n * The mnemonic index for the menu item.\n */\n get mnemonic(): number {\n if (this.type === 'command') {\n return this._commands.mnemonic(this.command, this.args);\n }\n if (this.type === 'submenu' && this.submenu) {\n return this.submenu.title.mnemonic;\n }\n return -1;\n }\n\n /**\n * The icon renderer for the menu item.\n */\n get icon():\n | VirtualElement.IRenderer\n | undefined\n /* */\n | string /* */ {\n if (this.type === 'command') {\n return this._commands.icon(this.command, this.args);\n }\n if (this.type === 'submenu' && this.submenu) {\n return this.submenu.title.icon;\n }\n\n /* */\n // alias to icon class if not otherwise defined\n return this.iconClass;\n /* */\n\n /* \n return undefined;\n */\n }\n\n /**\n * The icon class for the menu item.\n */\n get iconClass(): string {\n if (this.type === 'command') {\n return this._commands.iconClass(this.command, this.args);\n }\n if (this.type === 'submenu' && this.submenu) {\n return this.submenu.title.iconClass;\n }\n return '';\n }\n\n /**\n * The icon label for the menu item.\n */\n get iconLabel(): string {\n if (this.type === 'command') {\n return this._commands.iconLabel(this.command, this.args);\n }\n if (this.type === 'submenu' && this.submenu) {\n return this.submenu.title.iconLabel;\n }\n return '';\n }\n\n /**\n * The display caption for the menu item.\n */\n get caption(): string {\n if (this.type === 'command') {\n return this._commands.caption(this.command, this.args);\n }\n if (this.type === 'submenu' && this.submenu) {\n return this.submenu.title.caption;\n }\n return '';\n }\n\n /**\n * The extra class name for the menu item.\n */\n get className(): string {\n if (this.type === 'command') {\n return this._commands.className(this.command, this.args);\n }\n if (this.type === 'submenu' && this.submenu) {\n return this.submenu.title.className;\n }\n return '';\n }\n\n /**\n * The dataset for the menu item.\n */\n get dataset(): CommandRegistry.Dataset {\n if (this.type === 'command') {\n return this._commands.dataset(this.command, this.args);\n }\n if (this.type === 'submenu' && this.submenu) {\n return this.submenu.title.dataset;\n }\n return {};\n }\n\n /**\n * Whether the menu item is enabled.\n */\n get isEnabled(): boolean {\n if (this.type === 'command') {\n return this._commands.isEnabled(this.command, this.args);\n }\n if (this.type === 'submenu') {\n return this.submenu !== null;\n }\n return true;\n }\n\n /**\n * Whether the menu item is toggled.\n */\n get isToggled(): boolean {\n if (this.type === 'command') {\n return this._commands.isToggled(this.command, this.args);\n }\n return false;\n }\n\n /**\n * Whether the menu item is visible.\n */\n get isVisible(): boolean {\n if (this.type === 'command') {\n return this._commands.isVisible(this.command, this.args);\n }\n if (this.type === 'submenu') {\n return this.submenu !== null;\n }\n return true;\n }\n\n /**\n * The key binding for the menu item.\n */\n get keyBinding(): CommandRegistry.IKeyBinding | null {\n if (this.type === 'command') {\n let { command, args } = this;\n return (\n ArrayExt.findLastValue(this._commands.keyBindings, kb => {\n return kb.command === command && JSONExt.deepEqual(kb.args, args);\n }) || null\n );\n }\n return null;\n }\n\n private _commands: CommandRegistry;\n }\n}\n","// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n/*-----------------------------------------------------------------------------\n| Copyright (c) 2014-2017, PhosphorJS Contributors\n|\n| Distributed under the terms of the BSD 3-Clause License.\n|\n| The full license is in the file LICENSE, distributed with this software.\n|----------------------------------------------------------------------------*/\nimport { ArrayExt, each } from '@lumino/algorithm';\n\nimport { CommandRegistry } from '@lumino/commands';\n\nimport { DisposableDelegate, IDisposable } from '@lumino/disposable';\n\nimport { Selector } from '@lumino/domutils';\n\nimport { Menu } from './menu';\n\n/**\n * An object which implements a universal context menu.\n *\n * #### Notes\n * The items shown in the context menu are determined by CSS selector\n * matching against the DOM hierarchy at the site of the mouse click.\n * This is similar in concept to how keyboard shortcuts are matched\n * in the command registry.\n */\nexport class ContextMenu {\n /**\n * Construct a new context menu.\n *\n * @param options - The options for initializing the menu.\n */\n constructor(options: ContextMenu.IOptions) {\n const { groupByTarget, sortBySelector, ...others } = options;\n this.menu = new Menu(others);\n this._groupByTarget = groupByTarget !== false;\n this._sortBySelector = sortBySelector !== false;\n }\n\n /**\n * The menu widget which displays the matched context items.\n */\n readonly menu: Menu;\n\n /**\n * Add an item to the context menu.\n *\n * @param options - The options for creating the item.\n *\n * @returns A disposable which will remove the item from the menu.\n */\n addItem(options: ContextMenu.IItemOptions): IDisposable {\n // Create an item from the given options.\n let item = Private.createItem(options, this._idTick++);\n\n // Add the item to the internal array.\n this._items.push(item);\n\n // Return a disposable which will remove the item.\n return new DisposableDelegate(() => {\n ArrayExt.removeFirstOf(this._items, item);\n });\n }\n\n /**\n * Open the context menu in response to a `'contextmenu'` event.\n *\n * @param event - The `'contextmenu'` event of interest.\n *\n * @returns `true` if the menu was opened, or `false` if no items\n * matched the event and the menu was not opened.\n *\n * #### Notes\n * This method will populate the context menu with items which match\n * the propagation path of the event, then open the menu at the mouse\n * position indicated by the event.\n */\n open(event: MouseEvent): boolean {\n // Prior to any DOM modifications update the window data.\n Menu.saveWindowData();\n\n // Clear the current contents of the context menu.\n this.menu.clearItems();\n\n // Bail early if there are no items to match.\n if (this._items.length === 0) {\n return false;\n }\n\n // Find the matching items for the event.\n let items = Private.matchItems(\n this._items,\n event,\n this._groupByTarget,\n this._sortBySelector\n );\n\n // Bail if there are no matching items.\n if (!items || items.length === 0) {\n return false;\n }\n\n // Add the filtered items to the menu.\n each(items, item => {\n this.menu.addItem(item);\n });\n\n // Open the context menu at the current mouse position.\n this.menu.open(event.clientX, event.clientY);\n\n // Indicate success.\n return true;\n }\n\n private _groupByTarget: boolean = true;\n private _idTick = 0;\n private _items: Private.IItem[] = [];\n private _sortBySelector: boolean = true;\n}\n\n/**\n * The namespace for the `ContextMenu` class statics.\n */\nexport namespace ContextMenu {\n /**\n * An options object for initializing a context menu.\n */\n export interface IOptions {\n /**\n * The command registry to use with the context menu.\n */\n commands: CommandRegistry;\n\n /**\n * A custom renderer for use with the context menu.\n */\n renderer?: Menu.IRenderer;\n\n /**\n * Whether to sort by selector and rank or only rank.\n *\n * Default true.\n */\n sortBySelector?: boolean;\n\n /**\n * Whether to group items following the DOM hierarchy.\n *\n * Default true.\n *\n * #### Note\n * If true, when the mouse event occurs on element `span` within `div.top`,\n * the items matching `div.top` will be shown before the ones matching `body`.\n */\n groupByTarget?: boolean;\n }\n\n /**\n * An options object for creating a context menu item.\n */\n export interface IItemOptions extends Menu.IItemOptions {\n /**\n * The CSS selector for the context menu item.\n *\n * The context menu item will only be displayed in the context menu\n * when the selector matches a node on the propagation path of the\n * contextmenu event. This allows the menu item to be restricted to\n * user-defined contexts.\n *\n * The selector must not contain commas.\n */\n selector: string;\n\n /**\n * The rank for the item.\n *\n * The rank is used as a tie-breaker when ordering context menu\n * items for display. Items are sorted in the following order:\n * 1. Depth in the DOM tree (deeper is better)\n * 2. Selector specificity (higher is better)\n * 3. Rank (lower is better)\n * 4. Insertion order\n *\n * The default rank is `Infinity`.\n */\n rank?: number;\n }\n}\n\n/**\n * The namespace for the module implementation details.\n */\nnamespace Private {\n /**\n * A normalized item for a context menu.\n */\n export interface IItem extends Menu.IItemOptions {\n /**\n * The selector for the item.\n */\n selector: string;\n\n /**\n * The rank for the item.\n */\n rank: number;\n\n /**\n * The tie-breaking id for the item.\n */\n id: number;\n }\n\n /**\n * Create a normalized context menu item from an options object.\n */\n export function createItem(\n options: ContextMenu.IItemOptions,\n id: number\n ): IItem {\n let selector = validateSelector(options.selector);\n let rank = options.rank !== undefined ? options.rank : Infinity;\n return { ...options, selector, rank, id };\n }\n\n /**\n * Find the items which match a context menu event.\n *\n * The results are sorted by DOM level, specificity, and rank.\n */\n export function matchItems(\n items: IItem[],\n event: MouseEvent,\n groupByTarget: boolean,\n sortBySelector: boolean\n ): IItem[] | null {\n // Look up the target of the event.\n let target = event.target as Element | null;\n\n // Bail if there is no target.\n if (!target) {\n return null;\n }\n\n // Look up the current target of the event.\n let currentTarget = event.currentTarget as Element | null;\n\n // Bail if there is no current target.\n if (!currentTarget) {\n return null;\n }\n\n // There are some third party libraries that cause the `target` to\n // be detached from the DOM before lumino can process the event.\n // If that happens, search for a new target node by point. If that\n // node is still dangling, bail.\n if (!currentTarget.contains(target)) {\n target = document.elementFromPoint(event.clientX, event.clientY);\n if (!target || !currentTarget.contains(target)) {\n return null;\n }\n }\n\n // Set up the result array.\n let result: IItem[] = [];\n\n // Copy the items array to allow in-place modification.\n let availableItems: Array = items.slice();\n\n // Walk up the DOM hierarchy searching for matches.\n while (target !== null) {\n // Set up the match array for this DOM level.\n let matches: IItem[] = [];\n\n // Search the remaining items for matches.\n for (let i = 0, n = availableItems.length; i < n; ++i) {\n // Fetch the item.\n let item = availableItems[i];\n\n // Skip items which are already consumed.\n if (!item) {\n continue;\n }\n\n // Skip items which do not match the element.\n if (!Selector.matches(target, item.selector)) {\n continue;\n }\n\n // Add the matched item to the result for this DOM level.\n matches.push(item);\n\n // Mark the item as consumed.\n availableItems[i] = null;\n }\n\n // Sort the matches for this level and add them to the results.\n if (matches.length !== 0) {\n if (groupByTarget) {\n matches.sort(sortBySelector ? itemCmp : itemCmpRank);\n }\n result.push(...matches);\n }\n\n // Stop searching at the limits of the DOM range.\n if (target === currentTarget) {\n break;\n }\n\n // Step to the parent DOM level.\n target = target.parentElement;\n }\n\n if (!groupByTarget) {\n result.sort(sortBySelector ? itemCmp : itemCmpRank);\n }\n\n // Return the matched and sorted results.\n return result;\n }\n\n /**\n * Validate the selector for a menu item.\n *\n * This returns the validated selector, or throws if the selector is\n * invalid or contains commas.\n */\n function validateSelector(selector: string): string {\n if (selector.indexOf(',') !== -1) {\n throw new Error(`Selector cannot contain commas: ${selector}`);\n }\n if (!Selector.isValid(selector)) {\n throw new Error(`Invalid selector: ${selector}`);\n }\n return selector;\n }\n\n /**\n * A sort comparison function for a context menu item by ranks.\n */\n function itemCmpRank(a: IItem, b: IItem): number {\n // Sort based on rank.\n let r1 = a.rank;\n let r2 = b.rank;\n if (r1 !== r2) {\n return r1 < r2 ? -1 : 1; // Infinity-safe\n }\n\n // When all else fails, sort by item id.\n return a.id - b.id;\n }\n\n /**\n * A sort comparison function for a context menu item by selectors and ranks.\n */\n function itemCmp(a: IItem, b: IItem): number {\n // Sort first based on selector specificity.\n let s1 = Selector.calculateSpecificity(a.selector);\n let s2 = Selector.calculateSpecificity(b.selector);\n if (s1 !== s2) {\n return s2 - s1;\n }\n\n // If specificities are equal\n return itemCmpRank(a, b);\n }\n}\n","// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n/*-----------------------------------------------------------------------------\n| Copyright (c) 2014-2017, PhosphorJS Contributors\n|\n| Distributed under the terms of the BSD 3-Clause License.\n|\n| The full license is in the file LICENSE, distributed with this software.\n|----------------------------------------------------------------------------*/\nimport { ArrayExt, each } from '@lumino/algorithm';\n\nimport { IDisposable } from '@lumino/disposable';\n\nimport { ElementExt } from '@lumino/domutils';\n\nimport { Drag } from '@lumino/dragdrop';\n\nimport { Message, MessageLoop } from '@lumino/messaging';\n\nimport { ISignal, Signal } from '@lumino/signaling';\n\nimport {\n ElementARIAAttrs,\n ElementDataset,\n ElementInlineStyle,\n h,\n VirtualDOM,\n VirtualElement\n} from '@lumino/virtualdom';\n\nimport { Title } from './title';\n\nimport { Widget } from './widget';\n\n/**\n * A widget which displays titles as a single row or column of tabs.\n *\n * #### Notes\n * If CSS transforms are used to rotate nodes for vertically oriented\n * text, then tab dragging will not work correctly. The `tabsMovable`\n * property should be set to `false` when rotating nodes from CSS.\n */\nexport class TabBar extends Widget {\n /**\n * Construct a new tab bar.\n *\n * @param options - The options for initializing the tab bar.\n */\n constructor(options: TabBar.IOptions = {}) {\n super({ node: Private.createNode() });\n this.addClass('lm-TabBar');\n /* */\n this.addClass('p-TabBar');\n /* */\n this.contentNode.setAttribute('role', 'tablist');\n this.setFlag(Widget.Flag.DisallowLayout);\n this._document = options.document || document;\n this.tabsMovable = options.tabsMovable || false;\n this.titlesEditable = options.titlesEditable || false;\n this.allowDeselect = options.allowDeselect || false;\n this.addButtonEnabled = options.addButtonEnabled || false;\n this.insertBehavior = options.insertBehavior || 'select-tab-if-needed';\n this.name = options.name || '';\n this.orientation = options.orientation || 'horizontal';\n this.removeBehavior = options.removeBehavior || 'select-tab-after';\n this.renderer = options.renderer || TabBar.defaultRenderer;\n }\n\n /**\n * Dispose of the resources held by the widget.\n */\n dispose(): void {\n this._releaseMouse();\n this._titles.length = 0;\n this._previousTitle = null;\n super.dispose();\n }\n\n /**\n * A signal emitted when the current tab is changed.\n *\n * #### Notes\n * This signal is emitted when the currently selected tab is changed\n * either through user or programmatic interaction.\n *\n * Notably, this signal is not emitted when the index of the current\n * tab changes due to tabs being inserted, removed, or moved. It is\n * only emitted when the actual current tab node is changed.\n */\n get currentChanged(): ISignal> {\n return this._currentChanged;\n }\n\n /**\n * A signal emitted when a tab is moved by the user.\n *\n * #### Notes\n * This signal is emitted when a tab is moved by user interaction.\n *\n * This signal is not emitted when a tab is moved programmatically.\n */\n get tabMoved(): ISignal> {\n return this._tabMoved;\n }\n\n /**\n * A signal emitted when a tab is clicked by the user.\n *\n * #### Notes\n * If the clicked tab is not the current tab, the clicked tab will be\n * made current and the `currentChanged` signal will be emitted first.\n *\n * This signal is emitted even if the clicked tab is the current tab.\n */\n get tabActivateRequested(): ISignal<\n this,\n TabBar.ITabActivateRequestedArgs\n > {\n return this._tabActivateRequested;\n }\n\n /**\n * A signal emitted when the tab bar add button is clicked.\n */\n get addRequested(): ISignal {\n return this._addRequested;\n }\n\n /**\n * A signal emitted when a tab close icon is clicked.\n *\n * #### Notes\n * This signal is not emitted unless the tab title is `closable`.\n */\n get tabCloseRequested(): ISignal> {\n return this._tabCloseRequested;\n }\n\n /**\n * A signal emitted when a tab is dragged beyond the detach threshold.\n *\n * #### Notes\n * This signal is emitted when the user drags a tab with the mouse,\n * and mouse is dragged beyond the detach threshold.\n *\n * The consumer of the signal should call `releaseMouse` and remove\n * the tab in order to complete the detach.\n *\n * This signal is only emitted once per drag cycle.\n */\n get tabDetachRequested(): ISignal> {\n return this._tabDetachRequested;\n }\n\n /**\n * The renderer used by the tab bar.\n */\n readonly renderer: TabBar.IRenderer;\n\n /**\n * The document to use with the tab bar.\n *\n * The default is the global `document` instance.\n */\n get document(): Document | ShadowRoot {\n return this._document;\n }\n\n /**\n * Whether the tabs are movable by the user.\n *\n * #### Notes\n * Tabs can always be moved programmatically.\n */\n tabsMovable: boolean;\n\n /**\n * Whether the titles can be user-edited.\n *\n */\n get titlesEditable(): boolean {\n return this._titlesEditable;\n }\n\n /**\n * Set whether titles can be user edited.\n *\n */\n set titlesEditable(value: boolean) {\n this._titlesEditable = value;\n }\n\n /**\n * Whether a tab can be deselected by the user.\n *\n * #### Notes\n * Tabs can be always be deselected programmatically.\n */\n allowDeselect: boolean;\n\n /**\n * The selection behavior when inserting a tab.\n */\n insertBehavior: TabBar.InsertBehavior;\n\n /**\n * The selection behavior when removing a tab.\n */\n removeBehavior: TabBar.RemoveBehavior;\n\n /**\n * Get the currently selected title.\n *\n * #### Notes\n * This will be `null` if no tab is selected.\n */\n get currentTitle(): Title | null {\n return this._titles[this._currentIndex] || null;\n }\n\n /**\n * Set the currently selected title.\n *\n * #### Notes\n * If the title does not exist, the title will be set to `null`.\n */\n set currentTitle(value: Title | null) {\n this.currentIndex = value ? this._titles.indexOf(value) : -1;\n }\n\n /**\n * Get the index of the currently selected tab.\n *\n * #### Notes\n * This will be `-1` if no tab is selected.\n */\n get currentIndex(): number {\n return this._currentIndex;\n }\n\n /**\n * Set the index of the currently selected tab.\n *\n * #### Notes\n * If the value is out of range, the index will be set to `-1`.\n */\n set currentIndex(value: number) {\n // Adjust for an out of range index.\n if (value < 0 || value >= this._titles.length) {\n value = -1;\n }\n\n // Bail early if the index will not change.\n if (this._currentIndex === value) {\n return;\n }\n\n // Look up the previous index and title.\n let pi = this._currentIndex;\n let pt = this._titles[pi] || null;\n\n // Look up the current index and title.\n let ci = value;\n let ct = this._titles[ci] || null;\n\n // Update the current index and previous title.\n this._currentIndex = ci;\n this._previousTitle = pt;\n\n // Schedule an update of the tabs.\n this.update();\n\n // Emit the current changed signal.\n this._currentChanged.emit({\n previousIndex: pi,\n previousTitle: pt,\n currentIndex: ci,\n currentTitle: ct\n });\n }\n\n /**\n * Get the name of the tab bar.\n */\n get name(): string {\n return this._name;\n }\n\n /**\n * Set the name of the tab bar.\n */\n set name(value: string) {\n this._name = value;\n if (value) {\n this.contentNode.setAttribute('aria-label', value);\n } else {\n this.contentNode.removeAttribute('aria-label');\n }\n }\n\n /**\n * Get the orientation of the tab bar.\n *\n * #### Notes\n * This controls whether the tabs are arranged in a row or column.\n */\n get orientation(): TabBar.Orientation {\n return this._orientation;\n }\n\n /**\n * Set the orientation of the tab bar.\n *\n * #### Notes\n * This controls whether the tabs are arranged in a row or column.\n */\n set orientation(value: TabBar.Orientation) {\n // Do nothing if the orientation does not change.\n if (this._orientation === value) {\n return;\n }\n\n // Release the mouse before making any changes.\n this._releaseMouse();\n\n // Toggle the orientation values.\n this._orientation = value;\n this.dataset['orientation'] = value;\n this.contentNode.setAttribute('aria-orientation', value);\n }\n\n /**\n * Whether the add button is enabled.\n */\n get addButtonEnabled(): boolean {\n return this._addButtonEnabled;\n }\n\n /**\n * Set whether the add button is enabled.\n */\n set addButtonEnabled(value: boolean) {\n // Do nothing if the value does not change.\n if (this._addButtonEnabled === value) {\n return;\n }\n\n this._addButtonEnabled = value;\n if (value) {\n this.addButtonNode.classList.remove('lm-mod-hidden');\n } else {\n this.addButtonNode.classList.add('lm-mod-hidden');\n }\n }\n\n /**\n * A read-only array of the titles in the tab bar.\n */\n get titles(): ReadonlyArray> {\n return this._titles;\n }\n\n /**\n * The tab bar content node.\n *\n * #### Notes\n * This is the node which holds the tab nodes.\n *\n * Modifying this node directly can lead to undefined behavior.\n */\n get contentNode(): HTMLUListElement {\n return this.node.getElementsByClassName(\n 'lm-TabBar-content'\n )[0] as HTMLUListElement;\n }\n\n /**\n * The tab bar add button node.\n *\n * #### Notes\n * This is the node which holds the add button.\n *\n * Modifying this node directly can lead to undefined behavior.\n */\n get addButtonNode(): HTMLDivElement {\n return this.node.getElementsByClassName(\n 'lm-TabBar-addButton'\n )[0] as HTMLDivElement;\n }\n\n /**\n * Add a tab to the end of the tab bar.\n *\n * @param value - The title which holds the data for the tab,\n * or an options object to convert to a title.\n *\n * @returns The title object added to the tab bar.\n *\n * #### Notes\n * If the title is already added to the tab bar, it will be moved.\n */\n addTab(value: Title | Title.IOptions): Title {\n return this.insertTab(this._titles.length, value);\n }\n\n /**\n * Insert a tab into the tab bar at the specified index.\n *\n * @param index - The index at which to insert the tab.\n *\n * @param value - The title which holds the data for the tab,\n * or an options object to convert to a title.\n *\n * @returns The title object added to the tab bar.\n *\n * #### Notes\n * The index will be clamped to the bounds of the tabs.\n *\n * If the title is already added to the tab bar, it will be moved.\n */\n insertTab(index: number, value: Title | Title.IOptions): Title {\n // Release the mouse before making any changes.\n this._releaseMouse();\n\n // Coerce the value to a title.\n let title = Private.asTitle(value);\n\n // Look up the index of the title.\n let i = this._titles.indexOf(title);\n\n // Clamp the insert index to the array bounds.\n let j = Math.max(0, Math.min(index, this._titles.length));\n\n // If the title is not in the array, insert it.\n if (i === -1) {\n // Insert the title into the array.\n ArrayExt.insert(this._titles, j, title);\n\n // Connect to the title changed signal.\n title.changed.connect(this._onTitleChanged, this);\n\n // Schedule an update of the tabs.\n this.update();\n\n // Adjust the current index for the insert.\n this._adjustCurrentForInsert(j, title);\n\n // Return the title added to the tab bar.\n return title;\n }\n\n // Otherwise, the title exists in the array and should be moved.\n\n // Adjust the index if the location is at the end of the array.\n if (j === this._titles.length) {\n j--;\n }\n\n // Bail if there is no effective move.\n if (i === j) {\n return title;\n }\n\n // Move the title to the new location.\n ArrayExt.move(this._titles, i, j);\n\n // Schedule an update of the tabs.\n this.update();\n\n // Adjust the current index for the move.\n this._adjustCurrentForMove(i, j);\n\n // Return the title added to the tab bar.\n return title;\n }\n\n /**\n * Remove a tab from the tab bar.\n *\n * @param title - The title for the tab to remove.\n *\n * #### Notes\n * This is a no-op if the title is not in the tab bar.\n */\n removeTab(title: Title): void {\n this.removeTabAt(this._titles.indexOf(title));\n }\n\n /**\n * Remove the tab at a given index from the tab bar.\n *\n * @param index - The index of the tab to remove.\n *\n * #### Notes\n * This is a no-op if the index is out of range.\n */\n removeTabAt(index: number): void {\n // Release the mouse before making any changes.\n this._releaseMouse();\n\n // Remove the title from the array.\n let title = ArrayExt.removeAt(this._titles, index);\n\n // Bail if the index is out of range.\n if (!title) {\n return;\n }\n\n // Disconnect from the title changed signal.\n title.changed.disconnect(this._onTitleChanged, this);\n\n // Clear the previous title if it's being removed.\n if (title === this._previousTitle) {\n this._previousTitle = null;\n }\n\n // Schedule an update of the tabs.\n this.update();\n\n // Adjust the current index for the remove.\n this._adjustCurrentForRemove(index, title);\n }\n\n /**\n * Remove all tabs from the tab bar.\n */\n clearTabs(): void {\n // Bail if there is nothing to remove.\n if (this._titles.length === 0) {\n return;\n }\n\n // Release the mouse before making any changes.\n this._releaseMouse();\n\n // Disconnect from the title changed signals.\n for (let title of this._titles) {\n title.changed.disconnect(this._onTitleChanged, this);\n }\n\n // Get the current index and title.\n let pi = this.currentIndex;\n let pt = this.currentTitle;\n\n // Reset the current index and previous title.\n this._currentIndex = -1;\n this._previousTitle = null;\n\n // Clear the title array.\n this._titles.length = 0;\n\n // Schedule an update of the tabs.\n this.update();\n\n // If no tab was selected, there's nothing else to do.\n if (pi === -1) {\n return;\n }\n\n // Emit the current changed signal.\n this._currentChanged.emit({\n previousIndex: pi,\n previousTitle: pt,\n currentIndex: -1,\n currentTitle: null\n });\n }\n\n /**\n * Release the mouse and restore the non-dragged tab positions.\n *\n * #### Notes\n * This will cause the tab bar to stop handling mouse events and to\n * restore the tabs to their non-dragged positions.\n */\n releaseMouse(): void {\n this._releaseMouse();\n }\n\n /**\n * Handle the DOM events for the tab bar.\n *\n * @param event - The DOM event sent to the tab bar.\n *\n * #### Notes\n * This method implements the DOM `EventListener` interface and is\n * called in response to events on the tab bar's DOM node.\n *\n * This should not be called directly by user code.\n */\n handleEvent(event: Event): void {\n switch (event.type) {\n case 'mousedown': // \n this._evtMouseDown(event as MouseEvent);\n break;\n case 'mousemove': // \n this._evtMouseMove(event as MouseEvent);\n break;\n case 'mouseup': // \n this._evtMouseUp(event as MouseEvent);\n break;\n case 'pointerdown':\n this._evtMouseDown(event as MouseEvent);\n break;\n case 'pointermove':\n this._evtMouseMove(event as MouseEvent);\n break;\n case 'pointerup':\n this._evtMouseUp(event as MouseEvent);\n break;\n case 'dblclick':\n this._evtDblClick(event as MouseEvent);\n break;\n case 'keydown':\n this._evtKeyDown(event as KeyboardEvent);\n break;\n case 'contextmenu':\n event.preventDefault();\n event.stopPropagation();\n break;\n }\n }\n\n /**\n * A message handler invoked on a `'before-attach'` message.\n */\n protected onBeforeAttach(msg: Message): void {\n this.node.addEventListener('mousedown', this); // \n this.node.addEventListener('pointerdown', this);\n this.node.addEventListener('dblclick', this);\n }\n\n /**\n * A message handler invoked on an `'after-detach'` message.\n */\n protected onAfterDetach(msg: Message): void {\n this.node.removeEventListener('mousedown', this); // \n this.node.removeEventListener('pointerdown', this);\n this.node.removeEventListener('dblclick', this);\n this._releaseMouse();\n }\n\n /**\n * A message handler invoked on an `'update-request'` message.\n */\n protected onUpdateRequest(msg: Message): void {\n let titles = this._titles;\n let renderer = this.renderer;\n let currentTitle = this.currentTitle;\n let content = new Array(titles.length);\n for (let i = 0, n = titles.length; i < n; ++i) {\n let title = titles[i];\n let current = title === currentTitle;\n let zIndex = current ? n : n - i - 1;\n content[i] = renderer.renderTab({ title, current, zIndex });\n }\n VirtualDOM.render(content, this.contentNode);\n }\n\n /**\n * Handle the `'dblclick'` event for the tab bar.\n */\n private _evtDblClick(event: MouseEvent): void {\n // Do nothing if titles are not editable\n if (!this.titlesEditable) {\n return;\n }\n\n let tabs = this.contentNode.children;\n\n // Find the index of the released tab.\n let index = ArrayExt.findFirstIndex(tabs, tab => {\n return ElementExt.hitTest(tab, event.clientX, event.clientY);\n });\n\n // Do nothing if the press is not on a tab.\n if (index === -1) {\n return;\n }\n\n let title = this.titles[index];\n let label = tabs[index].querySelector('.lm-TabBar-tabLabel') as HTMLElement;\n if (label && label.contains(event.target as HTMLElement)) {\n let value = title.label || '';\n\n // Clear the label element\n let oldValue = label.innerHTML;\n label.innerHTML = '';\n\n let input = document.createElement('input');\n input.classList.add('lm-TabBar-tabInput');\n input.value = value;\n label.appendChild(input);\n\n let onblur = () => {\n input.removeEventListener('blur', onblur);\n label.innerHTML = oldValue;\n };\n\n input.addEventListener('dblclick', (event: Event) =>\n event.stopPropagation()\n );\n input.addEventListener('blur', onblur);\n input.addEventListener('keydown', (event: KeyboardEvent) => {\n if (event.key === 'Enter') {\n if (input.value !== '') {\n title.label = title.caption = input.value;\n }\n onblur();\n } else if (event.key === 'Escape') {\n onblur();\n }\n });\n input.select();\n input.focus();\n\n if (label.children.length > 0) {\n (label.children[0] as HTMLElement).focus();\n }\n }\n }\n\n /**\n * Handle the `'keydown'` event for the tab bar.\n */\n private _evtKeyDown(event: KeyboardEvent): void {\n // Stop all input events during drag.\n event.preventDefault();\n event.stopPropagation();\n\n // Release the mouse if `Escape` is pressed.\n if (event.keyCode === 27) {\n this._releaseMouse();\n }\n }\n\n /**\n * Handle the `'mousedown'` event for the tab bar.\n */\n private _evtMouseDown(event: MouseEvent): void {\n // Do nothing if it's not a left or middle mouse press.\n if (event.button !== 0 && event.button !== 1) {\n return;\n }\n\n // Do nothing if a drag is in progress.\n if (this._dragData) {\n return;\n }\n\n // Check if the add button was clicked.\n let addButtonClicked =\n this.addButtonEnabled &&\n this.addButtonNode.contains(event.target as HTMLElement);\n\n // Lookup the tab nodes.\n let tabs = this.contentNode.children;\n\n // Find the index of the pressed tab.\n let index = ArrayExt.findFirstIndex(tabs, tab => {\n return ElementExt.hitTest(tab, event.clientX, event.clientY);\n });\n\n // Do nothing if the press is not on a tab or the add button.\n if (index === -1 && !addButtonClicked) {\n return;\n }\n\n // Pressing on a tab stops the event propagation.\n event.preventDefault();\n event.stopPropagation();\n\n // Initialize the non-measured parts of the drag data.\n this._dragData = {\n tab: tabs[index] as HTMLElement,\n index: index,\n pressX: event.clientX,\n pressY: event.clientY,\n tabPos: -1,\n tabSize: -1,\n tabPressPos: -1,\n targetIndex: -1,\n tabLayout: null,\n contentRect: null,\n override: null,\n dragActive: false,\n dragAborted: false,\n detachRequested: false\n };\n\n // Add the document mouse up listener.\n this.document.addEventListener('mouseup', this, true); // \n this.document.addEventListener('pointerup', this, true);\n\n // Do nothing else if the middle button or add button is clicked.\n if (event.button === 1 || addButtonClicked) {\n return;\n }\n\n // Do nothing else if the close icon is clicked.\n let icon = tabs[index].querySelector(this.renderer.closeIconSelector);\n if (icon && icon.contains(event.target as HTMLElement)) {\n return;\n }\n\n // Add the extra listeners if the tabs are movable.\n if (this.tabsMovable) {\n this.document.addEventListener('mousemove', this, true); // \n this.document.addEventListener('pointermove', this, true);\n this.document.addEventListener('keydown', this, true);\n this.document.addEventListener('contextmenu', this, true);\n }\n\n // Update the current index as appropriate.\n if (this.allowDeselect && this.currentIndex === index) {\n this.currentIndex = -1;\n } else {\n this.currentIndex = index;\n }\n\n // Do nothing else if there is no current tab.\n if (this.currentIndex === -1) {\n return;\n }\n\n // Emit the tab activate request signal.\n this._tabActivateRequested.emit({\n index: this.currentIndex,\n title: this.currentTitle!\n });\n }\n\n /**\n * Handle the `'mousemove'` event for the tab bar.\n */\n private _evtMouseMove(event: MouseEvent): void {\n // Do nothing if no drag is in progress.\n let data = this._dragData;\n if (!data) {\n return;\n }\n\n // Suppress the event during a drag.\n event.preventDefault();\n event.stopPropagation();\n\n // Lookup the tab nodes.\n let tabs = this.contentNode.children;\n\n // Bail early if the drag threshold has not been met.\n if (!data.dragActive && !Private.dragExceeded(data, event)) {\n return;\n }\n\n // Activate the drag if necessary.\n if (!data.dragActive) {\n // Fill in the rest of the drag data measurements.\n let tabRect = data.tab.getBoundingClientRect();\n if (this._orientation === 'horizontal') {\n data.tabPos = data.tab.offsetLeft;\n data.tabSize = tabRect.width;\n data.tabPressPos = data.pressX - tabRect.left;\n } else {\n data.tabPos = data.tab.offsetTop;\n data.tabSize = tabRect.height;\n data.tabPressPos = data.pressY - tabRect.top;\n }\n data.tabLayout = Private.snapTabLayout(tabs, this._orientation);\n data.contentRect = this.contentNode.getBoundingClientRect();\n data.override = Drag.overrideCursor('default');\n\n // Add the dragging style classes.\n data.tab.classList.add('lm-mod-dragging');\n this.addClass('lm-mod-dragging');\n /* */\n data.tab.classList.add('p-mod-dragging');\n this.addClass('p-mod-dragging');\n /* */\n\n // Mark the drag as active.\n data.dragActive = true;\n }\n\n // Emit the detach requested signal if the threshold is exceeded.\n if (!data.detachRequested && Private.detachExceeded(data, event)) {\n // Only emit the signal once per drag cycle.\n data.detachRequested = true;\n\n // Setup the arguments for the signal.\n let index = data.index;\n let clientX = event.clientX;\n let clientY = event.clientY;\n let tab = tabs[index] as HTMLElement;\n let title = this._titles[index];\n\n // Emit the tab detach requested signal.\n this._tabDetachRequested.emit({ index, title, tab, clientX, clientY });\n\n // Bail if the signal handler aborted the drag.\n if (data.dragAborted) {\n return;\n }\n }\n\n // Update the positions of the tabs.\n Private.layoutTabs(tabs, data, event, this._orientation);\n }\n\n /**\n * Handle the `'mouseup'` event for the document.\n */\n private _evtMouseUp(event: MouseEvent): void {\n // Do nothing if it's not a left or middle mouse release.\n if (event.button !== 0 && event.button !== 1) {\n return;\n }\n\n // Do nothing if no drag is in progress.\n const data = this._dragData;\n if (!data) {\n return;\n }\n\n // Stop the event propagation.\n event.preventDefault();\n event.stopPropagation();\n\n // Remove the extra mouse event listeners.\n this.document.removeEventListener('mousemove', this, true); // \n this.document.removeEventListener('mouseup', this, true); // \n this.document.removeEventListener('pointermove', this, true);\n this.document.removeEventListener('pointerup', this, true);\n this.document.removeEventListener('keydown', this, true);\n this.document.removeEventListener('contextmenu', this, true);\n\n // Handle a release when the drag is not active.\n if (!data.dragActive) {\n // Clear the drag data.\n this._dragData = null;\n\n // Handle clicking the add button.\n let addButtonClicked =\n this.addButtonEnabled &&\n this.addButtonNode.contains(event.target as HTMLElement);\n if (addButtonClicked) {\n this._addRequested.emit(undefined);\n return;\n }\n\n // Lookup the tab nodes.\n let tabs = this.contentNode.children;\n\n // Find the index of the released tab.\n let index = ArrayExt.findFirstIndex(tabs, tab => {\n return ElementExt.hitTest(tab, event.clientX, event.clientY);\n });\n\n // Do nothing if the release is not on the original pressed tab.\n if (index !== data.index) {\n return;\n }\n\n // Ignore the release if the title is not closable.\n let title = this._titles[index];\n if (!title.closable) {\n return;\n }\n\n // Emit the close requested signal if the middle button is released.\n if (event.button === 1) {\n this._tabCloseRequested.emit({ index, title });\n return;\n }\n\n // Emit the close requested signal if the close icon was released.\n let icon = tabs[index].querySelector(this.renderer.closeIconSelector);\n if (icon && icon.contains(event.target as HTMLElement)) {\n this._tabCloseRequested.emit({ index, title });\n return;\n }\n\n // Otherwise, there is nothing left to do.\n return;\n }\n\n // Do nothing if the left button is not released.\n if (event.button !== 0) {\n return;\n }\n\n // Position the tab at its final resting position.\n Private.finalizeTabPosition(data, this._orientation);\n\n // Remove the dragging class from the tab so it can be transitioned.\n data.tab.classList.remove('lm-mod-dragging');\n /* */\n data.tab.classList.remove('p-mod-dragging');\n /* */\n\n // Parse the transition duration for releasing the tab.\n let duration = Private.parseTransitionDuration(data.tab);\n\n // Complete the release on a timer to allow the tab to transition.\n setTimeout(() => {\n // Do nothing if the drag has been aborted.\n if (data.dragAborted) {\n return;\n }\n\n // Clear the drag data reference.\n this._dragData = null;\n\n // Reset the positions of the tabs.\n Private.resetTabPositions(this.contentNode.children, this._orientation);\n\n // Clear the cursor grab.\n data.override!.dispose();\n\n // Remove the remaining dragging style.\n this.removeClass('lm-mod-dragging');\n /* */\n this.removeClass('p-mod-dragging');\n /* */\n\n // If the tab was not moved, there is nothing else to do.\n let i = data.index;\n let j = data.targetIndex;\n if (j === -1 || i === j) {\n return;\n }\n\n // Move the title to the new locations.\n ArrayExt.move(this._titles, i, j);\n\n // Adjust the current index for the move.\n this._adjustCurrentForMove(i, j);\n\n // Emit the tab moved signal.\n this._tabMoved.emit({\n fromIndex: i,\n toIndex: j,\n title: this._titles[j]\n });\n\n // Update the tabs immediately to prevent flicker.\n MessageLoop.sendMessage(this, Widget.Msg.UpdateRequest);\n }, duration);\n }\n\n /**\n * Release the mouse and restore the non-dragged tab positions.\n */\n private _releaseMouse(): void {\n // Do nothing if no drag is in progress.\n let data = this._dragData;\n if (!data) {\n return;\n }\n\n // Clear the drag data reference.\n this._dragData = null;\n\n // Remove the extra mouse listeners.\n this.document.removeEventListener('mousemove', this, true); // \n this.document.removeEventListener('mouseup', this, true); // \n this.document.removeEventListener('pointermove', this, true);\n this.document.removeEventListener('pointerup', this, true);\n this.document.removeEventListener('keydown', this, true);\n this.document.removeEventListener('contextmenu', this, true);\n\n // Indicate the drag has been aborted. This allows the mouse\n // event handlers to return early when the drag is canceled.\n data.dragAborted = true;\n\n // If the drag is not active, there's nothing more to do.\n if (!data.dragActive) {\n return;\n }\n\n // Reset the tabs to their non-dragged positions.\n Private.resetTabPositions(this.contentNode.children, this._orientation);\n\n // Clear the cursor override.\n data.override!.dispose();\n\n // Clear the dragging style classes.\n data.tab.classList.remove('lm-mod-dragging');\n this.removeClass('lm-mod-dragging');\n /* */\n data.tab.classList.remove('p-mod-dragging');\n this.removeClass('p-mod-dragging');\n /* */\n }\n\n /**\n * Adjust the current index for a tab insert operation.\n *\n * This method accounts for the tab bar's insertion behavior when\n * adjusting the current index and emitting the changed signal.\n */\n private _adjustCurrentForInsert(i: number, title: Title): void {\n // Lookup commonly used variables.\n let ct = this.currentTitle;\n let ci = this._currentIndex;\n let bh = this.insertBehavior;\n\n // TODO: do we need to do an update to update the aria-selected attribute?\n\n // Handle the behavior where the new tab is always selected,\n // or the behavior where the new tab is selected if needed.\n if (bh === 'select-tab' || (bh === 'select-tab-if-needed' && ci === -1)) {\n this._currentIndex = i;\n this._previousTitle = ct;\n this._currentChanged.emit({\n previousIndex: ci,\n previousTitle: ct,\n currentIndex: i,\n currentTitle: title\n });\n return;\n }\n\n // Otherwise, silently adjust the current index if needed.\n if (ci >= i) {\n this._currentIndex++;\n }\n }\n\n /**\n * Adjust the current index for a tab move operation.\n *\n * This method will not cause the actual current tab to change.\n * It silently adjusts the index to account for the given move.\n */\n private _adjustCurrentForMove(i: number, j: number): void {\n if (this._currentIndex === i) {\n this._currentIndex = j;\n } else if (this._currentIndex < i && this._currentIndex >= j) {\n this._currentIndex++;\n } else if (this._currentIndex > i && this._currentIndex <= j) {\n this._currentIndex--;\n }\n }\n\n /**\n * Adjust the current index for a tab remove operation.\n *\n * This method accounts for the tab bar's remove behavior when\n * adjusting the current index and emitting the changed signal.\n */\n private _adjustCurrentForRemove(i: number, title: Title): void {\n // Lookup commonly used variables.\n let ci = this._currentIndex;\n let bh = this.removeBehavior;\n\n // Silently adjust the index if the current tab is not removed.\n if (ci !== i) {\n if (ci > i) {\n this._currentIndex--;\n }\n return;\n }\n\n // TODO: do we need to do an update to adjust the aria-selected value?\n\n // No tab gets selected if the tab bar is empty.\n if (this._titles.length === 0) {\n this._currentIndex = -1;\n this._currentChanged.emit({\n previousIndex: i,\n previousTitle: title,\n currentIndex: -1,\n currentTitle: null\n });\n return;\n }\n\n // Handle behavior where the next sibling tab is selected.\n if (bh === 'select-tab-after') {\n this._currentIndex = Math.min(i, this._titles.length - 1);\n this._currentChanged.emit({\n previousIndex: i,\n previousTitle: title,\n currentIndex: this._currentIndex,\n currentTitle: this.currentTitle\n });\n return;\n }\n\n // Handle behavior where the previous sibling tab is selected.\n if (bh === 'select-tab-before') {\n this._currentIndex = Math.max(0, i - 1);\n this._currentChanged.emit({\n previousIndex: i,\n previousTitle: title,\n currentIndex: this._currentIndex,\n currentTitle: this.currentTitle\n });\n return;\n }\n\n // Handle behavior where the previous history tab is selected.\n if (bh === 'select-previous-tab') {\n if (this._previousTitle) {\n this._currentIndex = this._titles.indexOf(this._previousTitle);\n this._previousTitle = null;\n } else {\n this._currentIndex = Math.min(i, this._titles.length - 1);\n }\n this._currentChanged.emit({\n previousIndex: i,\n previousTitle: title,\n currentIndex: this._currentIndex,\n currentTitle: this.currentTitle\n });\n return;\n }\n\n // Otherwise, no tab gets selected.\n this._currentIndex = -1;\n this._currentChanged.emit({\n previousIndex: i,\n previousTitle: title,\n currentIndex: -1,\n currentTitle: null\n });\n }\n\n /**\n * Handle the `changed` signal of a title object.\n */\n private _onTitleChanged(sender: Title): void {\n this.update();\n }\n\n private _name: string;\n private _currentIndex = -1;\n private _titles: Title[] = [];\n private _orientation: TabBar.Orientation;\n private _document: Document | ShadowRoot;\n private _titlesEditable: boolean = false;\n private _previousTitle: Title | null = null;\n private _dragData: Private.IDragData | null = null;\n private _addButtonEnabled: boolean = false;\n private _tabMoved = new Signal>(this);\n private _currentChanged = new Signal>(\n this\n );\n private _addRequested = new Signal(this);\n private _tabCloseRequested = new Signal<\n this,\n TabBar.ITabCloseRequestedArgs\n >(this);\n private _tabDetachRequested = new Signal<\n this,\n TabBar.ITabDetachRequestedArgs\n >(this);\n private _tabActivateRequested = new Signal<\n this,\n TabBar.ITabActivateRequestedArgs\n >(this);\n}\n\n/**\n * The namespace for the `TabBar` class statics.\n */\nexport namespace TabBar {\n /**\n * A type alias for a tab bar orientation.\n */\n export type Orientation =\n | /**\n * The tabs are arranged in a single row, left-to-right.\n *\n * The tab text orientation is horizontal.\n */\n 'horizontal'\n\n /**\n * The tabs are arranged in a single column, top-to-bottom.\n *\n * The tab text orientation is horizontal.\n */\n | 'vertical';\n\n /**\n * A type alias for the selection behavior on tab insert.\n */\n export type InsertBehavior =\n | /**\n * The selected tab will not be changed.\n */\n 'none'\n\n /**\n * The inserted tab will be selected.\n */\n | 'select-tab'\n\n /**\n * The inserted tab will be selected if the current tab is null.\n */\n | 'select-tab-if-needed';\n\n /**\n * A type alias for the selection behavior on tab remove.\n */\n export type RemoveBehavior =\n | /**\n * No tab will be selected.\n */\n 'none'\n\n /**\n * The tab after the removed tab will be selected if possible.\n */\n | 'select-tab-after'\n\n /**\n * The tab before the removed tab will be selected if possible.\n */\n | 'select-tab-before'\n\n /**\n * The previously selected tab will be selected if possible.\n */\n | 'select-previous-tab';\n\n /**\n * An options object for creating a tab bar.\n */\n export interface IOptions {\n /**\n * The document to use with the tab bar.\n *\n * The default is the global `document` instance.\n */\n\n document?: Document | ShadowRoot;\n\n /**\n * Name of the tab bar.\n *\n * This is used for accessibility reasons. The default is the empty string.\n */\n name?: string;\n\n /**\n * The layout orientation of the tab bar.\n *\n * The default is `horizontal`.\n */\n orientation?: TabBar.Orientation;\n\n /**\n * Whether the tabs are movable by the user.\n *\n * The default is `false`.\n */\n tabsMovable?: boolean;\n\n /**\n * Whether a tab can be deselected by the user.\n *\n * The default is `false`.\n */\n allowDeselect?: boolean;\n\n /**\n * Whether the titles can be directly edited by the user.\n *\n * The default is `false`.\n */\n titlesEditable?: boolean;\n\n /**\n * Whether the add button is enabled.\n *\n * The default is `false`.\n */\n addButtonEnabled?: boolean;\n\n /**\n * The selection behavior when inserting a tab.\n *\n * The default is `'select-tab-if-needed'`.\n */\n insertBehavior?: TabBar.InsertBehavior;\n\n /**\n * The selection behavior when removing a tab.\n *\n * The default is `'select-tab-after'`.\n */\n removeBehavior?: TabBar.RemoveBehavior;\n\n /**\n * A renderer to use with the tab bar.\n *\n * The default is a shared renderer instance.\n */\n renderer?: IRenderer;\n }\n\n /**\n * The arguments object for the `currentChanged` signal.\n */\n export interface ICurrentChangedArgs {\n /**\n * The previously selected index.\n */\n readonly previousIndex: number;\n\n /**\n * The previously selected title.\n */\n readonly previousTitle: Title | null;\n\n /**\n * The currently selected index.\n */\n readonly currentIndex: number;\n\n /**\n * The currently selected title.\n */\n readonly currentTitle: Title | null;\n }\n\n /**\n * The arguments object for the `tabMoved` signal.\n */\n export interface ITabMovedArgs {\n /**\n * The previous index of the tab.\n */\n readonly fromIndex: number;\n\n /**\n * The current index of the tab.\n */\n readonly toIndex: number;\n\n /**\n * The title for the tab.\n */\n readonly title: Title;\n }\n\n /**\n * The arguments object for the `tabActivateRequested` signal.\n */\n export interface ITabActivateRequestedArgs {\n /**\n * The index of the tab to activate.\n */\n readonly index: number;\n\n /**\n * The title for the tab.\n */\n readonly title: Title;\n }\n\n /**\n * The arguments object for the `tabCloseRequested` signal.\n */\n export interface ITabCloseRequestedArgs {\n /**\n * The index of the tab to close.\n */\n readonly index: number;\n\n /**\n * The title for the tab.\n */\n readonly title: Title;\n }\n\n /**\n * The arguments object for the `tabDetachRequested` signal.\n */\n export interface ITabDetachRequestedArgs {\n /**\n * The index of the tab to detach.\n */\n readonly index: number;\n\n /**\n * The title for the tab.\n */\n readonly title: Title;\n\n /**\n * The node representing the tab.\n */\n readonly tab: HTMLElement;\n\n /**\n * The current client X position of the mouse.\n */\n readonly clientX: number;\n\n /**\n * The current client Y position of the mouse.\n */\n readonly clientY: number;\n }\n\n /**\n * An object which holds the data to render a tab.\n */\n export interface IRenderData {\n /**\n * The title associated with the tab.\n */\n readonly title: Title;\n\n /**\n * Whether the tab is the current tab.\n */\n readonly current: boolean;\n\n /**\n * The z-index for the tab.\n */\n readonly zIndex: number;\n }\n\n /**\n * A renderer for use with a tab bar.\n */\n export interface IRenderer {\n /**\n * A selector which matches the close icon node in a tab.\n */\n readonly closeIconSelector: string;\n\n /**\n * Render the virtual element for a tab.\n *\n * @param data - The data to use for rendering the tab.\n *\n * @returns A virtual element representing the tab.\n */\n renderTab(data: IRenderData): VirtualElement;\n }\n\n /**\n * The default implementation of `IRenderer`.\n *\n * #### Notes\n * Subclasses are free to reimplement rendering methods as needed.\n */\n export class Renderer implements IRenderer {\n constructor() {\n this._uuid = ++Renderer._nInstance;\n }\n /**\n * A selector which matches the close icon node in a tab.\n */\n readonly closeIconSelector = '.lm-TabBar-tabCloseIcon';\n\n /**\n * Render the virtual element for a tab.\n *\n * @param data - The data to use for rendering the tab.\n *\n * @returns A virtual element representing the tab.\n */\n renderTab(data: IRenderData): VirtualElement {\n let title = data.title.caption;\n let key = this.createTabKey(data);\n let id = key;\n let style = this.createTabStyle(data);\n let className = this.createTabClass(data);\n let dataset = this.createTabDataset(data);\n let aria = this.createTabARIA(data);\n if (data.title.closable) {\n return h.li(\n { id, key, className, title, style, dataset, ...aria },\n this.renderIcon(data),\n this.renderLabel(data),\n this.renderCloseIcon(data)\n );\n } else {\n return h.li(\n { id, key, className, title, style, dataset, ...aria },\n this.renderIcon(data),\n this.renderLabel(data)\n );\n }\n }\n\n /**\n * Render the icon element for a tab.\n *\n * @param data - The data to use for rendering the tab.\n *\n * @returns A virtual element representing the tab icon.\n */\n renderIcon(data: IRenderData): VirtualElement {\n const { title } = data;\n let className = this.createIconClass(data);\n\n /* */\n if (typeof title.icon === 'string') {\n return h.div({ className }, title.iconLabel);\n }\n /* */\n\n // if title.icon is undefined, it will be ignored\n return h.div({ className }, title.icon!, title.iconLabel);\n }\n\n /**\n * Render the label element for a tab.\n *\n * @param data - The data to use for rendering the tab.\n *\n * @returns A virtual element representing the tab label.\n */\n renderLabel(data: IRenderData): VirtualElement {\n return h.div(\n {\n className:\n 'lm-TabBar-tabLabel' +\n /* */\n ' p-TabBar-tabLabel'\n /* */\n },\n data.title.label\n );\n }\n\n /**\n * Render the close icon element for a tab.\n *\n * @param data - The data to use for rendering the tab.\n *\n * @returns A virtual element representing the tab close icon.\n */\n renderCloseIcon(data: IRenderData): VirtualElement {\n return h.div({\n className:\n 'lm-TabBar-tabCloseIcon' +\n /* */\n ' p-TabBar-tabCloseIcon'\n /* */\n });\n }\n\n /**\n * Create a unique render key for the tab.\n *\n * @param data - The data to use for the tab.\n *\n * @returns The unique render key for the tab.\n *\n * #### Notes\n * This method caches the key against the tab title the first time\n * the key is generated. This enables efficient rendering of moved\n * tabs and avoids subtle hover style artifacts.\n */\n createTabKey(data: IRenderData): string {\n let key = this._tabKeys.get(data.title);\n if (key === undefined) {\n key = `tab-key-${this._uuid}-${this._tabID++}`;\n this._tabKeys.set(data.title, key);\n }\n return key;\n }\n\n /**\n * Create the inline style object for a tab.\n *\n * @param data - The data to use for the tab.\n *\n * @returns The inline style data for the tab.\n */\n createTabStyle(data: IRenderData): ElementInlineStyle {\n return { zIndex: `${data.zIndex}` };\n }\n\n /**\n * Create the class name for the tab.\n *\n * @param data - The data to use for the tab.\n *\n * @returns The full class name for the tab.\n */\n createTabClass(data: IRenderData): string {\n let name = 'lm-TabBar-tab';\n /* */\n name += ' p-TabBar-tab';\n /* */\n if (data.title.className) {\n name += ` ${data.title.className}`;\n }\n if (data.title.closable) {\n name += ' lm-mod-closable';\n /* */\n name += ' p-mod-closable';\n /* */\n }\n if (data.current) {\n name += ' lm-mod-current';\n /* */\n name += ' p-mod-current';\n /* */\n }\n return name;\n }\n\n /**\n * Create the dataset for a tab.\n *\n * @param data - The data to use for the tab.\n *\n * @returns The dataset for the tab.\n */\n createTabDataset(data: IRenderData): ElementDataset {\n return data.title.dataset;\n }\n\n /**\n * Create the ARIA attributes for a tab.\n *\n * @param data - The data to use for the tab.\n *\n * @returns The ARIA attributes for the tab.\n */\n createTabARIA(data: IRenderData): ElementARIAAttrs {\n return { role: 'tab', 'aria-selected': data.current.toString() };\n }\n\n /**\n * Create the class name for the tab icon.\n *\n * @param data - The data to use for the tab.\n *\n * @returns The full class name for the tab icon.\n */\n createIconClass(data: IRenderData): string {\n let name = 'lm-TabBar-tabIcon';\n /* */\n name += ' p-TabBar-tabIcon';\n /* */\n let extra = data.title.iconClass;\n return extra ? `${name} ${extra}` : name;\n }\n\n private static _nInstance = 0;\n private readonly _uuid: number;\n private _tabID = 0;\n private _tabKeys = new WeakMap, string>();\n }\n\n /**\n * The default `Renderer` instance.\n */\n export const defaultRenderer = new Renderer();\n\n /**\n * A selector which matches the add button node in the tab bar.\n */\n export const addButtonSelector = '.lm-TabBar-addButton';\n}\n\n/**\n * The namespace for the module implementation details.\n */\nnamespace Private {\n /**\n * The start drag distance threshold.\n */\n export const DRAG_THRESHOLD = 5;\n\n /**\n * The detach distance threshold.\n */\n export const DETACH_THRESHOLD = 20;\n\n /**\n * A struct which holds the drag data for a tab bar.\n */\n export interface IDragData {\n /**\n * The tab node being dragged.\n */\n tab: HTMLElement;\n\n /**\n * The index of the tab being dragged.\n */\n index: number;\n\n /**\n * The mouse press client X position.\n */\n pressX: number;\n\n /**\n * The mouse press client Y position.\n */\n pressY: number;\n\n /**\n * The offset left/top of the tab being dragged.\n *\n * This will be `-1` if the drag is not active.\n */\n tabPos: number;\n\n /**\n * The offset width/height of the tab being dragged.\n *\n * This will be `-1` if the drag is not active.\n */\n tabSize: number;\n\n /**\n * The original mouse X/Y position in tab coordinates.\n *\n * This will be `-1` if the drag is not active.\n */\n tabPressPos: number;\n\n /**\n * The tab target index upon mouse release.\n *\n * This will be `-1` if the drag is not active.\n */\n targetIndex: number;\n\n /**\n * The array of tab layout objects snapped at drag start.\n *\n * This will be `null` if the drag is not active.\n */\n tabLayout: ITabLayout[] | null;\n\n /**\n * The bounding client rect of the tab bar content node.\n *\n * This will be `null` if the drag is not active.\n */\n contentRect: ClientRect | null;\n\n /**\n * The disposable to clean up the cursor override.\n *\n * This will be `null` if the drag is not active.\n */\n override: IDisposable | null;\n\n /**\n * Whether the drag is currently active.\n */\n dragActive: boolean;\n\n /**\n * Whether the drag has been aborted.\n */\n dragAborted: boolean;\n\n /**\n * Whether a detach request as been made.\n */\n detachRequested: boolean;\n }\n\n /**\n * An object which holds layout data for a tab.\n */\n export interface ITabLayout {\n /**\n * The left/top margin value for the tab.\n */\n margin: number;\n\n /**\n * The offset left/top position of the tab.\n */\n pos: number;\n\n /**\n * The offset width/height of the tab.\n */\n size: number;\n }\n\n /**\n * Create the DOM node for a tab bar.\n */\n export function createNode(): HTMLDivElement {\n let node = document.createElement('div');\n let content = document.createElement('ul');\n content.setAttribute('role', 'tablist');\n content.className = 'lm-TabBar-content';\n /* */\n content.classList.add('p-TabBar-content');\n /* */\n node.appendChild(content);\n\n let add = document.createElement('div');\n add.className = 'lm-TabBar-addButton lm-mod-hidden';\n node.appendChild(add);\n return node;\n }\n\n /**\n * Coerce a title or options into a real title.\n */\n export function asTitle(value: Title | Title.IOptions): Title {\n return value instanceof Title ? value : new Title(value);\n }\n\n /**\n * Parse the transition duration for a tab node.\n */\n export function parseTransitionDuration(tab: HTMLElement): number {\n let style = window.getComputedStyle(tab);\n return 1000 * (parseFloat(style.transitionDuration!) || 0);\n }\n\n /**\n * Get a snapshot of the current tab layout values.\n */\n export function snapTabLayout(\n tabs: HTMLCollection,\n orientation: TabBar.Orientation\n ): ITabLayout[] {\n let layout = new Array(tabs.length);\n for (let i = 0, n = tabs.length; i < n; ++i) {\n let node = tabs[i] as HTMLElement;\n let style = window.getComputedStyle(node);\n if (orientation === 'horizontal') {\n layout[i] = {\n pos: node.offsetLeft,\n size: node.offsetWidth,\n margin: parseFloat(style.marginLeft!) || 0\n };\n } else {\n layout[i] = {\n pos: node.offsetTop,\n size: node.offsetHeight,\n margin: parseFloat(style.marginTop!) || 0\n };\n }\n }\n return layout;\n }\n\n /**\n * Test if the event exceeds the drag threshold.\n */\n export function dragExceeded(data: IDragData, event: MouseEvent): boolean {\n let dx = Math.abs(event.clientX - data.pressX);\n let dy = Math.abs(event.clientY - data.pressY);\n return dx >= DRAG_THRESHOLD || dy >= DRAG_THRESHOLD;\n }\n\n /**\n * Test if the event exceeds the drag detach threshold.\n */\n export function detachExceeded(data: IDragData, event: MouseEvent): boolean {\n let rect = data.contentRect!;\n return (\n event.clientX < rect.left - DETACH_THRESHOLD ||\n event.clientX >= rect.right + DETACH_THRESHOLD ||\n event.clientY < rect.top - DETACH_THRESHOLD ||\n event.clientY >= rect.bottom + DETACH_THRESHOLD\n );\n }\n\n /**\n * Update the relative tab positions and computed target index.\n */\n export function layoutTabs(\n tabs: HTMLCollection,\n data: IDragData,\n event: MouseEvent,\n orientation: TabBar.Orientation\n ): void {\n // Compute the orientation-sensitive values.\n let pressPos: number;\n let localPos: number;\n let clientPos: number;\n let clientSize: number;\n if (orientation === 'horizontal') {\n pressPos = data.pressX;\n localPos = event.clientX - data.contentRect!.left;\n clientPos = event.clientX;\n clientSize = data.contentRect!.width;\n } else {\n pressPos = data.pressY;\n localPos = event.clientY - data.contentRect!.top;\n clientPos = event.clientY;\n clientSize = data.contentRect!.height;\n }\n\n // Compute the target data.\n let targetIndex = data.index;\n let targetPos = localPos - data.tabPressPos;\n let targetEnd = targetPos + data.tabSize;\n\n // Update the relative tab positions.\n for (let i = 0, n = tabs.length; i < n; ++i) {\n let pxPos: string;\n let layout = data.tabLayout![i];\n let threshold = layout.pos + (layout.size >> 1);\n if (i < data.index && targetPos < threshold) {\n pxPos = `${data.tabSize + data.tabLayout![i + 1].margin}px`;\n targetIndex = Math.min(targetIndex, i);\n } else if (i > data.index && targetEnd > threshold) {\n pxPos = `${-data.tabSize - layout.margin}px`;\n targetIndex = Math.max(targetIndex, i);\n } else if (i === data.index) {\n let ideal = clientPos - pressPos;\n let limit = clientSize - (data.tabPos + data.tabSize);\n pxPos = `${Math.max(-data.tabPos, Math.min(ideal, limit))}px`;\n } else {\n pxPos = '';\n }\n if (orientation === 'horizontal') {\n (tabs[i] as HTMLElement).style.left = pxPos;\n } else {\n (tabs[i] as HTMLElement).style.top = pxPos;\n }\n }\n\n // Update the computed target index.\n data.targetIndex = targetIndex;\n }\n\n /**\n * Position the drag tab at its final resting relative position.\n */\n export function finalizeTabPosition(\n data: IDragData,\n orientation: TabBar.Orientation\n ): void {\n // Compute the orientation-sensitive client size.\n let clientSize: number;\n if (orientation === 'horizontal') {\n clientSize = data.contentRect!.width;\n } else {\n clientSize = data.contentRect!.height;\n }\n\n // Compute the ideal final tab position.\n let ideal: number;\n if (data.targetIndex === data.index) {\n ideal = 0;\n } else if (data.targetIndex > data.index) {\n let tgt = data.tabLayout![data.targetIndex];\n ideal = tgt.pos + tgt.size - data.tabSize - data.tabPos;\n } else {\n let tgt = data.tabLayout![data.targetIndex];\n ideal = tgt.pos - data.tabPos;\n }\n\n // Compute the tab position limit.\n let limit = clientSize - (data.tabPos + data.tabSize);\n let final = Math.max(-data.tabPos, Math.min(ideal, limit));\n\n // Set the final orientation-sensitive position.\n if (orientation === 'horizontal') {\n data.tab.style.left = `${final}px`;\n } else {\n data.tab.style.top = `${final}px`;\n }\n }\n\n /**\n * Reset the relative positions of the given tabs.\n */\n export function resetTabPositions(\n tabs: HTMLCollection,\n orientation: TabBar.Orientation\n ): void {\n each(tabs, tab => {\n if (orientation === 'horizontal') {\n (tab as HTMLElement).style.left = '';\n } else {\n (tab as HTMLElement).style.top = '';\n }\n });\n }\n}\n","// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n/*-----------------------------------------------------------------------------\n| Copyright (c) 2014-2017, PhosphorJS Contributors\n|\n| Distributed under the terms of the BSD 3-Clause License.\n|\n| The full license is in the file LICENSE, distributed with this software.\n|----------------------------------------------------------------------------*/\nimport {\n ArrayExt,\n chain,\n ChainIterator,\n each,\n empty,\n IIterator,\n map,\n once,\n reduce\n} from '@lumino/algorithm';\n\nimport { ElementExt } from '@lumino/domutils';\n\nimport { Message, MessageLoop } from '@lumino/messaging';\n\nimport { BoxEngine, BoxSizer } from './boxengine';\n\nimport { Layout, LayoutItem } from './layout';\n\nimport { TabBar } from './tabbar';\n\nimport Utils from './utils';\n\nimport { Widget } from './widget';\n\n/**\n * A layout which provides a flexible docking arrangement.\n *\n * #### Notes\n * The consumer of this layout is responsible for handling all signals\n * from the generated tab bars and managing the visibility of widgets\n * and tab bars as needed.\n */\nexport class DockLayout extends Layout {\n /**\n * Construct a new dock layout.\n *\n * @param options - The options for initializing the layout.\n */\n constructor(options: DockLayout.IOptions) {\n super();\n this.renderer = options.renderer;\n if (options.spacing !== undefined) {\n this._spacing = Utils.clampDimension(options.spacing);\n }\n this._document = options.document || document;\n this._hiddenMode =\n options.hiddenMode !== undefined\n ? options.hiddenMode\n : Widget.HiddenMode.Display;\n }\n\n /**\n * Dispose of the resources held by the layout.\n *\n * #### Notes\n * This will clear and dispose all widgets in the layout.\n */\n dispose(): void {\n // Get an iterator over the widgets in the layout.\n let widgets = this.iter();\n\n // Dispose of the layout items.\n this._items.forEach(item => {\n item.dispose();\n });\n\n // Clear the layout state before disposing the widgets.\n this._box = null;\n this._root = null;\n this._items.clear();\n\n // Dispose of the widgets contained in the old layout root.\n each(widgets, widget => {\n widget.dispose();\n });\n\n // Dispose of the base class.\n super.dispose();\n }\n\n /**\n * The renderer used by the dock layout.\n */\n readonly renderer: DockLayout.IRenderer;\n\n /**\n * The method for hiding child widgets.\n *\n * #### Notes\n * If there is only one child widget, `Display` hiding mode will be used\n * regardless of this setting.\n */\n get hiddenMode(): Widget.HiddenMode {\n return this._hiddenMode;\n }\n set hiddenMode(v: Widget.HiddenMode) {\n if (this._hiddenMode === v) {\n return;\n }\n this._hiddenMode = v;\n each(this.tabBars(), bar => {\n if (bar.titles.length > 1) {\n bar.titles.forEach(title => {\n title.owner.hiddenMode = this._hiddenMode;\n });\n }\n });\n }\n\n /**\n * Get the inter-element spacing for the dock layout.\n */\n get spacing(): number {\n return this._spacing;\n }\n\n /**\n * Set the inter-element spacing for the dock layout.\n */\n set spacing(value: number) {\n value = Utils.clampDimension(value);\n if (this._spacing === value) {\n return;\n }\n this._spacing = value;\n if (!this.parent) {\n return;\n }\n this.parent.fit();\n }\n\n /**\n * Whether the dock layout is empty.\n */\n get isEmpty(): boolean {\n return this._root === null;\n }\n\n /**\n * Create an iterator over all widgets in the layout.\n *\n * @returns A new iterator over the widgets in the layout.\n *\n * #### Notes\n * This iterator includes the generated tab bars.\n */\n iter(): IIterator {\n return this._root ? this._root.iterAllWidgets() : empty();\n }\n\n /**\n * Create an iterator over the user widgets in the layout.\n *\n * @returns A new iterator over the user widgets in the layout.\n *\n * #### Notes\n * This iterator does not include the generated tab bars.\n */\n widgets(): IIterator {\n return this._root ? this._root.iterUserWidgets() : empty();\n }\n\n /**\n * Create an iterator over the selected widgets in the layout.\n *\n * @returns A new iterator over the selected user widgets.\n *\n * #### Notes\n * This iterator yields the widgets corresponding to the current tab\n * of each tab bar in the layout.\n */\n selectedWidgets(): IIterator {\n return this._root ? this._root.iterSelectedWidgets() : empty();\n }\n\n /**\n * Create an iterator over the tab bars in the layout.\n *\n * @returns A new iterator over the tab bars in the layout.\n *\n * #### Notes\n * This iterator does not include the user widgets.\n */\n tabBars(): IIterator> {\n return this._root ? this._root.iterTabBars() : empty>();\n }\n\n /**\n * Create an iterator over the handles in the layout.\n *\n * @returns A new iterator over the handles in the layout.\n */\n handles(): IIterator {\n return this._root ? this._root.iterHandles() : empty();\n }\n\n /**\n * Move a handle to the given offset position.\n *\n * @param handle - The handle to move.\n *\n * @param offsetX - The desired offset X position of the handle.\n *\n * @param offsetY - The desired offset Y position of the handle.\n *\n * #### Notes\n * If the given handle is not contained in the layout, this is no-op.\n *\n * The handle will be moved as close as possible to the desired\n * position without violating any of the layout constraints.\n *\n * Only one of the coordinates is used depending on the orientation\n * of the handle. This method accepts both coordinates to make it\n * easy to invoke from a mouse move event without needing to know\n * the handle orientation.\n */\n moveHandle(handle: HTMLDivElement, offsetX: number, offsetY: number): void {\n // Bail early if there is no root or if the handle is hidden.\n let hidden = handle.classList.contains('lm-mod-hidden');\n /* */\n hidden = hidden || handle.classList.contains('p-mod-hidden');\n /* */\n if (!this._root || hidden) {\n return;\n }\n\n // Lookup the split node for the handle.\n let data = this._root.findSplitNode(handle);\n if (!data) {\n return;\n }\n\n // Compute the desired delta movement for the handle.\n let delta: number;\n if (data.node.orientation === 'horizontal') {\n delta = offsetX - handle.offsetLeft;\n } else {\n delta = offsetY - handle.offsetTop;\n }\n\n // Bail if there is no handle movement.\n if (delta === 0) {\n return;\n }\n\n // Prevent sibling resizing unless needed.\n data.node.holdSizes();\n\n // Adjust the sizers to reflect the handle movement.\n BoxEngine.adjust(data.node.sizers, data.index, delta);\n\n // Update the layout of the widgets.\n if (this.parent) {\n this.parent.update();\n }\n }\n\n /**\n * Save the current configuration of the dock layout.\n *\n * @returns A new config object for the current layout state.\n *\n * #### Notes\n * The return value can be provided to the `restoreLayout` method\n * in order to restore the layout to its current configuration.\n */\n saveLayout(): DockLayout.ILayoutConfig {\n // Bail early if there is no root.\n if (!this._root) {\n return { main: null };\n }\n\n // Hold the current sizes in the layout tree.\n this._root.holdAllSizes();\n\n // Return the layout config.\n return { main: this._root.createConfig() };\n }\n\n /**\n * Restore the layout to a previously saved configuration.\n *\n * @param config - The layout configuration to restore.\n *\n * #### Notes\n * Widgets which currently belong to the layout but which are not\n * contained in the config will be unparented.\n */\n restoreLayout(config: DockLayout.ILayoutConfig): void {\n // Create the widget set for validating the config.\n let widgetSet = new Set();\n\n // Normalize the main area config and collect the widgets.\n let mainConfig: DockLayout.AreaConfig | null;\n if (config.main) {\n mainConfig = Private.normalizeAreaConfig(config.main, widgetSet);\n } else {\n mainConfig = null;\n }\n\n // Create iterators over the old content.\n let oldWidgets = this.widgets();\n let oldTabBars = this.tabBars();\n let oldHandles = this.handles();\n\n // Clear the root before removing the old content.\n this._root = null;\n\n // Unparent the old widgets which are not in the new config.\n each(oldWidgets, widget => {\n if (!widgetSet.has(widget)) {\n widget.parent = null;\n }\n });\n\n // Dispose of the old tab bars.\n each(oldTabBars, tabBar => {\n tabBar.dispose();\n });\n\n // Remove the old handles.\n each(oldHandles, handle => {\n if (handle.parentNode) {\n handle.parentNode.removeChild(handle);\n }\n });\n\n // Reparent the new widgets to the current parent.\n widgetSet.forEach(widget => {\n widget.parent = this.parent;\n });\n\n // Create the root node for the new config.\n if (mainConfig) {\n this._root = Private.realizeAreaConfig(\n mainConfig,\n {\n // Ignoring optional `document` argument as we must reuse `this._document`\n createTabBar: (document?: Document | ShadowRoot) =>\n this._createTabBar(),\n createHandle: () => this._createHandle()\n },\n this._document\n );\n } else {\n this._root = null;\n }\n\n // If there is no parent, there is nothing more to do.\n if (!this.parent) {\n return;\n }\n\n // Attach the new widgets to the parent.\n widgetSet.forEach(widget => {\n this.attachWidget(widget);\n });\n\n // Post a fit request to the parent.\n this.parent.fit();\n }\n\n /**\n * Add a widget to the dock layout.\n *\n * @param widget - The widget to add to the dock layout.\n *\n * @param options - The additional options for adding the widget.\n *\n * #### Notes\n * The widget will be moved if it is already contained in the layout.\n *\n * An error will be thrown if the reference widget is invalid.\n */\n addWidget(widget: Widget, options: DockLayout.IAddOptions = {}): void {\n // Parse the options.\n let ref = options.ref || null;\n let mode = options.mode || 'tab-after';\n\n // Find the tab node which holds the reference widget.\n let refNode: Private.TabLayoutNode | null = null;\n if (this._root && ref) {\n refNode = this._root.findTabNode(ref);\n }\n\n // Throw an error if the reference widget is invalid.\n if (ref && !refNode) {\n throw new Error('Reference widget is not in the layout.');\n }\n\n // Reparent the widget to the current layout parent.\n widget.parent = this.parent;\n\n // Insert the widget according to the insert mode.\n switch (mode) {\n case 'tab-after':\n this._insertTab(widget, ref, refNode, true);\n break;\n case 'tab-before':\n this._insertTab(widget, ref, refNode, false);\n break;\n case 'split-top':\n this._insertSplit(widget, ref, refNode, 'vertical', false);\n break;\n case 'split-left':\n this._insertSplit(widget, ref, refNode, 'horizontal', false);\n break;\n case 'split-right':\n this._insertSplit(widget, ref, refNode, 'horizontal', true);\n break;\n case 'split-bottom':\n this._insertSplit(widget, ref, refNode, 'vertical', true);\n break;\n }\n\n // Do nothing else if there is no parent widget.\n if (!this.parent) {\n return;\n }\n\n // Ensure the widget is attached to the parent widget.\n this.attachWidget(widget);\n\n // Post a fit request for the parent widget.\n this.parent.fit();\n }\n\n /**\n * Remove a widget from the layout.\n *\n * @param widget - The widget to remove from the layout.\n *\n * #### Notes\n * A widget is automatically removed from the layout when its `parent`\n * is set to `null`. This method should only be invoked directly when\n * removing a widget from a layout which has yet to be installed on a\n * parent widget.\n *\n * This method does *not* modify the widget's `parent`.\n */\n removeWidget(widget: Widget): void {\n // Remove the widget from its current layout location.\n this._removeWidget(widget);\n\n // Do nothing else if there is no parent widget.\n if (!this.parent) {\n return;\n }\n\n // Detach the widget from the parent widget.\n this.detachWidget(widget);\n\n // Post a fit request for the parent widget.\n this.parent.fit();\n }\n\n /**\n * Find the tab area which contains the given client position.\n *\n * @param clientX - The client X position of interest.\n *\n * @param clientY - The client Y position of interest.\n *\n * @returns The geometry of the tab area at the given position, or\n * `null` if there is no tab area at the given position.\n */\n hitTestTabAreas(\n clientX: number,\n clientY: number\n ): DockLayout.ITabAreaGeometry | null {\n // Bail early if hit testing cannot produce valid results.\n if (!this._root || !this.parent || !this.parent.isVisible) {\n return null;\n }\n\n // Ensure the parent box sizing data is computed.\n if (!this._box) {\n this._box = ElementExt.boxSizing(this.parent.node);\n }\n\n // Convert from client to local coordinates.\n let rect = this.parent.node.getBoundingClientRect();\n let x = clientX - rect.left - this._box.borderLeft;\n let y = clientY - rect.top - this._box.borderTop;\n\n // Find the tab layout node at the local position.\n let tabNode = this._root.hitTestTabNodes(x, y);\n\n // Bail if a tab layout node was not found.\n if (!tabNode) {\n return null;\n }\n\n // Extract the data from the tab node.\n let { tabBar, top, left, width, height } = tabNode;\n\n // Compute the right and bottom edges of the tab area.\n let borderWidth = this._box.borderLeft + this._box.borderRight;\n let borderHeight = this._box.borderTop + this._box.borderBottom;\n let right = rect.width - borderWidth - (left + width);\n let bottom = rect.height - borderHeight - (top + height);\n\n // Return the hit test results.\n return { tabBar, x, y, top, left, right, bottom, width, height };\n }\n\n /**\n * Perform layout initialization which requires the parent widget.\n */\n protected init(): void {\n // Perform superclass initialization.\n super.init();\n\n // Attach each widget to the parent.\n each(this, widget => {\n this.attachWidget(widget);\n });\n\n // Attach each handle to the parent.\n each(this.handles(), handle => {\n this.parent!.node.appendChild(handle);\n });\n\n // Post a fit request for the parent widget.\n this.parent!.fit();\n }\n\n /**\n * Attach the widget to the layout parent widget.\n *\n * @param widget - The widget to attach to the parent.\n *\n * #### Notes\n * This is a no-op if the widget is already attached.\n */\n protected attachWidget(widget: Widget): void {\n // Do nothing if the widget is already attached.\n if (this.parent!.node === widget.node.parentNode) {\n return;\n }\n\n // Create the layout item for the widget.\n this._items.set(widget, new LayoutItem(widget));\n\n // Send a `'before-attach'` message if the parent is attached.\n if (this.parent!.isAttached) {\n MessageLoop.sendMessage(widget, Widget.Msg.BeforeAttach);\n }\n\n // Add the widget's node to the parent.\n this.parent!.node.appendChild(widget.node);\n\n // Send an `'after-attach'` message if the parent is attached.\n if (this.parent!.isAttached) {\n MessageLoop.sendMessage(widget, Widget.Msg.AfterAttach);\n }\n }\n\n /**\n * Detach the widget from the layout parent widget.\n *\n * @param widget - The widget to detach from the parent.\n *\n * #### Notes\n * This is a no-op if the widget is not attached.\n */\n protected detachWidget(widget: Widget): void {\n // Do nothing if the widget is not attached.\n if (this.parent!.node !== widget.node.parentNode) {\n return;\n }\n\n // Send a `'before-detach'` message if the parent is attached.\n if (this.parent!.isAttached) {\n MessageLoop.sendMessage(widget, Widget.Msg.BeforeDetach);\n }\n\n // Remove the widget's node from the parent.\n this.parent!.node.removeChild(widget.node);\n\n // Send an `'after-detach'` message if the parent is attached.\n if (this.parent!.isAttached) {\n MessageLoop.sendMessage(widget, Widget.Msg.AfterDetach);\n }\n\n // Delete the layout item for the widget.\n let item = this._items.get(widget);\n if (item) {\n this._items.delete(widget);\n item.dispose();\n }\n }\n\n /**\n * A message handler invoked on a `'before-show'` message.\n */\n protected onBeforeShow(msg: Message): void {\n super.onBeforeShow(msg);\n this.parent!.update();\n }\n\n /**\n * A message handler invoked on a `'before-attach'` message.\n */\n protected onBeforeAttach(msg: Message): void {\n super.onBeforeAttach(msg);\n this.parent!.fit();\n }\n\n /**\n * A message handler invoked on a `'child-shown'` message.\n */\n protected onChildShown(msg: Widget.ChildMessage): void {\n this.parent!.fit();\n }\n\n /**\n * A message handler invoked on a `'child-hidden'` message.\n */\n protected onChildHidden(msg: Widget.ChildMessage): void {\n this.parent!.fit();\n }\n\n /**\n * A message handler invoked on a `'resize'` message.\n */\n protected onResize(msg: Widget.ResizeMessage): void {\n if (this.parent!.isVisible) {\n this._update(msg.width, msg.height);\n }\n }\n\n /**\n * A message handler invoked on an `'update-request'` message.\n */\n protected onUpdateRequest(msg: Message): void {\n if (this.parent!.isVisible) {\n this._update(-1, -1);\n }\n }\n\n /**\n * A message handler invoked on a `'fit-request'` message.\n */\n protected onFitRequest(msg: Message): void {\n if (this.parent!.isAttached) {\n this._fit();\n }\n }\n\n /**\n * Remove the specified widget from the layout structure.\n *\n * #### Notes\n * This is a no-op if the widget is not in the layout tree.\n *\n * This does not detach the widget from the parent node.\n */\n private _removeWidget(widget: Widget): void {\n // Bail early if there is no layout root.\n if (!this._root) {\n return;\n }\n\n // Find the tab node which contains the given widget.\n let tabNode = this._root.findTabNode(widget);\n\n // Bail early if the tab node is not found.\n if (!tabNode) {\n return;\n }\n\n Private.removeAria(widget);\n\n // If there are multiple tabs, just remove the widget's tab.\n if (tabNode.tabBar.titles.length > 1) {\n tabNode.tabBar.removeTab(widget.title);\n if (\n this._hiddenMode === Widget.HiddenMode.Scale &&\n tabNode.tabBar.titles.length == 1\n ) {\n const existingWidget = tabNode.tabBar.titles[0].owner;\n existingWidget.hiddenMode = Widget.HiddenMode.Display;\n }\n return;\n }\n\n // Otherwise, the tab node needs to be removed...\n\n // Dispose the tab bar.\n tabNode.tabBar.dispose();\n\n // Handle the case where the tab node is the root.\n if (this._root === tabNode) {\n this._root = null;\n return;\n }\n\n // Otherwise, remove the tab node from its parent...\n\n // Prevent widget resizing unless needed.\n this._root.holdAllSizes();\n\n // Clear the parent reference on the tab node.\n let splitNode = tabNode.parent!;\n tabNode.parent = null;\n\n // Remove the tab node from its parent split node.\n let i = ArrayExt.removeFirstOf(splitNode.children, tabNode);\n let handle = ArrayExt.removeAt(splitNode.handles, i)!;\n ArrayExt.removeAt(splitNode.sizers, i);\n\n // Remove the handle from its parent DOM node.\n if (handle.parentNode) {\n handle.parentNode.removeChild(handle);\n }\n\n // If there are multiple children, just update the handles.\n if (splitNode.children.length > 1) {\n splitNode.syncHandles();\n return;\n }\n\n // Otherwise, the split node also needs to be removed...\n\n // Clear the parent reference on the split node.\n let maybeParent = splitNode.parent;\n splitNode.parent = null;\n\n // Lookup the remaining child node and handle.\n let childNode = splitNode.children[0];\n let childHandle = splitNode.handles[0];\n\n // Clear the split node data.\n splitNode.children.length = 0;\n splitNode.handles.length = 0;\n splitNode.sizers.length = 0;\n\n // Remove the child handle from its parent node.\n if (childHandle.parentNode) {\n childHandle.parentNode.removeChild(childHandle);\n }\n\n // Handle the case where the split node is the root.\n if (this._root === splitNode) {\n childNode.parent = null;\n this._root = childNode;\n return;\n }\n\n // Otherwise, move the child node to the parent node...\n let parentNode = maybeParent!;\n\n // Lookup the index of the split node.\n let j = parentNode.children.indexOf(splitNode);\n\n // Handle the case where the child node is a tab node.\n if (childNode instanceof Private.TabLayoutNode) {\n childNode.parent = parentNode;\n parentNode.children[j] = childNode;\n return;\n }\n\n // Remove the split data from the parent.\n let splitHandle = ArrayExt.removeAt(parentNode.handles, j)!;\n ArrayExt.removeAt(parentNode.children, j);\n ArrayExt.removeAt(parentNode.sizers, j);\n\n // Remove the handle from its parent node.\n if (splitHandle.parentNode) {\n splitHandle.parentNode.removeChild(splitHandle);\n }\n\n // The child node and the split parent node will have the same\n // orientation. Merge the grand-children with the parent node.\n for (let i = 0, n = childNode.children.length; i < n; ++i) {\n let gChild = childNode.children[i];\n let gHandle = childNode.handles[i];\n let gSizer = childNode.sizers[i];\n ArrayExt.insert(parentNode.children, j + i, gChild);\n ArrayExt.insert(parentNode.handles, j + i, gHandle);\n ArrayExt.insert(parentNode.sizers, j + i, gSizer);\n gChild.parent = parentNode;\n }\n\n // Clear the child node.\n childNode.children.length = 0;\n childNode.handles.length = 0;\n childNode.sizers.length = 0;\n childNode.parent = null;\n\n // Sync the handles on the parent node.\n parentNode.syncHandles();\n }\n\n /**\n * Insert a widget next to an existing tab.\n *\n * #### Notes\n * This does not attach the widget to the parent widget.\n */\n private _insertTab(\n widget: Widget,\n ref: Widget | null,\n refNode: Private.TabLayoutNode | null,\n after: boolean\n ): void {\n // Do nothing if the tab is inserted next to itself.\n if (widget === ref) {\n return;\n }\n\n // Create the root if it does not exist.\n if (!this._root) {\n let tabNode = new Private.TabLayoutNode(this._createTabBar());\n tabNode.tabBar.addTab(widget.title);\n this._root = tabNode;\n Private.addAria(widget, tabNode.tabBar);\n return;\n }\n\n // Use the first tab node as the ref node if needed.\n if (!refNode) {\n refNode = this._root.findFirstTabNode()!;\n }\n\n // If the widget is not contained in the ref node, ensure it is\n // removed from the layout and hidden before being added again.\n if (refNode.tabBar.titles.indexOf(widget.title) === -1) {\n this._removeWidget(widget);\n widget.hide();\n }\n\n // Lookup the target index for inserting the tab.\n let index: number;\n if (ref) {\n index = refNode.tabBar.titles.indexOf(ref.title);\n } else {\n index = refNode.tabBar.currentIndex;\n }\n\n // Using transform create an additional layer in the pixel pipeline\n // to limit the number of layer, it is set only if there is more than one widget.\n if (this._hiddenMode === Widget.HiddenMode.Scale) {\n if (refNode.tabBar.titles.length === 0) {\n // Singular tab should use display mode to limit number of layers.\n widget.hiddenMode = Widget.HiddenMode.Display;\n } else if (refNode.tabBar.titles.length == 1) {\n // If we are adding a second tab, switch the existing tab back to scale.\n const existingWidget = refNode.tabBar.titles[0].owner;\n existingWidget.hiddenMode = Widget.HiddenMode.Scale;\n } else {\n // For the third and subsequent tabs no special action is needed.\n widget.hiddenMode = Widget.HiddenMode.Scale;\n }\n } else {\n // For all other modes just propagate the current mode.\n widget.hiddenMode = this._hiddenMode;\n }\n\n // Insert the widget's tab relative to the target index.\n refNode.tabBar.insertTab(index + (after ? 1 : 0), widget.title);\n Private.addAria(widget, refNode.tabBar);\n }\n\n /**\n * Insert a widget as a new split area.\n *\n * #### Notes\n * This does not attach the widget to the parent widget.\n */\n private _insertSplit(\n widget: Widget,\n ref: Widget | null,\n refNode: Private.TabLayoutNode | null,\n orientation: Private.Orientation,\n after: boolean\n ): void {\n // Do nothing if there is no effective split.\n if (widget === ref && refNode && refNode.tabBar.titles.length === 1) {\n return;\n }\n\n // Ensure the widget is removed from the current layout.\n this._removeWidget(widget);\n\n // Create the tab layout node to hold the widget.\n let tabNode = new Private.TabLayoutNode(this._createTabBar());\n tabNode.tabBar.addTab(widget.title);\n Private.addAria(widget, tabNode.tabBar);\n\n // Set the root if it does not exist.\n if (!this._root) {\n this._root = tabNode;\n return;\n }\n\n // If the ref node parent is null, split the root.\n if (!refNode || !refNode.parent) {\n // Ensure the root is split with the correct orientation.\n let root = this._splitRoot(orientation);\n\n // Determine the insert index for the new tab node.\n let i = after ? root.children.length : 0;\n\n // Normalize the split node.\n root.normalizeSizes();\n\n // Create the sizer for new tab node.\n let sizer = Private.createSizer(refNode ? 1 : Private.GOLDEN_RATIO);\n\n // Insert the tab node sized to the golden ratio.\n ArrayExt.insert(root.children, i, tabNode);\n ArrayExt.insert(root.sizers, i, sizer);\n ArrayExt.insert(root.handles, i, this._createHandle());\n tabNode.parent = root;\n\n // Re-normalize the split node to maintain the ratios.\n root.normalizeSizes();\n\n // Finally, synchronize the visibility of the handles.\n root.syncHandles();\n return;\n }\n\n // Lookup the split node for the ref widget.\n let splitNode = refNode.parent;\n\n // If the split node already had the correct orientation,\n // the widget can be inserted into the split node directly.\n if (splitNode.orientation === orientation) {\n // Find the index of the ref node.\n let i = splitNode.children.indexOf(refNode);\n\n // Normalize the split node.\n splitNode.normalizeSizes();\n\n // Consume half the space for the insert location.\n let s = (splitNode.sizers[i].sizeHint /= 2);\n\n // Insert the tab node sized to the other half.\n let j = i + (after ? 1 : 0);\n ArrayExt.insert(splitNode.children, j, tabNode);\n ArrayExt.insert(splitNode.sizers, j, Private.createSizer(s));\n ArrayExt.insert(splitNode.handles, j, this._createHandle());\n tabNode.parent = splitNode;\n\n // Finally, synchronize the visibility of the handles.\n splitNode.syncHandles();\n return;\n }\n\n // Remove the ref node from the split node.\n let i = ArrayExt.removeFirstOf(splitNode.children, refNode);\n\n // Create a new normalized split node for the children.\n let childNode = new Private.SplitLayoutNode(orientation);\n childNode.normalized = true;\n\n // Add the ref node sized to half the space.\n childNode.children.push(refNode);\n childNode.sizers.push(Private.createSizer(0.5));\n childNode.handles.push(this._createHandle());\n refNode.parent = childNode;\n\n // Add the tab node sized to the other half.\n let j = after ? 1 : 0;\n ArrayExt.insert(childNode.children, j, tabNode);\n ArrayExt.insert(childNode.sizers, j, Private.createSizer(0.5));\n ArrayExt.insert(childNode.handles, j, this._createHandle());\n tabNode.parent = childNode;\n\n // Synchronize the visibility of the handles.\n childNode.syncHandles();\n\n // Finally, add the new child node to the original split node.\n ArrayExt.insert(splitNode.children, i, childNode);\n childNode.parent = splitNode;\n }\n\n /**\n * Ensure the root is a split node with the given orientation.\n */\n private _splitRoot(\n orientation: Private.Orientation\n ): Private.SplitLayoutNode {\n // Bail early if the root already meets the requirements.\n let oldRoot = this._root;\n if (oldRoot instanceof Private.SplitLayoutNode) {\n if (oldRoot.orientation === orientation) {\n return oldRoot;\n }\n }\n\n // Create a new root node with the specified orientation.\n let newRoot = (this._root = new Private.SplitLayoutNode(orientation));\n\n // Add the old root to the new root.\n if (oldRoot) {\n newRoot.children.push(oldRoot);\n newRoot.sizers.push(Private.createSizer(0));\n newRoot.handles.push(this._createHandle());\n oldRoot.parent = newRoot;\n }\n\n // Return the new root as a convenience.\n return newRoot;\n }\n\n /**\n * Fit the layout to the total size required by the widgets.\n */\n private _fit(): void {\n // Set up the computed minimum size.\n let minW = 0;\n let minH = 0;\n\n // Update the size limits for the layout tree.\n if (this._root) {\n let limits = this._root.fit(this._spacing, this._items);\n minW = limits.minWidth;\n minH = limits.minHeight;\n }\n\n // Update the box sizing and add it to the computed min size.\n let box = (this._box = ElementExt.boxSizing(this.parent!.node));\n minW += box.horizontalSum;\n minH += box.verticalSum;\n\n // Update the parent's min size constraints.\n let style = this.parent!.node.style;\n style.minWidth = `${minW}px`;\n style.minHeight = `${minH}px`;\n\n // Set the dirty flag to ensure only a single update occurs.\n this._dirty = true;\n\n // Notify the ancestor that it should fit immediately. This may\n // cause a resize of the parent, fulfilling the required update.\n if (this.parent!.parent) {\n MessageLoop.sendMessage(this.parent!.parent!, Widget.Msg.FitRequest);\n }\n\n // If the dirty flag is still set, the parent was not resized.\n // Trigger the required update on the parent widget immediately.\n if (this._dirty) {\n MessageLoop.sendMessage(this.parent!, Widget.Msg.UpdateRequest);\n }\n }\n\n /**\n * Update the layout position and size of the widgets.\n *\n * The parent offset dimensions should be `-1` if unknown.\n */\n private _update(offsetWidth: number, offsetHeight: number): void {\n // Clear the dirty flag to indicate the update occurred.\n this._dirty = false;\n\n // Bail early if there is no root layout node.\n if (!this._root) {\n return;\n }\n\n // Measure the parent if the offset dimensions are unknown.\n if (offsetWidth < 0) {\n offsetWidth = this.parent!.node.offsetWidth;\n }\n if (offsetHeight < 0) {\n offsetHeight = this.parent!.node.offsetHeight;\n }\n\n // Ensure the parent box sizing data is computed.\n if (!this._box) {\n this._box = ElementExt.boxSizing(this.parent!.node);\n }\n\n // Compute the actual layout bounds adjusted for border and padding.\n let x = this._box.paddingTop;\n let y = this._box.paddingLeft;\n let width = offsetWidth - this._box.horizontalSum;\n let height = offsetHeight - this._box.verticalSum;\n\n // Update the geometry of the layout tree.\n this._root.update(x, y, width, height, this._spacing, this._items);\n }\n\n /**\n * Create a new tab bar for use by the dock layout.\n *\n * #### Notes\n * The tab bar will be attached to the parent if it exists.\n */\n private _createTabBar(): TabBar {\n // Create the tab bar using the renderer.\n let tabBar = this.renderer.createTabBar(this._document);\n\n // Enforce necessary tab bar behavior.\n tabBar.orientation = 'horizontal';\n\n // Reparent and attach the tab bar to the parent if possible.\n if (this.parent) {\n tabBar.parent = this.parent;\n this.attachWidget(tabBar);\n }\n\n // Return the initialized tab bar.\n return tabBar;\n }\n\n /**\n * Create a new handle for the dock layout.\n *\n * #### Notes\n * The handle will be attached to the parent if it exists.\n */\n private _createHandle(): HTMLDivElement {\n // Create the handle using the renderer.\n let handle = this.renderer.createHandle();\n\n // Initialize the handle layout behavior.\n let style = handle.style;\n style.position = 'absolute';\n style.top = '0';\n style.left = '0';\n style.width = '0';\n style.height = '0';\n\n // Attach the handle to the parent if it exists.\n if (this.parent) {\n this.parent.node.appendChild(handle);\n }\n\n // Return the initialized handle.\n return handle;\n }\n\n private _spacing = 4;\n private _dirty = false;\n private _root: Private.LayoutNode | null = null;\n private _box: ElementExt.IBoxSizing | null = null;\n private _document: Document | ShadowRoot;\n private _hiddenMode: Widget.HiddenMode;\n private _items: Private.ItemMap = new Map();\n}\n\n/**\n * The namespace for the `DockLayout` class statics.\n */\nexport namespace DockLayout {\n /**\n * An options object for creating a dock layout.\n */\n export interface IOptions {\n /**\n * The document to use with the dock panel.\n *\n * The default is the global `document` instance.\n */\n document?: Document | ShadowRoot;\n\n /**\n * The method for hiding widgets.\n *\n * The default is `Widget.HiddenMode.Display`.\n */\n hiddenMode?: Widget.HiddenMode;\n\n /**\n * The renderer to use for the dock layout.\n */\n renderer: IRenderer;\n\n /**\n * The spacing between items in the layout.\n *\n * The default is `4`.\n */\n spacing?: number;\n }\n\n /**\n * A renderer for use with a dock layout.\n */\n export interface IRenderer {\n /**\n * Create a new tab bar for use with a dock layout.\n *\n * @returns A new tab bar for a dock layout.\n */\n createTabBar(document?: Document | ShadowRoot): TabBar;\n\n /**\n * Create a new handle node for use with a dock layout.\n *\n * @returns A new handle node for a dock layout.\n */\n createHandle(): HTMLDivElement;\n }\n\n /**\n * A type alias for the supported insertion modes.\n *\n * An insert mode is used to specify how a widget should be added\n * to the dock layout relative to a reference widget.\n */\n export type InsertMode =\n | /**\n * The area to the top of the reference widget.\n *\n * The widget will be inserted just above the reference widget.\n *\n * If the reference widget is null or invalid, the widget will be\n * inserted at the top edge of the dock layout.\n */\n 'split-top'\n\n /**\n * The area to the left of the reference widget.\n *\n * The widget will be inserted just left of the reference widget.\n *\n * If the reference widget is null or invalid, the widget will be\n * inserted at the left edge of the dock layout.\n */\n | 'split-left'\n\n /**\n * The area to the right of the reference widget.\n *\n * The widget will be inserted just right of the reference widget.\n *\n * If the reference widget is null or invalid, the widget will be\n * inserted at the right edge of the dock layout.\n */\n | 'split-right'\n\n /**\n * The area to the bottom of the reference widget.\n *\n * The widget will be inserted just below the reference widget.\n *\n * If the reference widget is null or invalid, the widget will be\n * inserted at the bottom edge of the dock layout.\n */\n | 'split-bottom'\n\n /**\n * The tab position before the reference widget.\n *\n * The widget will be added as a tab before the reference widget.\n *\n * If the reference widget is null or invalid, a sensible default\n * will be used.\n */\n | 'tab-before'\n\n /**\n * The tab position after the reference widget.\n *\n * The widget will be added as a tab after the reference widget.\n *\n * If the reference widget is null or invalid, a sensible default\n * will be used.\n */\n | 'tab-after';\n\n /**\n * An options object for adding a widget to the dock layout.\n */\n export interface IAddOptions {\n /**\n * The insertion mode for adding the widget.\n *\n * The default is `'tab-after'`.\n */\n mode?: InsertMode;\n\n /**\n * The reference widget for the insert location.\n *\n * The default is `null`.\n */\n ref?: Widget | null;\n }\n\n /**\n * A layout config object for a tab area.\n */\n export interface ITabAreaConfig {\n /**\n * The discriminated type of the config object.\n */\n type: 'tab-area';\n\n /**\n * The widgets contained in the tab area.\n */\n widgets: Widget[];\n\n /**\n * The index of the selected tab.\n */\n currentIndex: number;\n }\n\n /**\n * A layout config object for a split area.\n */\n export interface ISplitAreaConfig {\n /**\n * The discriminated type of the config object.\n */\n type: 'split-area';\n\n /**\n * The orientation of the split area.\n */\n orientation: 'horizontal' | 'vertical';\n\n /**\n * The children in the split area.\n */\n children: AreaConfig[];\n\n /**\n * The relative sizes of the children.\n */\n sizes: number[];\n }\n\n /**\n * A type alias for a general area config.\n */\n export type AreaConfig = ITabAreaConfig | ISplitAreaConfig;\n\n /**\n * A dock layout configuration object.\n */\n export interface ILayoutConfig {\n /**\n * The layout config for the main dock area.\n */\n main: AreaConfig | null;\n }\n\n /**\n * An object which represents the geometry of a tab area.\n */\n export interface ITabAreaGeometry {\n /**\n * The tab bar for the tab area.\n */\n tabBar: TabBar;\n\n /**\n * The local X position of the hit test in the dock area.\n *\n * #### Notes\n * This is the distance from the left edge of the layout parent\n * widget, to the local X coordinate of the hit test query.\n */\n x: number;\n\n /**\n * The local Y position of the hit test in the dock area.\n *\n * #### Notes\n * This is the distance from the top edge of the layout parent\n * widget, to the local Y coordinate of the hit test query.\n */\n y: number;\n\n /**\n * The local coordinate of the top edge of the tab area.\n *\n * #### Notes\n * This is the distance from the top edge of the layout parent\n * widget, to the top edge of the tab area.\n */\n top: number;\n\n /**\n * The local coordinate of the left edge of the tab area.\n *\n * #### Notes\n * This is the distance from the left edge of the layout parent\n * widget, to the left edge of the tab area.\n */\n left: number;\n\n /**\n * The local coordinate of the right edge of the tab area.\n *\n * #### Notes\n * This is the distance from the right edge of the layout parent\n * widget, to the right edge of the tab area.\n */\n right: number;\n\n /**\n * The local coordinate of the bottom edge of the tab area.\n *\n * #### Notes\n * This is the distance from the bottom edge of the layout parent\n * widget, to the bottom edge of the tab area.\n */\n bottom: number;\n\n /**\n * The width of the tab area.\n *\n * #### Notes\n * This is total width allocated for the tab area.\n */\n width: number;\n\n /**\n * The height of the tab area.\n *\n * #### Notes\n * This is total height allocated for the tab area.\n */\n height: number;\n }\n}\n\n/**\n * The namespace for the module implementation details.\n */\nnamespace Private {\n /**\n * A fraction used for sizing root panels; ~= `1 / golden_ratio`.\n */\n export const GOLDEN_RATIO = 0.618;\n\n /**\n * A type alias for a dock layout node.\n */\n export type LayoutNode = TabLayoutNode | SplitLayoutNode;\n\n /**\n * A type alias for the orientation of a split layout node.\n */\n export type Orientation = 'horizontal' | 'vertical';\n\n /**\n * A type alias for a layout item map.\n */\n export type ItemMap = Map;\n\n /**\n * Create a box sizer with an initial size hint.\n */\n export function createSizer(hint: number): BoxSizer {\n let sizer = new BoxSizer();\n sizer.sizeHint = hint;\n sizer.size = hint;\n return sizer;\n }\n\n /**\n * Normalize an area config object and collect the visited widgets.\n */\n export function normalizeAreaConfig(\n config: DockLayout.AreaConfig,\n widgetSet: Set\n ): DockLayout.AreaConfig | null {\n let result: DockLayout.AreaConfig | null;\n if (config.type === 'tab-area') {\n result = normalizeTabAreaConfig(config, widgetSet);\n } else {\n result = normalizeSplitAreaConfig(config, widgetSet);\n }\n return result;\n }\n\n /**\n * Convert a normalized area config into a layout tree.\n */\n export function realizeAreaConfig(\n config: DockLayout.AreaConfig,\n renderer: DockLayout.IRenderer,\n document: Document | ShadowRoot\n ): LayoutNode {\n let node: LayoutNode;\n if (config.type === 'tab-area') {\n node = realizeTabAreaConfig(config, renderer, document);\n } else {\n node = realizeSplitAreaConfig(config, renderer, document);\n }\n return node;\n }\n\n /**\n * A layout node which holds the data for a tabbed area.\n */\n export class TabLayoutNode {\n /**\n * Construct a new tab layout node.\n *\n * @param tabBar - The tab bar to use for the layout node.\n */\n constructor(tabBar: TabBar) {\n let tabSizer = new BoxSizer();\n let widgetSizer = new BoxSizer();\n tabSizer.stretch = 0;\n widgetSizer.stretch = 1;\n this.tabBar = tabBar;\n this.sizers = [tabSizer, widgetSizer];\n }\n\n /**\n * The parent of the layout node.\n */\n parent: SplitLayoutNode | null = null;\n\n /**\n * The tab bar for the layout node.\n */\n readonly tabBar: TabBar;\n\n /**\n * The sizers for the layout node.\n */\n readonly sizers: [BoxSizer, BoxSizer];\n\n /**\n * The most recent value for the `top` edge of the layout box.\n */\n get top(): number {\n return this._top;\n }\n\n /**\n * The most recent value for the `left` edge of the layout box.\n */\n get left(): number {\n return this._left;\n }\n\n /**\n * The most recent value for the `width` of the layout box.\n */\n get width(): number {\n return this._width;\n }\n\n /**\n * The most recent value for the `height` of the layout box.\n */\n get height(): number {\n return this._height;\n }\n\n /**\n * Create an iterator for all widgets in the layout tree.\n */\n iterAllWidgets(): IIterator {\n return chain(once(this.tabBar), this.iterUserWidgets());\n }\n\n /**\n * Create an iterator for the user widgets in the layout tree.\n */\n iterUserWidgets(): IIterator {\n return map(this.tabBar.titles, title => title.owner);\n }\n\n /**\n * Create an iterator for the selected widgets in the layout tree.\n */\n iterSelectedWidgets(): IIterator {\n let title = this.tabBar.currentTitle;\n return title ? once(title.owner) : empty();\n }\n\n /**\n * Create an iterator for the tab bars in the layout tree.\n */\n iterTabBars(): IIterator> {\n return once(this.tabBar);\n }\n\n /**\n * Create an iterator for the handles in the layout tree.\n */\n iterHandles(): IIterator {\n return empty();\n }\n\n /**\n * Find the tab layout node which contains the given widget.\n */\n findTabNode(widget: Widget): TabLayoutNode | null {\n return this.tabBar.titles.indexOf(widget.title) !== -1 ? this : null;\n }\n\n /**\n * Find the split layout node which contains the given handle.\n */\n findSplitNode(\n handle: HTMLDivElement\n ): { index: number; node: SplitLayoutNode } | null {\n return null;\n }\n\n /**\n * Find the first tab layout node in a layout tree.\n */\n findFirstTabNode(): TabLayoutNode | null {\n return this;\n }\n\n /**\n * Find the tab layout node which contains the local point.\n */\n hitTestTabNodes(x: number, y: number): TabLayoutNode | null {\n if (x < this._left || x >= this._left + this._width) {\n return null;\n }\n if (y < this._top || y >= this._top + this._height) {\n return null;\n }\n return this;\n }\n\n /**\n * Create a configuration object for the layout tree.\n */\n createConfig(): DockLayout.ITabAreaConfig {\n let widgets = this.tabBar.titles.map(title => title.owner);\n let currentIndex = this.tabBar.currentIndex;\n return { type: 'tab-area', widgets, currentIndex };\n }\n\n /**\n * Recursively hold all of the sizes in the layout tree.\n *\n * This ignores the sizers of tab layout nodes.\n */\n holdAllSizes(): void {\n return;\n }\n\n /**\n * Fit the layout tree.\n */\n fit(spacing: number, items: ItemMap): ElementExt.ISizeLimits {\n // Set up the limit variables.\n let minWidth = 0;\n let minHeight = 0;\n let maxWidth = Infinity;\n let maxHeight = Infinity;\n\n // Lookup the tab bar layout item.\n let tabBarItem = items.get(this.tabBar);\n\n // Lookup the widget layout item.\n let current = this.tabBar.currentTitle;\n let widgetItem = current ? items.get(current.owner) : undefined;\n\n // Lookup the tab bar and widget sizers.\n let [tabBarSizer, widgetSizer] = this.sizers;\n\n // Update the tab bar limits.\n if (tabBarItem) {\n tabBarItem.fit();\n }\n\n // Update the widget limits.\n if (widgetItem) {\n widgetItem.fit();\n }\n\n // Update the results and sizer for the tab bar.\n if (tabBarItem && !tabBarItem.isHidden) {\n minWidth = Math.max(minWidth, tabBarItem.minWidth);\n minHeight += tabBarItem.minHeight;\n tabBarSizer.minSize = tabBarItem.minHeight;\n tabBarSizer.maxSize = tabBarItem.maxHeight;\n } else {\n tabBarSizer.minSize = 0;\n tabBarSizer.maxSize = 0;\n }\n\n // Update the results and sizer for the current widget.\n if (widgetItem && !widgetItem.isHidden) {\n minWidth = Math.max(minWidth, widgetItem.minWidth);\n minHeight += widgetItem.minHeight;\n widgetSizer.minSize = widgetItem.minHeight;\n widgetSizer.maxSize = Infinity;\n } else {\n widgetSizer.minSize = 0;\n widgetSizer.maxSize = Infinity;\n }\n\n // Return the computed size limits for the layout node.\n return { minWidth, minHeight, maxWidth, maxHeight };\n }\n\n /**\n * Update the layout tree.\n */\n update(\n left: number,\n top: number,\n width: number,\n height: number,\n spacing: number,\n items: ItemMap\n ): void {\n // Update the layout box values.\n this._top = top;\n this._left = left;\n this._width = width;\n this._height = height;\n\n // Lookup the tab bar layout item.\n let tabBarItem = items.get(this.tabBar);\n\n // Lookup the widget layout item.\n let current = this.tabBar.currentTitle;\n let widgetItem = current ? items.get(current.owner) : undefined;\n\n // Distribute the layout space to the sizers.\n BoxEngine.calc(this.sizers, height);\n\n // Update the tab bar item using the computed size.\n if (tabBarItem && !tabBarItem.isHidden) {\n let size = this.sizers[0].size;\n tabBarItem.update(left, top, width, size);\n top += size;\n }\n\n // Layout the widget using the computed size.\n if (widgetItem && !widgetItem.isHidden) {\n let size = this.sizers[1].size;\n widgetItem.update(left, top, width, size);\n }\n }\n\n private _top = 0;\n private _left = 0;\n private _width = 0;\n private _height = 0;\n }\n\n /**\n * A layout node which holds the data for a split area.\n */\n export class SplitLayoutNode {\n /**\n * Construct a new split layout node.\n *\n * @param orientation - The orientation of the node.\n */\n constructor(orientation: Orientation) {\n this.orientation = orientation;\n }\n\n /**\n * The parent of the layout node.\n */\n parent: SplitLayoutNode | null = null;\n\n /**\n * Whether the sizers have been normalized.\n */\n normalized = false;\n\n /**\n * The orientation of the node.\n */\n readonly orientation: Orientation;\n\n /**\n * The child nodes for the split node.\n */\n readonly children: LayoutNode[] = [];\n\n /**\n * The box sizers for the layout children.\n */\n readonly sizers: BoxSizer[] = [];\n\n /**\n * The handles for the layout children.\n */\n readonly handles: HTMLDivElement[] = [];\n\n /**\n * Create an iterator for all widgets in the layout tree.\n */\n iterAllWidgets(): IIterator {\n let children = map(this.children, child => child.iterAllWidgets());\n return new ChainIterator(children);\n }\n\n /**\n * Create an iterator for the user widgets in the layout tree.\n */\n iterUserWidgets(): IIterator {\n let children = map(this.children, child => child.iterUserWidgets());\n return new ChainIterator(children);\n }\n\n /**\n * Create an iterator for the selected widgets in the layout tree.\n */\n iterSelectedWidgets(): IIterator {\n let children = map(this.children, child => child.iterSelectedWidgets());\n return new ChainIterator(children);\n }\n\n /**\n * Create an iterator for the tab bars in the layout tree.\n */\n iterTabBars(): IIterator> {\n let children = map(this.children, child => child.iterTabBars());\n return new ChainIterator>(children);\n }\n\n /**\n * Create an iterator for the handles in the layout tree.\n */\n iterHandles(): IIterator {\n let children = map(this.children, child => child.iterHandles());\n return chain(this.handles, new ChainIterator(children));\n }\n\n /**\n * Find the tab layout node which contains the given widget.\n */\n findTabNode(widget: Widget): TabLayoutNode | null {\n for (let i = 0, n = this.children.length; i < n; ++i) {\n let result = this.children[i].findTabNode(widget);\n if (result) {\n return result;\n }\n }\n return null;\n }\n\n /**\n * Find the split layout node which contains the given handle.\n */\n findSplitNode(\n handle: HTMLDivElement\n ): { index: number; node: SplitLayoutNode } | null {\n let index = this.handles.indexOf(handle);\n if (index !== -1) {\n return { index, node: this };\n }\n for (let i = 0, n = this.children.length; i < n; ++i) {\n let result = this.children[i].findSplitNode(handle);\n if (result) {\n return result;\n }\n }\n return null;\n }\n\n /**\n * Find the first tab layout node in a layout tree.\n */\n findFirstTabNode(): TabLayoutNode | null {\n if (this.children.length === 0) {\n return null;\n }\n return this.children[0].findFirstTabNode();\n }\n\n /**\n * Find the tab layout node which contains the local point.\n */\n hitTestTabNodes(x: number, y: number): TabLayoutNode | null {\n for (let i = 0, n = this.children.length; i < n; ++i) {\n let result = this.children[i].hitTestTabNodes(x, y);\n if (result) {\n return result;\n }\n }\n return null;\n }\n\n /**\n * Create a configuration object for the layout tree.\n */\n createConfig(): DockLayout.ISplitAreaConfig {\n let orientation = this.orientation;\n let sizes = this.createNormalizedSizes();\n let children = this.children.map(child => child.createConfig());\n return { type: 'split-area', orientation, children, sizes };\n }\n\n /**\n * Sync the visibility and orientation of the handles.\n */\n syncHandles(): void {\n each(this.handles, (handle, i) => {\n handle.setAttribute('data-orientation', this.orientation);\n if (i === this.handles.length - 1) {\n handle.classList.add('lm-mod-hidden');\n /* */\n handle.classList.add('p-mod-hidden');\n /* */\n } else {\n handle.classList.remove('lm-mod-hidden');\n /* */\n handle.classList.remove('p-mod-hidden');\n /* */\n }\n });\n }\n\n /**\n * Hold the current sizes of the box sizers.\n *\n * This sets the size hint of each sizer to its current size.\n */\n holdSizes(): void {\n each(this.sizers, sizer => {\n sizer.sizeHint = sizer.size;\n });\n }\n\n /**\n * Recursively hold all of the sizes in the layout tree.\n *\n * This ignores the sizers of tab layout nodes.\n */\n holdAllSizes(): void {\n each(this.children, child => child.holdAllSizes());\n this.holdSizes();\n }\n\n /**\n * Normalize the sizes of the split layout node.\n */\n normalizeSizes(): void {\n // Bail early if the sizers are empty.\n let n = this.sizers.length;\n if (n === 0) {\n return;\n }\n\n // Hold the current sizes of the sizers.\n this.holdSizes();\n\n // Compute the sum of the sizes.\n let sum = reduce(this.sizers, (v, sizer) => v + sizer.sizeHint, 0);\n\n // Normalize the sizes based on the sum.\n if (sum === 0) {\n each(this.sizers, sizer => {\n sizer.size = sizer.sizeHint = 1 / n;\n });\n } else {\n each(this.sizers, sizer => {\n sizer.size = sizer.sizeHint /= sum;\n });\n }\n\n // Mark the sizes as normalized.\n this.normalized = true;\n }\n\n /**\n * Snap the normalized sizes of the split layout node.\n */\n createNormalizedSizes(): number[] {\n // Bail early if the sizers are empty.\n let n = this.sizers.length;\n if (n === 0) {\n return [];\n }\n\n // Grab the current sizes of the sizers.\n let sizes = this.sizers.map(sizer => sizer.size);\n\n // Compute the sum of the sizes.\n let sum = reduce(sizes, (v, size) => v + size, 0);\n\n // Normalize the sizes based on the sum.\n if (sum === 0) {\n each(sizes, (size, i) => {\n sizes[i] = 1 / n;\n });\n } else {\n each(sizes, (size, i) => {\n sizes[i] = size / sum;\n });\n }\n\n // Return the normalized sizes.\n return sizes;\n }\n\n /**\n * Fit the layout tree.\n */\n fit(spacing: number, items: ItemMap): ElementExt.ISizeLimits {\n // Compute the required fixed space.\n let horizontal = this.orientation === 'horizontal';\n let fixed = Math.max(0, this.children.length - 1) * spacing;\n\n // Set up the limit variables.\n let minWidth = horizontal ? fixed : 0;\n let minHeight = horizontal ? 0 : fixed;\n let maxWidth = Infinity;\n let maxHeight = Infinity;\n\n // Fit the children and update the limits.\n for (let i = 0, n = this.children.length; i < n; ++i) {\n let limits = this.children[i].fit(spacing, items);\n if (horizontal) {\n minHeight = Math.max(minHeight, limits.minHeight);\n minWidth += limits.minWidth;\n this.sizers[i].minSize = limits.minWidth;\n } else {\n minWidth = Math.max(minWidth, limits.minWidth);\n minHeight += limits.minHeight;\n this.sizers[i].minSize = limits.minHeight;\n }\n }\n\n // Return the computed limits for the layout node.\n return { minWidth, minHeight, maxWidth, maxHeight };\n }\n\n /**\n * Update the layout tree.\n */\n update(\n left: number,\n top: number,\n width: number,\n height: number,\n spacing: number,\n items: ItemMap\n ): void {\n // Compute the available layout space.\n let horizontal = this.orientation === 'horizontal';\n let fixed = Math.max(0, this.children.length - 1) * spacing;\n let space = Math.max(0, (horizontal ? width : height) - fixed);\n\n // De-normalize the sizes if needed.\n if (this.normalized) {\n each(this.sizers, sizer => {\n sizer.sizeHint *= space;\n });\n this.normalized = false;\n }\n\n // Distribute the layout space to the sizers.\n BoxEngine.calc(this.sizers, space);\n\n // Update the geometry of the child nodes and handles.\n for (let i = 0, n = this.children.length; i < n; ++i) {\n let child = this.children[i];\n let size = this.sizers[i].size;\n let handleStyle = this.handles[i].style;\n if (horizontal) {\n child.update(left, top, size, height, spacing, items);\n left += size;\n handleStyle.top = `${top}px`;\n handleStyle.left = `${left}px`;\n handleStyle.width = `${spacing}px`;\n handleStyle.height = `${height}px`;\n left += spacing;\n } else {\n child.update(left, top, width, size, spacing, items);\n top += size;\n handleStyle.top = `${top}px`;\n handleStyle.left = `${left}px`;\n handleStyle.width = `${width}px`;\n handleStyle.height = `${spacing}px`;\n top += spacing;\n }\n }\n }\n }\n\n export function addAria(widget: Widget, tabBar: TabBar) {\n widget.node.setAttribute('role', 'tabpanel');\n let renderer = tabBar.renderer;\n if (renderer instanceof TabBar.Renderer) {\n let tabId = renderer.createTabKey({\n title: widget.title,\n current: false,\n zIndex: 0\n });\n widget.node.setAttribute('aria-labelledby', tabId);\n }\n }\n\n export function removeAria(widget: Widget) {\n widget.node.removeAttribute('role');\n widget.node.removeAttribute('aria-labelledby');\n }\n\n /**\n * Normalize a tab area config and collect the visited widgets.\n */\n function normalizeTabAreaConfig(\n config: DockLayout.ITabAreaConfig,\n widgetSet: Set\n ): DockLayout.ITabAreaConfig | null {\n // Bail early if there is no content.\n if (config.widgets.length === 0) {\n return null;\n }\n\n // Setup the filtered widgets array.\n let widgets: Widget[] = [];\n\n // Filter the config for unique widgets.\n each(config.widgets, widget => {\n if (!widgetSet.has(widget)) {\n widgetSet.add(widget);\n widgets.push(widget);\n }\n });\n\n // Bail if there are no effective widgets.\n if (widgets.length === 0) {\n return null;\n }\n\n // Normalize the current index.\n let index = config.currentIndex;\n if (index !== -1 && (index < 0 || index >= widgets.length)) {\n index = 0;\n }\n\n // Return a normalized config object.\n return { type: 'tab-area', widgets, currentIndex: index };\n }\n\n /**\n * Normalize a split area config and collect the visited widgets.\n */\n function normalizeSplitAreaConfig(\n config: DockLayout.ISplitAreaConfig,\n widgetSet: Set\n ): DockLayout.AreaConfig | null {\n // Set up the result variables.\n let orientation = config.orientation;\n let children: DockLayout.AreaConfig[] = [];\n let sizes: number[] = [];\n\n // Normalize the config children.\n for (let i = 0, n = config.children.length; i < n; ++i) {\n // Normalize the child config.\n let child = normalizeAreaConfig(config.children[i], widgetSet);\n\n // Ignore an empty child.\n if (!child) {\n continue;\n }\n\n // Add the child or hoist its content as appropriate.\n if (child.type === 'tab-area' || child.orientation !== orientation) {\n children.push(child);\n sizes.push(Math.abs(config.sizes[i] || 0));\n } else {\n children.push(...child.children);\n sizes.push(...child.sizes);\n }\n }\n\n // Bail if there are no effective children.\n if (children.length === 0) {\n return null;\n }\n\n // If there is only one effective child, return that child.\n if (children.length === 1) {\n return children[0];\n }\n\n // Return a normalized config object.\n return { type: 'split-area', orientation, children, sizes };\n }\n\n /**\n * Convert a normalized tab area config into a layout tree.\n */\n function realizeTabAreaConfig(\n config: DockLayout.ITabAreaConfig,\n renderer: DockLayout.IRenderer,\n document: Document | ShadowRoot\n ): TabLayoutNode {\n // Create the tab bar for the layout node.\n let tabBar = renderer.createTabBar(document);\n\n // Hide each widget and add it to the tab bar.\n each(config.widgets, widget => {\n widget.hide();\n tabBar.addTab(widget.title);\n Private.addAria(widget, tabBar);\n });\n\n // Set the current index of the tab bar.\n tabBar.currentIndex = config.currentIndex;\n\n // Return the new tab layout node.\n return new TabLayoutNode(tabBar);\n }\n\n /**\n * Convert a normalized split area config into a layout tree.\n */\n function realizeSplitAreaConfig(\n config: DockLayout.ISplitAreaConfig,\n renderer: DockLayout.IRenderer,\n document: Document | ShadowRoot\n ): SplitLayoutNode {\n // Create the split layout node.\n let node = new SplitLayoutNode(config.orientation);\n\n // Add each child to the layout node.\n each(config.children, (child, i) => {\n // Create the child data for the layout node.\n let childNode = realizeAreaConfig(child, renderer, document);\n let sizer = createSizer(config.sizes[i]);\n let handle = renderer.createHandle();\n\n // Add the child data to the layout node.\n node.children.push(childNode);\n node.handles.push(handle);\n node.sizers.push(sizer);\n\n // Update the parent for the child node.\n childNode.parent = node;\n });\n\n // Synchronize the handle state for the layout node.\n node.syncHandles();\n\n // Normalize the sizes for the layout node.\n node.normalizeSizes();\n\n // Return the new layout node.\n return node;\n }\n}\n","// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n/*-----------------------------------------------------------------------------\n| Copyright (c) 2014-2017, PhosphorJS Contributors\n|\n| Distributed under the terms of the BSD 3-Clause License.\n|\n| The full license is in the file LICENSE, distributed with this software.\n|----------------------------------------------------------------------------*/\nimport { each, find, IIterator, toArray } from '@lumino/algorithm';\n\nimport { MimeData } from '@lumino/coreutils';\n\nimport { IDisposable } from '@lumino/disposable';\n\nimport { ElementExt, Platform } from '@lumino/domutils';\n\nimport { Drag, IDragEvent } from '@lumino/dragdrop';\n\nimport { ConflatableMessage, Message, MessageLoop } from '@lumino/messaging';\n\nimport { AttachedProperty } from '@lumino/properties';\n\nimport { ISignal, Signal } from '@lumino/signaling';\n\nimport { DockLayout } from './docklayout';\n\nimport { TabBar } from './tabbar';\n\nimport { Widget } from './widget';\n\n/**\n * A widget which provides a flexible docking area for widgets.\n */\nexport class DockPanel extends Widget {\n /**\n * Construct a new dock panel.\n *\n * @param options - The options for initializing the panel.\n */\n constructor(options: DockPanel.IOptions = {}) {\n super();\n this.addClass('lm-DockPanel');\n /* */\n this.addClass('p-DockPanel');\n /* */\n this._document = options.document || document;\n this._mode = options.mode || 'multiple-document';\n this._renderer = options.renderer || DockPanel.defaultRenderer;\n this._edges = options.edges || Private.DEFAULT_EDGES;\n if (options.tabsMovable !== undefined) {\n this._tabsMovable = options.tabsMovable;\n }\n if (options.tabsConstrained !== undefined) {\n this._tabsConstrained = options.tabsConstrained;\n }\n if (options.addButtonEnabled !== undefined) {\n this._addButtonEnabled = options.addButtonEnabled;\n }\n\n // Toggle the CSS mode attribute.\n this.dataset['mode'] = this._mode;\n\n // Create the delegate renderer for the layout.\n let renderer: DockPanel.IRenderer = {\n createTabBar: () => this._createTabBar(),\n createHandle: () => this._createHandle()\n };\n\n // Set up the dock layout for the panel.\n this.layout = new DockLayout({\n document: this._document,\n renderer,\n spacing: options.spacing,\n hiddenMode: options.hiddenMode\n });\n\n // Set up the overlay drop indicator.\n this.overlay = options.overlay || new DockPanel.Overlay();\n this.node.appendChild(this.overlay.node);\n }\n\n /**\n * Dispose of the resources held by the panel.\n */\n dispose(): void {\n // Ensure the mouse is released.\n this._releaseMouse();\n\n // Hide the overlay.\n this.overlay.hide(0);\n\n // Cancel a drag if one is in progress.\n if (this._drag) {\n this._drag.dispose();\n }\n\n // Dispose of the base class.\n super.dispose();\n }\n\n /**\n * The method for hiding widgets.\n */\n get hiddenMode(): Widget.HiddenMode {\n return (this.layout as DockLayout).hiddenMode;\n }\n\n /**\n * Set the method for hiding widgets.\n */\n set hiddenMode(v: Widget.HiddenMode) {\n (this.layout as DockLayout).hiddenMode = v;\n }\n\n /**\n * A signal emitted when the layout configuration is modified.\n *\n * #### Notes\n * This signal is emitted whenever the current layout configuration\n * may have changed.\n *\n * This signal is emitted asynchronously in a collapsed fashion, so\n * that multiple synchronous modifications results in only a single\n * emit of the signal.\n */\n get layoutModified(): ISignal {\n return this._layoutModified;\n }\n\n /**\n * A signal emitted when the add button on a tab bar is clicked.\n *\n */\n get addRequested(): ISignal> {\n return this._addRequested;\n }\n\n /**\n * The overlay used by the dock panel.\n */\n readonly overlay: DockPanel.IOverlay;\n\n /**\n * The renderer used by the dock panel.\n */\n get renderer(): DockPanel.IRenderer {\n return (this.layout as DockLayout).renderer;\n }\n\n /**\n * Get the spacing between the widgets.\n */\n get spacing(): number {\n return (this.layout as DockLayout).spacing;\n }\n\n /**\n * Set the spacing between the widgets.\n */\n set spacing(value: number) {\n (this.layout as DockLayout).spacing = value;\n }\n\n /**\n * Get the mode for the dock panel.\n */\n get mode(): DockPanel.Mode {\n return this._mode;\n }\n\n /**\n * Set the mode for the dock panel.\n *\n * #### Notes\n * Changing the mode is a destructive operation with respect to the\n * panel's layout configuration. If layout state must be preserved,\n * save the current layout config before changing the mode.\n */\n set mode(value: DockPanel.Mode) {\n // Bail early if the mode does not change.\n if (this._mode === value) {\n return;\n }\n\n // Update the internal mode.\n this._mode = value;\n\n // Toggle the CSS mode attribute.\n this.dataset['mode'] = value;\n\n // Get the layout for the panel.\n let layout = this.layout as DockLayout;\n\n // Configure the layout for the specified mode.\n switch (value) {\n case 'multiple-document':\n each(layout.tabBars(), tabBar => {\n tabBar.show();\n });\n break;\n case 'single-document':\n layout.restoreLayout(Private.createSingleDocumentConfig(this));\n break;\n default:\n throw 'unreachable';\n }\n\n // Schedule an emit of the layout modified signal.\n MessageLoop.postMessage(this, Private.LayoutModified);\n }\n\n /**\n * Whether the tabs can be dragged / moved at runtime.\n */\n get tabsMovable(): boolean {\n return this._tabsMovable;\n }\n\n /**\n * Enable / Disable draggable / movable tabs.\n */\n set tabsMovable(value: boolean) {\n this._tabsMovable = value;\n each(this.tabBars(), tabbar => {\n tabbar.tabsMovable = value;\n });\n }\n\n /**\n * Whether the tabs are constrained to their source dock panel\n */\n get tabsConstrained(): boolean {\n return this._tabsConstrained;\n }\n\n /**\n * Constrain/Allow tabs to be dragged outside of this dock panel\n */\n set tabsConstrained(value: boolean) {\n this._tabsConstrained = value;\n }\n\n /**\n * Whether the add buttons for each tab bar are enabled.\n */\n get addButtonEnabled(): boolean {\n return this._addButtonEnabled;\n }\n\n /**\n * Set whether the add buttons for each tab bar are enabled.\n */\n set addButtonEnabled(value: boolean) {\n this._addButtonEnabled = value;\n each(this.tabBars(), tabbar => {\n tabbar.addButtonEnabled = value;\n });\n }\n\n /**\n * Whether the dock panel is empty.\n */\n get isEmpty(): boolean {\n return (this.layout as DockLayout).isEmpty;\n }\n\n /**\n * Create an iterator over the user widgets in the panel.\n *\n * @returns A new iterator over the user widgets in the panel.\n *\n * #### Notes\n * This iterator does not include the generated tab bars.\n */\n widgets(): IIterator {\n return (this.layout as DockLayout).widgets();\n }\n\n /**\n * Create an iterator over the selected widgets in the panel.\n *\n * @returns A new iterator over the selected user widgets.\n *\n * #### Notes\n * This iterator yields the widgets corresponding to the current tab\n * of each tab bar in the panel.\n */\n selectedWidgets(): IIterator {\n return (this.layout as DockLayout).selectedWidgets();\n }\n\n /**\n * Create an iterator over the tab bars in the panel.\n *\n * @returns A new iterator over the tab bars in the panel.\n *\n * #### Notes\n * This iterator does not include the user widgets.\n */\n tabBars(): IIterator> {\n return (this.layout as DockLayout).tabBars();\n }\n\n /**\n * Create an iterator over the handles in the panel.\n *\n * @returns A new iterator over the handles in the panel.\n */\n handles(): IIterator {\n return (this.layout as DockLayout).handles();\n }\n\n /**\n * Select a specific widget in the dock panel.\n *\n * @param widget - The widget of interest.\n *\n * #### Notes\n * This will make the widget the current widget in its tab area.\n */\n selectWidget(widget: Widget): void {\n // Find the tab bar which contains the widget.\n let tabBar = find(this.tabBars(), bar => {\n return bar.titles.indexOf(widget.title) !== -1;\n });\n\n // Throw an error if no tab bar is found.\n if (!tabBar) {\n throw new Error('Widget is not contained in the dock panel.');\n }\n\n // Ensure the widget is the current widget.\n tabBar.currentTitle = widget.title;\n }\n\n /**\n * Activate a specified widget in the dock panel.\n *\n * @param widget - The widget of interest.\n *\n * #### Notes\n * This will select and activate the given widget.\n */\n activateWidget(widget: Widget): void {\n this.selectWidget(widget);\n widget.activate();\n }\n\n /**\n * Save the current layout configuration of the dock panel.\n *\n * @returns A new config object for the current layout state.\n *\n * #### Notes\n * The return value can be provided to the `restoreLayout` method\n * in order to restore the layout to its current configuration.\n */\n saveLayout(): DockPanel.ILayoutConfig {\n return (this.layout as DockLayout).saveLayout();\n }\n\n /**\n * Restore the layout to a previously saved configuration.\n *\n * @param config - The layout configuration to restore.\n *\n * #### Notes\n * Widgets which currently belong to the layout but which are not\n * contained in the config will be unparented.\n *\n * The dock panel automatically reverts to `'multiple-document'`\n * mode when a layout config is restored.\n */\n restoreLayout(config: DockPanel.ILayoutConfig): void {\n // Reset the mode.\n this._mode = 'multiple-document';\n\n // Restore the layout.\n (this.layout as DockLayout).restoreLayout(config);\n\n // Flush the message loop on IE and Edge to prevent flicker.\n if (Platform.IS_EDGE || Platform.IS_IE) {\n MessageLoop.flush();\n }\n\n // Schedule an emit of the layout modified signal.\n MessageLoop.postMessage(this, Private.LayoutModified);\n }\n\n /**\n * Add a widget to the dock panel.\n *\n * @param widget - The widget to add to the dock panel.\n *\n * @param options - The additional options for adding the widget.\n *\n * #### Notes\n * If the panel is in single document mode, the options are ignored\n * and the widget is always added as tab in the hidden tab bar.\n */\n addWidget(widget: Widget, options: DockPanel.IAddOptions = {}): void {\n // Add the widget to the layout.\n if (this._mode === 'single-document') {\n (this.layout as DockLayout).addWidget(widget);\n } else {\n (this.layout as DockLayout).addWidget(widget, options);\n }\n\n // Schedule an emit of the layout modified signal.\n MessageLoop.postMessage(this, Private.LayoutModified);\n }\n\n /**\n * Process a message sent to the widget.\n *\n * @param msg - The message sent to the widget.\n */\n processMessage(msg: Message): void {\n if (msg.type === 'layout-modified') {\n this._layoutModified.emit(undefined);\n } else {\n super.processMessage(msg);\n }\n }\n\n /**\n * Handle the DOM events for the dock panel.\n *\n * @param event - The DOM event sent to the panel.\n *\n * #### Notes\n * This method implements the DOM `EventListener` interface and is\n * called in response to events on the panel's DOM node. It should\n * not be called directly by user code.\n */\n handleEvent(event: Event): void {\n switch (event.type) {\n case 'lm-dragenter':\n this._evtDragEnter(event as IDragEvent);\n break;\n case 'lm-dragleave':\n this._evtDragLeave(event as IDragEvent);\n break;\n case 'lm-dragover':\n this._evtDragOver(event as IDragEvent);\n break;\n case 'lm-drop':\n this._evtDrop(event as IDragEvent);\n break;\n case 'mousedown': // \n this._evtMouseDown(event as MouseEvent);\n break;\n case 'mousemove': // \n this._evtMouseMove(event as MouseEvent);\n break;\n case 'mouseup': // \n this._evtMouseUp(event as MouseEvent);\n break;\n case 'pointerdown':\n this._evtMouseDown(event as MouseEvent);\n break;\n case 'pointermove':\n this._evtMouseMove(event as MouseEvent);\n break;\n case 'pointerup':\n this._evtMouseUp(event as MouseEvent);\n break;\n case 'keydown':\n this._evtKeyDown(event as KeyboardEvent);\n break;\n case 'contextmenu':\n event.preventDefault();\n event.stopPropagation();\n break;\n }\n }\n\n /**\n * A message handler invoked on a `'before-attach'` message.\n */\n protected onBeforeAttach(msg: Message): void {\n this.node.addEventListener('lm-dragenter', this);\n this.node.addEventListener('lm-dragleave', this);\n this.node.addEventListener('lm-dragover', this);\n this.node.addEventListener('lm-drop', this);\n this.node.addEventListener('mousedown', this); // \n this.node.addEventListener('pointerdown', this);\n }\n\n /**\n * A message handler invoked on an `'after-detach'` message.\n */\n protected onAfterDetach(msg: Message): void {\n this.node.removeEventListener('lm-dragenter', this);\n this.node.removeEventListener('lm-dragleave', this);\n this.node.removeEventListener('lm-dragover', this);\n this.node.removeEventListener('lm-drop', this);\n this.node.removeEventListener('mousedown', this); // \n this.node.removeEventListener('pointerdown', this);\n this._releaseMouse();\n }\n\n /**\n * A message handler invoked on a `'child-added'` message.\n */\n protected onChildAdded(msg: Widget.ChildMessage): void {\n // Ignore the generated tab bars.\n if (Private.isGeneratedTabBarProperty.get(msg.child)) {\n return;\n }\n\n // Add the widget class to the child.\n msg.child.addClass('lm-DockPanel-widget');\n /* */\n msg.child.addClass('p-DockPanel-widget');\n /* */\n }\n\n /**\n * A message handler invoked on a `'child-removed'` message.\n */\n protected onChildRemoved(msg: Widget.ChildMessage): void {\n // Ignore the generated tab bars.\n if (Private.isGeneratedTabBarProperty.get(msg.child)) {\n return;\n }\n\n // Remove the widget class from the child.\n msg.child.removeClass('lm-DockPanel-widget');\n /* */\n msg.child.removeClass('p-DockPanel-widget');\n /* */\n\n // Schedule an emit of the layout modified signal.\n MessageLoop.postMessage(this, Private.LayoutModified);\n }\n\n /**\n * Handle the `'lm-dragenter'` event for the dock panel.\n */\n private _evtDragEnter(event: IDragEvent): void {\n // If the factory mime type is present, mark the event as\n // handled in order to get the rest of the drag events.\n if (event.mimeData.hasData('application/vnd.lumino.widget-factory')) {\n event.preventDefault();\n event.stopPropagation();\n }\n }\n\n /**\n * Handle the `'lm-dragleave'` event for the dock panel.\n */\n private _evtDragLeave(event: IDragEvent): void {\n // Mark the event as handled.\n event.preventDefault();\n\n if (this._tabsConstrained && event.source !== this) return;\n\n event.stopPropagation();\n\n // The new target might be a descendant, so we might still handle the drop.\n // Hide asynchronously so that if a lm-dragover event bubbles up to us, the\n // hide is cancelled by the lm-dragover handler's show overlay logic.\n this.overlay.hide(1);\n }\n\n /**\n * Handle the `'lm-dragover'` event for the dock panel.\n */\n private _evtDragOver(event: IDragEvent): void {\n // Mark the event as handled.\n event.preventDefault();\n\n // Show the drop indicator overlay and update the drop\n // action based on the drop target zone under the mouse.\n if (\n (this._tabsConstrained && event.source !== this) ||\n this._showOverlay(event.clientX, event.clientY) === 'invalid'\n ) {\n event.dropAction = 'none';\n } else {\n event.stopPropagation();\n event.dropAction = event.proposedAction;\n }\n }\n\n /**\n * Handle the `'lm-drop'` event for the dock panel.\n */\n private _evtDrop(event: IDragEvent): void {\n // Mark the event as handled.\n event.preventDefault();\n\n // Hide the drop indicator overlay.\n this.overlay.hide(0);\n\n // Bail if the proposed action is to do nothing.\n if (event.proposedAction === 'none') {\n event.dropAction = 'none';\n return;\n }\n\n // Find the drop target under the mouse.\n let { clientX, clientY } = event;\n let { zone, target } = Private.findDropTarget(\n this,\n clientX,\n clientY,\n this._edges\n );\n\n // Bail if the drop zone is invalid.\n if (\n (this._tabsConstrained && event.source !== this) ||\n zone === 'invalid'\n ) {\n event.dropAction = 'none';\n return;\n }\n\n // Bail if the factory mime type has invalid data.\n let mimeData = event.mimeData;\n let factory = mimeData.getData('application/vnd.lumino.widget-factory');\n if (typeof factory !== 'function') {\n event.dropAction = 'none';\n return;\n }\n\n // Bail if the factory does not produce a widget.\n let widget = factory();\n if (!(widget instanceof Widget)) {\n event.dropAction = 'none';\n return;\n }\n\n // Bail if the widget is an ancestor of the dock panel.\n if (widget.contains(this)) {\n event.dropAction = 'none';\n return;\n }\n\n // Find the reference widget for the drop target.\n let ref = target ? Private.getDropRef(target.tabBar) : null;\n\n // Add the widget according to the indicated drop zone.\n switch (zone) {\n case 'root-all':\n this.addWidget(widget);\n break;\n case 'root-top':\n this.addWidget(widget, { mode: 'split-top' });\n break;\n case 'root-left':\n this.addWidget(widget, { mode: 'split-left' });\n break;\n case 'root-right':\n this.addWidget(widget, { mode: 'split-right' });\n break;\n case 'root-bottom':\n this.addWidget(widget, { mode: 'split-bottom' });\n break;\n case 'widget-all':\n this.addWidget(widget, { mode: 'tab-after', ref });\n break;\n case 'widget-top':\n this.addWidget(widget, { mode: 'split-top', ref });\n break;\n case 'widget-left':\n this.addWidget(widget, { mode: 'split-left', ref });\n break;\n case 'widget-right':\n this.addWidget(widget, { mode: 'split-right', ref });\n break;\n case 'widget-bottom':\n this.addWidget(widget, { mode: 'split-bottom', ref });\n break;\n case 'widget-tab':\n this.addWidget(widget, { mode: 'tab-after', ref });\n break;\n default:\n throw 'unreachable';\n }\n\n // Accept the proposed drop action.\n event.dropAction = event.proposedAction;\n\n // Stop propagation if we have not bailed so far.\n event.stopPropagation();\n\n // Activate the dropped widget.\n this.activateWidget(widget);\n }\n\n /**\n * Handle the `'keydown'` event for the dock panel.\n */\n private _evtKeyDown(event: KeyboardEvent): void {\n // Stop input events during drag.\n event.preventDefault();\n event.stopPropagation();\n\n // Release the mouse if `Escape` is pressed.\n if (event.keyCode === 27) {\n // Finalize the mouse release.\n this._releaseMouse();\n\n // Schedule an emit of the layout modified signal.\n MessageLoop.postMessage(this, Private.LayoutModified);\n }\n }\n\n /**\n * Handle the `'mousedown'` event for the dock panel.\n */\n private _evtMouseDown(event: MouseEvent): void {\n // Do nothing if the left mouse button is not pressed.\n if (event.button !== 0) {\n return;\n }\n\n // Find the handle which contains the mouse target, if any.\n let layout = this.layout as DockLayout;\n let target = event.target as HTMLElement;\n let handle = find(layout.handles(), handle => handle.contains(target));\n if (!handle) {\n return;\n }\n\n // Stop the event when a handle is pressed.\n event.preventDefault();\n event.stopPropagation();\n\n // Add the extra document listeners.\n this._document.addEventListener('keydown', this, true);\n this._document.addEventListener('mouseup', this, true); // \n this._document.addEventListener('mousemove', this, true); // \n this._document.addEventListener('pointerup', this, true);\n this._document.addEventListener('pointermove', this, true);\n this._document.addEventListener('contextmenu', this, true);\n\n // Compute the offset deltas for the handle press.\n let rect = handle.getBoundingClientRect();\n let deltaX = event.clientX - rect.left;\n let deltaY = event.clientY - rect.top;\n\n // Override the cursor and store the press data.\n let style = window.getComputedStyle(handle);\n let override = Drag.overrideCursor(style.cursor!, this._document);\n this._pressData = { handle, deltaX, deltaY, override };\n }\n\n /**\n * Handle the `'mousemove'` event for the dock panel.\n */\n private _evtMouseMove(event: MouseEvent): void {\n // Bail early if no drag is in progress.\n if (!this._pressData) {\n return;\n }\n\n // Stop the event when dragging a handle.\n event.preventDefault();\n event.stopPropagation();\n\n // Compute the desired offset position for the handle.\n let rect = this.node.getBoundingClientRect();\n let xPos = event.clientX - rect.left - this._pressData.deltaX;\n let yPos = event.clientY - rect.top - this._pressData.deltaY;\n\n // Set the handle as close to the desired position as possible.\n let layout = this.layout as DockLayout;\n layout.moveHandle(this._pressData.handle, xPos, yPos);\n }\n\n /**\n * Handle the `'mouseup'` event for the dock panel.\n */\n private _evtMouseUp(event: MouseEvent): void {\n // Do nothing if the left mouse button is not released.\n if (event.button !== 0) {\n return;\n }\n\n // Stop the event when releasing a handle.\n event.preventDefault();\n event.stopPropagation();\n\n // Finalize the mouse release.\n this._releaseMouse();\n\n // Schedule an emit of the layout modified signal.\n MessageLoop.postMessage(this, Private.LayoutModified);\n }\n\n /**\n * Release the mouse grab for the dock panel.\n */\n private _releaseMouse(): void {\n // Bail early if no drag is in progress.\n if (!this._pressData) {\n return;\n }\n\n // Clear the override cursor.\n this._pressData.override.dispose();\n this._pressData = null;\n\n // Remove the extra document listeners.\n this._document.removeEventListener('keydown', this, true);\n this._document.removeEventListener('mouseup', this, true); // \n this._document.removeEventListener('mousemove', this, true); // \n this._document.removeEventListener('pointerup', this, true);\n this._document.removeEventListener('pointermove', this, true);\n this._document.removeEventListener('contextmenu', this, true);\n }\n\n /**\n * Show the overlay indicator at the given client position.\n *\n * Returns the drop zone at the specified client position.\n *\n * #### Notes\n * If the position is not over a valid zone, the overlay is hidden.\n */\n private _showOverlay(clientX: number, clientY: number): Private.DropZone {\n // Find the dock target for the given client position.\n let { zone, target } = Private.findDropTarget(\n this,\n clientX,\n clientY,\n this._edges\n );\n\n // If the drop zone is invalid, hide the overlay and bail.\n if (zone === 'invalid') {\n this.overlay.hide(100);\n return zone;\n }\n\n // Setup the variables needed to compute the overlay geometry.\n let top: number;\n let left: number;\n let right: number;\n let bottom: number;\n let box = ElementExt.boxSizing(this.node); // TODO cache this?\n let rect = this.node.getBoundingClientRect();\n\n // Compute the overlay geometry based on the dock zone.\n switch (zone) {\n case 'root-all':\n top = box.paddingTop;\n left = box.paddingLeft;\n right = box.paddingRight;\n bottom = box.paddingBottom;\n break;\n case 'root-top':\n top = box.paddingTop;\n left = box.paddingLeft;\n right = box.paddingRight;\n bottom = rect.height * Private.GOLDEN_RATIO;\n break;\n case 'root-left':\n top = box.paddingTop;\n left = box.paddingLeft;\n right = rect.width * Private.GOLDEN_RATIO;\n bottom = box.paddingBottom;\n break;\n case 'root-right':\n top = box.paddingTop;\n left = rect.width * Private.GOLDEN_RATIO;\n right = box.paddingRight;\n bottom = box.paddingBottom;\n break;\n case 'root-bottom':\n top = rect.height * Private.GOLDEN_RATIO;\n left = box.paddingLeft;\n right = box.paddingRight;\n bottom = box.paddingBottom;\n break;\n case 'widget-all':\n top = target!.top;\n left = target!.left;\n right = target!.right;\n bottom = target!.bottom;\n break;\n case 'widget-top':\n top = target!.top;\n left = target!.left;\n right = target!.right;\n bottom = target!.bottom + target!.height / 2;\n break;\n case 'widget-left':\n top = target!.top;\n left = target!.left;\n right = target!.right + target!.width / 2;\n bottom = target!.bottom;\n break;\n case 'widget-right':\n top = target!.top;\n left = target!.left + target!.width / 2;\n right = target!.right;\n bottom = target!.bottom;\n break;\n case 'widget-bottom':\n top = target!.top + target!.height / 2;\n left = target!.left;\n right = target!.right;\n bottom = target!.bottom;\n break;\n case 'widget-tab':\n const tabHeight = target!.tabBar.node.getBoundingClientRect().height;\n top = target!.top;\n left = target!.left;\n right = target!.right;\n bottom = target!.bottom + target!.height - tabHeight;\n break;\n default:\n throw 'unreachable';\n }\n\n // Show the overlay with the computed geometry.\n this.overlay.show({ top, left, right, bottom });\n\n // Finally, return the computed drop zone.\n return zone;\n }\n\n /**\n * Create a new tab bar for use by the panel.\n */\n private _createTabBar(): TabBar {\n // Create the tab bar.\n let tabBar = this._renderer.createTabBar(this._document);\n\n // Set the generated tab bar property for the tab bar.\n Private.isGeneratedTabBarProperty.set(tabBar, true);\n\n // Hide the tab bar when in single document mode.\n if (this._mode === 'single-document') {\n tabBar.hide();\n }\n\n // Enforce necessary tab bar behavior.\n // TODO do we really want to enforce *all* of these?\n tabBar.tabsMovable = this._tabsMovable;\n tabBar.allowDeselect = false;\n tabBar.addButtonEnabled = this._addButtonEnabled;\n tabBar.removeBehavior = 'select-previous-tab';\n tabBar.insertBehavior = 'select-tab-if-needed';\n\n // Connect the signal handlers for the tab bar.\n tabBar.tabMoved.connect(this._onTabMoved, this);\n tabBar.currentChanged.connect(this._onCurrentChanged, this);\n tabBar.tabCloseRequested.connect(this._onTabCloseRequested, this);\n tabBar.tabDetachRequested.connect(this._onTabDetachRequested, this);\n tabBar.tabActivateRequested.connect(this._onTabActivateRequested, this);\n tabBar.addRequested.connect(this._onTabAddRequested, this);\n\n // Return the initialized tab bar.\n return tabBar;\n }\n\n /**\n * Create a new handle for use by the panel.\n */\n private _createHandle(): HTMLDivElement {\n return this._renderer.createHandle();\n }\n\n /**\n * Handle the `tabMoved` signal from a tab bar.\n */\n private _onTabMoved(): void {\n MessageLoop.postMessage(this, Private.LayoutModified);\n }\n\n /**\n * Handle the `currentChanged` signal from a tab bar.\n */\n private _onCurrentChanged(\n sender: TabBar,\n args: TabBar.ICurrentChangedArgs\n ): void {\n // Extract the previous and current title from the args.\n let { previousTitle, currentTitle } = args;\n\n // Hide the previous widget.\n if (previousTitle) {\n previousTitle.owner.hide();\n }\n\n // Show the current widget.\n if (currentTitle) {\n currentTitle.owner.show();\n }\n\n // Flush the message loop on IE and Edge to prevent flicker.\n if (Platform.IS_EDGE || Platform.IS_IE) {\n MessageLoop.flush();\n }\n\n // Schedule an emit of the layout modified signal.\n MessageLoop.postMessage(this, Private.LayoutModified);\n }\n\n /**\n * Handle the `addRequested` signal from a tab bar.\n */\n private _onTabAddRequested(sender: TabBar): void {\n this._addRequested.emit(sender);\n }\n\n /**\n * Handle the `tabActivateRequested` signal from a tab bar.\n */\n private _onTabActivateRequested(\n sender: TabBar,\n args: TabBar.ITabActivateRequestedArgs\n ): void {\n args.title.owner.activate();\n }\n\n /**\n * Handle the `tabCloseRequested` signal from a tab bar.\n */\n private _onTabCloseRequested(\n sender: TabBar,\n args: TabBar.ITabCloseRequestedArgs\n ): void {\n args.title.owner.close();\n }\n\n /**\n * Handle the `tabDetachRequested` signal from a tab bar.\n */\n private _onTabDetachRequested(\n sender: TabBar,\n args: TabBar.ITabDetachRequestedArgs\n ): void {\n // Do nothing if a drag is already in progress.\n if (this._drag) {\n return;\n }\n\n // Release the tab bar's hold on the mouse.\n sender.releaseMouse();\n\n // Extract the data from the args.\n let { title, tab, clientX, clientY } = args;\n\n // Setup the mime data for the drag operation.\n let mimeData = new MimeData();\n let factory = () => title.owner;\n mimeData.setData('application/vnd.lumino.widget-factory', factory);\n\n // Create the drag image for the drag operation.\n let dragImage = tab.cloneNode(true) as HTMLElement;\n\n // Create the drag object to manage the drag-drop operation.\n this._drag = new Drag({\n document: this._document,\n mimeData,\n dragImage,\n proposedAction: 'move',\n supportedActions: 'move',\n source: this\n });\n\n // Hide the tab node in the original tab.\n tab.classList.add('lm-mod-hidden');\n /* */\n tab.classList.add('p-mod-hidden'); // Create the cleanup callback.\n /* */ let cleanup = () => {\n this._drag = null;\n tab.classList.remove('lm-mod-hidden');\n /* */\n tab.classList.remove('p-mod-hidden');\n /* */\n };\n\n // Start the drag operation and cleanup when done.\n this._drag.start(clientX, clientY).then(cleanup);\n }\n\n private _edges: DockPanel.IEdges;\n private _document: Document | ShadowRoot;\n private _mode: DockPanel.Mode;\n private _drag: Drag | null = null;\n private _renderer: DockPanel.IRenderer;\n private _tabsMovable: boolean = true;\n private _tabsConstrained: boolean = false;\n private _addButtonEnabled: boolean = false;\n private _pressData: Private.IPressData | null = null;\n private _layoutModified = new Signal(this);\n\n private _addRequested = new Signal>(this);\n}\n\n/**\n * The namespace for the `DockPanel` class statics.\n */\nexport namespace DockPanel {\n /**\n * An options object for creating a dock panel.\n */\n export interface IOptions {\n /**\n * The document to use with the dock panel.\n *\n * The default is the global `document` instance.\n */\n\n document?: Document | ShadowRoot;\n /**\n * The overlay to use with the dock panel.\n *\n * The default is a new `Overlay` instance.\n */\n overlay?: IOverlay;\n\n /**\n * The renderer to use for the dock panel.\n *\n * The default is a shared renderer instance.\n */\n renderer?: IRenderer;\n\n /**\n * The spacing between the items in the panel.\n *\n * The default is `4`.\n */\n spacing?: number;\n\n /**\n * The mode for the dock panel.\n *\n * The default is `'multiple-document'`.\n */\n mode?: DockPanel.Mode;\n\n /**\n * The sizes of the edge drop zones, in pixels.\n * If not given, default values will be used.\n */\n edges?: IEdges;\n\n /**\n * The method for hiding widgets.\n *\n * The default is `Widget.HiddenMode.Display`.\n */\n hiddenMode?: Widget.HiddenMode;\n\n /**\n * Allow tabs to be draggable / movable by user.\n *\n * The default is `'true'`.\n */\n tabsMovable?: boolean;\n\n /**\n * Constrain tabs to this dock panel\n *\n * The default is `'false'`.\n */\n tabsConstrained?: boolean;\n\n /**\n * Enable add buttons in each of the dock panel's tab bars.\n *\n * The default is `'false'`.\n */\n addButtonEnabled?: boolean;\n }\n\n /**\n * The sizes of the edge drop zones, in pixels.\n */\n export interface IEdges {\n /**\n * The size of the top edge drop zone.\n */\n top: number;\n\n /**\n * The size of the right edge drop zone.\n */\n right: number;\n\n /**\n * The size of the bottom edge drop zone.\n */\n bottom: number;\n\n /**\n * The size of the left edge drop zone.\n */\n left: number;\n }\n\n /**\n * A type alias for the supported dock panel modes.\n */\n export type Mode =\n | /**\n * The single document mode.\n *\n * In this mode, only a single widget is visible at a time, and that\n * widget fills the available layout space. No tab bars are visible.\n */\n 'single-document'\n\n /**\n * The multiple document mode.\n *\n * In this mode, multiple documents are displayed in separate tab\n * areas, and those areas can be individually resized by the user.\n */\n | 'multiple-document';\n\n /**\n * A type alias for a layout configuration object.\n */\n export type ILayoutConfig = DockLayout.ILayoutConfig;\n\n /**\n * A type alias for the supported insertion modes.\n */\n export type InsertMode = DockLayout.InsertMode;\n\n /**\n * A type alias for the add widget options.\n */\n export type IAddOptions = DockLayout.IAddOptions;\n\n /**\n * An object which holds the geometry for overlay positioning.\n */\n export interface IOverlayGeometry {\n /**\n * The distance between the overlay and parent top edges.\n */\n top: number;\n\n /**\n * The distance between the overlay and parent left edges.\n */\n left: number;\n\n /**\n * The distance between the overlay and parent right edges.\n */\n right: number;\n\n /**\n * The distance between the overlay and parent bottom edges.\n */\n bottom: number;\n }\n\n /**\n * An object which manages the overlay node for a dock panel.\n */\n export interface IOverlay {\n /**\n * The DOM node for the overlay.\n */\n readonly node: HTMLDivElement;\n\n /**\n * Show the overlay using the given overlay geometry.\n *\n * @param geo - The desired geometry for the overlay.\n *\n * #### Notes\n * The given geometry values assume the node will use absolute\n * positioning.\n *\n * This is called on every mouse move event during a drag in order\n * to update the position of the overlay. It should be efficient.\n */\n show(geo: IOverlayGeometry): void;\n\n /**\n * Hide the overlay node.\n *\n * @param delay - The delay (in ms) before hiding the overlay.\n * A delay value <= 0 should hide the overlay immediately.\n *\n * #### Notes\n * This is called whenever the overlay node should been hidden.\n */\n hide(delay: number): void;\n }\n\n /**\n * A concrete implementation of `IOverlay`.\n *\n * This is the default overlay implementation for a dock panel.\n */\n export class Overlay implements IOverlay {\n /**\n * Construct a new overlay.\n */\n constructor() {\n this.node = document.createElement('div');\n this.node.classList.add('lm-DockPanel-overlay');\n this.node.classList.add('lm-mod-hidden');\n /* */\n this.node.classList.add('p-DockPanel-overlay');\n this.node.classList.add('p-mod-hidden');\n /* */ this.node.style.position = 'absolute';\n }\n\n /**\n * The DOM node for the overlay.\n */\n readonly node: HTMLDivElement;\n\n /**\n * Show the overlay using the given overlay geometry.\n *\n * @param geo - The desired geometry for the overlay.\n */\n show(geo: IOverlayGeometry): void {\n // Update the position of the overlay.\n let style = this.node.style;\n style.top = `${geo.top}px`;\n style.left = `${geo.left}px`;\n style.right = `${geo.right}px`;\n style.bottom = `${geo.bottom}px`;\n\n // Clear any pending hide timer.\n clearTimeout(this._timer);\n this._timer = -1;\n\n // If the overlay is already visible, we're done.\n if (!this._hidden) {\n return;\n }\n\n // Clear the hidden flag.\n this._hidden = false;\n\n // Finally, show the overlay.\n this.node.classList.remove('lm-mod-hidden');\n /* */\n this.node.classList.remove('p-mod-hidden');\n /* */\n }\n\n /**\n * Hide the overlay node.\n *\n * @param delay - The delay (in ms) before hiding the overlay.\n * A delay value <= 0 will hide the overlay immediately.\n */\n hide(delay: number): void {\n // Do nothing if the overlay is already hidden.\n if (this._hidden) {\n return;\n }\n\n // Hide immediately if the delay is <= 0.\n if (delay <= 0) {\n clearTimeout(this._timer);\n this._timer = -1;\n this._hidden = true;\n this.node.classList.add('lm-mod-hidden');\n /* */\n this.node.classList.add('p-mod-hidden');\n /* */ return;\n }\n\n // Do nothing if a hide is already pending.\n if (this._timer !== -1) {\n return;\n }\n\n // Otherwise setup the hide timer.\n this._timer = window.setTimeout(() => {\n this._timer = -1;\n this._hidden = true;\n this.node.classList.add('lm-mod-hidden');\n /* */\n this.node.classList.add('p-mod-hidden');\n /* */\n }, delay);\n }\n\n private _timer = -1;\n private _hidden = true;\n }\n\n /**\n * A type alias for a dock panel renderer;\n */\n export type IRenderer = DockLayout.IRenderer;\n\n /**\n * The default implementation of `IRenderer`.\n */\n export class Renderer implements IRenderer {\n /**\n * Create a new tab bar for use with a dock panel.\n *\n * @returns A new tab bar for a dock panel.\n */\n createTabBar(document?: Document | ShadowRoot): TabBar {\n let bar = new TabBar({ document });\n bar.addClass('lm-DockPanel-tabBar');\n /* */\n bar.addClass('p-DockPanel-tabBar');\n /* */\n return bar;\n }\n\n /**\n * Create a new handle node for use with a dock panel.\n *\n * @returns A new handle node for a dock panel.\n */\n createHandle(): HTMLDivElement {\n let handle = document.createElement('div');\n handle.className = 'lm-DockPanel-handle';\n /* */\n handle.classList.add('p-DockPanel-handle');\n /* */ return handle;\n }\n }\n\n /**\n * The default `Renderer` instance.\n */\n export const defaultRenderer = new Renderer();\n}\n\n/**\n * The namespace for the module implementation details.\n */\nnamespace Private {\n /**\n * A fraction used for sizing root panels; ~= `1 / golden_ratio`.\n */\n export const GOLDEN_RATIO = 0.618;\n\n /**\n * The default sizes for the edge drop zones, in pixels.\n */\n export const DEFAULT_EDGES = {\n /**\n * The size of the top edge dock zone for the root panel, in pixels.\n * This is different from the others to distinguish between the top\n * tab bar and the top root zone.\n */\n top: 12,\n\n /**\n * The size of the edge dock zone for the root panel, in pixels.\n */\n right: 40,\n\n /**\n * The size of the edge dock zone for the root panel, in pixels.\n */\n bottom: 40,\n\n /**\n * The size of the edge dock zone for the root panel, in pixels.\n */\n left: 40\n };\n\n /**\n * A singleton `'layout-modified'` conflatable message.\n */\n export const LayoutModified = new ConflatableMessage('layout-modified');\n\n /**\n * An object which holds mouse press data.\n */\n export interface IPressData {\n /**\n * The handle which was pressed.\n */\n handle: HTMLDivElement;\n\n /**\n * The X offset of the press in handle coordinates.\n */\n deltaX: number;\n\n /**\n * The Y offset of the press in handle coordinates.\n */\n deltaY: number;\n\n /**\n * The disposable which will clear the override cursor.\n */\n override: IDisposable;\n }\n\n /**\n * A type alias for a drop zone.\n */\n export type DropZone =\n | /**\n * An invalid drop zone.\n */\n 'invalid'\n\n /**\n * The entirety of the root dock area.\n */\n | 'root-all'\n\n /**\n * The top portion of the root dock area.\n */\n | 'root-top'\n\n /**\n * The left portion of the root dock area.\n */\n | 'root-left'\n\n /**\n * The right portion of the root dock area.\n */\n | 'root-right'\n\n /**\n * The bottom portion of the root dock area.\n */\n | 'root-bottom'\n\n /**\n * The entirety of a tabbed widget area.\n */\n | 'widget-all'\n\n /**\n * The top portion of tabbed widget area.\n */\n | 'widget-top'\n\n /**\n * The left portion of tabbed widget area.\n */\n | 'widget-left'\n\n /**\n * The right portion of tabbed widget area.\n */\n | 'widget-right'\n\n /**\n * The bottom portion of tabbed widget area.\n */\n | 'widget-bottom'\n\n /**\n * The the bar of a tabbed widget area.\n */\n | 'widget-tab';\n\n /**\n * An object which holds the drop target zone and widget.\n */\n export interface IDropTarget {\n /**\n * The semantic zone for the mouse position.\n */\n zone: DropZone;\n\n /**\n * The tab area geometry for the drop zone, or `null`.\n */\n target: DockLayout.ITabAreaGeometry | null;\n }\n\n /**\n * An attached property used to track generated tab bars.\n */\n export const isGeneratedTabBarProperty = new AttachedProperty<\n Widget,\n boolean\n >({\n name: 'isGeneratedTabBar',\n create: () => false\n });\n\n /**\n * Create a single document config for the widgets in a dock panel.\n */\n export function createSingleDocumentConfig(\n panel: DockPanel\n ): DockPanel.ILayoutConfig {\n // Return an empty config if the panel is empty.\n if (panel.isEmpty) {\n return { main: null };\n }\n\n // Get a flat array of the widgets in the panel.\n let widgets = toArray(panel.widgets());\n\n // Get the first selected widget in the panel.\n let selected = panel.selectedWidgets().next();\n\n // Compute the current index for the new config.\n let currentIndex = selected ? widgets.indexOf(selected) : -1;\n\n // Return the single document config.\n return { main: { type: 'tab-area', widgets, currentIndex } };\n }\n\n /**\n * Find the drop target at the given client position.\n */\n export function findDropTarget(\n panel: DockPanel,\n clientX: number,\n clientY: number,\n edges: DockPanel.IEdges\n ): IDropTarget {\n // Bail if the mouse is not over the dock panel.\n if (!ElementExt.hitTest(panel.node, clientX, clientY)) {\n return { zone: 'invalid', target: null };\n }\n\n // Look up the layout for the panel.\n let layout = panel.layout as DockLayout;\n\n // If the layout is empty, indicate the entire root drop zone.\n if (layout.isEmpty) {\n return { zone: 'root-all', target: null };\n }\n\n // Test the edge zones when in multiple document mode.\n if (panel.mode === 'multiple-document') {\n // Get the client rect for the dock panel.\n let panelRect = panel.node.getBoundingClientRect();\n\n // Compute the distance to each edge of the panel.\n let pl = clientX - panelRect.left + 1;\n let pt = clientY - panelRect.top + 1;\n let pr = panelRect.right - clientX;\n let pb = panelRect.bottom - clientY;\n\n // Find the minimum distance to an edge.\n let pd = Math.min(pt, pr, pb, pl);\n\n // Return a root zone if the mouse is within an edge.\n switch (pd) {\n case pt:\n if (pt < edges.top) {\n return { zone: 'root-top', target: null };\n }\n break;\n case pr:\n if (pr < edges.right) {\n return { zone: 'root-right', target: null };\n }\n break;\n case pb:\n if (pb < edges.bottom) {\n return { zone: 'root-bottom', target: null };\n }\n break;\n case pl:\n if (pl < edges.left) {\n return { zone: 'root-left', target: null };\n }\n break;\n default:\n throw 'unreachable';\n }\n }\n\n // Hit test the dock layout at the given client position.\n let target = layout.hitTestTabAreas(clientX, clientY);\n\n // Bail if no target area was found.\n if (!target) {\n return { zone: 'invalid', target: null };\n }\n\n // Return the whole tab area when in single document mode.\n if (panel.mode === 'single-document') {\n return { zone: 'widget-all', target };\n }\n\n // Compute the distance to each edge of the tab area.\n let al = target.x - target.left + 1;\n let at = target.y - target.top + 1;\n let ar = target.left + target.width - target.x;\n let ab = target.top + target.height - target.y;\n\n const tabHeight = target.tabBar.node.getBoundingClientRect().height;\n if (at < tabHeight) {\n return { zone: 'widget-tab', target };\n }\n\n // Get the X and Y edge sizes for the area.\n let rx = Math.round(target.width / 3);\n let ry = Math.round(target.height / 3);\n\n // If the mouse is not within an edge, indicate the entire area.\n if (al > rx && ar > rx && at > ry && ab > ry) {\n return { zone: 'widget-all', target };\n }\n\n // Scale the distances by the slenderness ratio.\n al /= rx;\n at /= ry;\n ar /= rx;\n ab /= ry;\n\n // Find the minimum distance to the area edge.\n let ad = Math.min(al, at, ar, ab);\n\n // Find the widget zone for the area edge.\n let zone: DropZone;\n switch (ad) {\n case al:\n zone = 'widget-left';\n break;\n case at:\n zone = 'widget-top';\n break;\n case ar:\n zone = 'widget-right';\n break;\n case ab:\n zone = 'widget-bottom';\n break;\n default:\n throw 'unreachable';\n }\n\n // Return the final drop target.\n return { zone, target };\n }\n\n /**\n * Get the drop reference widget for a tab bar.\n */\n export function getDropRef(tabBar: TabBar): Widget | null {\n if (tabBar.titles.length === 0) {\n return null;\n }\n if (tabBar.currentTitle) {\n return tabBar.currentTitle.owner;\n }\n return tabBar.titles[tabBar.titles.length - 1].owner;\n }\n}\n","// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n/*-----------------------------------------------------------------------------\n| Copyright (c) 2014-2017, PhosphorJS Contributors\n|\n| Distributed under the terms of the BSD 3-Clause License.\n|\n| The full license is in the file LICENSE, distributed with this software.\n|----------------------------------------------------------------------------*/\nimport { ArrayExt, each, IIterator, map } from '@lumino/algorithm';\n\nimport { ElementExt } from '@lumino/domutils';\n\nimport { Message, MessageLoop } from '@lumino/messaging';\n\nimport { AttachedProperty } from '@lumino/properties';\n\nimport { BoxEngine, BoxSizer } from './boxengine';\n\nimport { Layout, LayoutItem } from './layout';\n\nimport { Widget } from './widget';\n\n/**\n * A layout which arranges its widgets in a grid.\n */\nexport class GridLayout extends Layout {\n /**\n * Construct a new grid layout.\n *\n * @param options - The options for initializing the layout.\n */\n constructor(options: GridLayout.IOptions = {}) {\n super(options);\n if (options.rowCount !== undefined) {\n Private.reallocSizers(this._rowSizers, options.rowCount);\n }\n if (options.columnCount !== undefined) {\n Private.reallocSizers(this._columnSizers, options.columnCount);\n }\n if (options.rowSpacing !== undefined) {\n this._rowSpacing = Private.clampValue(options.rowSpacing);\n }\n if (options.columnSpacing !== undefined) {\n this._columnSpacing = Private.clampValue(options.columnSpacing);\n }\n }\n\n /**\n * Dispose of the resources held by the layout.\n */\n dispose(): void {\n // Dispose of the widgets and layout items.\n each(this._items, item => {\n let widget = item.widget;\n item.dispose();\n widget.dispose();\n });\n\n // Clear the layout state.\n this._box = null;\n this._items.length = 0;\n this._rowStarts.length = 0;\n this._rowSizers.length = 0;\n this._columnStarts.length = 0;\n this._columnSizers.length = 0;\n\n // Dispose of the rest of the layout.\n super.dispose();\n }\n\n /**\n * Get the number of rows in the layout.\n */\n get rowCount(): number {\n return this._rowSizers.length;\n }\n\n /**\n * Set the number of rows in the layout.\n *\n * #### Notes\n * The minimum row count is `1`.\n */\n set rowCount(value: number) {\n // Do nothing if the row count does not change.\n if (value === this.rowCount) {\n return;\n }\n\n // Reallocate the row sizers.\n Private.reallocSizers(this._rowSizers, value);\n\n // Schedule a fit of the parent.\n if (this.parent) {\n this.parent.fit();\n }\n }\n\n /**\n * Get the number of columns in the layout.\n */\n get columnCount(): number {\n return this._columnSizers.length;\n }\n\n /**\n * Set the number of columns in the layout.\n *\n * #### Notes\n * The minimum column count is `1`.\n */\n set columnCount(value: number) {\n // Do nothing if the column count does not change.\n if (value === this.columnCount) {\n return;\n }\n\n // Reallocate the column sizers.\n Private.reallocSizers(this._columnSizers, value);\n\n // Schedule a fit of the parent.\n if (this.parent) {\n this.parent.fit();\n }\n }\n\n /**\n * Get the row spacing for the layout.\n */\n get rowSpacing(): number {\n return this._rowSpacing;\n }\n\n /**\n * Set the row spacing for the layout.\n */\n set rowSpacing(value: number) {\n // Clamp the spacing to the allowed range.\n value = Private.clampValue(value);\n\n // Bail if the spacing does not change\n if (this._rowSpacing === value) {\n return;\n }\n\n // Update the internal spacing.\n this._rowSpacing = value;\n\n // Schedule a fit of the parent.\n if (this.parent) {\n this.parent.fit();\n }\n }\n\n /**\n * Get the column spacing for the layout.\n */\n get columnSpacing(): number {\n return this._columnSpacing;\n }\n\n /**\n * Set the col spacing for the layout.\n */\n set columnSpacing(value: number) {\n // Clamp the spacing to the allowed range.\n value = Private.clampValue(value);\n\n // Bail if the spacing does not change\n if (this._columnSpacing === value) {\n return;\n }\n\n // Update the internal spacing.\n this._columnSpacing = value;\n\n // Schedule a fit of the parent.\n if (this.parent) {\n this.parent.fit();\n }\n }\n\n /**\n * Get the stretch factor for a specific row.\n *\n * @param index - The row index of interest.\n *\n * @returns The stretch factor for the row.\n *\n * #### Notes\n * This returns `-1` if the index is out of range.\n */\n rowStretch(index: number): number {\n let sizer = this._rowSizers[index];\n return sizer ? sizer.stretch : -1;\n }\n\n /**\n * Set the stretch factor for a specific row.\n *\n * @param index - The row index of interest.\n *\n * @param value - The stretch factor for the row.\n *\n * #### Notes\n * This is a no-op if the index is out of range.\n */\n setRowStretch(index: number, value: number): void {\n // Look up the row sizer.\n let sizer = this._rowSizers[index];\n\n // Bail if the index is out of range.\n if (!sizer) {\n return;\n }\n\n // Clamp the value to the allowed range.\n value = Private.clampValue(value);\n\n // Bail if the stretch does not change.\n if (sizer.stretch === value) {\n return;\n }\n\n // Update the sizer stretch.\n sizer.stretch = value;\n\n // Schedule an update of the parent.\n if (this.parent) {\n this.parent.update();\n }\n }\n\n /**\n * Get the stretch factor for a specific column.\n *\n * @param index - The column index of interest.\n *\n * @returns The stretch factor for the column.\n *\n * #### Notes\n * This returns `-1` if the index is out of range.\n */\n columnStretch(index: number): number {\n let sizer = this._columnSizers[index];\n return sizer ? sizer.stretch : -1;\n }\n\n /**\n * Set the stretch factor for a specific column.\n *\n * @param index - The column index of interest.\n *\n * @param value - The stretch factor for the column.\n *\n * #### Notes\n * This is a no-op if the index is out of range.\n */\n setColumnStretch(index: number, value: number): void {\n // Look up the column sizer.\n let sizer = this._columnSizers[index];\n\n // Bail if the index is out of range.\n if (!sizer) {\n return;\n }\n\n // Clamp the value to the allowed range.\n value = Private.clampValue(value);\n\n // Bail if the stretch does not change.\n if (sizer.stretch === value) {\n return;\n }\n\n // Update the sizer stretch.\n sizer.stretch = value;\n\n // Schedule an update of the parent.\n if (this.parent) {\n this.parent.update();\n }\n }\n\n /**\n * Create an iterator over the widgets in the layout.\n *\n * @returns A new iterator over the widgets in the layout.\n */\n iter(): IIterator {\n return map(this._items, item => item.widget);\n }\n\n /**\n * Add a widget to the grid layout.\n *\n * @param widget - The widget to add to the layout.\n *\n * #### Notes\n * If the widget is already contained in the layout, this is no-op.\n */\n addWidget(widget: Widget): void {\n // Look up the index for the widget.\n let i = ArrayExt.findFirstIndex(this._items, it => it.widget === widget);\n\n // Bail if the widget is already in the layout.\n if (i !== -1) {\n return;\n }\n\n // Add the widget to the layout.\n this._items.push(new LayoutItem(widget));\n\n // Attach the widget to the parent.\n if (this.parent) {\n this.attachWidget(widget);\n }\n }\n\n /**\n * Remove a widget from the grid layout.\n *\n * @param widget - The widget to remove from the layout.\n *\n * #### Notes\n * A widget is automatically removed from the layout when its `parent`\n * is set to `null`. This method should only be invoked directly when\n * removing a widget from a layout which has yet to be installed on a\n * parent widget.\n *\n * This method does *not* modify the widget's `parent`.\n */\n removeWidget(widget: Widget): void {\n // Look up the index for the widget.\n let i = ArrayExt.findFirstIndex(this._items, it => it.widget === widget);\n\n // Bail if the widget is not in the layout.\n if (i === -1) {\n return;\n }\n\n // Remove the widget from the layout.\n let item = ArrayExt.removeAt(this._items, i)!;\n\n // Detach the widget from the parent.\n if (this.parent) {\n this.detachWidget(widget);\n }\n\n // Dispose the layout item.\n item.dispose();\n }\n\n /**\n * Perform layout initialization which requires the parent widget.\n */\n protected init(): void {\n super.init();\n each(this, widget => {\n this.attachWidget(widget);\n });\n }\n\n /**\n * Attach a widget to the parent's DOM node.\n *\n * @param widget - The widget to attach to the parent.\n */\n protected attachWidget(widget: Widget): void {\n // Send a `'before-attach'` message if the parent is attached.\n if (this.parent!.isAttached) {\n MessageLoop.sendMessage(widget, Widget.Msg.BeforeAttach);\n }\n\n // Add the widget's node to the parent.\n this.parent!.node.appendChild(widget.node);\n\n // Send an `'after-attach'` message if the parent is attached.\n if (this.parent!.isAttached) {\n MessageLoop.sendMessage(widget, Widget.Msg.AfterAttach);\n }\n\n // Post a fit request for the parent widget.\n this.parent!.fit();\n }\n\n /**\n * Detach a widget from the parent's DOM node.\n *\n * @param widget - The widget to detach from the parent.\n */\n protected detachWidget(widget: Widget): void {\n // Send a `'before-detach'` message if the parent is attached.\n if (this.parent!.isAttached) {\n MessageLoop.sendMessage(widget, Widget.Msg.BeforeDetach);\n }\n\n // Remove the widget's node from the parent.\n this.parent!.node.removeChild(widget.node);\n\n // Send an `'after-detach'` message if the parent is attached.\n if (this.parent!.isAttached) {\n MessageLoop.sendMessage(widget, Widget.Msg.AfterDetach);\n }\n\n // Post a fit request for the parent widget.\n this.parent!.fit();\n }\n\n /**\n * A message handler invoked on a `'before-show'` message.\n */\n protected onBeforeShow(msg: Message): void {\n super.onBeforeShow(msg);\n this.parent!.update();\n }\n\n /**\n * A message handler invoked on a `'before-attach'` message.\n */\n protected onBeforeAttach(msg: Message): void {\n super.onBeforeAttach(msg);\n this.parent!.fit();\n }\n\n /**\n * A message handler invoked on a `'child-shown'` message.\n */\n protected onChildShown(msg: Widget.ChildMessage): void {\n this.parent!.fit();\n }\n\n /**\n * A message handler invoked on a `'child-hidden'` message.\n */\n protected onChildHidden(msg: Widget.ChildMessage): void {\n this.parent!.fit();\n }\n\n /**\n * A message handler invoked on a `'resize'` message.\n */\n protected onResize(msg: Widget.ResizeMessage): void {\n if (this.parent!.isVisible) {\n this._update(msg.width, msg.height);\n }\n }\n\n /**\n * A message handler invoked on an `'update-request'` message.\n */\n protected onUpdateRequest(msg: Message): void {\n if (this.parent!.isVisible) {\n this._update(-1, -1);\n }\n }\n\n /**\n * A message handler invoked on a `'fit-request'` message.\n */\n protected onFitRequest(msg: Message): void {\n if (this.parent!.isAttached) {\n this._fit();\n }\n }\n\n /**\n * Fit the layout to the total size required by the widgets.\n */\n private _fit(): void {\n // Reset the min sizes of the sizers.\n for (let i = 0, n = this.rowCount; i < n; ++i) {\n this._rowSizers[i].minSize = 0;\n }\n for (let i = 0, n = this.columnCount; i < n; ++i) {\n this._columnSizers[i].minSize = 0;\n }\n\n // Filter for the visible layout items.\n let items = this._items.filter(it => !it.isHidden);\n\n // Fit the layout items.\n for (let i = 0, n = items.length; i < n; ++i) {\n items[i].fit();\n }\n\n // Get the max row and column index.\n let maxRow = this.rowCount - 1;\n let maxCol = this.columnCount - 1;\n\n // Sort the items by row span.\n items.sort(Private.rowSpanCmp);\n\n // Update the min sizes of the row sizers.\n for (let i = 0, n = items.length; i < n; ++i) {\n // Fetch the item.\n let item = items[i];\n\n // Get the row bounds for the item.\n let config = GridLayout.getCellConfig(item.widget);\n let r1 = Math.min(config.row, maxRow);\n let r2 = Math.min(config.row + config.rowSpan - 1, maxRow);\n\n // Distribute the minimum height to the sizers as needed.\n Private.distributeMin(this._rowSizers, r1, r2, item.minHeight);\n }\n\n // Sort the items by column span.\n items.sort(Private.columnSpanCmp);\n\n // Update the min sizes of the column sizers.\n for (let i = 0, n = items.length; i < n; ++i) {\n // Fetch the item.\n let item = items[i];\n\n // Get the column bounds for the item.\n let config = GridLayout.getCellConfig(item.widget);\n let c1 = Math.min(config.column, maxCol);\n let c2 = Math.min(config.column + config.columnSpan - 1, maxCol);\n\n // Distribute the minimum width to the sizers as needed.\n Private.distributeMin(this._columnSizers, c1, c2, item.minWidth);\n }\n\n // If no size constraint is needed, just update the parent.\n if (this.fitPolicy === 'set-no-constraint') {\n MessageLoop.sendMessage(this.parent!, Widget.Msg.UpdateRequest);\n return;\n }\n\n // Set up the computed min size.\n let minH = maxRow * this._rowSpacing;\n let minW = maxCol * this._columnSpacing;\n\n // Add the sizer minimums to the computed min size.\n for (let i = 0, n = this.rowCount; i < n; ++i) {\n minH += this._rowSizers[i].minSize;\n }\n for (let i = 0, n = this.columnCount; i < n; ++i) {\n minW += this._columnSizers[i].minSize;\n }\n\n // Update the box sizing and add it to the computed min size.\n let box = (this._box = ElementExt.boxSizing(this.parent!.node));\n minW += box.horizontalSum;\n minH += box.verticalSum;\n\n // Update the parent's min size constraints.\n let style = this.parent!.node.style;\n style.minWidth = `${minW}px`;\n style.minHeight = `${minH}px`;\n\n // Set the dirty flag to ensure only a single update occurs.\n this._dirty = true;\n\n // Notify the ancestor that it should fit immediately. This may\n // cause a resize of the parent, fulfilling the required update.\n if (this.parent!.parent) {\n MessageLoop.sendMessage(this.parent!.parent!, Widget.Msg.FitRequest);\n }\n\n // If the dirty flag is still set, the parent was not resized.\n // Trigger the required update on the parent widget immediately.\n if (this._dirty) {\n MessageLoop.sendMessage(this.parent!, Widget.Msg.UpdateRequest);\n }\n }\n\n /**\n * Update the layout position and size of the widgets.\n *\n * The parent offset dimensions should be `-1` if unknown.\n */\n private _update(offsetWidth: number, offsetHeight: number): void {\n // Clear the dirty flag to indicate the update occurred.\n this._dirty = false;\n\n // Measure the parent if the offset dimensions are unknown.\n if (offsetWidth < 0) {\n offsetWidth = this.parent!.node.offsetWidth;\n }\n if (offsetHeight < 0) {\n offsetHeight = this.parent!.node.offsetHeight;\n }\n\n // Ensure the parent box sizing data is computed.\n if (!this._box) {\n this._box = ElementExt.boxSizing(this.parent!.node);\n }\n\n // Compute the layout area adjusted for border and padding.\n let top = this._box.paddingTop;\n let left = this._box.paddingLeft;\n let width = offsetWidth - this._box.horizontalSum;\n let height = offsetHeight - this._box.verticalSum;\n\n // Get the max row and column index.\n let maxRow = this.rowCount - 1;\n let maxCol = this.columnCount - 1;\n\n // Compute the total fixed row and column space.\n let fixedRowSpace = maxRow * this._rowSpacing;\n let fixedColSpace = maxCol * this._columnSpacing;\n\n // Distribute the available space to the box sizers.\n BoxEngine.calc(this._rowSizers, Math.max(0, height - fixedRowSpace));\n BoxEngine.calc(this._columnSizers, Math.max(0, width - fixedColSpace));\n\n // Update the row start positions.\n for (let i = 0, pos = top, n = this.rowCount; i < n; ++i) {\n this._rowStarts[i] = pos;\n pos += this._rowSizers[i].size + this._rowSpacing;\n }\n\n // Update the column start positions.\n for (let i = 0, pos = left, n = this.columnCount; i < n; ++i) {\n this._columnStarts[i] = pos;\n pos += this._columnSizers[i].size + this._columnSpacing;\n }\n\n // Update the geometry of the layout items.\n for (let i = 0, n = this._items.length; i < n; ++i) {\n // Fetch the item.\n let item = this._items[i];\n\n // Ignore hidden items.\n if (item.isHidden) {\n continue;\n }\n\n // Fetch the cell bounds for the widget.\n let config = GridLayout.getCellConfig(item.widget);\n let r1 = Math.min(config.row, maxRow);\n let c1 = Math.min(config.column, maxCol);\n let r2 = Math.min(config.row + config.rowSpan - 1, maxRow);\n let c2 = Math.min(config.column + config.columnSpan - 1, maxCol);\n\n // Compute the cell geometry.\n let x = this._columnStarts[c1];\n let y = this._rowStarts[r1];\n let w = this._columnStarts[c2] + this._columnSizers[c2].size - x;\n let h = this._rowStarts[r2] + this._rowSizers[r2].size - y;\n\n // Update the geometry of the layout item.\n item.update(x, y, w, h);\n }\n }\n\n private _dirty = false;\n private _rowSpacing = 4;\n private _columnSpacing = 4;\n private _items: LayoutItem[] = [];\n private _rowStarts: number[] = [];\n private _columnStarts: number[] = [];\n private _rowSizers: BoxSizer[] = [new BoxSizer()];\n private _columnSizers: BoxSizer[] = [new BoxSizer()];\n private _box: ElementExt.IBoxSizing | null = null;\n}\n\n/**\n * The namespace for the `GridLayout` class statics.\n */\nexport namespace GridLayout {\n /**\n * An options object for initializing a grid layout.\n */\n export interface IOptions extends Layout.IOptions {\n /**\n * The initial row count for the layout.\n *\n * The default is `1`.\n */\n rowCount?: number;\n\n /**\n * The initial column count for the layout.\n *\n * The default is `1`.\n */\n columnCount?: number;\n\n /**\n * The spacing between rows in the layout.\n *\n * The default is `4`.\n */\n rowSpacing?: number;\n\n /**\n * The spacing between columns in the layout.\n *\n * The default is `4`.\n */\n columnSpacing?: number;\n }\n\n /**\n * An object which holds the cell configuration for a widget.\n */\n export interface ICellConfig {\n /**\n * The row index for the widget.\n */\n readonly row: number;\n\n /**\n * The column index for the widget.\n */\n readonly column: number;\n\n /**\n * The row span for the widget.\n */\n readonly rowSpan: number;\n\n /**\n * The column span for the widget.\n */\n readonly columnSpan: number;\n }\n\n /**\n * Get the cell config for the given widget.\n *\n * @param widget - The widget of interest.\n *\n * @returns The cell config for the widget.\n */\n export function getCellConfig(widget: Widget): ICellConfig {\n return Private.cellConfigProperty.get(widget);\n }\n\n /**\n * Set the cell config for the given widget.\n *\n * @param widget - The widget of interest.\n *\n * @param value - The value for the cell config.\n */\n export function setCellConfig(\n widget: Widget,\n value: Partial\n ): void {\n Private.cellConfigProperty.set(widget, Private.normalizeConfig(value));\n }\n}\n\n/**\n * The namespace for the module implementation details.\n */\nnamespace Private {\n /**\n * The property descriptor for the widget cell config.\n */\n export const cellConfigProperty = new AttachedProperty<\n Widget,\n GridLayout.ICellConfig\n >({\n name: 'cellConfig',\n create: () => ({ row: 0, column: 0, rowSpan: 1, columnSpan: 1 }),\n changed: onChildCellConfigChanged\n });\n\n /**\n * Normalize a partial cell config object.\n */\n export function normalizeConfig(\n config: Partial\n ): GridLayout.ICellConfig {\n let row = Math.max(0, Math.floor(config.row || 0));\n let column = Math.max(0, Math.floor(config.column || 0));\n let rowSpan = Math.max(1, Math.floor(config.rowSpan || 0));\n let columnSpan = Math.max(1, Math.floor(config.columnSpan || 0));\n return { row, column, rowSpan, columnSpan };\n }\n\n /**\n * Clamp a value to an integer >= 0.\n */\n export function clampValue(value: number): number {\n return Math.max(0, Math.floor(value));\n }\n\n /**\n * A sort comparison function for row spans.\n */\n export function rowSpanCmp(a: LayoutItem, b: LayoutItem): number {\n let c1 = cellConfigProperty.get(a.widget);\n let c2 = cellConfigProperty.get(b.widget);\n return c1.rowSpan - c2.rowSpan;\n }\n\n /**\n * A sort comparison function for column spans.\n */\n export function columnSpanCmp(a: LayoutItem, b: LayoutItem): number {\n let c1 = cellConfigProperty.get(a.widget);\n let c2 = cellConfigProperty.get(b.widget);\n return c1.columnSpan - c2.columnSpan;\n }\n\n /**\n * Reallocate the box sizers for the given grid dimensions.\n */\n export function reallocSizers(sizers: BoxSizer[], count: number): void {\n // Coerce the count to the valid range.\n count = Math.max(1, Math.floor(count));\n\n // Add the missing sizers.\n while (sizers.length < count) {\n sizers.push(new BoxSizer());\n }\n\n // Remove the extra sizers.\n if (sizers.length > count) {\n sizers.length = count;\n }\n }\n\n /**\n * Distribute a min size constraint across a range of sizers.\n */\n export function distributeMin(\n sizers: BoxSizer[],\n i1: number,\n i2: number,\n minSize: number\n ): void {\n // Sanity check the indices.\n if (i2 < i1) {\n return;\n }\n\n // Handle the simple case of no cell span.\n if (i1 === i2) {\n let sizer = sizers[i1];\n sizer.minSize = Math.max(sizer.minSize, minSize);\n return;\n }\n\n // Compute the total current min size of the span.\n let totalMin = 0;\n for (let i = i1; i <= i2; ++i) {\n totalMin += sizers[i].minSize;\n }\n\n // Do nothing if the total is greater than the required.\n if (totalMin >= minSize) {\n return;\n }\n\n // Compute the portion of the space to allocate to each sizer.\n let portion = (minSize - totalMin) / (i2 - i1 + 1);\n\n // Add the portion to each sizer.\n for (let i = i1; i <= i2; ++i) {\n sizers[i].minSize += portion;\n }\n }\n\n /**\n * The change handler for the child cell config property.\n */\n function onChildCellConfigChanged(child: Widget): void {\n if (child.parent && child.parent.layout instanceof GridLayout) {\n child.parent.fit();\n }\n }\n}\n","// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n/*-----------------------------------------------------------------------------\n| Copyright (c) 2014-2017, PhosphorJS Contributors\n|\n| Distributed under the terms of the BSD 3-Clause License.\n|\n| The full license is in the file LICENSE, distributed with this software.\n|----------------------------------------------------------------------------*/\nimport { ArrayExt, each, filter, find, max } from '@lumino/algorithm';\n\nimport { IDisposable } from '@lumino/disposable';\n\nimport { ISignal, Signal } from '@lumino/signaling';\n\nimport { Widget } from './widget';\n\n/**\n * A class which tracks focus among a set of widgets.\n *\n * This class is useful when code needs to keep track of the most\n * recently focused widget(s) among a set of related widgets.\n */\nexport class FocusTracker implements IDisposable {\n /**\n * Dispose of the resources held by the tracker.\n */\n dispose(): void {\n // Do nothing if the tracker is already disposed.\n if (this._counter < 0) {\n return;\n }\n\n // Mark the tracker as disposed.\n this._counter = -1;\n\n // Clear the connections for the tracker.\n Signal.clearData(this);\n\n // Remove all event listeners.\n each(this._widgets, w => {\n w.node.removeEventListener('focus', this, true);\n w.node.removeEventListener('blur', this, true);\n });\n\n // Clear the internal data structures.\n this._activeWidget = null;\n this._currentWidget = null;\n this._nodes.clear();\n this._numbers.clear();\n this._widgets.length = 0;\n }\n\n /**\n * A signal emitted when the current widget has changed.\n */\n get currentChanged(): ISignal> {\n return this._currentChanged;\n }\n\n /**\n * A signal emitted when the active widget has changed.\n */\n get activeChanged(): ISignal> {\n return this._activeChanged;\n }\n\n /**\n * A flag indicating whether the tracker is disposed.\n */\n get isDisposed(): boolean {\n return this._counter < 0;\n }\n\n /**\n * The current widget in the tracker.\n *\n * #### Notes\n * The current widget is the widget among the tracked widgets which\n * has the *descendant node* which has most recently been focused.\n *\n * The current widget will not be updated if the node loses focus. It\n * will only be updated when a different tracked widget gains focus.\n *\n * If the current widget is removed from the tracker, the previous\n * current widget will be restored.\n *\n * This behavior is intended to follow a user's conceptual model of\n * a semantically \"current\" widget, where the \"last thing of type X\"\n * to be interacted with is the \"current instance of X\", regardless\n * of whether that instance still has focus.\n */\n get currentWidget(): T | null {\n return this._currentWidget;\n }\n\n /**\n * The active widget in the tracker.\n *\n * #### Notes\n * The active widget is the widget among the tracked widgets which\n * has the *descendant node* which is currently focused.\n */\n get activeWidget(): T | null {\n return this._activeWidget;\n }\n\n /**\n * A read only array of the widgets being tracked.\n */\n get widgets(): ReadonlyArray {\n return this._widgets;\n }\n\n /**\n * Get the focus number for a particular widget in the tracker.\n *\n * @param widget - The widget of interest.\n *\n * @returns The focus number for the given widget, or `-1` if the\n * widget has not had focus since being added to the tracker, or\n * is not contained by the tracker.\n *\n * #### Notes\n * The focus number indicates the relative order in which the widgets\n * have gained focus. A widget with a larger number has gained focus\n * more recently than a widget with a smaller number.\n *\n * The `currentWidget` will always have the largest focus number.\n *\n * All widgets start with a focus number of `-1`, which indicates that\n * the widget has not been focused since being added to the tracker.\n */\n focusNumber(widget: T): number {\n let n = this._numbers.get(widget);\n return n === undefined ? -1 : n;\n }\n\n /**\n * Test whether the focus tracker contains a given widget.\n *\n * @param widget - The widget of interest.\n *\n * @returns `true` if the widget is tracked, `false` otherwise.\n */\n has(widget: T): boolean {\n return this._numbers.has(widget);\n }\n\n /**\n * Add a widget to the focus tracker.\n *\n * @param widget - The widget of interest.\n *\n * #### Notes\n * A widget will be automatically removed from the tracker if it\n * is disposed after being added.\n *\n * If the widget is already tracked, this is a no-op.\n */\n add(widget: T): void {\n // Do nothing if the widget is already tracked.\n if (this._numbers.has(widget)) {\n return;\n }\n\n // Test whether the widget has focus.\n let focused = widget.node.contains(document.activeElement);\n\n // Set up the initial focus number.\n let n = focused ? this._counter++ : -1;\n\n // Add the widget to the internal data structures.\n this._widgets.push(widget);\n this._numbers.set(widget, n);\n this._nodes.set(widget.node, widget);\n\n // Set up the event listeners. The capturing phase must be used\n // since the 'focus' and 'blur' events don't bubble and Firefox\n // doesn't support the 'focusin' or 'focusout' events.\n widget.node.addEventListener('focus', this, true);\n widget.node.addEventListener('blur', this, true);\n\n // Connect the disposed signal handler.\n widget.disposed.connect(this._onWidgetDisposed, this);\n\n // Set the current and active widgets if needed.\n if (focused) {\n this._setWidgets(widget, widget);\n }\n }\n\n /**\n * Remove a widget from the focus tracker.\n *\n * #### Notes\n * If the widget is the `currentWidget`, the previous current widget\n * will become the new `currentWidget`.\n *\n * A widget will be automatically removed from the tracker if it\n * is disposed after being added.\n *\n * If the widget is not tracked, this is a no-op.\n */\n remove(widget: T): void {\n // Bail early if the widget is not tracked.\n if (!this._numbers.has(widget)) {\n return;\n }\n\n // Disconnect the disposed signal handler.\n widget.disposed.disconnect(this._onWidgetDisposed, this);\n\n // Remove the event listeners.\n widget.node.removeEventListener('focus', this, true);\n widget.node.removeEventListener('blur', this, true);\n\n // Remove the widget from the internal data structures.\n ArrayExt.removeFirstOf(this._widgets, widget);\n this._nodes.delete(widget.node);\n this._numbers.delete(widget);\n\n // Bail early if the widget is not the current widget.\n if (this._currentWidget !== widget) {\n return;\n }\n\n // Filter the widgets for those which have had focus.\n let valid = filter(this._widgets, w => this._numbers.get(w) !== -1);\n\n // Get the valid widget with the max focus number.\n let previous =\n max(valid, (first, second) => {\n let a = this._numbers.get(first)!;\n let b = this._numbers.get(second)!;\n return a - b;\n }) || null;\n\n // Set the current and active widgets.\n this._setWidgets(previous, null);\n }\n\n /**\n * Handle the DOM events for the focus tracker.\n *\n * @param event - The DOM event sent to the panel.\n *\n * #### Notes\n * This method implements the DOM `EventListener` interface and is\n * called in response to events on the tracked nodes. It should\n * not be called directly by user code.\n */\n handleEvent(event: Event): void {\n switch (event.type) {\n case 'focus':\n this._evtFocus(event as FocusEvent);\n break;\n case 'blur':\n this._evtBlur(event as FocusEvent);\n break;\n }\n }\n\n /**\n * Set the current and active widgets for the tracker.\n */\n private _setWidgets(current: T | null, active: T | null): void {\n // Swap the current widget.\n let oldCurrent = this._currentWidget;\n this._currentWidget = current;\n\n // Swap the active widget.\n let oldActive = this._activeWidget;\n this._activeWidget = active;\n\n // Emit the `currentChanged` signal if needed.\n if (oldCurrent !== current) {\n this._currentChanged.emit({ oldValue: oldCurrent, newValue: current });\n }\n\n // Emit the `activeChanged` signal if needed.\n if (oldActive !== active) {\n this._activeChanged.emit({ oldValue: oldActive, newValue: active });\n }\n }\n\n /**\n * Handle the `'focus'` event for a tracked widget.\n */\n private _evtFocus(event: FocusEvent): void {\n // Find the widget which gained focus, which is known to exist.\n let widget = this._nodes.get(event.currentTarget as HTMLElement)!;\n\n // Update the focus number if necessary.\n if (widget !== this._currentWidget) {\n this._numbers.set(widget, this._counter++);\n }\n\n // Set the current and active widgets.\n this._setWidgets(widget, widget);\n }\n\n /**\n * Handle the `'blur'` event for a tracked widget.\n */\n private _evtBlur(event: FocusEvent): void {\n // Find the widget which lost focus, which is known to exist.\n let widget = this._nodes.get(event.currentTarget as HTMLElement)!;\n\n // Get the node which being focused after this blur.\n let focusTarget = event.relatedTarget as HTMLElement;\n\n // If no other node is being focused, clear the active widget.\n if (!focusTarget) {\n this._setWidgets(this._currentWidget, null);\n return;\n }\n\n // Bail if the focus widget is not changing.\n if (widget.node.contains(focusTarget)) {\n return;\n }\n\n // If no tracked widget is being focused, clear the active widget.\n if (!find(this._widgets, w => w.node.contains(focusTarget))) {\n this._setWidgets(this._currentWidget, null);\n return;\n }\n }\n\n /**\n * Handle the `disposed` signal for a tracked widget.\n */\n private _onWidgetDisposed(sender: T): void {\n this.remove(sender);\n }\n\n private _counter = 0;\n private _widgets: T[] = [];\n private _activeWidget: T | null = null;\n private _currentWidget: T | null = null;\n private _numbers = new Map();\n private _nodes = new Map();\n private _activeChanged = new Signal>(this);\n private _currentChanged = new Signal>(\n this\n );\n}\n\n/**\n * The namespace for the `FocusTracker` class statics.\n */\nexport namespace FocusTracker {\n /**\n * An arguments object for the changed signals.\n */\n export interface IChangedArgs {\n /**\n * The old value for the widget.\n */\n oldValue: T | null;\n\n /**\n * The new value for the widget.\n */\n newValue: T | null;\n }\n}\n","// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n/*-----------------------------------------------------------------------------\n| Copyright (c) 2014-2017, PhosphorJS Contributors\n|\n| Distributed under the terms of the BSD 3-Clause License.\n|\n| The full license is in the file LICENSE, distributed with this software.\n|----------------------------------------------------------------------------*/\nimport { ArrayExt } from '@lumino/algorithm';\n\nimport { ElementExt } from '@lumino/domutils';\n\nimport { getKeyboardLayout } from '@lumino/keyboard';\n\nimport { Message, MessageLoop } from '@lumino/messaging';\n\nimport {\n ElementARIAAttrs,\n ElementDataset,\n h,\n VirtualDOM,\n VirtualElement\n} from '@lumino/virtualdom';\n\nimport { Menu } from './menu';\n\nimport { Title } from './title';\n\nimport { Widget } from './widget';\n\n/**\n * A widget which displays menus as a canonical menu bar.\n */\nexport class MenuBar extends Widget {\n /**\n * Construct a new menu bar.\n *\n * @param options - The options for initializing the menu bar.\n */\n constructor(options: MenuBar.IOptions = {}) {\n super({ node: Private.createNode() });\n this.addClass('lm-MenuBar');\n /* */\n this.addClass('p-MenuBar');\n /* */\n this.setFlag(Widget.Flag.DisallowLayout);\n this.renderer = options.renderer || MenuBar.defaultRenderer;\n this._forceItemsPosition = options.forceItemsPosition || {\n forceX: true,\n forceY: true\n };\n }\n\n /**\n * Dispose of the resources held by the widget.\n */\n dispose(): void {\n this._closeChildMenu();\n this._menus.length = 0;\n super.dispose();\n }\n\n /**\n * The renderer used by the menu bar.\n */\n readonly renderer: MenuBar.IRenderer;\n\n /**\n * The child menu of the menu bar.\n *\n * #### Notes\n * This will be `null` if the menu bar does not have an open menu.\n */\n get childMenu(): Menu | null {\n return this._childMenu;\n }\n\n /**\n * Get the menu bar content node.\n *\n * #### Notes\n * This is the node which holds the menu title nodes.\n *\n * Modifying this node directly can lead to undefined behavior.\n */\n get contentNode(): HTMLUListElement {\n return this.node.getElementsByClassName(\n 'lm-MenuBar-content'\n )[0] as HTMLUListElement;\n }\n\n /**\n * Get the currently active menu.\n */\n get activeMenu(): Menu | null {\n return this._menus[this._activeIndex] || null;\n }\n\n /**\n * Set the currently active menu.\n *\n * #### Notes\n * If the menu does not exist, the menu will be set to `null`.\n */\n set activeMenu(value: Menu | null) {\n this.activeIndex = value ? this._menus.indexOf(value) : -1;\n }\n\n /**\n * Get the index of the currently active menu.\n *\n * #### Notes\n * This will be `-1` if no menu is active.\n */\n get activeIndex(): number {\n return this._activeIndex;\n }\n\n /**\n * Set the index of the currently active menu.\n *\n * #### Notes\n * If the menu cannot be activated, the index will be set to `-1`.\n */\n set activeIndex(value: number) {\n // Adjust the value for an out of range index.\n if (value < 0 || value >= this._menus.length) {\n value = -1;\n }\n\n // Bail early if the index will not change.\n if (this._activeIndex === value) {\n return;\n }\n\n // Update the active index.\n this._activeIndex = value;\n\n // Update the focus index.\n if (value !== -1) {\n this._tabFocusIndex = value;\n }\n\n // Update focus to new active index\n if (\n this._activeIndex >= 0 &&\n this.contentNode.childNodes[this._activeIndex]\n ) {\n (this.contentNode.childNodes[this._activeIndex] as HTMLElement).focus();\n }\n\n // Schedule an update of the items.\n this.update();\n }\n\n /**\n * A read-only array of the menus in the menu bar.\n */\n get menus(): ReadonlyArray {\n return this._menus;\n }\n\n /**\n * Open the active menu and activate its first menu item.\n *\n * #### Notes\n * If there is no active menu, this is a no-op.\n */\n openActiveMenu(): void {\n // Bail early if there is no active item.\n if (this._activeIndex === -1) {\n return;\n }\n\n // Open the child menu.\n this._openChildMenu();\n\n // Activate the first item in the child menu.\n if (this._childMenu) {\n this._childMenu.activeIndex = -1;\n this._childMenu.activateNextItem();\n }\n }\n\n /**\n * Add a menu to the end of the menu bar.\n *\n * @param menu - The menu to add to the menu bar.\n *\n * #### Notes\n * If the menu is already added to the menu bar, it will be moved.\n */\n addMenu(menu: Menu): void {\n this.insertMenu(this._menus.length, menu);\n }\n\n /**\n * Insert a menu into the menu bar at the specified index.\n *\n * @param index - The index at which to insert the menu.\n *\n * @param menu - The menu to insert into the menu bar.\n *\n * #### Notes\n * The index will be clamped to the bounds of the menus.\n *\n * If the menu is already added to the menu bar, it will be moved.\n */\n insertMenu(index: number, menu: Menu): void {\n // Close the child menu before making changes.\n this._closeChildMenu();\n\n // Look up the index of the menu.\n let i = this._menus.indexOf(menu);\n\n // Clamp the insert index to the array bounds.\n let j = Math.max(0, Math.min(index, this._menus.length));\n\n // If the menu is not in the array, insert it.\n if (i === -1) {\n // Insert the menu into the array.\n ArrayExt.insert(this._menus, j, menu);\n\n // Add the styling class to the menu.\n menu.addClass('lm-MenuBar-menu');\n /* */\n menu.addClass('p-MenuBar-menu');\n /* */\n\n // Connect to the menu signals.\n menu.aboutToClose.connect(this._onMenuAboutToClose, this);\n menu.menuRequested.connect(this._onMenuMenuRequested, this);\n menu.title.changed.connect(this._onTitleChanged, this);\n\n // Schedule an update of the items.\n this.update();\n\n // There is nothing more to do.\n return;\n }\n\n // Otherwise, the menu exists in the array and should be moved.\n\n // Adjust the index if the location is at the end of the array.\n if (j === this._menus.length) {\n j--;\n }\n\n // Bail if there is no effective move.\n if (i === j) {\n return;\n }\n\n // Move the menu to the new locations.\n ArrayExt.move(this._menus, i, j);\n\n // Schedule an update of the items.\n this.update();\n }\n\n /**\n * Remove a menu from the menu bar.\n *\n * @param menu - The menu to remove from the menu bar.\n *\n * #### Notes\n * This is a no-op if the menu is not in the menu bar.\n */\n removeMenu(menu: Menu): void {\n this.removeMenuAt(this._menus.indexOf(menu));\n }\n\n /**\n * Remove the menu at a given index from the menu bar.\n *\n * @param index - The index of the menu to remove.\n *\n * #### Notes\n * This is a no-op if the index is out of range.\n */\n removeMenuAt(index: number): void {\n // Close the child menu before making changes.\n this._closeChildMenu();\n\n // Remove the menu from the array.\n let menu = ArrayExt.removeAt(this._menus, index);\n\n // Bail if the index is out of range.\n if (!menu) {\n return;\n }\n\n // Disconnect from the menu signals.\n menu.aboutToClose.disconnect(this._onMenuAboutToClose, this);\n menu.menuRequested.disconnect(this._onMenuMenuRequested, this);\n menu.title.changed.disconnect(this._onTitleChanged, this);\n\n // Remove the styling class from the menu.\n menu.removeClass('lm-MenuBar-menu');\n /* */\n menu.removeClass('p-MenuBar-menu');\n /* */\n\n // Schedule an update of the items.\n this.update();\n }\n\n /**\n * Remove all menus from the menu bar.\n */\n clearMenus(): void {\n // Bail if there is nothing to remove.\n if (this._menus.length === 0) {\n return;\n }\n\n // Close the child menu before making changes.\n this._closeChildMenu();\n\n // Disconnect from the menu signals and remove the styling class.\n for (let menu of this._menus) {\n menu.aboutToClose.disconnect(this._onMenuAboutToClose, this);\n menu.menuRequested.disconnect(this._onMenuMenuRequested, this);\n menu.title.changed.disconnect(this._onTitleChanged, this);\n menu.removeClass('lm-MenuBar-menu');\n /* */\n menu.removeClass('p-MenuBar-menu');\n /* */\n }\n\n // Clear the menus array.\n this._menus.length = 0;\n\n // Schedule an update of the items.\n this.update();\n }\n\n /**\n * Handle the DOM events for the menu bar.\n *\n * @param event - The DOM event sent to the menu bar.\n *\n * #### Notes\n * This method implements the DOM `EventListener` interface and is\n * called in response to events on the menu bar's DOM nodes. It\n * should not be called directly by user code.\n */\n handleEvent(event: Event): void {\n switch (event.type) {\n case 'keydown':\n this._evtKeyDown(event as KeyboardEvent);\n break;\n case 'mousedown':\n this._evtMouseDown(event as MouseEvent);\n break;\n case 'mousemove':\n this._evtMouseMove(event as MouseEvent);\n break;\n case 'mouseleave':\n this._evtMouseLeave(event as MouseEvent);\n break;\n case 'contextmenu':\n event.preventDefault();\n event.stopPropagation();\n break;\n }\n }\n\n /**\n * A message handler invoked on a `'before-attach'` message.\n */\n protected onBeforeAttach(msg: Message): void {\n this.node.addEventListener('keydown', this);\n this.node.addEventListener('mousedown', this);\n this.node.addEventListener('mousemove', this);\n this.node.addEventListener('mouseleave', this);\n this.node.addEventListener('contextmenu', this);\n }\n\n /**\n * A message handler invoked on an `'after-detach'` message.\n */\n protected onAfterDetach(msg: Message): void {\n this.node.removeEventListener('keydown', this);\n this.node.removeEventListener('mousedown', this);\n this.node.removeEventListener('mousemove', this);\n this.node.removeEventListener('mouseleave', this);\n this.node.removeEventListener('contextmenu', this);\n this._closeChildMenu();\n }\n\n /**\n * A message handler invoked on an `'activate-request'` message.\n */\n protected onActivateRequest(msg: Message): void {\n if (this.isAttached) {\n this.activeIndex = 0;\n }\n }\n\n /**\n * A message handler invoked on an `'update-request'` message.\n */\n protected onUpdateRequest(msg: Message): void {\n let menus = this._menus;\n let renderer = this.renderer;\n let activeIndex = this._activeIndex;\n let tabFocusIndex =\n this._tabFocusIndex >= 0 && this._tabFocusIndex < menus.length\n ? this._tabFocusIndex\n : 0;\n let content = new Array(menus.length);\n for (let i = 0, n = menus.length; i < n; ++i) {\n let title = menus[i].title;\n let active = i === activeIndex;\n if (active && menus[i].items.length == 0) {\n active = false;\n }\n content[i] = renderer.renderItem({\n title,\n active,\n tabbable: i === tabFocusIndex,\n onfocus: () => {\n this.activeIndex = i;\n }\n });\n }\n VirtualDOM.render(content, this.contentNode);\n }\n\n /**\n * Handle the `'keydown'` event for the menu bar.\n *\n * #### Notes\n * All keys are trapped except the tab key that is ignored.\n */\n private _evtKeyDown(event: KeyboardEvent): void {\n // Fetch the key code for the event.\n let kc = event.keyCode;\n\n // Reset the active index on tab, but do not trap the tab key.\n if (kc === 9) {\n this.activeIndex = -1;\n return;\n }\n\n // A menu bar handles all other keydown events.\n event.preventDefault();\n event.stopPropagation();\n\n // Enter, Space, Up Arrow, Down Arrow\n if (kc === 13 || kc === 32 || kc === 38 || kc === 40) {\n this.openActiveMenu();\n return;\n }\n\n // Escape\n if (kc === 27) {\n this._closeChildMenu();\n this.activeIndex = -1;\n this.node.blur();\n return;\n }\n\n // Left Arrow\n if (kc === 37) {\n let i = this._activeIndex;\n let n = this._menus.length;\n this.activeIndex = i === 0 ? n - 1 : i - 1;\n return;\n }\n\n // Right Arrow\n if (kc === 39) {\n let i = this._activeIndex;\n let n = this._menus.length;\n this.activeIndex = i === n - 1 ? 0 : i + 1;\n return;\n }\n\n // Get the pressed key character.\n let key = getKeyboardLayout().keyForKeydownEvent(event);\n\n // Bail if the key is not valid.\n if (!key) {\n return;\n }\n\n // Search for the next best matching mnemonic item.\n let start = this._activeIndex + 1;\n let result = Private.findMnemonic(this._menus, key, start);\n\n // Handle the requested mnemonic based on the search results.\n // If exactly one mnemonic is matched, that menu is opened.\n // Otherwise, the next mnemonic is activated if available,\n // followed by the auto mnemonic if available.\n if (result.index !== -1 && !result.multiple) {\n this.activeIndex = result.index;\n this.openActiveMenu();\n } else if (result.index !== -1) {\n this.activeIndex = result.index;\n } else if (result.auto !== -1) {\n this.activeIndex = result.auto;\n }\n }\n\n /**\n * Handle the `'mousedown'` event for the menu bar.\n */\n private _evtMouseDown(event: MouseEvent): void {\n // Bail if the mouse press was not on the menu bar. This can occur\n // when the document listener is installed for an active menu bar.\n if (!ElementExt.hitTest(this.node, event.clientX, event.clientY)) {\n return;\n }\n\n // Stop the propagation of the event. Immediate propagation is\n // also stopped so that an open menu does not handle the event.\n event.preventDefault();\n event.stopPropagation();\n event.stopImmediatePropagation();\n\n // Check if the mouse is over one of the menu items.\n let index = ArrayExt.findFirstIndex(this.contentNode.children, node => {\n return ElementExt.hitTest(node, event.clientX, event.clientY);\n });\n\n // If the press was not on an item, close the child menu.\n if (index === -1) {\n this._closeChildMenu();\n return;\n }\n\n // If the press was not the left mouse button, do nothing further.\n if (event.button !== 0) {\n return;\n }\n\n // Otherwise, toggle the open state of the child menu.\n if (this._childMenu) {\n this._closeChildMenu();\n this.activeIndex = index;\n } else {\n const position = this._positionForMenu(index);\n Menu.saveWindowData();\n // Begin DOM modifications.\n this.activeIndex = index;\n this._openChildMenu(position);\n }\n }\n\n /**\n * Handle the `'mousemove'` event for the menu bar.\n */\n private _evtMouseMove(event: MouseEvent): void {\n // Check if the mouse is over one of the menu items.\n let index = ArrayExt.findFirstIndex(this.contentNode.children, node => {\n return ElementExt.hitTest(node, event.clientX, event.clientY);\n });\n\n // Bail early if the active index will not change.\n if (index === this._activeIndex) {\n return;\n }\n\n // Bail early if a child menu is open and the mouse is not over\n // an item. This allows the child menu to be kept open when the\n // mouse is over the empty part of the menu bar.\n if (index === -1 && this._childMenu) {\n return;\n }\n\n // Get position for the new menu >before< updating active index.\n const position = this._positionForMenu(index);\n\n // Before any modification, update window data.\n Menu.saveWindowData();\n\n // Begin DOM modifications.\n\n // Update the active index to the hovered item.\n this.activeIndex = index;\n\n // Open the new menu if a menu is already open.\n if (this._childMenu) {\n this._openChildMenu(position);\n }\n }\n\n /**\n * Find initial position for the menu based on menubar item position.\n *\n * NOTE: this should be called before updating active index to avoid\n * an additional layout and style invalidation as changing active\n * index modifies DOM.\n */\n private _positionForMenu(index: number): Private.IPosition {\n let itemNode = this.contentNode.children[index];\n let { left, bottom } = (itemNode as HTMLElement).getBoundingClientRect();\n return {\n top: bottom,\n left\n };\n }\n\n /**\n * Handle the `'mouseleave'` event for the menu bar.\n */\n private _evtMouseLeave(event: MouseEvent): void {\n // Reset the active index if there is no open menu.\n if (!this._childMenu) {\n this.activeIndex = -1;\n }\n }\n\n /**\n * Open the child menu at the active index immediately.\n *\n * If a different child menu is already open, it will be closed,\n * even if there is no active menu.\n */\n private _openChildMenu(options: { left?: number; top?: number } = {}): void {\n // If there is no active menu, close the current menu.\n let newMenu = this.activeMenu;\n if (!newMenu) {\n this._closeChildMenu();\n return;\n }\n\n // Bail if there is no effective menu change.\n let oldMenu = this._childMenu;\n if (oldMenu === newMenu) {\n return;\n }\n\n // Swap the internal menu reference.\n this._childMenu = newMenu;\n\n // Close the current menu, or setup for the new menu.\n if (oldMenu) {\n oldMenu.close();\n } else {\n document.addEventListener('mousedown', this, true);\n }\n\n // Ensure the menu bar is updated and look up the item node.\n MessageLoop.sendMessage(this, Widget.Msg.UpdateRequest);\n\n // Get the positioning data for the new menu.\n let { left, top } = options;\n if (typeof left === 'undefined' || typeof top === 'undefined') {\n ({ left, top } = this._positionForMenu(this._activeIndex));\n }\n // Begin DOM modifications\n\n if (!oldMenu) {\n // Continue setup for new menu\n this.addClass('lm-mod-active');\n /* */\n this.addClass('p-mod-active');\n /* */\n }\n\n // Open the new menu at the computed location.\n if (newMenu.items.length > 0) {\n newMenu.open(left, top, this._forceItemsPosition);\n }\n }\n\n /**\n * Close the child menu immediately.\n *\n * This is a no-op if a child menu is not open.\n */\n private _closeChildMenu(): void {\n // Bail if no child menu is open.\n if (!this._childMenu) {\n return;\n }\n // Remove the active class from the menu bar.\n this.removeClass('lm-mod-active');\n /* */\n this.removeClass('p-mod-active');\n /* */\n\n // Remove the document listeners.\n document.removeEventListener('mousedown', this, true);\n\n // Clear the internal menu reference.\n let menu = this._childMenu;\n this._childMenu = null;\n\n // Close the menu.\n menu.close();\n\n // Reset the active index.\n this.activeIndex = -1;\n }\n\n /**\n * Handle the `aboutToClose` signal of a menu.\n */\n private _onMenuAboutToClose(sender: Menu): void {\n // Bail if the sender is not the child menu.\n if (sender !== this._childMenu) {\n return;\n }\n\n // Remove the active class from the menu bar.\n this.removeClass('lm-mod-active');\n /* */\n this.removeClass('p-mod-active');\n /* */\n\n // Remove the document listeners.\n document.removeEventListener('mousedown', this, true);\n\n // Clear the internal menu reference.\n this._childMenu = null;\n\n // Reset the active index.\n this.activeIndex = -1;\n }\n\n /**\n * Handle the `menuRequested` signal of a child menu.\n */\n private _onMenuMenuRequested(sender: Menu, args: 'next' | 'previous'): void {\n // Bail if the sender is not the child menu.\n if (sender !== this._childMenu) {\n return;\n }\n\n // Look up the active index and menu count.\n let i = this._activeIndex;\n let n = this._menus.length;\n\n // Active the next requested index.\n switch (args) {\n case 'next':\n this.activeIndex = i === n - 1 ? 0 : i + 1;\n break;\n case 'previous':\n this.activeIndex = i === 0 ? n - 1 : i - 1;\n break;\n }\n\n // Open the active menu.\n this.openActiveMenu();\n }\n\n /**\n * Handle the `changed` signal of a title object.\n */\n private _onTitleChanged(): void {\n this.update();\n }\n\n // Track the index of the item that is currently focused. -1 means nothing focused.\n private _activeIndex = -1;\n // Track which item can be focused using the TAB key. Unlike _activeIndex will always point to a menuitem.\n private _tabFocusIndex = 0;\n private _forceItemsPosition: Menu.IOpenOptions;\n private _menus: Menu[] = [];\n private _childMenu: Menu | null = null;\n}\n\n/**\n * The namespace for the `MenuBar` class statics.\n */\nexport namespace MenuBar {\n /**\n * An options object for creating a menu bar.\n */\n export interface IOptions {\n /**\n * A custom renderer for creating menu bar content.\n *\n * The default is a shared renderer instance.\n */\n renderer?: IRenderer;\n /**\n * Whether to force the position of the menu. The MenuBar forces the\n * coordinates of its menus by default. With this option you can disable it.\n *\n * Setting to `false` will enable the logic which repositions the\n * coordinates of the menu if it will not fit entirely on screen.\n *\n * The default is `true`.\n */\n forceItemsPosition?: Menu.IOpenOptions;\n }\n\n /**\n * An object which holds the data to render a menu bar item.\n */\n export interface IRenderData {\n /**\n * The title to be rendered.\n */\n readonly title: Title;\n\n /**\n * Whether the item is the active item.\n */\n readonly active: boolean;\n\n /**\n * Whether the user can tab to the item.\n */\n readonly tabbable?: boolean;\n\n readonly onfocus?: (event: FocusEvent) => void;\n }\n\n /**\n * A renderer for use with a menu bar.\n */\n export interface IRenderer {\n /**\n * Render the virtual element for a menu bar item.\n *\n * @param data - The data to use for rendering the item.\n *\n * @returns A virtual element representing the item.\n */\n renderItem(data: IRenderData): VirtualElement;\n }\n\n /**\n * The default implementation of `IRenderer`.\n *\n * #### Notes\n * Subclasses are free to reimplement rendering methods as needed.\n */\n export class Renderer implements IRenderer {\n /**\n * Render the virtual element for a menu bar item.\n *\n * @param data - The data to use for rendering the item.\n *\n * @returns A virtual element representing the item.\n */\n renderItem(data: IRenderData): VirtualElement {\n let className = this.createItemClass(data);\n let dataset = this.createItemDataset(data);\n let aria = this.createItemARIA(data);\n return h.li(\n {\n className,\n dataset,\n tabindex: data.tabbable ? '0' : '-1',\n onfocus: data.onfocus,\n ...aria\n },\n this.renderIcon(data),\n this.renderLabel(data)\n );\n }\n\n /**\n * Render the icon element for a menu bar item.\n *\n * @param data - The data to use for rendering the icon.\n *\n * @returns A virtual element representing the item icon.\n */\n renderIcon(data: IRenderData): VirtualElement {\n let className = this.createIconClass(data);\n\n /* */\n if (typeof data.title.icon === 'string') {\n return h.div({ className }, data.title.iconLabel);\n }\n /* */\n\n // if data.title.icon is undefined, it will be ignored\n return h.div({ className }, data.title.icon!, data.title.iconLabel);\n }\n\n /**\n * Render the label element for a menu item.\n *\n * @param data - The data to use for rendering the label.\n *\n * @returns A virtual element representing the item label.\n */\n renderLabel(data: IRenderData): VirtualElement {\n let content = this.formatLabel(data);\n return h.div(\n {\n className:\n 'lm-MenuBar-itemLabel' +\n /* */\n ' p-MenuBar-itemLabel'\n /* */\n },\n content\n );\n }\n\n /**\n * Create the class name for the menu bar item.\n *\n * @param data - The data to use for the class name.\n *\n * @returns The full class name for the menu item.\n */\n createItemClass(data: IRenderData): string {\n let name = 'lm-MenuBar-item';\n /* */\n name += ' p-MenuBar-item';\n /* */\n if (data.title.className) {\n name += ` ${data.title.className}`;\n }\n if (data.active) {\n name += ' lm-mod-active';\n /* */\n name += ' p-mod-active';\n /* */\n }\n return name;\n }\n\n /**\n * Create the dataset for a menu bar item.\n *\n * @param data - The data to use for the item.\n *\n * @returns The dataset for the menu bar item.\n */\n createItemDataset(data: IRenderData): ElementDataset {\n return data.title.dataset;\n }\n\n /**\n * Create the aria attributes for menu bar item.\n *\n * @param data - The data to use for the aria attributes.\n *\n * @returns The aria attributes object for the item.\n */\n createItemARIA(data: IRenderData): ElementARIAAttrs {\n return { role: 'menuitem', 'aria-haspopup': 'true' };\n }\n\n /**\n * Create the class name for the menu bar item icon.\n *\n * @param data - The data to use for the class name.\n *\n * @returns The full class name for the item icon.\n */\n createIconClass(data: IRenderData): string {\n let name = 'lm-MenuBar-itemIcon';\n /* */\n name += ' p-MenuBar-itemIcon';\n /* */\n let extra = data.title.iconClass;\n return extra ? `${name} ${extra}` : name;\n }\n\n /**\n * Create the render content for the label node.\n *\n * @param data - The data to use for the label content.\n *\n * @returns The content to add to the label node.\n */\n formatLabel(data: IRenderData): h.Child {\n // Fetch the label text and mnemonic index.\n let { label, mnemonic } = data.title;\n\n // If the index is out of range, do not modify the label.\n if (mnemonic < 0 || mnemonic >= label.length) {\n return label;\n }\n\n // Split the label into parts.\n let prefix = label.slice(0, mnemonic);\n let suffix = label.slice(mnemonic + 1);\n let char = label[mnemonic];\n\n // Wrap the mnemonic character in a span.\n let span = h.span(\n {\n className:\n 'lm-MenuBar-itemMnemonic' +\n /* */\n ' p-MenuBar-itemMnemonic'\n /* */\n },\n char\n );\n\n // Return the content parts.\n return [prefix, span, suffix];\n }\n }\n\n /**\n * The default `Renderer` instance.\n */\n export const defaultRenderer = new Renderer();\n}\n\n/**\n * The namespace for the module implementation details.\n */\nnamespace Private {\n /**\n * Create the DOM node for a menu bar.\n */\n export function createNode(): HTMLDivElement {\n let node = document.createElement('div');\n let content = document.createElement('ul');\n content.className = 'lm-MenuBar-content';\n /* */\n content.classList.add('p-MenuBar-content');\n /* */\n node.appendChild(content);\n content.setAttribute('role', 'menubar');\n return node;\n }\n\n /**\n * Position for the menu relative to top-left screen corner.\n */\n export interface IPosition {\n /**\n * Pixels right from screen origin.\n */\n left: number;\n /**\n * Pixels down from screen origin.\n */\n top: number;\n }\n\n /**\n * The results of a mnemonic search.\n */\n export interface IMnemonicResult {\n /**\n * The index of the first matching mnemonic item, or `-1`.\n */\n index: number;\n\n /**\n * Whether multiple mnemonic items matched.\n */\n multiple: boolean;\n\n /**\n * The index of the first auto matched non-mnemonic item.\n */\n auto: number;\n }\n\n /**\n * Find the best matching mnemonic item.\n *\n * The search starts at the given index and wraps around.\n */\n export function findMnemonic(\n menus: ReadonlyArray,\n key: string,\n start: number\n ): IMnemonicResult {\n // Setup the result variables.\n let index = -1;\n let auto = -1;\n let multiple = false;\n\n // Normalize the key to upper case.\n let upperKey = key.toUpperCase();\n\n // Search the items from the given start index.\n for (let i = 0, n = menus.length; i < n; ++i) {\n // Compute the wrapped index.\n let k = (i + start) % n;\n\n // Look up the menu title.\n let title = menus[k].title;\n\n // Ignore titles with an empty label.\n if (title.label.length === 0) {\n continue;\n }\n\n // Look up the mnemonic index for the label.\n let mn = title.mnemonic;\n\n // Handle a valid mnemonic index.\n if (mn >= 0 && mn < title.label.length) {\n if (title.label[mn].toUpperCase() === upperKey) {\n if (index === -1) {\n index = k;\n } else {\n multiple = true;\n }\n }\n continue;\n }\n\n // Finally, handle the auto index if possible.\n if (auto === -1 && title.label[0].toUpperCase() === upperKey) {\n auto = k;\n }\n }\n\n // Return the search results.\n return { index, multiple, auto };\n }\n}\n","// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n/*-----------------------------------------------------------------------------\n| Copyright (c) 2014-2017, PhosphorJS Contributors\n|\n| Distributed under the terms of the BSD 3-Clause License.\n|\n| The full license is in the file LICENSE, distributed with this software.\n|----------------------------------------------------------------------------*/\nimport { IDisposable } from '@lumino/disposable';\n\nimport { ElementExt } from '@lumino/domutils';\n\nimport { Drag } from '@lumino/dragdrop';\n\nimport { Message } from '@lumino/messaging';\n\nimport { ISignal, Signal } from '@lumino/signaling';\n\nimport { Widget } from './widget';\n\n/**\n * A widget which implements a canonical scroll bar.\n */\nexport class ScrollBar extends Widget {\n /**\n * Construct a new scroll bar.\n *\n * @param options - The options for initializing the scroll bar.\n */\n constructor(options: ScrollBar.IOptions = {}) {\n super({ node: Private.createNode() });\n this.addClass('lm-ScrollBar');\n /* */\n this.addClass('p-ScrollBar');\n /* */\n this.setFlag(Widget.Flag.DisallowLayout);\n\n // Set the orientation.\n this._orientation = options.orientation || 'vertical';\n this.dataset['orientation'] = this._orientation;\n\n // Parse the rest of the options.\n if (options.maximum !== undefined) {\n this._maximum = Math.max(0, options.maximum);\n }\n if (options.page !== undefined) {\n this._page = Math.max(0, options.page);\n }\n if (options.value !== undefined) {\n this._value = Math.max(0, Math.min(options.value, this._maximum));\n }\n }\n\n /**\n * A signal emitted when the user moves the scroll thumb.\n *\n * #### Notes\n * The payload is the current value of the scroll bar.\n */\n get thumbMoved(): ISignal {\n return this._thumbMoved;\n }\n\n /**\n * A signal emitted when the user clicks a step button.\n *\n * #### Notes\n * The payload is whether a decrease or increase is requested.\n */\n get stepRequested(): ISignal {\n return this._stepRequested;\n }\n\n /**\n * A signal emitted when the user clicks the scroll track.\n *\n * #### Notes\n * The payload is whether a decrease or increase is requested.\n */\n get pageRequested(): ISignal {\n return this._pageRequested;\n }\n\n /**\n * Get the orientation of the scroll bar.\n */\n get orientation(): ScrollBar.Orientation {\n return this._orientation;\n }\n\n /**\n * Set the orientation of the scroll bar.\n */\n set orientation(value: ScrollBar.Orientation) {\n // Do nothing if the orientation does not change.\n if (this._orientation === value) {\n return;\n }\n\n // Release the mouse before making changes.\n this._releaseMouse();\n\n // Update the internal orientation.\n this._orientation = value;\n this.dataset['orientation'] = value;\n\n // Schedule an update the scroll bar.\n this.update();\n }\n\n /**\n * Get the current value of the scroll bar.\n */\n get value(): number {\n return this._value;\n }\n\n /**\n * Set the current value of the scroll bar.\n *\n * #### Notes\n * The value will be clamped to the range `[0, maximum]`.\n */\n set value(value: number) {\n // Clamp the value to the allowable range.\n value = Math.max(0, Math.min(value, this._maximum));\n\n // Do nothing if the value does not change.\n if (this._value === value) {\n return;\n }\n\n // Update the internal value.\n this._value = value;\n\n // Schedule an update the scroll bar.\n this.update();\n }\n\n /**\n * Get the page size of the scroll bar.\n *\n * #### Notes\n * The page size is the amount of visible content in the scrolled\n * region, expressed in data units. It determines the size of the\n * scroll bar thumb.\n */\n get page(): number {\n return this._page;\n }\n\n /**\n * Set the page size of the scroll bar.\n *\n * #### Notes\n * The page size will be clamped to the range `[0, Infinity]`.\n */\n set page(value: number) {\n // Clamp the page size to the allowable range.\n value = Math.max(0, value);\n\n // Do nothing if the value does not change.\n if (this._page === value) {\n return;\n }\n\n // Update the internal page size.\n this._page = value;\n\n // Schedule an update the scroll bar.\n this.update();\n }\n\n /**\n * Get the maximum value of the scroll bar.\n */\n get maximum(): number {\n return this._maximum;\n }\n\n /**\n * Set the maximum value of the scroll bar.\n *\n * #### Notes\n * The max size will be clamped to the range `[0, Infinity]`.\n */\n set maximum(value: number) {\n // Clamp the value to the allowable range.\n value = Math.max(0, value);\n\n // Do nothing if the value does not change.\n if (this._maximum === value) {\n return;\n }\n\n // Update the internal values.\n this._maximum = value;\n\n // Clamp the current value to the new range.\n this._value = Math.min(this._value, value);\n\n // Schedule an update the scroll bar.\n this.update();\n }\n\n /**\n * The scroll bar decrement button node.\n *\n * #### Notes\n * Modifying this node directly can lead to undefined behavior.\n */\n get decrementNode(): HTMLDivElement {\n return this.node.getElementsByClassName(\n 'lm-ScrollBar-button'\n )[0] as HTMLDivElement;\n }\n\n /**\n * The scroll bar increment button node.\n *\n * #### Notes\n * Modifying this node directly can lead to undefined behavior.\n */\n get incrementNode(): HTMLDivElement {\n return this.node.getElementsByClassName(\n 'lm-ScrollBar-button'\n )[1] as HTMLDivElement;\n }\n\n /**\n * The scroll bar track node.\n *\n * #### Notes\n * Modifying this node directly can lead to undefined behavior.\n */\n get trackNode(): HTMLDivElement {\n return this.node.getElementsByClassName(\n 'lm-ScrollBar-track'\n )[0] as HTMLDivElement;\n }\n\n /**\n * The scroll bar thumb node.\n *\n * #### Notes\n * Modifying this node directly can lead to undefined behavior.\n */\n get thumbNode(): HTMLDivElement {\n return this.node.getElementsByClassName(\n 'lm-ScrollBar-thumb'\n )[0] as HTMLDivElement;\n }\n\n /**\n * Handle the DOM events for the scroll bar.\n *\n * @param event - The DOM event sent to the scroll bar.\n *\n * #### Notes\n * This method implements the DOM `EventListener` interface and is\n * called in response to events on the scroll bar's DOM node.\n *\n * This should not be called directly by user code.\n */\n handleEvent(event: Event): void {\n switch (event.type) {\n case 'mousedown':\n this._evtMouseDown(event as MouseEvent);\n break;\n case 'mousemove':\n this._evtMouseMove(event as MouseEvent);\n break;\n case 'mouseup':\n this._evtMouseUp(event as MouseEvent);\n break;\n case 'keydown':\n this._evtKeyDown(event as KeyboardEvent);\n break;\n case 'contextmenu':\n event.preventDefault();\n event.stopPropagation();\n break;\n }\n }\n\n /**\n * A method invoked on a 'before-attach' message.\n */\n protected onBeforeAttach(msg: Message): void {\n this.node.addEventListener('mousedown', this);\n this.update();\n }\n\n /**\n * A method invoked on an 'after-detach' message.\n */\n protected onAfterDetach(msg: Message): void {\n this.node.removeEventListener('mousedown', this);\n this._releaseMouse();\n }\n\n /**\n * A method invoked on an 'update-request' message.\n */\n protected onUpdateRequest(msg: Message): void {\n // Convert the value and page into percentages.\n let value = (this._value * 100) / this._maximum;\n let page = (this._page * 100) / (this._page + this._maximum);\n\n // Clamp the value and page to the relevant range.\n value = Math.max(0, Math.min(value, 100));\n page = Math.max(0, Math.min(page, 100));\n\n // Fetch the thumb style.\n let thumbStyle = this.thumbNode.style;\n\n // Update the thumb style for the current orientation.\n if (this._orientation === 'horizontal') {\n thumbStyle.top = '';\n thumbStyle.height = '';\n thumbStyle.left = `${value}%`;\n thumbStyle.width = `${page}%`;\n thumbStyle.transform = `translate(${-value}%, 0%)`;\n } else {\n thumbStyle.left = '';\n thumbStyle.width = '';\n thumbStyle.top = `${value}%`;\n thumbStyle.height = `${page}%`;\n thumbStyle.transform = `translate(0%, ${-value}%)`;\n }\n }\n\n /**\n * Handle the `'keydown'` event for the scroll bar.\n */\n private _evtKeyDown(event: KeyboardEvent): void {\n // Stop all input events during drag.\n event.preventDefault();\n event.stopPropagation();\n\n // Ignore anything except the `Escape` key.\n if (event.keyCode !== 27) {\n return;\n }\n\n // Fetch the previous scroll value.\n let value = this._pressData ? this._pressData.value : -1;\n\n // Release the mouse.\n this._releaseMouse();\n\n // Restore the old scroll value if possible.\n if (value !== -1) {\n this._moveThumb(value);\n }\n }\n\n /**\n * Handle the `'mousedown'` event for the scroll bar.\n */\n private _evtMouseDown(event: MouseEvent): void {\n // Do nothing if it's not a left mouse press.\n if (event.button !== 0) {\n return;\n }\n\n // Send an activate request to the scroll bar. This can be\n // used by message hooks to activate something relevant.\n this.activate();\n\n // Do nothing if the mouse is already captured.\n if (this._pressData) {\n return;\n }\n\n // Find the pressed scroll bar part.\n let part = Private.findPart(this, event.target as HTMLElement);\n\n // Do nothing if the part is not of interest.\n if (!part) {\n return;\n }\n\n // Stop the event propagation.\n event.preventDefault();\n event.stopPropagation();\n\n // Override the mouse cursor.\n let override = Drag.overrideCursor('default');\n\n // Set up the press data.\n this._pressData = {\n part,\n override,\n delta: -1,\n value: -1,\n mouseX: event.clientX,\n mouseY: event.clientY\n };\n\n // Add the extra event listeners.\n document.addEventListener('mousemove', this, true);\n document.addEventListener('mouseup', this, true);\n document.addEventListener('keydown', this, true);\n document.addEventListener('contextmenu', this, true);\n\n // Handle a thumb press.\n if (part === 'thumb') {\n // Fetch the thumb node.\n let thumbNode = this.thumbNode;\n\n // Fetch the client rect for the thumb.\n let thumbRect = thumbNode.getBoundingClientRect();\n\n // Update the press data delta for the current orientation.\n if (this._orientation === 'horizontal') {\n this._pressData.delta = event.clientX - thumbRect.left;\n } else {\n this._pressData.delta = event.clientY - thumbRect.top;\n }\n\n // Add the active class to the thumb node.\n thumbNode.classList.add('lm-mod-active');\n /* */\n thumbNode.classList.add('p-mod-active');\n /* */\n\n // Store the current value in the press data.\n this._pressData.value = this._value;\n\n // Finished.\n return;\n }\n\n // Handle a track press.\n if (part === 'track') {\n // Fetch the client rect for the thumb.\n let thumbRect = this.thumbNode.getBoundingClientRect();\n\n // Determine the direction for the page request.\n let dir: 'decrement' | 'increment';\n if (this._orientation === 'horizontal') {\n dir = event.clientX < thumbRect.left ? 'decrement' : 'increment';\n } else {\n dir = event.clientY < thumbRect.top ? 'decrement' : 'increment';\n }\n\n // Start the repeat timer.\n this._repeatTimer = window.setTimeout(this._onRepeat, 350);\n\n // Emit the page requested signal.\n this._pageRequested.emit(dir);\n\n // Finished.\n return;\n }\n\n // Handle a decrement button press.\n if (part === 'decrement') {\n // Add the active class to the decrement node.\n this.decrementNode.classList.add('lm-mod-active');\n /* */\n this.decrementNode.classList.add('p-mod-active');\n /* */\n\n // Start the repeat timer.\n this._repeatTimer = window.setTimeout(this._onRepeat, 350);\n\n // Emit the step requested signal.\n this._stepRequested.emit('decrement');\n\n // Finished.\n return;\n }\n\n // Handle an increment button press.\n if (part === 'increment') {\n // Add the active class to the increment node.\n this.incrementNode.classList.add('lm-mod-active');\n /* */\n this.incrementNode.classList.add('p-mod-active');\n /* */\n\n // Start the repeat timer.\n this._repeatTimer = window.setTimeout(this._onRepeat, 350);\n\n // Emit the step requested signal.\n this._stepRequested.emit('increment');\n\n // Finished.\n return;\n }\n }\n\n /**\n * Handle the `'mousemove'` event for the scroll bar.\n */\n private _evtMouseMove(event: MouseEvent): void {\n // Do nothing if no drag is in progress.\n if (!this._pressData) {\n return;\n }\n\n // Stop the event propagation.\n event.preventDefault();\n event.stopPropagation();\n\n // Update the mouse position.\n this._pressData.mouseX = event.clientX;\n this._pressData.mouseY = event.clientY;\n\n // Bail if the thumb is not being dragged.\n if (this._pressData.part !== 'thumb') {\n return;\n }\n\n // Get the client rect for the thumb and track.\n let thumbRect = this.thumbNode.getBoundingClientRect();\n let trackRect = this.trackNode.getBoundingClientRect();\n\n // Fetch the scroll geometry based on the orientation.\n let trackPos: number;\n let trackSpan: number;\n if (this._orientation === 'horizontal') {\n trackPos = event.clientX - trackRect.left - this._pressData.delta;\n trackSpan = trackRect.width - thumbRect.width;\n } else {\n trackPos = event.clientY - trackRect.top - this._pressData.delta;\n trackSpan = trackRect.height - thumbRect.height;\n }\n\n // Compute the desired value from the scroll geometry.\n let value = trackSpan === 0 ? 0 : (trackPos * this._maximum) / trackSpan;\n\n // Move the thumb to the computed value.\n this._moveThumb(value);\n }\n\n /**\n * Handle the `'mouseup'` event for the scroll bar.\n */\n private _evtMouseUp(event: MouseEvent): void {\n // Do nothing if it's not a left mouse release.\n if (event.button !== 0) {\n return;\n }\n\n // Stop the event propagation.\n event.preventDefault();\n event.stopPropagation();\n\n // Release the mouse.\n this._releaseMouse();\n }\n\n /**\n * Release the mouse and restore the node states.\n */\n private _releaseMouse(): void {\n // Bail if there is no press data.\n if (!this._pressData) {\n return;\n }\n\n // Clear the repeat timer.\n clearTimeout(this._repeatTimer);\n this._repeatTimer = -1;\n\n // Clear the press data.\n this._pressData.override.dispose();\n this._pressData = null;\n\n // Remove the extra event listeners.\n document.removeEventListener('mousemove', this, true);\n document.removeEventListener('mouseup', this, true);\n document.removeEventListener('keydown', this, true);\n document.removeEventListener('contextmenu', this, true);\n\n // Remove the active classes from the nodes.\n this.thumbNode.classList.remove('lm-mod-active');\n this.decrementNode.classList.remove('lm-mod-active');\n this.incrementNode.classList.remove('lm-mod-active');\n /* */\n this.thumbNode.classList.remove('p-mod-active');\n this.decrementNode.classList.remove('p-mod-active');\n this.incrementNode.classList.remove('p-mod-active');\n /* */\n }\n\n /**\n * Move the thumb to the specified position.\n */\n private _moveThumb(value: number): void {\n // Clamp the value to the allowed range.\n value = Math.max(0, Math.min(value, this._maximum));\n\n // Bail if the value does not change.\n if (this._value === value) {\n return;\n }\n\n // Update the internal value.\n this._value = value;\n\n // Schedule an update of the scroll bar.\n this.update();\n\n // Emit the thumb moved signal.\n this._thumbMoved.emit(value);\n }\n\n /**\n * A timeout callback for repeating the mouse press.\n */\n private _onRepeat = () => {\n // Clear the repeat timer id.\n this._repeatTimer = -1;\n\n // Bail if the mouse has been released.\n if (!this._pressData) {\n return;\n }\n\n // Look up the part that was pressed.\n let part = this._pressData.part;\n\n // Bail if the thumb was pressed.\n if (part === 'thumb') {\n return;\n }\n\n // Schedule the timer for another repeat.\n this._repeatTimer = window.setTimeout(this._onRepeat, 20);\n\n // Get the current mouse position.\n let mouseX = this._pressData.mouseX;\n let mouseY = this._pressData.mouseY;\n\n // Handle a decrement button repeat.\n if (part === 'decrement') {\n // Bail if the mouse is not over the button.\n if (!ElementExt.hitTest(this.decrementNode, mouseX, mouseY)) {\n return;\n }\n\n // Emit the step requested signal.\n this._stepRequested.emit('decrement');\n\n // Finished.\n return;\n }\n\n // Handle an increment button repeat.\n if (part === 'increment') {\n // Bail if the mouse is not over the button.\n if (!ElementExt.hitTest(this.incrementNode, mouseX, mouseY)) {\n return;\n }\n\n // Emit the step requested signal.\n this._stepRequested.emit('increment');\n\n // Finished.\n return;\n }\n\n // Handle a track repeat.\n if (part === 'track') {\n // Bail if the mouse is not over the track.\n if (!ElementExt.hitTest(this.trackNode, mouseX, mouseY)) {\n return;\n }\n\n // Fetch the thumb node.\n let thumbNode = this.thumbNode;\n\n // Bail if the mouse is over the thumb.\n if (ElementExt.hitTest(thumbNode, mouseX, mouseY)) {\n return;\n }\n\n // Fetch the client rect for the thumb.\n let thumbRect = thumbNode.getBoundingClientRect();\n\n // Determine the direction for the page request.\n let dir: 'decrement' | 'increment';\n if (this._orientation === 'horizontal') {\n dir = mouseX < thumbRect.left ? 'decrement' : 'increment';\n } else {\n dir = mouseY < thumbRect.top ? 'decrement' : 'increment';\n }\n\n // Emit the page requested signal.\n this._pageRequested.emit(dir);\n\n // Finished.\n return;\n }\n };\n\n private _value = 0;\n private _page = 10;\n private _maximum = 100;\n private _repeatTimer = -1;\n private _orientation: ScrollBar.Orientation;\n private _pressData: Private.IPressData | null = null;\n private _thumbMoved = new Signal(this);\n private _stepRequested = new Signal(this);\n private _pageRequested = new Signal(this);\n}\n\n/**\n * The namespace for the `ScrollBar` class statics.\n */\nexport namespace ScrollBar {\n /**\n * A type alias for a scroll bar orientation.\n */\n export type Orientation = 'horizontal' | 'vertical';\n\n /**\n * An options object for creating a scroll bar.\n */\n export interface IOptions {\n /**\n * The orientation of the scroll bar.\n *\n * The default is `'vertical'`.\n */\n orientation?: Orientation;\n\n /**\n * The value for the scroll bar.\n *\n * The default is `0`.\n */\n value?: number;\n\n /**\n * The page size for the scroll bar.\n *\n * The default is `10`.\n */\n page?: number;\n\n /**\n * The maximum value for the scroll bar.\n *\n * The default is `100`.\n */\n maximum?: number;\n }\n}\n\n/**\n * The namespace for the module implementation details.\n */\nnamespace Private {\n /**\n * A type alias for the parts of a scroll bar.\n */\n export type ScrollBarPart = 'thumb' | 'track' | 'decrement' | 'increment';\n\n /**\n * An object which holds mouse press data.\n */\n export interface IPressData {\n /**\n * The scroll bar part which was pressed.\n */\n part: ScrollBarPart;\n\n /**\n * The offset of the press in thumb coordinates, or -1.\n */\n delta: number;\n\n /**\n * The scroll value at the time the thumb was pressed, or -1.\n */\n value: number;\n\n /**\n * The disposable which will clear the override cursor.\n */\n override: IDisposable;\n\n /**\n * The current X position of the mouse.\n */\n mouseX: number;\n\n /**\n * The current Y position of the mouse.\n */\n mouseY: number;\n }\n\n /**\n * Create the DOM node for a scroll bar.\n */\n export function createNode(): HTMLElement {\n let node = document.createElement('div');\n let decrement = document.createElement('div');\n let increment = document.createElement('div');\n let track = document.createElement('div');\n let thumb = document.createElement('div');\n decrement.className = 'lm-ScrollBar-button';\n increment.className = 'lm-ScrollBar-button';\n decrement.dataset['action'] = 'decrement';\n increment.dataset['action'] = 'increment';\n track.className = 'lm-ScrollBar-track';\n thumb.className = 'lm-ScrollBar-thumb';\n /* */\n decrement.classList.add('p-ScrollBar-button');\n increment.classList.add('p-ScrollBar-button');\n track.classList.add('p-ScrollBar-track');\n thumb.classList.add('p-ScrollBar-thumb');\n /* */\n track.appendChild(thumb);\n node.appendChild(decrement);\n node.appendChild(track);\n node.appendChild(increment);\n return node;\n }\n\n /**\n * Find the scroll bar part which contains the given target.\n */\n export function findPart(\n scrollBar: ScrollBar,\n target: HTMLElement\n ): ScrollBarPart | null {\n // Test the thumb.\n if (scrollBar.thumbNode.contains(target)) {\n return 'thumb';\n }\n\n // Test the track.\n if (scrollBar.trackNode.contains(target)) {\n return 'track';\n }\n\n // Test the decrement button.\n if (scrollBar.decrementNode.contains(target)) {\n return 'decrement';\n }\n\n // Test the increment button.\n if (scrollBar.incrementNode.contains(target)) {\n return 'increment';\n }\n\n // Indicate no match.\n return null;\n }\n}\n","// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n/*-----------------------------------------------------------------------------\n| Copyright (c) 2014-2017, PhosphorJS Contributors\n|\n| Distributed under the terms of the BSD 3-Clause License.\n|\n| The full license is in the file LICENSE, distributed with this software.\n|----------------------------------------------------------------------------*/\nimport { ISignal, Signal } from '@lumino/signaling';\n\nimport { Panel } from './panel';\n\nimport { StackedLayout } from './stackedlayout';\n\nimport { Widget } from './widget';\n\n/**\n * A panel where visible widgets are stacked atop one another.\n *\n * #### Notes\n * This class provides a convenience wrapper around a [[StackedLayout]].\n */\nexport class StackedPanel extends Panel {\n /**\n * Construct a new stacked panel.\n *\n * @param options - The options for initializing the panel.\n */\n constructor(options: StackedPanel.IOptions = {}) {\n super({ layout: Private.createLayout(options) });\n this.addClass('lm-StackedPanel');\n /* */\n this.addClass('p-StackedPanel');\n /* */\n }\n\n /**\n * The method for hiding widgets.\n *\n * #### Notes\n * If there is only one child widget, `Display` hiding mode will be used\n * regardless of this setting.\n */\n get hiddenMode(): Widget.HiddenMode {\n return (this.layout as StackedLayout).hiddenMode;\n }\n\n /**\n * Set the method for hiding widgets.\n *\n * #### Notes\n * If there is only one child widget, `Display` hiding mode will be used\n * regardless of this setting.\n */\n set hiddenMode(v: Widget.HiddenMode) {\n (this.layout as StackedLayout).hiddenMode = v;\n }\n\n /**\n * A signal emitted when a widget is removed from a stacked panel.\n */\n get widgetRemoved(): ISignal {\n return this._widgetRemoved;\n }\n\n /**\n * A message handler invoked on a `'child-added'` message.\n */\n protected onChildAdded(msg: Widget.ChildMessage): void {\n msg.child.addClass('lm-StackedPanel-child');\n /* */\n msg.child.addClass('p-StackedPanel-child');\n /* */\n }\n\n /**\n * A message handler invoked on a `'child-removed'` message.\n */\n protected onChildRemoved(msg: Widget.ChildMessage): void {\n msg.child.removeClass('lm-StackedPanel-child');\n /* */\n msg.child.removeClass('p-StackedPanel-child');\n /* */\n this._widgetRemoved.emit(msg.child);\n }\n\n private _widgetRemoved = new Signal(this);\n}\n\n/**\n * The namespace for the `StackedPanel` class statics.\n */\nexport namespace StackedPanel {\n /**\n * An options object for creating a stacked panel.\n */\n export interface IOptions {\n /**\n * The stacked layout to use for the stacked panel.\n *\n * The default is a new `StackedLayout`.\n */\n layout?: StackedLayout;\n }\n}\n\n/**\n * The namespace for the module implementation details.\n */\nnamespace Private {\n /**\n * Create a stacked layout for the given panel options.\n */\n export function createLayout(options: StackedPanel.IOptions): StackedLayout {\n return options.layout || new StackedLayout();\n }\n}\n","// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n/*-----------------------------------------------------------------------------\n| Copyright (c) 2014-2017, PhosphorJS Contributors\n|\n| Distributed under the terms of the BSD 3-Clause License.\n|\n| The full license is in the file LICENSE, distributed with this software.\n|----------------------------------------------------------------------------*/\nimport { each, empty, IIterator, once } from '@lumino/algorithm';\n\nimport { MessageLoop } from '@lumino/messaging';\n\nimport { Layout } from './layout';\n\nimport { Widget } from './widget';\n\n/**\n * A concrete layout implementation which holds a single widget.\n *\n * #### Notes\n * This class is useful for creating simple container widgets which\n * hold a single child. The child should be positioned with CSS.\n */\nexport class SingletonLayout extends Layout {\n /**\n * Dispose of the resources held by the layout.\n */\n dispose(): void {\n if (this._widget) {\n let widget = this._widget;\n this._widget = null;\n widget.dispose();\n }\n super.dispose();\n }\n\n /**\n * Get the child widget for the layout.\n */\n get widget(): Widget | null {\n return this._widget;\n }\n\n /**\n * Set the child widget for the layout.\n *\n * #### Notes\n * Setting the child widget will cause the old child widget to be\n * automatically disposed. If that is not desired, set the parent\n * of the old child to `null` before assigning a new child.\n */\n set widget(widget: Widget | null) {\n // Remove the widget from its current parent. This is a no-op\n // if the widget's parent is already the layout parent widget.\n if (widget) {\n widget.parent = this.parent;\n }\n\n // Bail early if the widget does not change.\n if (this._widget === widget) {\n return;\n }\n\n // Dispose of the old child widget.\n if (this._widget) {\n this._widget.dispose();\n }\n\n // Update the internal widget.\n this._widget = widget;\n\n // Attach the new child widget if needed.\n if (this.parent && widget) {\n this.attachWidget(widget);\n }\n }\n\n /**\n * Create an iterator over the widgets in the layout.\n *\n * @returns A new iterator over the widgets in the layout.\n */\n iter(): IIterator {\n return this._widget ? once(this._widget) : empty();\n }\n\n /**\n * Remove a widget from the layout.\n *\n * @param widget - The widget to remove from the layout.\n *\n * #### Notes\n * A widget is automatically removed from the layout when its `parent`\n * is set to `null`. This method should only be invoked directly when\n * removing a widget from a layout which has yet to be installed on a\n * parent widget.\n *\n * This method does *not* modify the widget's `parent`.\n */\n removeWidget(widget: Widget): void {\n // Bail early if the widget does not exist in the layout.\n if (this._widget !== widget) {\n return;\n }\n\n // Clear the internal widget.\n this._widget = null;\n\n // If the layout is parented, detach the widget from the DOM.\n if (this.parent) {\n this.detachWidget(widget);\n }\n }\n\n /**\n * Perform layout initialization which requires the parent widget.\n */\n protected init(): void {\n super.init();\n each(this, widget => {\n this.attachWidget(widget);\n });\n }\n\n /**\n * Attach a widget to the parent's DOM node.\n *\n * @param index - The current index of the widget in the layout.\n *\n * @param widget - The widget to attach to the parent.\n *\n * #### Notes\n * This method is called automatically by the single layout at the\n * appropriate time. It should not be called directly by user code.\n *\n * The default implementation adds the widgets's node to the parent's\n * node at the proper location, and sends the appropriate attach\n * messages to the widget if the parent is attached to the DOM.\n *\n * Subclasses may reimplement this method to control how the widget's\n * node is added to the parent's node.\n */\n protected attachWidget(widget: Widget): void {\n // Send a `'before-attach'` message if the parent is attached.\n if (this.parent!.isAttached) {\n MessageLoop.sendMessage(widget, Widget.Msg.BeforeAttach);\n }\n\n // Add the widget's node to the parent.\n this.parent!.node.appendChild(widget.node);\n\n // Send an `'after-attach'` message if the parent is attached.\n if (this.parent!.isAttached) {\n MessageLoop.sendMessage(widget, Widget.Msg.AfterAttach);\n }\n }\n\n /**\n * Detach a widget from the parent's DOM node.\n *\n * @param widget - The widget to detach from the parent.\n *\n * #### Notes\n * This method is called automatically by the single layout at the\n * appropriate time. It should not be called directly by user code.\n *\n * The default implementation removes the widget's node from the\n * parent's node, and sends the appropriate detach messages to the\n * widget if the parent is attached to the DOM.\n *\n * Subclasses may reimplement this method to control how the widget's\n * node is removed from the parent's node.\n */\n protected detachWidget(widget: Widget): void {\n // Send a `'before-detach'` message if the parent is attached.\n if (this.parent!.isAttached) {\n MessageLoop.sendMessage(widget, Widget.Msg.BeforeDetach);\n }\n\n // Remove the widget's node from the parent.\n this.parent!.node.removeChild(widget.node);\n\n // Send an `'after-detach'` message if the parent is attached.\n if (this.parent!.isAttached) {\n MessageLoop.sendMessage(widget, Widget.Msg.AfterDetach);\n }\n }\n\n private _widget: Widget | null = null;\n}\n","// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n/*-----------------------------------------------------------------------------\n| Copyright (c) 2014-2017, PhosphorJS Contributors\n|\n| Distributed under the terms of the BSD 3-Clause License.\n|\n| The full license is in the file LICENSE, distributed with this software.\n|----------------------------------------------------------------------------*/\nimport { ArrayExt, each } from '@lumino/algorithm';\n\nimport { ElementExt } from '@lumino/domutils';\n\nimport { Message, MessageLoop } from '@lumino/messaging';\n\nimport { Layout, LayoutItem } from './layout';\n\nimport { PanelLayout } from './panellayout';\n\nimport { Widget } from './widget';\n\n/**\n * A layout where visible widgets are stacked atop one another.\n *\n * #### Notes\n * The Z-order of the visible widgets follows their layout order.\n */\nexport class StackedLayout extends PanelLayout {\n constructor(options: StackedLayout.IOptions = {}) {\n super(options);\n this._hiddenMode =\n options.hiddenMode !== undefined\n ? options.hiddenMode\n : Widget.HiddenMode.Display;\n }\n\n /**\n * The method for hiding widgets.\n *\n * #### Notes\n * If there is only one child widget, `Display` hiding mode will be used\n * regardless of this setting.\n */\n get hiddenMode(): Widget.HiddenMode {\n return this._hiddenMode;\n }\n\n /**\n * Set the method for hiding widgets.\n *\n * #### Notes\n * If there is only one child widget, `Display` hiding mode will be used\n * regardless of this setting.\n */\n set hiddenMode(v: Widget.HiddenMode) {\n if (this._hiddenMode === v) {\n return;\n }\n this._hiddenMode = v;\n if (this.widgets.length > 1) {\n this.widgets.forEach(w => {\n w.hiddenMode = this._hiddenMode;\n });\n }\n }\n\n /**\n * Dispose of the resources held by the layout.\n */\n dispose(): void {\n // Dispose of the layout items.\n each(this._items, item => {\n item.dispose();\n });\n\n // Clear the layout state.\n this._box = null;\n this._items.length = 0;\n\n // Dispose of the rest of the layout.\n super.dispose();\n }\n\n /**\n * Attach a widget to the parent's DOM node.\n *\n * @param index - The current index of the widget in the layout.\n *\n * @param widget - The widget to attach to the parent.\n *\n * #### Notes\n * This is a reimplementation of the superclass method.\n */\n protected attachWidget(index: number, widget: Widget): void {\n // Using transform create an additional layer in the pixel pipeline\n // to limit the number of layer, it is set only if there is more than one widget.\n if (\n this._hiddenMode === Widget.HiddenMode.Scale &&\n this._items.length > 0\n ) {\n if (this._items.length === 1) {\n this.widgets[0].hiddenMode = Widget.HiddenMode.Scale;\n }\n widget.hiddenMode = Widget.HiddenMode.Scale;\n } else {\n widget.hiddenMode = Widget.HiddenMode.Display;\n }\n\n // Create and add a new layout item for the widget.\n ArrayExt.insert(this._items, index, new LayoutItem(widget));\n\n // Send a `'before-attach'` message if the parent is attached.\n if (this.parent!.isAttached) {\n MessageLoop.sendMessage(widget, Widget.Msg.BeforeAttach);\n }\n\n // Add the widget's node to the parent.\n this.parent!.node.appendChild(widget.node);\n\n // Send an `'after-attach'` message if the parent is attached.\n if (this.parent!.isAttached) {\n MessageLoop.sendMessage(widget, Widget.Msg.AfterAttach);\n }\n\n // Post a fit request for the parent widget.\n this.parent!.fit();\n }\n\n /**\n * Move a widget in the parent's DOM node.\n *\n * @param fromIndex - The previous index of the widget in the layout.\n *\n * @param toIndex - The current index of the widget in the layout.\n *\n * @param widget - The widget to move in the parent.\n *\n * #### Notes\n * This is a reimplementation of the superclass method.\n */\n protected moveWidget(\n fromIndex: number,\n toIndex: number,\n widget: Widget\n ): void {\n // Move the layout item for the widget.\n ArrayExt.move(this._items, fromIndex, toIndex);\n\n // Post an update request for the parent widget.\n this.parent!.update();\n }\n\n /**\n * Detach a widget from the parent's DOM node.\n *\n * @param index - The previous index of the widget in the layout.\n *\n * @param widget - The widget to detach from the parent.\n *\n * #### Notes\n * This is a reimplementation of the superclass method.\n */\n protected detachWidget(index: number, widget: Widget): void {\n // Remove the layout item for the widget.\n let item = ArrayExt.removeAt(this._items, index);\n\n // Send a `'before-detach'` message if the parent is attached.\n if (this.parent!.isAttached) {\n MessageLoop.sendMessage(widget, Widget.Msg.BeforeDetach);\n }\n\n // Remove the widget's node from the parent.\n this.parent!.node.removeChild(widget.node);\n\n // Send an `'after-detach'` message if the parent is attached.\n if (this.parent!.isAttached) {\n MessageLoop.sendMessage(widget, Widget.Msg.AfterDetach);\n }\n\n // Reset the z-index for the widget.\n item!.widget.node.style.zIndex = '';\n\n // Reset the hidden mode for the widget.\n if (this._hiddenMode === Widget.HiddenMode.Scale) {\n widget.hiddenMode = Widget.HiddenMode.Display;\n\n // Reset the hidden mode for the first widget if necessary.\n if (this._items.length === 1) {\n this._items[0].widget.hiddenMode = Widget.HiddenMode.Display;\n }\n }\n\n // Dispose of the layout item.\n item!.dispose();\n\n // Post a fit request for the parent widget.\n this.parent!.fit();\n }\n\n /**\n * A message handler invoked on a `'before-show'` message.\n */\n protected onBeforeShow(msg: Message): void {\n super.onBeforeShow(msg);\n this.parent!.update();\n }\n\n /**\n * A message handler invoked on a `'before-attach'` message.\n */\n protected onBeforeAttach(msg: Message): void {\n super.onBeforeAttach(msg);\n this.parent!.fit();\n }\n\n /**\n * A message handler invoked on a `'child-shown'` message.\n */\n protected onChildShown(msg: Widget.ChildMessage): void {\n this.parent!.fit();\n }\n\n /**\n * A message handler invoked on a `'child-hidden'` message.\n */\n protected onChildHidden(msg: Widget.ChildMessage): void {\n this.parent!.fit();\n }\n\n /**\n * A message handler invoked on a `'resize'` message.\n */\n protected onResize(msg: Widget.ResizeMessage): void {\n if (this.parent!.isVisible) {\n this._update(msg.width, msg.height);\n }\n }\n\n /**\n * A message handler invoked on an `'update-request'` message.\n */\n protected onUpdateRequest(msg: Message): void {\n if (this.parent!.isVisible) {\n this._update(-1, -1);\n }\n }\n\n /**\n * A message handler invoked on a `'fit-request'` message.\n */\n protected onFitRequest(msg: Message): void {\n if (this.parent!.isAttached) {\n this._fit();\n }\n }\n\n /**\n * Fit the layout to the total size required by the widgets.\n */\n private _fit(): void {\n // Set up the computed minimum size.\n let minW = 0;\n let minH = 0;\n\n // Update the computed minimum size.\n for (let i = 0, n = this._items.length; i < n; ++i) {\n // Fetch the item.\n let item = this._items[i];\n\n // Ignore hidden items.\n if (item.isHidden) {\n continue;\n }\n\n // Update the size limits for the item.\n item.fit();\n\n // Update the computed minimum size.\n minW = Math.max(minW, item.minWidth);\n minH = Math.max(minH, item.minHeight);\n }\n\n // Update the box sizing and add it to the computed min size.\n let box = (this._box = ElementExt.boxSizing(this.parent!.node));\n minW += box.horizontalSum;\n minH += box.verticalSum;\n\n // Update the parent's min size constraints.\n let style = this.parent!.node.style;\n style.minWidth = `${minW}px`;\n style.minHeight = `${minH}px`;\n\n // Set the dirty flag to ensure only a single update occurs.\n this._dirty = true;\n\n // Notify the ancestor that it should fit immediately. This may\n // cause a resize of the parent, fulfilling the required update.\n if (this.parent!.parent) {\n MessageLoop.sendMessage(this.parent!.parent!, Widget.Msg.FitRequest);\n }\n\n // If the dirty flag is still set, the parent was not resized.\n // Trigger the required update on the parent widget immediately.\n if (this._dirty) {\n MessageLoop.sendMessage(this.parent!, Widget.Msg.UpdateRequest);\n }\n }\n\n /**\n * Update the layout position and size of the widgets.\n *\n * The parent offset dimensions should be `-1` if unknown.\n */\n private _update(offsetWidth: number, offsetHeight: number): void {\n // Clear the dirty flag to indicate the update occurred.\n this._dirty = false;\n\n // Compute the visible item count.\n let nVisible = 0;\n for (let i = 0, n = this._items.length; i < n; ++i) {\n nVisible += +!this._items[i].isHidden;\n }\n\n // Bail early if there are no visible items to layout.\n if (nVisible === 0) {\n return;\n }\n\n // Measure the parent if the offset dimensions are unknown.\n if (offsetWidth < 0) {\n offsetWidth = this.parent!.node.offsetWidth;\n }\n if (offsetHeight < 0) {\n offsetHeight = this.parent!.node.offsetHeight;\n }\n\n // Ensure the parent box sizing data is computed.\n if (!this._box) {\n this._box = ElementExt.boxSizing(this.parent!.node);\n }\n\n // Compute the actual layout bounds adjusted for border and padding.\n let top = this._box.paddingTop;\n let left = this._box.paddingLeft;\n let width = offsetWidth - this._box.horizontalSum;\n let height = offsetHeight - this._box.verticalSum;\n\n // Update the widget stacking order and layout geometry.\n for (let i = 0, n = this._items.length; i < n; ++i) {\n // Fetch the item.\n let item = this._items[i];\n\n // Ignore hidden items.\n if (item.isHidden) {\n continue;\n }\n\n // Set the z-index for the widget.\n item.widget.node.style.zIndex = `${i}`;\n\n // Update the item geometry.\n item.update(left, top, width, height);\n }\n }\n\n private _dirty = false;\n private _items: LayoutItem[] = [];\n private _box: ElementExt.IBoxSizing | null = null;\n private _hiddenMode: Widget.HiddenMode;\n}\n\n/**\n * The namespace for the `StackedLayout` class statics.\n */\nexport namespace StackedLayout {\n /**\n * An options object for initializing a stacked layout.\n */\n export interface IOptions extends Layout.IOptions {\n /**\n * The method for hiding widgets.\n *\n * The default is `Widget.HiddenMode.Display`.\n */\n hiddenMode?: Widget.HiddenMode;\n }\n}\n","// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n/*-----------------------------------------------------------------------------\n| Copyright (c) 2014-2017, PhosphorJS Contributors\n|\n| Distributed under the terms of the BSD 3-Clause License.\n|\n| The full license is in the file LICENSE, distributed with this software.\n|----------------------------------------------------------------------------*/\nimport { Platform } from '@lumino/domutils';\n\nimport { MessageLoop } from '@lumino/messaging';\n\nimport { ISignal, Signal } from '@lumino/signaling';\n\nimport { BoxLayout } from './boxlayout';\n\nimport { StackedPanel } from './stackedpanel';\n\nimport { TabBar } from './tabbar';\n\nimport { Widget } from './widget';\n\n/**\n * A widget which combines a `TabBar` and a `StackedPanel`.\n *\n * #### Notes\n * This is a simple panel which handles the common case of a tab bar\n * placed next to a content area. The selected tab controls the widget\n * which is shown in the content area.\n *\n * For use cases which require more control than is provided by this\n * panel, the `TabBar` widget may be used independently.\n */\nexport class TabPanel extends Widget {\n /**\n * Construct a new tab panel.\n *\n * @param options - The options for initializing the tab panel.\n */\n constructor(options: TabPanel.IOptions = {}) {\n super();\n this.addClass('lm-TabPanel');\n /* */\n this.addClass('p-TabPanel');\n /* */\n\n // Create the tab bar and stacked panel.\n this.tabBar = new TabBar(options);\n this.tabBar.addClass('lm-TabPanel-tabBar');\n this.stackedPanel = new StackedPanel();\n this.stackedPanel.addClass('lm-TabPanel-stackedPanel');\n /* */\n this.tabBar.addClass('p-TabPanel-tabBar');\n this.stackedPanel.addClass('p-TabPanel-stackedPanel');\n /* */\n\n // Connect the tab bar signal handlers.\n this.tabBar.tabMoved.connect(this._onTabMoved, this);\n this.tabBar.currentChanged.connect(this._onCurrentChanged, this);\n this.tabBar.tabCloseRequested.connect(this._onTabCloseRequested, this);\n this.tabBar.tabActivateRequested.connect(\n this._onTabActivateRequested,\n this\n );\n this.tabBar.addRequested.connect(this._onTabAddRequested, this);\n\n // Connect the stacked panel signal handlers.\n this.stackedPanel.widgetRemoved.connect(this._onWidgetRemoved, this);\n\n // Get the data related to the placement.\n this._tabPlacement = options.tabPlacement || 'top';\n let direction = Private.directionFromPlacement(this._tabPlacement);\n let orientation = Private.orientationFromPlacement(this._tabPlacement);\n\n // Configure the tab bar for the placement.\n this.tabBar.orientation = orientation;\n this.tabBar.dataset['placement'] = this._tabPlacement;\n\n // Create the box layout.\n let layout = new BoxLayout({ direction, spacing: 0 });\n\n // Set the stretch factors for the child widgets.\n BoxLayout.setStretch(this.tabBar, 0);\n BoxLayout.setStretch(this.stackedPanel, 1);\n\n // Add the child widgets to the layout.\n layout.addWidget(this.tabBar);\n layout.addWidget(this.stackedPanel);\n\n // Install the layout on the tab panel.\n this.layout = layout;\n }\n\n /**\n * A signal emitted when the current tab is changed.\n *\n * #### Notes\n * This signal is emitted when the currently selected tab is changed\n * either through user or programmatic interaction.\n *\n * Notably, this signal is not emitted when the index of the current\n * tab changes due to tabs being inserted, removed, or moved. It is\n * only emitted when the actual current tab node is changed.\n */\n get currentChanged(): ISignal {\n return this._currentChanged;\n }\n\n /**\n * Get the index of the currently selected tab.\n *\n * #### Notes\n * This will be `-1` if no tab is selected.\n */\n get currentIndex(): number {\n return this.tabBar.currentIndex;\n }\n\n /**\n * Set the index of the currently selected tab.\n *\n * #### Notes\n * If the index is out of range, it will be set to `-1`.\n */\n set currentIndex(value: number) {\n this.tabBar.currentIndex = value;\n }\n\n /**\n * Get the currently selected widget.\n *\n * #### Notes\n * This will be `null` if there is no selected tab.\n */\n get currentWidget(): Widget | null {\n let title = this.tabBar.currentTitle;\n return title ? title.owner : null;\n }\n\n /**\n * Set the currently selected widget.\n *\n * #### Notes\n * If the widget is not in the panel, it will be set to `null`.\n */\n set currentWidget(value: Widget | null) {\n this.tabBar.currentTitle = value ? value.title : null;\n }\n\n /**\n * Get the whether the tabs are movable by the user.\n *\n * #### Notes\n * Tabs can always be moved programmatically.\n */\n get tabsMovable(): boolean {\n return this.tabBar.tabsMovable;\n }\n\n /**\n * Set the whether the tabs are movable by the user.\n *\n * #### Notes\n * Tabs can always be moved programmatically.\n */\n set tabsMovable(value: boolean) {\n this.tabBar.tabsMovable = value;\n }\n\n /**\n * Get the whether the add button is enabled.\n *\n */\n get addButtonEnabled(): boolean {\n return this.tabBar.addButtonEnabled;\n }\n\n /**\n * Set the whether the add button is enabled.\n *\n */\n set addButtonEnabled(value: boolean) {\n this.tabBar.addButtonEnabled = value;\n }\n\n /**\n * Get the tab placement for the tab panel.\n *\n * #### Notes\n * This controls the position of the tab bar relative to the content.\n */\n get tabPlacement(): TabPanel.TabPlacement {\n return this._tabPlacement;\n }\n\n /**\n * Set the tab placement for the tab panel.\n *\n * #### Notes\n * This controls the position of the tab bar relative to the content.\n */\n set tabPlacement(value: TabPanel.TabPlacement) {\n // Bail if the placement does not change.\n if (this._tabPlacement === value) {\n return;\n }\n\n // Update the internal value.\n this._tabPlacement = value;\n\n // Get the values related to the placement.\n let direction = Private.directionFromPlacement(value);\n let orientation = Private.orientationFromPlacement(value);\n\n // Configure the tab bar for the placement.\n this.tabBar.orientation = orientation;\n this.tabBar.dataset['placement'] = value;\n\n // Update the layout direction.\n (this.layout as BoxLayout).direction = direction;\n }\n\n /**\n * A signal emitted when the add button on a tab bar is clicked.\n *\n */\n get addRequested(): ISignal> {\n return this._addRequested;\n }\n\n /**\n * The tab bar used by the tab panel.\n *\n * #### Notes\n * Modifying the tab bar directly can lead to undefined behavior.\n */\n readonly tabBar: TabBar;\n\n /**\n * The stacked panel used by the tab panel.\n *\n * #### Notes\n * Modifying the panel directly can lead to undefined behavior.\n */\n readonly stackedPanel: StackedPanel;\n\n /**\n * A read-only array of the widgets in the panel.\n */\n get widgets(): ReadonlyArray {\n return this.stackedPanel.widgets;\n }\n\n /**\n * Add a widget to the end of the tab panel.\n *\n * @param widget - The widget to add to the tab panel.\n *\n * #### Notes\n * If the widget is already contained in the panel, it will be moved.\n *\n * The widget's `title` is used to populate the tab.\n */\n addWidget(widget: Widget): void {\n this.insertWidget(this.widgets.length, widget);\n }\n\n /**\n * Insert a widget into the tab panel at a specified index.\n *\n * @param index - The index at which to insert the widget.\n *\n * @param widget - The widget to insert into to the tab panel.\n *\n * #### Notes\n * If the widget is already contained in the panel, it will be moved.\n *\n * The widget's `title` is used to populate the tab.\n */\n insertWidget(index: number, widget: Widget): void {\n if (widget !== this.currentWidget) {\n widget.hide();\n }\n this.stackedPanel.insertWidget(index, widget);\n this.tabBar.insertTab(index, widget.title);\n\n widget.node.setAttribute('role', 'tabpanel');\n\n let renderer = this.tabBar.renderer;\n if (renderer instanceof TabBar.Renderer) {\n let tabId = renderer.createTabKey({\n title: widget.title,\n current: false,\n zIndex: 0\n });\n widget.node.setAttribute('aria-labelledby', tabId);\n }\n }\n\n /**\n * Handle the `currentChanged` signal from the tab bar.\n */\n private _onCurrentChanged(\n sender: TabBar,\n args: TabBar.ICurrentChangedArgs\n ): void {\n // Extract the previous and current title from the args.\n let { previousIndex, previousTitle, currentIndex, currentTitle } = args;\n\n // Extract the widgets from the titles.\n let previousWidget = previousTitle ? previousTitle.owner : null;\n let currentWidget = currentTitle ? currentTitle.owner : null;\n\n // Hide the previous widget.\n if (previousWidget) {\n previousWidget.hide();\n }\n\n // Show the current widget.\n if (currentWidget) {\n currentWidget.show();\n }\n\n // Emit the `currentChanged` signal for the tab panel.\n this._currentChanged.emit({\n previousIndex,\n previousWidget,\n currentIndex,\n currentWidget\n });\n\n // Flush the message loop on IE and Edge to prevent flicker.\n if (Platform.IS_EDGE || Platform.IS_IE) {\n MessageLoop.flush();\n }\n }\n\n /**\n * Handle the `tabAddRequested` signal from the tab bar.\n */\n private _onTabAddRequested(sender: TabBar, args: void): void {\n this._addRequested.emit(sender);\n }\n\n /**\n * Handle the `tabActivateRequested` signal from the tab bar.\n */\n private _onTabActivateRequested(\n sender: TabBar,\n args: TabBar.ITabActivateRequestedArgs\n ): void {\n args.title.owner.activate();\n }\n\n /**\n * Handle the `tabCloseRequested` signal from the tab bar.\n */\n private _onTabCloseRequested(\n sender: TabBar,\n args: TabBar.ITabCloseRequestedArgs\n ): void {\n args.title.owner.close();\n }\n\n /**\n * Handle the `tabMoved` signal from the tab bar.\n */\n private _onTabMoved(\n sender: TabBar,\n args: TabBar.ITabMovedArgs\n ): void {\n this.stackedPanel.insertWidget(args.toIndex, args.title.owner);\n }\n\n /**\n * Handle the `widgetRemoved` signal from the stacked panel.\n */\n private _onWidgetRemoved(sender: StackedPanel, widget: Widget): void {\n widget.node.removeAttribute('role');\n widget.node.removeAttribute('aria-labelledby');\n this.tabBar.removeTab(widget.title);\n }\n\n private _tabPlacement: TabPanel.TabPlacement;\n private _currentChanged = new Signal(\n this\n );\n\n private _addRequested = new Signal>(this);\n}\n\n/**\n * The namespace for the `TabPanel` class statics.\n */\nexport namespace TabPanel {\n /**\n * A type alias for tab placement in a tab bar.\n */\n export type TabPlacement =\n | /**\n * The tabs are placed as a row above the content.\n */\n 'top'\n\n /**\n * The tabs are placed as a column to the left of the content.\n */\n | 'left'\n\n /**\n * The tabs are placed as a column to the right of the content.\n */\n | 'right'\n\n /**\n * The tabs are placed as a row below the content.\n */\n | 'bottom';\n\n /**\n * An options object for initializing a tab panel.\n */\n export interface IOptions {\n /**\n * The document to use with the tab panel.\n *\n * The default is the global `document` instance.\n */\n document?: Document | ShadowRoot;\n\n /**\n * Whether the tabs are movable by the user.\n *\n * The default is `false`.\n */\n tabsMovable?: boolean;\n\n /**\n * Whether the button to add new tabs is enabled.\n *\n * The default is `false`.\n */\n addButtonEnabled?: boolean;\n\n /**\n * The placement of the tab bar relative to the content.\n *\n * The default is `'top'`.\n */\n tabPlacement?: TabPlacement;\n\n /**\n * The renderer for the panel's tab bar.\n *\n * The default is a shared renderer instance.\n */\n renderer?: TabBar.IRenderer;\n }\n\n /**\n * The arguments object for the `currentChanged` signal.\n */\n export interface ICurrentChangedArgs {\n /**\n * The previously selected index.\n */\n previousIndex: number;\n\n /**\n * The previously selected widget.\n */\n previousWidget: Widget | null;\n\n /**\n * The currently selected index.\n */\n currentIndex: number;\n\n /**\n * The currently selected widget.\n */\n currentWidget: Widget | null;\n }\n}\n\n/**\n * The namespace for the module implementation details.\n */\nnamespace Private {\n /**\n * Convert a tab placement to tab bar orientation.\n */\n export function orientationFromPlacement(\n plc: TabPanel.TabPlacement\n ): TabBar.Orientation {\n return placementToOrientationMap[plc];\n }\n\n /**\n * Convert a tab placement to a box layout direction.\n */\n export function directionFromPlacement(\n plc: TabPanel.TabPlacement\n ): BoxLayout.Direction {\n return placementToDirectionMap[plc];\n }\n\n /**\n * A mapping of tab placement to tab bar orientation.\n */\n const placementToOrientationMap: { [key: string]: TabBar.Orientation } = {\n top: 'horizontal',\n left: 'vertical',\n right: 'vertical',\n bottom: 'horizontal'\n };\n\n /**\n * A mapping of tab placement to box layout direction.\n */\n const placementToDirectionMap: { [key: string]: BoxLayout.Direction } = {\n top: 'top-to-bottom',\n left: 'left-to-right',\n right: 'right-to-left',\n bottom: 'bottom-to-top'\n };\n}\n"],"names":["extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","prototype","hasOwnProperty","call","__extends","TypeError","String","__","this","constructor","create","BoxEngine","__assign","assign","t","s","i","n","arguments","length","apply","sizeHint","minSize","maxSize","Infinity","stretch","size","done","calc","sizers","space","count","totalMin","totalMax","totalSize","totalStretch","stretchCount","min","sizer","max","hint","Math","nearZero","notDoneCount","freeSpace","distSpace","distStretch","amt","adjust","index","delta","growLimit","shrinkLimit","grow","limit","shrink","growSizer","shrinkSizer","Private","options","_label","_caption","_mnemonic","_iconClass","_iconLabel","_className","_closable","_changed","Signal","_isDisposed","owner","undefined","label","mnemonic","icon","_icon","iconClass","iconLabel","iconRenderer","caption","className","closable","_dataset","dataset","value","emit","dispose","isDisposed","_flags","_layout","_parent","_disposed","_hiddenMode","Widget","HiddenMode","Display","node","createNode","addClass","setFlag","Flag","IsDisposed","parent","isAttached","detach","title","MessageLoop","AttachedProperty","testFlag","IsAttached","IsHidden","IsVisible","titleProperty","get","id","isHidden","_toggleHidden","Scale","style","willChange","contains","Error","msg","ChildMessage","Msg","ParentChanged","DisallowLayout","children","iter","empty","widget","hasClass","name","classList","add","removeClass","remove","toggleClass","force","toggle","update","UpdateRequest","fit","FitRequest","activate","ActivateRequest","close","CloseRequest","show","isVisible","BeforeShow","clearFlag","removeAttribute","AfterShow","hide","BeforeHide","setAttribute","AfterHide","setHidden","hidden","flag","processMessage","type","notifyLayout","onResize","onUpdateRequest","onFitRequest","onBeforeShow","onAfterShow","onBeforeHide","onAfterHide","onBeforeAttach","onAfterAttach","onBeforeDetach","onAfterDetach","onActivateRequest","onCloseRequest","onChildAdded","onChildRemoved","processParentMessage","transform","ContentVisibility","contentVisibility","zIndex","Message","BeforeAttach","AfterAttach","BeforeDetach","AfterDetach","ConflatableMessage","child","width","height","ResizeMessage","UnknownSize","attach","host","ref","isConnected","insertBefore","parentNode","removeChild","Title","document","createElement","tag","_fitPolicy","fitPolicy","layout","init","minWidth","minHeight","maxWidth","maxHeight","onChildShown","onChildHidden","each","removeWidget","Layout","getHorizontalAlignment","horizontalAlignmentProperty","setHorizontalAlignment","set","getVerticalAlignment","verticalAlignmentProperty","setVerticalAlignment","_top","NaN","_left","_width","_height","_minWidth","_minHeight","_maxWidth","_maxHeight","position","top","left","limits","ElementExt","clampW","clampH","resized","onAlignmentChanged","changed","Utils","_widgets","pop","addWidget","insertWidget","indexOf","j","ArrayExt","attachWidget","moveWidget","removeWidgetAt","detachWidget","fromIndex","toIndex","clampDimension","floor","widgetOffset","_fixed","_spacing","_dirty","_hasNormedSizes","_sizers","_items","_handles","_box","_alignment","_orientation","renderer","orientation","alignment","spacing","item","absoluteSizes","map","relativeSizes","normalize","setRelativeSizes","sizes","temp","slice","push","normed","moveHandle","handle","offsetLeft","offsetTop","LayoutItem","createHandle","average","averageSize","createSizer","appendChild","_update","_fit","updateItemPosition","isHorizontal","handleStyle","nVisible","lastHandleIndex","horz","minW","minH","SplitLayout","getStretch","box","horizontalSum","verticalSum","offsetWidth","offsetHeight","paddingTop","paddingLeft","extra","offset","fullOffset","PanelLayout","stretchProperty","setStretch","coerce","BoxSizer","reduce","v","values","sum","a","abs","_titles","titleSpace","updateTitle","oldTitle","expanded","newTitle","createTitle","replaceChild","titleStyle","data","createSectionTitle","createLayout","widgets","_handleMoved","_pressData","_releaseMouse","handles","handleEvent","event","_evtMouseDown","_evtMouseMove","_evtMouseUp","_evtKeyDown","preventDefault","stopPropagation","addEventListener","removeEventListener","keyCode","button","target","rect","getBoundingClientRect","clientX","clientY","window","getComputedStyle","override","Drag","cursor","pos","Panel","SplitPanel","Renderer","defaultRenderer","_widgetSizesCache","WeakMap","titles","connect","_onTitleChanged","collapse","_toggleExpansion","expand","_evtClick","_eventKeyDown","sender","_computeWidgetSize","widgetSizes","prev","curr","newSize","il","r","k","jl","widgetToCollapse","sz","lastIndexOf","forEach","_","idx","currentSize","defaultPrevented","handled","toString","key","match","click","direction","newIndex","focus","AccordionPanel","titleClassName","_titleID","_titleKeys","_uuid","_nInstance","createCollapseIcon","aData","createTitleKey","textContent","AccordionLayout","_direction","BoxLayout","getSizeBasis","sizeBasisProperty","setSizeBasis","onChildSizingChanged","dir","clampSpacing","BoxPanel","_activeIndex","_results","commands","CommandPalette","commandChanged","_onGenericChange","keyBindingChanged","getElementsByClassName","addItem","createItem","refresh","addItems","items","newItems","removeItem","removeItemAt","clearItems","inputNode","display","_toggleFocused","input","select","query","contentNode","results","search","canActivate","renderEmptyMessage","VirtualDOM","activeIndex","content","result","indices","category","renderHeader","active","renderItem","scrollTop","element","_execute","altKey","ctrlKey","metaKey","shiftKey","_activatePreviousItem","_activateNextItem","ai","start","stop","part","toLowerCase","isEnabled","execute","command","args","focused","activeElement","formatHeader","h","createItemClass","createItemDataset","isToggleable","role","isToggled","renderItemIcon","renderItemContent","renderItemShortcut","formatEmptyMessage","createIconClass","renderItemLabel","renderItemCaption","formatItemLabel","formatItemCaption","formatItemShortcut","StringExt","kb","keyBinding","CommandRegistry","keys","fuzzySearch","source","score","rgx","rgxMatch","exec","pivot","categoryIndices","labelIndices","matchType","scoreCmp","m1","d1","i1","i2","d2","localeCompare","r1","rank","r2","wrapper","clear","spellcheck","CommandItem","scores","replace","matchItems","sort","visited","createResults","_commands","trim","JSONExt","keyBindings","_childIndex","_openTimerID","_closeTimerID","_childMenu","_parentMenu","_aboutToClose","_menuRequested","Menu","menu","childNodes","activateNextItem","activatePreviousItem","triggerActiveItem","activeItem","_cancelOpenTimer","_cancelCloseTimer","rootMenu","console","log","_openChildMenu","insertItem","open","x","y","forceX","forceY","openRootMenu","_evtMouseEnter","_evtMouseLeave","collapsedFlags","computeCollapsed","collapsed","onfocus","childMenu","parentMenu","kc","getKeyboardLayout","keyForKeydownEvent","findMnemonic","multiple","auto","_startCloseTimer","submenu","_startOpenTimer","hitTestMenus","activateFirst","saveWindowData","_closeChildMenu","itemNode","openSubmenu","setTimeout","TIMER_DELAY","clearTimeout","aria","createItemARIA","tabindex","renderIcon","renderLabel","renderShortcut","renderSubmenu","formatLabel","formatShortcut","prefix","suffix","char","SUBMENU_OVERLAP","transientWindowDataCache","transientCacheCounter","getWindowData","_getWindowData","pageXOffset","pageYOffset","clientWidth","documentElement","clientHeight","tabIndex","MenuItem","k1","k2","windowData","px","py","cw","ch","opacity","body","itemRect","right","borderTop","bottom","borderBottom","paddingBottom","upperKey","toUpperCase","mn","_groupByTarget","_idTick","_sortBySelector","groupByTarget","sortBySelector","e","getOwnPropertySymbols","propertyIsEnumerable","others","DisposableDelegate","itemCmpRank","itemCmp","s1","Selector","selector","s2","validateSelector","currentTarget","elementFromPoint","availableItems","matches","parentElement","_currentIndex","_titlesEditable","_previousTitle","_dragData","_addButtonEnabled","_tabMoved","_currentChanged","_addRequested","_tabCloseRequested","_tabDetachRequested","_tabActivateRequested","_document","tabsMovable","titlesEditable","allowDeselect","addButtonEnabled","insertBehavior","removeBehavior","TabBar","currentIndex","pi","pt","ci","ct","previousIndex","previousTitle","currentTitle","_name","addButtonNode","addTab","insertTab","asTitle","_adjustCurrentForInsert","_adjustCurrentForMove","removeTab","removeTabAt","disconnect","_adjustCurrentForRemove","clearTabs","releaseMouse","_evtDblClick","current","renderTab","tabs","tab","querySelector","innerHTML","addButtonClicked","pressX","pressY","tabPos","tabSize","tabPressPos","targetIndex","tabLayout","contentRect","dragActive","dragAborted","detachRequested","closeIconSelector","dragExceeded","tabRect","snapTabLayout","detachExceeded","layoutTabs","finalizeTabPosition","duration","parseTransitionDuration","resetTabPositions","bh","_tabID","_tabKeys","createTabKey","createTabStyle","createTabClass","createTabDataset","createTabARIA","renderCloseIcon","addButtonSelector","DRAG_THRESHOLD","DETACH_THRESHOLD","parseFloat","transitionDuration","margin","marginLeft","marginTop","dx","dy","pressPos","localPos","clientPos","clientSize","targetPos","targetEnd","pxPos","threshold","ideal","tgt","final","_root","Map","hiddenMode","tabBars","bar","iterAllWidgets","iterUserWidgets","selectedWidgets","iterSelectedWidgets","iterTabBars","iterHandles","offsetX","offsetY","findSplitNode","holdSizes","saveLayout","holdAllSizes","main","createConfig","restoreLayout","config","mainConfig","widgetSet","Set","normalizeAreaConfig","oldWidgets","oldTabBars","oldHandles","has","tabBar","realizeAreaConfig","createTabBar","_createTabBar","_createHandle","mode","refNode","findTabNode","_insertTab","_insertSplit","_removeWidget","hitTestTabAreas","borderLeft","tabNode","hitTestTabNodes","borderWidth","borderRight","borderHeight","delete","removeAria","splitNode","syncHandles","maybeParent","childNode","childHandle","TabLayoutNode","splitHandle","gChild","gHandle","gSizer","after","addAria","findFirstTabNode","root","_splitRoot","normalizeSizes","GOLDEN_RATIO","SplitLayoutNode","normalized","oldRoot","newRoot","normalizeTabAreaConfig","normalizeSplitAreaConfig","realizeTabAreaConfig","realizeSplitAreaConfig","tabSizer","widgetSizer","chain","once","tabBarItem","widgetItem","tabBarSizer","ChainIterator","createNormalizedSizes","horizontal","fixed","tabId","_drag","_tabsMovable","_tabsConstrained","_layoutModified","_mode","_renderer","DockPanel","_edges","edges","DEFAULT_EDGES","tabsConstrained","DockLayout","overlay","Overlay","createSingleDocumentConfig","LayoutModified","tabbar","isEmpty","selectWidget","find","activateWidget","Platform","_evtDragEnter","_evtDragLeave","_evtDragOver","_evtDrop","isGeneratedTabBarProperty","mimeData","hasData","_showOverlay","dropAction","proposedAction","zone","factory","getData","getDropRef","deltaX","deltaY","xPos","yPos","paddingRight","tabHeight","tabMoved","_onTabMoved","currentChanged","_onCurrentChanged","tabCloseRequested","_onTabCloseRequested","tabDetachRequested","_onTabDetachRequested","tabActivateRequested","_onTabActivateRequested","addRequested","_onTabAddRequested","MimeData","setData","dragImage","cloneNode","supportedActions","then","_timer","_hidden","geo","delay","panel","toArray","selected","next","findDropTarget","panelRect","pl","pr","pb","al","at","ar","ab","rx","round","ry","_counter","_activeWidget","_currentWidget","_numbers","_nodes","_activeChanged","w","focusNumber","disposed","_onWidgetDisposed","_setWidgets","valid","filter","previous","first","second","_evtFocus","_evtBlur","oldCurrent","oldActive","oldValue","newValue","focusTarget","relatedTarget","_rowSpacing","_columnSpacing","_rowStarts","_columnStarts","_rowSizers","_columnSizers","rowCount","reallocSizers","columnCount","rowSpacing","clampValue","columnSpacing","rowStretch","setRowStretch","columnStretch","setColumnStretch","it","maxRow","maxCol","rowSpanCmp","GridLayout","getCellConfig","row","rowSpan","distributeMin","columnSpanCmp","c1","column","c2","columnSpan","fixedRowSpace","fixedColSpace","cellConfigProperty","setCellConfig","normalizeConfig","portion","_tabFocusIndex","_menus","MenuBar","_forceItemsPosition","forceItemsPosition","openActiveMenu","addMenu","insertMenu","aboutToClose","_onMenuAboutToClose","menuRequested","_onMenuMenuRequested","removeMenu","removeMenuAt","clearMenus","menus","tabFocusIndex","tabbable","blur","stopImmediatePropagation","_positionForMenu","newMenu","activeMenu","oldMenu","_onRepeat","_repeatTimer","mouseX","mouseY","trackNode","thumbNode","thumbRect","_pageRequested","incrementNode","_stepRequested","decrementNode","_value","_page","_maximum","_thumbMoved","maximum","page","thumbStyle","_moveThumb","findPart","trackPos","trackSpan","trackRect","decrement","increment","track","thumb","scrollBar","_widget","_widgetRemoved","StackedLayout","stackedPanel","StackedPanel","widgetRemoved","_onWidgetRemoved","_tabPlacement","tabPlacement","directionFromPlacement","orientationFromPlacement","currentWidget","previousWidget","plc","placementToOrientationMap","placementToDirectionMap"],"sourceRoot":""} \ No newline at end of file diff --git a/_static/build/5710.70d0b1d.js b/_static/build/5710.70d0b1d.js new file mode 100644 index 0000000..047aee2 --- /dev/null +++ b/_static/build/5710.70d0b1d.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[5710],{85073:(r,o,t)=>{t.d(o,{Z:()=>a});var n=t(34663),e=t.n(n),c=t(7638),i=t.n(c)()(e());i.push([r.id,"/*\n\n Name: Tomorrow Night - Bright\n Author: Chris Kempson\n\n Port done by Gerard Braad \n\n*/\n\n.cm-s-tomorrow-night-bright.CodeMirror { background: #000000; color: #eaeaea; }\n.cm-s-tomorrow-night-bright div.CodeMirror-selected { background: #424242; }\n.cm-s-tomorrow-night-bright .CodeMirror-gutters { background: #000000; border-right: 0px; }\n.cm-s-tomorrow-night-bright .CodeMirror-guttermarker { color: #e78c45; }\n.cm-s-tomorrow-night-bright .CodeMirror-guttermarker-subtle { color: #777; }\n.cm-s-tomorrow-night-bright .CodeMirror-linenumber { color: #424242; }\n.cm-s-tomorrow-night-bright .CodeMirror-cursor { border-left: 1px solid #6A6A6A; }\n\n.cm-s-tomorrow-night-bright span.cm-comment { color: #d27b53; }\n.cm-s-tomorrow-night-bright span.cm-atom { color: #a16a94; }\n.cm-s-tomorrow-night-bright span.cm-number { color: #a16a94; }\n\n.cm-s-tomorrow-night-bright span.cm-property, .cm-s-tomorrow-night-bright span.cm-attribute { color: #99cc99; }\n.cm-s-tomorrow-night-bright span.cm-keyword { color: #d54e53; }\n.cm-s-tomorrow-night-bright span.cm-string { color: #e7c547; }\n\n.cm-s-tomorrow-night-bright span.cm-variable { color: #b9ca4a; }\n.cm-s-tomorrow-night-bright span.cm-variable-2 { color: #7aa6da; }\n.cm-s-tomorrow-night-bright span.cm-def { color: #e78c45; }\n.cm-s-tomorrow-night-bright span.cm-bracket { color: #eaeaea; }\n.cm-s-tomorrow-night-bright span.cm-tag { color: #d54e53; }\n.cm-s-tomorrow-night-bright span.cm-link { color: #a16a94; }\n.cm-s-tomorrow-night-bright span.cm-error { background: #d54e53; color: #6A6A6A; }\n\n.cm-s-tomorrow-night-bright .CodeMirror-activeline-background { background: #2a2a2a; }\n.cm-s-tomorrow-night-bright .CodeMirror-matchingbracket { text-decoration: underline; color: white !important; }\n","",{version:3,sources:["webpack://./../node_modules/codemirror/theme/tomorrow-night-bright.css"],names:[],mappings:"AAAA;;;;;;;CAOC;;AAED,yCAAyC,mBAAmB,EAAE,cAAc,EAAE;AAC9E,sDAAsD,mBAAmB,EAAE;AAC3E,kDAAkD,mBAAmB,EAAE,iBAAiB,EAAE;AAC1F,uDAAuD,cAAc,EAAE;AACvE,8DAA8D,WAAW,EAAE;AAC3E,qDAAqD,cAAc,EAAE;AACrE,iDAAiD,8BAA8B,EAAE;;AAEjF,8CAA8C,cAAc,EAAE;AAC9D,2CAA2C,cAAc,EAAE;AAC3D,6CAA6C,cAAc,EAAE;;AAE7D,8FAA8F,cAAc,EAAE;AAC9G,8CAA8C,cAAc,EAAE;AAC9D,6CAA6C,cAAc,EAAE;;AAE7D,+CAA+C,cAAc,EAAE;AAC/D,iDAAiD,cAAc,EAAE;AACjE,0CAA0C,cAAc,EAAE;AAC1D,8CAA8C,cAAc,EAAE;AAC9D,0CAA0C,cAAc,EAAE;AAC1D,2CAA2C,cAAc,EAAE;AAC3D,4CAA4C,mBAAmB,EAAE,cAAc,EAAE;;AAEjF,gEAAgE,mBAAmB,EAAE;AACrF,0DAA0D,0BAA0B,EAAE,uBAAuB,EAAE",sourcesContent:["/*\n\n Name: Tomorrow Night - Bright\n Author: Chris Kempson\n\n Port done by Gerard Braad \n\n*/\n\n.cm-s-tomorrow-night-bright.CodeMirror { background: #000000; color: #eaeaea; }\n.cm-s-tomorrow-night-bright div.CodeMirror-selected { background: #424242; }\n.cm-s-tomorrow-night-bright .CodeMirror-gutters { background: #000000; border-right: 0px; }\n.cm-s-tomorrow-night-bright .CodeMirror-guttermarker { color: #e78c45; }\n.cm-s-tomorrow-night-bright .CodeMirror-guttermarker-subtle { color: #777; }\n.cm-s-tomorrow-night-bright .CodeMirror-linenumber { color: #424242; }\n.cm-s-tomorrow-night-bright .CodeMirror-cursor { border-left: 1px solid #6A6A6A; }\n\n.cm-s-tomorrow-night-bright span.cm-comment { color: #d27b53; }\n.cm-s-tomorrow-night-bright span.cm-atom { color: #a16a94; }\n.cm-s-tomorrow-night-bright span.cm-number { color: #a16a94; }\n\n.cm-s-tomorrow-night-bright span.cm-property, .cm-s-tomorrow-night-bright span.cm-attribute { color: #99cc99; }\n.cm-s-tomorrow-night-bright span.cm-keyword { color: #d54e53; }\n.cm-s-tomorrow-night-bright span.cm-string { color: #e7c547; }\n\n.cm-s-tomorrow-night-bright span.cm-variable { color: #b9ca4a; }\n.cm-s-tomorrow-night-bright span.cm-variable-2 { color: #7aa6da; }\n.cm-s-tomorrow-night-bright span.cm-def { color: #e78c45; }\n.cm-s-tomorrow-night-bright span.cm-bracket { color: #eaeaea; }\n.cm-s-tomorrow-night-bright span.cm-tag { color: #d54e53; }\n.cm-s-tomorrow-night-bright span.cm-link { color: #a16a94; }\n.cm-s-tomorrow-night-bright span.cm-error { background: #d54e53; color: #6A6A6A; }\n\n.cm-s-tomorrow-night-bright .CodeMirror-activeline-background { background: #2a2a2a; }\n.cm-s-tomorrow-night-bright .CodeMirror-matchingbracket { text-decoration: underline; color: white !important; }\n"],sourceRoot:""}]);const a=i},7638:r=>{r.exports=function(r){var o=[];return o.toString=function(){return this.map((function(o){var t="",n=void 0!==o[5];return o[4]&&(t+="@supports (".concat(o[4],") {")),o[2]&&(t+="@media ".concat(o[2]," {")),n&&(t+="@layer".concat(o[5].length>0?" ".concat(o[5]):""," {")),t+=r(o),n&&(t+="}"),o[2]&&(t+="}"),o[4]&&(t+="}"),t})).join("")},o.i=function(r,t,n,e,c){"string"==typeof r&&(r=[[null,r,void 0]]);var i={};if(n)for(var a=0;a0?" ".concat(m[5]):""," {").concat(m[1],"}")),m[5]=c),t&&(m[2]?(m[1]="@media ".concat(m[2]," {").concat(m[1],"}"),m[2]=t):m[2]=t),e&&(m[4]?(m[1]="@supports (".concat(m[4],") {").concat(m[1],"}"),m[4]=e):m[4]="".concat(e)),o.push(m))}},o}},34663:r=>{r.exports=function(r){var o=r[1],t=r[3];if(!t)return o;if("function"==typeof btoa){var n=btoa(unescape(encodeURIComponent(JSON.stringify(t)))),e="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(n),c="/*# ".concat(e," */"),i=t.sources.map((function(r){return"/*# sourceURL=".concat(t.sourceRoot||"").concat(r," */")}));return[o].concat(i).concat([c]).join("\n")}return[o].join("\n")}},45710:(r,o,t)=>{t.r(o),t.d(o,{default:()=>b});var n=t(1892),e=t.n(n),c=t(95760),i=t.n(c),a=t(38311),A=t.n(a),s=t(58192),m=t.n(s),g=t(38060),h=t.n(g),u=t(54865),d=t.n(u),l=t(85073),p={};p.styleTagTransform=d(),p.setAttributes=m(),p.insert=A().bind(null,"head"),p.domAPI=i(),p.insertStyleElement=h(),e()(l.Z,p);const b=l.Z&&l.Z.locals?l.Z.locals:void 0},1892:r=>{var o=[];function t(r){for(var t=-1,n=0;n{var o={};r.exports=function(r,t){var n=function(r){if(void 0===o[r]){var t=document.querySelector(r);if(window.HTMLIFrameElement&&t instanceof window.HTMLIFrameElement)try{t=t.contentDocument.head}catch(r){t=null}o[r]=t}return o[r]}(r);if(!n)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");n.appendChild(t)}},38060:r=>{r.exports=function(r){var o=document.createElement("style");return r.setAttributes(o,r.attributes),r.insert(o,r.options),o}},58192:(r,o,t)=>{r.exports=function(r){var o=t.nc;o&&r.setAttribute("nonce",o)}},95760:r=>{r.exports=function(r){var o=r.insertStyleElement(r);return{update:function(t){!function(r,o,t){var n="";t.supports&&(n+="@supports (".concat(t.supports,") {")),t.media&&(n+="@media ".concat(t.media," {"));var e=void 0!==t.layer;e&&(n+="@layer".concat(t.layer.length>0?" ".concat(t.layer):""," {")),n+=t.css,e&&(n+="}"),t.media&&(n+="}"),t.supports&&(n+="}");var c=t.sourceMap;c&&"undefined"!=typeof btoa&&(n+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(c))))," */")),o.styleTagTransform(n,r,o.options)}(o,r,t)},remove:function(){!function(r){if(null===r.parentNode)return!1;r.parentNode.removeChild(r)}(o)}}}},54865:r=>{r.exports=function(r,o){if(o.styleSheet)o.styleSheet.cssText=r;else{for(;o.firstChild;)o.removeChild(o.firstChild);o.appendChild(document.createTextNode(r))}}}}]); +//# sourceMappingURL=5710.70d0b1d.js.map \ No newline at end of file diff --git a/_static/build/5710.70d0b1d.js.map b/_static/build/5710.70d0b1d.js.map new file mode 100644 index 0000000..503bd7d --- /dev/null +++ b/_static/build/5710.70d0b1d.js.map @@ -0,0 +1 @@ +{"version":3,"file":"5710.70d0b1d.js","mappings":"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","sources":["webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/theme/tomorrow-night-bright.css","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/css-loader/dist/runtime/api.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/css-loader/dist/runtime/sourceMaps.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/theme/tomorrow-night-bright.css?0d4b","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/insertBySelector.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/insertStyleElement.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/styleDomAPI.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/styleTagTransform.js"],"sourcesContent":["// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"/*\\n\\n Name: Tomorrow Night - Bright\\n Author: Chris Kempson\\n\\n Port done by Gerard Braad \\n\\n*/\\n\\n.cm-s-tomorrow-night-bright.CodeMirror { background: #000000; color: #eaeaea; }\\n.cm-s-tomorrow-night-bright div.CodeMirror-selected { background: #424242; }\\n.cm-s-tomorrow-night-bright .CodeMirror-gutters { background: #000000; border-right: 0px; }\\n.cm-s-tomorrow-night-bright .CodeMirror-guttermarker { color: #e78c45; }\\n.cm-s-tomorrow-night-bright .CodeMirror-guttermarker-subtle { color: #777; }\\n.cm-s-tomorrow-night-bright .CodeMirror-linenumber { color: #424242; }\\n.cm-s-tomorrow-night-bright .CodeMirror-cursor { border-left: 1px solid #6A6A6A; }\\n\\n.cm-s-tomorrow-night-bright span.cm-comment { color: #d27b53; }\\n.cm-s-tomorrow-night-bright span.cm-atom { color: #a16a94; }\\n.cm-s-tomorrow-night-bright span.cm-number { color: #a16a94; }\\n\\n.cm-s-tomorrow-night-bright span.cm-property, .cm-s-tomorrow-night-bright span.cm-attribute { color: #99cc99; }\\n.cm-s-tomorrow-night-bright span.cm-keyword { color: #d54e53; }\\n.cm-s-tomorrow-night-bright span.cm-string { color: #e7c547; }\\n\\n.cm-s-tomorrow-night-bright span.cm-variable { color: #b9ca4a; }\\n.cm-s-tomorrow-night-bright span.cm-variable-2 { color: #7aa6da; }\\n.cm-s-tomorrow-night-bright span.cm-def { color: #e78c45; }\\n.cm-s-tomorrow-night-bright span.cm-bracket { color: #eaeaea; }\\n.cm-s-tomorrow-night-bright span.cm-tag { color: #d54e53; }\\n.cm-s-tomorrow-night-bright span.cm-link { color: #a16a94; }\\n.cm-s-tomorrow-night-bright span.cm-error { background: #d54e53; color: #6A6A6A; }\\n\\n.cm-s-tomorrow-night-bright .CodeMirror-activeline-background { background: #2a2a2a; }\\n.cm-s-tomorrow-night-bright .CodeMirror-matchingbracket { text-decoration: underline; color: white !important; }\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./../node_modules/codemirror/theme/tomorrow-night-bright.css\"],\"names\":[],\"mappings\":\"AAAA;;;;;;;CAOC;;AAED,yCAAyC,mBAAmB,EAAE,cAAc,EAAE;AAC9E,sDAAsD,mBAAmB,EAAE;AAC3E,kDAAkD,mBAAmB,EAAE,iBAAiB,EAAE;AAC1F,uDAAuD,cAAc,EAAE;AACvE,8DAA8D,WAAW,EAAE;AAC3E,qDAAqD,cAAc,EAAE;AACrE,iDAAiD,8BAA8B,EAAE;;AAEjF,8CAA8C,cAAc,EAAE;AAC9D,2CAA2C,cAAc,EAAE;AAC3D,6CAA6C,cAAc,EAAE;;AAE7D,8FAA8F,cAAc,EAAE;AAC9G,8CAA8C,cAAc,EAAE;AAC9D,6CAA6C,cAAc,EAAE;;AAE7D,+CAA+C,cAAc,EAAE;AAC/D,iDAAiD,cAAc,EAAE;AACjE,0CAA0C,cAAc,EAAE;AAC1D,8CAA8C,cAAc,EAAE;AAC9D,0CAA0C,cAAc,EAAE;AAC1D,2CAA2C,cAAc,EAAE;AAC3D,4CAA4C,mBAAmB,EAAE,cAAc,EAAE;;AAEjF,gEAAgE,mBAAmB,EAAE;AACrF,0DAA0D,0BAA0B,EAAE,uBAAuB,EAAE\",\"sourcesContent\":[\"/*\\n\\n Name: Tomorrow Night - Bright\\n Author: Chris Kempson\\n\\n Port done by Gerard Braad \\n\\n*/\\n\\n.cm-s-tomorrow-night-bright.CodeMirror { background: #000000; color: #eaeaea; }\\n.cm-s-tomorrow-night-bright div.CodeMirror-selected { background: #424242; }\\n.cm-s-tomorrow-night-bright .CodeMirror-gutters { background: #000000; border-right: 0px; }\\n.cm-s-tomorrow-night-bright .CodeMirror-guttermarker { color: #e78c45; }\\n.cm-s-tomorrow-night-bright .CodeMirror-guttermarker-subtle { color: #777; }\\n.cm-s-tomorrow-night-bright .CodeMirror-linenumber { color: #424242; }\\n.cm-s-tomorrow-night-bright .CodeMirror-cursor { border-left: 1px solid #6A6A6A; }\\n\\n.cm-s-tomorrow-night-bright span.cm-comment { color: #d27b53; }\\n.cm-s-tomorrow-night-bright span.cm-atom { color: #a16a94; }\\n.cm-s-tomorrow-night-bright span.cm-number { color: #a16a94; }\\n\\n.cm-s-tomorrow-night-bright span.cm-property, .cm-s-tomorrow-night-bright span.cm-attribute { color: #99cc99; }\\n.cm-s-tomorrow-night-bright span.cm-keyword { color: #d54e53; }\\n.cm-s-tomorrow-night-bright span.cm-string { color: #e7c547; }\\n\\n.cm-s-tomorrow-night-bright span.cm-variable { color: #b9ca4a; }\\n.cm-s-tomorrow-night-bright span.cm-variable-2 { color: #7aa6da; }\\n.cm-s-tomorrow-night-bright span.cm-def { color: #e78c45; }\\n.cm-s-tomorrow-night-bright span.cm-bracket { color: #eaeaea; }\\n.cm-s-tomorrow-night-bright span.cm-tag { color: #d54e53; }\\n.cm-s-tomorrow-night-bright span.cm-link { color: #a16a94; }\\n.cm-s-tomorrow-night-bright span.cm-error { background: #d54e53; color: #6A6A6A; }\\n\\n.cm-s-tomorrow-night-bright .CodeMirror-activeline-background { background: #2a2a2a; }\\n.cm-s-tomorrow-night-bright .CodeMirror-matchingbracket { text-decoration: underline; color: white !important; }\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\nmodule.exports = function (cssWithMappingToString) {\n var list = [];\n\n // return the list of modules as css string\n list.toString = function toString() {\n return this.map(function (item) {\n var content = \"\";\n var needLayer = typeof item[5] !== \"undefined\";\n if (item[4]) {\n content += \"@supports (\".concat(item[4], \") {\");\n }\n if (item[2]) {\n content += \"@media \".concat(item[2], \" {\");\n }\n if (needLayer) {\n content += \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\");\n }\n content += cssWithMappingToString(item);\n if (needLayer) {\n content += \"}\";\n }\n if (item[2]) {\n content += \"}\";\n }\n if (item[4]) {\n content += \"}\";\n }\n return content;\n }).join(\"\");\n };\n\n // import a list of modules into the list\n list.i = function i(modules, media, dedupe, supports, layer) {\n if (typeof modules === \"string\") {\n modules = [[null, modules, undefined]];\n }\n var alreadyImportedModules = {};\n if (dedupe) {\n for (var k = 0; k < this.length; k++) {\n var id = this[k][0];\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n for (var _k = 0; _k < modules.length; _k++) {\n var item = [].concat(modules[_k]);\n if (dedupe && alreadyImportedModules[item[0]]) {\n continue;\n }\n if (typeof layer !== \"undefined\") {\n if (typeof item[5] === \"undefined\") {\n item[5] = layer;\n } else {\n item[1] = \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\").concat(item[1], \"}\");\n item[5] = layer;\n }\n }\n if (media) {\n if (!item[2]) {\n item[2] = media;\n } else {\n item[1] = \"@media \".concat(item[2], \" {\").concat(item[1], \"}\");\n item[2] = media;\n }\n }\n if (supports) {\n if (!item[4]) {\n item[4] = \"\".concat(supports);\n } else {\n item[1] = \"@supports (\".concat(item[4], \") {\").concat(item[1], \"}\");\n item[4] = supports;\n }\n }\n list.push(item);\n }\n };\n return list;\n};","\"use strict\";\n\nmodule.exports = function (item) {\n var content = item[1];\n var cssMapping = item[3];\n if (!cssMapping) {\n return content;\n }\n if (typeof btoa === \"function\") {\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(cssMapping))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n var sourceMapping = \"/*# \".concat(data, \" */\");\n var sourceURLs = cssMapping.sources.map(function (source) {\n return \"/*# sourceURL=\".concat(cssMapping.sourceRoot || \"\").concat(source, \" */\");\n });\n return [content].concat(sourceURLs).concat([sourceMapping]).join(\"\\n\");\n }\n return [content].join(\"\\n\");\n};","\n import API from \"!../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../css-loader/dist/cjs.js!./tomorrow-night-bright.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../css-loader/dist/cjs.js!./tomorrow-night-bright.css\";\n export default content && content.locals ? content.locals : undefined;\n","\"use strict\";\n\nvar stylesInDOM = [];\n\nfunction getIndexByIdentifier(identifier) {\n var result = -1;\n\n for (var i = 0; i < stylesInDOM.length; i++) {\n if (stylesInDOM[i].identifier === identifier) {\n result = i;\n break;\n }\n }\n\n return result;\n}\n\nfunction modulesToDom(list, options) {\n var idCountMap = {};\n var identifiers = [];\n\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var count = idCountMap[id] || 0;\n var identifier = \"\".concat(id, \" \").concat(count);\n idCountMap[id] = count + 1;\n var indexByIdentifier = getIndexByIdentifier(identifier);\n var obj = {\n css: item[1],\n media: item[2],\n sourceMap: item[3],\n supports: item[4],\n layer: item[5]\n };\n\n if (indexByIdentifier !== -1) {\n stylesInDOM[indexByIdentifier].references++;\n stylesInDOM[indexByIdentifier].updater(obj);\n } else {\n var updater = addElementStyle(obj, options);\n options.byIndex = i;\n stylesInDOM.splice(i, 0, {\n identifier: identifier,\n updater: updater,\n references: 1\n });\n }\n\n identifiers.push(identifier);\n }\n\n return identifiers;\n}\n\nfunction addElementStyle(obj, options) {\n var api = options.domAPI(options);\n api.update(obj);\n\n var updater = function updater(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap && newObj.supports === obj.supports && newObj.layer === obj.layer) {\n return;\n }\n\n api.update(obj = newObj);\n } else {\n api.remove();\n }\n };\n\n return updater;\n}\n\nmodule.exports = function (list, options) {\n options = options || {};\n list = list || [];\n var lastIdentifiers = modulesToDom(list, options);\n return function update(newList) {\n newList = newList || [];\n\n for (var i = 0; i < lastIdentifiers.length; i++) {\n var identifier = lastIdentifiers[i];\n var index = getIndexByIdentifier(identifier);\n stylesInDOM[index].references--;\n }\n\n var newLastIdentifiers = modulesToDom(newList, options);\n\n for (var _i = 0; _i < lastIdentifiers.length; _i++) {\n var _identifier = lastIdentifiers[_i];\n\n var _index = getIndexByIdentifier(_identifier);\n\n if (stylesInDOM[_index].references === 0) {\n stylesInDOM[_index].updater();\n\n stylesInDOM.splice(_index, 1);\n }\n }\n\n lastIdentifiers = newLastIdentifiers;\n };\n};","\"use strict\";\n\nvar memo = {};\n/* istanbul ignore next */\n\nfunction getTarget(target) {\n if (typeof memo[target] === \"undefined\") {\n var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself\n\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n\n memo[target] = styleTarget;\n }\n\n return memo[target];\n}\n/* istanbul ignore next */\n\n\nfunction insertBySelector(insert, style) {\n var target = getTarget(insert);\n\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n\n target.appendChild(style);\n}\n\nmodule.exports = insertBySelector;","\"use strict\";\n\n/* istanbul ignore next */\nfunction insertStyleElement(options) {\n var element = document.createElement(\"style\");\n options.setAttributes(element, options.attributes);\n options.insert(element, options.options);\n return element;\n}\n\nmodule.exports = insertStyleElement;","\"use strict\";\n\n/* istanbul ignore next */\nfunction setAttributesWithoutAttributes(styleElement) {\n var nonce = typeof __webpack_nonce__ !== \"undefined\" ? __webpack_nonce__ : null;\n\n if (nonce) {\n styleElement.setAttribute(\"nonce\", nonce);\n }\n}\n\nmodule.exports = setAttributesWithoutAttributes;","\"use strict\";\n\n/* istanbul ignore next */\nfunction apply(styleElement, options, obj) {\n var css = \"\";\n\n if (obj.supports) {\n css += \"@supports (\".concat(obj.supports, \") {\");\n }\n\n if (obj.media) {\n css += \"@media \".concat(obj.media, \" {\");\n }\n\n var needLayer = typeof obj.layer !== \"undefined\";\n\n if (needLayer) {\n css += \"@layer\".concat(obj.layer.length > 0 ? \" \".concat(obj.layer) : \"\", \" {\");\n }\n\n css += obj.css;\n\n if (needLayer) {\n css += \"}\";\n }\n\n if (obj.media) {\n css += \"}\";\n }\n\n if (obj.supports) {\n css += \"}\";\n }\n\n var sourceMap = obj.sourceMap;\n\n if (sourceMap && typeof btoa !== \"undefined\") {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n } // For old IE\n\n /* istanbul ignore if */\n\n\n options.styleTagTransform(css, styleElement, options.options);\n}\n\nfunction removeStyleElement(styleElement) {\n // istanbul ignore if\n if (styleElement.parentNode === null) {\n return false;\n }\n\n styleElement.parentNode.removeChild(styleElement);\n}\n/* istanbul ignore next */\n\n\nfunction domAPI(options) {\n var styleElement = options.insertStyleElement(options);\n return {\n update: function update(obj) {\n apply(styleElement, options, obj);\n },\n remove: function remove() {\n removeStyleElement(styleElement);\n }\n };\n}\n\nmodule.exports = domAPI;","\"use strict\";\n\n/* istanbul ignore next */\nfunction styleTagTransform(css, styleElement) {\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = css;\n } else {\n while (styleElement.firstChild) {\n styleElement.removeChild(styleElement.firstChild);\n }\n\n styleElement.appendChild(document.createTextNode(css));\n }\n}\n\nmodule.exports = styleTagTransform;"],"names":["___CSS_LOADER_EXPORT___","push","module","id","exports","cssWithMappingToString","list","toString","this","map","item","content","needLayer","concat","length","join","i","modules","media","dedupe","supports","layer","undefined","alreadyImportedModules","k","_k","cssMapping","btoa","base64","unescape","encodeURIComponent","JSON","stringify","data","sourceMapping","sourceURLs","sources","source","sourceRoot","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","stylesInDOM","getIndexByIdentifier","identifier","result","modulesToDom","idCountMap","identifiers","base","count","indexByIdentifier","obj","css","sourceMap","references","updater","addElementStyle","byIndex","splice","api","update","newObj","remove","lastIdentifiers","newList","index","newLastIdentifiers","_i","_index","memo","style","target","styleTarget","document","querySelector","window","HTMLIFrameElement","contentDocument","head","e","getTarget","Error","appendChild","element","createElement","attributes","styleElement","nonce","setAttribute","apply","parentNode","removeChild","removeStyleElement","styleSheet","cssText","firstChild","createTextNode"],"sourceRoot":""} \ No newline at end of file diff --git a/_static/build/5747.94ad626.js b/_static/build/5747.94ad626.js new file mode 100644 index 0000000..664643b --- /dev/null +++ b/_static/build/5747.94ad626.js @@ -0,0 +1,2 @@ +(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[5747],{25747:function(e){e.exports=function(){"use strict";var e=navigator.userAgent,t=navigator.platform,r=/gecko\/\d/i.test(e),n=/MSIE \d/.test(e),i=/Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(e),o=/Edge\/(\d+)/.exec(e),l=n||i||o,s=l&&(n?document.documentMode||6:+(o||i)[1]),a=!o&&/WebKit\//.test(e),u=a&&/Qt\/\d+\.\d+/.test(e),c=!o&&/Chrome\//.test(e),h=/Opera\//.test(e),f=/Apple Computer/.test(navigator.vendor),d=/Mac OS X 1\d\D([8-9]|\d\d)\D/.test(e),p=/PhantomJS/.test(e),g=f&&(/Mobile\/\w+/.test(e)||navigator.maxTouchPoints>2),v=/Android/.test(e),m=g||v||/webOS|BlackBerry|Opera Mini|Opera Mobi|IEMobile/i.test(e),y=g||/Mac/.test(t),b=/\bCrOS\b/.test(e),w=/win/i.test(t),x=h&&e.match(/Version\/(\d*\.\d*)/);x&&(x=Number(x[1])),x&&x>=15&&(h=!1,a=!0);var C=y&&(u||h&&(null==x||x<12.11)),S=r||l&&s>=9;function L(e){return new RegExp("(^|\\s)"+e+"(?:$|\\s)\\s*")}var k,T=function(e,t){var r=e.className,n=L(t).exec(r);if(n){var i=r.slice(n.index+n[0].length);e.className=r.slice(0,n.index)+(i?n[1]+i:"")}};function M(e){for(var t=e.childNodes.length;t>0;--t)e.removeChild(e.firstChild);return e}function N(e,t){return M(e).appendChild(t)}function O(e,t,r,n){var i=document.createElement(e);if(r&&(i.className=r),n&&(i.style.cssText=n),"string"==typeof t)i.appendChild(document.createTextNode(t));else if(t)for(var o=0;o=t)return l+(t-o);l+=s-o,l+=r-l%r,o=s+1}}g?P=function(e){e.selectionStart=0,e.selectionEnd=e.value.length}:l&&(P=function(e){try{e.select()}catch(e){}});var z=function(){this.id=null,this.f=null,this.time=0,this.handler=E(this.onTimeout,this)};function B(e,t){for(var r=0;r=t)return n+Math.min(l,t-i);if(i+=o-n,n=o+1,(i+=r-i%r)>=t)return n}}var X=[""];function Y(e){for(;X.length<=e;)X.push(_(X)+" ");return X[e]}function _(e){return e[e.length-1]}function $(e,t){for(var r=[],n=0;n"€"&&(e.toUpperCase()!=e.toLowerCase()||J.test(e))}function ee(e,t){return t?!!(t.source.indexOf("\\w")>-1&&Q(e))||t.test(e):Q(e)}function te(e){for(var t in e)if(e.hasOwnProperty(t)&&e[t])return!1;return!0}var re=/[\u0300-\u036f\u0483-\u0489\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u065e\u0670\u06d6-\u06dc\u06de-\u06e4\u06e7\u06e8\u06ea-\u06ed\u0711\u0730-\u074a\u07a6-\u07b0\u07eb-\u07f3\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0900-\u0902\u093c\u0941-\u0948\u094d\u0951-\u0955\u0962\u0963\u0981\u09bc\u09be\u09c1-\u09c4\u09cd\u09d7\u09e2\u09e3\u0a01\u0a02\u0a3c\u0a41\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a70\u0a71\u0a75\u0a81\u0a82\u0abc\u0ac1-\u0ac5\u0ac7\u0ac8\u0acd\u0ae2\u0ae3\u0b01\u0b3c\u0b3e\u0b3f\u0b41-\u0b44\u0b4d\u0b56\u0b57\u0b62\u0b63\u0b82\u0bbe\u0bc0\u0bcd\u0bd7\u0c3e-\u0c40\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0cbc\u0cbf\u0cc2\u0cc6\u0ccc\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0d3e\u0d41-\u0d44\u0d4d\u0d57\u0d62\u0d63\u0dca\u0dcf\u0dd2-\u0dd4\u0dd6\u0ddf\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0eb1\u0eb4-\u0eb9\u0ebb\u0ebc\u0ec8-\u0ecd\u0f18\u0f19\u0f35\u0f37\u0f39\u0f71-\u0f7e\u0f80-\u0f84\u0f86\u0f87\u0f90-\u0f97\u0f99-\u0fbc\u0fc6\u102d-\u1030\u1032-\u1037\u1039\u103a\u103d\u103e\u1058\u1059\u105e-\u1060\u1071-\u1074\u1082\u1085\u1086\u108d\u109d\u135f\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b7-\u17bd\u17c6\u17c9-\u17d3\u17dd\u180b-\u180d\u18a9\u1920-\u1922\u1927\u1928\u1932\u1939-\u193b\u1a17\u1a18\u1a56\u1a58-\u1a5e\u1a60\u1a62\u1a65-\u1a6c\u1a73-\u1a7c\u1a7f\u1b00-\u1b03\u1b34\u1b36-\u1b3a\u1b3c\u1b42\u1b6b-\u1b73\u1b80\u1b81\u1ba2-\u1ba5\u1ba8\u1ba9\u1c2c-\u1c33\u1c36\u1c37\u1cd0-\u1cd2\u1cd4-\u1ce0\u1ce2-\u1ce8\u1ced\u1dc0-\u1de6\u1dfd-\u1dff\u200c\u200d\u20d0-\u20f0\u2cef-\u2cf1\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua66f-\ua672\ua67c\ua67d\ua6f0\ua6f1\ua802\ua806\ua80b\ua825\ua826\ua8c4\ua8e0-\ua8f1\ua926-\ua92d\ua947-\ua951\ua980-\ua982\ua9b3\ua9b6-\ua9b9\ua9bc\uaa29-\uaa2e\uaa31\uaa32\uaa35\uaa36\uaa43\uaa4c\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uabe5\uabe8\uabed\udc00-\udfff\ufb1e\ufe00-\ufe0f\ufe20-\ufe26\uff9e\uff9f]/;function ne(e){return e.charCodeAt(0)>=768&&re.test(e)}function ie(e,t,r){for(;(r<0?t>0:tr?-1:1;;){if(t==r)return t;var i=(t+r)/2,o=n<0?Math.ceil(i):Math.floor(i);if(o==t)return e(o)?t:r;e(o)?r=o:t=o+n}}var le=null;function se(e,t,r){var n;le=null;for(var i=0;it)return i;o.to==t&&(o.from!=o.to&&"before"==r?n=i:le=i),o.from==t&&(o.from!=o.to&&"before"!=r?n=i:le=i)}return null!=n?n:le}var ae=function(){var e=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac]/,t=/[stwN]/,r=/[LRr]/,n=/[Lb1n]/,i=/[1n]/;function o(e,t,r){this.level=e,this.from=t,this.to=r}return function(l,s){var a,u="ltr"==s?"L":"R";if(0==l.length||"ltr"==s&&!e.test(l))return!1;for(var c=l.length,h=[],f=0;f-1&&(n[t]=i.slice(0,o).concat(i.slice(o+1)))}}}function pe(e,t){var r=fe(e,t);if(r.length)for(var n=Array.prototype.slice.call(arguments,2),i=0;i0}function ye(e){e.prototype.on=function(e,t){he(this,e,t)},e.prototype.off=function(e,t){de(this,e,t)}}function be(e){e.preventDefault?e.preventDefault():e.returnValue=!1}function we(e){e.stopPropagation?e.stopPropagation():e.cancelBubble=!0}function xe(e){return null!=e.defaultPrevented?e.defaultPrevented:0==e.returnValue}function Ce(e){be(e),we(e)}function Se(e){return e.target||e.srcElement}function Le(e){var t=e.which;return null==t&&(1&e.button?t=1:2&e.button?t=3:4&e.button&&(t=2)),y&&e.ctrlKey&&1==t&&(t=3),t}var ke,Te,Me=function(){if(l&&s<9)return!1;var e=O("div");return"draggable"in e||"dragDrop"in e}();function Ne(e){if(null==ke){var t=O("span","​");N(e,O("span",[t,document.createTextNode("x")])),0!=e.firstChild.offsetHeight&&(ke=t.offsetWidth<=1&&t.offsetHeight>2&&!(l&&s<8))}var r=ke?O("span","​"):O("span"," ",null,"display: inline-block; width: 1px; margin-right: -1px");return r.setAttribute("cm-text",""),r}function Oe(e){if(null!=Te)return Te;var t=N(e,document.createTextNode("AخA")),r=k(t,0,1).getBoundingClientRect(),n=k(t,1,2).getBoundingClientRect();return M(e),!(!r||r.left==r.right)&&(Te=n.right-r.right<3)}var Ae,De=3!="\n\nb".split(/\n/).length?function(e){for(var t=0,r=[],n=e.length;t<=n;){var i=e.indexOf("\n",t);-1==i&&(i=e.length);var o=e.slice(t,"\r"==e.charAt(i-1)?i-1:i),l=o.indexOf("\r");-1!=l?(r.push(o.slice(0,l)),t+=l+1):(r.push(o),t=i+1)}return r}:function(e){return e.split(/\r\n?|\n/)},We=window.getSelection?function(e){try{return e.selectionStart!=e.selectionEnd}catch(e){return!1}}:function(e){var t;try{t=e.ownerDocument.selection.createRange()}catch(e){}return!(!t||t.parentElement()!=e)&&0!=t.compareEndPoints("StartToEnd",t)},He="oncopy"in(Ae=O("div"))||(Ae.setAttribute("oncopy","return;"),"function"==typeof Ae.oncopy),Fe=null;var Pe={},Ee={};function Re(e,t){arguments.length>2&&(t.dependencies=Array.prototype.slice.call(arguments,2)),Pe[e]=t}function Ie(e){if("string"==typeof e&&Ee.hasOwnProperty(e))e=Ee[e];else if(e&&"string"==typeof e.name&&Ee.hasOwnProperty(e.name)){var t=Ee[e.name];"string"==typeof t&&(t={name:t}),(e=Z(t,e)).name=t.name}else{if("string"==typeof e&&/^[\w\-]+\/[\w\-]+\+xml$/.test(e))return Ie("application/xml");if("string"==typeof e&&/^[\w\-]+\/[\w\-]+\+json$/.test(e))return Ie("application/json")}return"string"==typeof e?{name:e}:e||{name:"null"}}function ze(e,t){t=Ie(t);var r=Pe[t.name];if(!r)return ze(e,"text/plain");var n=r(e,t);if(Be.hasOwnProperty(t.name)){var i=Be[t.name];for(var o in i)i.hasOwnProperty(o)&&(n.hasOwnProperty(o)&&(n["_"+o]=n[o]),n[o]=i[o])}if(n.name=t.name,t.helperType&&(n.helperType=t.helperType),t.modeProps)for(var l in t.modeProps)n[l]=t.modeProps[l];return n}var Be={};function Ge(e,t){R(t,Be.hasOwnProperty(e)?Be[e]:Be[e]={})}function Ue(e,t){if(!0===t)return t;if(e.copyState)return e.copyState(t);var r={};for(var n in t){var i=t[n];i instanceof Array&&(i=i.concat([])),r[n]=i}return r}function Ve(e,t){for(var r;e.innerMode&&(r=e.innerMode(t))&&r.mode!=e;)t=r.state,e=r.mode;return r||{mode:e,state:t}}function Ke(e,t,r){return!e.startState||e.startState(t,r)}var je=function(e,t,r){this.pos=this.start=0,this.string=e,this.tabSize=t||8,this.lastColumnPos=this.lastColumnValue=0,this.lineStart=0,this.lineOracle=r};function Xe(e,t){if((t-=e.first)<0||t>=e.size)throw new Error("There is no line "+(t+e.first)+" in the document.");for(var r=e;!r.lines;)for(var n=0;;++n){var i=r.children[n],o=i.chunkSize();if(t=e.first&&tr?et(r,Xe(e,r).text.length):function(e,t){var r=e.ch;return null==r||r>t?et(e.line,t):r<0?et(e.line,0):e}(t,Xe(e,t.line).text.length)}function at(e,t){for(var r=[],n=0;n=this.string.length},je.prototype.sol=function(){return this.pos==this.lineStart},je.prototype.peek=function(){return this.string.charAt(this.pos)||void 0},je.prototype.next=function(){if(this.post},je.prototype.eatSpace=function(){for(var e=this.pos;/[\s\u00a0]/.test(this.string.charAt(this.pos));)++this.pos;return this.pos>e},je.prototype.skipToEnd=function(){this.pos=this.string.length},je.prototype.skipTo=function(e){var t=this.string.indexOf(e,this.pos);if(t>-1)return this.pos=t,!0},je.prototype.backUp=function(e){this.pos-=e},je.prototype.column=function(){return this.lastColumnPos0?null:(n&&!1!==t&&(this.pos+=n[0].length),n)}var i=function(e){return r?e.toLowerCase():e};if(i(this.string.substr(this.pos,e.length))==i(e))return!1!==t&&(this.pos+=e.length),!0},je.prototype.current=function(){return this.string.slice(this.start,this.pos)},je.prototype.hideFirstChars=function(e,t){this.lineStart+=e;try{return t()}finally{this.lineStart-=e}},je.prototype.lookAhead=function(e){var t=this.lineOracle;return t&&t.lookAhead(e)},je.prototype.baseToken=function(){var e=this.lineOracle;return e&&e.baseToken(this.pos)};var ut=function(e,t){this.state=e,this.lookAhead=t},ct=function(e,t,r,n){this.state=t,this.doc=e,this.line=r,this.maxLookAhead=n||0,this.baseTokens=null,this.baseTokenPos=1};function ht(e,t,r,n){var i=[e.state.modeGen],o={};wt(e,t.text,e.doc.mode,r,(function(e,t){return i.push(e,t)}),o,n);for(var l=r.state,s=function(n){r.baseTokens=i;var s=e.state.overlays[n],a=1,u=0;r.state=!0,wt(e,t.text,s.mode,r,(function(e,t){for(var r=a;ue&&i.splice(a,1,e,i[a+1],n),a+=2,u=Math.min(e,n)}if(t)if(s.opaque)i.splice(r,a-r,e,"overlay "+t),a=r+2;else for(;re.options.maxHighlightLength&&Ue(e.doc.mode,n.state),o=ht(e,t,n);i&&(n.state=i),t.stateAfter=n.save(!i),t.styles=o.styles,o.classes?t.styleClasses=o.classes:t.styleClasses&&(t.styleClasses=null),r===e.doc.highlightFrontier&&(e.doc.modeFrontier=Math.max(e.doc.modeFrontier,++e.doc.highlightFrontier))}return t.styles}function dt(e,t,r){var n=e.doc,i=e.display;if(!n.mode.startState)return new ct(n,!0,t);var o=function(e,t,r){for(var n,i,o=e.doc,l=r?-1:t-(e.doc.mode.innerMode?1e3:100),s=t;s>l;--s){if(s<=o.first)return o.first;var a=Xe(o,s-1),u=a.stateAfter;if(u&&(!r||s+(u instanceof ut?u.lookAhead:0)<=o.modeFrontier))return s;var c=I(a.text,null,e.options.tabSize);(null==i||n>c)&&(i=s-1,n=c)}return i}(e,t,r),l=o>n.first&&Xe(n,o-1).stateAfter,s=l?ct.fromSaved(n,l,o):new ct(n,Ke(n.mode),o);return n.iter(o,t,(function(r){pt(e,r.text,s);var n=s.line;r.stateAfter=n==t-1||n%5==0||n>=i.viewFrom&&nt.start)return o}throw new Error("Mode "+e.name+" failed to advance stream.")}ct.prototype.lookAhead=function(e){var t=this.doc.getLine(this.line+e);return null!=t&&e>this.maxLookAhead&&(this.maxLookAhead=e),t},ct.prototype.baseToken=function(e){if(!this.baseTokens)return null;for(;this.baseTokens[this.baseTokenPos]<=e;)this.baseTokenPos+=2;var t=this.baseTokens[this.baseTokenPos+1];return{type:t&&t.replace(/( |^)overlay .*/,""),size:this.baseTokens[this.baseTokenPos]-e}},ct.prototype.nextLine=function(){this.line++,this.maxLookAhead>0&&this.maxLookAhead--},ct.fromSaved=function(e,t,r){return t instanceof ut?new ct(e,Ue(e.mode,t.state),r,t.lookAhead):new ct(e,Ue(e.mode,t),r)},ct.prototype.save=function(e){var t=!1!==e?Ue(this.doc.mode,this.state):this.state;return this.maxLookAhead>0?new ut(t,this.maxLookAhead):t};var mt=function(e,t,r){this.start=e.start,this.end=e.pos,this.string=e.current(),this.type=t||null,this.state=r};function yt(e,t,r,n){var i,o,l=e.doc,s=l.mode,a=Xe(l,(t=st(l,t)).line),u=dt(e,t.line,r),c=new je(a.text,e.options.tabSize,u);for(n&&(o=[]);(n||c.pose.options.maxHighlightLength?(s=!1,l&&pt(e,t,n,h.pos),h.pos=t.length,a=null):a=bt(vt(r,h,n.state,f),o),f){var d=f[0].name;d&&(a="m-"+(a?d+" "+a:d))}if(!s||c!=a){for(;u=t:o.to>t);(n||(n=[])).push(new St(l,o.from,s?null:o.to))}}return n}(r,i,l),a=function(e,t,r){var n;if(e)for(var i=0;i=t:o.to>t)||o.from==t&&"bookmark"==l.type&&(!r||o.marker.insertLeft)){var s=null==o.from||(l.inclusiveLeft?o.from<=t:o.from0&&s)for(var b=0;bt)&&(!r||Wt(r,o.marker)<0)&&(r=o.marker)}return r}function Rt(e,t,r,n,i){var o=Xe(e,t),l=Ct&&o.markedSpans;if(l)for(var s=0;s=0&&h<=0||c<=0&&h>=0)&&(c<=0&&(a.marker.inclusiveRight&&i.inclusiveLeft?tt(u.to,r)>=0:tt(u.to,r)>0)||c>=0&&(a.marker.inclusiveRight&&i.inclusiveLeft?tt(u.from,n)<=0:tt(u.from,n)<0)))return!0}}}function It(e){for(var t;t=Ft(e);)e=t.find(-1,!0).line;return e}function zt(e,t){var r=Xe(e,t),n=It(r);return r==n?t:qe(n)}function Bt(e,t){if(t>e.lastLine())return t;var r,n=Xe(e,t);if(!Gt(e,n))return t;for(;r=Pt(n);)n=r.find(1,!0).line;return qe(n)+1}function Gt(e,t){var r=Ct&&t.markedSpans;if(r)for(var n=void 0,i=0;it.maxLineLength&&(t.maxLineLength=r,t.maxLine=e)}))}var Xt=function(e,t,r){this.text=e,Ot(this,t),this.height=r?r(this):1};function Yt(e){e.parent=null,Nt(e)}Xt.prototype.lineNo=function(){return qe(this)},ye(Xt);var _t={},$t={};function qt(e,t){if(!e||/^\s*$/.test(e))return null;var r=t.addModeClass?$t:_t;return r[e]||(r[e]=e.replace(/\S+/g,"cm-$&"))}function Zt(e,t){var r=A("span",null,null,a?"padding-right: .1px":null),n={pre:A("pre",[r],"CodeMirror-line"),content:r,col:0,pos:0,cm:e,trailingSpace:!1,splitSpaces:e.getOption("lineWrapping")};t.measure={};for(var i=0;i<=(t.rest?t.rest.length:0);i++){var o=i?t.rest[i-1]:t.line,l=void 0;n.pos=0,n.addToken=Qt,Oe(e.display.measure)&&(l=ue(o,e.doc.direction))&&(n.addToken=er(n.addToken,l)),n.map=[],rr(o,n,ft(e,o,t!=e.display.externalMeasured&&qe(o))),o.styleClasses&&(o.styleClasses.bgClass&&(n.bgClass=F(o.styleClasses.bgClass,n.bgClass||"")),o.styleClasses.textClass&&(n.textClass=F(o.styleClasses.textClass,n.textClass||""))),0==n.map.length&&n.map.push(0,0,n.content.appendChild(Ne(e.display.measure))),0==i?(t.measure.map=n.map,t.measure.cache={}):((t.measure.maps||(t.measure.maps=[])).push(n.map),(t.measure.caches||(t.measure.caches=[])).push({}))}if(a){var s=n.content.lastChild;(/\bcm-tab\b/.test(s.className)||s.querySelector&&s.querySelector(".cm-tab"))&&(n.content.className="cm-tab-wrap-hack")}return pe(e,"renderLine",e,t.line,n.pre),n.pre.className&&(n.textClass=F(n.pre.className,n.textClass||"")),n}function Jt(e){var t=O("span","•","cm-invalidchar");return t.title="\\u"+e.charCodeAt(0).toString(16),t.setAttribute("aria-label",t.title),t}function Qt(e,t,r,n,i,o,a){if(t){var u,c=e.splitSpaces?function(e,t){if(e.length>1&&!/ /.test(e))return e;for(var r=t,n="",i=0;iu&&h.from<=u);f++);if(h.to>=c)return e(r,n,i,o,l,s,a);e(r,n.slice(0,h.to-u),i,o,null,s,a),o=null,n=n.slice(h.to-u),u=h.to}}}function tr(e,t,r,n){var i=!n&&r.widgetNode;i&&e.map.push(e.pos,e.pos+t,i),!n&&e.cm.display.input.needsContentAttribute&&(i||(i=e.content.appendChild(document.createElement("span"))),i.setAttribute("cm-marker",r.id)),i&&(e.cm.display.input.setUneditable(i),e.content.appendChild(i)),e.pos+=t,e.trailingSpace=!1}function rr(e,t,r){var n=e.markedSpans,i=e.text,o=0;if(n)for(var l,s,a,u,c,h,f,d=i.length,p=0,g=1,v="",m=0;;){if(m==p){a=u=c=s="",f=null,h=null,m=1/0;for(var y=[],b=void 0,w=0;wp||C.collapsed&&x.to==p&&x.from==p)){if(null!=x.to&&x.to!=p&&m>x.to&&(m=x.to,u=""),C.className&&(a+=" "+C.className),C.css&&(s=(s?s+";":"")+C.css),C.startStyle&&x.from==p&&(c+=" "+C.startStyle),C.endStyle&&x.to==m&&(b||(b=[])).push(C.endStyle,x.to),C.title&&((f||(f={})).title=C.title),C.attributes)for(var S in C.attributes)(f||(f={}))[S]=C.attributes[S];C.collapsed&&(!h||Wt(h.marker,C)<0)&&(h=x)}else x.from>p&&m>x.from&&(m=x.from)}if(b)for(var L=0;L=d)break;for(var T=Math.min(d,m);;){if(v){var M=p+v.length;if(!h){var N=M>T?v.slice(0,T-p):v;t.addToken(t,N,l?l+a:a,c,p+N.length==m?u:"",s,f)}if(M>=T){v=v.slice(T-p),p=T;break}p=M,c=""}v=i.slice(o,o=r[g++]),l=qt(r[g++],t.cm.options)}}else for(var O=1;Or)return{map:e.measure.maps[i],cache:e.measure.caches[i],before:!0}}function Or(e,t,r,n){return Wr(e,Dr(e,t),r,n)}function Ar(e,t){if(t>=e.display.viewFrom&&t=r.lineN&&t2&&o.push((a.bottom+u.top)/2-r.top)}}o.push(r.bottom-r.top)}}(e,t.view,t.rect),t.hasHeights=!0),(o=function(e,t,r,n){var i,o=Pr(t.map,r,n),a=o.node,u=o.start,c=o.end,h=o.collapse;if(3==a.nodeType){for(var f=0;f<4;f++){for(;u&&ne(t.line.text.charAt(o.coverStart+u));)--u;for(;o.coverStart+c1}(e))return t;var r=screen.logicalXDPI/screen.deviceXDPI,n=screen.logicalYDPI/screen.deviceYDPI;return{left:t.left*r,right:t.right*r,top:t.top*n,bottom:t.bottom*n}}(e.display.measure,i))}else{var d;u>0&&(h=n="right"),i=e.options.lineWrapping&&(d=a.getClientRects()).length>1?d["right"==n?d.length-1:0]:a.getBoundingClientRect()}if(l&&s<9&&!u&&(!i||!i.left&&!i.right)){var p=a.parentNode.getClientRects()[0];i=p?{left:p.left,right:p.left+nn(e.display),top:p.top,bottom:p.bottom}:Fr}for(var g=i.top-t.rect.top,v=i.bottom-t.rect.top,m=(g+v)/2,y=t.view.measure.heights,b=0;bt)&&(i=(o=a-s)-1,t>=a&&(l="right")),null!=i){if(n=e[u+2],s==a&&r==(n.insertLeft?"left":"right")&&(l=r),"left"==r&&0==i)for(;u&&e[u-2]==e[u-3]&&e[u-1].insertLeft;)n=e[2+(u-=3)],l="left";if("right"==r&&i==a-s)for(;u=0&&(r=e[i]).left==r.right;i--);return r}function Rr(e){if(e.measure&&(e.measure.cache={},e.measure.heights=null,e.rest))for(var t=0;t=n.text.length?(a=n.text.length,u="before"):a<=0&&(a=0,u="after"),!s)return l("before"==u?a-1:a,"before"==u);function c(e,t,r){return l(r?e-1:e,1==s[t].level!=r)}var h=se(s,a,u),f=le,d=c(a,h,"before"==u);return null!=f&&(d.other=c(a,f,"before"!=u)),d}function Yr(e,t){var r=0;t=st(e.doc,t),e.options.lineWrapping||(r=nn(e.display)*t.ch);var n=Xe(e.doc,t.line),i=Vt(n)+Cr(e.display);return{left:r,right:r,top:i,bottom:i+n.height}}function _r(e,t,r,n,i){var o=et(e,t,r);return o.xRel=i,n&&(o.outside=n),o}function $r(e,t,r){var n=e.doc;if((r+=e.display.viewOffset)<0)return _r(n.first,0,null,-1,-1);var i=Ze(n,r),o=n.first+n.size-1;if(i>o)return _r(n.first+n.size-1,Xe(n,o).text.length,null,1,1);t<0&&(t=0);for(var l=Xe(n,i);;){var s=Qr(e,l,i,t,r),a=Et(l,s.ch+(s.xRel>0||s.outside>0?1:0));if(!a)return s;var u=a.find(1);if(u.line==i)return u;l=Xe(n,i=u.line)}}function qr(e,t,r,n){n-=Ur(t);var i=t.text.length,o=oe((function(t){return Wr(e,r,t-1).bottom<=n}),i,0);return{begin:o,end:i=oe((function(t){return Wr(e,r,t).top>n}),o,i)}}function Zr(e,t,r,n){return r||(r=Dr(e,t)),qr(e,t,r,Vr(e,t,Wr(e,r,n),"line").top)}function Jr(e,t,r,n){return!(e.bottom<=r)&&(e.top>r||(n?e.left:e.right)>t)}function Qr(e,t,r,n,i){i-=Vt(t);var o=Dr(e,t),l=Ur(t),s=0,a=t.text.length,u=!0,c=ue(t,e.doc.direction);if(c){var h=(e.options.lineWrapping?tn:en)(e,t,r,o,c,n,i);s=(u=1!=h.level)?h.from:h.to-1,a=u?h.to:h.from-1}var f,d,p=null,g=null,v=oe((function(t){var r=Wr(e,o,t);return r.top+=l,r.bottom+=l,!!Jr(r,n,i,!1)&&(r.top<=i&&r.left<=n&&(p=t,g=r),!0)}),s,a),m=!1;if(g){var y=n-g.left=w.bottom?1:0}return _r(r,v=ie(t.text,v,1),d,m,n-f)}function en(e,t,r,n,i,o,l){var s=oe((function(s){var a=i[s],u=1!=a.level;return Jr(Xr(e,et(r,u?a.to:a.from,u?"before":"after"),"line",t,n),o,l,!0)}),0,i.length-1),a=i[s];if(s>0){var u=1!=a.level,c=Xr(e,et(r,u?a.from:a.to,u?"after":"before"),"line",t,n);Jr(c,o,l,!0)&&c.top>l&&(a=i[s-1])}return a}function tn(e,t,r,n,i,o,l){var s=qr(e,t,n,l),a=s.begin,u=s.end;/\s/.test(t.text.charAt(u-1))&&u--;for(var c=null,h=null,f=0;f=u||d.to<=a)){var p=Wr(e,n,1!=d.level?Math.min(u,d.to)-1:Math.max(a,d.from)).right,g=pg)&&(c=d,h=g)}}return c||(c=i[i.length-1]),c.fromu&&(c={from:c.from,to:u,level:c.level}),c}function rn(e){if(null!=e.cachedTextHeight)return e.cachedTextHeight;if(null==Hr){Hr=O("pre",null,"CodeMirror-line-like");for(var t=0;t<49;++t)Hr.appendChild(document.createTextNode("x")),Hr.appendChild(O("br"));Hr.appendChild(document.createTextNode("x"))}N(e.measure,Hr);var r=Hr.offsetHeight/50;return r>3&&(e.cachedTextHeight=r),M(e.measure),r||1}function nn(e){if(null!=e.cachedCharWidth)return e.cachedCharWidth;var t=O("span","xxxxxxxxxx"),r=O("pre",[t],"CodeMirror-line-like");N(e.measure,r);var n=t.getBoundingClientRect(),i=(n.right-n.left)/10;return i>2&&(e.cachedCharWidth=i),i||10}function on(e){for(var t=e.display,r={},n={},i=t.gutters.clientLeft,o=t.gutters.firstChild,l=0;o;o=o.nextSibling,++l){var s=e.display.gutterSpecs[l].className;r[s]=o.offsetLeft+o.clientLeft+i,n[s]=o.clientWidth}return{fixedPos:ln(t),gutterTotalWidth:t.gutters.offsetWidth,gutterLeft:r,gutterWidth:n,wrapperWidth:t.wrapper.clientWidth}}function ln(e){return e.scroller.getBoundingClientRect().left-e.sizer.getBoundingClientRect().left}function sn(e){var t=rn(e.display),r=e.options.lineWrapping,n=r&&Math.max(5,e.display.scroller.clientWidth/nn(e.display)-3);return function(i){if(Gt(e.doc,i))return 0;var o=0;if(i.widgets)for(var l=0;l0&&(a=Xe(e.doc,u.line).text).length==u.ch){var c=I(a,a.length,e.options.tabSize)-a.length;u=et(u.line,Math.max(0,Math.round((o-Lr(e.display).left)/nn(e.display))-c))}return u}function cn(e,t){if(t>=e.display.viewTo)return null;if((t-=e.display.viewFrom)<0)return null;for(var r=e.display.view,n=0;nt)&&(i.updateLineNumbers=t),e.curOp.viewChanged=!0,t>=i.viewTo)Ct&&zt(e.doc,t)i.viewFrom?dn(e):(i.viewFrom+=n,i.viewTo+=n);else if(t<=i.viewFrom&&r>=i.viewTo)dn(e);else if(t<=i.viewFrom){var o=pn(e,r,r+n,1);o?(i.view=i.view.slice(o.index),i.viewFrom=o.lineN,i.viewTo+=n):dn(e)}else if(r>=i.viewTo){var l=pn(e,t,t,-1);l?(i.view=i.view.slice(0,l.index),i.viewTo=l.lineN):dn(e)}else{var s=pn(e,t,t,-1),a=pn(e,r,r+n,1);s&&a?(i.view=i.view.slice(0,s.index).concat(ir(e,s.lineN,a.lineN)).concat(i.view.slice(a.index)),i.viewTo+=n):dn(e)}var u=i.externalMeasured;u&&(r=i.lineN&&t=n.viewTo)){var o=n.view[cn(e,t)];if(null!=o.node){var l=o.changes||(o.changes=[]);-1==B(l,r)&&l.push(r)}}}function dn(e){e.display.viewFrom=e.display.viewTo=e.doc.first,e.display.view=[],e.display.viewOffset=0}function pn(e,t,r,n){var i,o=cn(e,t),l=e.display.view;if(!Ct||r==e.doc.first+e.doc.size)return{index:o,lineN:r};for(var s=e.display.viewFrom,a=0;a0){if(o==l.length-1)return null;i=s+l[o].size-t,o++}else i=s-t;t+=i,r+=i}for(;zt(e.doc,r)!=r;){if(o==(n<0?0:l.length-1))return null;r+=n*l[o-(n<0?1:0)].size,o+=n}return{index:o,lineN:r}}function gn(e){for(var t=e.display.view,r=0,n=0;n=e.display.viewTo||s.to().linet||t==r&&l.to==t)&&(n(Math.max(l.from,t),Math.min(l.to,r),1==l.level?"rtl":"ltr",o),i=!0)}i||n(t,r,"ltr")}(g,r||0,null==n?f:n,(function(e,t,i,h){var v="ltr"==i,m=d(e,v?"left":"right"),y=d(t-1,v?"right":"left"),b=null==r&&0==e,w=null==n&&t==f,x=0==h,C=!g||h==g.length-1;if(y.top-m.top<=3){var S=(u?w:b)&&C,L=(u?b:w)&&x?s:(v?m:y).left,k=S?a:(v?y:m).right;c(L,m.top,k-L,m.bottom)}else{var T,M,N,O;v?(T=u&&b&&x?s:m.left,M=u?a:p(e,i,"before"),N=u?s:p(t,i,"after"),O=u&&w&&C?a:y.right):(T=u?p(e,i,"before"):s,M=!u&&b&&x?a:m.right,N=!u&&w&&C?s:y.left,O=u?p(t,i,"after"):a),c(T,m.top,M-T,m.bottom),m.bottom0?t.blinker=setInterval((function(){e.hasFocus()||kn(e),t.cursorDiv.style.visibility=(r=!r)?"":"hidden"}),e.options.cursorBlinkRate):e.options.cursorBlinkRate<0&&(t.cursorDiv.style.visibility="hidden")}}function Cn(e){e.hasFocus()||(e.display.input.focus(),e.state.focused||Ln(e))}function Sn(e){e.state.delayingBlurEvent=!0,setTimeout((function(){e.state.delayingBlurEvent&&(e.state.delayingBlurEvent=!1,e.state.focused&&kn(e))}),100)}function Ln(e,t){e.state.delayingBlurEvent&&!e.state.draggingText&&(e.state.delayingBlurEvent=!1),"nocursor"!=e.options.readOnly&&(e.state.focused||(pe(e,"focus",e,t),e.state.focused=!0,H(e.display.wrapper,"CodeMirror-focused"),e.curOp||e.display.selForContextMenu==e.doc.sel||(e.display.input.reset(),a&&setTimeout((function(){return e.display.input.reset(!0)}),20)),e.display.input.receivedFocus()),xn(e))}function kn(e,t){e.state.delayingBlurEvent||(e.state.focused&&(pe(e,"blur",e,t),e.state.focused=!1,T(e.display.wrapper,"CodeMirror-focused")),clearInterval(e.display.blinker),setTimeout((function(){e.state.focused||(e.display.shift=!1)}),150))}function Tn(e){for(var t=e.display,r=t.lineDiv.offsetTop,n=0;n.005||f<-.005)&&($e(i.line,a),Mn(i.line),i.rest))for(var d=0;de.display.sizerWidth){var p=Math.ceil(u/nn(e.display));p>e.display.maxLineLength&&(e.display.maxLineLength=p,e.display.maxLine=i.line,e.display.maxLineChanged=!0)}}}}function Mn(e){if(e.widgets)for(var t=0;t=l&&(o=Ze(t,Vt(Xe(t,a))-e.wrapper.clientHeight),l=a)}return{from:o,to:Math.max(l,o+1)}}function On(e,t){var r=e.display,n=rn(e.display);t.top<0&&(t.top=0);var i=e.curOp&&null!=e.curOp.scrollTop?e.curOp.scrollTop:r.scroller.scrollTop,o=Mr(e),l={};t.bottom-t.top>o&&(t.bottom=t.top+o);var s=e.doc.height+Sr(r),a=t.tops-n;if(t.topi+o){var c=Math.min(t.top,(u?s:t.bottom)-o);c!=i&&(l.scrollTop=c)}var h=e.options.fixedGutter?0:r.gutters.offsetWidth,f=e.curOp&&null!=e.curOp.scrollLeft?e.curOp.scrollLeft:r.scroller.scrollLeft-h,d=Tr(e)-r.gutters.offsetWidth,p=t.right-t.left>d;return p&&(t.right=t.left+d),t.left<10?l.scrollLeft=0:t.leftd+f-3&&(l.scrollLeft=t.right+(p?0:10)-d),l}function An(e,t){null!=t&&(Hn(e),e.curOp.scrollTop=(null==e.curOp.scrollTop?e.doc.scrollTop:e.curOp.scrollTop)+t)}function Dn(e){Hn(e);var t=e.getCursor();e.curOp.scrollToPos={from:t,to:t,margin:e.options.cursorScrollMargin}}function Wn(e,t,r){null==t&&null==r||Hn(e),null!=t&&(e.curOp.scrollLeft=t),null!=r&&(e.curOp.scrollTop=r)}function Hn(e){var t=e.curOp.scrollToPos;t&&(e.curOp.scrollToPos=null,Fn(e,Yr(e,t.from),Yr(e,t.to),t.margin))}function Fn(e,t,r,n){var i=On(e,{left:Math.min(t.left,r.left),top:Math.min(t.top,r.top)-n,right:Math.max(t.right,r.right),bottom:Math.max(t.bottom,r.bottom)+n});Wn(e,i.scrollLeft,i.scrollTop)}function Pn(e,t){Math.abs(e.doc.scrollTop-t)<2||(r||ai(e,{top:t}),En(e,t,!0),r&&ai(e),ni(e,100))}function En(e,t,r){t=Math.max(0,Math.min(e.display.scroller.scrollHeight-e.display.scroller.clientHeight,t)),(e.display.scroller.scrollTop!=t||r)&&(e.doc.scrollTop=t,e.display.scrollbars.setScrollTop(t),e.display.scroller.scrollTop!=t&&(e.display.scroller.scrollTop=t))}function Rn(e,t,r,n){t=Math.max(0,Math.min(t,e.display.scroller.scrollWidth-e.display.scroller.clientWidth)),(r?t==e.doc.scrollLeft:Math.abs(e.doc.scrollLeft-t)<2)&&!n||(e.doc.scrollLeft=t,hi(e),e.display.scroller.scrollLeft!=t&&(e.display.scroller.scrollLeft=t),e.display.scrollbars.setScrollLeft(t))}function In(e){var t=e.display,r=t.gutters.offsetWidth,n=Math.round(e.doc.height+Sr(e.display));return{clientHeight:t.scroller.clientHeight,viewHeight:t.wrapper.clientHeight,scrollWidth:t.scroller.scrollWidth,clientWidth:t.scroller.clientWidth,viewWidth:t.wrapper.clientWidth,barLeft:e.options.fixedGutter?r:0,docHeight:n,scrollHeight:n+kr(e)+t.barHeight,nativeBarWidth:t.nativeBarWidth,gutterWidth:r}}var zn=function(e,t,r){this.cm=r;var n=this.vert=O("div",[O("div",null,null,"min-width: 1px")],"CodeMirror-vscrollbar"),i=this.horiz=O("div",[O("div",null,null,"height: 100%; min-height: 1px")],"CodeMirror-hscrollbar");n.tabIndex=i.tabIndex=-1,e(n),e(i),he(n,"scroll",(function(){n.clientHeight&&t(n.scrollTop,"vertical")})),he(i,"scroll",(function(){i.clientWidth&&t(i.scrollLeft,"horizontal")})),this.checkedZeroWidth=!1,l&&s<8&&(this.horiz.style.minHeight=this.vert.style.minWidth="18px")};zn.prototype.update=function(e){var t=e.scrollWidth>e.clientWidth+1,r=e.scrollHeight>e.clientHeight+1,n=e.nativeBarWidth;if(r){this.vert.style.display="block",this.vert.style.bottom=t?n+"px":"0";var i=e.viewHeight-(t?n:0);this.vert.firstChild.style.height=Math.max(0,e.scrollHeight-e.clientHeight+i)+"px"}else this.vert.style.display="",this.vert.firstChild.style.height="0";if(t){this.horiz.style.display="block",this.horiz.style.right=r?n+"px":"0",this.horiz.style.left=e.barLeft+"px";var o=e.viewWidth-e.barLeft-(r?n:0);this.horiz.firstChild.style.width=Math.max(0,e.scrollWidth-e.clientWidth+o)+"px"}else this.horiz.style.display="",this.horiz.firstChild.style.width="0";return!this.checkedZeroWidth&&e.clientHeight>0&&(0==n&&this.zeroWidthHack(),this.checkedZeroWidth=!0),{right:r?n:0,bottom:t?n:0}},zn.prototype.setScrollLeft=function(e){this.horiz.scrollLeft!=e&&(this.horiz.scrollLeft=e),this.disableHoriz&&this.enableZeroWidthBar(this.horiz,this.disableHoriz,"horiz")},zn.prototype.setScrollTop=function(e){this.vert.scrollTop!=e&&(this.vert.scrollTop=e),this.disableVert&&this.enableZeroWidthBar(this.vert,this.disableVert,"vert")},zn.prototype.zeroWidthHack=function(){var e=y&&!d?"12px":"18px";this.horiz.style.height=this.vert.style.width=e,this.horiz.style.pointerEvents=this.vert.style.pointerEvents="none",this.disableHoriz=new z,this.disableVert=new z},zn.prototype.enableZeroWidthBar=function(e,t,r){e.style.pointerEvents="auto",t.set(1e3,(function n(){var i=e.getBoundingClientRect();("vert"==r?document.elementFromPoint(i.right-1,(i.top+i.bottom)/2):document.elementFromPoint((i.right+i.left)/2,i.bottom-1))!=e?e.style.pointerEvents="none":t.set(1e3,n)}))},zn.prototype.clear=function(){var e=this.horiz.parentNode;e.removeChild(this.horiz),e.removeChild(this.vert)};var Bn=function(){};function Gn(e,t){t||(t=In(e));var r=e.display.barWidth,n=e.display.barHeight;Un(e,t);for(var i=0;i<4&&r!=e.display.barWidth||n!=e.display.barHeight;i++)r!=e.display.barWidth&&e.options.lineWrapping&&Tn(e),Un(e,In(e)),r=e.display.barWidth,n=e.display.barHeight}function Un(e,t){var r=e.display,n=r.scrollbars.update(t);r.sizer.style.paddingRight=(r.barWidth=n.right)+"px",r.sizer.style.paddingBottom=(r.barHeight=n.bottom)+"px",r.heightForcer.style.borderBottom=n.bottom+"px solid transparent",n.right&&n.bottom?(r.scrollbarFiller.style.display="block",r.scrollbarFiller.style.height=n.bottom+"px",r.scrollbarFiller.style.width=n.right+"px"):r.scrollbarFiller.style.display="",n.bottom&&e.options.coverGutterNextToScrollbar&&e.options.fixedGutter?(r.gutterFiller.style.display="block",r.gutterFiller.style.height=n.bottom+"px",r.gutterFiller.style.width=t.gutterWidth+"px"):r.gutterFiller.style.display=""}Bn.prototype.update=function(){return{bottom:0,right:0}},Bn.prototype.setScrollLeft=function(){},Bn.prototype.setScrollTop=function(){},Bn.prototype.clear=function(){};var Vn={native:zn,null:Bn};function Kn(e){e.display.scrollbars&&(e.display.scrollbars.clear(),e.display.scrollbars.addClass&&T(e.display.wrapper,e.display.scrollbars.addClass)),e.display.scrollbars=new Vn[e.options.scrollbarStyle]((function(t){e.display.wrapper.insertBefore(t,e.display.scrollbarFiller),he(t,"mousedown",(function(){e.state.focused&&setTimeout((function(){return e.display.input.focus()}),0)})),t.setAttribute("cm-not-content","true")}),(function(t,r){"horizontal"==r?Rn(e,t):Pn(e,t)}),e),e.display.scrollbars.addClass&&H(e.display.wrapper,e.display.scrollbars.addClass)}var jn=0;function Xn(e){var t;e.curOp={cm:e,viewChanged:!1,startHeight:e.doc.height,forceUpdate:!1,updateInput:0,typing:!1,changeObjs:null,cursorActivityHandlers:null,cursorActivityCalled:0,selectionChanged:!1,updateMaxLine:!1,scrollLeft:null,scrollTop:null,scrollToPos:null,focus:!1,id:++jn,markArrays:null},t=e.curOp,or?or.ops.push(t):t.ownsGroup=or={ops:[t],delayedCallbacks:[]}}function Yn(e){var t=e.curOp;t&&function(e,t){var r=e.ownsGroup;if(r)try{!function(e){var t=e.delayedCallbacks,r=0;do{for(;r=r.viewTo)||r.maxLineChanged&&t.options.lineWrapping,e.update=e.mustUpdate&&new oi(t,e.mustUpdate&&{top:e.scrollTop,ensure:e.scrollToPos},e.forceUpdate)}function $n(e){e.updatedDisplay=e.mustUpdate&&li(e.cm,e.update)}function qn(e){var t=e.cm,r=t.display;e.updatedDisplay&&Tn(t),e.barMeasure=In(t),r.maxLineChanged&&!t.options.lineWrapping&&(e.adjustWidthTo=Or(t,r.maxLine,r.maxLine.text.length).left+3,t.display.sizerWidth=e.adjustWidthTo,e.barMeasure.scrollWidth=Math.max(r.scroller.clientWidth,r.sizer.offsetLeft+e.adjustWidthTo+kr(t)+t.display.barWidth),e.maxScrollLeft=Math.max(0,r.sizer.offsetLeft+e.adjustWidthTo-Tr(t))),(e.updatedDisplay||e.selectionChanged)&&(e.preparedSelection=r.input.prepareSelection())}function Zn(e){var t=e.cm;null!=e.adjustWidthTo&&(t.display.sizer.style.minWidth=e.adjustWidthTo+"px",e.maxScrollLeft(window.innerHeight||document.documentElement.clientHeight)&&(i=!1),null!=i&&!p){var o=O("div","​",null,"position: absolute;\n top: "+(t.top-r.viewOffset-Cr(e.display))+"px;\n height: "+(t.bottom-t.top+kr(e)+r.barHeight)+"px;\n left: "+t.left+"px; width: "+Math.max(2,t.right-t.left)+"px;");e.display.lineSpace.appendChild(o),o.scrollIntoView(i),e.display.lineSpace.removeChild(o)}}}(t,function(e,t,r,n){var i;null==n&&(n=0),e.options.lineWrapping||t!=r||(r="before"==t.sticky?et(t.line,t.ch+1,"before"):t,t=t.ch?et(t.line,"before"==t.sticky?t.ch-1:t.ch,"after"):t);for(var o=0;o<5;o++){var l=!1,s=Xr(e,t),a=r&&r!=t?Xr(e,r):s,u=On(e,i={left:Math.min(s.left,a.left),top:Math.min(s.top,a.top)-n,right:Math.max(s.left,a.left),bottom:Math.max(s.bottom,a.bottom)+n}),c=e.doc.scrollTop,h=e.doc.scrollLeft;if(null!=u.scrollTop&&(Pn(e,u.scrollTop),Math.abs(e.doc.scrollTop-c)>1&&(l=!0)),null!=u.scrollLeft&&(Rn(e,u.scrollLeft),Math.abs(e.doc.scrollLeft-h)>1&&(l=!0)),!l)break}return i}(t,st(n,e.scrollToPos.from),st(n,e.scrollToPos.to),e.scrollToPos.margin));var i=e.maybeHiddenMarkers,o=e.maybeUnhiddenMarkers;if(i)for(var l=0;l=e.display.viewTo)){var r=+new Date+e.options.workTime,n=dt(e,t.highlightFrontier),i=[];t.iter(n.line,Math.min(t.first+t.size,e.display.viewTo+500),(function(o){if(n.line>=e.display.viewFrom){var l=o.styles,s=o.text.length>e.options.maxHighlightLength?Ue(t.mode,n.state):null,a=ht(e,o,n,!0);s&&(n.state=s),o.styles=a.styles;var u=o.styleClasses,c=a.classes;c?o.styleClasses=c:u&&(o.styleClasses=null);for(var h=!l||l.length!=o.styles.length||u!=c&&(!u||!c||u.bgClass!=c.bgClass||u.textClass!=c.textClass),f=0;!h&&fr)return ni(e,e.options.workDelay),!0})),t.highlightFrontier=n.line,t.modeFrontier=Math.max(t.modeFrontier,n.line),i.length&&Qn(e,(function(){for(var t=0;t=r.viewFrom&&t.visible.to<=r.viewTo&&(null==r.updateLineNumbers||r.updateLineNumbers>=r.viewTo)&&r.renderedView==r.view&&0==gn(e))return!1;fi(e)&&(dn(e),t.dims=on(e));var i=n.first+n.size,o=Math.max(t.visible.from-e.options.viewportMargin,n.first),l=Math.min(i,t.visible.to+e.options.viewportMargin);r.viewFroml&&r.viewTo-l<20&&(l=Math.min(i,r.viewTo)),Ct&&(o=zt(e.doc,o),l=Bt(e.doc,l));var s=o!=r.viewFrom||l!=r.viewTo||r.lastWrapHeight!=t.wrapperHeight||r.lastWrapWidth!=t.wrapperWidth;(function(e,t,r){var n=e.display;0==n.view.length||t>=n.viewTo||r<=n.viewFrom?(n.view=ir(e,t,r),n.viewFrom=t):(n.viewFrom>t?n.view=ir(e,t,n.viewFrom).concat(n.view):n.viewFromr&&(n.view=n.view.slice(0,cn(e,r)))),n.viewTo=r})(e,o,l),r.viewOffset=Vt(Xe(e.doc,r.viewFrom)),e.display.mover.style.top=r.viewOffset+"px";var u=gn(e);if(!s&&0==u&&!t.force&&r.renderedView==r.view&&(null==r.updateLineNumbers||r.updateLineNumbers>=r.viewTo))return!1;var c=function(e){if(e.hasFocus())return null;var t=W();if(!t||!D(e.display.lineDiv,t))return null;var r={activeElt:t};if(window.getSelection){var n=window.getSelection();n.anchorNode&&n.extend&&D(e.display.lineDiv,n.anchorNode)&&(r.anchorNode=n.anchorNode,r.anchorOffset=n.anchorOffset,r.focusNode=n.focusNode,r.focusOffset=n.focusOffset)}return r}(e);return u>4&&(r.lineDiv.style.display="none"),function(e,t,r){var n=e.display,i=e.options.lineNumbers,o=n.lineDiv,l=o.firstChild;function s(t){var r=t.nextSibling;return a&&y&&e.display.currentWheelTarget==t?t.style.display="none":t.parentNode.removeChild(t),r}for(var u=n.view,c=n.viewFrom,h=0;h-1&&(d=!1),ur(e,f,c,r)),d&&(M(f.lineNumber),f.lineNumber.appendChild(document.createTextNode(Qe(e.options,c)))),l=f.node.nextSibling}else{var p=vr(e,f,c,r);o.insertBefore(p,l)}c+=f.size}for(;l;)l=s(l)}(e,r.updateLineNumbers,t.dims),u>4&&(r.lineDiv.style.display=""),r.renderedView=r.view,function(e){if(e&&e.activeElt&&e.activeElt!=W()&&(e.activeElt.focus(),!/^(INPUT|TEXTAREA)$/.test(e.activeElt.nodeName)&&e.anchorNode&&D(document.body,e.anchorNode)&&D(document.body,e.focusNode))){var t=window.getSelection(),r=document.createRange();r.setEnd(e.anchorNode,e.anchorOffset),r.collapse(!1),t.removeAllRanges(),t.addRange(r),t.extend(e.focusNode,e.focusOffset)}}(c),M(r.cursorDiv),M(r.selectionDiv),r.gutters.style.height=r.sizer.style.minHeight=0,s&&(r.lastWrapHeight=t.wrapperHeight,r.lastWrapWidth=t.wrapperWidth,ni(e,400)),r.updateLineNumbers=null,!0}function si(e,t){for(var r=t.viewport,n=!0;;n=!1){if(n&&e.options.lineWrapping&&t.oldDisplayWidth!=Tr(e))n&&(t.visible=Nn(e.display,e.doc,r));else if(r&&null!=r.top&&(r={top:Math.min(e.doc.height+Sr(e.display)-Mr(e),r.top)}),t.visible=Nn(e.display,e.doc,r),t.visible.from>=e.display.viewFrom&&t.visible.to<=e.display.viewTo)break;if(!li(e,t))break;Tn(e);var i=In(e);vn(e),Gn(e,i),ci(e,i),t.force=!1}t.signal(e,"update",e),e.display.viewFrom==e.display.reportedViewFrom&&e.display.viewTo==e.display.reportedViewTo||(t.signal(e,"viewportChange",e,e.display.viewFrom,e.display.viewTo),e.display.reportedViewFrom=e.display.viewFrom,e.display.reportedViewTo=e.display.viewTo)}function ai(e,t){var r=new oi(e,t);if(li(e,r)){Tn(e),si(e,r);var n=In(e);vn(e),Gn(e,n),ci(e,n),r.finish()}}function ui(e){var t=e.gutters.offsetWidth;e.sizer.style.marginLeft=t+"px",sr(e,"gutterChanged",e)}function ci(e,t){e.display.sizer.style.minHeight=t.docHeight+"px",e.display.heightForcer.style.top=t.docHeight+"px",e.display.gutters.style.height=t.docHeight+e.display.barHeight+kr(e)+"px"}function hi(e){var t=e.display,r=t.view;if(t.alignWidgets||t.gutters.firstChild&&e.options.fixedGutter){for(var n=ln(t)-t.scroller.scrollLeft+e.doc.scrollLeft,i=t.gutters.offsetWidth,o=n+"px",l=0;ls.clientWidth,c=s.scrollHeight>s.clientHeight;if(i&&u||o&&c){if(o&&y&&a)e:for(var f=t.target,d=l.view;f!=s;f=f.parentNode)for(var p=0;p=0&&tt(e,n.to())<=0)return r}return-1};var Si=function(e,t){this.anchor=e,this.head=t};function Li(e,t,r){var n=e&&e.options.selectionsMayTouch,i=t[r];t.sort((function(e,t){return tt(e.from(),t.from())})),r=B(t,i);for(var o=1;o0:a>=0){var u=ot(s.from(),l.from()),c=it(s.to(),l.to()),h=s.empty()?l.from()==l.head:s.from()==s.head;o<=r&&--r,t.splice(--o,2,new Si(h?c:u,h?u:c))}}return new Ci(t,r)}function ki(e,t){return new Ci([new Si(e,t||e)],0)}function Ti(e){return e.text?et(e.from.line+e.text.length-1,_(e.text).length+(1==e.text.length?e.from.ch:0)):e.to}function Mi(e,t){if(tt(e,t.from)<0)return e;if(tt(e,t.to)<=0)return Ti(t);var r=e.line+t.text.length-(t.to.line-t.from.line)-1,n=e.ch;return e.line==t.to.line&&(n+=Ti(t).ch-t.to.ch),et(r,n)}function Ni(e,t){for(var r=[],n=0;n1&&e.remove(s.line+1,p-1),e.insert(s.line+1,m)}sr(e,"change",e,t)}function Fi(e,t,r){!function e(n,i,o){if(n.linked)for(var l=0;ls-(e.cm?e.cm.options.historyEventDelay:500)||"*"==t.origin.charAt(0)))&&(o=function(e,t){return t?(zi(e.done),_(e.done)):e.done.length&&!_(e.done).ranges?_(e.done):e.done.length>1&&!e.done[e.done.length-2].ranges?(e.done.pop(),_(e.done)):void 0}(i,i.lastOp==n)))l=_(o.changes),0==tt(t.from,t.to)&&0==tt(t.from,l.to)?l.to=Ti(t):o.changes.push(Ii(e,t));else{var a=_(i.done);for(a&&a.ranges||Ui(e.sel,i.done),o={changes:[Ii(e,t)],generation:i.generation},i.done.push(o);i.done.length>i.undoDepth;)i.done.shift(),i.done[0].ranges||i.done.shift()}i.done.push(r),i.generation=++i.maxGeneration,i.lastModTime=i.lastSelTime=s,i.lastOp=i.lastSelOp=n,i.lastOrigin=i.lastSelOrigin=t.origin,l||pe(e,"historyAdded")}function Gi(e,t,r,n){var i=e.history,o=n&&n.origin;r==i.lastSelOp||o&&i.lastSelOrigin==o&&(i.lastModTime==i.lastSelTime&&i.lastOrigin==o||function(e,t,r,n){var i=t.charAt(0);return"*"==i||"+"==i&&r.ranges.length==n.ranges.length&&r.somethingSelected()==n.somethingSelected()&&new Date-e.history.lastSelTime<=(e.cm?e.cm.options.historyEventDelay:500)}(e,o,_(i.done),t))?i.done[i.done.length-1]=t:Ui(t,i.done),i.lastSelTime=+new Date,i.lastSelOrigin=o,i.lastSelOp=r,n&&!1!==n.clearRedo&&zi(i.undone)}function Ui(e,t){var r=_(t);r&&r.ranges&&r.equals(e)||t.push(e)}function Vi(e,t,r,n){var i=t["spans_"+e.id],o=0;e.iter(Math.max(e.first,r),Math.min(e.first+e.size,n),(function(r){r.markedSpans&&((i||(i=t["spans_"+e.id]={}))[o]=r.markedSpans),++o}))}function Ki(e){if(!e)return null;for(var t,r=0;r-1&&(_(s)[h]=u[h],delete u[h])}}}return n}function Yi(e,t,r,n){if(n){var i=e.anchor;if(r){var o=tt(t,i)<0;o!=tt(r,i)<0?(i=t,t=r):o!=tt(t,r)<0&&(t=r)}return new Si(i,t)}return new Si(r||t,t)}function _i(e,t,r,n,i){null==i&&(i=e.cm&&(e.cm.display.shift||e.extend)),Qi(e,new Ci([Yi(e.sel.primary(),t,r,i)],0),n)}function $i(e,t,r){for(var n=[],i=e.cm&&(e.cm.display.shift||e.extend),o=0;o=t.ch:s.to>t.ch))){if(i&&(pe(a,"beforeCursorEnter"),a.explicitlyCleared)){if(o.markedSpans){--l;continue}break}if(!a.atomic)continue;if(r){var h=a.find(n<0?1:-1),f=void 0;if((n<0?c:u)&&(h=lo(e,h,-n,h&&h.line==t.line?o:null)),h&&h.line==t.line&&(f=tt(h,r))&&(n<0?f<0:f>0))return io(e,h,t,n,i)}var d=a.find(n<0?-1:1);return(n<0?u:c)&&(d=lo(e,d,n,d.line==t.line?o:null)),d?io(e,d,t,n,i):null}}return t}function oo(e,t,r,n,i){var o=n||1;return io(e,t,r,o,i)||!i&&io(e,t,r,o,!0)||io(e,t,r,-o,i)||!i&&io(e,t,r,-o,!0)||(e.cantEdit=!0,et(e.first,0))}function lo(e,t,r,n){return r<0&&0==t.ch?t.line>e.first?st(e,et(t.line-1)):null:r>0&&t.ch==(n||Xe(e,t.line)).text.length?t.line0)){var c=[a,1],h=tt(u.from,s.from),f=tt(u.to,s.to);(h<0||!l.inclusiveLeft&&!h)&&c.push({from:u.from,to:s.from}),(f>0||!l.inclusiveRight&&!f)&&c.push({from:s.to,to:u.to}),i.splice.apply(i,c),a+=c.length-3}}return i}(e,t.from,t.to);if(n)for(var i=n.length-1;i>=0;--i)co(e,{from:n[i].from,to:n[i].to,text:i?[""]:t.text,origin:t.origin});else co(e,t)}}function co(e,t){if(1!=t.text.length||""!=t.text[0]||0!=tt(t.from,t.to)){var r=Ni(e,t);Bi(e,t,r,e.cm?e.cm.curOp.id:NaN),po(e,t,r,Tt(e,t));var n=[];Fi(e,(function(e,r){r||-1!=B(n,e.history)||(yo(e.history,t),n.push(e.history)),po(e,t,null,Tt(e,t))}))}}function ho(e,t,r){var n=e.cm&&e.cm.state.suppressEdits;if(!n||r){for(var i,o=e.history,l=e.sel,s="undo"==t?o.done:o.undone,a="undo"==t?o.undone:o.done,u=0;u=0;--d){var p=f(d);if(p)return p.v}}}}function fo(e,t){if(0!=t&&(e.first+=t,e.sel=new Ci($(e.sel.ranges,(function(e){return new Si(et(e.anchor.line+t,e.anchor.ch),et(e.head.line+t,e.head.ch))})),e.sel.primIndex),e.cm)){hn(e.cm,e.first,e.first-t,t);for(var r=e.cm.display,n=r.viewFrom;ne.lastLine())){if(t.from.lineo&&(t={from:t.from,to:et(o,Xe(e,o).text.length),text:[t.text[0]],origin:t.origin}),t.removed=Ye(e,t.from,t.to),r||(r=Ni(e,t)),e.cm?function(e,t,r){var n=e.doc,i=e.display,o=t.from,l=t.to,s=!1,a=o.line;e.options.lineWrapping||(a=qe(It(Xe(n,o.line))),n.iter(a,l.line+1,(function(e){if(e==i.maxLine)return s=!0,!0}))),n.sel.contains(t.from,t.to)>-1&&ve(e),Hi(n,t,r,sn(e)),e.options.lineWrapping||(n.iter(a,o.line+t.text.length,(function(e){var t=Kt(e);t>i.maxLineLength&&(i.maxLine=e,i.maxLineLength=t,i.maxLineChanged=!0,s=!1)})),s&&(e.curOp.updateMaxLine=!0)),function(e,t){if(e.modeFrontier=Math.min(e.modeFrontier,t),!(e.highlightFrontierr;n--){var i=Xe(e,n).stateAfter;if(i&&(!(i instanceof ut)||n+i.lookAhead1||!(this.children[0]instanceof wo))){var s=[];this.collapse(s),this.children=[new wo(s)],this.children[0].parent=this}},collapse:function(e){for(var t=0;t50){for(var l=i.lines.length%25+25,s=l;s10);e.parent.maybeSpill()}},iterN:function(e,t,r){for(var n=0;n0||0==l&&!1!==o.clearWhenEmpty)return o;if(o.replacedWith&&(o.collapsed=!0,o.widgetNode=A("span",[o.replacedWith],"CodeMirror-widget"),n.handleMouseEvents||o.widgetNode.setAttribute("cm-ignore-events","true"),n.insertLeft&&(o.widgetNode.insertLeft=!0)),o.collapsed){if(Rt(e,t.line,t,r,o)||t.line!=r.line&&Rt(e,r.line,t,r,o))throw new Error("Inserting collapsed marker partially overlapping an existing one");Ct=!0}o.addToHistory&&Bi(e,{from:t,to:r,origin:"markText"},e.sel,NaN);var s,a=t.line,u=e.cm;if(e.iter(a,r.line+1,(function(n){u&&o.collapsed&&!u.options.lineWrapping&&It(n)==u.display.maxLine&&(s=!0),o.collapsed&&a!=t.line&&$e(n,0),function(e,t,r){var n=r&&window.WeakSet&&(r.markedSpans||(r.markedSpans=new WeakSet));n&&n.has(e.markedSpans)?e.markedSpans.push(t):(e.markedSpans=e.markedSpans?e.markedSpans.concat([t]):[t],n&&n.add(e.markedSpans)),t.marker.attachLine(e)}(n,new St(o,a==t.line?t.ch:null,a==r.line?r.ch:null),e.cm&&e.cm.curOp),++a})),o.collapsed&&e.iter(t.line,r.line+1,(function(t){Gt(e,t)&&$e(t,0)})),o.clearOnEnter&&he(o,"beforeCursorEnter",(function(){return o.clear()})),o.readOnly&&(xt=!0,(e.history.done.length||e.history.undone.length)&&e.clearHistory()),o.collapsed&&(o.id=++Lo,o.atomic=!0),u){if(s&&(u.curOp.updateMaxLine=!0),o.collapsed)hn(u,t.line,r.line+1);else if(o.className||o.startStyle||o.endStyle||o.css||o.attributes||o.title)for(var c=t.line;c<=r.line;c++)fn(u,c,"text");o.atomic&&ro(u.doc),sr(u,"markerAdded",u,o)}return o}ko.prototype.clear=function(){if(!this.explicitlyCleared){var e=this.doc.cm,t=e&&!e.curOp;if(t&&Xn(e),me(this,"clear")){var r=this.find();r&&sr(this,"clear",r.from,r.to)}for(var n=null,i=null,o=0;oe.display.maxLineLength&&(e.display.maxLine=u,e.display.maxLineLength=c,e.display.maxLineChanged=!0)}null!=n&&e&&this.collapsed&&hn(e,n,i+1),this.lines.length=0,this.explicitlyCleared=!0,this.atomic&&this.doc.cantEdit&&(this.doc.cantEdit=!1,e&&ro(e.doc)),e&&sr(e,"markerCleared",e,this,n,i),t&&Yn(e),this.parent&&this.parent.clear()}},ko.prototype.find=function(e,t){var r,n;null==e&&"bookmark"==this.type&&(e=1);for(var i=0;i=0;a--)uo(this,n[a]);s?Ji(this,s):this.cm&&Dn(this.cm)})),undo:ri((function(){ho(this,"undo")})),redo:ri((function(){ho(this,"redo")})),undoSelection:ri((function(){ho(this,"undo",!0)})),redoSelection:ri((function(){ho(this,"redo",!0)})),setExtending:function(e){this.extend=e},getExtending:function(){return this.extend},historySize:function(){for(var e=this.history,t=0,r=0,n=0;n=e.ch)&&t.push(i.marker.parent||i.marker)}return t},findMarks:function(e,t,r){e=st(this,e),t=st(this,t);var n=[],i=e.line;return this.iter(e.line,t.line+1,(function(o){var l=o.markedSpans;if(l)for(var s=0;s=a.to||null==a.from&&i!=e.line||null!=a.from&&i==t.line&&a.from>=t.ch||r&&!r(a.marker)||n.push(a.marker.parent||a.marker)}++i})),n},getAllMarks:function(){var e=[];return this.iter((function(t){var r=t.markedSpans;if(r)for(var n=0;ne)return t=e,!0;e-=o,++r})),st(this,et(r,t))},indexFromPos:function(e){var t=(e=st(this,e)).ch;if(e.linet&&(t=e.from),null!=e.to&&e.to-1)return t.state.draggingText(e),void setTimeout((function(){return t.display.input.focus()}),20);try{var h=e.dataTransfer.getData("Text");if(h){var f;if(t.state.draggingText&&!t.state.draggingText.copy&&(f=t.listSelections()),eo(t.doc,ki(r,r)),f)for(var d=0;d=0;t--)go(e.doc,"",n[t].from,n[t].to,"+delete");Dn(e)}))}function Jo(e,t,r){var n=ie(e.text,t+r,r);return n<0||n>e.text.length?null:n}function Qo(e,t,r){var n=Jo(e,t.ch,r);return null==n?null:new et(t.line,n,r<0?"after":"before")}function el(e,t,r,n,i){if(e){"rtl"==t.doc.direction&&(i=-i);var o=ue(r,t.doc.direction);if(o){var l,s=i<0?_(o):o[0],a=i<0==(1==s.level)?"after":"before";if(s.level>0||"rtl"==t.doc.direction){var u=Dr(t,r);l=i<0?r.text.length-1:0;var c=Wr(t,u,l).top;l=oe((function(e){return Wr(t,u,e).top==c}),i<0==(1==s.level)?s.from:s.to-1,l),"before"==a&&(l=Jo(r,l,1))}else l=i<0?s.to:s.from;return new et(n,l,a)}}return new et(n,i<0?r.text.length:0,i<0?"before":"after")}Vo.basic={Left:"goCharLeft",Right:"goCharRight",Up:"goLineUp",Down:"goLineDown",End:"goLineEnd",Home:"goLineStartSmart",PageUp:"goPageUp",PageDown:"goPageDown",Delete:"delCharAfter",Backspace:"delCharBefore","Shift-Backspace":"delCharBefore",Tab:"defaultTab","Shift-Tab":"indentAuto",Enter:"newlineAndIndent",Insert:"toggleOverwrite",Esc:"singleSelection"},Vo.pcDefault={"Ctrl-A":"selectAll","Ctrl-D":"deleteLine","Ctrl-Z":"undo","Shift-Ctrl-Z":"redo","Ctrl-Y":"redo","Ctrl-Home":"goDocStart","Ctrl-End":"goDocEnd","Ctrl-Up":"goLineUp","Ctrl-Down":"goLineDown","Ctrl-Left":"goGroupLeft","Ctrl-Right":"goGroupRight","Alt-Left":"goLineStart","Alt-Right":"goLineEnd","Ctrl-Backspace":"delGroupBefore","Ctrl-Delete":"delGroupAfter","Ctrl-S":"save","Ctrl-F":"find","Ctrl-G":"findNext","Shift-Ctrl-G":"findPrev","Shift-Ctrl-F":"replace","Shift-Ctrl-R":"replaceAll","Ctrl-[":"indentLess","Ctrl-]":"indentMore","Ctrl-U":"undoSelection","Shift-Ctrl-U":"redoSelection","Alt-U":"redoSelection",fallthrough:"basic"},Vo.emacsy={"Ctrl-F":"goCharRight","Ctrl-B":"goCharLeft","Ctrl-P":"goLineUp","Ctrl-N":"goLineDown","Ctrl-A":"goLineStart","Ctrl-E":"goLineEnd","Ctrl-V":"goPageDown","Shift-Ctrl-V":"goPageUp","Ctrl-D":"delCharAfter","Ctrl-H":"delCharBefore","Alt-Backspace":"delWordBefore","Ctrl-K":"killLine","Ctrl-T":"transposeChars","Ctrl-O":"openLine"},Vo.macDefault={"Cmd-A":"selectAll","Cmd-D":"deleteLine","Cmd-Z":"undo","Shift-Cmd-Z":"redo","Cmd-Y":"redo","Cmd-Home":"goDocStart","Cmd-Up":"goDocStart","Cmd-End":"goDocEnd","Cmd-Down":"goDocEnd","Alt-Left":"goGroupLeft","Alt-Right":"goGroupRight","Cmd-Left":"goLineLeft","Cmd-Right":"goLineRight","Alt-Backspace":"delGroupBefore","Ctrl-Alt-Backspace":"delGroupAfter","Alt-Delete":"delGroupAfter","Cmd-S":"save","Cmd-F":"find","Cmd-G":"findNext","Shift-Cmd-G":"findPrev","Cmd-Alt-F":"replace","Shift-Cmd-Alt-F":"replaceAll","Cmd-[":"indentLess","Cmd-]":"indentMore","Cmd-Backspace":"delWrappedLineLeft","Cmd-Delete":"delWrappedLineRight","Cmd-U":"undoSelection","Shift-Cmd-U":"redoSelection","Ctrl-Up":"goDocStart","Ctrl-Down":"goDocEnd",fallthrough:["basic","emacsy"]},Vo.default=y?Vo.macDefault:Vo.pcDefault;var tl={selectAll:so,singleSelection:function(e){return e.setSelection(e.getCursor("anchor"),e.getCursor("head"),U)},killLine:function(e){return Zo(e,(function(t){if(t.empty()){var r=Xe(e.doc,t.head.line).text.length;return t.head.ch==r&&t.head.line0)i=new et(i.line,i.ch+1),e.replaceRange(o.charAt(i.ch-1)+o.charAt(i.ch-2),et(i.line,i.ch-2),i,"+transpose");else if(i.line>e.doc.first){var l=Xe(e.doc,i.line-1).text;l&&(i=new et(i.line,1),e.replaceRange(o.charAt(0)+e.doc.lineSeparator()+l.charAt(l.length-1),et(i.line-1,l.length-1),i,"+transpose"))}r.push(new Si(i,i))}e.setSelections(r)}))},newlineAndIndent:function(e){return Qn(e,(function(){for(var t=e.listSelections(),r=t.length-1;r>=0;r--)e.replaceRange(e.doc.lineSeparator(),t[r].anchor,t[r].head,"+input");t=e.listSelections();for(var n=0;n-1&&(tt((i=u.ranges[i]).from(),t)<0||t.xRel>0)&&(tt(i.to(),t)>0||t.xRel<0)?function(e,t,r,n){var i=e.display,o=!1,u=ei(e,(function(t){a&&(i.scroller.draggable=!1),e.state.draggingText=!1,e.state.delayingBlurEvent&&(e.hasFocus()?e.state.delayingBlurEvent=!1:Sn(e)),de(i.wrapper.ownerDocument,"mouseup",u),de(i.wrapper.ownerDocument,"mousemove",c),de(i.scroller,"dragstart",h),de(i.scroller,"drop",u),o||(be(t),n.addNew||_i(e.doc,r,null,null,n.extend),a&&!f||l&&9==s?setTimeout((function(){i.wrapper.ownerDocument.body.focus({preventScroll:!0}),i.input.focus()}),20):i.input.focus())})),c=function(e){o=o||Math.abs(t.clientX-e.clientX)+Math.abs(t.clientY-e.clientY)>=10},h=function(){return o=!0};a&&(i.scroller.draggable=!0),e.state.draggingText=u,u.copy=!n.moveOnDrag,he(i.wrapper.ownerDocument,"mouseup",u),he(i.wrapper.ownerDocument,"mousemove",c),he(i.scroller,"dragstart",h),he(i.scroller,"drop",u),e.state.delayingBlurEvent=!0,setTimeout((function(){return i.input.focus()}),20),i.scroller.dragDrop&&i.scroller.dragDrop()}(e,n,t,o):function(e,t,r,n){l&&Sn(e);var i=e.display,o=e.doc;be(t);var s,a,u=o.sel,c=u.ranges;if(n.addNew&&!n.extend?(a=o.sel.contains(r),s=a>-1?c[a]:new Si(r,r)):(s=o.sel.primary(),a=o.sel.primIndex),"rectangle"==n.unit)n.addNew||(s=new Si(r,r)),r=un(e,t,!0,!0),a=-1;else{var h=ml(e,r,n.unit);s=n.extend?Yi(s,h.anchor,h.head,n.extend):h}n.addNew?-1==a?(a=c.length,Qi(o,Li(e,c.concat([s]),a),{scroll:!1,origin:"*mouse"})):c.length>1&&c[a].empty()&&"char"==n.unit&&!n.extend?(Qi(o,Li(e,c.slice(0,a).concat(c.slice(a+1)),0),{scroll:!1,origin:"*mouse"}),u=o.sel):qi(o,a,s,V):(a=0,Qi(o,new Ci([s],0),V),u=o.sel);var f=r;function d(t){if(0!=tt(f,t))if(f=t,"rectangle"==n.unit){for(var i=[],l=e.options.tabSize,c=I(Xe(o,r.line).text,r.ch,l),h=I(Xe(o,t.line).text,t.ch,l),d=Math.min(c,h),p=Math.max(c,h),g=Math.min(r.line,t.line),v=Math.min(e.lastLine(),Math.max(r.line,t.line));g<=v;g++){var m=Xe(o,g).text,y=j(m,d,l);d==p?i.push(new Si(et(g,y),et(g,y))):m.length>y&&i.push(new Si(et(g,y),et(g,j(m,p,l))))}i.length||i.push(new Si(r,r)),Qi(o,Li(e,u.ranges.slice(0,a).concat(i),a),{origin:"*mouse",scroll:!1}),e.scrollIntoView(t)}else{var b,w=s,x=ml(e,t,n.unit),C=w.anchor;tt(x.anchor,C)>0?(b=x.head,C=ot(w.from(),x.anchor)):(b=x.anchor,C=it(w.to(),x.head));var S=u.ranges.slice(0);S[a]=function(e,t){var r=t.anchor,n=t.head,i=Xe(e.doc,r.line);if(0==tt(r,n)&&r.sticky==n.sticky)return t;var o=ue(i);if(!o)return t;var l=se(o,r.ch,r.sticky),s=o[l];if(s.from!=r.ch&&s.to!=r.ch)return t;var a,u=l+(s.from==r.ch==(1!=s.level)?0:1);if(0==u||u==o.length)return t;if(n.line!=r.line)a=(n.line-r.line)*("ltr"==e.doc.direction?1:-1)>0;else{var c=se(o,n.ch,n.sticky),h=c-l||(n.ch-r.ch)*(1==s.level?-1:1);a=c==u-1||c==u?h<0:h>0}var f=o[u+(a?-1:0)],d=a==(1==f.level),p=d?f.from:f.to,g=d?"after":"before";return r.ch==p&&r.sticky==g?t:new Si(new et(r.line,p,g),n)}(e,new Si(st(o,C),b)),Qi(o,Li(e,S,a),V)}}var p=i.wrapper.getBoundingClientRect(),g=0;function v(t){var r=++g,l=un(e,t,!0,"rectangle"==n.unit);if(l)if(0!=tt(l,f)){e.curOp.focus=W(),d(l);var s=Nn(i,o);(l.line>=s.to||l.linep.bottom?20:0;a&&setTimeout(ei(e,(function(){g==r&&(i.scroller.scrollTop+=a,v(t))})),50)}}function m(t){e.state.selectingText=!1,g=1/0,t&&(be(t),i.input.focus()),de(i.wrapper.ownerDocument,"mousemove",y),de(i.wrapper.ownerDocument,"mouseup",b),o.history.lastSelOrigin=null}var y=ei(e,(function(e){0!==e.buttons&&Le(e)?v(e):m(e)})),b=ei(e,m);e.state.selectingText=b,he(i.wrapper.ownerDocument,"mousemove",y),he(i.wrapper.ownerDocument,"mouseup",b)}(e,n,t,o)}(t,n,o,e):Se(e)==r.scroller&&be(e):2==i?(n&&_i(t.doc,n),setTimeout((function(){return r.input.focus()}),20)):3==i&&(S?t.display.input.onContextMenu(e):Sn(t)))}}function ml(e,t,r){if("char"==r)return new Si(t,t);if("word"==r)return e.findWordAt(t);if("line"==r)return new Si(et(t.line,0),st(e.doc,et(t.line+1,0)));var n=r(e,t);return new Si(n.from,n.to)}function yl(e,t,r,n){var i,o;if(t.touches)i=t.touches[0].clientX,o=t.touches[0].clientY;else try{i=t.clientX,o=t.clientY}catch(e){return!1}if(i>=Math.floor(e.display.gutters.getBoundingClientRect().right))return!1;n&&be(t);var l=e.display,s=l.lineDiv.getBoundingClientRect();if(o>s.bottom||!me(e,r))return xe(t);o-=s.top-l.viewOffset;for(var a=0;a=i)return pe(e,r,e,Ze(e.doc,o),e.display.gutterSpecs[a].className,t),xe(t)}}function bl(e,t){return yl(e,t,"gutterClick",!0)}function wl(e,t){xr(e.display,t)||function(e,t){return!!me(e,"gutterContextMenu")&&yl(e,t,"gutterContextMenu",!1)}(e,t)||ge(e,t,"contextmenu")||S||e.display.input.onContextMenu(t)}function xl(e){e.display.wrapper.className=e.display.wrapper.className.replace(/\s*cm-s-\S+/g,"")+e.options.theme.replace(/(^|\s)\s*/g," cm-s-"),zr(e)}gl.prototype.compare=function(e,t,r){return this.time+400>e&&0==tt(t,this.pos)&&r==this.button};var Cl={toString:function(){return"CodeMirror.Init"}},Sl={},Ll={};function kl(e,t,r){if(!t!=!(r&&r!=Cl)){var n=e.display.dragFunctions,i=t?he:de;i(e.display.scroller,"dragstart",n.start),i(e.display.scroller,"dragenter",n.enter),i(e.display.scroller,"dragover",n.over),i(e.display.scroller,"dragleave",n.leave),i(e.display.scroller,"drop",n.drop)}}function Tl(e){e.options.lineWrapping?(H(e.display.wrapper,"CodeMirror-wrap"),e.display.sizer.style.minWidth="",e.display.sizerWidth=null):(T(e.display.wrapper,"CodeMirror-wrap"),jt(e)),an(e),hn(e),zr(e),setTimeout((function(){return Gn(e)}),100)}function Ml(e,t){var r=this;if(!(this instanceof Ml))return new Ml(e,t);this.options=t=t?R(t):{},R(Sl,t,!1);var n=t.value;"string"==typeof n?n=new Do(n,t.mode,null,t.lineSeparator,t.direction):t.mode&&(n.modeOption=t.mode),this.doc=n;var i=new Ml.inputStyles[t.inputStyle](this),o=this.display=new vi(e,n,i,t);for(var u in o.wrapper.CodeMirror=this,xl(this),t.lineWrapping&&(this.display.wrapper.className+=" CodeMirror-wrap"),Kn(this),this.state={keyMaps:[],overlays:[],modeGen:0,overwrite:!1,delayingBlurEvent:!1,focused:!1,suppressEdits:!1,pasteIncoming:-1,cutIncoming:-1,selectingText:!1,draggingText:!1,highlight:new z,keySeq:null,specialChars:null},t.autofocus&&!m&&o.input.focus(),l&&s<11&&setTimeout((function(){return r.display.input.reset(!0)}),20),function(e){var t=e.display;he(t.scroller,"mousedown",ei(e,vl)),he(t.scroller,"dblclick",l&&s<11?ei(e,(function(t){if(!ge(e,t)){var r=un(e,t);if(r&&!bl(e,t)&&!xr(e.display,t)){be(t);var n=e.findWordAt(r);_i(e.doc,n.anchor,n.head)}}})):function(t){return ge(e,t)||be(t)}),he(t.scroller,"contextmenu",(function(t){return wl(e,t)})),he(t.input.getField(),"contextmenu",(function(r){t.scroller.contains(r.target)||wl(e,r)}));var r,n={end:0};function i(){t.activeTouch&&(r=setTimeout((function(){return t.activeTouch=null}),1e3),(n=t.activeTouch).end=+new Date)}function o(e){if(1!=e.touches.length)return!1;var t=e.touches[0];return t.radiusX<=1&&t.radiusY<=1}function a(e,t){if(null==t.left)return!0;var r=t.left-e.left,n=t.top-e.top;return r*r+n*n>400}he(t.scroller,"touchstart",(function(i){if(!ge(e,i)&&!o(i)&&!bl(e,i)){t.input.ensurePolled(),clearTimeout(r);var l=+new Date;t.activeTouch={start:l,moved:!1,prev:l-n.end<=300?n:null},1==i.touches.length&&(t.activeTouch.left=i.touches[0].pageX,t.activeTouch.top=i.touches[0].pageY)}})),he(t.scroller,"touchmove",(function(){t.activeTouch&&(t.activeTouch.moved=!0)})),he(t.scroller,"touchend",(function(r){var n=t.activeTouch;if(n&&!xr(t,r)&&null!=n.left&&!n.moved&&new Date-n.start<300){var o,l=e.coordsChar(t.activeTouch,"page");o=!n.prev||a(n,n.prev)?new Si(l,l):!n.prev.prev||a(n,n.prev.prev)?e.findWordAt(l):new Si(et(l.line,0),st(e.doc,et(l.line+1,0))),e.setSelection(o.anchor,o.head),e.focus(),be(r)}i()})),he(t.scroller,"touchcancel",i),he(t.scroller,"scroll",(function(){t.scroller.clientHeight&&(Pn(e,t.scroller.scrollTop),Rn(e,t.scroller.scrollLeft,!0),pe(e,"scroll",e))})),he(t.scroller,"mousewheel",(function(t){return xi(e,t)})),he(t.scroller,"DOMMouseScroll",(function(t){return xi(e,t)})),he(t.wrapper,"scroll",(function(){return t.wrapper.scrollTop=t.wrapper.scrollLeft=0})),t.dragFunctions={enter:function(t){ge(e,t)||Ce(t)},over:function(t){ge(e,t)||(function(e,t){var r=un(e,t);if(r){var n=document.createDocumentFragment();yn(e,r,n),e.display.dragCursor||(e.display.dragCursor=O("div",null,"CodeMirror-cursors CodeMirror-dragcursors"),e.display.lineSpace.insertBefore(e.display.dragCursor,e.display.cursorDiv)),N(e.display.dragCursor,n)}}(e,t),Ce(t))},start:function(t){return function(e,t){if(l&&(!e.state.draggingText||+new Date-Wo<100))Ce(t);else if(!ge(e,t)&&!xr(e.display,t)&&(t.dataTransfer.setData("Text",e.getSelection()),t.dataTransfer.effectAllowed="copyMove",t.dataTransfer.setDragImage&&!f)){var r=O("img",null,null,"position: fixed; left: 0; top: 0;");r.src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==",h&&(r.width=r.height=1,e.display.wrapper.appendChild(r),r._top=r.offsetTop),t.dataTransfer.setDragImage(r,0,0),h&&r.parentNode.removeChild(r)}}(e,t)},drop:ei(e,Ho),leave:function(t){ge(e,t)||Fo(e)}};var u=t.input.getField();he(u,"keyup",(function(t){return hl.call(e,t)})),he(u,"keydown",ei(e,cl)),he(u,"keypress",ei(e,fl)),he(u,"focus",(function(t){return Ln(e,t)})),he(u,"blur",(function(t){return kn(e,t)}))}(this),Ro(),Xn(this),this.curOp.forceUpdate=!0,Pi(this,n),t.autofocus&&!m||this.hasFocus()?setTimeout((function(){r.hasFocus()&&!r.state.focused&&Ln(r)}),20):kn(this),Ll)Ll.hasOwnProperty(u)&&Ll[u](this,t[u],Cl);fi(this),t.finishInit&&t.finishInit(this);for(var c=0;c150)){if(!n)return;r="prev"}}else u=0,r="not";"prev"==r?u=t>o.first?I(Xe(o,t-1).text,null,l):0:"add"==r?u=a+e.options.indentUnit:"subtract"==r?u=a-e.options.indentUnit:"number"==typeof r&&(u=a+r),u=Math.max(0,u);var h="",f=0;if(e.options.indentWithTabs)for(var d=Math.floor(u/l);d;--d)f+=l,h+="\t";if(fl,a=De(t),u=null;if(s&&n.ranges.length>1)if(Al&&Al.text.join("\n")==t){if(n.ranges.length%Al.text.length==0){u=[];for(var c=0;c=0;f--){var d=n.ranges[f],p=d.from(),g=d.to();d.empty()&&(r&&r>0?p=et(p.line,p.ch-r):e.state.overwrite&&!s?g=et(g.line,Math.min(Xe(o,g.line).text.length,g.ch+_(a).length)):s&&Al&&Al.lineWise&&Al.text.join("\n")==a.join("\n")&&(p=g=et(p.line,0)));var v={from:p,to:g,text:u?u[f%u.length]:a,origin:i||(s?"paste":e.state.cutIncoming>l?"cut":"+input")};uo(e.doc,v),sr(e,"inputRead",e,v)}t&&!s&&Fl(e,t),Dn(e),e.curOp.updateInput<2&&(e.curOp.updateInput=h),e.curOp.typing=!0,e.state.pasteIncoming=e.state.cutIncoming=-1}function Hl(e,t){var r=e.clipboardData&&e.clipboardData.getData("Text");if(r)return e.preventDefault(),t.isReadOnly()||t.options.disableInput||Qn(t,(function(){return Wl(t,r,0,null,"paste")})),!0}function Fl(e,t){if(e.options.electricChars&&e.options.smartIndent)for(var r=e.doc.sel,n=r.ranges.length-1;n>=0;n--){var i=r.ranges[n];if(!(i.head.ch>100||n&&r.ranges[n-1].head.line==i.head.line)){var o=e.getModeAt(i.head),l=!1;if(o.electricChars){for(var s=0;s-1){l=Ol(e,i.head.line,"smart");break}}else o.electricInput&&o.electricInput.test(Xe(e.doc,i.head.line).text.slice(0,i.head.ch))&&(l=Ol(e,i.head.line,"smart"));l&&sr(e,"electricInput",e,i.head.line)}}}function Pl(e){for(var t=[],r=[],n=0;n0?0:-1));if(isNaN(c))l=null;else{var h=r>0?c>=55296&&c<56320:c>=56320&&c<57343;l=new et(t.line,Math.max(0,Math.min(s.text.length,t.ch+r*(h?2:1))),-r)}}else l=i?function(e,t,r,n){var i=ue(t,e.doc.direction);if(!i)return Qo(t,r,n);r.ch>=t.text.length?(r.ch=t.text.length,r.sticky="before"):r.ch<=0&&(r.ch=0,r.sticky="after");var o=se(i,r.ch,r.sticky),l=i[o];if("ltr"==e.doc.direction&&l.level%2==0&&(n>0?l.to>r.ch:l.from=l.from&&f>=c.begin)){var d=h?"before":"after";return new et(r.line,f,d)}}var p=function(e,t,n){for(var o=function(e,t){return t?new et(r.line,a(e,1),"before"):new et(r.line,e,"after")};e>=0&&e0==(1!=l.level),u=s?n.begin:a(n.end,-1);if(l.from<=u&&u0?c.end:a(c.begin,-1);return null==v||n>0&&v==t.text.length||!(g=p(n>0?0:i.length-1,n,u(v)))?null:g}(e.cm,s,t,r):Qo(s,t,r);if(null==l){if(o||((u=t.line+a)=e.first+e.size||(t=new et(u,t.ch,t.sticky),!(s=Xe(e,u)))))return!1;t=el(i,e.cm,s,t.line,a)}else t=l;return!0}if("char"==n||"codepoint"==n)u();else if("column"==n)u(!0);else if("word"==n||"group"==n)for(var c=null,h="group"==n,f=e.cm&&e.cm.getHelper(t,"wordChars"),d=!0;!(r<0)||u(!d);d=!1){var p=s.text.charAt(t.ch)||"\n",g=ee(p,f)?"w":h&&"\n"==p?"n":!h||/\s/.test(p)?null:"p";if(!h||d||g||(g="s"),c&&c!=g){r<0&&(r=1,u(),t.sticky="after");break}if(g&&(c=g),r>0&&!u(!d))break}var v=oo(e,t,o,l,!0);return rt(o,v)&&(v.hitSide=!0),v}function zl(e,t,r,n){var i,o,l=e.doc,s=t.left;if("page"==n){var a=Math.min(e.display.wrapper.clientHeight,window.innerHeight||document.documentElement.clientHeight),u=Math.max(a-.5*rn(e.display),3);i=(r>0?t.bottom:t.top)+r*u}else"line"==n&&(i=r>0?t.bottom+3:t.top-3);for(;(o=$r(e,s,i)).outside;){if(r<0?i<=0:i>=l.height){o.hitSide=!0;break}i+=5*r}return o}var Bl=function(e){this.cm=e,this.lastAnchorNode=this.lastAnchorOffset=this.lastFocusNode=this.lastFocusOffset=null,this.polling=new z,this.composing=null,this.gracePeriod=!1,this.readDOMTimeout=null};function Gl(e,t){var r=Ar(e,t.line);if(!r||r.hidden)return null;var n=Xe(e.doc,t.line),i=Nr(r,n,t.line),o=ue(n,e.doc.direction),l="left";o&&(l=se(o,t.ch)%2?"right":"left");var s=Pr(i.map,t.ch,l);return s.offset="right"==s.collapse?s.end:s.start,s}function Ul(e,t){return t&&(e.bad=!0),e}function Vl(e,t,r){var n;if(t==e.display.lineDiv){if(!(n=e.display.lineDiv.childNodes[r]))return Ul(e.clipPos(et(e.display.viewTo-1)),!0);t=null,r=0}else for(n=t;;n=n.parentNode){if(!n||n==e.display.lineDiv)return null;if(n.parentNode&&n.parentNode==e.display.lineDiv)break}for(var i=0;i=t.display.viewTo||o.line=t.display.viewFrom&&Gl(t,i)||{node:a[0].measure.map[2],offset:0},c=o.linen.firstLine()&&(l=et(l.line-1,Xe(n.doc,l.line-1).length)),s.ch==Xe(n.doc,s.line).text.length&&s.linei.viewTo-1)return!1;l.line==i.viewFrom||0==(e=cn(n,l.line))?(t=qe(i.view[0].line),r=i.view[0].node):(t=qe(i.view[e].line),r=i.view[e-1].node.nextSibling);var a,u,c=cn(n,s.line);if(c==i.view.length-1?(a=i.viewTo-1,u=i.lineDiv.lastChild):(a=qe(i.view[c+1].line)-1,u=i.view[c+1].node.previousSibling),!r)return!1;for(var h=n.doc.splitLines(function(e,t,r,n,i){var o="",l=!1,s=e.doc.lineSeparator(),a=!1;function u(){l&&(o+=s,a&&(o+=s),l=a=!1)}function c(e){e&&(u(),o+=e)}function h(t){if(1==t.nodeType){var r=t.getAttribute("cm-text");if(r)return void c(r);var o,f=t.getAttribute("cm-marker");if(f){var d=e.findMarks(et(n,0),et(i+1,0),(v=+f,function(e){return e.id==v}));return void(d.length&&(o=d[0].find(0))&&c(Ye(e.doc,o.from,o.to).join(s)))}if("false"==t.getAttribute("contenteditable"))return;var p=/^(pre|div|p|li|table|br)$/i.test(t.nodeName);if(!/^br$/i.test(t.nodeName)&&0==t.textContent.length)return;p&&u();for(var g=0;g1&&f.length>1;)if(_(h)==_(f))h.pop(),f.pop(),a--;else{if(h[0]!=f[0])break;h.shift(),f.shift(),t++}for(var d=0,p=0,g=h[0],v=f[0],m=Math.min(g.length,v.length);dl.ch&&y.charCodeAt(y.length-p-1)==b.charCodeAt(b.length-p-1);)d--,p++;h[h.length-1]=y.slice(0,y.length-p).replace(/^\u200b+/,""),h[0]=h[0].slice(d).replace(/\u200b+$/,"");var x=et(t,d),C=et(a,f.length?_(f).length-p:0);return h.length>1||h[0]||tt(x,C)?(go(n.doc,h,x,C,"+input"),!0):void 0},Bl.prototype.ensurePolled=function(){this.forceCompositionEnd()},Bl.prototype.reset=function(){this.forceCompositionEnd()},Bl.prototype.forceCompositionEnd=function(){this.composing&&(clearTimeout(this.readDOMTimeout),this.composing=null,this.updateFromDOM(),this.div.blur(),this.div.focus())},Bl.prototype.readFromDOMSoon=function(){var e=this;null==this.readDOMTimeout&&(this.readDOMTimeout=setTimeout((function(){if(e.readDOMTimeout=null,e.composing){if(!e.composing.done)return;e.composing=null}e.updateFromDOM()}),80))},Bl.prototype.updateFromDOM=function(){var e=this;!this.cm.isReadOnly()&&this.pollContent()||Qn(this.cm,(function(){return hn(e.cm)}))},Bl.prototype.setUneditable=function(e){e.contentEditable="false"},Bl.prototype.onKeyPress=function(e){0==e.charCode||this.composing||(e.preventDefault(),this.cm.isReadOnly()||ei(this.cm,Wl)(this.cm,String.fromCharCode(null==e.charCode?e.keyCode:e.charCode),0))},Bl.prototype.readOnlyChanged=function(e){this.div.contentEditable=String("nocursor"!=e)},Bl.prototype.onContextMenu=function(){},Bl.prototype.resetPosition=function(){},Bl.prototype.needsContentAttribute=!0;var jl=function(e){this.cm=e,this.prevInput="",this.pollingFast=!1,this.polling=new z,this.hasSelection=!1,this.composing=null};jl.prototype.init=function(e){var t=this,r=this,n=this.cm;this.createField(e);var i=this.textarea;function o(e){if(!ge(n,e)){if(n.somethingSelected())Dl({lineWise:!1,text:n.getSelections()});else{if(!n.options.lineWiseCopyCut)return;var t=Pl(n);Dl({lineWise:!0,text:t.text}),"cut"==e.type?n.setSelections(t.ranges,null,U):(r.prevInput="",i.value=t.text.join("\n"),P(i))}"cut"==e.type&&(n.state.cutIncoming=+new Date)}}e.wrapper.insertBefore(this.wrapper,e.wrapper.firstChild),g&&(i.style.width="0px"),he(i,"input",(function(){l&&s>=9&&t.hasSelection&&(t.hasSelection=null),r.poll()})),he(i,"paste",(function(e){ge(n,e)||Hl(e,n)||(n.state.pasteIncoming=+new Date,r.fastPoll())})),he(i,"cut",o),he(i,"copy",o),he(e.scroller,"paste",(function(t){if(!xr(e,t)&&!ge(n,t)){if(!i.dispatchEvent)return n.state.pasteIncoming=+new Date,void r.focus();var o=new Event("paste");o.clipboardData=t.clipboardData,i.dispatchEvent(o)}})),he(e.lineSpace,"selectstart",(function(t){xr(e,t)||be(t)})),he(i,"compositionstart",(function(){var e=n.getCursor("from");r.composing&&r.composing.range.clear(),r.composing={start:e,range:n.markText(e,n.getCursor("to"),{className:"CodeMirror-composing"})}})),he(i,"compositionend",(function(){r.composing&&(r.poll(),r.composing.range.clear(),r.composing=null)}))},jl.prototype.createField=function(e){this.wrapper=Rl(),this.textarea=this.wrapper.firstChild},jl.prototype.screenReaderLabelChanged=function(e){e?this.textarea.setAttribute("aria-label",e):this.textarea.removeAttribute("aria-label")},jl.prototype.prepareSelection=function(){var e=this.cm,t=e.display,r=e.doc,n=mn(e);if(e.options.moveInputWithCursor){var i=Xr(e,r.sel.primary().head,"div"),o=t.wrapper.getBoundingClientRect(),l=t.lineDiv.getBoundingClientRect();n.teTop=Math.max(0,Math.min(t.wrapper.clientHeight-10,i.top+l.top-o.top)),n.teLeft=Math.max(0,Math.min(t.wrapper.clientWidth-10,i.left+l.left-o.left))}return n},jl.prototype.showSelection=function(e){var t=this.cm.display;N(t.cursorDiv,e.cursors),N(t.selectionDiv,e.selection),null!=e.teTop&&(this.wrapper.style.top=e.teTop+"px",this.wrapper.style.left=e.teLeft+"px")},jl.prototype.reset=function(e){if(!this.contextMenuPending&&!this.composing){var t=this.cm;if(t.somethingSelected()){this.prevInput="";var r=t.getSelection();this.textarea.value=r,t.state.focused&&P(this.textarea),l&&s>=9&&(this.hasSelection=r)}else e||(this.prevInput=this.textarea.value="",l&&s>=9&&(this.hasSelection=null))}},jl.prototype.getField=function(){return this.textarea},jl.prototype.supportsTouch=function(){return!1},jl.prototype.focus=function(){if("nocursor"!=this.cm.options.readOnly&&(!m||W()!=this.textarea))try{this.textarea.focus()}catch(e){}},jl.prototype.blur=function(){this.textarea.blur()},jl.prototype.resetPosition=function(){this.wrapper.style.top=this.wrapper.style.left=0},jl.prototype.receivedFocus=function(){this.slowPoll()},jl.prototype.slowPoll=function(){var e=this;this.pollingFast||this.polling.set(this.cm.options.pollInterval,(function(){e.poll(),e.cm.state.focused&&e.slowPoll()}))},jl.prototype.fastPoll=function(){var e=!1,t=this;t.pollingFast=!0,t.polling.set(20,(function r(){t.poll()||e?(t.pollingFast=!1,t.slowPoll()):(e=!0,t.polling.set(60,r))}))},jl.prototype.poll=function(){var e=this,t=this.cm,r=this.textarea,n=this.prevInput;if(this.contextMenuPending||!t.state.focused||We(r)&&!n&&!this.composing||t.isReadOnly()||t.options.disableInput||t.state.keySeq)return!1;var i=r.value;if(i==n&&!t.somethingSelected())return!1;if(l&&s>=9&&this.hasSelection===i||y&&/[\uf700-\uf7ff]/.test(i))return t.display.input.reset(),!1;if(t.doc.sel==t.display.selForContextMenu){var o=i.charCodeAt(0);if(8203!=o||n||(n="​"),8666==o)return this.reset(),this.cm.execCommand("undo")}for(var a=0,u=Math.min(n.length,i.length);a1e3||i.indexOf("\n")>-1?r.value=e.prevInput="":e.prevInput=i,e.composing&&(e.composing.range.clear(),e.composing.range=t.markText(e.composing.start,t.getCursor("to"),{className:"CodeMirror-composing"}))})),!0},jl.prototype.ensurePolled=function(){this.pollingFast&&this.poll()&&(this.pollingFast=!1)},jl.prototype.onKeyPress=function(){l&&s>=9&&(this.hasSelection=null),this.fastPoll()},jl.prototype.onContextMenu=function(e){var t=this,r=t.cm,n=r.display,i=t.textarea;t.contextMenuPending&&t.contextMenuPending();var o=un(r,e),u=n.scroller.scrollTop;if(o&&!h){r.options.resetSelectionOnContextMenu&&-1==r.doc.sel.contains(o)&&ei(r,Qi)(r.doc,ki(o),U);var c,f=i.style.cssText,d=t.wrapper.style.cssText,p=t.wrapper.offsetParent.getBoundingClientRect();if(t.wrapper.style.cssText="position: static",i.style.cssText="position: absolute; width: 30px; height: 30px;\n top: "+(e.clientY-p.top-5)+"px; left: "+(e.clientX-p.left-5)+"px;\n z-index: 1000; background: "+(l?"rgba(255, 255, 255, .05)":"transparent")+";\n outline: none; border-width: 0; outline: none; overflow: hidden; opacity: .05; filter: alpha(opacity=5);",a&&(c=window.scrollY),n.input.focus(),a&&window.scrollTo(null,c),n.input.reset(),r.somethingSelected()||(i.value=t.prevInput=" "),t.contextMenuPending=m,n.selForContextMenu=r.doc.sel,clearTimeout(n.detectingSelectAll),l&&s>=9&&v(),S){Ce(e);var g=function(){de(window,"mouseup",g),setTimeout(m,20)};he(window,"mouseup",g)}else setTimeout(m,50)}function v(){if(null!=i.selectionStart){var e=r.somethingSelected(),o="​"+(e?i.value:"");i.value="⇚",i.value=o,t.prevInput=e?"":"​",i.selectionStart=1,i.selectionEnd=o.length,n.selForContextMenu=r.doc.sel}}function m(){if(t.contextMenuPending==m&&(t.contextMenuPending=!1,t.wrapper.style.cssText=d,i.style.cssText=f,l&&s<9&&n.scrollbars.setScrollTop(n.scroller.scrollTop=u),null!=i.selectionStart)){(!l||l&&s<9)&&v();var e=0,o=function(){n.selForContextMenu==r.doc.sel&&0==i.selectionStart&&i.selectionEnd>0&&"​"==t.prevInput?ei(r,so)(r):e++<10?n.detectingSelectAll=setTimeout(o,500):(n.selForContextMenu=null,n.input.reset())};n.detectingSelectAll=setTimeout(o,200)}}},jl.prototype.readOnlyChanged=function(e){e||this.reset(),this.textarea.disabled="nocursor"==e,this.textarea.readOnly=!!e},jl.prototype.setUneditable=function(){},jl.prototype.needsContentAttribute=!1,function(e){var t=e.optionHandlers;function r(r,n,i,o){e.defaults[r]=n,i&&(t[r]=o?function(e,t,r){r!=Cl&&i(e,t,r)}:i)}e.defineOption=r,e.Init=Cl,r("value","",(function(e,t){return e.setValue(t)}),!0),r("mode",null,(function(e,t){e.doc.modeOption=t,Ai(e)}),!0),r("indentUnit",2,Ai,!0),r("indentWithTabs",!1),r("smartIndent",!0),r("tabSize",4,(function(e){Di(e),zr(e),hn(e)}),!0),r("lineSeparator",null,(function(e,t){if(e.doc.lineSep=t,t){var r=[],n=e.doc.first;e.doc.iter((function(e){for(var i=0;;){var o=e.text.indexOf(t,i);if(-1==o)break;i=o+t.length,r.push(et(n,o))}n++}));for(var i=r.length-1;i>=0;i--)go(e.doc,t,r[i],et(r[i].line,r[i].ch+t.length))}})),r("specialChars",/[\u0000-\u001f\u007f-\u009f\u00ad\u061c\u200b\u200e\u200f\u2028\u2029\ufeff\ufff9-\ufffc]/g,(function(e,t,r){e.state.specialChars=new RegExp(t.source+(t.test("\t")?"":"|\t"),"g"),r!=Cl&&e.refresh()})),r("specialCharPlaceholder",Jt,(function(e){return e.refresh()}),!0),r("electricChars",!0),r("inputStyle",m?"contenteditable":"textarea",(function(){throw new Error("inputStyle can not (yet) be changed in a running editor")}),!0),r("spellcheck",!1,(function(e,t){return e.getInputField().spellcheck=t}),!0),r("autocorrect",!1,(function(e,t){return e.getInputField().autocorrect=t}),!0),r("autocapitalize",!1,(function(e,t){return e.getInputField().autocapitalize=t}),!0),r("rtlMoveVisually",!w),r("wholeLineUpdateBefore",!0),r("theme","default",(function(e){xl(e),gi(e)}),!0),r("keyMap","default",(function(e,t,r){var n=qo(t),i=r!=Cl&&qo(r);i&&i.detach&&i.detach(e,n),n.attach&&n.attach(e,i||null)})),r("extraKeys",null),r("configureMouse",null),r("lineWrapping",!1,Tl,!0),r("gutters",[],(function(e,t){e.display.gutterSpecs=di(t,e.options.lineNumbers),gi(e)}),!0),r("fixedGutter",!0,(function(e,t){e.display.gutters.style.left=t?ln(e.display)+"px":"0",e.refresh()}),!0),r("coverGutterNextToScrollbar",!1,(function(e){return Gn(e)}),!0),r("scrollbarStyle","native",(function(e){Kn(e),Gn(e),e.display.scrollbars.setScrollTop(e.doc.scrollTop),e.display.scrollbars.setScrollLeft(e.doc.scrollLeft)}),!0),r("lineNumbers",!1,(function(e,t){e.display.gutterSpecs=di(e.options.gutters,t),gi(e)}),!0),r("firstLineNumber",1,gi,!0),r("lineNumberFormatter",(function(e){return e}),gi,!0),r("showCursorWhenSelecting",!1,vn,!0),r("resetSelectionOnContextMenu",!0),r("lineWiseCopyCut",!0),r("pasteLinesPerSelection",!0),r("selectionsMayTouch",!1),r("readOnly",!1,(function(e,t){"nocursor"==t&&(kn(e),e.display.input.blur()),e.display.input.readOnlyChanged(t)})),r("screenReaderLabel",null,(function(e,t){t=""===t?null:t,e.display.input.screenReaderLabelChanged(t)})),r("disableInput",!1,(function(e,t){t||e.display.input.reset()}),!0),r("dragDrop",!0,kl),r("allowDropFileTypes",null),r("cursorBlinkRate",530),r("cursorScrollMargin",0),r("cursorHeight",1,vn,!0),r("singleCursorHeightPerLine",!0,vn,!0),r("workTime",100),r("workDelay",100),r("flattenSpans",!0,Di,!0),r("addModeClass",!1,Di,!0),r("pollInterval",100),r("undoDepth",200,(function(e,t){return e.doc.history.undoDepth=t})),r("historyEventDelay",1250),r("viewportMargin",10,(function(e){return e.refresh()}),!0),r("maxHighlightLength",1e4,Di,!0),r("moveInputWithCursor",!0,(function(e,t){t||e.display.input.resetPosition()})),r("tabindex",null,(function(e,t){return e.display.input.getField().tabIndex=t||""})),r("autofocus",null),r("direction","ltr",(function(e,t){return e.doc.setDirection(t)}),!0),r("phrases",null)}(Ml),function(e){var t=e.optionHandlers,r=e.helpers={};e.prototype={constructor:e,focus:function(){window.focus(),this.display.input.focus()},setOption:function(e,r){var n=this.options,i=n[e];n[e]==r&&"mode"!=e||(n[e]=r,t.hasOwnProperty(e)&&ei(this,t[e])(this,r,i),pe(this,"optionChange",this,e))},getOption:function(e){return this.options[e]},getDoc:function(){return this.doc},addKeyMap:function(e,t){this.state.keyMaps[t?"push":"unshift"](qo(e))},removeKeyMap:function(e){for(var t=this.state.keyMaps,r=0;rr&&(Ol(this,i.head.line,e,!0),r=i.head.line,n==this.doc.sel.primIndex&&Dn(this));else{var o=i.from(),l=i.to(),s=Math.max(r,o.line);r=Math.min(this.lastLine(),l.line-(l.ch?0:1))+1;for(var a=s;a0&&qi(this.doc,n,new Si(o,u[n].to()),U)}}})),getTokenAt:function(e,t){return yt(this,e,t)},getLineTokens:function(e,t){return yt(this,et(e),t,!0)},getTokenTypeAt:function(e){e=st(this.doc,e);var t,r=ft(this,Xe(this.doc,e.line)),n=0,i=(r.length-1)/2,o=e.ch;if(0==o)t=r[2];else for(;;){var l=n+i>>1;if((l?r[2*l-1]:0)>=o)i=l;else{if(!(r[2*l+1]o&&(e=o,i=!0),n=Xe(this.doc,e)}else n=e;return Vr(this,n,{top:0,left:0},t||"page",r||i).top+(i?this.doc.height-Vt(n):0)},defaultTextHeight:function(){return rn(this.display)},defaultCharWidth:function(){return nn(this.display)},getViewport:function(){return{from:this.display.viewFrom,to:this.display.viewTo}},addWidget:function(e,t,r,n,i){var o,l,s,a=this.display,u=(e=Xr(this,st(this.doc,e))).bottom,c=e.left;if(t.style.position="absolute",t.setAttribute("cm-ignore-events","true"),this.display.input.setUneditable(t),a.sizer.appendChild(t),"over"==n)u=e.top;else if("above"==n||"near"==n){var h=Math.max(a.wrapper.clientHeight,this.doc.height),f=Math.max(a.sizer.clientWidth,a.lineSpace.clientWidth);("above"==n||e.bottom+t.offsetHeight>h)&&e.top>t.offsetHeight?u=e.top-t.offsetHeight:e.bottom+t.offsetHeight<=h&&(u=e.bottom),c+t.offsetWidth>f&&(c=f-t.offsetWidth)}t.style.top=u+"px",t.style.left=t.style.right="","right"==i?(c=a.sizer.clientWidth-t.offsetWidth,t.style.right="0px"):("left"==i?c=0:"middle"==i&&(c=(a.sizer.clientWidth-t.offsetWidth)/2),t.style.left=c+"px"),r&&(o=this,l={left:c,top:u,right:c+t.offsetWidth,bottom:u+t.offsetHeight},null!=(s=On(o,l)).scrollTop&&Pn(o,s.scrollTop),null!=s.scrollLeft&&Rn(o,s.scrollLeft))},triggerOnKeyDown:ti(cl),triggerOnKeyPress:ti(fl),triggerOnKeyUp:hl,triggerOnMouseDown:ti(vl),execCommand:function(e){if(tl.hasOwnProperty(e))return tl[e].call(null,this)},triggerElectric:ti((function(e){Fl(this,e)})),findPosH:function(e,t,r,n){var i=1;t<0&&(i=-1,t=-t);for(var o=st(this.doc,e),l=0;l0&&l(t.charAt(r-1));)--r;for(;n.5||this.options.lineWrapping)&&an(this),pe(this,"refresh",this)})),swapDoc:ti((function(e){var t=this.doc;return t.cm=null,this.state.selectingText&&this.state.selectingText(),Pi(this,e),zr(this),this.display.input.reset(),Wn(this,e.scrollLeft,e.scrollTop),this.curOp.forceScroll=!0,sr(this,"swapDoc",this,t),t})),phrase:function(e){var t=this.options.phrases;return t&&Object.prototype.hasOwnProperty.call(t,e)?t[e]:e},getInputField:function(){return this.display.input.getField()},getWrapperElement:function(){return this.display.wrapper},getScrollerElement:function(){return this.display.scroller},getGutterElement:function(){return this.display.gutters}},ye(e),e.registerHelper=function(t,n,i){r.hasOwnProperty(t)||(r[t]=e[t]={_global:[]}),r[t][n]=i},e.registerGlobalHelper=function(t,n,i,o){e.registerHelper(t,n,o),r[t]._global.push({pred:i,val:o})}}(Ml);var Xl="iter insert remove copy getEditor constructor".split(" ");for(var Yl in Do.prototype)Do.prototype.hasOwnProperty(Yl)&&B(Xl,Yl)<0&&(Ml.prototype[Yl]=function(e){return function(){return e.apply(this.doc,arguments)}}(Do.prototype[Yl]));return ye(Do),Ml.inputStyles={textarea:jl,contenteditable:Bl},Ml.defineMode=function(e){Ml.defaults.mode||"null"==e||(Ml.defaults.mode=e),Re.apply(this,arguments)},Ml.defineMIME=function(e,t){Ee[e]=t},Ml.defineMode("null",(function(){return{token:function(e){return e.skipToEnd()}}})),Ml.defineMIME("text/plain","null"),Ml.defineExtension=function(e,t){Ml.prototype[e]=t},Ml.defineDocExtension=function(e,t){Do.prototype[e]=t},Ml.fromTextArea=function(e,t){if((t=t?R(t):{}).value=e.value,!t.tabindex&&e.tabIndex&&(t.tabindex=e.tabIndex),!t.placeholder&&e.placeholder&&(t.placeholder=e.placeholder),null==t.autofocus){var r=W();t.autofocus=r==e||null!=e.getAttribute("autofocus")&&r==document.body}function n(){e.value=s.getValue()}var i;if(e.form&&(he(e.form,"submit",n),!t.leaveSubmitMethodAlone)){var o=e.form;i=o.submit;try{var l=o.submit=function(){n(),o.submit=i,o.submit(),o.submit=l}}catch(e){}}t.finishInit=function(r){r.save=n,r.getTextArea=function(){return e},r.toTextArea=function(){r.toTextArea=isNaN,n(),e.parentNode.removeChild(r.getWrapperElement()),e.style.display="",e.form&&(de(e.form,"submit",n),t.leaveSubmitMethodAlone||"function"!=typeof e.form.submit||(e.form.submit=i))}},e.style.display="none";var s=Ml((function(t){return e.parentNode.insertBefore(t,e.nextSibling)}),t);return s},function(e){e.off=de,e.on=he,e.wheelEventPixels=wi,e.Doc=Do,e.splitLines=De,e.countColumn=I,e.findColumn=j,e.isWordChar=Q,e.Pass=G,e.signal=pe,e.Line=Xt,e.changeEnd=Ti,e.scrollbarModel=Vn,e.Pos=et,e.cmpPos=tt,e.modes=Pe,e.mimeModes=Ee,e.resolveMode=Ie,e.getMode=ze,e.modeExtensions=Be,e.extendMode=Ge,e.copyState=Ue,e.startState=Ke,e.innerMode=Ve,e.commands=tl,e.keyMap=Vo,e.keyName=$o,e.isModifierKey=Yo,e.lookupKey=Xo,e.normalizeKeyMap=jo,e.StringStream=je,e.SharedTextMarker=Mo,e.TextMarker=ko,e.LineWidget=Co,e.e_preventDefault=be,e.e_stopPropagation=we,e.e_stop=Ce,e.addClass=H,e.contains=D,e.rmClass=T,e.keyNames=zo}(Ml),Ml.version="5.61.1",Ml}()}}]); +//# sourceMappingURL=5747.94ad626.js.map \ No newline at end of file diff --git a/_static/build/5747.94ad626.js.map b/_static/build/5747.94ad626.js.map new file mode 100644 index 0000000..e1a1b22 --- /dev/null +++ b/_static/build/5747.94ad626.js.map @@ -0,0 +1 @@ +{"version":3,"file":"5747.94ad626.js","mappings":"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","sources":["webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/lib/codemirror.js"],"sourcesContent":["// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n// This is CodeMirror (https://codemirror.net), a code editor\n// implemented in JavaScript on top of the browser's DOM.\n//\n// You can find some technical background for some of the code below\n// at http://marijnhaverbeke.nl/blog/#cm-internals .\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = global || self, global.CodeMirror = factory());\n}(this, (function () { 'use strict';\n\n // Kludges for bugs and behavior differences that can't be feature\n // detected are enabled based on userAgent etc sniffing.\n var userAgent = navigator.userAgent;\n var platform = navigator.platform;\n\n var gecko = /gecko\\/\\d/i.test(userAgent);\n var ie_upto10 = /MSIE \\d/.test(userAgent);\n var ie_11up = /Trident\\/(?:[7-9]|\\d{2,})\\..*rv:(\\d+)/.exec(userAgent);\n var edge = /Edge\\/(\\d+)/.exec(userAgent);\n var ie = ie_upto10 || ie_11up || edge;\n var ie_version = ie && (ie_upto10 ? document.documentMode || 6 : +(edge || ie_11up)[1]);\n var webkit = !edge && /WebKit\\//.test(userAgent);\n var qtwebkit = webkit && /Qt\\/\\d+\\.\\d+/.test(userAgent);\n var chrome = !edge && /Chrome\\//.test(userAgent);\n var presto = /Opera\\//.test(userAgent);\n var safari = /Apple Computer/.test(navigator.vendor);\n var mac_geMountainLion = /Mac OS X 1\\d\\D([8-9]|\\d\\d)\\D/.test(userAgent);\n var phantom = /PhantomJS/.test(userAgent);\n\n var ios = safari && (/Mobile\\/\\w+/.test(userAgent) || navigator.maxTouchPoints > 2);\n var android = /Android/.test(userAgent);\n // This is woefully incomplete. Suggestions for alternative methods welcome.\n var mobile = ios || android || /webOS|BlackBerry|Opera Mini|Opera Mobi|IEMobile/i.test(userAgent);\n var mac = ios || /Mac/.test(platform);\n var chromeOS = /\\bCrOS\\b/.test(userAgent);\n var windows = /win/i.test(platform);\n\n var presto_version = presto && userAgent.match(/Version\\/(\\d*\\.\\d*)/);\n if (presto_version) { presto_version = Number(presto_version[1]); }\n if (presto_version && presto_version >= 15) { presto = false; webkit = true; }\n // Some browsers use the wrong event properties to signal cmd/ctrl on OS X\n var flipCtrlCmd = mac && (qtwebkit || presto && (presto_version == null || presto_version < 12.11));\n var captureRightClick = gecko || (ie && ie_version >= 9);\n\n function classTest(cls) { return new RegExp(\"(^|\\\\s)\" + cls + \"(?:$|\\\\s)\\\\s*\") }\n\n var rmClass = function(node, cls) {\n var current = node.className;\n var match = classTest(cls).exec(current);\n if (match) {\n var after = current.slice(match.index + match[0].length);\n node.className = current.slice(0, match.index) + (after ? match[1] + after : \"\");\n }\n };\n\n function removeChildren(e) {\n for (var count = e.childNodes.length; count > 0; --count)\n { e.removeChild(e.firstChild); }\n return e\n }\n\n function removeChildrenAndAdd(parent, e) {\n return removeChildren(parent).appendChild(e)\n }\n\n function elt(tag, content, className, style) {\n var e = document.createElement(tag);\n if (className) { e.className = className; }\n if (style) { e.style.cssText = style; }\n if (typeof content == \"string\") { e.appendChild(document.createTextNode(content)); }\n else if (content) { for (var i = 0; i < content.length; ++i) { e.appendChild(content[i]); } }\n return e\n }\n // wrapper for elt, which removes the elt from the accessibility tree\n function eltP(tag, content, className, style) {\n var e = elt(tag, content, className, style);\n e.setAttribute(\"role\", \"presentation\");\n return e\n }\n\n var range;\n if (document.createRange) { range = function(node, start, end, endNode) {\n var r = document.createRange();\n r.setEnd(endNode || node, end);\n r.setStart(node, start);\n return r\n }; }\n else { range = function(node, start, end) {\n var r = document.body.createTextRange();\n try { r.moveToElementText(node.parentNode); }\n catch(e) { return r }\n r.collapse(true);\n r.moveEnd(\"character\", end);\n r.moveStart(\"character\", start);\n return r\n }; }\n\n function contains(parent, child) {\n if (child.nodeType == 3) // Android browser always returns false when child is a textnode\n { child = child.parentNode; }\n if (parent.contains)\n { return parent.contains(child) }\n do {\n if (child.nodeType == 11) { child = child.host; }\n if (child == parent) { return true }\n } while (child = child.parentNode)\n }\n\n function activeElt() {\n // IE and Edge may throw an \"Unspecified Error\" when accessing document.activeElement.\n // IE < 10 will throw when accessed while the page is loading or in an iframe.\n // IE > 9 and Edge will throw when accessed in an iframe if document.body is unavailable.\n var activeElement;\n try {\n activeElement = document.activeElement;\n } catch(e) {\n activeElement = document.body || null;\n }\n while (activeElement && activeElement.shadowRoot && activeElement.shadowRoot.activeElement)\n { activeElement = activeElement.shadowRoot.activeElement; }\n return activeElement\n }\n\n function addClass(node, cls) {\n var current = node.className;\n if (!classTest(cls).test(current)) { node.className += (current ? \" \" : \"\") + cls; }\n }\n function joinClasses(a, b) {\n var as = a.split(\" \");\n for (var i = 0; i < as.length; i++)\n { if (as[i] && !classTest(as[i]).test(b)) { b += \" \" + as[i]; } }\n return b\n }\n\n var selectInput = function(node) { node.select(); };\n if (ios) // Mobile Safari apparently has a bug where select() is broken.\n { selectInput = function(node) { node.selectionStart = 0; node.selectionEnd = node.value.length; }; }\n else if (ie) // Suppress mysterious IE10 errors\n { selectInput = function(node) { try { node.select(); } catch(_e) {} }; }\n\n function bind(f) {\n var args = Array.prototype.slice.call(arguments, 1);\n return function(){return f.apply(null, args)}\n }\n\n function copyObj(obj, target, overwrite) {\n if (!target) { target = {}; }\n for (var prop in obj)\n { if (obj.hasOwnProperty(prop) && (overwrite !== false || !target.hasOwnProperty(prop)))\n { target[prop] = obj[prop]; } }\n return target\n }\n\n // Counts the column offset in a string, taking tabs into account.\n // Used mostly to find indentation.\n function countColumn(string, end, tabSize, startIndex, startValue) {\n if (end == null) {\n end = string.search(/[^\\s\\u00a0]/);\n if (end == -1) { end = string.length; }\n }\n for (var i = startIndex || 0, n = startValue || 0;;) {\n var nextTab = string.indexOf(\"\\t\", i);\n if (nextTab < 0 || nextTab >= end)\n { return n + (end - i) }\n n += nextTab - i;\n n += tabSize - (n % tabSize);\n i = nextTab + 1;\n }\n }\n\n var Delayed = function() {\n this.id = null;\n this.f = null;\n this.time = 0;\n this.handler = bind(this.onTimeout, this);\n };\n Delayed.prototype.onTimeout = function (self) {\n self.id = 0;\n if (self.time <= +new Date) {\n self.f();\n } else {\n setTimeout(self.handler, self.time - +new Date);\n }\n };\n Delayed.prototype.set = function (ms, f) {\n this.f = f;\n var time = +new Date + ms;\n if (!this.id || time < this.time) {\n clearTimeout(this.id);\n this.id = setTimeout(this.handler, ms);\n this.time = time;\n }\n };\n\n function indexOf(array, elt) {\n for (var i = 0; i < array.length; ++i)\n { if (array[i] == elt) { return i } }\n return -1\n }\n\n // Number of pixels added to scroller and sizer to hide scrollbar\n var scrollerGap = 50;\n\n // Returned or thrown by various protocols to signal 'I'm not\n // handling this'.\n var Pass = {toString: function(){return \"CodeMirror.Pass\"}};\n\n // Reused option objects for setSelection & friends\n var sel_dontScroll = {scroll: false}, sel_mouse = {origin: \"*mouse\"}, sel_move = {origin: \"+move\"};\n\n // The inverse of countColumn -- find the offset that corresponds to\n // a particular column.\n function findColumn(string, goal, tabSize) {\n for (var pos = 0, col = 0;;) {\n var nextTab = string.indexOf(\"\\t\", pos);\n if (nextTab == -1) { nextTab = string.length; }\n var skipped = nextTab - pos;\n if (nextTab == string.length || col + skipped >= goal)\n { return pos + Math.min(skipped, goal - col) }\n col += nextTab - pos;\n col += tabSize - (col % tabSize);\n pos = nextTab + 1;\n if (col >= goal) { return pos }\n }\n }\n\n var spaceStrs = [\"\"];\n function spaceStr(n) {\n while (spaceStrs.length <= n)\n { spaceStrs.push(lst(spaceStrs) + \" \"); }\n return spaceStrs[n]\n }\n\n function lst(arr) { return arr[arr.length-1] }\n\n function map(array, f) {\n var out = [];\n for (var i = 0; i < array.length; i++) { out[i] = f(array[i], i); }\n return out\n }\n\n function insertSorted(array, value, score) {\n var pos = 0, priority = score(value);\n while (pos < array.length && score(array[pos]) <= priority) { pos++; }\n array.splice(pos, 0, value);\n }\n\n function nothing() {}\n\n function createObj(base, props) {\n var inst;\n if (Object.create) {\n inst = Object.create(base);\n } else {\n nothing.prototype = base;\n inst = new nothing();\n }\n if (props) { copyObj(props, inst); }\n return inst\n }\n\n var nonASCIISingleCaseWordChar = /[\\u00df\\u0587\\u0590-\\u05f4\\u0600-\\u06ff\\u3040-\\u309f\\u30a0-\\u30ff\\u3400-\\u4db5\\u4e00-\\u9fcc\\uac00-\\ud7af]/;\n function isWordCharBasic(ch) {\n return /\\w/.test(ch) || ch > \"\\x80\" &&\n (ch.toUpperCase() != ch.toLowerCase() || nonASCIISingleCaseWordChar.test(ch))\n }\n function isWordChar(ch, helper) {\n if (!helper) { return isWordCharBasic(ch) }\n if (helper.source.indexOf(\"\\\\w\") > -1 && isWordCharBasic(ch)) { return true }\n return helper.test(ch)\n }\n\n function isEmpty(obj) {\n for (var n in obj) { if (obj.hasOwnProperty(n) && obj[n]) { return false } }\n return true\n }\n\n // Extending unicode characters. A series of a non-extending char +\n // any number of extending chars is treated as a single unit as far\n // as editing and measuring is concerned. This is not fully correct,\n // since some scripts/fonts/browsers also treat other configurations\n // of code points as a group.\n var extendingChars = /[\\u0300-\\u036f\\u0483-\\u0489\\u0591-\\u05bd\\u05bf\\u05c1\\u05c2\\u05c4\\u05c5\\u05c7\\u0610-\\u061a\\u064b-\\u065e\\u0670\\u06d6-\\u06dc\\u06de-\\u06e4\\u06e7\\u06e8\\u06ea-\\u06ed\\u0711\\u0730-\\u074a\\u07a6-\\u07b0\\u07eb-\\u07f3\\u0816-\\u0819\\u081b-\\u0823\\u0825-\\u0827\\u0829-\\u082d\\u0900-\\u0902\\u093c\\u0941-\\u0948\\u094d\\u0951-\\u0955\\u0962\\u0963\\u0981\\u09bc\\u09be\\u09c1-\\u09c4\\u09cd\\u09d7\\u09e2\\u09e3\\u0a01\\u0a02\\u0a3c\\u0a41\\u0a42\\u0a47\\u0a48\\u0a4b-\\u0a4d\\u0a51\\u0a70\\u0a71\\u0a75\\u0a81\\u0a82\\u0abc\\u0ac1-\\u0ac5\\u0ac7\\u0ac8\\u0acd\\u0ae2\\u0ae3\\u0b01\\u0b3c\\u0b3e\\u0b3f\\u0b41-\\u0b44\\u0b4d\\u0b56\\u0b57\\u0b62\\u0b63\\u0b82\\u0bbe\\u0bc0\\u0bcd\\u0bd7\\u0c3e-\\u0c40\\u0c46-\\u0c48\\u0c4a-\\u0c4d\\u0c55\\u0c56\\u0c62\\u0c63\\u0cbc\\u0cbf\\u0cc2\\u0cc6\\u0ccc\\u0ccd\\u0cd5\\u0cd6\\u0ce2\\u0ce3\\u0d3e\\u0d41-\\u0d44\\u0d4d\\u0d57\\u0d62\\u0d63\\u0dca\\u0dcf\\u0dd2-\\u0dd4\\u0dd6\\u0ddf\\u0e31\\u0e34-\\u0e3a\\u0e47-\\u0e4e\\u0eb1\\u0eb4-\\u0eb9\\u0ebb\\u0ebc\\u0ec8-\\u0ecd\\u0f18\\u0f19\\u0f35\\u0f37\\u0f39\\u0f71-\\u0f7e\\u0f80-\\u0f84\\u0f86\\u0f87\\u0f90-\\u0f97\\u0f99-\\u0fbc\\u0fc6\\u102d-\\u1030\\u1032-\\u1037\\u1039\\u103a\\u103d\\u103e\\u1058\\u1059\\u105e-\\u1060\\u1071-\\u1074\\u1082\\u1085\\u1086\\u108d\\u109d\\u135f\\u1712-\\u1714\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17b7-\\u17bd\\u17c6\\u17c9-\\u17d3\\u17dd\\u180b-\\u180d\\u18a9\\u1920-\\u1922\\u1927\\u1928\\u1932\\u1939-\\u193b\\u1a17\\u1a18\\u1a56\\u1a58-\\u1a5e\\u1a60\\u1a62\\u1a65-\\u1a6c\\u1a73-\\u1a7c\\u1a7f\\u1b00-\\u1b03\\u1b34\\u1b36-\\u1b3a\\u1b3c\\u1b42\\u1b6b-\\u1b73\\u1b80\\u1b81\\u1ba2-\\u1ba5\\u1ba8\\u1ba9\\u1c2c-\\u1c33\\u1c36\\u1c37\\u1cd0-\\u1cd2\\u1cd4-\\u1ce0\\u1ce2-\\u1ce8\\u1ced\\u1dc0-\\u1de6\\u1dfd-\\u1dff\\u200c\\u200d\\u20d0-\\u20f0\\u2cef-\\u2cf1\\u2de0-\\u2dff\\u302a-\\u302f\\u3099\\u309a\\ua66f-\\ua672\\ua67c\\ua67d\\ua6f0\\ua6f1\\ua802\\ua806\\ua80b\\ua825\\ua826\\ua8c4\\ua8e0-\\ua8f1\\ua926-\\ua92d\\ua947-\\ua951\\ua980-\\ua982\\ua9b3\\ua9b6-\\ua9b9\\ua9bc\\uaa29-\\uaa2e\\uaa31\\uaa32\\uaa35\\uaa36\\uaa43\\uaa4c\\uaab0\\uaab2-\\uaab4\\uaab7\\uaab8\\uaabe\\uaabf\\uaac1\\uabe5\\uabe8\\uabed\\udc00-\\udfff\\ufb1e\\ufe00-\\ufe0f\\ufe20-\\ufe26\\uff9e\\uff9f]/;\n function isExtendingChar(ch) { return ch.charCodeAt(0) >= 768 && extendingChars.test(ch) }\n\n // Returns a number from the range [`0`; `str.length`] unless `pos` is outside that range.\n function skipExtendingChars(str, pos, dir) {\n while ((dir < 0 ? pos > 0 : pos < str.length) && isExtendingChar(str.charAt(pos))) { pos += dir; }\n return pos\n }\n\n // Returns the value from the range [`from`; `to`] that satisfies\n // `pred` and is closest to `from`. Assumes that at least `to`\n // satisfies `pred`. Supports `from` being greater than `to`.\n function findFirst(pred, from, to) {\n // At any point we are certain `to` satisfies `pred`, don't know\n // whether `from` does.\n var dir = from > to ? -1 : 1;\n for (;;) {\n if (from == to) { return from }\n var midF = (from + to) / 2, mid = dir < 0 ? Math.ceil(midF) : Math.floor(midF);\n if (mid == from) { return pred(mid) ? from : to }\n if (pred(mid)) { to = mid; }\n else { from = mid + dir; }\n }\n }\n\n // BIDI HELPERS\n\n function iterateBidiSections(order, from, to, f) {\n if (!order) { return f(from, to, \"ltr\", 0) }\n var found = false;\n for (var i = 0; i < order.length; ++i) {\n var part = order[i];\n if (part.from < to && part.to > from || from == to && part.to == from) {\n f(Math.max(part.from, from), Math.min(part.to, to), part.level == 1 ? \"rtl\" : \"ltr\", i);\n found = true;\n }\n }\n if (!found) { f(from, to, \"ltr\"); }\n }\n\n var bidiOther = null;\n function getBidiPartAt(order, ch, sticky) {\n var found;\n bidiOther = null;\n for (var i = 0; i < order.length; ++i) {\n var cur = order[i];\n if (cur.from < ch && cur.to > ch) { return i }\n if (cur.to == ch) {\n if (cur.from != cur.to && sticky == \"before\") { found = i; }\n else { bidiOther = i; }\n }\n if (cur.from == ch) {\n if (cur.from != cur.to && sticky != \"before\") { found = i; }\n else { bidiOther = i; }\n }\n }\n return found != null ? found : bidiOther\n }\n\n // Bidirectional ordering algorithm\n // See http://unicode.org/reports/tr9/tr9-13.html for the algorithm\n // that this (partially) implements.\n\n // One-char codes used for character types:\n // L (L): Left-to-Right\n // R (R): Right-to-Left\n // r (AL): Right-to-Left Arabic\n // 1 (EN): European Number\n // + (ES): European Number Separator\n // % (ET): European Number Terminator\n // n (AN): Arabic Number\n // , (CS): Common Number Separator\n // m (NSM): Non-Spacing Mark\n // b (BN): Boundary Neutral\n // s (B): Paragraph Separator\n // t (S): Segment Separator\n // w (WS): Whitespace\n // N (ON): Other Neutrals\n\n // Returns null if characters are ordered as they appear\n // (left-to-right), or an array of sections ({from, to, level}\n // objects) in the order in which they occur visually.\n var bidiOrdering = (function() {\n // Character types for codepoints 0 to 0xff\n var lowTypes = \"bbbbbbbbbtstwsbbbbbbbbbbbbbbssstwNN%%%NNNNNN,N,N1111111111NNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNbbbbbbsbbbbbbbbbbbbbbbbbbbbbbbbbb,N%%%%NNNNLNNNNN%%11NLNNN1LNNNNNLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLN\";\n // Character types for codepoints 0x600 to 0x6f9\n var arabicTypes = \"nnnnnnNNr%%r,rNNmmmmmmmmmmmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnn%nnrrrmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmnNmmmmmmrrmmNmmmmrr1111111111\";\n function charType(code) {\n if (code <= 0xf7) { return lowTypes.charAt(code) }\n else if (0x590 <= code && code <= 0x5f4) { return \"R\" }\n else if (0x600 <= code && code <= 0x6f9) { return arabicTypes.charAt(code - 0x600) }\n else if (0x6ee <= code && code <= 0x8ac) { return \"r\" }\n else if (0x2000 <= code && code <= 0x200b) { return \"w\" }\n else if (code == 0x200c) { return \"b\" }\n else { return \"L\" }\n }\n\n var bidiRE = /[\\u0590-\\u05f4\\u0600-\\u06ff\\u0700-\\u08ac]/;\n var isNeutral = /[stwN]/, isStrong = /[LRr]/, countsAsLeft = /[Lb1n]/, countsAsNum = /[1n]/;\n\n function BidiSpan(level, from, to) {\n this.level = level;\n this.from = from; this.to = to;\n }\n\n return function(str, direction) {\n var outerType = direction == \"ltr\" ? \"L\" : \"R\";\n\n if (str.length == 0 || direction == \"ltr\" && !bidiRE.test(str)) { return false }\n var len = str.length, types = [];\n for (var i = 0; i < len; ++i)\n { types.push(charType(str.charCodeAt(i))); }\n\n // W1. Examine each non-spacing mark (NSM) in the level run, and\n // change the type of the NSM to the type of the previous\n // character. If the NSM is at the start of the level run, it will\n // get the type of sor.\n for (var i$1 = 0, prev = outerType; i$1 < len; ++i$1) {\n var type = types[i$1];\n if (type == \"m\") { types[i$1] = prev; }\n else { prev = type; }\n }\n\n // W2. Search backwards from each instance of a European number\n // until the first strong type (R, L, AL, or sor) is found. If an\n // AL is found, change the type of the European number to Arabic\n // number.\n // W3. Change all ALs to R.\n for (var i$2 = 0, cur = outerType; i$2 < len; ++i$2) {\n var type$1 = types[i$2];\n if (type$1 == \"1\" && cur == \"r\") { types[i$2] = \"n\"; }\n else if (isStrong.test(type$1)) { cur = type$1; if (type$1 == \"r\") { types[i$2] = \"R\"; } }\n }\n\n // W4. A single European separator between two European numbers\n // changes to a European number. A single common separator between\n // two numbers of the same type changes to that type.\n for (var i$3 = 1, prev$1 = types[0]; i$3 < len - 1; ++i$3) {\n var type$2 = types[i$3];\n if (type$2 == \"+\" && prev$1 == \"1\" && types[i$3+1] == \"1\") { types[i$3] = \"1\"; }\n else if (type$2 == \",\" && prev$1 == types[i$3+1] &&\n (prev$1 == \"1\" || prev$1 == \"n\")) { types[i$3] = prev$1; }\n prev$1 = type$2;\n }\n\n // W5. A sequence of European terminators adjacent to European\n // numbers changes to all European numbers.\n // W6. Otherwise, separators and terminators change to Other\n // Neutral.\n for (var i$4 = 0; i$4 < len; ++i$4) {\n var type$3 = types[i$4];\n if (type$3 == \",\") { types[i$4] = \"N\"; }\n else if (type$3 == \"%\") {\n var end = (void 0);\n for (end = i$4 + 1; end < len && types[end] == \"%\"; ++end) {}\n var replace = (i$4 && types[i$4-1] == \"!\") || (end < len && types[end] == \"1\") ? \"1\" : \"N\";\n for (var j = i$4; j < end; ++j) { types[j] = replace; }\n i$4 = end - 1;\n }\n }\n\n // W7. Search backwards from each instance of a European number\n // until the first strong type (R, L, or sor) is found. If an L is\n // found, then change the type of the European number to L.\n for (var i$5 = 0, cur$1 = outerType; i$5 < len; ++i$5) {\n var type$4 = types[i$5];\n if (cur$1 == \"L\" && type$4 == \"1\") { types[i$5] = \"L\"; }\n else if (isStrong.test(type$4)) { cur$1 = type$4; }\n }\n\n // N1. A sequence of neutrals takes the direction of the\n // surrounding strong text if the text on both sides has the same\n // direction. European and Arabic numbers act as if they were R in\n // terms of their influence on neutrals. Start-of-level-run (sor)\n // and end-of-level-run (eor) are used at level run boundaries.\n // N2. Any remaining neutrals take the embedding direction.\n for (var i$6 = 0; i$6 < len; ++i$6) {\n if (isNeutral.test(types[i$6])) {\n var end$1 = (void 0);\n for (end$1 = i$6 + 1; end$1 < len && isNeutral.test(types[end$1]); ++end$1) {}\n var before = (i$6 ? types[i$6-1] : outerType) == \"L\";\n var after = (end$1 < len ? types[end$1] : outerType) == \"L\";\n var replace$1 = before == after ? (before ? \"L\" : \"R\") : outerType;\n for (var j$1 = i$6; j$1 < end$1; ++j$1) { types[j$1] = replace$1; }\n i$6 = end$1 - 1;\n }\n }\n\n // Here we depart from the documented algorithm, in order to avoid\n // building up an actual levels array. Since there are only three\n // levels (0, 1, 2) in an implementation that doesn't take\n // explicit embedding into account, we can build up the order on\n // the fly, without following the level-based algorithm.\n var order = [], m;\n for (var i$7 = 0; i$7 < len;) {\n if (countsAsLeft.test(types[i$7])) {\n var start = i$7;\n for (++i$7; i$7 < len && countsAsLeft.test(types[i$7]); ++i$7) {}\n order.push(new BidiSpan(0, start, i$7));\n } else {\n var pos = i$7, at = order.length, isRTL = direction == \"rtl\" ? 1 : 0;\n for (++i$7; i$7 < len && types[i$7] != \"L\"; ++i$7) {}\n for (var j$2 = pos; j$2 < i$7;) {\n if (countsAsNum.test(types[j$2])) {\n if (pos < j$2) { order.splice(at, 0, new BidiSpan(1, pos, j$2)); at += isRTL; }\n var nstart = j$2;\n for (++j$2; j$2 < i$7 && countsAsNum.test(types[j$2]); ++j$2) {}\n order.splice(at, 0, new BidiSpan(2, nstart, j$2));\n at += isRTL;\n pos = j$2;\n } else { ++j$2; }\n }\n if (pos < i$7) { order.splice(at, 0, new BidiSpan(1, pos, i$7)); }\n }\n }\n if (direction == \"ltr\") {\n if (order[0].level == 1 && (m = str.match(/^\\s+/))) {\n order[0].from = m[0].length;\n order.unshift(new BidiSpan(0, 0, m[0].length));\n }\n if (lst(order).level == 1 && (m = str.match(/\\s+$/))) {\n lst(order).to -= m[0].length;\n order.push(new BidiSpan(0, len - m[0].length, len));\n }\n }\n\n return direction == \"rtl\" ? order.reverse() : order\n }\n })();\n\n // Get the bidi ordering for the given line (and cache it). Returns\n // false for lines that are fully left-to-right, and an array of\n // BidiSpan objects otherwise.\n function getOrder(line, direction) {\n var order = line.order;\n if (order == null) { order = line.order = bidiOrdering(line.text, direction); }\n return order\n }\n\n // EVENT HANDLING\n\n // Lightweight event framework. on/off also work on DOM nodes,\n // registering native DOM handlers.\n\n var noHandlers = [];\n\n var on = function(emitter, type, f) {\n if (emitter.addEventListener) {\n emitter.addEventListener(type, f, false);\n } else if (emitter.attachEvent) {\n emitter.attachEvent(\"on\" + type, f);\n } else {\n var map = emitter._handlers || (emitter._handlers = {});\n map[type] = (map[type] || noHandlers).concat(f);\n }\n };\n\n function getHandlers(emitter, type) {\n return emitter._handlers && emitter._handlers[type] || noHandlers\n }\n\n function off(emitter, type, f) {\n if (emitter.removeEventListener) {\n emitter.removeEventListener(type, f, false);\n } else if (emitter.detachEvent) {\n emitter.detachEvent(\"on\" + type, f);\n } else {\n var map = emitter._handlers, arr = map && map[type];\n if (arr) {\n var index = indexOf(arr, f);\n if (index > -1)\n { map[type] = arr.slice(0, index).concat(arr.slice(index + 1)); }\n }\n }\n }\n\n function signal(emitter, type /*, values...*/) {\n var handlers = getHandlers(emitter, type);\n if (!handlers.length) { return }\n var args = Array.prototype.slice.call(arguments, 2);\n for (var i = 0; i < handlers.length; ++i) { handlers[i].apply(null, args); }\n }\n\n // The DOM events that CodeMirror handles can be overridden by\n // registering a (non-DOM) handler on the editor for the event name,\n // and preventDefault-ing the event in that handler.\n function signalDOMEvent(cm, e, override) {\n if (typeof e == \"string\")\n { e = {type: e, preventDefault: function() { this.defaultPrevented = true; }}; }\n signal(cm, override || e.type, cm, e);\n return e_defaultPrevented(e) || e.codemirrorIgnore\n }\n\n function signalCursorActivity(cm) {\n var arr = cm._handlers && cm._handlers.cursorActivity;\n if (!arr) { return }\n var set = cm.curOp.cursorActivityHandlers || (cm.curOp.cursorActivityHandlers = []);\n for (var i = 0; i < arr.length; ++i) { if (indexOf(set, arr[i]) == -1)\n { set.push(arr[i]); } }\n }\n\n function hasHandler(emitter, type) {\n return getHandlers(emitter, type).length > 0\n }\n\n // Add on and off methods to a constructor's prototype, to make\n // registering events on such objects more convenient.\n function eventMixin(ctor) {\n ctor.prototype.on = function(type, f) {on(this, type, f);};\n ctor.prototype.off = function(type, f) {off(this, type, f);};\n }\n\n // Due to the fact that we still support jurassic IE versions, some\n // compatibility wrappers are needed.\n\n function e_preventDefault(e) {\n if (e.preventDefault) { e.preventDefault(); }\n else { e.returnValue = false; }\n }\n function e_stopPropagation(e) {\n if (e.stopPropagation) { e.stopPropagation(); }\n else { e.cancelBubble = true; }\n }\n function e_defaultPrevented(e) {\n return e.defaultPrevented != null ? e.defaultPrevented : e.returnValue == false\n }\n function e_stop(e) {e_preventDefault(e); e_stopPropagation(e);}\n\n function e_target(e) {return e.target || e.srcElement}\n function e_button(e) {\n var b = e.which;\n if (b == null) {\n if (e.button & 1) { b = 1; }\n else if (e.button & 2) { b = 3; }\n else if (e.button & 4) { b = 2; }\n }\n if (mac && e.ctrlKey && b == 1) { b = 3; }\n return b\n }\n\n // Detect drag-and-drop\n var dragAndDrop = function() {\n // There is *some* kind of drag-and-drop support in IE6-8, but I\n // couldn't get it to work yet.\n if (ie && ie_version < 9) { return false }\n var div = elt('div');\n return \"draggable\" in div || \"dragDrop\" in div\n }();\n\n var zwspSupported;\n function zeroWidthElement(measure) {\n if (zwspSupported == null) {\n var test = elt(\"span\", \"\\u200b\");\n removeChildrenAndAdd(measure, elt(\"span\", [test, document.createTextNode(\"x\")]));\n if (measure.firstChild.offsetHeight != 0)\n { zwspSupported = test.offsetWidth <= 1 && test.offsetHeight > 2 && !(ie && ie_version < 8); }\n }\n var node = zwspSupported ? elt(\"span\", \"\\u200b\") :\n elt(\"span\", \"\\u00a0\", null, \"display: inline-block; width: 1px; margin-right: -1px\");\n node.setAttribute(\"cm-text\", \"\");\n return node\n }\n\n // Feature-detect IE's crummy client rect reporting for bidi text\n var badBidiRects;\n function hasBadBidiRects(measure) {\n if (badBidiRects != null) { return badBidiRects }\n var txt = removeChildrenAndAdd(measure, document.createTextNode(\"A\\u062eA\"));\n var r0 = range(txt, 0, 1).getBoundingClientRect();\n var r1 = range(txt, 1, 2).getBoundingClientRect();\n removeChildren(measure);\n if (!r0 || r0.left == r0.right) { return false } // Safari returns null in some cases (#2780)\n return badBidiRects = (r1.right - r0.right < 3)\n }\n\n // See if \"\".split is the broken IE version, if so, provide an\n // alternative way to split lines.\n var splitLinesAuto = \"\\n\\nb\".split(/\\n/).length != 3 ? function (string) {\n var pos = 0, result = [], l = string.length;\n while (pos <= l) {\n var nl = string.indexOf(\"\\n\", pos);\n if (nl == -1) { nl = string.length; }\n var line = string.slice(pos, string.charAt(nl - 1) == \"\\r\" ? nl - 1 : nl);\n var rt = line.indexOf(\"\\r\");\n if (rt != -1) {\n result.push(line.slice(0, rt));\n pos += rt + 1;\n } else {\n result.push(line);\n pos = nl + 1;\n }\n }\n return result\n } : function (string) { return string.split(/\\r\\n?|\\n/); };\n\n var hasSelection = window.getSelection ? function (te) {\n try { return te.selectionStart != te.selectionEnd }\n catch(e) { return false }\n } : function (te) {\n var range;\n try {range = te.ownerDocument.selection.createRange();}\n catch(e) {}\n if (!range || range.parentElement() != te) { return false }\n return range.compareEndPoints(\"StartToEnd\", range) != 0\n };\n\n var hasCopyEvent = (function () {\n var e = elt(\"div\");\n if (\"oncopy\" in e) { return true }\n e.setAttribute(\"oncopy\", \"return;\");\n return typeof e.oncopy == \"function\"\n })();\n\n var badZoomedRects = null;\n function hasBadZoomedRects(measure) {\n if (badZoomedRects != null) { return badZoomedRects }\n var node = removeChildrenAndAdd(measure, elt(\"span\", \"x\"));\n var normal = node.getBoundingClientRect();\n var fromRange = range(node, 0, 1).getBoundingClientRect();\n return badZoomedRects = Math.abs(normal.left - fromRange.left) > 1\n }\n\n // Known modes, by name and by MIME\n var modes = {}, mimeModes = {};\n\n // Extra arguments are stored as the mode's dependencies, which is\n // used by (legacy) mechanisms like loadmode.js to automatically\n // load a mode. (Preferred mechanism is the require/define calls.)\n function defineMode(name, mode) {\n if (arguments.length > 2)\n { mode.dependencies = Array.prototype.slice.call(arguments, 2); }\n modes[name] = mode;\n }\n\n function defineMIME(mime, spec) {\n mimeModes[mime] = spec;\n }\n\n // Given a MIME type, a {name, ...options} config object, or a name\n // string, return a mode config object.\n function resolveMode(spec) {\n if (typeof spec == \"string\" && mimeModes.hasOwnProperty(spec)) {\n spec = mimeModes[spec];\n } else if (spec && typeof spec.name == \"string\" && mimeModes.hasOwnProperty(spec.name)) {\n var found = mimeModes[spec.name];\n if (typeof found == \"string\") { found = {name: found}; }\n spec = createObj(found, spec);\n spec.name = found.name;\n } else if (typeof spec == \"string\" && /^[\\w\\-]+\\/[\\w\\-]+\\+xml$/.test(spec)) {\n return resolveMode(\"application/xml\")\n } else if (typeof spec == \"string\" && /^[\\w\\-]+\\/[\\w\\-]+\\+json$/.test(spec)) {\n return resolveMode(\"application/json\")\n }\n if (typeof spec == \"string\") { return {name: spec} }\n else { return spec || {name: \"null\"} }\n }\n\n // Given a mode spec (anything that resolveMode accepts), find and\n // initialize an actual mode object.\n function getMode(options, spec) {\n spec = resolveMode(spec);\n var mfactory = modes[spec.name];\n if (!mfactory) { return getMode(options, \"text/plain\") }\n var modeObj = mfactory(options, spec);\n if (modeExtensions.hasOwnProperty(spec.name)) {\n var exts = modeExtensions[spec.name];\n for (var prop in exts) {\n if (!exts.hasOwnProperty(prop)) { continue }\n if (modeObj.hasOwnProperty(prop)) { modeObj[\"_\" + prop] = modeObj[prop]; }\n modeObj[prop] = exts[prop];\n }\n }\n modeObj.name = spec.name;\n if (spec.helperType) { modeObj.helperType = spec.helperType; }\n if (spec.modeProps) { for (var prop$1 in spec.modeProps)\n { modeObj[prop$1] = spec.modeProps[prop$1]; } }\n\n return modeObj\n }\n\n // This can be used to attach properties to mode objects from\n // outside the actual mode definition.\n var modeExtensions = {};\n function extendMode(mode, properties) {\n var exts = modeExtensions.hasOwnProperty(mode) ? modeExtensions[mode] : (modeExtensions[mode] = {});\n copyObj(properties, exts);\n }\n\n function copyState(mode, state) {\n if (state === true) { return state }\n if (mode.copyState) { return mode.copyState(state) }\n var nstate = {};\n for (var n in state) {\n var val = state[n];\n if (val instanceof Array) { val = val.concat([]); }\n nstate[n] = val;\n }\n return nstate\n }\n\n // Given a mode and a state (for that mode), find the inner mode and\n // state at the position that the state refers to.\n function innerMode(mode, state) {\n var info;\n while (mode.innerMode) {\n info = mode.innerMode(state);\n if (!info || info.mode == mode) { break }\n state = info.state;\n mode = info.mode;\n }\n return info || {mode: mode, state: state}\n }\n\n function startState(mode, a1, a2) {\n return mode.startState ? mode.startState(a1, a2) : true\n }\n\n // STRING STREAM\n\n // Fed to the mode parsers, provides helper functions to make\n // parsers more succinct.\n\n var StringStream = function(string, tabSize, lineOracle) {\n this.pos = this.start = 0;\n this.string = string;\n this.tabSize = tabSize || 8;\n this.lastColumnPos = this.lastColumnValue = 0;\n this.lineStart = 0;\n this.lineOracle = lineOracle;\n };\n\n StringStream.prototype.eol = function () {return this.pos >= this.string.length};\n StringStream.prototype.sol = function () {return this.pos == this.lineStart};\n StringStream.prototype.peek = function () {return this.string.charAt(this.pos) || undefined};\n StringStream.prototype.next = function () {\n if (this.pos < this.string.length)\n { return this.string.charAt(this.pos++) }\n };\n StringStream.prototype.eat = function (match) {\n var ch = this.string.charAt(this.pos);\n var ok;\n if (typeof match == \"string\") { ok = ch == match; }\n else { ok = ch && (match.test ? match.test(ch) : match(ch)); }\n if (ok) {++this.pos; return ch}\n };\n StringStream.prototype.eatWhile = function (match) {\n var start = this.pos;\n while (this.eat(match)){}\n return this.pos > start\n };\n StringStream.prototype.eatSpace = function () {\n var start = this.pos;\n while (/[\\s\\u00a0]/.test(this.string.charAt(this.pos))) { ++this.pos; }\n return this.pos > start\n };\n StringStream.prototype.skipToEnd = function () {this.pos = this.string.length;};\n StringStream.prototype.skipTo = function (ch) {\n var found = this.string.indexOf(ch, this.pos);\n if (found > -1) {this.pos = found; return true}\n };\n StringStream.prototype.backUp = function (n) {this.pos -= n;};\n StringStream.prototype.column = function () {\n if (this.lastColumnPos < this.start) {\n this.lastColumnValue = countColumn(this.string, this.start, this.tabSize, this.lastColumnPos, this.lastColumnValue);\n this.lastColumnPos = this.start;\n }\n return this.lastColumnValue - (this.lineStart ? countColumn(this.string, this.lineStart, this.tabSize) : 0)\n };\n StringStream.prototype.indentation = function () {\n return countColumn(this.string, null, this.tabSize) -\n (this.lineStart ? countColumn(this.string, this.lineStart, this.tabSize) : 0)\n };\n StringStream.prototype.match = function (pattern, consume, caseInsensitive) {\n if (typeof pattern == \"string\") {\n var cased = function (str) { return caseInsensitive ? str.toLowerCase() : str; };\n var substr = this.string.substr(this.pos, pattern.length);\n if (cased(substr) == cased(pattern)) {\n if (consume !== false) { this.pos += pattern.length; }\n return true\n }\n } else {\n var match = this.string.slice(this.pos).match(pattern);\n if (match && match.index > 0) { return null }\n if (match && consume !== false) { this.pos += match[0].length; }\n return match\n }\n };\n StringStream.prototype.current = function (){return this.string.slice(this.start, this.pos)};\n StringStream.prototype.hideFirstChars = function (n, inner) {\n this.lineStart += n;\n try { return inner() }\n finally { this.lineStart -= n; }\n };\n StringStream.prototype.lookAhead = function (n) {\n var oracle = this.lineOracle;\n return oracle && oracle.lookAhead(n)\n };\n StringStream.prototype.baseToken = function () {\n var oracle = this.lineOracle;\n return oracle && oracle.baseToken(this.pos)\n };\n\n // Find the line object corresponding to the given line number.\n function getLine(doc, n) {\n n -= doc.first;\n if (n < 0 || n >= doc.size) { throw new Error(\"There is no line \" + (n + doc.first) + \" in the document.\") }\n var chunk = doc;\n while (!chunk.lines) {\n for (var i = 0;; ++i) {\n var child = chunk.children[i], sz = child.chunkSize();\n if (n < sz) { chunk = child; break }\n n -= sz;\n }\n }\n return chunk.lines[n]\n }\n\n // Get the part of a document between two positions, as an array of\n // strings.\n function getBetween(doc, start, end) {\n var out = [], n = start.line;\n doc.iter(start.line, end.line + 1, function (line) {\n var text = line.text;\n if (n == end.line) { text = text.slice(0, end.ch); }\n if (n == start.line) { text = text.slice(start.ch); }\n out.push(text);\n ++n;\n });\n return out\n }\n // Get the lines between from and to, as array of strings.\n function getLines(doc, from, to) {\n var out = [];\n doc.iter(from, to, function (line) { out.push(line.text); }); // iter aborts when callback returns truthy value\n return out\n }\n\n // Update the height of a line, propagating the height change\n // upwards to parent nodes.\n function updateLineHeight(line, height) {\n var diff = height - line.height;\n if (diff) { for (var n = line; n; n = n.parent) { n.height += diff; } }\n }\n\n // Given a line object, find its line number by walking up through\n // its parent links.\n function lineNo(line) {\n if (line.parent == null) { return null }\n var cur = line.parent, no = indexOf(cur.lines, line);\n for (var chunk = cur.parent; chunk; cur = chunk, chunk = chunk.parent) {\n for (var i = 0;; ++i) {\n if (chunk.children[i] == cur) { break }\n no += chunk.children[i].chunkSize();\n }\n }\n return no + cur.first\n }\n\n // Find the line at the given vertical position, using the height\n // information in the document tree.\n function lineAtHeight(chunk, h) {\n var n = chunk.first;\n outer: do {\n for (var i$1 = 0; i$1 < chunk.children.length; ++i$1) {\n var child = chunk.children[i$1], ch = child.height;\n if (h < ch) { chunk = child; continue outer }\n h -= ch;\n n += child.chunkSize();\n }\n return n\n } while (!chunk.lines)\n var i = 0;\n for (; i < chunk.lines.length; ++i) {\n var line = chunk.lines[i], lh = line.height;\n if (h < lh) { break }\n h -= lh;\n }\n return n + i\n }\n\n function isLine(doc, l) {return l >= doc.first && l < doc.first + doc.size}\n\n function lineNumberFor(options, i) {\n return String(options.lineNumberFormatter(i + options.firstLineNumber))\n }\n\n // A Pos instance represents a position within the text.\n function Pos(line, ch, sticky) {\n if ( sticky === void 0 ) sticky = null;\n\n if (!(this instanceof Pos)) { return new Pos(line, ch, sticky) }\n this.line = line;\n this.ch = ch;\n this.sticky = sticky;\n }\n\n // Compare two positions, return 0 if they are the same, a negative\n // number when a is less, and a positive number otherwise.\n function cmp(a, b) { return a.line - b.line || a.ch - b.ch }\n\n function equalCursorPos(a, b) { return a.sticky == b.sticky && cmp(a, b) == 0 }\n\n function copyPos(x) {return Pos(x.line, x.ch)}\n function maxPos(a, b) { return cmp(a, b) < 0 ? b : a }\n function minPos(a, b) { return cmp(a, b) < 0 ? a : b }\n\n // Most of the external API clips given positions to make sure they\n // actually exist within the document.\n function clipLine(doc, n) {return Math.max(doc.first, Math.min(n, doc.first + doc.size - 1))}\n function clipPos(doc, pos) {\n if (pos.line < doc.first) { return Pos(doc.first, 0) }\n var last = doc.first + doc.size - 1;\n if (pos.line > last) { return Pos(last, getLine(doc, last).text.length) }\n return clipToLen(pos, getLine(doc, pos.line).text.length)\n }\n function clipToLen(pos, linelen) {\n var ch = pos.ch;\n if (ch == null || ch > linelen) { return Pos(pos.line, linelen) }\n else if (ch < 0) { return Pos(pos.line, 0) }\n else { return pos }\n }\n function clipPosArray(doc, array) {\n var out = [];\n for (var i = 0; i < array.length; i++) { out[i] = clipPos(doc, array[i]); }\n return out\n }\n\n var SavedContext = function(state, lookAhead) {\n this.state = state;\n this.lookAhead = lookAhead;\n };\n\n var Context = function(doc, state, line, lookAhead) {\n this.state = state;\n this.doc = doc;\n this.line = line;\n this.maxLookAhead = lookAhead || 0;\n this.baseTokens = null;\n this.baseTokenPos = 1;\n };\n\n Context.prototype.lookAhead = function (n) {\n var line = this.doc.getLine(this.line + n);\n if (line != null && n > this.maxLookAhead) { this.maxLookAhead = n; }\n return line\n };\n\n Context.prototype.baseToken = function (n) {\n if (!this.baseTokens) { return null }\n while (this.baseTokens[this.baseTokenPos] <= n)\n { this.baseTokenPos += 2; }\n var type = this.baseTokens[this.baseTokenPos + 1];\n return {type: type && type.replace(/( |^)overlay .*/, \"\"),\n size: this.baseTokens[this.baseTokenPos] - n}\n };\n\n Context.prototype.nextLine = function () {\n this.line++;\n if (this.maxLookAhead > 0) { this.maxLookAhead--; }\n };\n\n Context.fromSaved = function (doc, saved, line) {\n if (saved instanceof SavedContext)\n { return new Context(doc, copyState(doc.mode, saved.state), line, saved.lookAhead) }\n else\n { return new Context(doc, copyState(doc.mode, saved), line) }\n };\n\n Context.prototype.save = function (copy) {\n var state = copy !== false ? copyState(this.doc.mode, this.state) : this.state;\n return this.maxLookAhead > 0 ? new SavedContext(state, this.maxLookAhead) : state\n };\n\n\n // Compute a style array (an array starting with a mode generation\n // -- for invalidation -- followed by pairs of end positions and\n // style strings), which is used to highlight the tokens on the\n // line.\n function highlightLine(cm, line, context, forceToEnd) {\n // A styles array always starts with a number identifying the\n // mode/overlays that it is based on (for easy invalidation).\n var st = [cm.state.modeGen], lineClasses = {};\n // Compute the base array of styles\n runMode(cm, line.text, cm.doc.mode, context, function (end, style) { return st.push(end, style); },\n lineClasses, forceToEnd);\n var state = context.state;\n\n // Run overlays, adjust style array.\n var loop = function ( o ) {\n context.baseTokens = st;\n var overlay = cm.state.overlays[o], i = 1, at = 0;\n context.state = true;\n runMode(cm, line.text, overlay.mode, context, function (end, style) {\n var start = i;\n // Ensure there's a token end at the current position, and that i points at it\n while (at < end) {\n var i_end = st[i];\n if (i_end > end)\n { st.splice(i, 1, end, st[i+1], i_end); }\n i += 2;\n at = Math.min(end, i_end);\n }\n if (!style) { return }\n if (overlay.opaque) {\n st.splice(start, i - start, end, \"overlay \" + style);\n i = start + 2;\n } else {\n for (; start < i; start += 2) {\n var cur = st[start+1];\n st[start+1] = (cur ? cur + \" \" : \"\") + \"overlay \" + style;\n }\n }\n }, lineClasses);\n context.state = state;\n context.baseTokens = null;\n context.baseTokenPos = 1;\n };\n\n for (var o = 0; o < cm.state.overlays.length; ++o) loop( o );\n\n return {styles: st, classes: lineClasses.bgClass || lineClasses.textClass ? lineClasses : null}\n }\n\n function getLineStyles(cm, line, updateFrontier) {\n if (!line.styles || line.styles[0] != cm.state.modeGen) {\n var context = getContextBefore(cm, lineNo(line));\n var resetState = line.text.length > cm.options.maxHighlightLength && copyState(cm.doc.mode, context.state);\n var result = highlightLine(cm, line, context);\n if (resetState) { context.state = resetState; }\n line.stateAfter = context.save(!resetState);\n line.styles = result.styles;\n if (result.classes) { line.styleClasses = result.classes; }\n else if (line.styleClasses) { line.styleClasses = null; }\n if (updateFrontier === cm.doc.highlightFrontier)\n { cm.doc.modeFrontier = Math.max(cm.doc.modeFrontier, ++cm.doc.highlightFrontier); }\n }\n return line.styles\n }\n\n function getContextBefore(cm, n, precise) {\n var doc = cm.doc, display = cm.display;\n if (!doc.mode.startState) { return new Context(doc, true, n) }\n var start = findStartLine(cm, n, precise);\n var saved = start > doc.first && getLine(doc, start - 1).stateAfter;\n var context = saved ? Context.fromSaved(doc, saved, start) : new Context(doc, startState(doc.mode), start);\n\n doc.iter(start, n, function (line) {\n processLine(cm, line.text, context);\n var pos = context.line;\n line.stateAfter = pos == n - 1 || pos % 5 == 0 || pos >= display.viewFrom && pos < display.viewTo ? context.save() : null;\n context.nextLine();\n });\n if (precise) { doc.modeFrontier = context.line; }\n return context\n }\n\n // Lightweight form of highlight -- proceed over this line and\n // update state, but don't save a style array. Used for lines that\n // aren't currently visible.\n function processLine(cm, text, context, startAt) {\n var mode = cm.doc.mode;\n var stream = new StringStream(text, cm.options.tabSize, context);\n stream.start = stream.pos = startAt || 0;\n if (text == \"\") { callBlankLine(mode, context.state); }\n while (!stream.eol()) {\n readToken(mode, stream, context.state);\n stream.start = stream.pos;\n }\n }\n\n function callBlankLine(mode, state) {\n if (mode.blankLine) { return mode.blankLine(state) }\n if (!mode.innerMode) { return }\n var inner = innerMode(mode, state);\n if (inner.mode.blankLine) { return inner.mode.blankLine(inner.state) }\n }\n\n function readToken(mode, stream, state, inner) {\n for (var i = 0; i < 10; i++) {\n if (inner) { inner[0] = innerMode(mode, state).mode; }\n var style = mode.token(stream, state);\n if (stream.pos > stream.start) { return style }\n }\n throw new Error(\"Mode \" + mode.name + \" failed to advance stream.\")\n }\n\n var Token = function(stream, type, state) {\n this.start = stream.start; this.end = stream.pos;\n this.string = stream.current();\n this.type = type || null;\n this.state = state;\n };\n\n // Utility for getTokenAt and getLineTokens\n function takeToken(cm, pos, precise, asArray) {\n var doc = cm.doc, mode = doc.mode, style;\n pos = clipPos(doc, pos);\n var line = getLine(doc, pos.line), context = getContextBefore(cm, pos.line, precise);\n var stream = new StringStream(line.text, cm.options.tabSize, context), tokens;\n if (asArray) { tokens = []; }\n while ((asArray || stream.pos < pos.ch) && !stream.eol()) {\n stream.start = stream.pos;\n style = readToken(mode, stream, context.state);\n if (asArray) { tokens.push(new Token(stream, style, copyState(doc.mode, context.state))); }\n }\n return asArray ? tokens : new Token(stream, style, context.state)\n }\n\n function extractLineClasses(type, output) {\n if (type) { for (;;) {\n var lineClass = type.match(/(?:^|\\s+)line-(background-)?(\\S+)/);\n if (!lineClass) { break }\n type = type.slice(0, lineClass.index) + type.slice(lineClass.index + lineClass[0].length);\n var prop = lineClass[1] ? \"bgClass\" : \"textClass\";\n if (output[prop] == null)\n { output[prop] = lineClass[2]; }\n else if (!(new RegExp(\"(?:^|\\\\s)\" + lineClass[2] + \"(?:$|\\\\s)\")).test(output[prop]))\n { output[prop] += \" \" + lineClass[2]; }\n } }\n return type\n }\n\n // Run the given mode's parser over a line, calling f for each token.\n function runMode(cm, text, mode, context, f, lineClasses, forceToEnd) {\n var flattenSpans = mode.flattenSpans;\n if (flattenSpans == null) { flattenSpans = cm.options.flattenSpans; }\n var curStart = 0, curStyle = null;\n var stream = new StringStream(text, cm.options.tabSize, context), style;\n var inner = cm.options.addModeClass && [null];\n if (text == \"\") { extractLineClasses(callBlankLine(mode, context.state), lineClasses); }\n while (!stream.eol()) {\n if (stream.pos > cm.options.maxHighlightLength) {\n flattenSpans = false;\n if (forceToEnd) { processLine(cm, text, context, stream.pos); }\n stream.pos = text.length;\n style = null;\n } else {\n style = extractLineClasses(readToken(mode, stream, context.state, inner), lineClasses);\n }\n if (inner) {\n var mName = inner[0].name;\n if (mName) { style = \"m-\" + (style ? mName + \" \" + style : mName); }\n }\n if (!flattenSpans || curStyle != style) {\n while (curStart < stream.start) {\n curStart = Math.min(stream.start, curStart + 5000);\n f(curStart, curStyle);\n }\n curStyle = style;\n }\n stream.start = stream.pos;\n }\n while (curStart < stream.pos) {\n // Webkit seems to refuse to render text nodes longer than 57444\n // characters, and returns inaccurate measurements in nodes\n // starting around 5000 chars.\n var pos = Math.min(stream.pos, curStart + 5000);\n f(pos, curStyle);\n curStart = pos;\n }\n }\n\n // Finds the line to start with when starting a parse. Tries to\n // find a line with a stateAfter, so that it can start with a\n // valid state. If that fails, it returns the line with the\n // smallest indentation, which tends to need the least context to\n // parse correctly.\n function findStartLine(cm, n, precise) {\n var minindent, minline, doc = cm.doc;\n var lim = precise ? -1 : n - (cm.doc.mode.innerMode ? 1000 : 100);\n for (var search = n; search > lim; --search) {\n if (search <= doc.first) { return doc.first }\n var line = getLine(doc, search - 1), after = line.stateAfter;\n if (after && (!precise || search + (after instanceof SavedContext ? after.lookAhead : 0) <= doc.modeFrontier))\n { return search }\n var indented = countColumn(line.text, null, cm.options.tabSize);\n if (minline == null || minindent > indented) {\n minline = search - 1;\n minindent = indented;\n }\n }\n return minline\n }\n\n function retreatFrontier(doc, n) {\n doc.modeFrontier = Math.min(doc.modeFrontier, n);\n if (doc.highlightFrontier < n - 10) { return }\n var start = doc.first;\n for (var line = n - 1; line > start; line--) {\n var saved = getLine(doc, line).stateAfter;\n // change is on 3\n // state on line 1 looked ahead 2 -- so saw 3\n // test 1 + 2 < 3 should cover this\n if (saved && (!(saved instanceof SavedContext) || line + saved.lookAhead < n)) {\n start = line + 1;\n break\n }\n }\n doc.highlightFrontier = Math.min(doc.highlightFrontier, start);\n }\n\n // Optimize some code when these features are not used.\n var sawReadOnlySpans = false, sawCollapsedSpans = false;\n\n function seeReadOnlySpans() {\n sawReadOnlySpans = true;\n }\n\n function seeCollapsedSpans() {\n sawCollapsedSpans = true;\n }\n\n // TEXTMARKER SPANS\n\n function MarkedSpan(marker, from, to) {\n this.marker = marker;\n this.from = from; this.to = to;\n }\n\n // Search an array of spans for a span matching the given marker.\n function getMarkedSpanFor(spans, marker) {\n if (spans) { for (var i = 0; i < spans.length; ++i) {\n var span = spans[i];\n if (span.marker == marker) { return span }\n } }\n }\n\n // Remove a span from an array, returning undefined if no spans are\n // left (we don't store arrays for lines without spans).\n function removeMarkedSpan(spans, span) {\n var r;\n for (var i = 0; i < spans.length; ++i)\n { if (spans[i] != span) { (r || (r = [])).push(spans[i]); } }\n return r\n }\n\n // Add a span to a line.\n function addMarkedSpan(line, span, op) {\n var inThisOp = op && window.WeakSet && (op.markedSpans || (op.markedSpans = new WeakSet));\n if (inThisOp && inThisOp.has(line.markedSpans)) {\n line.markedSpans.push(span);\n } else {\n line.markedSpans = line.markedSpans ? line.markedSpans.concat([span]) : [span];\n if (inThisOp) { inThisOp.add(line.markedSpans); }\n }\n span.marker.attachLine(line);\n }\n\n // Used for the algorithm that adjusts markers for a change in the\n // document. These functions cut an array of spans at a given\n // character position, returning an array of remaining chunks (or\n // undefined if nothing remains).\n function markedSpansBefore(old, startCh, isInsert) {\n var nw;\n if (old) { for (var i = 0; i < old.length; ++i) {\n var span = old[i], marker = span.marker;\n var startsBefore = span.from == null || (marker.inclusiveLeft ? span.from <= startCh : span.from < startCh);\n if (startsBefore || span.from == startCh && marker.type == \"bookmark\" && (!isInsert || !span.marker.insertLeft)) {\n var endsAfter = span.to == null || (marker.inclusiveRight ? span.to >= startCh : span.to > startCh)\n ;(nw || (nw = [])).push(new MarkedSpan(marker, span.from, endsAfter ? null : span.to));\n }\n } }\n return nw\n }\n function markedSpansAfter(old, endCh, isInsert) {\n var nw;\n if (old) { for (var i = 0; i < old.length; ++i) {\n var span = old[i], marker = span.marker;\n var endsAfter = span.to == null || (marker.inclusiveRight ? span.to >= endCh : span.to > endCh);\n if (endsAfter || span.from == endCh && marker.type == \"bookmark\" && (!isInsert || span.marker.insertLeft)) {\n var startsBefore = span.from == null || (marker.inclusiveLeft ? span.from <= endCh : span.from < endCh)\n ;(nw || (nw = [])).push(new MarkedSpan(marker, startsBefore ? null : span.from - endCh,\n span.to == null ? null : span.to - endCh));\n }\n } }\n return nw\n }\n\n // Given a change object, compute the new set of marker spans that\n // cover the line in which the change took place. Removes spans\n // entirely within the change, reconnects spans belonging to the\n // same marker that appear on both sides of the change, and cuts off\n // spans partially within the change. Returns an array of span\n // arrays with one element for each line in (after) the change.\n function stretchSpansOverChange(doc, change) {\n if (change.full) { return null }\n var oldFirst = isLine(doc, change.from.line) && getLine(doc, change.from.line).markedSpans;\n var oldLast = isLine(doc, change.to.line) && getLine(doc, change.to.line).markedSpans;\n if (!oldFirst && !oldLast) { return null }\n\n var startCh = change.from.ch, endCh = change.to.ch, isInsert = cmp(change.from, change.to) == 0;\n // Get the spans that 'stick out' on both sides\n var first = markedSpansBefore(oldFirst, startCh, isInsert);\n var last = markedSpansAfter(oldLast, endCh, isInsert);\n\n // Next, merge those two ends\n var sameLine = change.text.length == 1, offset = lst(change.text).length + (sameLine ? startCh : 0);\n if (first) {\n // Fix up .to properties of first\n for (var i = 0; i < first.length; ++i) {\n var span = first[i];\n if (span.to == null) {\n var found = getMarkedSpanFor(last, span.marker);\n if (!found) { span.to = startCh; }\n else if (sameLine) { span.to = found.to == null ? null : found.to + offset; }\n }\n }\n }\n if (last) {\n // Fix up .from in last (or move them into first in case of sameLine)\n for (var i$1 = 0; i$1 < last.length; ++i$1) {\n var span$1 = last[i$1];\n if (span$1.to != null) { span$1.to += offset; }\n if (span$1.from == null) {\n var found$1 = getMarkedSpanFor(first, span$1.marker);\n if (!found$1) {\n span$1.from = offset;\n if (sameLine) { (first || (first = [])).push(span$1); }\n }\n } else {\n span$1.from += offset;\n if (sameLine) { (first || (first = [])).push(span$1); }\n }\n }\n }\n // Make sure we didn't create any zero-length spans\n if (first) { first = clearEmptySpans(first); }\n if (last && last != first) { last = clearEmptySpans(last); }\n\n var newMarkers = [first];\n if (!sameLine) {\n // Fill gap with whole-line-spans\n var gap = change.text.length - 2, gapMarkers;\n if (gap > 0 && first)\n { for (var i$2 = 0; i$2 < first.length; ++i$2)\n { if (first[i$2].to == null)\n { (gapMarkers || (gapMarkers = [])).push(new MarkedSpan(first[i$2].marker, null, null)); } } }\n for (var i$3 = 0; i$3 < gap; ++i$3)\n { newMarkers.push(gapMarkers); }\n newMarkers.push(last);\n }\n return newMarkers\n }\n\n // Remove spans that are empty and don't have a clearWhenEmpty\n // option of false.\n function clearEmptySpans(spans) {\n for (var i = 0; i < spans.length; ++i) {\n var span = spans[i];\n if (span.from != null && span.from == span.to && span.marker.clearWhenEmpty !== false)\n { spans.splice(i--, 1); }\n }\n if (!spans.length) { return null }\n return spans\n }\n\n // Used to 'clip' out readOnly ranges when making a change.\n function removeReadOnlyRanges(doc, from, to) {\n var markers = null;\n doc.iter(from.line, to.line + 1, function (line) {\n if (line.markedSpans) { for (var i = 0; i < line.markedSpans.length; ++i) {\n var mark = line.markedSpans[i].marker;\n if (mark.readOnly && (!markers || indexOf(markers, mark) == -1))\n { (markers || (markers = [])).push(mark); }\n } }\n });\n if (!markers) { return null }\n var parts = [{from: from, to: to}];\n for (var i = 0; i < markers.length; ++i) {\n var mk = markers[i], m = mk.find(0);\n for (var j = 0; j < parts.length; ++j) {\n var p = parts[j];\n if (cmp(p.to, m.from) < 0 || cmp(p.from, m.to) > 0) { continue }\n var newParts = [j, 1], dfrom = cmp(p.from, m.from), dto = cmp(p.to, m.to);\n if (dfrom < 0 || !mk.inclusiveLeft && !dfrom)\n { newParts.push({from: p.from, to: m.from}); }\n if (dto > 0 || !mk.inclusiveRight && !dto)\n { newParts.push({from: m.to, to: p.to}); }\n parts.splice.apply(parts, newParts);\n j += newParts.length - 3;\n }\n }\n return parts\n }\n\n // Connect or disconnect spans from a line.\n function detachMarkedSpans(line) {\n var spans = line.markedSpans;\n if (!spans) { return }\n for (var i = 0; i < spans.length; ++i)\n { spans[i].marker.detachLine(line); }\n line.markedSpans = null;\n }\n function attachMarkedSpans(line, spans) {\n if (!spans) { return }\n for (var i = 0; i < spans.length; ++i)\n { spans[i].marker.attachLine(line); }\n line.markedSpans = spans;\n }\n\n // Helpers used when computing which overlapping collapsed span\n // counts as the larger one.\n function extraLeft(marker) { return marker.inclusiveLeft ? -1 : 0 }\n function extraRight(marker) { return marker.inclusiveRight ? 1 : 0 }\n\n // Returns a number indicating which of two overlapping collapsed\n // spans is larger (and thus includes the other). Falls back to\n // comparing ids when the spans cover exactly the same range.\n function compareCollapsedMarkers(a, b) {\n var lenDiff = a.lines.length - b.lines.length;\n if (lenDiff != 0) { return lenDiff }\n var aPos = a.find(), bPos = b.find();\n var fromCmp = cmp(aPos.from, bPos.from) || extraLeft(a) - extraLeft(b);\n if (fromCmp) { return -fromCmp }\n var toCmp = cmp(aPos.to, bPos.to) || extraRight(a) - extraRight(b);\n if (toCmp) { return toCmp }\n return b.id - a.id\n }\n\n // Find out whether a line ends or starts in a collapsed span. If\n // so, return the marker for that span.\n function collapsedSpanAtSide(line, start) {\n var sps = sawCollapsedSpans && line.markedSpans, found;\n if (sps) { for (var sp = (void 0), i = 0; i < sps.length; ++i) {\n sp = sps[i];\n if (sp.marker.collapsed && (start ? sp.from : sp.to) == null &&\n (!found || compareCollapsedMarkers(found, sp.marker) < 0))\n { found = sp.marker; }\n } }\n return found\n }\n function collapsedSpanAtStart(line) { return collapsedSpanAtSide(line, true) }\n function collapsedSpanAtEnd(line) { return collapsedSpanAtSide(line, false) }\n\n function collapsedSpanAround(line, ch) {\n var sps = sawCollapsedSpans && line.markedSpans, found;\n if (sps) { for (var i = 0; i < sps.length; ++i) {\n var sp = sps[i];\n if (sp.marker.collapsed && (sp.from == null || sp.from < ch) && (sp.to == null || sp.to > ch) &&\n (!found || compareCollapsedMarkers(found, sp.marker) < 0)) { found = sp.marker; }\n } }\n return found\n }\n\n // Test whether there exists a collapsed span that partially\n // overlaps (covers the start or end, but not both) of a new span.\n // Such overlap is not allowed.\n function conflictingCollapsedRange(doc, lineNo, from, to, marker) {\n var line = getLine(doc, lineNo);\n var sps = sawCollapsedSpans && line.markedSpans;\n if (sps) { for (var i = 0; i < sps.length; ++i) {\n var sp = sps[i];\n if (!sp.marker.collapsed) { continue }\n var found = sp.marker.find(0);\n var fromCmp = cmp(found.from, from) || extraLeft(sp.marker) - extraLeft(marker);\n var toCmp = cmp(found.to, to) || extraRight(sp.marker) - extraRight(marker);\n if (fromCmp >= 0 && toCmp <= 0 || fromCmp <= 0 && toCmp >= 0) { continue }\n if (fromCmp <= 0 && (sp.marker.inclusiveRight && marker.inclusiveLeft ? cmp(found.to, from) >= 0 : cmp(found.to, from) > 0) ||\n fromCmp >= 0 && (sp.marker.inclusiveRight && marker.inclusiveLeft ? cmp(found.from, to) <= 0 : cmp(found.from, to) < 0))\n { return true }\n } }\n }\n\n // A visual line is a line as drawn on the screen. Folding, for\n // example, can cause multiple logical lines to appear on the same\n // visual line. This finds the start of the visual line that the\n // given line is part of (usually that is the line itself).\n function visualLine(line) {\n var merged;\n while (merged = collapsedSpanAtStart(line))\n { line = merged.find(-1, true).line; }\n return line\n }\n\n function visualLineEnd(line) {\n var merged;\n while (merged = collapsedSpanAtEnd(line))\n { line = merged.find(1, true).line; }\n return line\n }\n\n // Returns an array of logical lines that continue the visual line\n // started by the argument, or undefined if there are no such lines.\n function visualLineContinued(line) {\n var merged, lines;\n while (merged = collapsedSpanAtEnd(line)) {\n line = merged.find(1, true).line\n ;(lines || (lines = [])).push(line);\n }\n return lines\n }\n\n // Get the line number of the start of the visual line that the\n // given line number is part of.\n function visualLineNo(doc, lineN) {\n var line = getLine(doc, lineN), vis = visualLine(line);\n if (line == vis) { return lineN }\n return lineNo(vis)\n }\n\n // Get the line number of the start of the next visual line after\n // the given line.\n function visualLineEndNo(doc, lineN) {\n if (lineN > doc.lastLine()) { return lineN }\n var line = getLine(doc, lineN), merged;\n if (!lineIsHidden(doc, line)) { return lineN }\n while (merged = collapsedSpanAtEnd(line))\n { line = merged.find(1, true).line; }\n return lineNo(line) + 1\n }\n\n // Compute whether a line is hidden. Lines count as hidden when they\n // are part of a visual line that starts with another line, or when\n // they are entirely covered by collapsed, non-widget span.\n function lineIsHidden(doc, line) {\n var sps = sawCollapsedSpans && line.markedSpans;\n if (sps) { for (var sp = (void 0), i = 0; i < sps.length; ++i) {\n sp = sps[i];\n if (!sp.marker.collapsed) { continue }\n if (sp.from == null) { return true }\n if (sp.marker.widgetNode) { continue }\n if (sp.from == 0 && sp.marker.inclusiveLeft && lineIsHiddenInner(doc, line, sp))\n { return true }\n } }\n }\n function lineIsHiddenInner(doc, line, span) {\n if (span.to == null) {\n var end = span.marker.find(1, true);\n return lineIsHiddenInner(doc, end.line, getMarkedSpanFor(end.line.markedSpans, span.marker))\n }\n if (span.marker.inclusiveRight && span.to == line.text.length)\n { return true }\n for (var sp = (void 0), i = 0; i < line.markedSpans.length; ++i) {\n sp = line.markedSpans[i];\n if (sp.marker.collapsed && !sp.marker.widgetNode && sp.from == span.to &&\n (sp.to == null || sp.to != span.from) &&\n (sp.marker.inclusiveLeft || span.marker.inclusiveRight) &&\n lineIsHiddenInner(doc, line, sp)) { return true }\n }\n }\n\n // Find the height above the given line.\n function heightAtLine(lineObj) {\n lineObj = visualLine(lineObj);\n\n var h = 0, chunk = lineObj.parent;\n for (var i = 0; i < chunk.lines.length; ++i) {\n var line = chunk.lines[i];\n if (line == lineObj) { break }\n else { h += line.height; }\n }\n for (var p = chunk.parent; p; chunk = p, p = chunk.parent) {\n for (var i$1 = 0; i$1 < p.children.length; ++i$1) {\n var cur = p.children[i$1];\n if (cur == chunk) { break }\n else { h += cur.height; }\n }\n }\n return h\n }\n\n // Compute the character length of a line, taking into account\n // collapsed ranges (see markText) that might hide parts, and join\n // other lines onto it.\n function lineLength(line) {\n if (line.height == 0) { return 0 }\n var len = line.text.length, merged, cur = line;\n while (merged = collapsedSpanAtStart(cur)) {\n var found = merged.find(0, true);\n cur = found.from.line;\n len += found.from.ch - found.to.ch;\n }\n cur = line;\n while (merged = collapsedSpanAtEnd(cur)) {\n var found$1 = merged.find(0, true);\n len -= cur.text.length - found$1.from.ch;\n cur = found$1.to.line;\n len += cur.text.length - found$1.to.ch;\n }\n return len\n }\n\n // Find the longest line in the document.\n function findMaxLine(cm) {\n var d = cm.display, doc = cm.doc;\n d.maxLine = getLine(doc, doc.first);\n d.maxLineLength = lineLength(d.maxLine);\n d.maxLineChanged = true;\n doc.iter(function (line) {\n var len = lineLength(line);\n if (len > d.maxLineLength) {\n d.maxLineLength = len;\n d.maxLine = line;\n }\n });\n }\n\n // LINE DATA STRUCTURE\n\n // Line objects. These hold state related to a line, including\n // highlighting info (the styles array).\n var Line = function(text, markedSpans, estimateHeight) {\n this.text = text;\n attachMarkedSpans(this, markedSpans);\n this.height = estimateHeight ? estimateHeight(this) : 1;\n };\n\n Line.prototype.lineNo = function () { return lineNo(this) };\n eventMixin(Line);\n\n // Change the content (text, markers) of a line. Automatically\n // invalidates cached information and tries to re-estimate the\n // line's height.\n function updateLine(line, text, markedSpans, estimateHeight) {\n line.text = text;\n if (line.stateAfter) { line.stateAfter = null; }\n if (line.styles) { line.styles = null; }\n if (line.order != null) { line.order = null; }\n detachMarkedSpans(line);\n attachMarkedSpans(line, markedSpans);\n var estHeight = estimateHeight ? estimateHeight(line) : 1;\n if (estHeight != line.height) { updateLineHeight(line, estHeight); }\n }\n\n // Detach a line from the document tree and its markers.\n function cleanUpLine(line) {\n line.parent = null;\n detachMarkedSpans(line);\n }\n\n // Convert a style as returned by a mode (either null, or a string\n // containing one or more styles) to a CSS style. This is cached,\n // and also looks for line-wide styles.\n var styleToClassCache = {}, styleToClassCacheWithMode = {};\n function interpretTokenStyle(style, options) {\n if (!style || /^\\s*$/.test(style)) { return null }\n var cache = options.addModeClass ? styleToClassCacheWithMode : styleToClassCache;\n return cache[style] ||\n (cache[style] = style.replace(/\\S+/g, \"cm-$&\"))\n }\n\n // Render the DOM representation of the text of a line. Also builds\n // up a 'line map', which points at the DOM nodes that represent\n // specific stretches of text, and is used by the measuring code.\n // The returned object contains the DOM node, this map, and\n // information about line-wide styles that were set by the mode.\n function buildLineContent(cm, lineView) {\n // The padding-right forces the element to have a 'border', which\n // is needed on Webkit to be able to get line-level bounding\n // rectangles for it (in measureChar).\n var content = eltP(\"span\", null, null, webkit ? \"padding-right: .1px\" : null);\n var builder = {pre: eltP(\"pre\", [content], \"CodeMirror-line\"), content: content,\n col: 0, pos: 0, cm: cm,\n trailingSpace: false,\n splitSpaces: cm.getOption(\"lineWrapping\")};\n lineView.measure = {};\n\n // Iterate over the logical lines that make up this visual line.\n for (var i = 0; i <= (lineView.rest ? lineView.rest.length : 0); i++) {\n var line = i ? lineView.rest[i - 1] : lineView.line, order = (void 0);\n builder.pos = 0;\n builder.addToken = buildToken;\n // Optionally wire in some hacks into the token-rendering\n // algorithm, to deal with browser quirks.\n if (hasBadBidiRects(cm.display.measure) && (order = getOrder(line, cm.doc.direction)))\n { builder.addToken = buildTokenBadBidi(builder.addToken, order); }\n builder.map = [];\n var allowFrontierUpdate = lineView != cm.display.externalMeasured && lineNo(line);\n insertLineContent(line, builder, getLineStyles(cm, line, allowFrontierUpdate));\n if (line.styleClasses) {\n if (line.styleClasses.bgClass)\n { builder.bgClass = joinClasses(line.styleClasses.bgClass, builder.bgClass || \"\"); }\n if (line.styleClasses.textClass)\n { builder.textClass = joinClasses(line.styleClasses.textClass, builder.textClass || \"\"); }\n }\n\n // Ensure at least a single node is present, for measuring.\n if (builder.map.length == 0)\n { builder.map.push(0, 0, builder.content.appendChild(zeroWidthElement(cm.display.measure))); }\n\n // Store the map and a cache object for the current logical line\n if (i == 0) {\n lineView.measure.map = builder.map;\n lineView.measure.cache = {};\n } else {\n (lineView.measure.maps || (lineView.measure.maps = [])).push(builder.map)\n ;(lineView.measure.caches || (lineView.measure.caches = [])).push({});\n }\n }\n\n // See issue #2901\n if (webkit) {\n var last = builder.content.lastChild;\n if (/\\bcm-tab\\b/.test(last.className) || (last.querySelector && last.querySelector(\".cm-tab\")))\n { builder.content.className = \"cm-tab-wrap-hack\"; }\n }\n\n signal(cm, \"renderLine\", cm, lineView.line, builder.pre);\n if (builder.pre.className)\n { builder.textClass = joinClasses(builder.pre.className, builder.textClass || \"\"); }\n\n return builder\n }\n\n function defaultSpecialCharPlaceholder(ch) {\n var token = elt(\"span\", \"\\u2022\", \"cm-invalidchar\");\n token.title = \"\\\\u\" + ch.charCodeAt(0).toString(16);\n token.setAttribute(\"aria-label\", token.title);\n return token\n }\n\n // Build up the DOM representation for a single token, and add it to\n // the line map. Takes care to render special characters separately.\n function buildToken(builder, text, style, startStyle, endStyle, css, attributes) {\n if (!text) { return }\n var displayText = builder.splitSpaces ? splitSpaces(text, builder.trailingSpace) : text;\n var special = builder.cm.state.specialChars, mustWrap = false;\n var content;\n if (!special.test(text)) {\n builder.col += text.length;\n content = document.createTextNode(displayText);\n builder.map.push(builder.pos, builder.pos + text.length, content);\n if (ie && ie_version < 9) { mustWrap = true; }\n builder.pos += text.length;\n } else {\n content = document.createDocumentFragment();\n var pos = 0;\n while (true) {\n special.lastIndex = pos;\n var m = special.exec(text);\n var skipped = m ? m.index - pos : text.length - pos;\n if (skipped) {\n var txt = document.createTextNode(displayText.slice(pos, pos + skipped));\n if (ie && ie_version < 9) { content.appendChild(elt(\"span\", [txt])); }\n else { content.appendChild(txt); }\n builder.map.push(builder.pos, builder.pos + skipped, txt);\n builder.col += skipped;\n builder.pos += skipped;\n }\n if (!m) { break }\n pos += skipped + 1;\n var txt$1 = (void 0);\n if (m[0] == \"\\t\") {\n var tabSize = builder.cm.options.tabSize, tabWidth = tabSize - builder.col % tabSize;\n txt$1 = content.appendChild(elt(\"span\", spaceStr(tabWidth), \"cm-tab\"));\n txt$1.setAttribute(\"role\", \"presentation\");\n txt$1.setAttribute(\"cm-text\", \"\\t\");\n builder.col += tabWidth;\n } else if (m[0] == \"\\r\" || m[0] == \"\\n\") {\n txt$1 = content.appendChild(elt(\"span\", m[0] == \"\\r\" ? \"\\u240d\" : \"\\u2424\", \"cm-invalidchar\"));\n txt$1.setAttribute(\"cm-text\", m[0]);\n builder.col += 1;\n } else {\n txt$1 = builder.cm.options.specialCharPlaceholder(m[0]);\n txt$1.setAttribute(\"cm-text\", m[0]);\n if (ie && ie_version < 9) { content.appendChild(elt(\"span\", [txt$1])); }\n else { content.appendChild(txt$1); }\n builder.col += 1;\n }\n builder.map.push(builder.pos, builder.pos + 1, txt$1);\n builder.pos++;\n }\n }\n builder.trailingSpace = displayText.charCodeAt(text.length - 1) == 32;\n if (style || startStyle || endStyle || mustWrap || css || attributes) {\n var fullStyle = style || \"\";\n if (startStyle) { fullStyle += startStyle; }\n if (endStyle) { fullStyle += endStyle; }\n var token = elt(\"span\", [content], fullStyle, css);\n if (attributes) {\n for (var attr in attributes) { if (attributes.hasOwnProperty(attr) && attr != \"style\" && attr != \"class\")\n { token.setAttribute(attr, attributes[attr]); } }\n }\n return builder.content.appendChild(token)\n }\n builder.content.appendChild(content);\n }\n\n // Change some spaces to NBSP to prevent the browser from collapsing\n // trailing spaces at the end of a line when rendering text (issue #1362).\n function splitSpaces(text, trailingBefore) {\n if (text.length > 1 && !/ /.test(text)) { return text }\n var spaceBefore = trailingBefore, result = \"\";\n for (var i = 0; i < text.length; i++) {\n var ch = text.charAt(i);\n if (ch == \" \" && spaceBefore && (i == text.length - 1 || text.charCodeAt(i + 1) == 32))\n { ch = \"\\u00a0\"; }\n result += ch;\n spaceBefore = ch == \" \";\n }\n return result\n }\n\n // Work around nonsense dimensions being reported for stretches of\n // right-to-left text.\n function buildTokenBadBidi(inner, order) {\n return function (builder, text, style, startStyle, endStyle, css, attributes) {\n style = style ? style + \" cm-force-border\" : \"cm-force-border\";\n var start = builder.pos, end = start + text.length;\n for (;;) {\n // Find the part that overlaps with the start of this text\n var part = (void 0);\n for (var i = 0; i < order.length; i++) {\n part = order[i];\n if (part.to > start && part.from <= start) { break }\n }\n if (part.to >= end) { return inner(builder, text, style, startStyle, endStyle, css, attributes) }\n inner(builder, text.slice(0, part.to - start), style, startStyle, null, css, attributes);\n startStyle = null;\n text = text.slice(part.to - start);\n start = part.to;\n }\n }\n }\n\n function buildCollapsedSpan(builder, size, marker, ignoreWidget) {\n var widget = !ignoreWidget && marker.widgetNode;\n if (widget) { builder.map.push(builder.pos, builder.pos + size, widget); }\n if (!ignoreWidget && builder.cm.display.input.needsContentAttribute) {\n if (!widget)\n { widget = builder.content.appendChild(document.createElement(\"span\")); }\n widget.setAttribute(\"cm-marker\", marker.id);\n }\n if (widget) {\n builder.cm.display.input.setUneditable(widget);\n builder.content.appendChild(widget);\n }\n builder.pos += size;\n builder.trailingSpace = false;\n }\n\n // Outputs a number of spans to make up a line, taking highlighting\n // and marked text into account.\n function insertLineContent(line, builder, styles) {\n var spans = line.markedSpans, allText = line.text, at = 0;\n if (!spans) {\n for (var i$1 = 1; i$1 < styles.length; i$1+=2)\n { builder.addToken(builder, allText.slice(at, at = styles[i$1]), interpretTokenStyle(styles[i$1+1], builder.cm.options)); }\n return\n }\n\n var len = allText.length, pos = 0, i = 1, text = \"\", style, css;\n var nextChange = 0, spanStyle, spanEndStyle, spanStartStyle, collapsed, attributes;\n for (;;) {\n if (nextChange == pos) { // Update current marker set\n spanStyle = spanEndStyle = spanStartStyle = css = \"\";\n attributes = null;\n collapsed = null; nextChange = Infinity;\n var foundBookmarks = [], endStyles = (void 0);\n for (var j = 0; j < spans.length; ++j) {\n var sp = spans[j], m = sp.marker;\n if (m.type == \"bookmark\" && sp.from == pos && m.widgetNode) {\n foundBookmarks.push(m);\n } else if (sp.from <= pos && (sp.to == null || sp.to > pos || m.collapsed && sp.to == pos && sp.from == pos)) {\n if (sp.to != null && sp.to != pos && nextChange > sp.to) {\n nextChange = sp.to;\n spanEndStyle = \"\";\n }\n if (m.className) { spanStyle += \" \" + m.className; }\n if (m.css) { css = (css ? css + \";\" : \"\") + m.css; }\n if (m.startStyle && sp.from == pos) { spanStartStyle += \" \" + m.startStyle; }\n if (m.endStyle && sp.to == nextChange) { (endStyles || (endStyles = [])).push(m.endStyle, sp.to); }\n // support for the old title property\n // https://github.com/codemirror/CodeMirror/pull/5673\n if (m.title) { (attributes || (attributes = {})).title = m.title; }\n if (m.attributes) {\n for (var attr in m.attributes)\n { (attributes || (attributes = {}))[attr] = m.attributes[attr]; }\n }\n if (m.collapsed && (!collapsed || compareCollapsedMarkers(collapsed.marker, m) < 0))\n { collapsed = sp; }\n } else if (sp.from > pos && nextChange > sp.from) {\n nextChange = sp.from;\n }\n }\n if (endStyles) { for (var j$1 = 0; j$1 < endStyles.length; j$1 += 2)\n { if (endStyles[j$1 + 1] == nextChange) { spanEndStyle += \" \" + endStyles[j$1]; } } }\n\n if (!collapsed || collapsed.from == pos) { for (var j$2 = 0; j$2 < foundBookmarks.length; ++j$2)\n { buildCollapsedSpan(builder, 0, foundBookmarks[j$2]); } }\n if (collapsed && (collapsed.from || 0) == pos) {\n buildCollapsedSpan(builder, (collapsed.to == null ? len + 1 : collapsed.to) - pos,\n collapsed.marker, collapsed.from == null);\n if (collapsed.to == null) { return }\n if (collapsed.to == pos) { collapsed = false; }\n }\n }\n if (pos >= len) { break }\n\n var upto = Math.min(len, nextChange);\n while (true) {\n if (text) {\n var end = pos + text.length;\n if (!collapsed) {\n var tokenText = end > upto ? text.slice(0, upto - pos) : text;\n builder.addToken(builder, tokenText, style ? style + spanStyle : spanStyle,\n spanStartStyle, pos + tokenText.length == nextChange ? spanEndStyle : \"\", css, attributes);\n }\n if (end >= upto) {text = text.slice(upto - pos); pos = upto; break}\n pos = end;\n spanStartStyle = \"\";\n }\n text = allText.slice(at, at = styles[i++]);\n style = interpretTokenStyle(styles[i++], builder.cm.options);\n }\n }\n }\n\n\n // These objects are used to represent the visible (currently drawn)\n // part of the document. A LineView may correspond to multiple\n // logical lines, if those are connected by collapsed ranges.\n function LineView(doc, line, lineN) {\n // The starting line\n this.line = line;\n // Continuing lines, if any\n this.rest = visualLineContinued(line);\n // Number of logical lines in this visual line\n this.size = this.rest ? lineNo(lst(this.rest)) - lineN + 1 : 1;\n this.node = this.text = null;\n this.hidden = lineIsHidden(doc, line);\n }\n\n // Create a range of LineView objects for the given lines.\n function buildViewArray(cm, from, to) {\n var array = [], nextPos;\n for (var pos = from; pos < to; pos = nextPos) {\n var view = new LineView(cm.doc, getLine(cm.doc, pos), pos);\n nextPos = pos + view.size;\n array.push(view);\n }\n return array\n }\n\n var operationGroup = null;\n\n function pushOperation(op) {\n if (operationGroup) {\n operationGroup.ops.push(op);\n } else {\n op.ownsGroup = operationGroup = {\n ops: [op],\n delayedCallbacks: []\n };\n }\n }\n\n function fireCallbacksForOps(group) {\n // Calls delayed callbacks and cursorActivity handlers until no\n // new ones appear\n var callbacks = group.delayedCallbacks, i = 0;\n do {\n for (; i < callbacks.length; i++)\n { callbacks[i].call(null); }\n for (var j = 0; j < group.ops.length; j++) {\n var op = group.ops[j];\n if (op.cursorActivityHandlers)\n { while (op.cursorActivityCalled < op.cursorActivityHandlers.length)\n { op.cursorActivityHandlers[op.cursorActivityCalled++].call(null, op.cm); } }\n }\n } while (i < callbacks.length)\n }\n\n function finishOperation(op, endCb) {\n var group = op.ownsGroup;\n if (!group) { return }\n\n try { fireCallbacksForOps(group); }\n finally {\n operationGroup = null;\n endCb(group);\n }\n }\n\n var orphanDelayedCallbacks = null;\n\n // Often, we want to signal events at a point where we are in the\n // middle of some work, but don't want the handler to start calling\n // other methods on the editor, which might be in an inconsistent\n // state or simply not expect any other events to happen.\n // signalLater looks whether there are any handlers, and schedules\n // them to be executed when the last operation ends, or, if no\n // operation is active, when a timeout fires.\n function signalLater(emitter, type /*, values...*/) {\n var arr = getHandlers(emitter, type);\n if (!arr.length) { return }\n var args = Array.prototype.slice.call(arguments, 2), list;\n if (operationGroup) {\n list = operationGroup.delayedCallbacks;\n } else if (orphanDelayedCallbacks) {\n list = orphanDelayedCallbacks;\n } else {\n list = orphanDelayedCallbacks = [];\n setTimeout(fireOrphanDelayed, 0);\n }\n var loop = function ( i ) {\n list.push(function () { return arr[i].apply(null, args); });\n };\n\n for (var i = 0; i < arr.length; ++i)\n loop( i );\n }\n\n function fireOrphanDelayed() {\n var delayed = orphanDelayedCallbacks;\n orphanDelayedCallbacks = null;\n for (var i = 0; i < delayed.length; ++i) { delayed[i](); }\n }\n\n // When an aspect of a line changes, a string is added to\n // lineView.changes. This updates the relevant part of the line's\n // DOM structure.\n function updateLineForChanges(cm, lineView, lineN, dims) {\n for (var j = 0; j < lineView.changes.length; j++) {\n var type = lineView.changes[j];\n if (type == \"text\") { updateLineText(cm, lineView); }\n else if (type == \"gutter\") { updateLineGutter(cm, lineView, lineN, dims); }\n else if (type == \"class\") { updateLineClasses(cm, lineView); }\n else if (type == \"widget\") { updateLineWidgets(cm, lineView, dims); }\n }\n lineView.changes = null;\n }\n\n // Lines with gutter elements, widgets or a background class need to\n // be wrapped, and have the extra elements added to the wrapper div\n function ensureLineWrapped(lineView) {\n if (lineView.node == lineView.text) {\n lineView.node = elt(\"div\", null, null, \"position: relative\");\n if (lineView.text.parentNode)\n { lineView.text.parentNode.replaceChild(lineView.node, lineView.text); }\n lineView.node.appendChild(lineView.text);\n if (ie && ie_version < 8) { lineView.node.style.zIndex = 2; }\n }\n return lineView.node\n }\n\n function updateLineBackground(cm, lineView) {\n var cls = lineView.bgClass ? lineView.bgClass + \" \" + (lineView.line.bgClass || \"\") : lineView.line.bgClass;\n if (cls) { cls += \" CodeMirror-linebackground\"; }\n if (lineView.background) {\n if (cls) { lineView.background.className = cls; }\n else { lineView.background.parentNode.removeChild(lineView.background); lineView.background = null; }\n } else if (cls) {\n var wrap = ensureLineWrapped(lineView);\n lineView.background = wrap.insertBefore(elt(\"div\", null, cls), wrap.firstChild);\n cm.display.input.setUneditable(lineView.background);\n }\n }\n\n // Wrapper around buildLineContent which will reuse the structure\n // in display.externalMeasured when possible.\n function getLineContent(cm, lineView) {\n var ext = cm.display.externalMeasured;\n if (ext && ext.line == lineView.line) {\n cm.display.externalMeasured = null;\n lineView.measure = ext.measure;\n return ext.built\n }\n return buildLineContent(cm, lineView)\n }\n\n // Redraw the line's text. Interacts with the background and text\n // classes because the mode may output tokens that influence these\n // classes.\n function updateLineText(cm, lineView) {\n var cls = lineView.text.className;\n var built = getLineContent(cm, lineView);\n if (lineView.text == lineView.node) { lineView.node = built.pre; }\n lineView.text.parentNode.replaceChild(built.pre, lineView.text);\n lineView.text = built.pre;\n if (built.bgClass != lineView.bgClass || built.textClass != lineView.textClass) {\n lineView.bgClass = built.bgClass;\n lineView.textClass = built.textClass;\n updateLineClasses(cm, lineView);\n } else if (cls) {\n lineView.text.className = cls;\n }\n }\n\n function updateLineClasses(cm, lineView) {\n updateLineBackground(cm, lineView);\n if (lineView.line.wrapClass)\n { ensureLineWrapped(lineView).className = lineView.line.wrapClass; }\n else if (lineView.node != lineView.text)\n { lineView.node.className = \"\"; }\n var textClass = lineView.textClass ? lineView.textClass + \" \" + (lineView.line.textClass || \"\") : lineView.line.textClass;\n lineView.text.className = textClass || \"\";\n }\n\n function updateLineGutter(cm, lineView, lineN, dims) {\n if (lineView.gutter) {\n lineView.node.removeChild(lineView.gutter);\n lineView.gutter = null;\n }\n if (lineView.gutterBackground) {\n lineView.node.removeChild(lineView.gutterBackground);\n lineView.gutterBackground = null;\n }\n if (lineView.line.gutterClass) {\n var wrap = ensureLineWrapped(lineView);\n lineView.gutterBackground = elt(\"div\", null, \"CodeMirror-gutter-background \" + lineView.line.gutterClass,\n (\"left: \" + (cm.options.fixedGutter ? dims.fixedPos : -dims.gutterTotalWidth) + \"px; width: \" + (dims.gutterTotalWidth) + \"px\"));\n cm.display.input.setUneditable(lineView.gutterBackground);\n wrap.insertBefore(lineView.gutterBackground, lineView.text);\n }\n var markers = lineView.line.gutterMarkers;\n if (cm.options.lineNumbers || markers) {\n var wrap$1 = ensureLineWrapped(lineView);\n var gutterWrap = lineView.gutter = elt(\"div\", null, \"CodeMirror-gutter-wrapper\", (\"left: \" + (cm.options.fixedGutter ? dims.fixedPos : -dims.gutterTotalWidth) + \"px\"));\n gutterWrap.setAttribute(\"aria-hidden\", \"true\");\n cm.display.input.setUneditable(gutterWrap);\n wrap$1.insertBefore(gutterWrap, lineView.text);\n if (lineView.line.gutterClass)\n { gutterWrap.className += \" \" + lineView.line.gutterClass; }\n if (cm.options.lineNumbers && (!markers || !markers[\"CodeMirror-linenumbers\"]))\n { lineView.lineNumber = gutterWrap.appendChild(\n elt(\"div\", lineNumberFor(cm.options, lineN),\n \"CodeMirror-linenumber CodeMirror-gutter-elt\",\n (\"left: \" + (dims.gutterLeft[\"CodeMirror-linenumbers\"]) + \"px; width: \" + (cm.display.lineNumInnerWidth) + \"px\"))); }\n if (markers) { for (var k = 0; k < cm.display.gutterSpecs.length; ++k) {\n var id = cm.display.gutterSpecs[k].className, found = markers.hasOwnProperty(id) && markers[id];\n if (found)\n { gutterWrap.appendChild(elt(\"div\", [found], \"CodeMirror-gutter-elt\",\n (\"left: \" + (dims.gutterLeft[id]) + \"px; width: \" + (dims.gutterWidth[id]) + \"px\"))); }\n } }\n }\n }\n\n function updateLineWidgets(cm, lineView, dims) {\n if (lineView.alignable) { lineView.alignable = null; }\n var isWidget = classTest(\"CodeMirror-linewidget\");\n for (var node = lineView.node.firstChild, next = (void 0); node; node = next) {\n next = node.nextSibling;\n if (isWidget.test(node.className)) { lineView.node.removeChild(node); }\n }\n insertLineWidgets(cm, lineView, dims);\n }\n\n // Build a line's DOM representation from scratch\n function buildLineElement(cm, lineView, lineN, dims) {\n var built = getLineContent(cm, lineView);\n lineView.text = lineView.node = built.pre;\n if (built.bgClass) { lineView.bgClass = built.bgClass; }\n if (built.textClass) { lineView.textClass = built.textClass; }\n\n updateLineClasses(cm, lineView);\n updateLineGutter(cm, lineView, lineN, dims);\n insertLineWidgets(cm, lineView, dims);\n return lineView.node\n }\n\n // A lineView may contain multiple logical lines (when merged by\n // collapsed spans). The widgets for all of them need to be drawn.\n function insertLineWidgets(cm, lineView, dims) {\n insertLineWidgetsFor(cm, lineView.line, lineView, dims, true);\n if (lineView.rest) { for (var i = 0; i < lineView.rest.length; i++)\n { insertLineWidgetsFor(cm, lineView.rest[i], lineView, dims, false); } }\n }\n\n function insertLineWidgetsFor(cm, line, lineView, dims, allowAbove) {\n if (!line.widgets) { return }\n var wrap = ensureLineWrapped(lineView);\n for (var i = 0, ws = line.widgets; i < ws.length; ++i) {\n var widget = ws[i], node = elt(\"div\", [widget.node], \"CodeMirror-linewidget\" + (widget.className ? \" \" + widget.className : \"\"));\n if (!widget.handleMouseEvents) { node.setAttribute(\"cm-ignore-events\", \"true\"); }\n positionLineWidget(widget, node, lineView, dims);\n cm.display.input.setUneditable(node);\n if (allowAbove && widget.above)\n { wrap.insertBefore(node, lineView.gutter || lineView.text); }\n else\n { wrap.appendChild(node); }\n signalLater(widget, \"redraw\");\n }\n }\n\n function positionLineWidget(widget, node, lineView, dims) {\n if (widget.noHScroll) {\n (lineView.alignable || (lineView.alignable = [])).push(node);\n var width = dims.wrapperWidth;\n node.style.left = dims.fixedPos + \"px\";\n if (!widget.coverGutter) {\n width -= dims.gutterTotalWidth;\n node.style.paddingLeft = dims.gutterTotalWidth + \"px\";\n }\n node.style.width = width + \"px\";\n }\n if (widget.coverGutter) {\n node.style.zIndex = 5;\n node.style.position = \"relative\";\n if (!widget.noHScroll) { node.style.marginLeft = -dims.gutterTotalWidth + \"px\"; }\n }\n }\n\n function widgetHeight(widget) {\n if (widget.height != null) { return widget.height }\n var cm = widget.doc.cm;\n if (!cm) { return 0 }\n if (!contains(document.body, widget.node)) {\n var parentStyle = \"position: relative;\";\n if (widget.coverGutter)\n { parentStyle += \"margin-left: -\" + cm.display.gutters.offsetWidth + \"px;\"; }\n if (widget.noHScroll)\n { parentStyle += \"width: \" + cm.display.wrapper.clientWidth + \"px;\"; }\n removeChildrenAndAdd(cm.display.measure, elt(\"div\", [widget.node], null, parentStyle));\n }\n return widget.height = widget.node.parentNode.offsetHeight\n }\n\n // Return true when the given mouse event happened in a widget\n function eventInWidget(display, e) {\n for (var n = e_target(e); n != display.wrapper; n = n.parentNode) {\n if (!n || (n.nodeType == 1 && n.getAttribute(\"cm-ignore-events\") == \"true\") ||\n (n.parentNode == display.sizer && n != display.mover))\n { return true }\n }\n }\n\n // POSITION MEASUREMENT\n\n function paddingTop(display) {return display.lineSpace.offsetTop}\n function paddingVert(display) {return display.mover.offsetHeight - display.lineSpace.offsetHeight}\n function paddingH(display) {\n if (display.cachedPaddingH) { return display.cachedPaddingH }\n var e = removeChildrenAndAdd(display.measure, elt(\"pre\", \"x\", \"CodeMirror-line-like\"));\n var style = window.getComputedStyle ? window.getComputedStyle(e) : e.currentStyle;\n var data = {left: parseInt(style.paddingLeft), right: parseInt(style.paddingRight)};\n if (!isNaN(data.left) && !isNaN(data.right)) { display.cachedPaddingH = data; }\n return data\n }\n\n function scrollGap(cm) { return scrollerGap - cm.display.nativeBarWidth }\n function displayWidth(cm) {\n return cm.display.scroller.clientWidth - scrollGap(cm) - cm.display.barWidth\n }\n function displayHeight(cm) {\n return cm.display.scroller.clientHeight - scrollGap(cm) - cm.display.barHeight\n }\n\n // Ensure the lineView.wrapping.heights array is populated. This is\n // an array of bottom offsets for the lines that make up a drawn\n // line. When lineWrapping is on, there might be more than one\n // height.\n function ensureLineHeights(cm, lineView, rect) {\n var wrapping = cm.options.lineWrapping;\n var curWidth = wrapping && displayWidth(cm);\n if (!lineView.measure.heights || wrapping && lineView.measure.width != curWidth) {\n var heights = lineView.measure.heights = [];\n if (wrapping) {\n lineView.measure.width = curWidth;\n var rects = lineView.text.firstChild.getClientRects();\n for (var i = 0; i < rects.length - 1; i++) {\n var cur = rects[i], next = rects[i + 1];\n if (Math.abs(cur.bottom - next.bottom) > 2)\n { heights.push((cur.bottom + next.top) / 2 - rect.top); }\n }\n }\n heights.push(rect.bottom - rect.top);\n }\n }\n\n // Find a line map (mapping character offsets to text nodes) and a\n // measurement cache for the given line number. (A line view might\n // contain multiple lines when collapsed ranges are present.)\n function mapFromLineView(lineView, line, lineN) {\n if (lineView.line == line)\n { return {map: lineView.measure.map, cache: lineView.measure.cache} }\n for (var i = 0; i < lineView.rest.length; i++)\n { if (lineView.rest[i] == line)\n { return {map: lineView.measure.maps[i], cache: lineView.measure.caches[i]} } }\n for (var i$1 = 0; i$1 < lineView.rest.length; i$1++)\n { if (lineNo(lineView.rest[i$1]) > lineN)\n { return {map: lineView.measure.maps[i$1], cache: lineView.measure.caches[i$1], before: true} } }\n }\n\n // Render a line into the hidden node display.externalMeasured. Used\n // when measurement is needed for a line that's not in the viewport.\n function updateExternalMeasurement(cm, line) {\n line = visualLine(line);\n var lineN = lineNo(line);\n var view = cm.display.externalMeasured = new LineView(cm.doc, line, lineN);\n view.lineN = lineN;\n var built = view.built = buildLineContent(cm, view);\n view.text = built.pre;\n removeChildrenAndAdd(cm.display.lineMeasure, built.pre);\n return view\n }\n\n // Get a {top, bottom, left, right} box (in line-local coordinates)\n // for a given character.\n function measureChar(cm, line, ch, bias) {\n return measureCharPrepared(cm, prepareMeasureForLine(cm, line), ch, bias)\n }\n\n // Find a line view that corresponds to the given line number.\n function findViewForLine(cm, lineN) {\n if (lineN >= cm.display.viewFrom && lineN < cm.display.viewTo)\n { return cm.display.view[findViewIndex(cm, lineN)] }\n var ext = cm.display.externalMeasured;\n if (ext && lineN >= ext.lineN && lineN < ext.lineN + ext.size)\n { return ext }\n }\n\n // Measurement can be split in two steps, the set-up work that\n // applies to the whole line, and the measurement of the actual\n // character. Functions like coordsChar, that need to do a lot of\n // measurements in a row, can thus ensure that the set-up work is\n // only done once.\n function prepareMeasureForLine(cm, line) {\n var lineN = lineNo(line);\n var view = findViewForLine(cm, lineN);\n if (view && !view.text) {\n view = null;\n } else if (view && view.changes) {\n updateLineForChanges(cm, view, lineN, getDimensions(cm));\n cm.curOp.forceUpdate = true;\n }\n if (!view)\n { view = updateExternalMeasurement(cm, line); }\n\n var info = mapFromLineView(view, line, lineN);\n return {\n line: line, view: view, rect: null,\n map: info.map, cache: info.cache, before: info.before,\n hasHeights: false\n }\n }\n\n // Given a prepared measurement object, measures the position of an\n // actual character (or fetches it from the cache).\n function measureCharPrepared(cm, prepared, ch, bias, varHeight) {\n if (prepared.before) { ch = -1; }\n var key = ch + (bias || \"\"), found;\n if (prepared.cache.hasOwnProperty(key)) {\n found = prepared.cache[key];\n } else {\n if (!prepared.rect)\n { prepared.rect = prepared.view.text.getBoundingClientRect(); }\n if (!prepared.hasHeights) {\n ensureLineHeights(cm, prepared.view, prepared.rect);\n prepared.hasHeights = true;\n }\n found = measureCharInner(cm, prepared, ch, bias);\n if (!found.bogus) { prepared.cache[key] = found; }\n }\n return {left: found.left, right: found.right,\n top: varHeight ? found.rtop : found.top,\n bottom: varHeight ? found.rbottom : found.bottom}\n }\n\n var nullRect = {left: 0, right: 0, top: 0, bottom: 0};\n\n function nodeAndOffsetInLineMap(map, ch, bias) {\n var node, start, end, collapse, mStart, mEnd;\n // First, search the line map for the text node corresponding to,\n // or closest to, the target character.\n for (var i = 0; i < map.length; i += 3) {\n mStart = map[i];\n mEnd = map[i + 1];\n if (ch < mStart) {\n start = 0; end = 1;\n collapse = \"left\";\n } else if (ch < mEnd) {\n start = ch - mStart;\n end = start + 1;\n } else if (i == map.length - 3 || ch == mEnd && map[i + 3] > ch) {\n end = mEnd - mStart;\n start = end - 1;\n if (ch >= mEnd) { collapse = \"right\"; }\n }\n if (start != null) {\n node = map[i + 2];\n if (mStart == mEnd && bias == (node.insertLeft ? \"left\" : \"right\"))\n { collapse = bias; }\n if (bias == \"left\" && start == 0)\n { while (i && map[i - 2] == map[i - 3] && map[i - 1].insertLeft) {\n node = map[(i -= 3) + 2];\n collapse = \"left\";\n } }\n if (bias == \"right\" && start == mEnd - mStart)\n { while (i < map.length - 3 && map[i + 3] == map[i + 4] && !map[i + 5].insertLeft) {\n node = map[(i += 3) + 2];\n collapse = \"right\";\n } }\n break\n }\n }\n return {node: node, start: start, end: end, collapse: collapse, coverStart: mStart, coverEnd: mEnd}\n }\n\n function getUsefulRect(rects, bias) {\n var rect = nullRect;\n if (bias == \"left\") { for (var i = 0; i < rects.length; i++) {\n if ((rect = rects[i]).left != rect.right) { break }\n } } else { for (var i$1 = rects.length - 1; i$1 >= 0; i$1--) {\n if ((rect = rects[i$1]).left != rect.right) { break }\n } }\n return rect\n }\n\n function measureCharInner(cm, prepared, ch, bias) {\n var place = nodeAndOffsetInLineMap(prepared.map, ch, bias);\n var node = place.node, start = place.start, end = place.end, collapse = place.collapse;\n\n var rect;\n if (node.nodeType == 3) { // If it is a text node, use a range to retrieve the coordinates.\n for (var i$1 = 0; i$1 < 4; i$1++) { // Retry a maximum of 4 times when nonsense rectangles are returned\n while (start && isExtendingChar(prepared.line.text.charAt(place.coverStart + start))) { --start; }\n while (place.coverStart + end < place.coverEnd && isExtendingChar(prepared.line.text.charAt(place.coverStart + end))) { ++end; }\n if (ie && ie_version < 9 && start == 0 && end == place.coverEnd - place.coverStart)\n { rect = node.parentNode.getBoundingClientRect(); }\n else\n { rect = getUsefulRect(range(node, start, end).getClientRects(), bias); }\n if (rect.left || rect.right || start == 0) { break }\n end = start;\n start = start - 1;\n collapse = \"right\";\n }\n if (ie && ie_version < 11) { rect = maybeUpdateRectForZooming(cm.display.measure, rect); }\n } else { // If it is a widget, simply get the box for the whole widget.\n if (start > 0) { collapse = bias = \"right\"; }\n var rects;\n if (cm.options.lineWrapping && (rects = node.getClientRects()).length > 1)\n { rect = rects[bias == \"right\" ? rects.length - 1 : 0]; }\n else\n { rect = node.getBoundingClientRect(); }\n }\n if (ie && ie_version < 9 && !start && (!rect || !rect.left && !rect.right)) {\n var rSpan = node.parentNode.getClientRects()[0];\n if (rSpan)\n { rect = {left: rSpan.left, right: rSpan.left + charWidth(cm.display), top: rSpan.top, bottom: rSpan.bottom}; }\n else\n { rect = nullRect; }\n }\n\n var rtop = rect.top - prepared.rect.top, rbot = rect.bottom - prepared.rect.top;\n var mid = (rtop + rbot) / 2;\n var heights = prepared.view.measure.heights;\n var i = 0;\n for (; i < heights.length - 1; i++)\n { if (mid < heights[i]) { break } }\n var top = i ? heights[i - 1] : 0, bot = heights[i];\n var result = {left: (collapse == \"right\" ? rect.right : rect.left) - prepared.rect.left,\n right: (collapse == \"left\" ? rect.left : rect.right) - prepared.rect.left,\n top: top, bottom: bot};\n if (!rect.left && !rect.right) { result.bogus = true; }\n if (!cm.options.singleCursorHeightPerLine) { result.rtop = rtop; result.rbottom = rbot; }\n\n return result\n }\n\n // Work around problem with bounding client rects on ranges being\n // returned incorrectly when zoomed on IE10 and below.\n function maybeUpdateRectForZooming(measure, rect) {\n if (!window.screen || screen.logicalXDPI == null ||\n screen.logicalXDPI == screen.deviceXDPI || !hasBadZoomedRects(measure))\n { return rect }\n var scaleX = screen.logicalXDPI / screen.deviceXDPI;\n var scaleY = screen.logicalYDPI / screen.deviceYDPI;\n return {left: rect.left * scaleX, right: rect.right * scaleX,\n top: rect.top * scaleY, bottom: rect.bottom * scaleY}\n }\n\n function clearLineMeasurementCacheFor(lineView) {\n if (lineView.measure) {\n lineView.measure.cache = {};\n lineView.measure.heights = null;\n if (lineView.rest) { for (var i = 0; i < lineView.rest.length; i++)\n { lineView.measure.caches[i] = {}; } }\n }\n }\n\n function clearLineMeasurementCache(cm) {\n cm.display.externalMeasure = null;\n removeChildren(cm.display.lineMeasure);\n for (var i = 0; i < cm.display.view.length; i++)\n { clearLineMeasurementCacheFor(cm.display.view[i]); }\n }\n\n function clearCaches(cm) {\n clearLineMeasurementCache(cm);\n cm.display.cachedCharWidth = cm.display.cachedTextHeight = cm.display.cachedPaddingH = null;\n if (!cm.options.lineWrapping) { cm.display.maxLineChanged = true; }\n cm.display.lineNumChars = null;\n }\n\n function pageScrollX() {\n // Work around https://bugs.chromium.org/p/chromium/issues/detail?id=489206\n // which causes page_Offset and bounding client rects to use\n // different reference viewports and invalidate our calculations.\n if (chrome && android) { return -(document.body.getBoundingClientRect().left - parseInt(getComputedStyle(document.body).marginLeft)) }\n return window.pageXOffset || (document.documentElement || document.body).scrollLeft\n }\n function pageScrollY() {\n if (chrome && android) { return -(document.body.getBoundingClientRect().top - parseInt(getComputedStyle(document.body).marginTop)) }\n return window.pageYOffset || (document.documentElement || document.body).scrollTop\n }\n\n function widgetTopHeight(lineObj) {\n var height = 0;\n if (lineObj.widgets) { for (var i = 0; i < lineObj.widgets.length; ++i) { if (lineObj.widgets[i].above)\n { height += widgetHeight(lineObj.widgets[i]); } } }\n return height\n }\n\n // Converts a {top, bottom, left, right} box from line-local\n // coordinates into another coordinate system. Context may be one of\n // \"line\", \"div\" (display.lineDiv), \"local\"./null (editor), \"window\",\n // or \"page\".\n function intoCoordSystem(cm, lineObj, rect, context, includeWidgets) {\n if (!includeWidgets) {\n var height = widgetTopHeight(lineObj);\n rect.top += height; rect.bottom += height;\n }\n if (context == \"line\") { return rect }\n if (!context) { context = \"local\"; }\n var yOff = heightAtLine(lineObj);\n if (context == \"local\") { yOff += paddingTop(cm.display); }\n else { yOff -= cm.display.viewOffset; }\n if (context == \"page\" || context == \"window\") {\n var lOff = cm.display.lineSpace.getBoundingClientRect();\n yOff += lOff.top + (context == \"window\" ? 0 : pageScrollY());\n var xOff = lOff.left + (context == \"window\" ? 0 : pageScrollX());\n rect.left += xOff; rect.right += xOff;\n }\n rect.top += yOff; rect.bottom += yOff;\n return rect\n }\n\n // Coverts a box from \"div\" coords to another coordinate system.\n // Context may be \"window\", \"page\", \"div\", or \"local\"./null.\n function fromCoordSystem(cm, coords, context) {\n if (context == \"div\") { return coords }\n var left = coords.left, top = coords.top;\n // First move into \"page\" coordinate system\n if (context == \"page\") {\n left -= pageScrollX();\n top -= pageScrollY();\n } else if (context == \"local\" || !context) {\n var localBox = cm.display.sizer.getBoundingClientRect();\n left += localBox.left;\n top += localBox.top;\n }\n\n var lineSpaceBox = cm.display.lineSpace.getBoundingClientRect();\n return {left: left - lineSpaceBox.left, top: top - lineSpaceBox.top}\n }\n\n function charCoords(cm, pos, context, lineObj, bias) {\n if (!lineObj) { lineObj = getLine(cm.doc, pos.line); }\n return intoCoordSystem(cm, lineObj, measureChar(cm, lineObj, pos.ch, bias), context)\n }\n\n // Returns a box for a given cursor position, which may have an\n // 'other' property containing the position of the secondary cursor\n // on a bidi boundary.\n // A cursor Pos(line, char, \"before\") is on the same visual line as `char - 1`\n // and after `char - 1` in writing order of `char - 1`\n // A cursor Pos(line, char, \"after\") is on the same visual line as `char`\n // and before `char` in writing order of `char`\n // Examples (upper-case letters are RTL, lower-case are LTR):\n // Pos(0, 1, ...)\n // before after\n // ab a|b a|b\n // aB a|B aB|\n // Ab |Ab A|b\n // AB B|A B|A\n // Every position after the last character on a line is considered to stick\n // to the last character on the line.\n function cursorCoords(cm, pos, context, lineObj, preparedMeasure, varHeight) {\n lineObj = lineObj || getLine(cm.doc, pos.line);\n if (!preparedMeasure) { preparedMeasure = prepareMeasureForLine(cm, lineObj); }\n function get(ch, right) {\n var m = measureCharPrepared(cm, preparedMeasure, ch, right ? \"right\" : \"left\", varHeight);\n if (right) { m.left = m.right; } else { m.right = m.left; }\n return intoCoordSystem(cm, lineObj, m, context)\n }\n var order = getOrder(lineObj, cm.doc.direction), ch = pos.ch, sticky = pos.sticky;\n if (ch >= lineObj.text.length) {\n ch = lineObj.text.length;\n sticky = \"before\";\n } else if (ch <= 0) {\n ch = 0;\n sticky = \"after\";\n }\n if (!order) { return get(sticky == \"before\" ? ch - 1 : ch, sticky == \"before\") }\n\n function getBidi(ch, partPos, invert) {\n var part = order[partPos], right = part.level == 1;\n return get(invert ? ch - 1 : ch, right != invert)\n }\n var partPos = getBidiPartAt(order, ch, sticky);\n var other = bidiOther;\n var val = getBidi(ch, partPos, sticky == \"before\");\n if (other != null) { val.other = getBidi(ch, other, sticky != \"before\"); }\n return val\n }\n\n // Used to cheaply estimate the coordinates for a position. Used for\n // intermediate scroll updates.\n function estimateCoords(cm, pos) {\n var left = 0;\n pos = clipPos(cm.doc, pos);\n if (!cm.options.lineWrapping) { left = charWidth(cm.display) * pos.ch; }\n var lineObj = getLine(cm.doc, pos.line);\n var top = heightAtLine(lineObj) + paddingTop(cm.display);\n return {left: left, right: left, top: top, bottom: top + lineObj.height}\n }\n\n // Positions returned by coordsChar contain some extra information.\n // xRel is the relative x position of the input coordinates compared\n // to the found position (so xRel > 0 means the coordinates are to\n // the right of the character position, for example). When outside\n // is true, that means the coordinates lie outside the line's\n // vertical range.\n function PosWithInfo(line, ch, sticky, outside, xRel) {\n var pos = Pos(line, ch, sticky);\n pos.xRel = xRel;\n if (outside) { pos.outside = outside; }\n return pos\n }\n\n // Compute the character position closest to the given coordinates.\n // Input must be lineSpace-local (\"div\" coordinate system).\n function coordsChar(cm, x, y) {\n var doc = cm.doc;\n y += cm.display.viewOffset;\n if (y < 0) { return PosWithInfo(doc.first, 0, null, -1, -1) }\n var lineN = lineAtHeight(doc, y), last = doc.first + doc.size - 1;\n if (lineN > last)\n { return PosWithInfo(doc.first + doc.size - 1, getLine(doc, last).text.length, null, 1, 1) }\n if (x < 0) { x = 0; }\n\n var lineObj = getLine(doc, lineN);\n for (;;) {\n var found = coordsCharInner(cm, lineObj, lineN, x, y);\n var collapsed = collapsedSpanAround(lineObj, found.ch + (found.xRel > 0 || found.outside > 0 ? 1 : 0));\n if (!collapsed) { return found }\n var rangeEnd = collapsed.find(1);\n if (rangeEnd.line == lineN) { return rangeEnd }\n lineObj = getLine(doc, lineN = rangeEnd.line);\n }\n }\n\n function wrappedLineExtent(cm, lineObj, preparedMeasure, y) {\n y -= widgetTopHeight(lineObj);\n var end = lineObj.text.length;\n var begin = findFirst(function (ch) { return measureCharPrepared(cm, preparedMeasure, ch - 1).bottom <= y; }, end, 0);\n end = findFirst(function (ch) { return measureCharPrepared(cm, preparedMeasure, ch).top > y; }, begin, end);\n return {begin: begin, end: end}\n }\n\n function wrappedLineExtentChar(cm, lineObj, preparedMeasure, target) {\n if (!preparedMeasure) { preparedMeasure = prepareMeasureForLine(cm, lineObj); }\n var targetTop = intoCoordSystem(cm, lineObj, measureCharPrepared(cm, preparedMeasure, target), \"line\").top;\n return wrappedLineExtent(cm, lineObj, preparedMeasure, targetTop)\n }\n\n // Returns true if the given side of a box is after the given\n // coordinates, in top-to-bottom, left-to-right order.\n function boxIsAfter(box, x, y, left) {\n return box.bottom <= y ? false : box.top > y ? true : (left ? box.left : box.right) > x\n }\n\n function coordsCharInner(cm, lineObj, lineNo, x, y) {\n // Move y into line-local coordinate space\n y -= heightAtLine(lineObj);\n var preparedMeasure = prepareMeasureForLine(cm, lineObj);\n // When directly calling `measureCharPrepared`, we have to adjust\n // for the widgets at this line.\n var widgetHeight = widgetTopHeight(lineObj);\n var begin = 0, end = lineObj.text.length, ltr = true;\n\n var order = getOrder(lineObj, cm.doc.direction);\n // If the line isn't plain left-to-right text, first figure out\n // which bidi section the coordinates fall into.\n if (order) {\n var part = (cm.options.lineWrapping ? coordsBidiPartWrapped : coordsBidiPart)\n (cm, lineObj, lineNo, preparedMeasure, order, x, y);\n ltr = part.level != 1;\n // The awkward -1 offsets are needed because findFirst (called\n // on these below) will treat its first bound as inclusive,\n // second as exclusive, but we want to actually address the\n // characters in the part's range\n begin = ltr ? part.from : part.to - 1;\n end = ltr ? part.to : part.from - 1;\n }\n\n // A binary search to find the first character whose bounding box\n // starts after the coordinates. If we run across any whose box wrap\n // the coordinates, store that.\n var chAround = null, boxAround = null;\n var ch = findFirst(function (ch) {\n var box = measureCharPrepared(cm, preparedMeasure, ch);\n box.top += widgetHeight; box.bottom += widgetHeight;\n if (!boxIsAfter(box, x, y, false)) { return false }\n if (box.top <= y && box.left <= x) {\n chAround = ch;\n boxAround = box;\n }\n return true\n }, begin, end);\n\n var baseX, sticky, outside = false;\n // If a box around the coordinates was found, use that\n if (boxAround) {\n // Distinguish coordinates nearer to the left or right side of the box\n var atLeft = x - boxAround.left < boxAround.right - x, atStart = atLeft == ltr;\n ch = chAround + (atStart ? 0 : 1);\n sticky = atStart ? \"after\" : \"before\";\n baseX = atLeft ? boxAround.left : boxAround.right;\n } else {\n // (Adjust for extended bound, if necessary.)\n if (!ltr && (ch == end || ch == begin)) { ch++; }\n // To determine which side to associate with, get the box to the\n // left of the character and compare it's vertical position to the\n // coordinates\n sticky = ch == 0 ? \"after\" : ch == lineObj.text.length ? \"before\" :\n (measureCharPrepared(cm, preparedMeasure, ch - (ltr ? 1 : 0)).bottom + widgetHeight <= y) == ltr ?\n \"after\" : \"before\";\n // Now get accurate coordinates for this place, in order to get a\n // base X position\n var coords = cursorCoords(cm, Pos(lineNo, ch, sticky), \"line\", lineObj, preparedMeasure);\n baseX = coords.left;\n outside = y < coords.top ? -1 : y >= coords.bottom ? 1 : 0;\n }\n\n ch = skipExtendingChars(lineObj.text, ch, 1);\n return PosWithInfo(lineNo, ch, sticky, outside, x - baseX)\n }\n\n function coordsBidiPart(cm, lineObj, lineNo, preparedMeasure, order, x, y) {\n // Bidi parts are sorted left-to-right, and in a non-line-wrapping\n // situation, we can take this ordering to correspond to the visual\n // ordering. This finds the first part whose end is after the given\n // coordinates.\n var index = findFirst(function (i) {\n var part = order[i], ltr = part.level != 1;\n return boxIsAfter(cursorCoords(cm, Pos(lineNo, ltr ? part.to : part.from, ltr ? \"before\" : \"after\"),\n \"line\", lineObj, preparedMeasure), x, y, true)\n }, 0, order.length - 1);\n var part = order[index];\n // If this isn't the first part, the part's start is also after\n // the coordinates, and the coordinates aren't on the same line as\n // that start, move one part back.\n if (index > 0) {\n var ltr = part.level != 1;\n var start = cursorCoords(cm, Pos(lineNo, ltr ? part.from : part.to, ltr ? \"after\" : \"before\"),\n \"line\", lineObj, preparedMeasure);\n if (boxIsAfter(start, x, y, true) && start.top > y)\n { part = order[index - 1]; }\n }\n return part\n }\n\n function coordsBidiPartWrapped(cm, lineObj, _lineNo, preparedMeasure, order, x, y) {\n // In a wrapped line, rtl text on wrapping boundaries can do things\n // that don't correspond to the ordering in our `order` array at\n // all, so a binary search doesn't work, and we want to return a\n // part that only spans one line so that the binary search in\n // coordsCharInner is safe. As such, we first find the extent of the\n // wrapped line, and then do a flat search in which we discard any\n // spans that aren't on the line.\n var ref = wrappedLineExtent(cm, lineObj, preparedMeasure, y);\n var begin = ref.begin;\n var end = ref.end;\n if (/\\s/.test(lineObj.text.charAt(end - 1))) { end--; }\n var part = null, closestDist = null;\n for (var i = 0; i < order.length; i++) {\n var p = order[i];\n if (p.from >= end || p.to <= begin) { continue }\n var ltr = p.level != 1;\n var endX = measureCharPrepared(cm, preparedMeasure, ltr ? Math.min(end, p.to) - 1 : Math.max(begin, p.from)).right;\n // Weigh against spans ending before this, so that they are only\n // picked if nothing ends after\n var dist = endX < x ? x - endX + 1e9 : endX - x;\n if (!part || closestDist > dist) {\n part = p;\n closestDist = dist;\n }\n }\n if (!part) { part = order[order.length - 1]; }\n // Clip the part to the wrapped line.\n if (part.from < begin) { part = {from: begin, to: part.to, level: part.level}; }\n if (part.to > end) { part = {from: part.from, to: end, level: part.level}; }\n return part\n }\n\n var measureText;\n // Compute the default text height.\n function textHeight(display) {\n if (display.cachedTextHeight != null) { return display.cachedTextHeight }\n if (measureText == null) {\n measureText = elt(\"pre\", null, \"CodeMirror-line-like\");\n // Measure a bunch of lines, for browsers that compute\n // fractional heights.\n for (var i = 0; i < 49; ++i) {\n measureText.appendChild(document.createTextNode(\"x\"));\n measureText.appendChild(elt(\"br\"));\n }\n measureText.appendChild(document.createTextNode(\"x\"));\n }\n removeChildrenAndAdd(display.measure, measureText);\n var height = measureText.offsetHeight / 50;\n if (height > 3) { display.cachedTextHeight = height; }\n removeChildren(display.measure);\n return height || 1\n }\n\n // Compute the default character width.\n function charWidth(display) {\n if (display.cachedCharWidth != null) { return display.cachedCharWidth }\n var anchor = elt(\"span\", \"xxxxxxxxxx\");\n var pre = elt(\"pre\", [anchor], \"CodeMirror-line-like\");\n removeChildrenAndAdd(display.measure, pre);\n var rect = anchor.getBoundingClientRect(), width = (rect.right - rect.left) / 10;\n if (width > 2) { display.cachedCharWidth = width; }\n return width || 10\n }\n\n // Do a bulk-read of the DOM positions and sizes needed to draw the\n // view, so that we don't interleave reading and writing to the DOM.\n function getDimensions(cm) {\n var d = cm.display, left = {}, width = {};\n var gutterLeft = d.gutters.clientLeft;\n for (var n = d.gutters.firstChild, i = 0; n; n = n.nextSibling, ++i) {\n var id = cm.display.gutterSpecs[i].className;\n left[id] = n.offsetLeft + n.clientLeft + gutterLeft;\n width[id] = n.clientWidth;\n }\n return {fixedPos: compensateForHScroll(d),\n gutterTotalWidth: d.gutters.offsetWidth,\n gutterLeft: left,\n gutterWidth: width,\n wrapperWidth: d.wrapper.clientWidth}\n }\n\n // Computes display.scroller.scrollLeft + display.gutters.offsetWidth,\n // but using getBoundingClientRect to get a sub-pixel-accurate\n // result.\n function compensateForHScroll(display) {\n return display.scroller.getBoundingClientRect().left - display.sizer.getBoundingClientRect().left\n }\n\n // Returns a function that estimates the height of a line, to use as\n // first approximation until the line becomes visible (and is thus\n // properly measurable).\n function estimateHeight(cm) {\n var th = textHeight(cm.display), wrapping = cm.options.lineWrapping;\n var perLine = wrapping && Math.max(5, cm.display.scroller.clientWidth / charWidth(cm.display) - 3);\n return function (line) {\n if (lineIsHidden(cm.doc, line)) { return 0 }\n\n var widgetsHeight = 0;\n if (line.widgets) { for (var i = 0; i < line.widgets.length; i++) {\n if (line.widgets[i].height) { widgetsHeight += line.widgets[i].height; }\n } }\n\n if (wrapping)\n { return widgetsHeight + (Math.ceil(line.text.length / perLine) || 1) * th }\n else\n { return widgetsHeight + th }\n }\n }\n\n function estimateLineHeights(cm) {\n var doc = cm.doc, est = estimateHeight(cm);\n doc.iter(function (line) {\n var estHeight = est(line);\n if (estHeight != line.height) { updateLineHeight(line, estHeight); }\n });\n }\n\n // Given a mouse event, find the corresponding position. If liberal\n // is false, it checks whether a gutter or scrollbar was clicked,\n // and returns null if it was. forRect is used by rectangular\n // selections, and tries to estimate a character position even for\n // coordinates beyond the right of the text.\n function posFromMouse(cm, e, liberal, forRect) {\n var display = cm.display;\n if (!liberal && e_target(e).getAttribute(\"cm-not-content\") == \"true\") { return null }\n\n var x, y, space = display.lineSpace.getBoundingClientRect();\n // Fails unpredictably on IE[67] when mouse is dragged around quickly.\n try { x = e.clientX - space.left; y = e.clientY - space.top; }\n catch (e$1) { return null }\n var coords = coordsChar(cm, x, y), line;\n if (forRect && coords.xRel > 0 && (line = getLine(cm.doc, coords.line).text).length == coords.ch) {\n var colDiff = countColumn(line, line.length, cm.options.tabSize) - line.length;\n coords = Pos(coords.line, Math.max(0, Math.round((x - paddingH(cm.display).left) / charWidth(cm.display)) - colDiff));\n }\n return coords\n }\n\n // Find the view element corresponding to a given line. Return null\n // when the line isn't visible.\n function findViewIndex(cm, n) {\n if (n >= cm.display.viewTo) { return null }\n n -= cm.display.viewFrom;\n if (n < 0) { return null }\n var view = cm.display.view;\n for (var i = 0; i < view.length; i++) {\n n -= view[i].size;\n if (n < 0) { return i }\n }\n }\n\n // Updates the display.view data structure for a given change to the\n // document. From and to are in pre-change coordinates. Lendiff is\n // the amount of lines added or subtracted by the change. This is\n // used for changes that span multiple lines, or change the way\n // lines are divided into visual lines. regLineChange (below)\n // registers single-line changes.\n function regChange(cm, from, to, lendiff) {\n if (from == null) { from = cm.doc.first; }\n if (to == null) { to = cm.doc.first + cm.doc.size; }\n if (!lendiff) { lendiff = 0; }\n\n var display = cm.display;\n if (lendiff && to < display.viewTo &&\n (display.updateLineNumbers == null || display.updateLineNumbers > from))\n { display.updateLineNumbers = from; }\n\n cm.curOp.viewChanged = true;\n\n if (from >= display.viewTo) { // Change after\n if (sawCollapsedSpans && visualLineNo(cm.doc, from) < display.viewTo)\n { resetView(cm); }\n } else if (to <= display.viewFrom) { // Change before\n if (sawCollapsedSpans && visualLineEndNo(cm.doc, to + lendiff) > display.viewFrom) {\n resetView(cm);\n } else {\n display.viewFrom += lendiff;\n display.viewTo += lendiff;\n }\n } else if (from <= display.viewFrom && to >= display.viewTo) { // Full overlap\n resetView(cm);\n } else if (from <= display.viewFrom) { // Top overlap\n var cut = viewCuttingPoint(cm, to, to + lendiff, 1);\n if (cut) {\n display.view = display.view.slice(cut.index);\n display.viewFrom = cut.lineN;\n display.viewTo += lendiff;\n } else {\n resetView(cm);\n }\n } else if (to >= display.viewTo) { // Bottom overlap\n var cut$1 = viewCuttingPoint(cm, from, from, -1);\n if (cut$1) {\n display.view = display.view.slice(0, cut$1.index);\n display.viewTo = cut$1.lineN;\n } else {\n resetView(cm);\n }\n } else { // Gap in the middle\n var cutTop = viewCuttingPoint(cm, from, from, -1);\n var cutBot = viewCuttingPoint(cm, to, to + lendiff, 1);\n if (cutTop && cutBot) {\n display.view = display.view.slice(0, cutTop.index)\n .concat(buildViewArray(cm, cutTop.lineN, cutBot.lineN))\n .concat(display.view.slice(cutBot.index));\n display.viewTo += lendiff;\n } else {\n resetView(cm);\n }\n }\n\n var ext = display.externalMeasured;\n if (ext) {\n if (to < ext.lineN)\n { ext.lineN += lendiff; }\n else if (from < ext.lineN + ext.size)\n { display.externalMeasured = null; }\n }\n }\n\n // Register a change to a single line. Type must be one of \"text\",\n // \"gutter\", \"class\", \"widget\"\n function regLineChange(cm, line, type) {\n cm.curOp.viewChanged = true;\n var display = cm.display, ext = cm.display.externalMeasured;\n if (ext && line >= ext.lineN && line < ext.lineN + ext.size)\n { display.externalMeasured = null; }\n\n if (line < display.viewFrom || line >= display.viewTo) { return }\n var lineView = display.view[findViewIndex(cm, line)];\n if (lineView.node == null) { return }\n var arr = lineView.changes || (lineView.changes = []);\n if (indexOf(arr, type) == -1) { arr.push(type); }\n }\n\n // Clear the view.\n function resetView(cm) {\n cm.display.viewFrom = cm.display.viewTo = cm.doc.first;\n cm.display.view = [];\n cm.display.viewOffset = 0;\n }\n\n function viewCuttingPoint(cm, oldN, newN, dir) {\n var index = findViewIndex(cm, oldN), diff, view = cm.display.view;\n if (!sawCollapsedSpans || newN == cm.doc.first + cm.doc.size)\n { return {index: index, lineN: newN} }\n var n = cm.display.viewFrom;\n for (var i = 0; i < index; i++)\n { n += view[i].size; }\n if (n != oldN) {\n if (dir > 0) {\n if (index == view.length - 1) { return null }\n diff = (n + view[index].size) - oldN;\n index++;\n } else {\n diff = n - oldN;\n }\n oldN += diff; newN += diff;\n }\n while (visualLineNo(cm.doc, newN) != newN) {\n if (index == (dir < 0 ? 0 : view.length - 1)) { return null }\n newN += dir * view[index - (dir < 0 ? 1 : 0)].size;\n index += dir;\n }\n return {index: index, lineN: newN}\n }\n\n // Force the view to cover a given range, adding empty view element\n // or clipping off existing ones as needed.\n function adjustView(cm, from, to) {\n var display = cm.display, view = display.view;\n if (view.length == 0 || from >= display.viewTo || to <= display.viewFrom) {\n display.view = buildViewArray(cm, from, to);\n display.viewFrom = from;\n } else {\n if (display.viewFrom > from)\n { display.view = buildViewArray(cm, from, display.viewFrom).concat(display.view); }\n else if (display.viewFrom < from)\n { display.view = display.view.slice(findViewIndex(cm, from)); }\n display.viewFrom = from;\n if (display.viewTo < to)\n { display.view = display.view.concat(buildViewArray(cm, display.viewTo, to)); }\n else if (display.viewTo > to)\n { display.view = display.view.slice(0, findViewIndex(cm, to)); }\n }\n display.viewTo = to;\n }\n\n // Count the number of lines in the view whose DOM representation is\n // out of date (or nonexistent).\n function countDirtyView(cm) {\n var view = cm.display.view, dirty = 0;\n for (var i = 0; i < view.length; i++) {\n var lineView = view[i];\n if (!lineView.hidden && (!lineView.node || lineView.changes)) { ++dirty; }\n }\n return dirty\n }\n\n function updateSelection(cm) {\n cm.display.input.showSelection(cm.display.input.prepareSelection());\n }\n\n function prepareSelection(cm, primary) {\n if ( primary === void 0 ) primary = true;\n\n var doc = cm.doc, result = {};\n var curFragment = result.cursors = document.createDocumentFragment();\n var selFragment = result.selection = document.createDocumentFragment();\n\n for (var i = 0; i < doc.sel.ranges.length; i++) {\n if (!primary && i == doc.sel.primIndex) { continue }\n var range = doc.sel.ranges[i];\n if (range.from().line >= cm.display.viewTo || range.to().line < cm.display.viewFrom) { continue }\n var collapsed = range.empty();\n if (collapsed || cm.options.showCursorWhenSelecting)\n { drawSelectionCursor(cm, range.head, curFragment); }\n if (!collapsed)\n { drawSelectionRange(cm, range, selFragment); }\n }\n return result\n }\n\n // Draws a cursor for the given range\n function drawSelectionCursor(cm, head, output) {\n var pos = cursorCoords(cm, head, \"div\", null, null, !cm.options.singleCursorHeightPerLine);\n\n var cursor = output.appendChild(elt(\"div\", \"\\u00a0\", \"CodeMirror-cursor\"));\n cursor.style.left = pos.left + \"px\";\n cursor.style.top = pos.top + \"px\";\n cursor.style.height = Math.max(0, pos.bottom - pos.top) * cm.options.cursorHeight + \"px\";\n\n if (pos.other) {\n // Secondary cursor, shown when on a 'jump' in bi-directional text\n var otherCursor = output.appendChild(elt(\"div\", \"\\u00a0\", \"CodeMirror-cursor CodeMirror-secondarycursor\"));\n otherCursor.style.display = \"\";\n otherCursor.style.left = pos.other.left + \"px\";\n otherCursor.style.top = pos.other.top + \"px\";\n otherCursor.style.height = (pos.other.bottom - pos.other.top) * .85 + \"px\";\n }\n }\n\n function cmpCoords(a, b) { return a.top - b.top || a.left - b.left }\n\n // Draws the given range as a highlighted selection\n function drawSelectionRange(cm, range, output) {\n var display = cm.display, doc = cm.doc;\n var fragment = document.createDocumentFragment();\n var padding = paddingH(cm.display), leftSide = padding.left;\n var rightSide = Math.max(display.sizerWidth, displayWidth(cm) - display.sizer.offsetLeft) - padding.right;\n var docLTR = doc.direction == \"ltr\";\n\n function add(left, top, width, bottom) {\n if (top < 0) { top = 0; }\n top = Math.round(top);\n bottom = Math.round(bottom);\n fragment.appendChild(elt(\"div\", null, \"CodeMirror-selected\", (\"position: absolute; left: \" + left + \"px;\\n top: \" + top + \"px; width: \" + (width == null ? rightSide - left : width) + \"px;\\n height: \" + (bottom - top) + \"px\")));\n }\n\n function drawForLine(line, fromArg, toArg) {\n var lineObj = getLine(doc, line);\n var lineLen = lineObj.text.length;\n var start, end;\n function coords(ch, bias) {\n return charCoords(cm, Pos(line, ch), \"div\", lineObj, bias)\n }\n\n function wrapX(pos, dir, side) {\n var extent = wrappedLineExtentChar(cm, lineObj, null, pos);\n var prop = (dir == \"ltr\") == (side == \"after\") ? \"left\" : \"right\";\n var ch = side == \"after\" ? extent.begin : extent.end - (/\\s/.test(lineObj.text.charAt(extent.end - 1)) ? 2 : 1);\n return coords(ch, prop)[prop]\n }\n\n var order = getOrder(lineObj, doc.direction);\n iterateBidiSections(order, fromArg || 0, toArg == null ? lineLen : toArg, function (from, to, dir, i) {\n var ltr = dir == \"ltr\";\n var fromPos = coords(from, ltr ? \"left\" : \"right\");\n var toPos = coords(to - 1, ltr ? \"right\" : \"left\");\n\n var openStart = fromArg == null && from == 0, openEnd = toArg == null && to == lineLen;\n var first = i == 0, last = !order || i == order.length - 1;\n if (toPos.top - fromPos.top <= 3) { // Single line\n var openLeft = (docLTR ? openStart : openEnd) && first;\n var openRight = (docLTR ? openEnd : openStart) && last;\n var left = openLeft ? leftSide : (ltr ? fromPos : toPos).left;\n var right = openRight ? rightSide : (ltr ? toPos : fromPos).right;\n add(left, fromPos.top, right - left, fromPos.bottom);\n } else { // Multiple lines\n var topLeft, topRight, botLeft, botRight;\n if (ltr) {\n topLeft = docLTR && openStart && first ? leftSide : fromPos.left;\n topRight = docLTR ? rightSide : wrapX(from, dir, \"before\");\n botLeft = docLTR ? leftSide : wrapX(to, dir, \"after\");\n botRight = docLTR && openEnd && last ? rightSide : toPos.right;\n } else {\n topLeft = !docLTR ? leftSide : wrapX(from, dir, \"before\");\n topRight = !docLTR && openStart && first ? rightSide : fromPos.right;\n botLeft = !docLTR && openEnd && last ? leftSide : toPos.left;\n botRight = !docLTR ? rightSide : wrapX(to, dir, \"after\");\n }\n add(topLeft, fromPos.top, topRight - topLeft, fromPos.bottom);\n if (fromPos.bottom < toPos.top) { add(leftSide, fromPos.bottom, null, toPos.top); }\n add(botLeft, toPos.top, botRight - botLeft, toPos.bottom);\n }\n\n if (!start || cmpCoords(fromPos, start) < 0) { start = fromPos; }\n if (cmpCoords(toPos, start) < 0) { start = toPos; }\n if (!end || cmpCoords(fromPos, end) < 0) { end = fromPos; }\n if (cmpCoords(toPos, end) < 0) { end = toPos; }\n });\n return {start: start, end: end}\n }\n\n var sFrom = range.from(), sTo = range.to();\n if (sFrom.line == sTo.line) {\n drawForLine(sFrom.line, sFrom.ch, sTo.ch);\n } else {\n var fromLine = getLine(doc, sFrom.line), toLine = getLine(doc, sTo.line);\n var singleVLine = visualLine(fromLine) == visualLine(toLine);\n var leftEnd = drawForLine(sFrom.line, sFrom.ch, singleVLine ? fromLine.text.length + 1 : null).end;\n var rightStart = drawForLine(sTo.line, singleVLine ? 0 : null, sTo.ch).start;\n if (singleVLine) {\n if (leftEnd.top < rightStart.top - 2) {\n add(leftEnd.right, leftEnd.top, null, leftEnd.bottom);\n add(leftSide, rightStart.top, rightStart.left, rightStart.bottom);\n } else {\n add(leftEnd.right, leftEnd.top, rightStart.left - leftEnd.right, leftEnd.bottom);\n }\n }\n if (leftEnd.bottom < rightStart.top)\n { add(leftSide, leftEnd.bottom, null, rightStart.top); }\n }\n\n output.appendChild(fragment);\n }\n\n // Cursor-blinking\n function restartBlink(cm) {\n if (!cm.state.focused) { return }\n var display = cm.display;\n clearInterval(display.blinker);\n var on = true;\n display.cursorDiv.style.visibility = \"\";\n if (cm.options.cursorBlinkRate > 0)\n { display.blinker = setInterval(function () {\n if (!cm.hasFocus()) { onBlur(cm); }\n display.cursorDiv.style.visibility = (on = !on) ? \"\" : \"hidden\";\n }, cm.options.cursorBlinkRate); }\n else if (cm.options.cursorBlinkRate < 0)\n { display.cursorDiv.style.visibility = \"hidden\"; }\n }\n\n function ensureFocus(cm) {\n if (!cm.hasFocus()) {\n cm.display.input.focus();\n if (!cm.state.focused) { onFocus(cm); }\n }\n }\n\n function delayBlurEvent(cm) {\n cm.state.delayingBlurEvent = true;\n setTimeout(function () { if (cm.state.delayingBlurEvent) {\n cm.state.delayingBlurEvent = false;\n if (cm.state.focused) { onBlur(cm); }\n } }, 100);\n }\n\n function onFocus(cm, e) {\n if (cm.state.delayingBlurEvent && !cm.state.draggingText) { cm.state.delayingBlurEvent = false; }\n\n if (cm.options.readOnly == \"nocursor\") { return }\n if (!cm.state.focused) {\n signal(cm, \"focus\", cm, e);\n cm.state.focused = true;\n addClass(cm.display.wrapper, \"CodeMirror-focused\");\n // This test prevents this from firing when a context\n // menu is closed (since the input reset would kill the\n // select-all detection hack)\n if (!cm.curOp && cm.display.selForContextMenu != cm.doc.sel) {\n cm.display.input.reset();\n if (webkit) { setTimeout(function () { return cm.display.input.reset(true); }, 20); } // Issue #1730\n }\n cm.display.input.receivedFocus();\n }\n restartBlink(cm);\n }\n function onBlur(cm, e) {\n if (cm.state.delayingBlurEvent) { return }\n\n if (cm.state.focused) {\n signal(cm, \"blur\", cm, e);\n cm.state.focused = false;\n rmClass(cm.display.wrapper, \"CodeMirror-focused\");\n }\n clearInterval(cm.display.blinker);\n setTimeout(function () { if (!cm.state.focused) { cm.display.shift = false; } }, 150);\n }\n\n // Read the actual heights of the rendered lines, and update their\n // stored heights to match.\n function updateHeightsInViewport(cm) {\n var display = cm.display;\n var prevBottom = display.lineDiv.offsetTop;\n for (var i = 0; i < display.view.length; i++) {\n var cur = display.view[i], wrapping = cm.options.lineWrapping;\n var height = (void 0), width = 0;\n if (cur.hidden) { continue }\n if (ie && ie_version < 8) {\n var bot = cur.node.offsetTop + cur.node.offsetHeight;\n height = bot - prevBottom;\n prevBottom = bot;\n } else {\n var box = cur.node.getBoundingClientRect();\n height = box.bottom - box.top;\n // Check that lines don't extend past the right of the current\n // editor width\n if (!wrapping && cur.text.firstChild)\n { width = cur.text.firstChild.getBoundingClientRect().right - box.left - 1; }\n }\n var diff = cur.line.height - height;\n if (diff > .005 || diff < -.005) {\n updateLineHeight(cur.line, height);\n updateWidgetHeight(cur.line);\n if (cur.rest) { for (var j = 0; j < cur.rest.length; j++)\n { updateWidgetHeight(cur.rest[j]); } }\n }\n if (width > cm.display.sizerWidth) {\n var chWidth = Math.ceil(width / charWidth(cm.display));\n if (chWidth > cm.display.maxLineLength) {\n cm.display.maxLineLength = chWidth;\n cm.display.maxLine = cur.line;\n cm.display.maxLineChanged = true;\n }\n }\n }\n }\n\n // Read and store the height of line widgets associated with the\n // given line.\n function updateWidgetHeight(line) {\n if (line.widgets) { for (var i = 0; i < line.widgets.length; ++i) {\n var w = line.widgets[i], parent = w.node.parentNode;\n if (parent) { w.height = parent.offsetHeight; }\n } }\n }\n\n // Compute the lines that are visible in a given viewport (defaults\n // the the current scroll position). viewport may contain top,\n // height, and ensure (see op.scrollToPos) properties.\n function visibleLines(display, doc, viewport) {\n var top = viewport && viewport.top != null ? Math.max(0, viewport.top) : display.scroller.scrollTop;\n top = Math.floor(top - paddingTop(display));\n var bottom = viewport && viewport.bottom != null ? viewport.bottom : top + display.wrapper.clientHeight;\n\n var from = lineAtHeight(doc, top), to = lineAtHeight(doc, bottom);\n // Ensure is a {from: {line, ch}, to: {line, ch}} object, and\n // forces those lines into the viewport (if possible).\n if (viewport && viewport.ensure) {\n var ensureFrom = viewport.ensure.from.line, ensureTo = viewport.ensure.to.line;\n if (ensureFrom < from) {\n from = ensureFrom;\n to = lineAtHeight(doc, heightAtLine(getLine(doc, ensureFrom)) + display.wrapper.clientHeight);\n } else if (Math.min(ensureTo, doc.lastLine()) >= to) {\n from = lineAtHeight(doc, heightAtLine(getLine(doc, ensureTo)) - display.wrapper.clientHeight);\n to = ensureTo;\n }\n }\n return {from: from, to: Math.max(to, from + 1)}\n }\n\n // SCROLLING THINGS INTO VIEW\n\n // If an editor sits on the top or bottom of the window, partially\n // scrolled out of view, this ensures that the cursor is visible.\n function maybeScrollWindow(cm, rect) {\n if (signalDOMEvent(cm, \"scrollCursorIntoView\")) { return }\n\n var display = cm.display, box = display.sizer.getBoundingClientRect(), doScroll = null;\n if (rect.top + box.top < 0) { doScroll = true; }\n else if (rect.bottom + box.top > (window.innerHeight || document.documentElement.clientHeight)) { doScroll = false; }\n if (doScroll != null && !phantom) {\n var scrollNode = elt(\"div\", \"\\u200b\", null, (\"position: absolute;\\n top: \" + (rect.top - display.viewOffset - paddingTop(cm.display)) + \"px;\\n height: \" + (rect.bottom - rect.top + scrollGap(cm) + display.barHeight) + \"px;\\n left: \" + (rect.left) + \"px; width: \" + (Math.max(2, rect.right - rect.left)) + \"px;\"));\n cm.display.lineSpace.appendChild(scrollNode);\n scrollNode.scrollIntoView(doScroll);\n cm.display.lineSpace.removeChild(scrollNode);\n }\n }\n\n // Scroll a given position into view (immediately), verifying that\n // it actually became visible (as line heights are accurately\n // measured, the position of something may 'drift' during drawing).\n function scrollPosIntoView(cm, pos, end, margin) {\n if (margin == null) { margin = 0; }\n var rect;\n if (!cm.options.lineWrapping && pos == end) {\n // Set pos and end to the cursor positions around the character pos sticks to\n // If pos.sticky == \"before\", that is around pos.ch - 1, otherwise around pos.ch\n // If pos == Pos(_, 0, \"before\"), pos and end are unchanged\n end = pos.sticky == \"before\" ? Pos(pos.line, pos.ch + 1, \"before\") : pos;\n pos = pos.ch ? Pos(pos.line, pos.sticky == \"before\" ? pos.ch - 1 : pos.ch, \"after\") : pos;\n }\n for (var limit = 0; limit < 5; limit++) {\n var changed = false;\n var coords = cursorCoords(cm, pos);\n var endCoords = !end || end == pos ? coords : cursorCoords(cm, end);\n rect = {left: Math.min(coords.left, endCoords.left),\n top: Math.min(coords.top, endCoords.top) - margin,\n right: Math.max(coords.left, endCoords.left),\n bottom: Math.max(coords.bottom, endCoords.bottom) + margin};\n var scrollPos = calculateScrollPos(cm, rect);\n var startTop = cm.doc.scrollTop, startLeft = cm.doc.scrollLeft;\n if (scrollPos.scrollTop != null) {\n updateScrollTop(cm, scrollPos.scrollTop);\n if (Math.abs(cm.doc.scrollTop - startTop) > 1) { changed = true; }\n }\n if (scrollPos.scrollLeft != null) {\n setScrollLeft(cm, scrollPos.scrollLeft);\n if (Math.abs(cm.doc.scrollLeft - startLeft) > 1) { changed = true; }\n }\n if (!changed) { break }\n }\n return rect\n }\n\n // Scroll a given set of coordinates into view (immediately).\n function scrollIntoView(cm, rect) {\n var scrollPos = calculateScrollPos(cm, rect);\n if (scrollPos.scrollTop != null) { updateScrollTop(cm, scrollPos.scrollTop); }\n if (scrollPos.scrollLeft != null) { setScrollLeft(cm, scrollPos.scrollLeft); }\n }\n\n // Calculate a new scroll position needed to scroll the given\n // rectangle into view. Returns an object with scrollTop and\n // scrollLeft properties. When these are undefined, the\n // vertical/horizontal position does not need to be adjusted.\n function calculateScrollPos(cm, rect) {\n var display = cm.display, snapMargin = textHeight(cm.display);\n if (rect.top < 0) { rect.top = 0; }\n var screentop = cm.curOp && cm.curOp.scrollTop != null ? cm.curOp.scrollTop : display.scroller.scrollTop;\n var screen = displayHeight(cm), result = {};\n if (rect.bottom - rect.top > screen) { rect.bottom = rect.top + screen; }\n var docBottom = cm.doc.height + paddingVert(display);\n var atTop = rect.top < snapMargin, atBottom = rect.bottom > docBottom - snapMargin;\n if (rect.top < screentop) {\n result.scrollTop = atTop ? 0 : rect.top;\n } else if (rect.bottom > screentop + screen) {\n var newTop = Math.min(rect.top, (atBottom ? docBottom : rect.bottom) - screen);\n if (newTop != screentop) { result.scrollTop = newTop; }\n }\n\n var gutterSpace = cm.options.fixedGutter ? 0 : display.gutters.offsetWidth;\n var screenleft = cm.curOp && cm.curOp.scrollLeft != null ? cm.curOp.scrollLeft : display.scroller.scrollLeft - gutterSpace;\n var screenw = displayWidth(cm) - display.gutters.offsetWidth;\n var tooWide = rect.right - rect.left > screenw;\n if (tooWide) { rect.right = rect.left + screenw; }\n if (rect.left < 10)\n { result.scrollLeft = 0; }\n else if (rect.left < screenleft)\n { result.scrollLeft = Math.max(0, rect.left + gutterSpace - (tooWide ? 0 : 10)); }\n else if (rect.right > screenw + screenleft - 3)\n { result.scrollLeft = rect.right + (tooWide ? 0 : 10) - screenw; }\n return result\n }\n\n // Store a relative adjustment to the scroll position in the current\n // operation (to be applied when the operation finishes).\n function addToScrollTop(cm, top) {\n if (top == null) { return }\n resolveScrollToPos(cm);\n cm.curOp.scrollTop = (cm.curOp.scrollTop == null ? cm.doc.scrollTop : cm.curOp.scrollTop) + top;\n }\n\n // Make sure that at the end of the operation the current cursor is\n // shown.\n function ensureCursorVisible(cm) {\n resolveScrollToPos(cm);\n var cur = cm.getCursor();\n cm.curOp.scrollToPos = {from: cur, to: cur, margin: cm.options.cursorScrollMargin};\n }\n\n function scrollToCoords(cm, x, y) {\n if (x != null || y != null) { resolveScrollToPos(cm); }\n if (x != null) { cm.curOp.scrollLeft = x; }\n if (y != null) { cm.curOp.scrollTop = y; }\n }\n\n function scrollToRange(cm, range) {\n resolveScrollToPos(cm);\n cm.curOp.scrollToPos = range;\n }\n\n // When an operation has its scrollToPos property set, and another\n // scroll action is applied before the end of the operation, this\n // 'simulates' scrolling that position into view in a cheap way, so\n // that the effect of intermediate scroll commands is not ignored.\n function resolveScrollToPos(cm) {\n var range = cm.curOp.scrollToPos;\n if (range) {\n cm.curOp.scrollToPos = null;\n var from = estimateCoords(cm, range.from), to = estimateCoords(cm, range.to);\n scrollToCoordsRange(cm, from, to, range.margin);\n }\n }\n\n function scrollToCoordsRange(cm, from, to, margin) {\n var sPos = calculateScrollPos(cm, {\n left: Math.min(from.left, to.left),\n top: Math.min(from.top, to.top) - margin,\n right: Math.max(from.right, to.right),\n bottom: Math.max(from.bottom, to.bottom) + margin\n });\n scrollToCoords(cm, sPos.scrollLeft, sPos.scrollTop);\n }\n\n // Sync the scrollable area and scrollbars, ensure the viewport\n // covers the visible area.\n function updateScrollTop(cm, val) {\n if (Math.abs(cm.doc.scrollTop - val) < 2) { return }\n if (!gecko) { updateDisplaySimple(cm, {top: val}); }\n setScrollTop(cm, val, true);\n if (gecko) { updateDisplaySimple(cm); }\n startWorker(cm, 100);\n }\n\n function setScrollTop(cm, val, forceScroll) {\n val = Math.max(0, Math.min(cm.display.scroller.scrollHeight - cm.display.scroller.clientHeight, val));\n if (cm.display.scroller.scrollTop == val && !forceScroll) { return }\n cm.doc.scrollTop = val;\n cm.display.scrollbars.setScrollTop(val);\n if (cm.display.scroller.scrollTop != val) { cm.display.scroller.scrollTop = val; }\n }\n\n // Sync scroller and scrollbar, ensure the gutter elements are\n // aligned.\n function setScrollLeft(cm, val, isScroller, forceScroll) {\n val = Math.max(0, Math.min(val, cm.display.scroller.scrollWidth - cm.display.scroller.clientWidth));\n if ((isScroller ? val == cm.doc.scrollLeft : Math.abs(cm.doc.scrollLeft - val) < 2) && !forceScroll) { return }\n cm.doc.scrollLeft = val;\n alignHorizontally(cm);\n if (cm.display.scroller.scrollLeft != val) { cm.display.scroller.scrollLeft = val; }\n cm.display.scrollbars.setScrollLeft(val);\n }\n\n // SCROLLBARS\n\n // Prepare DOM reads needed to update the scrollbars. Done in one\n // shot to minimize update/measure roundtrips.\n function measureForScrollbars(cm) {\n var d = cm.display, gutterW = d.gutters.offsetWidth;\n var docH = Math.round(cm.doc.height + paddingVert(cm.display));\n return {\n clientHeight: d.scroller.clientHeight,\n viewHeight: d.wrapper.clientHeight,\n scrollWidth: d.scroller.scrollWidth, clientWidth: d.scroller.clientWidth,\n viewWidth: d.wrapper.clientWidth,\n barLeft: cm.options.fixedGutter ? gutterW : 0,\n docHeight: docH,\n scrollHeight: docH + scrollGap(cm) + d.barHeight,\n nativeBarWidth: d.nativeBarWidth,\n gutterWidth: gutterW\n }\n }\n\n var NativeScrollbars = function(place, scroll, cm) {\n this.cm = cm;\n var vert = this.vert = elt(\"div\", [elt(\"div\", null, null, \"min-width: 1px\")], \"CodeMirror-vscrollbar\");\n var horiz = this.horiz = elt(\"div\", [elt(\"div\", null, null, \"height: 100%; min-height: 1px\")], \"CodeMirror-hscrollbar\");\n vert.tabIndex = horiz.tabIndex = -1;\n place(vert); place(horiz);\n\n on(vert, \"scroll\", function () {\n if (vert.clientHeight) { scroll(vert.scrollTop, \"vertical\"); }\n });\n on(horiz, \"scroll\", function () {\n if (horiz.clientWidth) { scroll(horiz.scrollLeft, \"horizontal\"); }\n });\n\n this.checkedZeroWidth = false;\n // Need to set a minimum width to see the scrollbar on IE7 (but must not set it on IE8).\n if (ie && ie_version < 8) { this.horiz.style.minHeight = this.vert.style.minWidth = \"18px\"; }\n };\n\n NativeScrollbars.prototype.update = function (measure) {\n var needsH = measure.scrollWidth > measure.clientWidth + 1;\n var needsV = measure.scrollHeight > measure.clientHeight + 1;\n var sWidth = measure.nativeBarWidth;\n\n if (needsV) {\n this.vert.style.display = \"block\";\n this.vert.style.bottom = needsH ? sWidth + \"px\" : \"0\";\n var totalHeight = measure.viewHeight - (needsH ? sWidth : 0);\n // A bug in IE8 can cause this value to be negative, so guard it.\n this.vert.firstChild.style.height =\n Math.max(0, measure.scrollHeight - measure.clientHeight + totalHeight) + \"px\";\n } else {\n this.vert.style.display = \"\";\n this.vert.firstChild.style.height = \"0\";\n }\n\n if (needsH) {\n this.horiz.style.display = \"block\";\n this.horiz.style.right = needsV ? sWidth + \"px\" : \"0\";\n this.horiz.style.left = measure.barLeft + \"px\";\n var totalWidth = measure.viewWidth - measure.barLeft - (needsV ? sWidth : 0);\n this.horiz.firstChild.style.width =\n Math.max(0, measure.scrollWidth - measure.clientWidth + totalWidth) + \"px\";\n } else {\n this.horiz.style.display = \"\";\n this.horiz.firstChild.style.width = \"0\";\n }\n\n if (!this.checkedZeroWidth && measure.clientHeight > 0) {\n if (sWidth == 0) { this.zeroWidthHack(); }\n this.checkedZeroWidth = true;\n }\n\n return {right: needsV ? sWidth : 0, bottom: needsH ? sWidth : 0}\n };\n\n NativeScrollbars.prototype.setScrollLeft = function (pos) {\n if (this.horiz.scrollLeft != pos) { this.horiz.scrollLeft = pos; }\n if (this.disableHoriz) { this.enableZeroWidthBar(this.horiz, this.disableHoriz, \"horiz\"); }\n };\n\n NativeScrollbars.prototype.setScrollTop = function (pos) {\n if (this.vert.scrollTop != pos) { this.vert.scrollTop = pos; }\n if (this.disableVert) { this.enableZeroWidthBar(this.vert, this.disableVert, \"vert\"); }\n };\n\n NativeScrollbars.prototype.zeroWidthHack = function () {\n var w = mac && !mac_geMountainLion ? \"12px\" : \"18px\";\n this.horiz.style.height = this.vert.style.width = w;\n this.horiz.style.pointerEvents = this.vert.style.pointerEvents = \"none\";\n this.disableHoriz = new Delayed;\n this.disableVert = new Delayed;\n };\n\n NativeScrollbars.prototype.enableZeroWidthBar = function (bar, delay, type) {\n bar.style.pointerEvents = \"auto\";\n function maybeDisable() {\n // To find out whether the scrollbar is still visible, we\n // check whether the element under the pixel in the bottom\n // right corner of the scrollbar box is the scrollbar box\n // itself (when the bar is still visible) or its filler child\n // (when the bar is hidden). If it is still visible, we keep\n // it enabled, if it's hidden, we disable pointer events.\n var box = bar.getBoundingClientRect();\n var elt = type == \"vert\" ? document.elementFromPoint(box.right - 1, (box.top + box.bottom) / 2)\n : document.elementFromPoint((box.right + box.left) / 2, box.bottom - 1);\n if (elt != bar) { bar.style.pointerEvents = \"none\"; }\n else { delay.set(1000, maybeDisable); }\n }\n delay.set(1000, maybeDisable);\n };\n\n NativeScrollbars.prototype.clear = function () {\n var parent = this.horiz.parentNode;\n parent.removeChild(this.horiz);\n parent.removeChild(this.vert);\n };\n\n var NullScrollbars = function () {};\n\n NullScrollbars.prototype.update = function () { return {bottom: 0, right: 0} };\n NullScrollbars.prototype.setScrollLeft = function () {};\n NullScrollbars.prototype.setScrollTop = function () {};\n NullScrollbars.prototype.clear = function () {};\n\n function updateScrollbars(cm, measure) {\n if (!measure) { measure = measureForScrollbars(cm); }\n var startWidth = cm.display.barWidth, startHeight = cm.display.barHeight;\n updateScrollbarsInner(cm, measure);\n for (var i = 0; i < 4 && startWidth != cm.display.barWidth || startHeight != cm.display.barHeight; i++) {\n if (startWidth != cm.display.barWidth && cm.options.lineWrapping)\n { updateHeightsInViewport(cm); }\n updateScrollbarsInner(cm, measureForScrollbars(cm));\n startWidth = cm.display.barWidth; startHeight = cm.display.barHeight;\n }\n }\n\n // Re-synchronize the fake scrollbars with the actual size of the\n // content.\n function updateScrollbarsInner(cm, measure) {\n var d = cm.display;\n var sizes = d.scrollbars.update(measure);\n\n d.sizer.style.paddingRight = (d.barWidth = sizes.right) + \"px\";\n d.sizer.style.paddingBottom = (d.barHeight = sizes.bottom) + \"px\";\n d.heightForcer.style.borderBottom = sizes.bottom + \"px solid transparent\";\n\n if (sizes.right && sizes.bottom) {\n d.scrollbarFiller.style.display = \"block\";\n d.scrollbarFiller.style.height = sizes.bottom + \"px\";\n d.scrollbarFiller.style.width = sizes.right + \"px\";\n } else { d.scrollbarFiller.style.display = \"\"; }\n if (sizes.bottom && cm.options.coverGutterNextToScrollbar && cm.options.fixedGutter) {\n d.gutterFiller.style.display = \"block\";\n d.gutterFiller.style.height = sizes.bottom + \"px\";\n d.gutterFiller.style.width = measure.gutterWidth + \"px\";\n } else { d.gutterFiller.style.display = \"\"; }\n }\n\n var scrollbarModel = {\"native\": NativeScrollbars, \"null\": NullScrollbars};\n\n function initScrollbars(cm) {\n if (cm.display.scrollbars) {\n cm.display.scrollbars.clear();\n if (cm.display.scrollbars.addClass)\n { rmClass(cm.display.wrapper, cm.display.scrollbars.addClass); }\n }\n\n cm.display.scrollbars = new scrollbarModel[cm.options.scrollbarStyle](function (node) {\n cm.display.wrapper.insertBefore(node, cm.display.scrollbarFiller);\n // Prevent clicks in the scrollbars from killing focus\n on(node, \"mousedown\", function () {\n if (cm.state.focused) { setTimeout(function () { return cm.display.input.focus(); }, 0); }\n });\n node.setAttribute(\"cm-not-content\", \"true\");\n }, function (pos, axis) {\n if (axis == \"horizontal\") { setScrollLeft(cm, pos); }\n else { updateScrollTop(cm, pos); }\n }, cm);\n if (cm.display.scrollbars.addClass)\n { addClass(cm.display.wrapper, cm.display.scrollbars.addClass); }\n }\n\n // Operations are used to wrap a series of changes to the editor\n // state in such a way that each change won't have to update the\n // cursor and display (which would be awkward, slow, and\n // error-prone). Instead, display updates are batched and then all\n // combined and executed at once.\n\n var nextOpId = 0;\n // Start a new operation.\n function startOperation(cm) {\n cm.curOp = {\n cm: cm,\n viewChanged: false, // Flag that indicates that lines might need to be redrawn\n startHeight: cm.doc.height, // Used to detect need to update scrollbar\n forceUpdate: false, // Used to force a redraw\n updateInput: 0, // Whether to reset the input textarea\n typing: false, // Whether this reset should be careful to leave existing text (for compositing)\n changeObjs: null, // Accumulated changes, for firing change events\n cursorActivityHandlers: null, // Set of handlers to fire cursorActivity on\n cursorActivityCalled: 0, // Tracks which cursorActivity handlers have been called already\n selectionChanged: false, // Whether the selection needs to be redrawn\n updateMaxLine: false, // Set when the widest line needs to be determined anew\n scrollLeft: null, scrollTop: null, // Intermediate scroll position, not pushed to DOM yet\n scrollToPos: null, // Used to scroll to a specific position\n focus: false,\n id: ++nextOpId, // Unique ID\n markArrays: null // Used by addMarkedSpan\n };\n pushOperation(cm.curOp);\n }\n\n // Finish an operation, updating the display and signalling delayed events\n function endOperation(cm) {\n var op = cm.curOp;\n if (op) { finishOperation(op, function (group) {\n for (var i = 0; i < group.ops.length; i++)\n { group.ops[i].cm.curOp = null; }\n endOperations(group);\n }); }\n }\n\n // The DOM updates done when an operation finishes are batched so\n // that the minimum number of relayouts are required.\n function endOperations(group) {\n var ops = group.ops;\n for (var i = 0; i < ops.length; i++) // Read DOM\n { endOperation_R1(ops[i]); }\n for (var i$1 = 0; i$1 < ops.length; i$1++) // Write DOM (maybe)\n { endOperation_W1(ops[i$1]); }\n for (var i$2 = 0; i$2 < ops.length; i$2++) // Read DOM\n { endOperation_R2(ops[i$2]); }\n for (var i$3 = 0; i$3 < ops.length; i$3++) // Write DOM (maybe)\n { endOperation_W2(ops[i$3]); }\n for (var i$4 = 0; i$4 < ops.length; i$4++) // Read DOM\n { endOperation_finish(ops[i$4]); }\n }\n\n function endOperation_R1(op) {\n var cm = op.cm, display = cm.display;\n maybeClipScrollbars(cm);\n if (op.updateMaxLine) { findMaxLine(cm); }\n\n op.mustUpdate = op.viewChanged || op.forceUpdate || op.scrollTop != null ||\n op.scrollToPos && (op.scrollToPos.from.line < display.viewFrom ||\n op.scrollToPos.to.line >= display.viewTo) ||\n display.maxLineChanged && cm.options.lineWrapping;\n op.update = op.mustUpdate &&\n new DisplayUpdate(cm, op.mustUpdate && {top: op.scrollTop, ensure: op.scrollToPos}, op.forceUpdate);\n }\n\n function endOperation_W1(op) {\n op.updatedDisplay = op.mustUpdate && updateDisplayIfNeeded(op.cm, op.update);\n }\n\n function endOperation_R2(op) {\n var cm = op.cm, display = cm.display;\n if (op.updatedDisplay) { updateHeightsInViewport(cm); }\n\n op.barMeasure = measureForScrollbars(cm);\n\n // If the max line changed since it was last measured, measure it,\n // and ensure the document's width matches it.\n // updateDisplay_W2 will use these properties to do the actual resizing\n if (display.maxLineChanged && !cm.options.lineWrapping) {\n op.adjustWidthTo = measureChar(cm, display.maxLine, display.maxLine.text.length).left + 3;\n cm.display.sizerWidth = op.adjustWidthTo;\n op.barMeasure.scrollWidth =\n Math.max(display.scroller.clientWidth, display.sizer.offsetLeft + op.adjustWidthTo + scrollGap(cm) + cm.display.barWidth);\n op.maxScrollLeft = Math.max(0, display.sizer.offsetLeft + op.adjustWidthTo - displayWidth(cm));\n }\n\n if (op.updatedDisplay || op.selectionChanged)\n { op.preparedSelection = display.input.prepareSelection(); }\n }\n\n function endOperation_W2(op) {\n var cm = op.cm;\n\n if (op.adjustWidthTo != null) {\n cm.display.sizer.style.minWidth = op.adjustWidthTo + \"px\";\n if (op.maxScrollLeft < cm.doc.scrollLeft)\n { setScrollLeft(cm, Math.min(cm.display.scroller.scrollLeft, op.maxScrollLeft), true); }\n cm.display.maxLineChanged = false;\n }\n\n var takeFocus = op.focus && op.focus == activeElt();\n if (op.preparedSelection)\n { cm.display.input.showSelection(op.preparedSelection, takeFocus); }\n if (op.updatedDisplay || op.startHeight != cm.doc.height)\n { updateScrollbars(cm, op.barMeasure); }\n if (op.updatedDisplay)\n { setDocumentHeight(cm, op.barMeasure); }\n\n if (op.selectionChanged) { restartBlink(cm); }\n\n if (cm.state.focused && op.updateInput)\n { cm.display.input.reset(op.typing); }\n if (takeFocus) { ensureFocus(op.cm); }\n }\n\n function endOperation_finish(op) {\n var cm = op.cm, display = cm.display, doc = cm.doc;\n\n if (op.updatedDisplay) { postUpdateDisplay(cm, op.update); }\n\n // Abort mouse wheel delta measurement, when scrolling explicitly\n if (display.wheelStartX != null && (op.scrollTop != null || op.scrollLeft != null || op.scrollToPos))\n { display.wheelStartX = display.wheelStartY = null; }\n\n // Propagate the scroll position to the actual DOM scroller\n if (op.scrollTop != null) { setScrollTop(cm, op.scrollTop, op.forceScroll); }\n\n if (op.scrollLeft != null) { setScrollLeft(cm, op.scrollLeft, true, true); }\n // If we need to scroll a specific position into view, do so.\n if (op.scrollToPos) {\n var rect = scrollPosIntoView(cm, clipPos(doc, op.scrollToPos.from),\n clipPos(doc, op.scrollToPos.to), op.scrollToPos.margin);\n maybeScrollWindow(cm, rect);\n }\n\n // Fire events for markers that are hidden/unidden by editing or\n // undoing\n var hidden = op.maybeHiddenMarkers, unhidden = op.maybeUnhiddenMarkers;\n if (hidden) { for (var i = 0; i < hidden.length; ++i)\n { if (!hidden[i].lines.length) { signal(hidden[i], \"hide\"); } } }\n if (unhidden) { for (var i$1 = 0; i$1 < unhidden.length; ++i$1)\n { if (unhidden[i$1].lines.length) { signal(unhidden[i$1], \"unhide\"); } } }\n\n if (display.wrapper.offsetHeight)\n { doc.scrollTop = cm.display.scroller.scrollTop; }\n\n // Fire change events, and delayed event handlers\n if (op.changeObjs)\n { signal(cm, \"changes\", cm, op.changeObjs); }\n if (op.update)\n { op.update.finish(); }\n }\n\n // Run the given function in an operation\n function runInOp(cm, f) {\n if (cm.curOp) { return f() }\n startOperation(cm);\n try { return f() }\n finally { endOperation(cm); }\n }\n // Wraps a function in an operation. Returns the wrapped function.\n function operation(cm, f) {\n return function() {\n if (cm.curOp) { return f.apply(cm, arguments) }\n startOperation(cm);\n try { return f.apply(cm, arguments) }\n finally { endOperation(cm); }\n }\n }\n // Used to add methods to editor and doc instances, wrapping them in\n // operations.\n function methodOp(f) {\n return function() {\n if (this.curOp) { return f.apply(this, arguments) }\n startOperation(this);\n try { return f.apply(this, arguments) }\n finally { endOperation(this); }\n }\n }\n function docMethodOp(f) {\n return function() {\n var cm = this.cm;\n if (!cm || cm.curOp) { return f.apply(this, arguments) }\n startOperation(cm);\n try { return f.apply(this, arguments) }\n finally { endOperation(cm); }\n }\n }\n\n // HIGHLIGHT WORKER\n\n function startWorker(cm, time) {\n if (cm.doc.highlightFrontier < cm.display.viewTo)\n { cm.state.highlight.set(time, bind(highlightWorker, cm)); }\n }\n\n function highlightWorker(cm) {\n var doc = cm.doc;\n if (doc.highlightFrontier >= cm.display.viewTo) { return }\n var end = +new Date + cm.options.workTime;\n var context = getContextBefore(cm, doc.highlightFrontier);\n var changedLines = [];\n\n doc.iter(context.line, Math.min(doc.first + doc.size, cm.display.viewTo + 500), function (line) {\n if (context.line >= cm.display.viewFrom) { // Visible\n var oldStyles = line.styles;\n var resetState = line.text.length > cm.options.maxHighlightLength ? copyState(doc.mode, context.state) : null;\n var highlighted = highlightLine(cm, line, context, true);\n if (resetState) { context.state = resetState; }\n line.styles = highlighted.styles;\n var oldCls = line.styleClasses, newCls = highlighted.classes;\n if (newCls) { line.styleClasses = newCls; }\n else if (oldCls) { line.styleClasses = null; }\n var ischange = !oldStyles || oldStyles.length != line.styles.length ||\n oldCls != newCls && (!oldCls || !newCls || oldCls.bgClass != newCls.bgClass || oldCls.textClass != newCls.textClass);\n for (var i = 0; !ischange && i < oldStyles.length; ++i) { ischange = oldStyles[i] != line.styles[i]; }\n if (ischange) { changedLines.push(context.line); }\n line.stateAfter = context.save();\n context.nextLine();\n } else {\n if (line.text.length <= cm.options.maxHighlightLength)\n { processLine(cm, line.text, context); }\n line.stateAfter = context.line % 5 == 0 ? context.save() : null;\n context.nextLine();\n }\n if (+new Date > end) {\n startWorker(cm, cm.options.workDelay);\n return true\n }\n });\n doc.highlightFrontier = context.line;\n doc.modeFrontier = Math.max(doc.modeFrontier, context.line);\n if (changedLines.length) { runInOp(cm, function () {\n for (var i = 0; i < changedLines.length; i++)\n { regLineChange(cm, changedLines[i], \"text\"); }\n }); }\n }\n\n // DISPLAY DRAWING\n\n var DisplayUpdate = function(cm, viewport, force) {\n var display = cm.display;\n\n this.viewport = viewport;\n // Store some values that we'll need later (but don't want to force a relayout for)\n this.visible = visibleLines(display, cm.doc, viewport);\n this.editorIsHidden = !display.wrapper.offsetWidth;\n this.wrapperHeight = display.wrapper.clientHeight;\n this.wrapperWidth = display.wrapper.clientWidth;\n this.oldDisplayWidth = displayWidth(cm);\n this.force = force;\n this.dims = getDimensions(cm);\n this.events = [];\n };\n\n DisplayUpdate.prototype.signal = function (emitter, type) {\n if (hasHandler(emitter, type))\n { this.events.push(arguments); }\n };\n DisplayUpdate.prototype.finish = function () {\n for (var i = 0; i < this.events.length; i++)\n { signal.apply(null, this.events[i]); }\n };\n\n function maybeClipScrollbars(cm) {\n var display = cm.display;\n if (!display.scrollbarsClipped && display.scroller.offsetWidth) {\n display.nativeBarWidth = display.scroller.offsetWidth - display.scroller.clientWidth;\n display.heightForcer.style.height = scrollGap(cm) + \"px\";\n display.sizer.style.marginBottom = -display.nativeBarWidth + \"px\";\n display.sizer.style.borderRightWidth = scrollGap(cm) + \"px\";\n display.scrollbarsClipped = true;\n }\n }\n\n function selectionSnapshot(cm) {\n if (cm.hasFocus()) { return null }\n var active = activeElt();\n if (!active || !contains(cm.display.lineDiv, active)) { return null }\n var result = {activeElt: active};\n if (window.getSelection) {\n var sel = window.getSelection();\n if (sel.anchorNode && sel.extend && contains(cm.display.lineDiv, sel.anchorNode)) {\n result.anchorNode = sel.anchorNode;\n result.anchorOffset = sel.anchorOffset;\n result.focusNode = sel.focusNode;\n result.focusOffset = sel.focusOffset;\n }\n }\n return result\n }\n\n function restoreSelection(snapshot) {\n if (!snapshot || !snapshot.activeElt || snapshot.activeElt == activeElt()) { return }\n snapshot.activeElt.focus();\n if (!/^(INPUT|TEXTAREA)$/.test(snapshot.activeElt.nodeName) &&\n snapshot.anchorNode && contains(document.body, snapshot.anchorNode) && contains(document.body, snapshot.focusNode)) {\n var sel = window.getSelection(), range = document.createRange();\n range.setEnd(snapshot.anchorNode, snapshot.anchorOffset);\n range.collapse(false);\n sel.removeAllRanges();\n sel.addRange(range);\n sel.extend(snapshot.focusNode, snapshot.focusOffset);\n }\n }\n\n // Does the actual updating of the line display. Bails out\n // (returning false) when there is nothing to be done and forced is\n // false.\n function updateDisplayIfNeeded(cm, update) {\n var display = cm.display, doc = cm.doc;\n\n if (update.editorIsHidden) {\n resetView(cm);\n return false\n }\n\n // Bail out if the visible area is already rendered and nothing changed.\n if (!update.force &&\n update.visible.from >= display.viewFrom && update.visible.to <= display.viewTo &&\n (display.updateLineNumbers == null || display.updateLineNumbers >= display.viewTo) &&\n display.renderedView == display.view && countDirtyView(cm) == 0)\n { return false }\n\n if (maybeUpdateLineNumberWidth(cm)) {\n resetView(cm);\n update.dims = getDimensions(cm);\n }\n\n // Compute a suitable new viewport (from & to)\n var end = doc.first + doc.size;\n var from = Math.max(update.visible.from - cm.options.viewportMargin, doc.first);\n var to = Math.min(end, update.visible.to + cm.options.viewportMargin);\n if (display.viewFrom < from && from - display.viewFrom < 20) { from = Math.max(doc.first, display.viewFrom); }\n if (display.viewTo > to && display.viewTo - to < 20) { to = Math.min(end, display.viewTo); }\n if (sawCollapsedSpans) {\n from = visualLineNo(cm.doc, from);\n to = visualLineEndNo(cm.doc, to);\n }\n\n var different = from != display.viewFrom || to != display.viewTo ||\n display.lastWrapHeight != update.wrapperHeight || display.lastWrapWidth != update.wrapperWidth;\n adjustView(cm, from, to);\n\n display.viewOffset = heightAtLine(getLine(cm.doc, display.viewFrom));\n // Position the mover div to align with the current scroll position\n cm.display.mover.style.top = display.viewOffset + \"px\";\n\n var toUpdate = countDirtyView(cm);\n if (!different && toUpdate == 0 && !update.force && display.renderedView == display.view &&\n (display.updateLineNumbers == null || display.updateLineNumbers >= display.viewTo))\n { return false }\n\n // For big changes, we hide the enclosing element during the\n // update, since that speeds up the operations on most browsers.\n var selSnapshot = selectionSnapshot(cm);\n if (toUpdate > 4) { display.lineDiv.style.display = \"none\"; }\n patchDisplay(cm, display.updateLineNumbers, update.dims);\n if (toUpdate > 4) { display.lineDiv.style.display = \"\"; }\n display.renderedView = display.view;\n // There might have been a widget with a focused element that got\n // hidden or updated, if so re-focus it.\n restoreSelection(selSnapshot);\n\n // Prevent selection and cursors from interfering with the scroll\n // width and height.\n removeChildren(display.cursorDiv);\n removeChildren(display.selectionDiv);\n display.gutters.style.height = display.sizer.style.minHeight = 0;\n\n if (different) {\n display.lastWrapHeight = update.wrapperHeight;\n display.lastWrapWidth = update.wrapperWidth;\n startWorker(cm, 400);\n }\n\n display.updateLineNumbers = null;\n\n return true\n }\n\n function postUpdateDisplay(cm, update) {\n var viewport = update.viewport;\n\n for (var first = true;; first = false) {\n if (!first || !cm.options.lineWrapping || update.oldDisplayWidth == displayWidth(cm)) {\n // Clip forced viewport to actual scrollable area.\n if (viewport && viewport.top != null)\n { viewport = {top: Math.min(cm.doc.height + paddingVert(cm.display) - displayHeight(cm), viewport.top)}; }\n // Updated line heights might result in the drawn area not\n // actually covering the viewport. Keep looping until it does.\n update.visible = visibleLines(cm.display, cm.doc, viewport);\n if (update.visible.from >= cm.display.viewFrom && update.visible.to <= cm.display.viewTo)\n { break }\n } else if (first) {\n update.visible = visibleLines(cm.display, cm.doc, viewport);\n }\n if (!updateDisplayIfNeeded(cm, update)) { break }\n updateHeightsInViewport(cm);\n var barMeasure = measureForScrollbars(cm);\n updateSelection(cm);\n updateScrollbars(cm, barMeasure);\n setDocumentHeight(cm, barMeasure);\n update.force = false;\n }\n\n update.signal(cm, \"update\", cm);\n if (cm.display.viewFrom != cm.display.reportedViewFrom || cm.display.viewTo != cm.display.reportedViewTo) {\n update.signal(cm, \"viewportChange\", cm, cm.display.viewFrom, cm.display.viewTo);\n cm.display.reportedViewFrom = cm.display.viewFrom; cm.display.reportedViewTo = cm.display.viewTo;\n }\n }\n\n function updateDisplaySimple(cm, viewport) {\n var update = new DisplayUpdate(cm, viewport);\n if (updateDisplayIfNeeded(cm, update)) {\n updateHeightsInViewport(cm);\n postUpdateDisplay(cm, update);\n var barMeasure = measureForScrollbars(cm);\n updateSelection(cm);\n updateScrollbars(cm, barMeasure);\n setDocumentHeight(cm, barMeasure);\n update.finish();\n }\n }\n\n // Sync the actual display DOM structure with display.view, removing\n // nodes for lines that are no longer in view, and creating the ones\n // that are not there yet, and updating the ones that are out of\n // date.\n function patchDisplay(cm, updateNumbersFrom, dims) {\n var display = cm.display, lineNumbers = cm.options.lineNumbers;\n var container = display.lineDiv, cur = container.firstChild;\n\n function rm(node) {\n var next = node.nextSibling;\n // Works around a throw-scroll bug in OS X Webkit\n if (webkit && mac && cm.display.currentWheelTarget == node)\n { node.style.display = \"none\"; }\n else\n { node.parentNode.removeChild(node); }\n return next\n }\n\n var view = display.view, lineN = display.viewFrom;\n // Loop over the elements in the view, syncing cur (the DOM nodes\n // in display.lineDiv) with the view as we go.\n for (var i = 0; i < view.length; i++) {\n var lineView = view[i];\n if (lineView.hidden) ; else if (!lineView.node || lineView.node.parentNode != container) { // Not drawn yet\n var node = buildLineElement(cm, lineView, lineN, dims);\n container.insertBefore(node, cur);\n } else { // Already drawn\n while (cur != lineView.node) { cur = rm(cur); }\n var updateNumber = lineNumbers && updateNumbersFrom != null &&\n updateNumbersFrom <= lineN && lineView.lineNumber;\n if (lineView.changes) {\n if (indexOf(lineView.changes, \"gutter\") > -1) { updateNumber = false; }\n updateLineForChanges(cm, lineView, lineN, dims);\n }\n if (updateNumber) {\n removeChildren(lineView.lineNumber);\n lineView.lineNumber.appendChild(document.createTextNode(lineNumberFor(cm.options, lineN)));\n }\n cur = lineView.node.nextSibling;\n }\n lineN += lineView.size;\n }\n while (cur) { cur = rm(cur); }\n }\n\n function updateGutterSpace(display) {\n var width = display.gutters.offsetWidth;\n display.sizer.style.marginLeft = width + \"px\";\n // Send an event to consumers responding to changes in gutter width.\n signalLater(display, \"gutterChanged\", display);\n }\n\n function setDocumentHeight(cm, measure) {\n cm.display.sizer.style.minHeight = measure.docHeight + \"px\";\n cm.display.heightForcer.style.top = measure.docHeight + \"px\";\n cm.display.gutters.style.height = (measure.docHeight + cm.display.barHeight + scrollGap(cm)) + \"px\";\n }\n\n // Re-align line numbers and gutter marks to compensate for\n // horizontal scrolling.\n function alignHorizontally(cm) {\n var display = cm.display, view = display.view;\n if (!display.alignWidgets && (!display.gutters.firstChild || !cm.options.fixedGutter)) { return }\n var comp = compensateForHScroll(display) - display.scroller.scrollLeft + cm.doc.scrollLeft;\n var gutterW = display.gutters.offsetWidth, left = comp + \"px\";\n for (var i = 0; i < view.length; i++) { if (!view[i].hidden) {\n if (cm.options.fixedGutter) {\n if (view[i].gutter)\n { view[i].gutter.style.left = left; }\n if (view[i].gutterBackground)\n { view[i].gutterBackground.style.left = left; }\n }\n var align = view[i].alignable;\n if (align) { for (var j = 0; j < align.length; j++)\n { align[j].style.left = left; } }\n } }\n if (cm.options.fixedGutter)\n { display.gutters.style.left = (comp + gutterW) + \"px\"; }\n }\n\n // Used to ensure that the line number gutter is still the right\n // size for the current document size. Returns true when an update\n // is needed.\n function maybeUpdateLineNumberWidth(cm) {\n if (!cm.options.lineNumbers) { return false }\n var doc = cm.doc, last = lineNumberFor(cm.options, doc.first + doc.size - 1), display = cm.display;\n if (last.length != display.lineNumChars) {\n var test = display.measure.appendChild(elt(\"div\", [elt(\"div\", last)],\n \"CodeMirror-linenumber CodeMirror-gutter-elt\"));\n var innerW = test.firstChild.offsetWidth, padding = test.offsetWidth - innerW;\n display.lineGutter.style.width = \"\";\n display.lineNumInnerWidth = Math.max(innerW, display.lineGutter.offsetWidth - padding) + 1;\n display.lineNumWidth = display.lineNumInnerWidth + padding;\n display.lineNumChars = display.lineNumInnerWidth ? last.length : -1;\n display.lineGutter.style.width = display.lineNumWidth + \"px\";\n updateGutterSpace(cm.display);\n return true\n }\n return false\n }\n\n function getGutters(gutters, lineNumbers) {\n var result = [], sawLineNumbers = false;\n for (var i = 0; i < gutters.length; i++) {\n var name = gutters[i], style = null;\n if (typeof name != \"string\") { style = name.style; name = name.className; }\n if (name == \"CodeMirror-linenumbers\") {\n if (!lineNumbers) { continue }\n else { sawLineNumbers = true; }\n }\n result.push({className: name, style: style});\n }\n if (lineNumbers && !sawLineNumbers) { result.push({className: \"CodeMirror-linenumbers\", style: null}); }\n return result\n }\n\n // Rebuild the gutter elements, ensure the margin to the left of the\n // code matches their width.\n function renderGutters(display) {\n var gutters = display.gutters, specs = display.gutterSpecs;\n removeChildren(gutters);\n display.lineGutter = null;\n for (var i = 0; i < specs.length; ++i) {\n var ref = specs[i];\n var className = ref.className;\n var style = ref.style;\n var gElt = gutters.appendChild(elt(\"div\", null, \"CodeMirror-gutter \" + className));\n if (style) { gElt.style.cssText = style; }\n if (className == \"CodeMirror-linenumbers\") {\n display.lineGutter = gElt;\n gElt.style.width = (display.lineNumWidth || 1) + \"px\";\n }\n }\n gutters.style.display = specs.length ? \"\" : \"none\";\n updateGutterSpace(display);\n }\n\n function updateGutters(cm) {\n renderGutters(cm.display);\n regChange(cm);\n alignHorizontally(cm);\n }\n\n // The display handles the DOM integration, both for input reading\n // and content drawing. It holds references to DOM nodes and\n // display-related state.\n\n function Display(place, doc, input, options) {\n var d = this;\n this.input = input;\n\n // Covers bottom-right square when both scrollbars are present.\n d.scrollbarFiller = elt(\"div\", null, \"CodeMirror-scrollbar-filler\");\n d.scrollbarFiller.setAttribute(\"cm-not-content\", \"true\");\n // Covers bottom of gutter when coverGutterNextToScrollbar is on\n // and h scrollbar is present.\n d.gutterFiller = elt(\"div\", null, \"CodeMirror-gutter-filler\");\n d.gutterFiller.setAttribute(\"cm-not-content\", \"true\");\n // Will contain the actual code, positioned to cover the viewport.\n d.lineDiv = eltP(\"div\", null, \"CodeMirror-code\");\n // Elements are added to these to represent selection and cursors.\n d.selectionDiv = elt(\"div\", null, null, \"position: relative; z-index: 1\");\n d.cursorDiv = elt(\"div\", null, \"CodeMirror-cursors\");\n // A visibility: hidden element used to find the size of things.\n d.measure = elt(\"div\", null, \"CodeMirror-measure\");\n // When lines outside of the viewport are measured, they are drawn in this.\n d.lineMeasure = elt(\"div\", null, \"CodeMirror-measure\");\n // Wraps everything that needs to exist inside the vertically-padded coordinate system\n d.lineSpace = eltP(\"div\", [d.measure, d.lineMeasure, d.selectionDiv, d.cursorDiv, d.lineDiv],\n null, \"position: relative; outline: none\");\n var lines = eltP(\"div\", [d.lineSpace], \"CodeMirror-lines\");\n // Moved around its parent to cover visible view.\n d.mover = elt(\"div\", [lines], null, \"position: relative\");\n // Set to the height of the document, allowing scrolling.\n d.sizer = elt(\"div\", [d.mover], \"CodeMirror-sizer\");\n d.sizerWidth = null;\n // Behavior of elts with overflow: auto and padding is\n // inconsistent across browsers. This is used to ensure the\n // scrollable area is big enough.\n d.heightForcer = elt(\"div\", null, null, \"position: absolute; height: \" + scrollerGap + \"px; width: 1px;\");\n // Will contain the gutters, if any.\n d.gutters = elt(\"div\", null, \"CodeMirror-gutters\");\n d.lineGutter = null;\n // Actual scrollable element.\n d.scroller = elt(\"div\", [d.sizer, d.heightForcer, d.gutters], \"CodeMirror-scroll\");\n d.scroller.setAttribute(\"tabIndex\", \"-1\");\n // The element in which the editor lives.\n d.wrapper = elt(\"div\", [d.scrollbarFiller, d.gutterFiller, d.scroller], \"CodeMirror\");\n\n // Work around IE7 z-index bug (not perfect, hence IE7 not really being supported)\n if (ie && ie_version < 8) { d.gutters.style.zIndex = -1; d.scroller.style.paddingRight = 0; }\n if (!webkit && !(gecko && mobile)) { d.scroller.draggable = true; }\n\n if (place) {\n if (place.appendChild) { place.appendChild(d.wrapper); }\n else { place(d.wrapper); }\n }\n\n // Current rendered range (may be bigger than the view window).\n d.viewFrom = d.viewTo = doc.first;\n d.reportedViewFrom = d.reportedViewTo = doc.first;\n // Information about the rendered lines.\n d.view = [];\n d.renderedView = null;\n // Holds info about a single rendered line when it was rendered\n // for measurement, while not in view.\n d.externalMeasured = null;\n // Empty space (in pixels) above the view\n d.viewOffset = 0;\n d.lastWrapHeight = d.lastWrapWidth = 0;\n d.updateLineNumbers = null;\n\n d.nativeBarWidth = d.barHeight = d.barWidth = 0;\n d.scrollbarsClipped = false;\n\n // Used to only resize the line number gutter when necessary (when\n // the amount of lines crosses a boundary that makes its width change)\n d.lineNumWidth = d.lineNumInnerWidth = d.lineNumChars = null;\n // Set to true when a non-horizontal-scrolling line widget is\n // added. As an optimization, line widget aligning is skipped when\n // this is false.\n d.alignWidgets = false;\n\n d.cachedCharWidth = d.cachedTextHeight = d.cachedPaddingH = null;\n\n // Tracks the maximum line length so that the horizontal scrollbar\n // can be kept static when scrolling.\n d.maxLine = null;\n d.maxLineLength = 0;\n d.maxLineChanged = false;\n\n // Used for measuring wheel scrolling granularity\n d.wheelDX = d.wheelDY = d.wheelStartX = d.wheelStartY = null;\n\n // True when shift is held down.\n d.shift = false;\n\n // Used to track whether anything happened since the context menu\n // was opened.\n d.selForContextMenu = null;\n\n d.activeTouch = null;\n\n d.gutterSpecs = getGutters(options.gutters, options.lineNumbers);\n renderGutters(d);\n\n input.init(d);\n }\n\n // Since the delta values reported on mouse wheel events are\n // unstandardized between browsers and even browser versions, and\n // generally horribly unpredictable, this code starts by measuring\n // the scroll effect that the first few mouse wheel events have,\n // and, from that, detects the way it can convert deltas to pixel\n // offsets afterwards.\n //\n // The reason we want to know the amount a wheel event will scroll\n // is that it gives us a chance to update the display before the\n // actual scrolling happens, reducing flickering.\n\n var wheelSamples = 0, wheelPixelsPerUnit = null;\n // Fill in a browser-detected starting value on browsers where we\n // know one. These don't have to be accurate -- the result of them\n // being wrong would just be a slight flicker on the first wheel\n // scroll (if it is large enough).\n if (ie) { wheelPixelsPerUnit = -.53; }\n else if (gecko) { wheelPixelsPerUnit = 15; }\n else if (chrome) { wheelPixelsPerUnit = -.7; }\n else if (safari) { wheelPixelsPerUnit = -1/3; }\n\n function wheelEventDelta(e) {\n var dx = e.wheelDeltaX, dy = e.wheelDeltaY;\n if (dx == null && e.detail && e.axis == e.HORIZONTAL_AXIS) { dx = e.detail; }\n if (dy == null && e.detail && e.axis == e.VERTICAL_AXIS) { dy = e.detail; }\n else if (dy == null) { dy = e.wheelDelta; }\n return {x: dx, y: dy}\n }\n function wheelEventPixels(e) {\n var delta = wheelEventDelta(e);\n delta.x *= wheelPixelsPerUnit;\n delta.y *= wheelPixelsPerUnit;\n return delta\n }\n\n function onScrollWheel(cm, e) {\n var delta = wheelEventDelta(e), dx = delta.x, dy = delta.y;\n\n var display = cm.display, scroll = display.scroller;\n // Quit if there's nothing to scroll here\n var canScrollX = scroll.scrollWidth > scroll.clientWidth;\n var canScrollY = scroll.scrollHeight > scroll.clientHeight;\n if (!(dx && canScrollX || dy && canScrollY)) { return }\n\n // Webkit browsers on OS X abort momentum scrolls when the target\n // of the scroll event is removed from the scrollable element.\n // This hack (see related code in patchDisplay) makes sure the\n // element is kept around.\n if (dy && mac && webkit) {\n outer: for (var cur = e.target, view = display.view; cur != scroll; cur = cur.parentNode) {\n for (var i = 0; i < view.length; i++) {\n if (view[i].node == cur) {\n cm.display.currentWheelTarget = cur;\n break outer\n }\n }\n }\n }\n\n // On some browsers, horizontal scrolling will cause redraws to\n // happen before the gutter has been realigned, causing it to\n // wriggle around in a most unseemly way. When we have an\n // estimated pixels/delta value, we just handle horizontal\n // scrolling entirely here. It'll be slightly off from native, but\n // better than glitching out.\n if (dx && !gecko && !presto && wheelPixelsPerUnit != null) {\n if (dy && canScrollY)\n { updateScrollTop(cm, Math.max(0, scroll.scrollTop + dy * wheelPixelsPerUnit)); }\n setScrollLeft(cm, Math.max(0, scroll.scrollLeft + dx * wheelPixelsPerUnit));\n // Only prevent default scrolling if vertical scrolling is\n // actually possible. Otherwise, it causes vertical scroll\n // jitter on OSX trackpads when deltaX is small and deltaY\n // is large (issue #3579)\n if (!dy || (dy && canScrollY))\n { e_preventDefault(e); }\n display.wheelStartX = null; // Abort measurement, if in progress\n return\n }\n\n // 'Project' the visible viewport to cover the area that is being\n // scrolled into view (if we know enough to estimate it).\n if (dy && wheelPixelsPerUnit != null) {\n var pixels = dy * wheelPixelsPerUnit;\n var top = cm.doc.scrollTop, bot = top + display.wrapper.clientHeight;\n if (pixels < 0) { top = Math.max(0, top + pixels - 50); }\n else { bot = Math.min(cm.doc.height, bot + pixels + 50); }\n updateDisplaySimple(cm, {top: top, bottom: bot});\n }\n\n if (wheelSamples < 20) {\n if (display.wheelStartX == null) {\n display.wheelStartX = scroll.scrollLeft; display.wheelStartY = scroll.scrollTop;\n display.wheelDX = dx; display.wheelDY = dy;\n setTimeout(function () {\n if (display.wheelStartX == null) { return }\n var movedX = scroll.scrollLeft - display.wheelStartX;\n var movedY = scroll.scrollTop - display.wheelStartY;\n var sample = (movedY && display.wheelDY && movedY / display.wheelDY) ||\n (movedX && display.wheelDX && movedX / display.wheelDX);\n display.wheelStartX = display.wheelStartY = null;\n if (!sample) { return }\n wheelPixelsPerUnit = (wheelPixelsPerUnit * wheelSamples + sample) / (wheelSamples + 1);\n ++wheelSamples;\n }, 200);\n } else {\n display.wheelDX += dx; display.wheelDY += dy;\n }\n }\n }\n\n // Selection objects are immutable. A new one is created every time\n // the selection changes. A selection is one or more non-overlapping\n // (and non-touching) ranges, sorted, and an integer that indicates\n // which one is the primary selection (the one that's scrolled into\n // view, that getCursor returns, etc).\n var Selection = function(ranges, primIndex) {\n this.ranges = ranges;\n this.primIndex = primIndex;\n };\n\n Selection.prototype.primary = function () { return this.ranges[this.primIndex] };\n\n Selection.prototype.equals = function (other) {\n if (other == this) { return true }\n if (other.primIndex != this.primIndex || other.ranges.length != this.ranges.length) { return false }\n for (var i = 0; i < this.ranges.length; i++) {\n var here = this.ranges[i], there = other.ranges[i];\n if (!equalCursorPos(here.anchor, there.anchor) || !equalCursorPos(here.head, there.head)) { return false }\n }\n return true\n };\n\n Selection.prototype.deepCopy = function () {\n var out = [];\n for (var i = 0; i < this.ranges.length; i++)\n { out[i] = new Range(copyPos(this.ranges[i].anchor), copyPos(this.ranges[i].head)); }\n return new Selection(out, this.primIndex)\n };\n\n Selection.prototype.somethingSelected = function () {\n for (var i = 0; i < this.ranges.length; i++)\n { if (!this.ranges[i].empty()) { return true } }\n return false\n };\n\n Selection.prototype.contains = function (pos, end) {\n if (!end) { end = pos; }\n for (var i = 0; i < this.ranges.length; i++) {\n var range = this.ranges[i];\n if (cmp(end, range.from()) >= 0 && cmp(pos, range.to()) <= 0)\n { return i }\n }\n return -1\n };\n\n var Range = function(anchor, head) {\n this.anchor = anchor; this.head = head;\n };\n\n Range.prototype.from = function () { return minPos(this.anchor, this.head) };\n Range.prototype.to = function () { return maxPos(this.anchor, this.head) };\n Range.prototype.empty = function () { return this.head.line == this.anchor.line && this.head.ch == this.anchor.ch };\n\n // Take an unsorted, potentially overlapping set of ranges, and\n // build a selection out of it. 'Consumes' ranges array (modifying\n // it).\n function normalizeSelection(cm, ranges, primIndex) {\n var mayTouch = cm && cm.options.selectionsMayTouch;\n var prim = ranges[primIndex];\n ranges.sort(function (a, b) { return cmp(a.from(), b.from()); });\n primIndex = indexOf(ranges, prim);\n for (var i = 1; i < ranges.length; i++) {\n var cur = ranges[i], prev = ranges[i - 1];\n var diff = cmp(prev.to(), cur.from());\n if (mayTouch && !cur.empty() ? diff > 0 : diff >= 0) {\n var from = minPos(prev.from(), cur.from()), to = maxPos(prev.to(), cur.to());\n var inv = prev.empty() ? cur.from() == cur.head : prev.from() == prev.head;\n if (i <= primIndex) { --primIndex; }\n ranges.splice(--i, 2, new Range(inv ? to : from, inv ? from : to));\n }\n }\n return new Selection(ranges, primIndex)\n }\n\n function simpleSelection(anchor, head) {\n return new Selection([new Range(anchor, head || anchor)], 0)\n }\n\n // Compute the position of the end of a change (its 'to' property\n // refers to the pre-change end).\n function changeEnd(change) {\n if (!change.text) { return change.to }\n return Pos(change.from.line + change.text.length - 1,\n lst(change.text).length + (change.text.length == 1 ? change.from.ch : 0))\n }\n\n // Adjust a position to refer to the post-change position of the\n // same text, or the end of the change if the change covers it.\n function adjustForChange(pos, change) {\n if (cmp(pos, change.from) < 0) { return pos }\n if (cmp(pos, change.to) <= 0) { return changeEnd(change) }\n\n var line = pos.line + change.text.length - (change.to.line - change.from.line) - 1, ch = pos.ch;\n if (pos.line == change.to.line) { ch += changeEnd(change).ch - change.to.ch; }\n return Pos(line, ch)\n }\n\n function computeSelAfterChange(doc, change) {\n var out = [];\n for (var i = 0; i < doc.sel.ranges.length; i++) {\n var range = doc.sel.ranges[i];\n out.push(new Range(adjustForChange(range.anchor, change),\n adjustForChange(range.head, change)));\n }\n return normalizeSelection(doc.cm, out, doc.sel.primIndex)\n }\n\n function offsetPos(pos, old, nw) {\n if (pos.line == old.line)\n { return Pos(nw.line, pos.ch - old.ch + nw.ch) }\n else\n { return Pos(nw.line + (pos.line - old.line), pos.ch) }\n }\n\n // Used by replaceSelections to allow moving the selection to the\n // start or around the replaced test. Hint may be \"start\" or \"around\".\n function computeReplacedSel(doc, changes, hint) {\n var out = [];\n var oldPrev = Pos(doc.first, 0), newPrev = oldPrev;\n for (var i = 0; i < changes.length; i++) {\n var change = changes[i];\n var from = offsetPos(change.from, oldPrev, newPrev);\n var to = offsetPos(changeEnd(change), oldPrev, newPrev);\n oldPrev = change.to;\n newPrev = to;\n if (hint == \"around\") {\n var range = doc.sel.ranges[i], inv = cmp(range.head, range.anchor) < 0;\n out[i] = new Range(inv ? to : from, inv ? from : to);\n } else {\n out[i] = new Range(from, from);\n }\n }\n return new Selection(out, doc.sel.primIndex)\n }\n\n // Used to get the editor into a consistent state again when options change.\n\n function loadMode(cm) {\n cm.doc.mode = getMode(cm.options, cm.doc.modeOption);\n resetModeState(cm);\n }\n\n function resetModeState(cm) {\n cm.doc.iter(function (line) {\n if (line.stateAfter) { line.stateAfter = null; }\n if (line.styles) { line.styles = null; }\n });\n cm.doc.modeFrontier = cm.doc.highlightFrontier = cm.doc.first;\n startWorker(cm, 100);\n cm.state.modeGen++;\n if (cm.curOp) { regChange(cm); }\n }\n\n // DOCUMENT DATA STRUCTURE\n\n // By default, updates that start and end at the beginning of a line\n // are treated specially, in order to make the association of line\n // widgets and marker elements with the text behave more intuitive.\n function isWholeLineUpdate(doc, change) {\n return change.from.ch == 0 && change.to.ch == 0 && lst(change.text) == \"\" &&\n (!doc.cm || doc.cm.options.wholeLineUpdateBefore)\n }\n\n // Perform a change on the document data structure.\n function updateDoc(doc, change, markedSpans, estimateHeight) {\n function spansFor(n) {return markedSpans ? markedSpans[n] : null}\n function update(line, text, spans) {\n updateLine(line, text, spans, estimateHeight);\n signalLater(line, \"change\", line, change);\n }\n function linesFor(start, end) {\n var result = [];\n for (var i = start; i < end; ++i)\n { result.push(new Line(text[i], spansFor(i), estimateHeight)); }\n return result\n }\n\n var from = change.from, to = change.to, text = change.text;\n var firstLine = getLine(doc, from.line), lastLine = getLine(doc, to.line);\n var lastText = lst(text), lastSpans = spansFor(text.length - 1), nlines = to.line - from.line;\n\n // Adjust the line structure\n if (change.full) {\n doc.insert(0, linesFor(0, text.length));\n doc.remove(text.length, doc.size - text.length);\n } else if (isWholeLineUpdate(doc, change)) {\n // This is a whole-line replace. Treated specially to make\n // sure line objects move the way they are supposed to.\n var added = linesFor(0, text.length - 1);\n update(lastLine, lastLine.text, lastSpans);\n if (nlines) { doc.remove(from.line, nlines); }\n if (added.length) { doc.insert(from.line, added); }\n } else if (firstLine == lastLine) {\n if (text.length == 1) {\n update(firstLine, firstLine.text.slice(0, from.ch) + lastText + firstLine.text.slice(to.ch), lastSpans);\n } else {\n var added$1 = linesFor(1, text.length - 1);\n added$1.push(new Line(lastText + firstLine.text.slice(to.ch), lastSpans, estimateHeight));\n update(firstLine, firstLine.text.slice(0, from.ch) + text[0], spansFor(0));\n doc.insert(from.line + 1, added$1);\n }\n } else if (text.length == 1) {\n update(firstLine, firstLine.text.slice(0, from.ch) + text[0] + lastLine.text.slice(to.ch), spansFor(0));\n doc.remove(from.line + 1, nlines);\n } else {\n update(firstLine, firstLine.text.slice(0, from.ch) + text[0], spansFor(0));\n update(lastLine, lastText + lastLine.text.slice(to.ch), lastSpans);\n var added$2 = linesFor(1, text.length - 1);\n if (nlines > 1) { doc.remove(from.line + 1, nlines - 1); }\n doc.insert(from.line + 1, added$2);\n }\n\n signalLater(doc, \"change\", doc, change);\n }\n\n // Call f for all linked documents.\n function linkedDocs(doc, f, sharedHistOnly) {\n function propagate(doc, skip, sharedHist) {\n if (doc.linked) { for (var i = 0; i < doc.linked.length; ++i) {\n var rel = doc.linked[i];\n if (rel.doc == skip) { continue }\n var shared = sharedHist && rel.sharedHist;\n if (sharedHistOnly && !shared) { continue }\n f(rel.doc, shared);\n propagate(rel.doc, doc, shared);\n } }\n }\n propagate(doc, null, true);\n }\n\n // Attach a document to an editor.\n function attachDoc(cm, doc) {\n if (doc.cm) { throw new Error(\"This document is already in use.\") }\n cm.doc = doc;\n doc.cm = cm;\n estimateLineHeights(cm);\n loadMode(cm);\n setDirectionClass(cm);\n cm.options.direction = doc.direction;\n if (!cm.options.lineWrapping) { findMaxLine(cm); }\n cm.options.mode = doc.modeOption;\n regChange(cm);\n }\n\n function setDirectionClass(cm) {\n (cm.doc.direction == \"rtl\" ? addClass : rmClass)(cm.display.lineDiv, \"CodeMirror-rtl\");\n }\n\n function directionChanged(cm) {\n runInOp(cm, function () {\n setDirectionClass(cm);\n regChange(cm);\n });\n }\n\n function History(prev) {\n // Arrays of change events and selections. Doing something adds an\n // event to done and clears undo. Undoing moves events from done\n // to undone, redoing moves them in the other direction.\n this.done = []; this.undone = [];\n this.undoDepth = prev ? prev.undoDepth : Infinity;\n // Used to track when changes can be merged into a single undo\n // event\n this.lastModTime = this.lastSelTime = 0;\n this.lastOp = this.lastSelOp = null;\n this.lastOrigin = this.lastSelOrigin = null;\n // Used by the isClean() method\n this.generation = this.maxGeneration = prev ? prev.maxGeneration : 1;\n }\n\n // Create a history change event from an updateDoc-style change\n // object.\n function historyChangeFromChange(doc, change) {\n var histChange = {from: copyPos(change.from), to: changeEnd(change), text: getBetween(doc, change.from, change.to)};\n attachLocalSpans(doc, histChange, change.from.line, change.to.line + 1);\n linkedDocs(doc, function (doc) { return attachLocalSpans(doc, histChange, change.from.line, change.to.line + 1); }, true);\n return histChange\n }\n\n // Pop all selection events off the end of a history array. Stop at\n // a change event.\n function clearSelectionEvents(array) {\n while (array.length) {\n var last = lst(array);\n if (last.ranges) { array.pop(); }\n else { break }\n }\n }\n\n // Find the top change event in the history. Pop off selection\n // events that are in the way.\n function lastChangeEvent(hist, force) {\n if (force) {\n clearSelectionEvents(hist.done);\n return lst(hist.done)\n } else if (hist.done.length && !lst(hist.done).ranges) {\n return lst(hist.done)\n } else if (hist.done.length > 1 && !hist.done[hist.done.length - 2].ranges) {\n hist.done.pop();\n return lst(hist.done)\n }\n }\n\n // Register a change in the history. Merges changes that are within\n // a single operation, or are close together with an origin that\n // allows merging (starting with \"+\") into a single event.\n function addChangeToHistory(doc, change, selAfter, opId) {\n var hist = doc.history;\n hist.undone.length = 0;\n var time = +new Date, cur;\n var last;\n\n if ((hist.lastOp == opId ||\n hist.lastOrigin == change.origin && change.origin &&\n ((change.origin.charAt(0) == \"+\" && hist.lastModTime > time - (doc.cm ? doc.cm.options.historyEventDelay : 500)) ||\n change.origin.charAt(0) == \"*\")) &&\n (cur = lastChangeEvent(hist, hist.lastOp == opId))) {\n // Merge this change into the last event\n last = lst(cur.changes);\n if (cmp(change.from, change.to) == 0 && cmp(change.from, last.to) == 0) {\n // Optimized case for simple insertion -- don't want to add\n // new changesets for every character typed\n last.to = changeEnd(change);\n } else {\n // Add new sub-event\n cur.changes.push(historyChangeFromChange(doc, change));\n }\n } else {\n // Can not be merged, start a new event.\n var before = lst(hist.done);\n if (!before || !before.ranges)\n { pushSelectionToHistory(doc.sel, hist.done); }\n cur = {changes: [historyChangeFromChange(doc, change)],\n generation: hist.generation};\n hist.done.push(cur);\n while (hist.done.length > hist.undoDepth) {\n hist.done.shift();\n if (!hist.done[0].ranges) { hist.done.shift(); }\n }\n }\n hist.done.push(selAfter);\n hist.generation = ++hist.maxGeneration;\n hist.lastModTime = hist.lastSelTime = time;\n hist.lastOp = hist.lastSelOp = opId;\n hist.lastOrigin = hist.lastSelOrigin = change.origin;\n\n if (!last) { signal(doc, \"historyAdded\"); }\n }\n\n function selectionEventCanBeMerged(doc, origin, prev, sel) {\n var ch = origin.charAt(0);\n return ch == \"*\" ||\n ch == \"+\" &&\n prev.ranges.length == sel.ranges.length &&\n prev.somethingSelected() == sel.somethingSelected() &&\n new Date - doc.history.lastSelTime <= (doc.cm ? doc.cm.options.historyEventDelay : 500)\n }\n\n // Called whenever the selection changes, sets the new selection as\n // the pending selection in the history, and pushes the old pending\n // selection into the 'done' array when it was significantly\n // different (in number of selected ranges, emptiness, or time).\n function addSelectionToHistory(doc, sel, opId, options) {\n var hist = doc.history, origin = options && options.origin;\n\n // A new event is started when the previous origin does not match\n // the current, or the origins don't allow matching. Origins\n // starting with * are always merged, those starting with + are\n // merged when similar and close together in time.\n if (opId == hist.lastSelOp ||\n (origin && hist.lastSelOrigin == origin &&\n (hist.lastModTime == hist.lastSelTime && hist.lastOrigin == origin ||\n selectionEventCanBeMerged(doc, origin, lst(hist.done), sel))))\n { hist.done[hist.done.length - 1] = sel; }\n else\n { pushSelectionToHistory(sel, hist.done); }\n\n hist.lastSelTime = +new Date;\n hist.lastSelOrigin = origin;\n hist.lastSelOp = opId;\n if (options && options.clearRedo !== false)\n { clearSelectionEvents(hist.undone); }\n }\n\n function pushSelectionToHistory(sel, dest) {\n var top = lst(dest);\n if (!(top && top.ranges && top.equals(sel)))\n { dest.push(sel); }\n }\n\n // Used to store marked span information in the history.\n function attachLocalSpans(doc, change, from, to) {\n var existing = change[\"spans_\" + doc.id], n = 0;\n doc.iter(Math.max(doc.first, from), Math.min(doc.first + doc.size, to), function (line) {\n if (line.markedSpans)\n { (existing || (existing = change[\"spans_\" + doc.id] = {}))[n] = line.markedSpans; }\n ++n;\n });\n }\n\n // When un/re-doing restores text containing marked spans, those\n // that have been explicitly cleared should not be restored.\n function removeClearedSpans(spans) {\n if (!spans) { return null }\n var out;\n for (var i = 0; i < spans.length; ++i) {\n if (spans[i].marker.explicitlyCleared) { if (!out) { out = spans.slice(0, i); } }\n else if (out) { out.push(spans[i]); }\n }\n return !out ? spans : out.length ? out : null\n }\n\n // Retrieve and filter the old marked spans stored in a change event.\n function getOldSpans(doc, change) {\n var found = change[\"spans_\" + doc.id];\n if (!found) { return null }\n var nw = [];\n for (var i = 0; i < change.text.length; ++i)\n { nw.push(removeClearedSpans(found[i])); }\n return nw\n }\n\n // Used for un/re-doing changes from the history. Combines the\n // result of computing the existing spans with the set of spans that\n // existed in the history (so that deleting around a span and then\n // undoing brings back the span).\n function mergeOldSpans(doc, change) {\n var old = getOldSpans(doc, change);\n var stretched = stretchSpansOverChange(doc, change);\n if (!old) { return stretched }\n if (!stretched) { return old }\n\n for (var i = 0; i < old.length; ++i) {\n var oldCur = old[i], stretchCur = stretched[i];\n if (oldCur && stretchCur) {\n spans: for (var j = 0; j < stretchCur.length; ++j) {\n var span = stretchCur[j];\n for (var k = 0; k < oldCur.length; ++k)\n { if (oldCur[k].marker == span.marker) { continue spans } }\n oldCur.push(span);\n }\n } else if (stretchCur) {\n old[i] = stretchCur;\n }\n }\n return old\n }\n\n // Used both to provide a JSON-safe object in .getHistory, and, when\n // detaching a document, to split the history in two\n function copyHistoryArray(events, newGroup, instantiateSel) {\n var copy = [];\n for (var i = 0; i < events.length; ++i) {\n var event = events[i];\n if (event.ranges) {\n copy.push(instantiateSel ? Selection.prototype.deepCopy.call(event) : event);\n continue\n }\n var changes = event.changes, newChanges = [];\n copy.push({changes: newChanges});\n for (var j = 0; j < changes.length; ++j) {\n var change = changes[j], m = (void 0);\n newChanges.push({from: change.from, to: change.to, text: change.text});\n if (newGroup) { for (var prop in change) { if (m = prop.match(/^spans_(\\d+)$/)) {\n if (indexOf(newGroup, Number(m[1])) > -1) {\n lst(newChanges)[prop] = change[prop];\n delete change[prop];\n }\n } } }\n }\n }\n return copy\n }\n\n // The 'scroll' parameter given to many of these indicated whether\n // the new cursor position should be scrolled into view after\n // modifying the selection.\n\n // If shift is held or the extend flag is set, extends a range to\n // include a given position (and optionally a second position).\n // Otherwise, simply returns the range between the given positions.\n // Used for cursor motion and such.\n function extendRange(range, head, other, extend) {\n if (extend) {\n var anchor = range.anchor;\n if (other) {\n var posBefore = cmp(head, anchor) < 0;\n if (posBefore != (cmp(other, anchor) < 0)) {\n anchor = head;\n head = other;\n } else if (posBefore != (cmp(head, other) < 0)) {\n head = other;\n }\n }\n return new Range(anchor, head)\n } else {\n return new Range(other || head, head)\n }\n }\n\n // Extend the primary selection range, discard the rest.\n function extendSelection(doc, head, other, options, extend) {\n if (extend == null) { extend = doc.cm && (doc.cm.display.shift || doc.extend); }\n setSelection(doc, new Selection([extendRange(doc.sel.primary(), head, other, extend)], 0), options);\n }\n\n // Extend all selections (pos is an array of selections with length\n // equal the number of selections)\n function extendSelections(doc, heads, options) {\n var out = [];\n var extend = doc.cm && (doc.cm.display.shift || doc.extend);\n for (var i = 0; i < doc.sel.ranges.length; i++)\n { out[i] = extendRange(doc.sel.ranges[i], heads[i], null, extend); }\n var newSel = normalizeSelection(doc.cm, out, doc.sel.primIndex);\n setSelection(doc, newSel, options);\n }\n\n // Updates a single range in the selection.\n function replaceOneSelection(doc, i, range, options) {\n var ranges = doc.sel.ranges.slice(0);\n ranges[i] = range;\n setSelection(doc, normalizeSelection(doc.cm, ranges, doc.sel.primIndex), options);\n }\n\n // Reset the selection to a single range.\n function setSimpleSelection(doc, anchor, head, options) {\n setSelection(doc, simpleSelection(anchor, head), options);\n }\n\n // Give beforeSelectionChange handlers a change to influence a\n // selection update.\n function filterSelectionChange(doc, sel, options) {\n var obj = {\n ranges: sel.ranges,\n update: function(ranges) {\n this.ranges = [];\n for (var i = 0; i < ranges.length; i++)\n { this.ranges[i] = new Range(clipPos(doc, ranges[i].anchor),\n clipPos(doc, ranges[i].head)); }\n },\n origin: options && options.origin\n };\n signal(doc, \"beforeSelectionChange\", doc, obj);\n if (doc.cm) { signal(doc.cm, \"beforeSelectionChange\", doc.cm, obj); }\n if (obj.ranges != sel.ranges) { return normalizeSelection(doc.cm, obj.ranges, obj.ranges.length - 1) }\n else { return sel }\n }\n\n function setSelectionReplaceHistory(doc, sel, options) {\n var done = doc.history.done, last = lst(done);\n if (last && last.ranges) {\n done[done.length - 1] = sel;\n setSelectionNoUndo(doc, sel, options);\n } else {\n setSelection(doc, sel, options);\n }\n }\n\n // Set a new selection.\n function setSelection(doc, sel, options) {\n setSelectionNoUndo(doc, sel, options);\n addSelectionToHistory(doc, doc.sel, doc.cm ? doc.cm.curOp.id : NaN, options);\n }\n\n function setSelectionNoUndo(doc, sel, options) {\n if (hasHandler(doc, \"beforeSelectionChange\") || doc.cm && hasHandler(doc.cm, \"beforeSelectionChange\"))\n { sel = filterSelectionChange(doc, sel, options); }\n\n var bias = options && options.bias ||\n (cmp(sel.primary().head, doc.sel.primary().head) < 0 ? -1 : 1);\n setSelectionInner(doc, skipAtomicInSelection(doc, sel, bias, true));\n\n if (!(options && options.scroll === false) && doc.cm && doc.cm.getOption(\"readOnly\") != \"nocursor\")\n { ensureCursorVisible(doc.cm); }\n }\n\n function setSelectionInner(doc, sel) {\n if (sel.equals(doc.sel)) { return }\n\n doc.sel = sel;\n\n if (doc.cm) {\n doc.cm.curOp.updateInput = 1;\n doc.cm.curOp.selectionChanged = true;\n signalCursorActivity(doc.cm);\n }\n signalLater(doc, \"cursorActivity\", doc);\n }\n\n // Verify that the selection does not partially select any atomic\n // marked ranges.\n function reCheckSelection(doc) {\n setSelectionInner(doc, skipAtomicInSelection(doc, doc.sel, null, false));\n }\n\n // Return a selection that does not partially select any atomic\n // ranges.\n function skipAtomicInSelection(doc, sel, bias, mayClear) {\n var out;\n for (var i = 0; i < sel.ranges.length; i++) {\n var range = sel.ranges[i];\n var old = sel.ranges.length == doc.sel.ranges.length && doc.sel.ranges[i];\n var newAnchor = skipAtomic(doc, range.anchor, old && old.anchor, bias, mayClear);\n var newHead = skipAtomic(doc, range.head, old && old.head, bias, mayClear);\n if (out || newAnchor != range.anchor || newHead != range.head) {\n if (!out) { out = sel.ranges.slice(0, i); }\n out[i] = new Range(newAnchor, newHead);\n }\n }\n return out ? normalizeSelection(doc.cm, out, sel.primIndex) : sel\n }\n\n function skipAtomicInner(doc, pos, oldPos, dir, mayClear) {\n var line = getLine(doc, pos.line);\n if (line.markedSpans) { for (var i = 0; i < line.markedSpans.length; ++i) {\n var sp = line.markedSpans[i], m = sp.marker;\n\n // Determine if we should prevent the cursor being placed to the left/right of an atomic marker\n // Historically this was determined using the inclusiveLeft/Right option, but the new way to control it\n // is with selectLeft/Right\n var preventCursorLeft = (\"selectLeft\" in m) ? !m.selectLeft : m.inclusiveLeft;\n var preventCursorRight = (\"selectRight\" in m) ? !m.selectRight : m.inclusiveRight;\n\n if ((sp.from == null || (preventCursorLeft ? sp.from <= pos.ch : sp.from < pos.ch)) &&\n (sp.to == null || (preventCursorRight ? sp.to >= pos.ch : sp.to > pos.ch))) {\n if (mayClear) {\n signal(m, \"beforeCursorEnter\");\n if (m.explicitlyCleared) {\n if (!line.markedSpans) { break }\n else {--i; continue}\n }\n }\n if (!m.atomic) { continue }\n\n if (oldPos) {\n var near = m.find(dir < 0 ? 1 : -1), diff = (void 0);\n if (dir < 0 ? preventCursorRight : preventCursorLeft)\n { near = movePos(doc, near, -dir, near && near.line == pos.line ? line : null); }\n if (near && near.line == pos.line && (diff = cmp(near, oldPos)) && (dir < 0 ? diff < 0 : diff > 0))\n { return skipAtomicInner(doc, near, pos, dir, mayClear) }\n }\n\n var far = m.find(dir < 0 ? -1 : 1);\n if (dir < 0 ? preventCursorLeft : preventCursorRight)\n { far = movePos(doc, far, dir, far.line == pos.line ? line : null); }\n return far ? skipAtomicInner(doc, far, pos, dir, mayClear) : null\n }\n } }\n return pos\n }\n\n // Ensure a given position is not inside an atomic range.\n function skipAtomic(doc, pos, oldPos, bias, mayClear) {\n var dir = bias || 1;\n var found = skipAtomicInner(doc, pos, oldPos, dir, mayClear) ||\n (!mayClear && skipAtomicInner(doc, pos, oldPos, dir, true)) ||\n skipAtomicInner(doc, pos, oldPos, -dir, mayClear) ||\n (!mayClear && skipAtomicInner(doc, pos, oldPos, -dir, true));\n if (!found) {\n doc.cantEdit = true;\n return Pos(doc.first, 0)\n }\n return found\n }\n\n function movePos(doc, pos, dir, line) {\n if (dir < 0 && pos.ch == 0) {\n if (pos.line > doc.first) { return clipPos(doc, Pos(pos.line - 1)) }\n else { return null }\n } else if (dir > 0 && pos.ch == (line || getLine(doc, pos.line)).text.length) {\n if (pos.line < doc.first + doc.size - 1) { return Pos(pos.line + 1, 0) }\n else { return null }\n } else {\n return new Pos(pos.line, pos.ch + dir)\n }\n }\n\n function selectAll(cm) {\n cm.setSelection(Pos(cm.firstLine(), 0), Pos(cm.lastLine()), sel_dontScroll);\n }\n\n // UPDATING\n\n // Allow \"beforeChange\" event handlers to influence a change\n function filterChange(doc, change, update) {\n var obj = {\n canceled: false,\n from: change.from,\n to: change.to,\n text: change.text,\n origin: change.origin,\n cancel: function () { return obj.canceled = true; }\n };\n if (update) { obj.update = function (from, to, text, origin) {\n if (from) { obj.from = clipPos(doc, from); }\n if (to) { obj.to = clipPos(doc, to); }\n if (text) { obj.text = text; }\n if (origin !== undefined) { obj.origin = origin; }\n }; }\n signal(doc, \"beforeChange\", doc, obj);\n if (doc.cm) { signal(doc.cm, \"beforeChange\", doc.cm, obj); }\n\n if (obj.canceled) {\n if (doc.cm) { doc.cm.curOp.updateInput = 2; }\n return null\n }\n return {from: obj.from, to: obj.to, text: obj.text, origin: obj.origin}\n }\n\n // Apply a change to a document, and add it to the document's\n // history, and propagating it to all linked documents.\n function makeChange(doc, change, ignoreReadOnly) {\n if (doc.cm) {\n if (!doc.cm.curOp) { return operation(doc.cm, makeChange)(doc, change, ignoreReadOnly) }\n if (doc.cm.state.suppressEdits) { return }\n }\n\n if (hasHandler(doc, \"beforeChange\") || doc.cm && hasHandler(doc.cm, \"beforeChange\")) {\n change = filterChange(doc, change, true);\n if (!change) { return }\n }\n\n // Possibly split or suppress the update based on the presence\n // of read-only spans in its range.\n var split = sawReadOnlySpans && !ignoreReadOnly && removeReadOnlyRanges(doc, change.from, change.to);\n if (split) {\n for (var i = split.length - 1; i >= 0; --i)\n { makeChangeInner(doc, {from: split[i].from, to: split[i].to, text: i ? [\"\"] : change.text, origin: change.origin}); }\n } else {\n makeChangeInner(doc, change);\n }\n }\n\n function makeChangeInner(doc, change) {\n if (change.text.length == 1 && change.text[0] == \"\" && cmp(change.from, change.to) == 0) { return }\n var selAfter = computeSelAfterChange(doc, change);\n addChangeToHistory(doc, change, selAfter, doc.cm ? doc.cm.curOp.id : NaN);\n\n makeChangeSingleDoc(doc, change, selAfter, stretchSpansOverChange(doc, change));\n var rebased = [];\n\n linkedDocs(doc, function (doc, sharedHist) {\n if (!sharedHist && indexOf(rebased, doc.history) == -1) {\n rebaseHist(doc.history, change);\n rebased.push(doc.history);\n }\n makeChangeSingleDoc(doc, change, null, stretchSpansOverChange(doc, change));\n });\n }\n\n // Revert a change stored in a document's history.\n function makeChangeFromHistory(doc, type, allowSelectionOnly) {\n var suppress = doc.cm && doc.cm.state.suppressEdits;\n if (suppress && !allowSelectionOnly) { return }\n\n var hist = doc.history, event, selAfter = doc.sel;\n var source = type == \"undo\" ? hist.done : hist.undone, dest = type == \"undo\" ? hist.undone : hist.done;\n\n // Verify that there is a useable event (so that ctrl-z won't\n // needlessly clear selection events)\n var i = 0;\n for (; i < source.length; i++) {\n event = source[i];\n if (allowSelectionOnly ? event.ranges && !event.equals(doc.sel) : !event.ranges)\n { break }\n }\n if (i == source.length) { return }\n hist.lastOrigin = hist.lastSelOrigin = null;\n\n for (;;) {\n event = source.pop();\n if (event.ranges) {\n pushSelectionToHistory(event, dest);\n if (allowSelectionOnly && !event.equals(doc.sel)) {\n setSelection(doc, event, {clearRedo: false});\n return\n }\n selAfter = event;\n } else if (suppress) {\n source.push(event);\n return\n } else { break }\n }\n\n // Build up a reverse change object to add to the opposite history\n // stack (redo when undoing, and vice versa).\n var antiChanges = [];\n pushSelectionToHistory(selAfter, dest);\n dest.push({changes: antiChanges, generation: hist.generation});\n hist.generation = event.generation || ++hist.maxGeneration;\n\n var filter = hasHandler(doc, \"beforeChange\") || doc.cm && hasHandler(doc.cm, \"beforeChange\");\n\n var loop = function ( i ) {\n var change = event.changes[i];\n change.origin = type;\n if (filter && !filterChange(doc, change, false)) {\n source.length = 0;\n return {}\n }\n\n antiChanges.push(historyChangeFromChange(doc, change));\n\n var after = i ? computeSelAfterChange(doc, change) : lst(source);\n makeChangeSingleDoc(doc, change, after, mergeOldSpans(doc, change));\n if (!i && doc.cm) { doc.cm.scrollIntoView({from: change.from, to: changeEnd(change)}); }\n var rebased = [];\n\n // Propagate to the linked documents\n linkedDocs(doc, function (doc, sharedHist) {\n if (!sharedHist && indexOf(rebased, doc.history) == -1) {\n rebaseHist(doc.history, change);\n rebased.push(doc.history);\n }\n makeChangeSingleDoc(doc, change, null, mergeOldSpans(doc, change));\n });\n };\n\n for (var i$1 = event.changes.length - 1; i$1 >= 0; --i$1) {\n var returned = loop( i$1 );\n\n if ( returned ) return returned.v;\n }\n }\n\n // Sub-views need their line numbers shifted when text is added\n // above or below them in the parent document.\n function shiftDoc(doc, distance) {\n if (distance == 0) { return }\n doc.first += distance;\n doc.sel = new Selection(map(doc.sel.ranges, function (range) { return new Range(\n Pos(range.anchor.line + distance, range.anchor.ch),\n Pos(range.head.line + distance, range.head.ch)\n ); }), doc.sel.primIndex);\n if (doc.cm) {\n regChange(doc.cm, doc.first, doc.first - distance, distance);\n for (var d = doc.cm.display, l = d.viewFrom; l < d.viewTo; l++)\n { regLineChange(doc.cm, l, \"gutter\"); }\n }\n }\n\n // More lower-level change function, handling only a single document\n // (not linked ones).\n function makeChangeSingleDoc(doc, change, selAfter, spans) {\n if (doc.cm && !doc.cm.curOp)\n { return operation(doc.cm, makeChangeSingleDoc)(doc, change, selAfter, spans) }\n\n if (change.to.line < doc.first) {\n shiftDoc(doc, change.text.length - 1 - (change.to.line - change.from.line));\n return\n }\n if (change.from.line > doc.lastLine()) { return }\n\n // Clip the change to the size of this doc\n if (change.from.line < doc.first) {\n var shift = change.text.length - 1 - (doc.first - change.from.line);\n shiftDoc(doc, shift);\n change = {from: Pos(doc.first, 0), to: Pos(change.to.line + shift, change.to.ch),\n text: [lst(change.text)], origin: change.origin};\n }\n var last = doc.lastLine();\n if (change.to.line > last) {\n change = {from: change.from, to: Pos(last, getLine(doc, last).text.length),\n text: [change.text[0]], origin: change.origin};\n }\n\n change.removed = getBetween(doc, change.from, change.to);\n\n if (!selAfter) { selAfter = computeSelAfterChange(doc, change); }\n if (doc.cm) { makeChangeSingleDocInEditor(doc.cm, change, spans); }\n else { updateDoc(doc, change, spans); }\n setSelectionNoUndo(doc, selAfter, sel_dontScroll);\n\n if (doc.cantEdit && skipAtomic(doc, Pos(doc.firstLine(), 0)))\n { doc.cantEdit = false; }\n }\n\n // Handle the interaction of a change to a document with the editor\n // that this document is part of.\n function makeChangeSingleDocInEditor(cm, change, spans) {\n var doc = cm.doc, display = cm.display, from = change.from, to = change.to;\n\n var recomputeMaxLength = false, checkWidthStart = from.line;\n if (!cm.options.lineWrapping) {\n checkWidthStart = lineNo(visualLine(getLine(doc, from.line)));\n doc.iter(checkWidthStart, to.line + 1, function (line) {\n if (line == display.maxLine) {\n recomputeMaxLength = true;\n return true\n }\n });\n }\n\n if (doc.sel.contains(change.from, change.to) > -1)\n { signalCursorActivity(cm); }\n\n updateDoc(doc, change, spans, estimateHeight(cm));\n\n if (!cm.options.lineWrapping) {\n doc.iter(checkWidthStart, from.line + change.text.length, function (line) {\n var len = lineLength(line);\n if (len > display.maxLineLength) {\n display.maxLine = line;\n display.maxLineLength = len;\n display.maxLineChanged = true;\n recomputeMaxLength = false;\n }\n });\n if (recomputeMaxLength) { cm.curOp.updateMaxLine = true; }\n }\n\n retreatFrontier(doc, from.line);\n startWorker(cm, 400);\n\n var lendiff = change.text.length - (to.line - from.line) - 1;\n // Remember that these lines changed, for updating the display\n if (change.full)\n { regChange(cm); }\n else if (from.line == to.line && change.text.length == 1 && !isWholeLineUpdate(cm.doc, change))\n { regLineChange(cm, from.line, \"text\"); }\n else\n { regChange(cm, from.line, to.line + 1, lendiff); }\n\n var changesHandler = hasHandler(cm, \"changes\"), changeHandler = hasHandler(cm, \"change\");\n if (changeHandler || changesHandler) {\n var obj = {\n from: from, to: to,\n text: change.text,\n removed: change.removed,\n origin: change.origin\n };\n if (changeHandler) { signalLater(cm, \"change\", cm, obj); }\n if (changesHandler) { (cm.curOp.changeObjs || (cm.curOp.changeObjs = [])).push(obj); }\n }\n cm.display.selForContextMenu = null;\n }\n\n function replaceRange(doc, code, from, to, origin) {\n var assign;\n\n if (!to) { to = from; }\n if (cmp(to, from) < 0) { (assign = [to, from], from = assign[0], to = assign[1]); }\n if (typeof code == \"string\") { code = doc.splitLines(code); }\n makeChange(doc, {from: from, to: to, text: code, origin: origin});\n }\n\n // Rebasing/resetting history to deal with externally-sourced changes\n\n function rebaseHistSelSingle(pos, from, to, diff) {\n if (to < pos.line) {\n pos.line += diff;\n } else if (from < pos.line) {\n pos.line = from;\n pos.ch = 0;\n }\n }\n\n // Tries to rebase an array of history events given a change in the\n // document. If the change touches the same lines as the event, the\n // event, and everything 'behind' it, is discarded. If the change is\n // before the event, the event's positions are updated. Uses a\n // copy-on-write scheme for the positions, to avoid having to\n // reallocate them all on every rebase, but also avoid problems with\n // shared position objects being unsafely updated.\n function rebaseHistArray(array, from, to, diff) {\n for (var i = 0; i < array.length; ++i) {\n var sub = array[i], ok = true;\n if (sub.ranges) {\n if (!sub.copied) { sub = array[i] = sub.deepCopy(); sub.copied = true; }\n for (var j = 0; j < sub.ranges.length; j++) {\n rebaseHistSelSingle(sub.ranges[j].anchor, from, to, diff);\n rebaseHistSelSingle(sub.ranges[j].head, from, to, diff);\n }\n continue\n }\n for (var j$1 = 0; j$1 < sub.changes.length; ++j$1) {\n var cur = sub.changes[j$1];\n if (to < cur.from.line) {\n cur.from = Pos(cur.from.line + diff, cur.from.ch);\n cur.to = Pos(cur.to.line + diff, cur.to.ch);\n } else if (from <= cur.to.line) {\n ok = false;\n break\n }\n }\n if (!ok) {\n array.splice(0, i + 1);\n i = 0;\n }\n }\n }\n\n function rebaseHist(hist, change) {\n var from = change.from.line, to = change.to.line, diff = change.text.length - (to - from) - 1;\n rebaseHistArray(hist.done, from, to, diff);\n rebaseHistArray(hist.undone, from, to, diff);\n }\n\n // Utility for applying a change to a line by handle or number,\n // returning the number and optionally registering the line as\n // changed.\n function changeLine(doc, handle, changeType, op) {\n var no = handle, line = handle;\n if (typeof handle == \"number\") { line = getLine(doc, clipLine(doc, handle)); }\n else { no = lineNo(handle); }\n if (no == null) { return null }\n if (op(line, no) && doc.cm) { regLineChange(doc.cm, no, changeType); }\n return line\n }\n\n // The document is represented as a BTree consisting of leaves, with\n // chunk of lines in them, and branches, with up to ten leaves or\n // other branch nodes below them. The top node is always a branch\n // node, and is the document object itself (meaning it has\n // additional methods and properties).\n //\n // All nodes have parent links. The tree is used both to go from\n // line numbers to line objects, and to go from objects to numbers.\n // It also indexes by height, and is used to convert between height\n // and line object, and to find the total height of the document.\n //\n // See also http://marijnhaverbeke.nl/blog/codemirror-line-tree.html\n\n function LeafChunk(lines) {\n this.lines = lines;\n this.parent = null;\n var height = 0;\n for (var i = 0; i < lines.length; ++i) {\n lines[i].parent = this;\n height += lines[i].height;\n }\n this.height = height;\n }\n\n LeafChunk.prototype = {\n chunkSize: function() { return this.lines.length },\n\n // Remove the n lines at offset 'at'.\n removeInner: function(at, n) {\n for (var i = at, e = at + n; i < e; ++i) {\n var line = this.lines[i];\n this.height -= line.height;\n cleanUpLine(line);\n signalLater(line, \"delete\");\n }\n this.lines.splice(at, n);\n },\n\n // Helper used to collapse a small branch into a single leaf.\n collapse: function(lines) {\n lines.push.apply(lines, this.lines);\n },\n\n // Insert the given array of lines at offset 'at', count them as\n // having the given height.\n insertInner: function(at, lines, height) {\n this.height += height;\n this.lines = this.lines.slice(0, at).concat(lines).concat(this.lines.slice(at));\n for (var i = 0; i < lines.length; ++i) { lines[i].parent = this; }\n },\n\n // Used to iterate over a part of the tree.\n iterN: function(at, n, op) {\n for (var e = at + n; at < e; ++at)\n { if (op(this.lines[at])) { return true } }\n }\n };\n\n function BranchChunk(children) {\n this.children = children;\n var size = 0, height = 0;\n for (var i = 0; i < children.length; ++i) {\n var ch = children[i];\n size += ch.chunkSize(); height += ch.height;\n ch.parent = this;\n }\n this.size = size;\n this.height = height;\n this.parent = null;\n }\n\n BranchChunk.prototype = {\n chunkSize: function() { return this.size },\n\n removeInner: function(at, n) {\n this.size -= n;\n for (var i = 0; i < this.children.length; ++i) {\n var child = this.children[i], sz = child.chunkSize();\n if (at < sz) {\n var rm = Math.min(n, sz - at), oldHeight = child.height;\n child.removeInner(at, rm);\n this.height -= oldHeight - child.height;\n if (sz == rm) { this.children.splice(i--, 1); child.parent = null; }\n if ((n -= rm) == 0) { break }\n at = 0;\n } else { at -= sz; }\n }\n // If the result is smaller than 25 lines, ensure that it is a\n // single leaf node.\n if (this.size - n < 25 &&\n (this.children.length > 1 || !(this.children[0] instanceof LeafChunk))) {\n var lines = [];\n this.collapse(lines);\n this.children = [new LeafChunk(lines)];\n this.children[0].parent = this;\n }\n },\n\n collapse: function(lines) {\n for (var i = 0; i < this.children.length; ++i) { this.children[i].collapse(lines); }\n },\n\n insertInner: function(at, lines, height) {\n this.size += lines.length;\n this.height += height;\n for (var i = 0; i < this.children.length; ++i) {\n var child = this.children[i], sz = child.chunkSize();\n if (at <= sz) {\n child.insertInner(at, lines, height);\n if (child.lines && child.lines.length > 50) {\n // To avoid memory thrashing when child.lines is huge (e.g. first view of a large file), it's never spliced.\n // Instead, small slices are taken. They're taken in order because sequential memory accesses are fastest.\n var remaining = child.lines.length % 25 + 25;\n for (var pos = remaining; pos < child.lines.length;) {\n var leaf = new LeafChunk(child.lines.slice(pos, pos += 25));\n child.height -= leaf.height;\n this.children.splice(++i, 0, leaf);\n leaf.parent = this;\n }\n child.lines = child.lines.slice(0, remaining);\n this.maybeSpill();\n }\n break\n }\n at -= sz;\n }\n },\n\n // When a node has grown, check whether it should be split.\n maybeSpill: function() {\n if (this.children.length <= 10) { return }\n var me = this;\n do {\n var spilled = me.children.splice(me.children.length - 5, 5);\n var sibling = new BranchChunk(spilled);\n if (!me.parent) { // Become the parent node\n var copy = new BranchChunk(me.children);\n copy.parent = me;\n me.children = [copy, sibling];\n me = copy;\n } else {\n me.size -= sibling.size;\n me.height -= sibling.height;\n var myIndex = indexOf(me.parent.children, me);\n me.parent.children.splice(myIndex + 1, 0, sibling);\n }\n sibling.parent = me.parent;\n } while (me.children.length > 10)\n me.parent.maybeSpill();\n },\n\n iterN: function(at, n, op) {\n for (var i = 0; i < this.children.length; ++i) {\n var child = this.children[i], sz = child.chunkSize();\n if (at < sz) {\n var used = Math.min(n, sz - at);\n if (child.iterN(at, used, op)) { return true }\n if ((n -= used) == 0) { break }\n at = 0;\n } else { at -= sz; }\n }\n }\n };\n\n // Line widgets are block elements displayed above or below a line.\n\n var LineWidget = function(doc, node, options) {\n if (options) { for (var opt in options) { if (options.hasOwnProperty(opt))\n { this[opt] = options[opt]; } } }\n this.doc = doc;\n this.node = node;\n };\n\n LineWidget.prototype.clear = function () {\n var cm = this.doc.cm, ws = this.line.widgets, line = this.line, no = lineNo(line);\n if (no == null || !ws) { return }\n for (var i = 0; i < ws.length; ++i) { if (ws[i] == this) { ws.splice(i--, 1); } }\n if (!ws.length) { line.widgets = null; }\n var height = widgetHeight(this);\n updateLineHeight(line, Math.max(0, line.height - height));\n if (cm) {\n runInOp(cm, function () {\n adjustScrollWhenAboveVisible(cm, line, -height);\n regLineChange(cm, no, \"widget\");\n });\n signalLater(cm, \"lineWidgetCleared\", cm, this, no);\n }\n };\n\n LineWidget.prototype.changed = function () {\n var this$1 = this;\n\n var oldH = this.height, cm = this.doc.cm, line = this.line;\n this.height = null;\n var diff = widgetHeight(this) - oldH;\n if (!diff) { return }\n if (!lineIsHidden(this.doc, line)) { updateLineHeight(line, line.height + diff); }\n if (cm) {\n runInOp(cm, function () {\n cm.curOp.forceUpdate = true;\n adjustScrollWhenAboveVisible(cm, line, diff);\n signalLater(cm, \"lineWidgetChanged\", cm, this$1, lineNo(line));\n });\n }\n };\n eventMixin(LineWidget);\n\n function adjustScrollWhenAboveVisible(cm, line, diff) {\n if (heightAtLine(line) < ((cm.curOp && cm.curOp.scrollTop) || cm.doc.scrollTop))\n { addToScrollTop(cm, diff); }\n }\n\n function addLineWidget(doc, handle, node, options) {\n var widget = new LineWidget(doc, node, options);\n var cm = doc.cm;\n if (cm && widget.noHScroll) { cm.display.alignWidgets = true; }\n changeLine(doc, handle, \"widget\", function (line) {\n var widgets = line.widgets || (line.widgets = []);\n if (widget.insertAt == null) { widgets.push(widget); }\n else { widgets.splice(Math.min(widgets.length, Math.max(0, widget.insertAt)), 0, widget); }\n widget.line = line;\n if (cm && !lineIsHidden(doc, line)) {\n var aboveVisible = heightAtLine(line) < doc.scrollTop;\n updateLineHeight(line, line.height + widgetHeight(widget));\n if (aboveVisible) { addToScrollTop(cm, widget.height); }\n cm.curOp.forceUpdate = true;\n }\n return true\n });\n if (cm) { signalLater(cm, \"lineWidgetAdded\", cm, widget, typeof handle == \"number\" ? handle : lineNo(handle)); }\n return widget\n }\n\n // TEXTMARKERS\n\n // Created with markText and setBookmark methods. A TextMarker is a\n // handle that can be used to clear or find a marked position in the\n // document. Line objects hold arrays (markedSpans) containing\n // {from, to, marker} object pointing to such marker objects, and\n // indicating that such a marker is present on that line. Multiple\n // lines may point to the same marker when it spans across lines.\n // The spans will have null for their from/to properties when the\n // marker continues beyond the start/end of the line. Markers have\n // links back to the lines they currently touch.\n\n // Collapsed markers have unique ids, in order to be able to order\n // them, which is needed for uniquely determining an outer marker\n // when they overlap (they may nest, but not partially overlap).\n var nextMarkerId = 0;\n\n var TextMarker = function(doc, type) {\n this.lines = [];\n this.type = type;\n this.doc = doc;\n this.id = ++nextMarkerId;\n };\n\n // Clear the marker.\n TextMarker.prototype.clear = function () {\n if (this.explicitlyCleared) { return }\n var cm = this.doc.cm, withOp = cm && !cm.curOp;\n if (withOp) { startOperation(cm); }\n if (hasHandler(this, \"clear\")) {\n var found = this.find();\n if (found) { signalLater(this, \"clear\", found.from, found.to); }\n }\n var min = null, max = null;\n for (var i = 0; i < this.lines.length; ++i) {\n var line = this.lines[i];\n var span = getMarkedSpanFor(line.markedSpans, this);\n if (cm && !this.collapsed) { regLineChange(cm, lineNo(line), \"text\"); }\n else if (cm) {\n if (span.to != null) { max = lineNo(line); }\n if (span.from != null) { min = lineNo(line); }\n }\n line.markedSpans = removeMarkedSpan(line.markedSpans, span);\n if (span.from == null && this.collapsed && !lineIsHidden(this.doc, line) && cm)\n { updateLineHeight(line, textHeight(cm.display)); }\n }\n if (cm && this.collapsed && !cm.options.lineWrapping) { for (var i$1 = 0; i$1 < this.lines.length; ++i$1) {\n var visual = visualLine(this.lines[i$1]), len = lineLength(visual);\n if (len > cm.display.maxLineLength) {\n cm.display.maxLine = visual;\n cm.display.maxLineLength = len;\n cm.display.maxLineChanged = true;\n }\n } }\n\n if (min != null && cm && this.collapsed) { regChange(cm, min, max + 1); }\n this.lines.length = 0;\n this.explicitlyCleared = true;\n if (this.atomic && this.doc.cantEdit) {\n this.doc.cantEdit = false;\n if (cm) { reCheckSelection(cm.doc); }\n }\n if (cm) { signalLater(cm, \"markerCleared\", cm, this, min, max); }\n if (withOp) { endOperation(cm); }\n if (this.parent) { this.parent.clear(); }\n };\n\n // Find the position of the marker in the document. Returns a {from,\n // to} object by default. Side can be passed to get a specific side\n // -- 0 (both), -1 (left), or 1 (right). When lineObj is true, the\n // Pos objects returned contain a line object, rather than a line\n // number (used to prevent looking up the same line twice).\n TextMarker.prototype.find = function (side, lineObj) {\n if (side == null && this.type == \"bookmark\") { side = 1; }\n var from, to;\n for (var i = 0; i < this.lines.length; ++i) {\n var line = this.lines[i];\n var span = getMarkedSpanFor(line.markedSpans, this);\n if (span.from != null) {\n from = Pos(lineObj ? line : lineNo(line), span.from);\n if (side == -1) { return from }\n }\n if (span.to != null) {\n to = Pos(lineObj ? line : lineNo(line), span.to);\n if (side == 1) { return to }\n }\n }\n return from && {from: from, to: to}\n };\n\n // Signals that the marker's widget changed, and surrounding layout\n // should be recomputed.\n TextMarker.prototype.changed = function () {\n var this$1 = this;\n\n var pos = this.find(-1, true), widget = this, cm = this.doc.cm;\n if (!pos || !cm) { return }\n runInOp(cm, function () {\n var line = pos.line, lineN = lineNo(pos.line);\n var view = findViewForLine(cm, lineN);\n if (view) {\n clearLineMeasurementCacheFor(view);\n cm.curOp.selectionChanged = cm.curOp.forceUpdate = true;\n }\n cm.curOp.updateMaxLine = true;\n if (!lineIsHidden(widget.doc, line) && widget.height != null) {\n var oldHeight = widget.height;\n widget.height = null;\n var dHeight = widgetHeight(widget) - oldHeight;\n if (dHeight)\n { updateLineHeight(line, line.height + dHeight); }\n }\n signalLater(cm, \"markerChanged\", cm, this$1);\n });\n };\n\n TextMarker.prototype.attachLine = function (line) {\n if (!this.lines.length && this.doc.cm) {\n var op = this.doc.cm.curOp;\n if (!op.maybeHiddenMarkers || indexOf(op.maybeHiddenMarkers, this) == -1)\n { (op.maybeUnhiddenMarkers || (op.maybeUnhiddenMarkers = [])).push(this); }\n }\n this.lines.push(line);\n };\n\n TextMarker.prototype.detachLine = function (line) {\n this.lines.splice(indexOf(this.lines, line), 1);\n if (!this.lines.length && this.doc.cm) {\n var op = this.doc.cm.curOp\n ;(op.maybeHiddenMarkers || (op.maybeHiddenMarkers = [])).push(this);\n }\n };\n eventMixin(TextMarker);\n\n // Create a marker, wire it up to the right lines, and\n function markText(doc, from, to, options, type) {\n // Shared markers (across linked documents) are handled separately\n // (markTextShared will call out to this again, once per\n // document).\n if (options && options.shared) { return markTextShared(doc, from, to, options, type) }\n // Ensure we are in an operation.\n if (doc.cm && !doc.cm.curOp) { return operation(doc.cm, markText)(doc, from, to, options, type) }\n\n var marker = new TextMarker(doc, type), diff = cmp(from, to);\n if (options) { copyObj(options, marker, false); }\n // Don't connect empty markers unless clearWhenEmpty is false\n if (diff > 0 || diff == 0 && marker.clearWhenEmpty !== false)\n { return marker }\n if (marker.replacedWith) {\n // Showing up as a widget implies collapsed (widget replaces text)\n marker.collapsed = true;\n marker.widgetNode = eltP(\"span\", [marker.replacedWith], \"CodeMirror-widget\");\n if (!options.handleMouseEvents) { marker.widgetNode.setAttribute(\"cm-ignore-events\", \"true\"); }\n if (options.insertLeft) { marker.widgetNode.insertLeft = true; }\n }\n if (marker.collapsed) {\n if (conflictingCollapsedRange(doc, from.line, from, to, marker) ||\n from.line != to.line && conflictingCollapsedRange(doc, to.line, from, to, marker))\n { throw new Error(\"Inserting collapsed marker partially overlapping an existing one\") }\n seeCollapsedSpans();\n }\n\n if (marker.addToHistory)\n { addChangeToHistory(doc, {from: from, to: to, origin: \"markText\"}, doc.sel, NaN); }\n\n var curLine = from.line, cm = doc.cm, updateMaxLine;\n doc.iter(curLine, to.line + 1, function (line) {\n if (cm && marker.collapsed && !cm.options.lineWrapping && visualLine(line) == cm.display.maxLine)\n { updateMaxLine = true; }\n if (marker.collapsed && curLine != from.line) { updateLineHeight(line, 0); }\n addMarkedSpan(line, new MarkedSpan(marker,\n curLine == from.line ? from.ch : null,\n curLine == to.line ? to.ch : null), doc.cm && doc.cm.curOp);\n ++curLine;\n });\n // lineIsHidden depends on the presence of the spans, so needs a second pass\n if (marker.collapsed) { doc.iter(from.line, to.line + 1, function (line) {\n if (lineIsHidden(doc, line)) { updateLineHeight(line, 0); }\n }); }\n\n if (marker.clearOnEnter) { on(marker, \"beforeCursorEnter\", function () { return marker.clear(); }); }\n\n if (marker.readOnly) {\n seeReadOnlySpans();\n if (doc.history.done.length || doc.history.undone.length)\n { doc.clearHistory(); }\n }\n if (marker.collapsed) {\n marker.id = ++nextMarkerId;\n marker.atomic = true;\n }\n if (cm) {\n // Sync editor state\n if (updateMaxLine) { cm.curOp.updateMaxLine = true; }\n if (marker.collapsed)\n { regChange(cm, from.line, to.line + 1); }\n else if (marker.className || marker.startStyle || marker.endStyle || marker.css ||\n marker.attributes || marker.title)\n { for (var i = from.line; i <= to.line; i++) { regLineChange(cm, i, \"text\"); } }\n if (marker.atomic) { reCheckSelection(cm.doc); }\n signalLater(cm, \"markerAdded\", cm, marker);\n }\n return marker\n }\n\n // SHARED TEXTMARKERS\n\n // A shared marker spans multiple linked documents. It is\n // implemented as a meta-marker-object controlling multiple normal\n // markers.\n var SharedTextMarker = function(markers, primary) {\n this.markers = markers;\n this.primary = primary;\n for (var i = 0; i < markers.length; ++i)\n { markers[i].parent = this; }\n };\n\n SharedTextMarker.prototype.clear = function () {\n if (this.explicitlyCleared) { return }\n this.explicitlyCleared = true;\n for (var i = 0; i < this.markers.length; ++i)\n { this.markers[i].clear(); }\n signalLater(this, \"clear\");\n };\n\n SharedTextMarker.prototype.find = function (side, lineObj) {\n return this.primary.find(side, lineObj)\n };\n eventMixin(SharedTextMarker);\n\n function markTextShared(doc, from, to, options, type) {\n options = copyObj(options);\n options.shared = false;\n var markers = [markText(doc, from, to, options, type)], primary = markers[0];\n var widget = options.widgetNode;\n linkedDocs(doc, function (doc) {\n if (widget) { options.widgetNode = widget.cloneNode(true); }\n markers.push(markText(doc, clipPos(doc, from), clipPos(doc, to), options, type));\n for (var i = 0; i < doc.linked.length; ++i)\n { if (doc.linked[i].isParent) { return } }\n primary = lst(markers);\n });\n return new SharedTextMarker(markers, primary)\n }\n\n function findSharedMarkers(doc) {\n return doc.findMarks(Pos(doc.first, 0), doc.clipPos(Pos(doc.lastLine())), function (m) { return m.parent; })\n }\n\n function copySharedMarkers(doc, markers) {\n for (var i = 0; i < markers.length; i++) {\n var marker = markers[i], pos = marker.find();\n var mFrom = doc.clipPos(pos.from), mTo = doc.clipPos(pos.to);\n if (cmp(mFrom, mTo)) {\n var subMark = markText(doc, mFrom, mTo, marker.primary, marker.primary.type);\n marker.markers.push(subMark);\n subMark.parent = marker;\n }\n }\n }\n\n function detachSharedMarkers(markers) {\n var loop = function ( i ) {\n var marker = markers[i], linked = [marker.primary.doc];\n linkedDocs(marker.primary.doc, function (d) { return linked.push(d); });\n for (var j = 0; j < marker.markers.length; j++) {\n var subMarker = marker.markers[j];\n if (indexOf(linked, subMarker.doc) == -1) {\n subMarker.parent = null;\n marker.markers.splice(j--, 1);\n }\n }\n };\n\n for (var i = 0; i < markers.length; i++) loop( i );\n }\n\n var nextDocId = 0;\n var Doc = function(text, mode, firstLine, lineSep, direction) {\n if (!(this instanceof Doc)) { return new Doc(text, mode, firstLine, lineSep, direction) }\n if (firstLine == null) { firstLine = 0; }\n\n BranchChunk.call(this, [new LeafChunk([new Line(\"\", null)])]);\n this.first = firstLine;\n this.scrollTop = this.scrollLeft = 0;\n this.cantEdit = false;\n this.cleanGeneration = 1;\n this.modeFrontier = this.highlightFrontier = firstLine;\n var start = Pos(firstLine, 0);\n this.sel = simpleSelection(start);\n this.history = new History(null);\n this.id = ++nextDocId;\n this.modeOption = mode;\n this.lineSep = lineSep;\n this.direction = (direction == \"rtl\") ? \"rtl\" : \"ltr\";\n this.extend = false;\n\n if (typeof text == \"string\") { text = this.splitLines(text); }\n updateDoc(this, {from: start, to: start, text: text});\n setSelection(this, simpleSelection(start), sel_dontScroll);\n };\n\n Doc.prototype = createObj(BranchChunk.prototype, {\n constructor: Doc,\n // Iterate over the document. Supports two forms -- with only one\n // argument, it calls that for each line in the document. With\n // three, it iterates over the range given by the first two (with\n // the second being non-inclusive).\n iter: function(from, to, op) {\n if (op) { this.iterN(from - this.first, to - from, op); }\n else { this.iterN(this.first, this.first + this.size, from); }\n },\n\n // Non-public interface for adding and removing lines.\n insert: function(at, lines) {\n var height = 0;\n for (var i = 0; i < lines.length; ++i) { height += lines[i].height; }\n this.insertInner(at - this.first, lines, height);\n },\n remove: function(at, n) { this.removeInner(at - this.first, n); },\n\n // From here, the methods are part of the public interface. Most\n // are also available from CodeMirror (editor) instances.\n\n getValue: function(lineSep) {\n var lines = getLines(this, this.first, this.first + this.size);\n if (lineSep === false) { return lines }\n return lines.join(lineSep || this.lineSeparator())\n },\n setValue: docMethodOp(function(code) {\n var top = Pos(this.first, 0), last = this.first + this.size - 1;\n makeChange(this, {from: top, to: Pos(last, getLine(this, last).text.length),\n text: this.splitLines(code), origin: \"setValue\", full: true}, true);\n if (this.cm) { scrollToCoords(this.cm, 0, 0); }\n setSelection(this, simpleSelection(top), sel_dontScroll);\n }),\n replaceRange: function(code, from, to, origin) {\n from = clipPos(this, from);\n to = to ? clipPos(this, to) : from;\n replaceRange(this, code, from, to, origin);\n },\n getRange: function(from, to, lineSep) {\n var lines = getBetween(this, clipPos(this, from), clipPos(this, to));\n if (lineSep === false) { return lines }\n return lines.join(lineSep || this.lineSeparator())\n },\n\n getLine: function(line) {var l = this.getLineHandle(line); return l && l.text},\n\n getLineHandle: function(line) {if (isLine(this, line)) { return getLine(this, line) }},\n getLineNumber: function(line) {return lineNo(line)},\n\n getLineHandleVisualStart: function(line) {\n if (typeof line == \"number\") { line = getLine(this, line); }\n return visualLine(line)\n },\n\n lineCount: function() {return this.size},\n firstLine: function() {return this.first},\n lastLine: function() {return this.first + this.size - 1},\n\n clipPos: function(pos) {return clipPos(this, pos)},\n\n getCursor: function(start) {\n var range = this.sel.primary(), pos;\n if (start == null || start == \"head\") { pos = range.head; }\n else if (start == \"anchor\") { pos = range.anchor; }\n else if (start == \"end\" || start == \"to\" || start === false) { pos = range.to(); }\n else { pos = range.from(); }\n return pos\n },\n listSelections: function() { return this.sel.ranges },\n somethingSelected: function() {return this.sel.somethingSelected()},\n\n setCursor: docMethodOp(function(line, ch, options) {\n setSimpleSelection(this, clipPos(this, typeof line == \"number\" ? Pos(line, ch || 0) : line), null, options);\n }),\n setSelection: docMethodOp(function(anchor, head, options) {\n setSimpleSelection(this, clipPos(this, anchor), clipPos(this, head || anchor), options);\n }),\n extendSelection: docMethodOp(function(head, other, options) {\n extendSelection(this, clipPos(this, head), other && clipPos(this, other), options);\n }),\n extendSelections: docMethodOp(function(heads, options) {\n extendSelections(this, clipPosArray(this, heads), options);\n }),\n extendSelectionsBy: docMethodOp(function(f, options) {\n var heads = map(this.sel.ranges, f);\n extendSelections(this, clipPosArray(this, heads), options);\n }),\n setSelections: docMethodOp(function(ranges, primary, options) {\n if (!ranges.length) { return }\n var out = [];\n for (var i = 0; i < ranges.length; i++)\n { out[i] = new Range(clipPos(this, ranges[i].anchor),\n clipPos(this, ranges[i].head || ranges[i].anchor)); }\n if (primary == null) { primary = Math.min(ranges.length - 1, this.sel.primIndex); }\n setSelection(this, normalizeSelection(this.cm, out, primary), options);\n }),\n addSelection: docMethodOp(function(anchor, head, options) {\n var ranges = this.sel.ranges.slice(0);\n ranges.push(new Range(clipPos(this, anchor), clipPos(this, head || anchor)));\n setSelection(this, normalizeSelection(this.cm, ranges, ranges.length - 1), options);\n }),\n\n getSelection: function(lineSep) {\n var ranges = this.sel.ranges, lines;\n for (var i = 0; i < ranges.length; i++) {\n var sel = getBetween(this, ranges[i].from(), ranges[i].to());\n lines = lines ? lines.concat(sel) : sel;\n }\n if (lineSep === false) { return lines }\n else { return lines.join(lineSep || this.lineSeparator()) }\n },\n getSelections: function(lineSep) {\n var parts = [], ranges = this.sel.ranges;\n for (var i = 0; i < ranges.length; i++) {\n var sel = getBetween(this, ranges[i].from(), ranges[i].to());\n if (lineSep !== false) { sel = sel.join(lineSep || this.lineSeparator()); }\n parts[i] = sel;\n }\n return parts\n },\n replaceSelection: function(code, collapse, origin) {\n var dup = [];\n for (var i = 0; i < this.sel.ranges.length; i++)\n { dup[i] = code; }\n this.replaceSelections(dup, collapse, origin || \"+input\");\n },\n replaceSelections: docMethodOp(function(code, collapse, origin) {\n var changes = [], sel = this.sel;\n for (var i = 0; i < sel.ranges.length; i++) {\n var range = sel.ranges[i];\n changes[i] = {from: range.from(), to: range.to(), text: this.splitLines(code[i]), origin: origin};\n }\n var newSel = collapse && collapse != \"end\" && computeReplacedSel(this, changes, collapse);\n for (var i$1 = changes.length - 1; i$1 >= 0; i$1--)\n { makeChange(this, changes[i$1]); }\n if (newSel) { setSelectionReplaceHistory(this, newSel); }\n else if (this.cm) { ensureCursorVisible(this.cm); }\n }),\n undo: docMethodOp(function() {makeChangeFromHistory(this, \"undo\");}),\n redo: docMethodOp(function() {makeChangeFromHistory(this, \"redo\");}),\n undoSelection: docMethodOp(function() {makeChangeFromHistory(this, \"undo\", true);}),\n redoSelection: docMethodOp(function() {makeChangeFromHistory(this, \"redo\", true);}),\n\n setExtending: function(val) {this.extend = val;},\n getExtending: function() {return this.extend},\n\n historySize: function() {\n var hist = this.history, done = 0, undone = 0;\n for (var i = 0; i < hist.done.length; i++) { if (!hist.done[i].ranges) { ++done; } }\n for (var i$1 = 0; i$1 < hist.undone.length; i$1++) { if (!hist.undone[i$1].ranges) { ++undone; } }\n return {undo: done, redo: undone}\n },\n clearHistory: function() {\n var this$1 = this;\n\n this.history = new History(this.history);\n linkedDocs(this, function (doc) { return doc.history = this$1.history; }, true);\n },\n\n markClean: function() {\n this.cleanGeneration = this.changeGeneration(true);\n },\n changeGeneration: function(forceSplit) {\n if (forceSplit)\n { this.history.lastOp = this.history.lastSelOp = this.history.lastOrigin = null; }\n return this.history.generation\n },\n isClean: function (gen) {\n return this.history.generation == (gen || this.cleanGeneration)\n },\n\n getHistory: function() {\n return {done: copyHistoryArray(this.history.done),\n undone: copyHistoryArray(this.history.undone)}\n },\n setHistory: function(histData) {\n var hist = this.history = new History(this.history);\n hist.done = copyHistoryArray(histData.done.slice(0), null, true);\n hist.undone = copyHistoryArray(histData.undone.slice(0), null, true);\n },\n\n setGutterMarker: docMethodOp(function(line, gutterID, value) {\n return changeLine(this, line, \"gutter\", function (line) {\n var markers = line.gutterMarkers || (line.gutterMarkers = {});\n markers[gutterID] = value;\n if (!value && isEmpty(markers)) { line.gutterMarkers = null; }\n return true\n })\n }),\n\n clearGutter: docMethodOp(function(gutterID) {\n var this$1 = this;\n\n this.iter(function (line) {\n if (line.gutterMarkers && line.gutterMarkers[gutterID]) {\n changeLine(this$1, line, \"gutter\", function () {\n line.gutterMarkers[gutterID] = null;\n if (isEmpty(line.gutterMarkers)) { line.gutterMarkers = null; }\n return true\n });\n }\n });\n }),\n\n lineInfo: function(line) {\n var n;\n if (typeof line == \"number\") {\n if (!isLine(this, line)) { return null }\n n = line;\n line = getLine(this, line);\n if (!line) { return null }\n } else {\n n = lineNo(line);\n if (n == null) { return null }\n }\n return {line: n, handle: line, text: line.text, gutterMarkers: line.gutterMarkers,\n textClass: line.textClass, bgClass: line.bgClass, wrapClass: line.wrapClass,\n widgets: line.widgets}\n },\n\n addLineClass: docMethodOp(function(handle, where, cls) {\n return changeLine(this, handle, where == \"gutter\" ? \"gutter\" : \"class\", function (line) {\n var prop = where == \"text\" ? \"textClass\"\n : where == \"background\" ? \"bgClass\"\n : where == \"gutter\" ? \"gutterClass\" : \"wrapClass\";\n if (!line[prop]) { line[prop] = cls; }\n else if (classTest(cls).test(line[prop])) { return false }\n else { line[prop] += \" \" + cls; }\n return true\n })\n }),\n removeLineClass: docMethodOp(function(handle, where, cls) {\n return changeLine(this, handle, where == \"gutter\" ? \"gutter\" : \"class\", function (line) {\n var prop = where == \"text\" ? \"textClass\"\n : where == \"background\" ? \"bgClass\"\n : where == \"gutter\" ? \"gutterClass\" : \"wrapClass\";\n var cur = line[prop];\n if (!cur) { return false }\n else if (cls == null) { line[prop] = null; }\n else {\n var found = cur.match(classTest(cls));\n if (!found) { return false }\n var end = found.index + found[0].length;\n line[prop] = cur.slice(0, found.index) + (!found.index || end == cur.length ? \"\" : \" \") + cur.slice(end) || null;\n }\n return true\n })\n }),\n\n addLineWidget: docMethodOp(function(handle, node, options) {\n return addLineWidget(this, handle, node, options)\n }),\n removeLineWidget: function(widget) { widget.clear(); },\n\n markText: function(from, to, options) {\n return markText(this, clipPos(this, from), clipPos(this, to), options, options && options.type || \"range\")\n },\n setBookmark: function(pos, options) {\n var realOpts = {replacedWith: options && (options.nodeType == null ? options.widget : options),\n insertLeft: options && options.insertLeft,\n clearWhenEmpty: false, shared: options && options.shared,\n handleMouseEvents: options && options.handleMouseEvents};\n pos = clipPos(this, pos);\n return markText(this, pos, pos, realOpts, \"bookmark\")\n },\n findMarksAt: function(pos) {\n pos = clipPos(this, pos);\n var markers = [], spans = getLine(this, pos.line).markedSpans;\n if (spans) { for (var i = 0; i < spans.length; ++i) {\n var span = spans[i];\n if ((span.from == null || span.from <= pos.ch) &&\n (span.to == null || span.to >= pos.ch))\n { markers.push(span.marker.parent || span.marker); }\n } }\n return markers\n },\n findMarks: function(from, to, filter) {\n from = clipPos(this, from); to = clipPos(this, to);\n var found = [], lineNo = from.line;\n this.iter(from.line, to.line + 1, function (line) {\n var spans = line.markedSpans;\n if (spans) { for (var i = 0; i < spans.length; i++) {\n var span = spans[i];\n if (!(span.to != null && lineNo == from.line && from.ch >= span.to ||\n span.from == null && lineNo != from.line ||\n span.from != null && lineNo == to.line && span.from >= to.ch) &&\n (!filter || filter(span.marker)))\n { found.push(span.marker.parent || span.marker); }\n } }\n ++lineNo;\n });\n return found\n },\n getAllMarks: function() {\n var markers = [];\n this.iter(function (line) {\n var sps = line.markedSpans;\n if (sps) { for (var i = 0; i < sps.length; ++i)\n { if (sps[i].from != null) { markers.push(sps[i].marker); } } }\n });\n return markers\n },\n\n posFromIndex: function(off) {\n var ch, lineNo = this.first, sepSize = this.lineSeparator().length;\n this.iter(function (line) {\n var sz = line.text.length + sepSize;\n if (sz > off) { ch = off; return true }\n off -= sz;\n ++lineNo;\n });\n return clipPos(this, Pos(lineNo, ch))\n },\n indexFromPos: function (coords) {\n coords = clipPos(this, coords);\n var index = coords.ch;\n if (coords.line < this.first || coords.ch < 0) { return 0 }\n var sepSize = this.lineSeparator().length;\n this.iter(this.first, coords.line, function (line) { // iter aborts when callback returns a truthy value\n index += line.text.length + sepSize;\n });\n return index\n },\n\n copy: function(copyHistory) {\n var doc = new Doc(getLines(this, this.first, this.first + this.size),\n this.modeOption, this.first, this.lineSep, this.direction);\n doc.scrollTop = this.scrollTop; doc.scrollLeft = this.scrollLeft;\n doc.sel = this.sel;\n doc.extend = false;\n if (copyHistory) {\n doc.history.undoDepth = this.history.undoDepth;\n doc.setHistory(this.getHistory());\n }\n return doc\n },\n\n linkedDoc: function(options) {\n if (!options) { options = {}; }\n var from = this.first, to = this.first + this.size;\n if (options.from != null && options.from > from) { from = options.from; }\n if (options.to != null && options.to < to) { to = options.to; }\n var copy = new Doc(getLines(this, from, to), options.mode || this.modeOption, from, this.lineSep, this.direction);\n if (options.sharedHist) { copy.history = this.history\n ; }(this.linked || (this.linked = [])).push({doc: copy, sharedHist: options.sharedHist});\n copy.linked = [{doc: this, isParent: true, sharedHist: options.sharedHist}];\n copySharedMarkers(copy, findSharedMarkers(this));\n return copy\n },\n unlinkDoc: function(other) {\n if (other instanceof CodeMirror) { other = other.doc; }\n if (this.linked) { for (var i = 0; i < this.linked.length; ++i) {\n var link = this.linked[i];\n if (link.doc != other) { continue }\n this.linked.splice(i, 1);\n other.unlinkDoc(this);\n detachSharedMarkers(findSharedMarkers(this));\n break\n } }\n // If the histories were shared, split them again\n if (other.history == this.history) {\n var splitIds = [other.id];\n linkedDocs(other, function (doc) { return splitIds.push(doc.id); }, true);\n other.history = new History(null);\n other.history.done = copyHistoryArray(this.history.done, splitIds);\n other.history.undone = copyHistoryArray(this.history.undone, splitIds);\n }\n },\n iterLinkedDocs: function(f) {linkedDocs(this, f);},\n\n getMode: function() {return this.mode},\n getEditor: function() {return this.cm},\n\n splitLines: function(str) {\n if (this.lineSep) { return str.split(this.lineSep) }\n return splitLinesAuto(str)\n },\n lineSeparator: function() { return this.lineSep || \"\\n\" },\n\n setDirection: docMethodOp(function (dir) {\n if (dir != \"rtl\") { dir = \"ltr\"; }\n if (dir == this.direction) { return }\n this.direction = dir;\n this.iter(function (line) { return line.order = null; });\n if (this.cm) { directionChanged(this.cm); }\n })\n });\n\n // Public alias.\n Doc.prototype.eachLine = Doc.prototype.iter;\n\n // Kludge to work around strange IE behavior where it'll sometimes\n // re-fire a series of drag-related events right after the drop (#1551)\n var lastDrop = 0;\n\n function onDrop(e) {\n var cm = this;\n clearDragCursor(cm);\n if (signalDOMEvent(cm, e) || eventInWidget(cm.display, e))\n { return }\n e_preventDefault(e);\n if (ie) { lastDrop = +new Date; }\n var pos = posFromMouse(cm, e, true), files = e.dataTransfer.files;\n if (!pos || cm.isReadOnly()) { return }\n // Might be a file drop, in which case we simply extract the text\n // and insert it.\n if (files && files.length && window.FileReader && window.File) {\n var n = files.length, text = Array(n), read = 0;\n var markAsReadAndPasteIfAllFilesAreRead = function () {\n if (++read == n) {\n operation(cm, function () {\n pos = clipPos(cm.doc, pos);\n var change = {from: pos, to: pos,\n text: cm.doc.splitLines(\n text.filter(function (t) { return t != null; }).join(cm.doc.lineSeparator())),\n origin: \"paste\"};\n makeChange(cm.doc, change);\n setSelectionReplaceHistory(cm.doc, simpleSelection(clipPos(cm.doc, pos), clipPos(cm.doc, changeEnd(change))));\n })();\n }\n };\n var readTextFromFile = function (file, i) {\n if (cm.options.allowDropFileTypes &&\n indexOf(cm.options.allowDropFileTypes, file.type) == -1) {\n markAsReadAndPasteIfAllFilesAreRead();\n return\n }\n var reader = new FileReader;\n reader.onerror = function () { return markAsReadAndPasteIfAllFilesAreRead(); };\n reader.onload = function () {\n var content = reader.result;\n if (/[\\x00-\\x08\\x0e-\\x1f]{2}/.test(content)) {\n markAsReadAndPasteIfAllFilesAreRead();\n return\n }\n text[i] = content;\n markAsReadAndPasteIfAllFilesAreRead();\n };\n reader.readAsText(file);\n };\n for (var i = 0; i < files.length; i++) { readTextFromFile(files[i], i); }\n } else { // Normal drop\n // Don't do a replace if the drop happened inside of the selected text.\n if (cm.state.draggingText && cm.doc.sel.contains(pos) > -1) {\n cm.state.draggingText(e);\n // Ensure the editor is re-focused\n setTimeout(function () { return cm.display.input.focus(); }, 20);\n return\n }\n try {\n var text$1 = e.dataTransfer.getData(\"Text\");\n if (text$1) {\n var selected;\n if (cm.state.draggingText && !cm.state.draggingText.copy)\n { selected = cm.listSelections(); }\n setSelectionNoUndo(cm.doc, simpleSelection(pos, pos));\n if (selected) { for (var i$1 = 0; i$1 < selected.length; ++i$1)\n { replaceRange(cm.doc, \"\", selected[i$1].anchor, selected[i$1].head, \"drag\"); } }\n cm.replaceSelection(text$1, \"around\", \"paste\");\n cm.display.input.focus();\n }\n }\n catch(e$1){}\n }\n }\n\n function onDragStart(cm, e) {\n if (ie && (!cm.state.draggingText || +new Date - lastDrop < 100)) { e_stop(e); return }\n if (signalDOMEvent(cm, e) || eventInWidget(cm.display, e)) { return }\n\n e.dataTransfer.setData(\"Text\", cm.getSelection());\n e.dataTransfer.effectAllowed = \"copyMove\";\n\n // Use dummy image instead of default browsers image.\n // Recent Safari (~6.0.2) have a tendency to segfault when this happens, so we don't do it there.\n if (e.dataTransfer.setDragImage && !safari) {\n var img = elt(\"img\", null, null, \"position: fixed; left: 0; top: 0;\");\n img.src = \"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\";\n if (presto) {\n img.width = img.height = 1;\n cm.display.wrapper.appendChild(img);\n // Force a relayout, or Opera won't use our image for some obscure reason\n img._top = img.offsetTop;\n }\n e.dataTransfer.setDragImage(img, 0, 0);\n if (presto) { img.parentNode.removeChild(img); }\n }\n }\n\n function onDragOver(cm, e) {\n var pos = posFromMouse(cm, e);\n if (!pos) { return }\n var frag = document.createDocumentFragment();\n drawSelectionCursor(cm, pos, frag);\n if (!cm.display.dragCursor) {\n cm.display.dragCursor = elt(\"div\", null, \"CodeMirror-cursors CodeMirror-dragcursors\");\n cm.display.lineSpace.insertBefore(cm.display.dragCursor, cm.display.cursorDiv);\n }\n removeChildrenAndAdd(cm.display.dragCursor, frag);\n }\n\n function clearDragCursor(cm) {\n if (cm.display.dragCursor) {\n cm.display.lineSpace.removeChild(cm.display.dragCursor);\n cm.display.dragCursor = null;\n }\n }\n\n // These must be handled carefully, because naively registering a\n // handler for each editor will cause the editors to never be\n // garbage collected.\n\n function forEachCodeMirror(f) {\n if (!document.getElementsByClassName) { return }\n var byClass = document.getElementsByClassName(\"CodeMirror\"), editors = [];\n for (var i = 0; i < byClass.length; i++) {\n var cm = byClass[i].CodeMirror;\n if (cm) { editors.push(cm); }\n }\n if (editors.length) { editors[0].operation(function () {\n for (var i = 0; i < editors.length; i++) { f(editors[i]); }\n }); }\n }\n\n var globalsRegistered = false;\n function ensureGlobalHandlers() {\n if (globalsRegistered) { return }\n registerGlobalHandlers();\n globalsRegistered = true;\n }\n function registerGlobalHandlers() {\n // When the window resizes, we need to refresh active editors.\n var resizeTimer;\n on(window, \"resize\", function () {\n if (resizeTimer == null) { resizeTimer = setTimeout(function () {\n resizeTimer = null;\n forEachCodeMirror(onResize);\n }, 100); }\n });\n // When the window loses focus, we want to show the editor as blurred\n on(window, \"blur\", function () { return forEachCodeMirror(onBlur); });\n }\n // Called when the window resizes\n function onResize(cm) {\n var d = cm.display;\n // Might be a text scaling operation, clear size caches.\n d.cachedCharWidth = d.cachedTextHeight = d.cachedPaddingH = null;\n d.scrollbarsClipped = false;\n cm.setSize();\n }\n\n var keyNames = {\n 3: \"Pause\", 8: \"Backspace\", 9: \"Tab\", 13: \"Enter\", 16: \"Shift\", 17: \"Ctrl\", 18: \"Alt\",\n 19: \"Pause\", 20: \"CapsLock\", 27: \"Esc\", 32: \"Space\", 33: \"PageUp\", 34: \"PageDown\", 35: \"End\",\n 36: \"Home\", 37: \"Left\", 38: \"Up\", 39: \"Right\", 40: \"Down\", 44: \"PrintScrn\", 45: \"Insert\",\n 46: \"Delete\", 59: \";\", 61: \"=\", 91: \"Mod\", 92: \"Mod\", 93: \"Mod\",\n 106: \"*\", 107: \"=\", 109: \"-\", 110: \".\", 111: \"/\", 145: \"ScrollLock\",\n 173: \"-\", 186: \";\", 187: \"=\", 188: \",\", 189: \"-\", 190: \".\", 191: \"/\", 192: \"`\", 219: \"[\", 220: \"\\\\\",\n 221: \"]\", 222: \"'\", 224: \"Mod\", 63232: \"Up\", 63233: \"Down\", 63234: \"Left\", 63235: \"Right\", 63272: \"Delete\",\n 63273: \"Home\", 63275: \"End\", 63276: \"PageUp\", 63277: \"PageDown\", 63302: \"Insert\"\n };\n\n // Number keys\n for (var i = 0; i < 10; i++) { keyNames[i + 48] = keyNames[i + 96] = String(i); }\n // Alphabetic keys\n for (var i$1 = 65; i$1 <= 90; i$1++) { keyNames[i$1] = String.fromCharCode(i$1); }\n // Function keys\n for (var i$2 = 1; i$2 <= 12; i$2++) { keyNames[i$2 + 111] = keyNames[i$2 + 63235] = \"F\" + i$2; }\n\n var keyMap = {};\n\n keyMap.basic = {\n \"Left\": \"goCharLeft\", \"Right\": \"goCharRight\", \"Up\": \"goLineUp\", \"Down\": \"goLineDown\",\n \"End\": \"goLineEnd\", \"Home\": \"goLineStartSmart\", \"PageUp\": \"goPageUp\", \"PageDown\": \"goPageDown\",\n \"Delete\": \"delCharAfter\", \"Backspace\": \"delCharBefore\", \"Shift-Backspace\": \"delCharBefore\",\n \"Tab\": \"defaultTab\", \"Shift-Tab\": \"indentAuto\",\n \"Enter\": \"newlineAndIndent\", \"Insert\": \"toggleOverwrite\",\n \"Esc\": \"singleSelection\"\n };\n // Note that the save and find-related commands aren't defined by\n // default. User code or addons can define them. Unknown commands\n // are simply ignored.\n keyMap.pcDefault = {\n \"Ctrl-A\": \"selectAll\", \"Ctrl-D\": \"deleteLine\", \"Ctrl-Z\": \"undo\", \"Shift-Ctrl-Z\": \"redo\", \"Ctrl-Y\": \"redo\",\n \"Ctrl-Home\": \"goDocStart\", \"Ctrl-End\": \"goDocEnd\", \"Ctrl-Up\": \"goLineUp\", \"Ctrl-Down\": \"goLineDown\",\n \"Ctrl-Left\": \"goGroupLeft\", \"Ctrl-Right\": \"goGroupRight\", \"Alt-Left\": \"goLineStart\", \"Alt-Right\": \"goLineEnd\",\n \"Ctrl-Backspace\": \"delGroupBefore\", \"Ctrl-Delete\": \"delGroupAfter\", \"Ctrl-S\": \"save\", \"Ctrl-F\": \"find\",\n \"Ctrl-G\": \"findNext\", \"Shift-Ctrl-G\": \"findPrev\", \"Shift-Ctrl-F\": \"replace\", \"Shift-Ctrl-R\": \"replaceAll\",\n \"Ctrl-[\": \"indentLess\", \"Ctrl-]\": \"indentMore\",\n \"Ctrl-U\": \"undoSelection\", \"Shift-Ctrl-U\": \"redoSelection\", \"Alt-U\": \"redoSelection\",\n \"fallthrough\": \"basic\"\n };\n // Very basic readline/emacs-style bindings, which are standard on Mac.\n keyMap.emacsy = {\n \"Ctrl-F\": \"goCharRight\", \"Ctrl-B\": \"goCharLeft\", \"Ctrl-P\": \"goLineUp\", \"Ctrl-N\": \"goLineDown\",\n \"Ctrl-A\": \"goLineStart\", \"Ctrl-E\": \"goLineEnd\", \"Ctrl-V\": \"goPageDown\", \"Shift-Ctrl-V\": \"goPageUp\",\n \"Ctrl-D\": \"delCharAfter\", \"Ctrl-H\": \"delCharBefore\", \"Alt-Backspace\": \"delWordBefore\", \"Ctrl-K\": \"killLine\",\n \"Ctrl-T\": \"transposeChars\", \"Ctrl-O\": \"openLine\"\n };\n keyMap.macDefault = {\n \"Cmd-A\": \"selectAll\", \"Cmd-D\": \"deleteLine\", \"Cmd-Z\": \"undo\", \"Shift-Cmd-Z\": \"redo\", \"Cmd-Y\": \"redo\",\n \"Cmd-Home\": \"goDocStart\", \"Cmd-Up\": \"goDocStart\", \"Cmd-End\": \"goDocEnd\", \"Cmd-Down\": \"goDocEnd\", \"Alt-Left\": \"goGroupLeft\",\n \"Alt-Right\": \"goGroupRight\", \"Cmd-Left\": \"goLineLeft\", \"Cmd-Right\": \"goLineRight\", \"Alt-Backspace\": \"delGroupBefore\",\n \"Ctrl-Alt-Backspace\": \"delGroupAfter\", \"Alt-Delete\": \"delGroupAfter\", \"Cmd-S\": \"save\", \"Cmd-F\": \"find\",\n \"Cmd-G\": \"findNext\", \"Shift-Cmd-G\": \"findPrev\", \"Cmd-Alt-F\": \"replace\", \"Shift-Cmd-Alt-F\": \"replaceAll\",\n \"Cmd-[\": \"indentLess\", \"Cmd-]\": \"indentMore\", \"Cmd-Backspace\": \"delWrappedLineLeft\", \"Cmd-Delete\": \"delWrappedLineRight\",\n \"Cmd-U\": \"undoSelection\", \"Shift-Cmd-U\": \"redoSelection\", \"Ctrl-Up\": \"goDocStart\", \"Ctrl-Down\": \"goDocEnd\",\n \"fallthrough\": [\"basic\", \"emacsy\"]\n };\n keyMap[\"default\"] = mac ? keyMap.macDefault : keyMap.pcDefault;\n\n // KEYMAP DISPATCH\n\n function normalizeKeyName(name) {\n var parts = name.split(/-(?!$)/);\n name = parts[parts.length - 1];\n var alt, ctrl, shift, cmd;\n for (var i = 0; i < parts.length - 1; i++) {\n var mod = parts[i];\n if (/^(cmd|meta|m)$/i.test(mod)) { cmd = true; }\n else if (/^a(lt)?$/i.test(mod)) { alt = true; }\n else if (/^(c|ctrl|control)$/i.test(mod)) { ctrl = true; }\n else if (/^s(hift)?$/i.test(mod)) { shift = true; }\n else { throw new Error(\"Unrecognized modifier name: \" + mod) }\n }\n if (alt) { name = \"Alt-\" + name; }\n if (ctrl) { name = \"Ctrl-\" + name; }\n if (cmd) { name = \"Cmd-\" + name; }\n if (shift) { name = \"Shift-\" + name; }\n return name\n }\n\n // This is a kludge to keep keymaps mostly working as raw objects\n // (backwards compatibility) while at the same time support features\n // like normalization and multi-stroke key bindings. It compiles a\n // new normalized keymap, and then updates the old object to reflect\n // this.\n function normalizeKeyMap(keymap) {\n var copy = {};\n for (var keyname in keymap) { if (keymap.hasOwnProperty(keyname)) {\n var value = keymap[keyname];\n if (/^(name|fallthrough|(de|at)tach)$/.test(keyname)) { continue }\n if (value == \"...\") { delete keymap[keyname]; continue }\n\n var keys = map(keyname.split(\" \"), normalizeKeyName);\n for (var i = 0; i < keys.length; i++) {\n var val = (void 0), name = (void 0);\n if (i == keys.length - 1) {\n name = keys.join(\" \");\n val = value;\n } else {\n name = keys.slice(0, i + 1).join(\" \");\n val = \"...\";\n }\n var prev = copy[name];\n if (!prev) { copy[name] = val; }\n else if (prev != val) { throw new Error(\"Inconsistent bindings for \" + name) }\n }\n delete keymap[keyname];\n } }\n for (var prop in copy) { keymap[prop] = copy[prop]; }\n return keymap\n }\n\n function lookupKey(key, map, handle, context) {\n map = getKeyMap(map);\n var found = map.call ? map.call(key, context) : map[key];\n if (found === false) { return \"nothing\" }\n if (found === \"...\") { return \"multi\" }\n if (found != null && handle(found)) { return \"handled\" }\n\n if (map.fallthrough) {\n if (Object.prototype.toString.call(map.fallthrough) != \"[object Array]\")\n { return lookupKey(key, map.fallthrough, handle, context) }\n for (var i = 0; i < map.fallthrough.length; i++) {\n var result = lookupKey(key, map.fallthrough[i], handle, context);\n if (result) { return result }\n }\n }\n }\n\n // Modifier key presses don't count as 'real' key presses for the\n // purpose of keymap fallthrough.\n function isModifierKey(value) {\n var name = typeof value == \"string\" ? value : keyNames[value.keyCode];\n return name == \"Ctrl\" || name == \"Alt\" || name == \"Shift\" || name == \"Mod\"\n }\n\n function addModifierNames(name, event, noShift) {\n var base = name;\n if (event.altKey && base != \"Alt\") { name = \"Alt-\" + name; }\n if ((flipCtrlCmd ? event.metaKey : event.ctrlKey) && base != \"Ctrl\") { name = \"Ctrl-\" + name; }\n if ((flipCtrlCmd ? event.ctrlKey : event.metaKey) && base != \"Mod\") { name = \"Cmd-\" + name; }\n if (!noShift && event.shiftKey && base != \"Shift\") { name = \"Shift-\" + name; }\n return name\n }\n\n // Look up the name of a key as indicated by an event object.\n function keyName(event, noShift) {\n if (presto && event.keyCode == 34 && event[\"char\"]) { return false }\n var name = keyNames[event.keyCode];\n if (name == null || event.altGraphKey) { return false }\n // Ctrl-ScrollLock has keyCode 3, same as Ctrl-Pause,\n // so we'll use event.code when available (Chrome 48+, FF 38+, Safari 10.1+)\n if (event.keyCode == 3 && event.code) { name = event.code; }\n return addModifierNames(name, event, noShift)\n }\n\n function getKeyMap(val) {\n return typeof val == \"string\" ? keyMap[val] : val\n }\n\n // Helper for deleting text near the selection(s), used to implement\n // backspace, delete, and similar functionality.\n function deleteNearSelection(cm, compute) {\n var ranges = cm.doc.sel.ranges, kill = [];\n // Build up a set of ranges to kill first, merging overlapping\n // ranges.\n for (var i = 0; i < ranges.length; i++) {\n var toKill = compute(ranges[i]);\n while (kill.length && cmp(toKill.from, lst(kill).to) <= 0) {\n var replaced = kill.pop();\n if (cmp(replaced.from, toKill.from) < 0) {\n toKill.from = replaced.from;\n break\n }\n }\n kill.push(toKill);\n }\n // Next, remove those actual ranges.\n runInOp(cm, function () {\n for (var i = kill.length - 1; i >= 0; i--)\n { replaceRange(cm.doc, \"\", kill[i].from, kill[i].to, \"+delete\"); }\n ensureCursorVisible(cm);\n });\n }\n\n function moveCharLogically(line, ch, dir) {\n var target = skipExtendingChars(line.text, ch + dir, dir);\n return target < 0 || target > line.text.length ? null : target\n }\n\n function moveLogically(line, start, dir) {\n var ch = moveCharLogically(line, start.ch, dir);\n return ch == null ? null : new Pos(start.line, ch, dir < 0 ? \"after\" : \"before\")\n }\n\n function endOfLine(visually, cm, lineObj, lineNo, dir) {\n if (visually) {\n if (cm.doc.direction == \"rtl\") { dir = -dir; }\n var order = getOrder(lineObj, cm.doc.direction);\n if (order) {\n var part = dir < 0 ? lst(order) : order[0];\n var moveInStorageOrder = (dir < 0) == (part.level == 1);\n var sticky = moveInStorageOrder ? \"after\" : \"before\";\n var ch;\n // With a wrapped rtl chunk (possibly spanning multiple bidi parts),\n // it could be that the last bidi part is not on the last visual line,\n // since visual lines contain content order-consecutive chunks.\n // Thus, in rtl, we are looking for the first (content-order) character\n // in the rtl chunk that is on the last line (that is, the same line\n // as the last (content-order) character).\n if (part.level > 0 || cm.doc.direction == \"rtl\") {\n var prep = prepareMeasureForLine(cm, lineObj);\n ch = dir < 0 ? lineObj.text.length - 1 : 0;\n var targetTop = measureCharPrepared(cm, prep, ch).top;\n ch = findFirst(function (ch) { return measureCharPrepared(cm, prep, ch).top == targetTop; }, (dir < 0) == (part.level == 1) ? part.from : part.to - 1, ch);\n if (sticky == \"before\") { ch = moveCharLogically(lineObj, ch, 1); }\n } else { ch = dir < 0 ? part.to : part.from; }\n return new Pos(lineNo, ch, sticky)\n }\n }\n return new Pos(lineNo, dir < 0 ? lineObj.text.length : 0, dir < 0 ? \"before\" : \"after\")\n }\n\n function moveVisually(cm, line, start, dir) {\n var bidi = getOrder(line, cm.doc.direction);\n if (!bidi) { return moveLogically(line, start, dir) }\n if (start.ch >= line.text.length) {\n start.ch = line.text.length;\n start.sticky = \"before\";\n } else if (start.ch <= 0) {\n start.ch = 0;\n start.sticky = \"after\";\n }\n var partPos = getBidiPartAt(bidi, start.ch, start.sticky), part = bidi[partPos];\n if (cm.doc.direction == \"ltr\" && part.level % 2 == 0 && (dir > 0 ? part.to > start.ch : part.from < start.ch)) {\n // Case 1: We move within an ltr part in an ltr editor. Even with wrapped lines,\n // nothing interesting happens.\n return moveLogically(line, start, dir)\n }\n\n var mv = function (pos, dir) { return moveCharLogically(line, pos instanceof Pos ? pos.ch : pos, dir); };\n var prep;\n var getWrappedLineExtent = function (ch) {\n if (!cm.options.lineWrapping) { return {begin: 0, end: line.text.length} }\n prep = prep || prepareMeasureForLine(cm, line);\n return wrappedLineExtentChar(cm, line, prep, ch)\n };\n var wrappedLineExtent = getWrappedLineExtent(start.sticky == \"before\" ? mv(start, -1) : start.ch);\n\n if (cm.doc.direction == \"rtl\" || part.level == 1) {\n var moveInStorageOrder = (part.level == 1) == (dir < 0);\n var ch = mv(start, moveInStorageOrder ? 1 : -1);\n if (ch != null && (!moveInStorageOrder ? ch >= part.from && ch >= wrappedLineExtent.begin : ch <= part.to && ch <= wrappedLineExtent.end)) {\n // Case 2: We move within an rtl part or in an rtl editor on the same visual line\n var sticky = moveInStorageOrder ? \"before\" : \"after\";\n return new Pos(start.line, ch, sticky)\n }\n }\n\n // Case 3: Could not move within this bidi part in this visual line, so leave\n // the current bidi part\n\n var searchInVisualLine = function (partPos, dir, wrappedLineExtent) {\n var getRes = function (ch, moveInStorageOrder) { return moveInStorageOrder\n ? new Pos(start.line, mv(ch, 1), \"before\")\n : new Pos(start.line, ch, \"after\"); };\n\n for (; partPos >= 0 && partPos < bidi.length; partPos += dir) {\n var part = bidi[partPos];\n var moveInStorageOrder = (dir > 0) == (part.level != 1);\n var ch = moveInStorageOrder ? wrappedLineExtent.begin : mv(wrappedLineExtent.end, -1);\n if (part.from <= ch && ch < part.to) { return getRes(ch, moveInStorageOrder) }\n ch = moveInStorageOrder ? part.from : mv(part.to, -1);\n if (wrappedLineExtent.begin <= ch && ch < wrappedLineExtent.end) { return getRes(ch, moveInStorageOrder) }\n }\n };\n\n // Case 3a: Look for other bidi parts on the same visual line\n var res = searchInVisualLine(partPos + dir, dir, wrappedLineExtent);\n if (res) { return res }\n\n // Case 3b: Look for other bidi parts on the next visual line\n var nextCh = dir > 0 ? wrappedLineExtent.end : mv(wrappedLineExtent.begin, -1);\n if (nextCh != null && !(dir > 0 && nextCh == line.text.length)) {\n res = searchInVisualLine(dir > 0 ? 0 : bidi.length - 1, dir, getWrappedLineExtent(nextCh));\n if (res) { return res }\n }\n\n // Case 4: Nowhere to move\n return null\n }\n\n // Commands are parameter-less actions that can be performed on an\n // editor, mostly used for keybindings.\n var commands = {\n selectAll: selectAll,\n singleSelection: function (cm) { return cm.setSelection(cm.getCursor(\"anchor\"), cm.getCursor(\"head\"), sel_dontScroll); },\n killLine: function (cm) { return deleteNearSelection(cm, function (range) {\n if (range.empty()) {\n var len = getLine(cm.doc, range.head.line).text.length;\n if (range.head.ch == len && range.head.line < cm.lastLine())\n { return {from: range.head, to: Pos(range.head.line + 1, 0)} }\n else\n { return {from: range.head, to: Pos(range.head.line, len)} }\n } else {\n return {from: range.from(), to: range.to()}\n }\n }); },\n deleteLine: function (cm) { return deleteNearSelection(cm, function (range) { return ({\n from: Pos(range.from().line, 0),\n to: clipPos(cm.doc, Pos(range.to().line + 1, 0))\n }); }); },\n delLineLeft: function (cm) { return deleteNearSelection(cm, function (range) { return ({\n from: Pos(range.from().line, 0), to: range.from()\n }); }); },\n delWrappedLineLeft: function (cm) { return deleteNearSelection(cm, function (range) {\n var top = cm.charCoords(range.head, \"div\").top + 5;\n var leftPos = cm.coordsChar({left: 0, top: top}, \"div\");\n return {from: leftPos, to: range.from()}\n }); },\n delWrappedLineRight: function (cm) { return deleteNearSelection(cm, function (range) {\n var top = cm.charCoords(range.head, \"div\").top + 5;\n var rightPos = cm.coordsChar({left: cm.display.lineDiv.offsetWidth + 100, top: top}, \"div\");\n return {from: range.from(), to: rightPos }\n }); },\n undo: function (cm) { return cm.undo(); },\n redo: function (cm) { return cm.redo(); },\n undoSelection: function (cm) { return cm.undoSelection(); },\n redoSelection: function (cm) { return cm.redoSelection(); },\n goDocStart: function (cm) { return cm.extendSelection(Pos(cm.firstLine(), 0)); },\n goDocEnd: function (cm) { return cm.extendSelection(Pos(cm.lastLine())); },\n goLineStart: function (cm) { return cm.extendSelectionsBy(function (range) { return lineStart(cm, range.head.line); },\n {origin: \"+move\", bias: 1}\n ); },\n goLineStartSmart: function (cm) { return cm.extendSelectionsBy(function (range) { return lineStartSmart(cm, range.head); },\n {origin: \"+move\", bias: 1}\n ); },\n goLineEnd: function (cm) { return cm.extendSelectionsBy(function (range) { return lineEnd(cm, range.head.line); },\n {origin: \"+move\", bias: -1}\n ); },\n goLineRight: function (cm) { return cm.extendSelectionsBy(function (range) {\n var top = cm.cursorCoords(range.head, \"div\").top + 5;\n return cm.coordsChar({left: cm.display.lineDiv.offsetWidth + 100, top: top}, \"div\")\n }, sel_move); },\n goLineLeft: function (cm) { return cm.extendSelectionsBy(function (range) {\n var top = cm.cursorCoords(range.head, \"div\").top + 5;\n return cm.coordsChar({left: 0, top: top}, \"div\")\n }, sel_move); },\n goLineLeftSmart: function (cm) { return cm.extendSelectionsBy(function (range) {\n var top = cm.cursorCoords(range.head, \"div\").top + 5;\n var pos = cm.coordsChar({left: 0, top: top}, \"div\");\n if (pos.ch < cm.getLine(pos.line).search(/\\S/)) { return lineStartSmart(cm, range.head) }\n return pos\n }, sel_move); },\n goLineUp: function (cm) { return cm.moveV(-1, \"line\"); },\n goLineDown: function (cm) { return cm.moveV(1, \"line\"); },\n goPageUp: function (cm) { return cm.moveV(-1, \"page\"); },\n goPageDown: function (cm) { return cm.moveV(1, \"page\"); },\n goCharLeft: function (cm) { return cm.moveH(-1, \"char\"); },\n goCharRight: function (cm) { return cm.moveH(1, \"char\"); },\n goColumnLeft: function (cm) { return cm.moveH(-1, \"column\"); },\n goColumnRight: function (cm) { return cm.moveH(1, \"column\"); },\n goWordLeft: function (cm) { return cm.moveH(-1, \"word\"); },\n goGroupRight: function (cm) { return cm.moveH(1, \"group\"); },\n goGroupLeft: function (cm) { return cm.moveH(-1, \"group\"); },\n goWordRight: function (cm) { return cm.moveH(1, \"word\"); },\n delCharBefore: function (cm) { return cm.deleteH(-1, \"codepoint\"); },\n delCharAfter: function (cm) { return cm.deleteH(1, \"char\"); },\n delWordBefore: function (cm) { return cm.deleteH(-1, \"word\"); },\n delWordAfter: function (cm) { return cm.deleteH(1, \"word\"); },\n delGroupBefore: function (cm) { return cm.deleteH(-1, \"group\"); },\n delGroupAfter: function (cm) { return cm.deleteH(1, \"group\"); },\n indentAuto: function (cm) { return cm.indentSelection(\"smart\"); },\n indentMore: function (cm) { return cm.indentSelection(\"add\"); },\n indentLess: function (cm) { return cm.indentSelection(\"subtract\"); },\n insertTab: function (cm) { return cm.replaceSelection(\"\\t\"); },\n insertSoftTab: function (cm) {\n var spaces = [], ranges = cm.listSelections(), tabSize = cm.options.tabSize;\n for (var i = 0; i < ranges.length; i++) {\n var pos = ranges[i].from();\n var col = countColumn(cm.getLine(pos.line), pos.ch, tabSize);\n spaces.push(spaceStr(tabSize - col % tabSize));\n }\n cm.replaceSelections(spaces);\n },\n defaultTab: function (cm) {\n if (cm.somethingSelected()) { cm.indentSelection(\"add\"); }\n else { cm.execCommand(\"insertTab\"); }\n },\n // Swap the two chars left and right of each selection's head.\n // Move cursor behind the two swapped characters afterwards.\n //\n // Doesn't consider line feeds a character.\n // Doesn't scan more than one line above to find a character.\n // Doesn't do anything on an empty line.\n // Doesn't do anything with non-empty selections.\n transposeChars: function (cm) { return runInOp(cm, function () {\n var ranges = cm.listSelections(), newSel = [];\n for (var i = 0; i < ranges.length; i++) {\n if (!ranges[i].empty()) { continue }\n var cur = ranges[i].head, line = getLine(cm.doc, cur.line).text;\n if (line) {\n if (cur.ch == line.length) { cur = new Pos(cur.line, cur.ch - 1); }\n if (cur.ch > 0) {\n cur = new Pos(cur.line, cur.ch + 1);\n cm.replaceRange(line.charAt(cur.ch - 1) + line.charAt(cur.ch - 2),\n Pos(cur.line, cur.ch - 2), cur, \"+transpose\");\n } else if (cur.line > cm.doc.first) {\n var prev = getLine(cm.doc, cur.line - 1).text;\n if (prev) {\n cur = new Pos(cur.line, 1);\n cm.replaceRange(line.charAt(0) + cm.doc.lineSeparator() +\n prev.charAt(prev.length - 1),\n Pos(cur.line - 1, prev.length - 1), cur, \"+transpose\");\n }\n }\n }\n newSel.push(new Range(cur, cur));\n }\n cm.setSelections(newSel);\n }); },\n newlineAndIndent: function (cm) { return runInOp(cm, function () {\n var sels = cm.listSelections();\n for (var i = sels.length - 1; i >= 0; i--)\n { cm.replaceRange(cm.doc.lineSeparator(), sels[i].anchor, sels[i].head, \"+input\"); }\n sels = cm.listSelections();\n for (var i$1 = 0; i$1 < sels.length; i$1++)\n { cm.indentLine(sels[i$1].from().line, null, true); }\n ensureCursorVisible(cm);\n }); },\n openLine: function (cm) { return cm.replaceSelection(\"\\n\", \"start\"); },\n toggleOverwrite: function (cm) { return cm.toggleOverwrite(); }\n };\n\n\n function lineStart(cm, lineN) {\n var line = getLine(cm.doc, lineN);\n var visual = visualLine(line);\n if (visual != line) { lineN = lineNo(visual); }\n return endOfLine(true, cm, visual, lineN, 1)\n }\n function lineEnd(cm, lineN) {\n var line = getLine(cm.doc, lineN);\n var visual = visualLineEnd(line);\n if (visual != line) { lineN = lineNo(visual); }\n return endOfLine(true, cm, line, lineN, -1)\n }\n function lineStartSmart(cm, pos) {\n var start = lineStart(cm, pos.line);\n var line = getLine(cm.doc, start.line);\n var order = getOrder(line, cm.doc.direction);\n if (!order || order[0].level == 0) {\n var firstNonWS = Math.max(start.ch, line.text.search(/\\S/));\n var inWS = pos.line == start.line && pos.ch <= firstNonWS && pos.ch;\n return Pos(start.line, inWS ? 0 : firstNonWS, start.sticky)\n }\n return start\n }\n\n // Run a handler that was bound to a key.\n function doHandleBinding(cm, bound, dropShift) {\n if (typeof bound == \"string\") {\n bound = commands[bound];\n if (!bound) { return false }\n }\n // Ensure previous input has been read, so that the handler sees a\n // consistent view of the document\n cm.display.input.ensurePolled();\n var prevShift = cm.display.shift, done = false;\n try {\n if (cm.isReadOnly()) { cm.state.suppressEdits = true; }\n if (dropShift) { cm.display.shift = false; }\n done = bound(cm) != Pass;\n } finally {\n cm.display.shift = prevShift;\n cm.state.suppressEdits = false;\n }\n return done\n }\n\n function lookupKeyForEditor(cm, name, handle) {\n for (var i = 0; i < cm.state.keyMaps.length; i++) {\n var result = lookupKey(name, cm.state.keyMaps[i], handle, cm);\n if (result) { return result }\n }\n return (cm.options.extraKeys && lookupKey(name, cm.options.extraKeys, handle, cm))\n || lookupKey(name, cm.options.keyMap, handle, cm)\n }\n\n // Note that, despite the name, this function is also used to check\n // for bound mouse clicks.\n\n var stopSeq = new Delayed;\n\n function dispatchKey(cm, name, e, handle) {\n var seq = cm.state.keySeq;\n if (seq) {\n if (isModifierKey(name)) { return \"handled\" }\n if (/\\'$/.test(name))\n { cm.state.keySeq = null; }\n else\n { stopSeq.set(50, function () {\n if (cm.state.keySeq == seq) {\n cm.state.keySeq = null;\n cm.display.input.reset();\n }\n }); }\n if (dispatchKeyInner(cm, seq + \" \" + name, e, handle)) { return true }\n }\n return dispatchKeyInner(cm, name, e, handle)\n }\n\n function dispatchKeyInner(cm, name, e, handle) {\n var result = lookupKeyForEditor(cm, name, handle);\n\n if (result == \"multi\")\n { cm.state.keySeq = name; }\n if (result == \"handled\")\n { signalLater(cm, \"keyHandled\", cm, name, e); }\n\n if (result == \"handled\" || result == \"multi\") {\n e_preventDefault(e);\n restartBlink(cm);\n }\n\n return !!result\n }\n\n // Handle a key from the keydown event.\n function handleKeyBinding(cm, e) {\n var name = keyName(e, true);\n if (!name) { return false }\n\n if (e.shiftKey && !cm.state.keySeq) {\n // First try to resolve full name (including 'Shift-'). Failing\n // that, see if there is a cursor-motion command (starting with\n // 'go') bound to the keyname without 'Shift-'.\n return dispatchKey(cm, \"Shift-\" + name, e, function (b) { return doHandleBinding(cm, b, true); })\n || dispatchKey(cm, name, e, function (b) {\n if (typeof b == \"string\" ? /^go[A-Z]/.test(b) : b.motion)\n { return doHandleBinding(cm, b) }\n })\n } else {\n return dispatchKey(cm, name, e, function (b) { return doHandleBinding(cm, b); })\n }\n }\n\n // Handle a key from the keypress event\n function handleCharBinding(cm, e, ch) {\n return dispatchKey(cm, \"'\" + ch + \"'\", e, function (b) { return doHandleBinding(cm, b, true); })\n }\n\n var lastStoppedKey = null;\n function onKeyDown(e) {\n var cm = this;\n if (e.target && e.target != cm.display.input.getField()) { return }\n cm.curOp.focus = activeElt();\n if (signalDOMEvent(cm, e)) { return }\n // IE does strange things with escape.\n if (ie && ie_version < 11 && e.keyCode == 27) { e.returnValue = false; }\n var code = e.keyCode;\n cm.display.shift = code == 16 || e.shiftKey;\n var handled = handleKeyBinding(cm, e);\n if (presto) {\n lastStoppedKey = handled ? code : null;\n // Opera has no cut event... we try to at least catch the key combo\n if (!handled && code == 88 && !hasCopyEvent && (mac ? e.metaKey : e.ctrlKey))\n { cm.replaceSelection(\"\", null, \"cut\"); }\n }\n if (gecko && !mac && !handled && code == 46 && e.shiftKey && !e.ctrlKey && document.execCommand)\n { document.execCommand(\"cut\"); }\n\n // Turn mouse into crosshair when Alt is held on Mac.\n if (code == 18 && !/\\bCodeMirror-crosshair\\b/.test(cm.display.lineDiv.className))\n { showCrossHair(cm); }\n }\n\n function showCrossHair(cm) {\n var lineDiv = cm.display.lineDiv;\n addClass(lineDiv, \"CodeMirror-crosshair\");\n\n function up(e) {\n if (e.keyCode == 18 || !e.altKey) {\n rmClass(lineDiv, \"CodeMirror-crosshair\");\n off(document, \"keyup\", up);\n off(document, \"mouseover\", up);\n }\n }\n on(document, \"keyup\", up);\n on(document, \"mouseover\", up);\n }\n\n function onKeyUp(e) {\n if (e.keyCode == 16) { this.doc.sel.shift = false; }\n signalDOMEvent(this, e);\n }\n\n function onKeyPress(e) {\n var cm = this;\n if (e.target && e.target != cm.display.input.getField()) { return }\n if (eventInWidget(cm.display, e) || signalDOMEvent(cm, e) || e.ctrlKey && !e.altKey || mac && e.metaKey) { return }\n var keyCode = e.keyCode, charCode = e.charCode;\n if (presto && keyCode == lastStoppedKey) {lastStoppedKey = null; e_preventDefault(e); return}\n if ((presto && (!e.which || e.which < 10)) && handleKeyBinding(cm, e)) { return }\n var ch = String.fromCharCode(charCode == null ? keyCode : charCode);\n // Some browsers fire keypress events for backspace\n if (ch == \"\\x08\") { return }\n if (handleCharBinding(cm, e, ch)) { return }\n cm.display.input.onKeyPress(e);\n }\n\n var DOUBLECLICK_DELAY = 400;\n\n var PastClick = function(time, pos, button) {\n this.time = time;\n this.pos = pos;\n this.button = button;\n };\n\n PastClick.prototype.compare = function (time, pos, button) {\n return this.time + DOUBLECLICK_DELAY > time &&\n cmp(pos, this.pos) == 0 && button == this.button\n };\n\n var lastClick, lastDoubleClick;\n function clickRepeat(pos, button) {\n var now = +new Date;\n if (lastDoubleClick && lastDoubleClick.compare(now, pos, button)) {\n lastClick = lastDoubleClick = null;\n return \"triple\"\n } else if (lastClick && lastClick.compare(now, pos, button)) {\n lastDoubleClick = new PastClick(now, pos, button);\n lastClick = null;\n return \"double\"\n } else {\n lastClick = new PastClick(now, pos, button);\n lastDoubleClick = null;\n return \"single\"\n }\n }\n\n // A mouse down can be a single click, double click, triple click,\n // start of selection drag, start of text drag, new cursor\n // (ctrl-click), rectangle drag (alt-drag), or xwin\n // middle-click-paste. Or it might be a click on something we should\n // not interfere with, such as a scrollbar or widget.\n function onMouseDown(e) {\n var cm = this, display = cm.display;\n if (signalDOMEvent(cm, e) || display.activeTouch && display.input.supportsTouch()) { return }\n display.input.ensurePolled();\n display.shift = e.shiftKey;\n\n if (eventInWidget(display, e)) {\n if (!webkit) {\n // Briefly turn off draggability, to allow widgets to do\n // normal dragging things.\n display.scroller.draggable = false;\n setTimeout(function () { return display.scroller.draggable = true; }, 100);\n }\n return\n }\n if (clickInGutter(cm, e)) { return }\n var pos = posFromMouse(cm, e), button = e_button(e), repeat = pos ? clickRepeat(pos, button) : \"single\";\n window.focus();\n\n // #3261: make sure, that we're not starting a second selection\n if (button == 1 && cm.state.selectingText)\n { cm.state.selectingText(e); }\n\n if (pos && handleMappedButton(cm, button, pos, repeat, e)) { return }\n\n if (button == 1) {\n if (pos) { leftButtonDown(cm, pos, repeat, e); }\n else if (e_target(e) == display.scroller) { e_preventDefault(e); }\n } else if (button == 2) {\n if (pos) { extendSelection(cm.doc, pos); }\n setTimeout(function () { return display.input.focus(); }, 20);\n } else if (button == 3) {\n if (captureRightClick) { cm.display.input.onContextMenu(e); }\n else { delayBlurEvent(cm); }\n }\n }\n\n function handleMappedButton(cm, button, pos, repeat, event) {\n var name = \"Click\";\n if (repeat == \"double\") { name = \"Double\" + name; }\n else if (repeat == \"triple\") { name = \"Triple\" + name; }\n name = (button == 1 ? \"Left\" : button == 2 ? \"Middle\" : \"Right\") + name;\n\n return dispatchKey(cm, addModifierNames(name, event), event, function (bound) {\n if (typeof bound == \"string\") { bound = commands[bound]; }\n if (!bound) { return false }\n var done = false;\n try {\n if (cm.isReadOnly()) { cm.state.suppressEdits = true; }\n done = bound(cm, pos) != Pass;\n } finally {\n cm.state.suppressEdits = false;\n }\n return done\n })\n }\n\n function configureMouse(cm, repeat, event) {\n var option = cm.getOption(\"configureMouse\");\n var value = option ? option(cm, repeat, event) : {};\n if (value.unit == null) {\n var rect = chromeOS ? event.shiftKey && event.metaKey : event.altKey;\n value.unit = rect ? \"rectangle\" : repeat == \"single\" ? \"char\" : repeat == \"double\" ? \"word\" : \"line\";\n }\n if (value.extend == null || cm.doc.extend) { value.extend = cm.doc.extend || event.shiftKey; }\n if (value.addNew == null) { value.addNew = mac ? event.metaKey : event.ctrlKey; }\n if (value.moveOnDrag == null) { value.moveOnDrag = !(mac ? event.altKey : event.ctrlKey); }\n return value\n }\n\n function leftButtonDown(cm, pos, repeat, event) {\n if (ie) { setTimeout(bind(ensureFocus, cm), 0); }\n else { cm.curOp.focus = activeElt(); }\n\n var behavior = configureMouse(cm, repeat, event);\n\n var sel = cm.doc.sel, contained;\n if (cm.options.dragDrop && dragAndDrop && !cm.isReadOnly() &&\n repeat == \"single\" && (contained = sel.contains(pos)) > -1 &&\n (cmp((contained = sel.ranges[contained]).from(), pos) < 0 || pos.xRel > 0) &&\n (cmp(contained.to(), pos) > 0 || pos.xRel < 0))\n { leftButtonStartDrag(cm, event, pos, behavior); }\n else\n { leftButtonSelect(cm, event, pos, behavior); }\n }\n\n // Start a text drag. When it ends, see if any dragging actually\n // happen, and treat as a click if it didn't.\n function leftButtonStartDrag(cm, event, pos, behavior) {\n var display = cm.display, moved = false;\n var dragEnd = operation(cm, function (e) {\n if (webkit) { display.scroller.draggable = false; }\n cm.state.draggingText = false;\n if (cm.state.delayingBlurEvent) {\n if (cm.hasFocus()) { cm.state.delayingBlurEvent = false; }\n else { delayBlurEvent(cm); }\n }\n off(display.wrapper.ownerDocument, \"mouseup\", dragEnd);\n off(display.wrapper.ownerDocument, \"mousemove\", mouseMove);\n off(display.scroller, \"dragstart\", dragStart);\n off(display.scroller, \"drop\", dragEnd);\n if (!moved) {\n e_preventDefault(e);\n if (!behavior.addNew)\n { extendSelection(cm.doc, pos, null, null, behavior.extend); }\n // Work around unexplainable focus problem in IE9 (#2127) and Chrome (#3081)\n if ((webkit && !safari) || ie && ie_version == 9)\n { setTimeout(function () {display.wrapper.ownerDocument.body.focus({preventScroll: true}); display.input.focus();}, 20); }\n else\n { display.input.focus(); }\n }\n });\n var mouseMove = function(e2) {\n moved = moved || Math.abs(event.clientX - e2.clientX) + Math.abs(event.clientY - e2.clientY) >= 10;\n };\n var dragStart = function () { return moved = true; };\n // Let the drag handler handle this.\n if (webkit) { display.scroller.draggable = true; }\n cm.state.draggingText = dragEnd;\n dragEnd.copy = !behavior.moveOnDrag;\n on(display.wrapper.ownerDocument, \"mouseup\", dragEnd);\n on(display.wrapper.ownerDocument, \"mousemove\", mouseMove);\n on(display.scroller, \"dragstart\", dragStart);\n on(display.scroller, \"drop\", dragEnd);\n\n cm.state.delayingBlurEvent = true;\n setTimeout(function () { return display.input.focus(); }, 20);\n // IE's approach to draggable\n if (display.scroller.dragDrop) { display.scroller.dragDrop(); }\n }\n\n function rangeForUnit(cm, pos, unit) {\n if (unit == \"char\") { return new Range(pos, pos) }\n if (unit == \"word\") { return cm.findWordAt(pos) }\n if (unit == \"line\") { return new Range(Pos(pos.line, 0), clipPos(cm.doc, Pos(pos.line + 1, 0))) }\n var result = unit(cm, pos);\n return new Range(result.from, result.to)\n }\n\n // Normal selection, as opposed to text dragging.\n function leftButtonSelect(cm, event, start, behavior) {\n if (ie) { delayBlurEvent(cm); }\n var display = cm.display, doc = cm.doc;\n e_preventDefault(event);\n\n var ourRange, ourIndex, startSel = doc.sel, ranges = startSel.ranges;\n if (behavior.addNew && !behavior.extend) {\n ourIndex = doc.sel.contains(start);\n if (ourIndex > -1)\n { ourRange = ranges[ourIndex]; }\n else\n { ourRange = new Range(start, start); }\n } else {\n ourRange = doc.sel.primary();\n ourIndex = doc.sel.primIndex;\n }\n\n if (behavior.unit == \"rectangle\") {\n if (!behavior.addNew) { ourRange = new Range(start, start); }\n start = posFromMouse(cm, event, true, true);\n ourIndex = -1;\n } else {\n var range = rangeForUnit(cm, start, behavior.unit);\n if (behavior.extend)\n { ourRange = extendRange(ourRange, range.anchor, range.head, behavior.extend); }\n else\n { ourRange = range; }\n }\n\n if (!behavior.addNew) {\n ourIndex = 0;\n setSelection(doc, new Selection([ourRange], 0), sel_mouse);\n startSel = doc.sel;\n } else if (ourIndex == -1) {\n ourIndex = ranges.length;\n setSelection(doc, normalizeSelection(cm, ranges.concat([ourRange]), ourIndex),\n {scroll: false, origin: \"*mouse\"});\n } else if (ranges.length > 1 && ranges[ourIndex].empty() && behavior.unit == \"char\" && !behavior.extend) {\n setSelection(doc, normalizeSelection(cm, ranges.slice(0, ourIndex).concat(ranges.slice(ourIndex + 1)), 0),\n {scroll: false, origin: \"*mouse\"});\n startSel = doc.sel;\n } else {\n replaceOneSelection(doc, ourIndex, ourRange, sel_mouse);\n }\n\n var lastPos = start;\n function extendTo(pos) {\n if (cmp(lastPos, pos) == 0) { return }\n lastPos = pos;\n\n if (behavior.unit == \"rectangle\") {\n var ranges = [], tabSize = cm.options.tabSize;\n var startCol = countColumn(getLine(doc, start.line).text, start.ch, tabSize);\n var posCol = countColumn(getLine(doc, pos.line).text, pos.ch, tabSize);\n var left = Math.min(startCol, posCol), right = Math.max(startCol, posCol);\n for (var line = Math.min(start.line, pos.line), end = Math.min(cm.lastLine(), Math.max(start.line, pos.line));\n line <= end; line++) {\n var text = getLine(doc, line).text, leftPos = findColumn(text, left, tabSize);\n if (left == right)\n { ranges.push(new Range(Pos(line, leftPos), Pos(line, leftPos))); }\n else if (text.length > leftPos)\n { ranges.push(new Range(Pos(line, leftPos), Pos(line, findColumn(text, right, tabSize)))); }\n }\n if (!ranges.length) { ranges.push(new Range(start, start)); }\n setSelection(doc, normalizeSelection(cm, startSel.ranges.slice(0, ourIndex).concat(ranges), ourIndex),\n {origin: \"*mouse\", scroll: false});\n cm.scrollIntoView(pos);\n } else {\n var oldRange = ourRange;\n var range = rangeForUnit(cm, pos, behavior.unit);\n var anchor = oldRange.anchor, head;\n if (cmp(range.anchor, anchor) > 0) {\n head = range.head;\n anchor = minPos(oldRange.from(), range.anchor);\n } else {\n head = range.anchor;\n anchor = maxPos(oldRange.to(), range.head);\n }\n var ranges$1 = startSel.ranges.slice(0);\n ranges$1[ourIndex] = bidiSimplify(cm, new Range(clipPos(doc, anchor), head));\n setSelection(doc, normalizeSelection(cm, ranges$1, ourIndex), sel_mouse);\n }\n }\n\n var editorSize = display.wrapper.getBoundingClientRect();\n // Used to ensure timeout re-tries don't fire when another extend\n // happened in the meantime (clearTimeout isn't reliable -- at\n // least on Chrome, the timeouts still happen even when cleared,\n // if the clear happens after their scheduled firing time).\n var counter = 0;\n\n function extend(e) {\n var curCount = ++counter;\n var cur = posFromMouse(cm, e, true, behavior.unit == \"rectangle\");\n if (!cur) { return }\n if (cmp(cur, lastPos) != 0) {\n cm.curOp.focus = activeElt();\n extendTo(cur);\n var visible = visibleLines(display, doc);\n if (cur.line >= visible.to || cur.line < visible.from)\n { setTimeout(operation(cm, function () {if (counter == curCount) { extend(e); }}), 150); }\n } else {\n var outside = e.clientY < editorSize.top ? -20 : e.clientY > editorSize.bottom ? 20 : 0;\n if (outside) { setTimeout(operation(cm, function () {\n if (counter != curCount) { return }\n display.scroller.scrollTop += outside;\n extend(e);\n }), 50); }\n }\n }\n\n function done(e) {\n cm.state.selectingText = false;\n counter = Infinity;\n // If e is null or undefined we interpret this as someone trying\n // to explicitly cancel the selection rather than the user\n // letting go of the mouse button.\n if (e) {\n e_preventDefault(e);\n display.input.focus();\n }\n off(display.wrapper.ownerDocument, \"mousemove\", move);\n off(display.wrapper.ownerDocument, \"mouseup\", up);\n doc.history.lastSelOrigin = null;\n }\n\n var move = operation(cm, function (e) {\n if (e.buttons === 0 || !e_button(e)) { done(e); }\n else { extend(e); }\n });\n var up = operation(cm, done);\n cm.state.selectingText = up;\n on(display.wrapper.ownerDocument, \"mousemove\", move);\n on(display.wrapper.ownerDocument, \"mouseup\", up);\n }\n\n // Used when mouse-selecting to adjust the anchor to the proper side\n // of a bidi jump depending on the visual position of the head.\n function bidiSimplify(cm, range) {\n var anchor = range.anchor;\n var head = range.head;\n var anchorLine = getLine(cm.doc, anchor.line);\n if (cmp(anchor, head) == 0 && anchor.sticky == head.sticky) { return range }\n var order = getOrder(anchorLine);\n if (!order) { return range }\n var index = getBidiPartAt(order, anchor.ch, anchor.sticky), part = order[index];\n if (part.from != anchor.ch && part.to != anchor.ch) { return range }\n var boundary = index + ((part.from == anchor.ch) == (part.level != 1) ? 0 : 1);\n if (boundary == 0 || boundary == order.length) { return range }\n\n // Compute the relative visual position of the head compared to the\n // anchor (<0 is to the left, >0 to the right)\n var leftSide;\n if (head.line != anchor.line) {\n leftSide = (head.line - anchor.line) * (cm.doc.direction == \"ltr\" ? 1 : -1) > 0;\n } else {\n var headIndex = getBidiPartAt(order, head.ch, head.sticky);\n var dir = headIndex - index || (head.ch - anchor.ch) * (part.level == 1 ? -1 : 1);\n if (headIndex == boundary - 1 || headIndex == boundary)\n { leftSide = dir < 0; }\n else\n { leftSide = dir > 0; }\n }\n\n var usePart = order[boundary + (leftSide ? -1 : 0)];\n var from = leftSide == (usePart.level == 1);\n var ch = from ? usePart.from : usePart.to, sticky = from ? \"after\" : \"before\";\n return anchor.ch == ch && anchor.sticky == sticky ? range : new Range(new Pos(anchor.line, ch, sticky), head)\n }\n\n\n // Determines whether an event happened in the gutter, and fires the\n // handlers for the corresponding event.\n function gutterEvent(cm, e, type, prevent) {\n var mX, mY;\n if (e.touches) {\n mX = e.touches[0].clientX;\n mY = e.touches[0].clientY;\n } else {\n try { mX = e.clientX; mY = e.clientY; }\n catch(e$1) { return false }\n }\n if (mX >= Math.floor(cm.display.gutters.getBoundingClientRect().right)) { return false }\n if (prevent) { e_preventDefault(e); }\n\n var display = cm.display;\n var lineBox = display.lineDiv.getBoundingClientRect();\n\n if (mY > lineBox.bottom || !hasHandler(cm, type)) { return e_defaultPrevented(e) }\n mY -= lineBox.top - display.viewOffset;\n\n for (var i = 0; i < cm.display.gutterSpecs.length; ++i) {\n var g = display.gutters.childNodes[i];\n if (g && g.getBoundingClientRect().right >= mX) {\n var line = lineAtHeight(cm.doc, mY);\n var gutter = cm.display.gutterSpecs[i];\n signal(cm, type, cm, line, gutter.className, e);\n return e_defaultPrevented(e)\n }\n }\n }\n\n function clickInGutter(cm, e) {\n return gutterEvent(cm, e, \"gutterClick\", true)\n }\n\n // CONTEXT MENU HANDLING\n\n // To make the context menu work, we need to briefly unhide the\n // textarea (making it as unobtrusive as possible) to let the\n // right-click take effect on it.\n function onContextMenu(cm, e) {\n if (eventInWidget(cm.display, e) || contextMenuInGutter(cm, e)) { return }\n if (signalDOMEvent(cm, e, \"contextmenu\")) { return }\n if (!captureRightClick) { cm.display.input.onContextMenu(e); }\n }\n\n function contextMenuInGutter(cm, e) {\n if (!hasHandler(cm, \"gutterContextMenu\")) { return false }\n return gutterEvent(cm, e, \"gutterContextMenu\", false)\n }\n\n function themeChanged(cm) {\n cm.display.wrapper.className = cm.display.wrapper.className.replace(/\\s*cm-s-\\S+/g, \"\") +\n cm.options.theme.replace(/(^|\\s)\\s*/g, \" cm-s-\");\n clearCaches(cm);\n }\n\n var Init = {toString: function(){return \"CodeMirror.Init\"}};\n\n var defaults = {};\n var optionHandlers = {};\n\n function defineOptions(CodeMirror) {\n var optionHandlers = CodeMirror.optionHandlers;\n\n function option(name, deflt, handle, notOnInit) {\n CodeMirror.defaults[name] = deflt;\n if (handle) { optionHandlers[name] =\n notOnInit ? function (cm, val, old) {if (old != Init) { handle(cm, val, old); }} : handle; }\n }\n\n CodeMirror.defineOption = option;\n\n // Passed to option handlers when there is no old value.\n CodeMirror.Init = Init;\n\n // These two are, on init, called from the constructor because they\n // have to be initialized before the editor can start at all.\n option(\"value\", \"\", function (cm, val) { return cm.setValue(val); }, true);\n option(\"mode\", null, function (cm, val) {\n cm.doc.modeOption = val;\n loadMode(cm);\n }, true);\n\n option(\"indentUnit\", 2, loadMode, true);\n option(\"indentWithTabs\", false);\n option(\"smartIndent\", true);\n option(\"tabSize\", 4, function (cm) {\n resetModeState(cm);\n clearCaches(cm);\n regChange(cm);\n }, true);\n\n option(\"lineSeparator\", null, function (cm, val) {\n cm.doc.lineSep = val;\n if (!val) { return }\n var newBreaks = [], lineNo = cm.doc.first;\n cm.doc.iter(function (line) {\n for (var pos = 0;;) {\n var found = line.text.indexOf(val, pos);\n if (found == -1) { break }\n pos = found + val.length;\n newBreaks.push(Pos(lineNo, found));\n }\n lineNo++;\n });\n for (var i = newBreaks.length - 1; i >= 0; i--)\n { replaceRange(cm.doc, val, newBreaks[i], Pos(newBreaks[i].line, newBreaks[i].ch + val.length)); }\n });\n option(\"specialChars\", /[\\u0000-\\u001f\\u007f-\\u009f\\u00ad\\u061c\\u200b\\u200e\\u200f\\u2028\\u2029\\ufeff\\ufff9-\\ufffc]/g, function (cm, val, old) {\n cm.state.specialChars = new RegExp(val.source + (val.test(\"\\t\") ? \"\" : \"|\\t\"), \"g\");\n if (old != Init) { cm.refresh(); }\n });\n option(\"specialCharPlaceholder\", defaultSpecialCharPlaceholder, function (cm) { return cm.refresh(); }, true);\n option(\"electricChars\", true);\n option(\"inputStyle\", mobile ? \"contenteditable\" : \"textarea\", function () {\n throw new Error(\"inputStyle can not (yet) be changed in a running editor\") // FIXME\n }, true);\n option(\"spellcheck\", false, function (cm, val) { return cm.getInputField().spellcheck = val; }, true);\n option(\"autocorrect\", false, function (cm, val) { return cm.getInputField().autocorrect = val; }, true);\n option(\"autocapitalize\", false, function (cm, val) { return cm.getInputField().autocapitalize = val; }, true);\n option(\"rtlMoveVisually\", !windows);\n option(\"wholeLineUpdateBefore\", true);\n\n option(\"theme\", \"default\", function (cm) {\n themeChanged(cm);\n updateGutters(cm);\n }, true);\n option(\"keyMap\", \"default\", function (cm, val, old) {\n var next = getKeyMap(val);\n var prev = old != Init && getKeyMap(old);\n if (prev && prev.detach) { prev.detach(cm, next); }\n if (next.attach) { next.attach(cm, prev || null); }\n });\n option(\"extraKeys\", null);\n option(\"configureMouse\", null);\n\n option(\"lineWrapping\", false, wrappingChanged, true);\n option(\"gutters\", [], function (cm, val) {\n cm.display.gutterSpecs = getGutters(val, cm.options.lineNumbers);\n updateGutters(cm);\n }, true);\n option(\"fixedGutter\", true, function (cm, val) {\n cm.display.gutters.style.left = val ? compensateForHScroll(cm.display) + \"px\" : \"0\";\n cm.refresh();\n }, true);\n option(\"coverGutterNextToScrollbar\", false, function (cm) { return updateScrollbars(cm); }, true);\n option(\"scrollbarStyle\", \"native\", function (cm) {\n initScrollbars(cm);\n updateScrollbars(cm);\n cm.display.scrollbars.setScrollTop(cm.doc.scrollTop);\n cm.display.scrollbars.setScrollLeft(cm.doc.scrollLeft);\n }, true);\n option(\"lineNumbers\", false, function (cm, val) {\n cm.display.gutterSpecs = getGutters(cm.options.gutters, val);\n updateGutters(cm);\n }, true);\n option(\"firstLineNumber\", 1, updateGutters, true);\n option(\"lineNumberFormatter\", function (integer) { return integer; }, updateGutters, true);\n option(\"showCursorWhenSelecting\", false, updateSelection, true);\n\n option(\"resetSelectionOnContextMenu\", true);\n option(\"lineWiseCopyCut\", true);\n option(\"pasteLinesPerSelection\", true);\n option(\"selectionsMayTouch\", false);\n\n option(\"readOnly\", false, function (cm, val) {\n if (val == \"nocursor\") {\n onBlur(cm);\n cm.display.input.blur();\n }\n cm.display.input.readOnlyChanged(val);\n });\n\n option(\"screenReaderLabel\", null, function (cm, val) {\n val = (val === '') ? null : val;\n cm.display.input.screenReaderLabelChanged(val);\n });\n\n option(\"disableInput\", false, function (cm, val) {if (!val) { cm.display.input.reset(); }}, true);\n option(\"dragDrop\", true, dragDropChanged);\n option(\"allowDropFileTypes\", null);\n\n option(\"cursorBlinkRate\", 530);\n option(\"cursorScrollMargin\", 0);\n option(\"cursorHeight\", 1, updateSelection, true);\n option(\"singleCursorHeightPerLine\", true, updateSelection, true);\n option(\"workTime\", 100);\n option(\"workDelay\", 100);\n option(\"flattenSpans\", true, resetModeState, true);\n option(\"addModeClass\", false, resetModeState, true);\n option(\"pollInterval\", 100);\n option(\"undoDepth\", 200, function (cm, val) { return cm.doc.history.undoDepth = val; });\n option(\"historyEventDelay\", 1250);\n option(\"viewportMargin\", 10, function (cm) { return cm.refresh(); }, true);\n option(\"maxHighlightLength\", 10000, resetModeState, true);\n option(\"moveInputWithCursor\", true, function (cm, val) {\n if (!val) { cm.display.input.resetPosition(); }\n });\n\n option(\"tabindex\", null, function (cm, val) { return cm.display.input.getField().tabIndex = val || \"\"; });\n option(\"autofocus\", null);\n option(\"direction\", \"ltr\", function (cm, val) { return cm.doc.setDirection(val); }, true);\n option(\"phrases\", null);\n }\n\n function dragDropChanged(cm, value, old) {\n var wasOn = old && old != Init;\n if (!value != !wasOn) {\n var funcs = cm.display.dragFunctions;\n var toggle = value ? on : off;\n toggle(cm.display.scroller, \"dragstart\", funcs.start);\n toggle(cm.display.scroller, \"dragenter\", funcs.enter);\n toggle(cm.display.scroller, \"dragover\", funcs.over);\n toggle(cm.display.scroller, \"dragleave\", funcs.leave);\n toggle(cm.display.scroller, \"drop\", funcs.drop);\n }\n }\n\n function wrappingChanged(cm) {\n if (cm.options.lineWrapping) {\n addClass(cm.display.wrapper, \"CodeMirror-wrap\");\n cm.display.sizer.style.minWidth = \"\";\n cm.display.sizerWidth = null;\n } else {\n rmClass(cm.display.wrapper, \"CodeMirror-wrap\");\n findMaxLine(cm);\n }\n estimateLineHeights(cm);\n regChange(cm);\n clearCaches(cm);\n setTimeout(function () { return updateScrollbars(cm); }, 100);\n }\n\n // A CodeMirror instance represents an editor. This is the object\n // that user code is usually dealing with.\n\n function CodeMirror(place, options) {\n var this$1 = this;\n\n if (!(this instanceof CodeMirror)) { return new CodeMirror(place, options) }\n\n this.options = options = options ? copyObj(options) : {};\n // Determine effective options based on given values and defaults.\n copyObj(defaults, options, false);\n\n var doc = options.value;\n if (typeof doc == \"string\") { doc = new Doc(doc, options.mode, null, options.lineSeparator, options.direction); }\n else if (options.mode) { doc.modeOption = options.mode; }\n this.doc = doc;\n\n var input = new CodeMirror.inputStyles[options.inputStyle](this);\n var display = this.display = new Display(place, doc, input, options);\n display.wrapper.CodeMirror = this;\n themeChanged(this);\n if (options.lineWrapping)\n { this.display.wrapper.className += \" CodeMirror-wrap\"; }\n initScrollbars(this);\n\n this.state = {\n keyMaps: [], // stores maps added by addKeyMap\n overlays: [], // highlighting overlays, as added by addOverlay\n modeGen: 0, // bumped when mode/overlay changes, used to invalidate highlighting info\n overwrite: false,\n delayingBlurEvent: false,\n focused: false,\n suppressEdits: false, // used to disable editing during key handlers when in readOnly mode\n pasteIncoming: -1, cutIncoming: -1, // help recognize paste/cut edits in input.poll\n selectingText: false,\n draggingText: false,\n highlight: new Delayed(), // stores highlight worker timeout\n keySeq: null, // Unfinished key sequence\n specialChars: null\n };\n\n if (options.autofocus && !mobile) { display.input.focus(); }\n\n // Override magic textarea content restore that IE sometimes does\n // on our hidden textarea on reload\n if (ie && ie_version < 11) { setTimeout(function () { return this$1.display.input.reset(true); }, 20); }\n\n registerEventHandlers(this);\n ensureGlobalHandlers();\n\n startOperation(this);\n this.curOp.forceUpdate = true;\n attachDoc(this, doc);\n\n if ((options.autofocus && !mobile) || this.hasFocus())\n { setTimeout(function () {\n if (this$1.hasFocus() && !this$1.state.focused) { onFocus(this$1); }\n }, 20); }\n else\n { onBlur(this); }\n\n for (var opt in optionHandlers) { if (optionHandlers.hasOwnProperty(opt))\n { optionHandlers[opt](this, options[opt], Init); } }\n maybeUpdateLineNumberWidth(this);\n if (options.finishInit) { options.finishInit(this); }\n for (var i = 0; i < initHooks.length; ++i) { initHooks[i](this); }\n endOperation(this);\n // Suppress optimizelegibility in Webkit, since it breaks text\n // measuring on line wrapping boundaries.\n if (webkit && options.lineWrapping &&\n getComputedStyle(display.lineDiv).textRendering == \"optimizelegibility\")\n { display.lineDiv.style.textRendering = \"auto\"; }\n }\n\n // The default configuration options.\n CodeMirror.defaults = defaults;\n // Functions to run when options are changed.\n CodeMirror.optionHandlers = optionHandlers;\n\n // Attach the necessary event handlers when initializing the editor\n function registerEventHandlers(cm) {\n var d = cm.display;\n on(d.scroller, \"mousedown\", operation(cm, onMouseDown));\n // Older IE's will not fire a second mousedown for a double click\n if (ie && ie_version < 11)\n { on(d.scroller, \"dblclick\", operation(cm, function (e) {\n if (signalDOMEvent(cm, e)) { return }\n var pos = posFromMouse(cm, e);\n if (!pos || clickInGutter(cm, e) || eventInWidget(cm.display, e)) { return }\n e_preventDefault(e);\n var word = cm.findWordAt(pos);\n extendSelection(cm.doc, word.anchor, word.head);\n })); }\n else\n { on(d.scroller, \"dblclick\", function (e) { return signalDOMEvent(cm, e) || e_preventDefault(e); }); }\n // Some browsers fire contextmenu *after* opening the menu, at\n // which point we can't mess with it anymore. Context menu is\n // handled in onMouseDown for these browsers.\n on(d.scroller, \"contextmenu\", function (e) { return onContextMenu(cm, e); });\n on(d.input.getField(), \"contextmenu\", function (e) {\n if (!d.scroller.contains(e.target)) { onContextMenu(cm, e); }\n });\n\n // Used to suppress mouse event handling when a touch happens\n var touchFinished, prevTouch = {end: 0};\n function finishTouch() {\n if (d.activeTouch) {\n touchFinished = setTimeout(function () { return d.activeTouch = null; }, 1000);\n prevTouch = d.activeTouch;\n prevTouch.end = +new Date;\n }\n }\n function isMouseLikeTouchEvent(e) {\n if (e.touches.length != 1) { return false }\n var touch = e.touches[0];\n return touch.radiusX <= 1 && touch.radiusY <= 1\n }\n function farAway(touch, other) {\n if (other.left == null) { return true }\n var dx = other.left - touch.left, dy = other.top - touch.top;\n return dx * dx + dy * dy > 20 * 20\n }\n on(d.scroller, \"touchstart\", function (e) {\n if (!signalDOMEvent(cm, e) && !isMouseLikeTouchEvent(e) && !clickInGutter(cm, e)) {\n d.input.ensurePolled();\n clearTimeout(touchFinished);\n var now = +new Date;\n d.activeTouch = {start: now, moved: false,\n prev: now - prevTouch.end <= 300 ? prevTouch : null};\n if (e.touches.length == 1) {\n d.activeTouch.left = e.touches[0].pageX;\n d.activeTouch.top = e.touches[0].pageY;\n }\n }\n });\n on(d.scroller, \"touchmove\", function () {\n if (d.activeTouch) { d.activeTouch.moved = true; }\n });\n on(d.scroller, \"touchend\", function (e) {\n var touch = d.activeTouch;\n if (touch && !eventInWidget(d, e) && touch.left != null &&\n !touch.moved && new Date - touch.start < 300) {\n var pos = cm.coordsChar(d.activeTouch, \"page\"), range;\n if (!touch.prev || farAway(touch, touch.prev)) // Single tap\n { range = new Range(pos, pos); }\n else if (!touch.prev.prev || farAway(touch, touch.prev.prev)) // Double tap\n { range = cm.findWordAt(pos); }\n else // Triple tap\n { range = new Range(Pos(pos.line, 0), clipPos(cm.doc, Pos(pos.line + 1, 0))); }\n cm.setSelection(range.anchor, range.head);\n cm.focus();\n e_preventDefault(e);\n }\n finishTouch();\n });\n on(d.scroller, \"touchcancel\", finishTouch);\n\n // Sync scrolling between fake scrollbars and real scrollable\n // area, ensure viewport is updated when scrolling.\n on(d.scroller, \"scroll\", function () {\n if (d.scroller.clientHeight) {\n updateScrollTop(cm, d.scroller.scrollTop);\n setScrollLeft(cm, d.scroller.scrollLeft, true);\n signal(cm, \"scroll\", cm);\n }\n });\n\n // Listen to wheel events in order to try and update the viewport on time.\n on(d.scroller, \"mousewheel\", function (e) { return onScrollWheel(cm, e); });\n on(d.scroller, \"DOMMouseScroll\", function (e) { return onScrollWheel(cm, e); });\n\n // Prevent wrapper from ever scrolling\n on(d.wrapper, \"scroll\", function () { return d.wrapper.scrollTop = d.wrapper.scrollLeft = 0; });\n\n d.dragFunctions = {\n enter: function (e) {if (!signalDOMEvent(cm, e)) { e_stop(e); }},\n over: function (e) {if (!signalDOMEvent(cm, e)) { onDragOver(cm, e); e_stop(e); }},\n start: function (e) { return onDragStart(cm, e); },\n drop: operation(cm, onDrop),\n leave: function (e) {if (!signalDOMEvent(cm, e)) { clearDragCursor(cm); }}\n };\n\n var inp = d.input.getField();\n on(inp, \"keyup\", function (e) { return onKeyUp.call(cm, e); });\n on(inp, \"keydown\", operation(cm, onKeyDown));\n on(inp, \"keypress\", operation(cm, onKeyPress));\n on(inp, \"focus\", function (e) { return onFocus(cm, e); });\n on(inp, \"blur\", function (e) { return onBlur(cm, e); });\n }\n\n var initHooks = [];\n CodeMirror.defineInitHook = function (f) { return initHooks.push(f); };\n\n // Indent the given line. The how parameter can be \"smart\",\n // \"add\"/null, \"subtract\", or \"prev\". When aggressive is false\n // (typically set to true for forced single-line indents), empty\n // lines are not indented, and places where the mode returns Pass\n // are left alone.\n function indentLine(cm, n, how, aggressive) {\n var doc = cm.doc, state;\n if (how == null) { how = \"add\"; }\n if (how == \"smart\") {\n // Fall back to \"prev\" when the mode doesn't have an indentation\n // method.\n if (!doc.mode.indent) { how = \"prev\"; }\n else { state = getContextBefore(cm, n).state; }\n }\n\n var tabSize = cm.options.tabSize;\n var line = getLine(doc, n), curSpace = countColumn(line.text, null, tabSize);\n if (line.stateAfter) { line.stateAfter = null; }\n var curSpaceString = line.text.match(/^\\s*/)[0], indentation;\n if (!aggressive && !/\\S/.test(line.text)) {\n indentation = 0;\n how = \"not\";\n } else if (how == \"smart\") {\n indentation = doc.mode.indent(state, line.text.slice(curSpaceString.length), line.text);\n if (indentation == Pass || indentation > 150) {\n if (!aggressive) { return }\n how = \"prev\";\n }\n }\n if (how == \"prev\") {\n if (n > doc.first) { indentation = countColumn(getLine(doc, n-1).text, null, tabSize); }\n else { indentation = 0; }\n } else if (how == \"add\") {\n indentation = curSpace + cm.options.indentUnit;\n } else if (how == \"subtract\") {\n indentation = curSpace - cm.options.indentUnit;\n } else if (typeof how == \"number\") {\n indentation = curSpace + how;\n }\n indentation = Math.max(0, indentation);\n\n var indentString = \"\", pos = 0;\n if (cm.options.indentWithTabs)\n { for (var i = Math.floor(indentation / tabSize); i; --i) {pos += tabSize; indentString += \"\\t\";} }\n if (pos < indentation) { indentString += spaceStr(indentation - pos); }\n\n if (indentString != curSpaceString) {\n replaceRange(doc, indentString, Pos(n, 0), Pos(n, curSpaceString.length), \"+input\");\n line.stateAfter = null;\n return true\n } else {\n // Ensure that, if the cursor was in the whitespace at the start\n // of the line, it is moved to the end of that space.\n for (var i$1 = 0; i$1 < doc.sel.ranges.length; i$1++) {\n var range = doc.sel.ranges[i$1];\n if (range.head.line == n && range.head.ch < curSpaceString.length) {\n var pos$1 = Pos(n, curSpaceString.length);\n replaceOneSelection(doc, i$1, new Range(pos$1, pos$1));\n break\n }\n }\n }\n }\n\n // This will be set to a {lineWise: bool, text: [string]} object, so\n // that, when pasting, we know what kind of selections the copied\n // text was made out of.\n var lastCopied = null;\n\n function setLastCopied(newLastCopied) {\n lastCopied = newLastCopied;\n }\n\n function applyTextInput(cm, inserted, deleted, sel, origin) {\n var doc = cm.doc;\n cm.display.shift = false;\n if (!sel) { sel = doc.sel; }\n\n var recent = +new Date - 200;\n var paste = origin == \"paste\" || cm.state.pasteIncoming > recent;\n var textLines = splitLinesAuto(inserted), multiPaste = null;\n // When pasting N lines into N selections, insert one line per selection\n if (paste && sel.ranges.length > 1) {\n if (lastCopied && lastCopied.text.join(\"\\n\") == inserted) {\n if (sel.ranges.length % lastCopied.text.length == 0) {\n multiPaste = [];\n for (var i = 0; i < lastCopied.text.length; i++)\n { multiPaste.push(doc.splitLines(lastCopied.text[i])); }\n }\n } else if (textLines.length == sel.ranges.length && cm.options.pasteLinesPerSelection) {\n multiPaste = map(textLines, function (l) { return [l]; });\n }\n }\n\n var updateInput = cm.curOp.updateInput;\n // Normal behavior is to insert the new text into every selection\n for (var i$1 = sel.ranges.length - 1; i$1 >= 0; i$1--) {\n var range = sel.ranges[i$1];\n var from = range.from(), to = range.to();\n if (range.empty()) {\n if (deleted && deleted > 0) // Handle deletion\n { from = Pos(from.line, from.ch - deleted); }\n else if (cm.state.overwrite && !paste) // Handle overwrite\n { to = Pos(to.line, Math.min(getLine(doc, to.line).text.length, to.ch + lst(textLines).length)); }\n else if (paste && lastCopied && lastCopied.lineWise && lastCopied.text.join(\"\\n\") == textLines.join(\"\\n\"))\n { from = to = Pos(from.line, 0); }\n }\n var changeEvent = {from: from, to: to, text: multiPaste ? multiPaste[i$1 % multiPaste.length] : textLines,\n origin: origin || (paste ? \"paste\" : cm.state.cutIncoming > recent ? \"cut\" : \"+input\")};\n makeChange(cm.doc, changeEvent);\n signalLater(cm, \"inputRead\", cm, changeEvent);\n }\n if (inserted && !paste)\n { triggerElectric(cm, inserted); }\n\n ensureCursorVisible(cm);\n if (cm.curOp.updateInput < 2) { cm.curOp.updateInput = updateInput; }\n cm.curOp.typing = true;\n cm.state.pasteIncoming = cm.state.cutIncoming = -1;\n }\n\n function handlePaste(e, cm) {\n var pasted = e.clipboardData && e.clipboardData.getData(\"Text\");\n if (pasted) {\n e.preventDefault();\n if (!cm.isReadOnly() && !cm.options.disableInput)\n { runInOp(cm, function () { return applyTextInput(cm, pasted, 0, null, \"paste\"); }); }\n return true\n }\n }\n\n function triggerElectric(cm, inserted) {\n // When an 'electric' character is inserted, immediately trigger a reindent\n if (!cm.options.electricChars || !cm.options.smartIndent) { return }\n var sel = cm.doc.sel;\n\n for (var i = sel.ranges.length - 1; i >= 0; i--) {\n var range = sel.ranges[i];\n if (range.head.ch > 100 || (i && sel.ranges[i - 1].head.line == range.head.line)) { continue }\n var mode = cm.getModeAt(range.head);\n var indented = false;\n if (mode.electricChars) {\n for (var j = 0; j < mode.electricChars.length; j++)\n { if (inserted.indexOf(mode.electricChars.charAt(j)) > -1) {\n indented = indentLine(cm, range.head.line, \"smart\");\n break\n } }\n } else if (mode.electricInput) {\n if (mode.electricInput.test(getLine(cm.doc, range.head.line).text.slice(0, range.head.ch)))\n { indented = indentLine(cm, range.head.line, \"smart\"); }\n }\n if (indented) { signalLater(cm, \"electricInput\", cm, range.head.line); }\n }\n }\n\n function copyableRanges(cm) {\n var text = [], ranges = [];\n for (var i = 0; i < cm.doc.sel.ranges.length; i++) {\n var line = cm.doc.sel.ranges[i].head.line;\n var lineRange = {anchor: Pos(line, 0), head: Pos(line + 1, 0)};\n ranges.push(lineRange);\n text.push(cm.getRange(lineRange.anchor, lineRange.head));\n }\n return {text: text, ranges: ranges}\n }\n\n function disableBrowserMagic(field, spellcheck, autocorrect, autocapitalize) {\n field.setAttribute(\"autocorrect\", autocorrect ? \"\" : \"off\");\n field.setAttribute(\"autocapitalize\", autocapitalize ? \"\" : \"off\");\n field.setAttribute(\"spellcheck\", !!spellcheck);\n }\n\n function hiddenTextarea() {\n var te = elt(\"textarea\", null, null, \"position: absolute; bottom: -1em; padding: 0; width: 1px; height: 1em; outline: none\");\n var div = elt(\"div\", [te], null, \"overflow: hidden; position: relative; width: 3px; height: 0px;\");\n // The textarea is kept positioned near the cursor to prevent the\n // fact that it'll be scrolled into view on input from scrolling\n // our fake cursor out of view. On webkit, when wrap=off, paste is\n // very slow. So make the area wide instead.\n if (webkit) { te.style.width = \"1000px\"; }\n else { te.setAttribute(\"wrap\", \"off\"); }\n // If border: 0; -- iOS fails to open keyboard (issue #1287)\n if (ios) { te.style.border = \"1px solid black\"; }\n disableBrowserMagic(te);\n return div\n }\n\n // The publicly visible API. Note that methodOp(f) means\n // 'wrap f in an operation, performed on its `this` parameter'.\n\n // This is not the complete set of editor methods. Most of the\n // methods defined on the Doc type are also injected into\n // CodeMirror.prototype, for backwards compatibility and\n // convenience.\n\n function addEditorMethods(CodeMirror) {\n var optionHandlers = CodeMirror.optionHandlers;\n\n var helpers = CodeMirror.helpers = {};\n\n CodeMirror.prototype = {\n constructor: CodeMirror,\n focus: function(){window.focus(); this.display.input.focus();},\n\n setOption: function(option, value) {\n var options = this.options, old = options[option];\n if (options[option] == value && option != \"mode\") { return }\n options[option] = value;\n if (optionHandlers.hasOwnProperty(option))\n { operation(this, optionHandlers[option])(this, value, old); }\n signal(this, \"optionChange\", this, option);\n },\n\n getOption: function(option) {return this.options[option]},\n getDoc: function() {return this.doc},\n\n addKeyMap: function(map, bottom) {\n this.state.keyMaps[bottom ? \"push\" : \"unshift\"](getKeyMap(map));\n },\n removeKeyMap: function(map) {\n var maps = this.state.keyMaps;\n for (var i = 0; i < maps.length; ++i)\n { if (maps[i] == map || maps[i].name == map) {\n maps.splice(i, 1);\n return true\n } }\n },\n\n addOverlay: methodOp(function(spec, options) {\n var mode = spec.token ? spec : CodeMirror.getMode(this.options, spec);\n if (mode.startState) { throw new Error(\"Overlays may not be stateful.\") }\n insertSorted(this.state.overlays,\n {mode: mode, modeSpec: spec, opaque: options && options.opaque,\n priority: (options && options.priority) || 0},\n function (overlay) { return overlay.priority; });\n this.state.modeGen++;\n regChange(this);\n }),\n removeOverlay: methodOp(function(spec) {\n var overlays = this.state.overlays;\n for (var i = 0; i < overlays.length; ++i) {\n var cur = overlays[i].modeSpec;\n if (cur == spec || typeof spec == \"string\" && cur.name == spec) {\n overlays.splice(i, 1);\n this.state.modeGen++;\n regChange(this);\n return\n }\n }\n }),\n\n indentLine: methodOp(function(n, dir, aggressive) {\n if (typeof dir != \"string\" && typeof dir != \"number\") {\n if (dir == null) { dir = this.options.smartIndent ? \"smart\" : \"prev\"; }\n else { dir = dir ? \"add\" : \"subtract\"; }\n }\n if (isLine(this.doc, n)) { indentLine(this, n, dir, aggressive); }\n }),\n indentSelection: methodOp(function(how) {\n var ranges = this.doc.sel.ranges, end = -1;\n for (var i = 0; i < ranges.length; i++) {\n var range = ranges[i];\n if (!range.empty()) {\n var from = range.from(), to = range.to();\n var start = Math.max(end, from.line);\n end = Math.min(this.lastLine(), to.line - (to.ch ? 0 : 1)) + 1;\n for (var j = start; j < end; ++j)\n { indentLine(this, j, how); }\n var newRanges = this.doc.sel.ranges;\n if (from.ch == 0 && ranges.length == newRanges.length && newRanges[i].from().ch > 0)\n { replaceOneSelection(this.doc, i, new Range(from, newRanges[i].to()), sel_dontScroll); }\n } else if (range.head.line > end) {\n indentLine(this, range.head.line, how, true);\n end = range.head.line;\n if (i == this.doc.sel.primIndex) { ensureCursorVisible(this); }\n }\n }\n }),\n\n // Fetch the parser token for a given character. Useful for hacks\n // that want to inspect the mode state (say, for completion).\n getTokenAt: function(pos, precise) {\n return takeToken(this, pos, precise)\n },\n\n getLineTokens: function(line, precise) {\n return takeToken(this, Pos(line), precise, true)\n },\n\n getTokenTypeAt: function(pos) {\n pos = clipPos(this.doc, pos);\n var styles = getLineStyles(this, getLine(this.doc, pos.line));\n var before = 0, after = (styles.length - 1) / 2, ch = pos.ch;\n var type;\n if (ch == 0) { type = styles[2]; }\n else { for (;;) {\n var mid = (before + after) >> 1;\n if ((mid ? styles[mid * 2 - 1] : 0) >= ch) { after = mid; }\n else if (styles[mid * 2 + 1] < ch) { before = mid + 1; }\n else { type = styles[mid * 2 + 2]; break }\n } }\n var cut = type ? type.indexOf(\"overlay \") : -1;\n return cut < 0 ? type : cut == 0 ? null : type.slice(0, cut - 1)\n },\n\n getModeAt: function(pos) {\n var mode = this.doc.mode;\n if (!mode.innerMode) { return mode }\n return CodeMirror.innerMode(mode, this.getTokenAt(pos).state).mode\n },\n\n getHelper: function(pos, type) {\n return this.getHelpers(pos, type)[0]\n },\n\n getHelpers: function(pos, type) {\n var found = [];\n if (!helpers.hasOwnProperty(type)) { return found }\n var help = helpers[type], mode = this.getModeAt(pos);\n if (typeof mode[type] == \"string\") {\n if (help[mode[type]]) { found.push(help[mode[type]]); }\n } else if (mode[type]) {\n for (var i = 0; i < mode[type].length; i++) {\n var val = help[mode[type][i]];\n if (val) { found.push(val); }\n }\n } else if (mode.helperType && help[mode.helperType]) {\n found.push(help[mode.helperType]);\n } else if (help[mode.name]) {\n found.push(help[mode.name]);\n }\n for (var i$1 = 0; i$1 < help._global.length; i$1++) {\n var cur = help._global[i$1];\n if (cur.pred(mode, this) && indexOf(found, cur.val) == -1)\n { found.push(cur.val); }\n }\n return found\n },\n\n getStateAfter: function(line, precise) {\n var doc = this.doc;\n line = clipLine(doc, line == null ? doc.first + doc.size - 1: line);\n return getContextBefore(this, line + 1, precise).state\n },\n\n cursorCoords: function(start, mode) {\n var pos, range = this.doc.sel.primary();\n if (start == null) { pos = range.head; }\n else if (typeof start == \"object\") { pos = clipPos(this.doc, start); }\n else { pos = start ? range.from() : range.to(); }\n return cursorCoords(this, pos, mode || \"page\")\n },\n\n charCoords: function(pos, mode) {\n return charCoords(this, clipPos(this.doc, pos), mode || \"page\")\n },\n\n coordsChar: function(coords, mode) {\n coords = fromCoordSystem(this, coords, mode || \"page\");\n return coordsChar(this, coords.left, coords.top)\n },\n\n lineAtHeight: function(height, mode) {\n height = fromCoordSystem(this, {top: height, left: 0}, mode || \"page\").top;\n return lineAtHeight(this.doc, height + this.display.viewOffset)\n },\n heightAtLine: function(line, mode, includeWidgets) {\n var end = false, lineObj;\n if (typeof line == \"number\") {\n var last = this.doc.first + this.doc.size - 1;\n if (line < this.doc.first) { line = this.doc.first; }\n else if (line > last) { line = last; end = true; }\n lineObj = getLine(this.doc, line);\n } else {\n lineObj = line;\n }\n return intoCoordSystem(this, lineObj, {top: 0, left: 0}, mode || \"page\", includeWidgets || end).top +\n (end ? this.doc.height - heightAtLine(lineObj) : 0)\n },\n\n defaultTextHeight: function() { return textHeight(this.display) },\n defaultCharWidth: function() { return charWidth(this.display) },\n\n getViewport: function() { return {from: this.display.viewFrom, to: this.display.viewTo}},\n\n addWidget: function(pos, node, scroll, vert, horiz) {\n var display = this.display;\n pos = cursorCoords(this, clipPos(this.doc, pos));\n var top = pos.bottom, left = pos.left;\n node.style.position = \"absolute\";\n node.setAttribute(\"cm-ignore-events\", \"true\");\n this.display.input.setUneditable(node);\n display.sizer.appendChild(node);\n if (vert == \"over\") {\n top = pos.top;\n } else if (vert == \"above\" || vert == \"near\") {\n var vspace = Math.max(display.wrapper.clientHeight, this.doc.height),\n hspace = Math.max(display.sizer.clientWidth, display.lineSpace.clientWidth);\n // Default to positioning above (if specified and possible); otherwise default to positioning below\n if ((vert == 'above' || pos.bottom + node.offsetHeight > vspace) && pos.top > node.offsetHeight)\n { top = pos.top - node.offsetHeight; }\n else if (pos.bottom + node.offsetHeight <= vspace)\n { top = pos.bottom; }\n if (left + node.offsetWidth > hspace)\n { left = hspace - node.offsetWidth; }\n }\n node.style.top = top + \"px\";\n node.style.left = node.style.right = \"\";\n if (horiz == \"right\") {\n left = display.sizer.clientWidth - node.offsetWidth;\n node.style.right = \"0px\";\n } else {\n if (horiz == \"left\") { left = 0; }\n else if (horiz == \"middle\") { left = (display.sizer.clientWidth - node.offsetWidth) / 2; }\n node.style.left = left + \"px\";\n }\n if (scroll)\n { scrollIntoView(this, {left: left, top: top, right: left + node.offsetWidth, bottom: top + node.offsetHeight}); }\n },\n\n triggerOnKeyDown: methodOp(onKeyDown),\n triggerOnKeyPress: methodOp(onKeyPress),\n triggerOnKeyUp: onKeyUp,\n triggerOnMouseDown: methodOp(onMouseDown),\n\n execCommand: function(cmd) {\n if (commands.hasOwnProperty(cmd))\n { return commands[cmd].call(null, this) }\n },\n\n triggerElectric: methodOp(function(text) { triggerElectric(this, text); }),\n\n findPosH: function(from, amount, unit, visually) {\n var dir = 1;\n if (amount < 0) { dir = -1; amount = -amount; }\n var cur = clipPos(this.doc, from);\n for (var i = 0; i < amount; ++i) {\n cur = findPosH(this.doc, cur, dir, unit, visually);\n if (cur.hitSide) { break }\n }\n return cur\n },\n\n moveH: methodOp(function(dir, unit) {\n var this$1 = this;\n\n this.extendSelectionsBy(function (range) {\n if (this$1.display.shift || this$1.doc.extend || range.empty())\n { return findPosH(this$1.doc, range.head, dir, unit, this$1.options.rtlMoveVisually) }\n else\n { return dir < 0 ? range.from() : range.to() }\n }, sel_move);\n }),\n\n deleteH: methodOp(function(dir, unit) {\n var sel = this.doc.sel, doc = this.doc;\n if (sel.somethingSelected())\n { doc.replaceSelection(\"\", null, \"+delete\"); }\n else\n { deleteNearSelection(this, function (range) {\n var other = findPosH(doc, range.head, dir, unit, false);\n return dir < 0 ? {from: other, to: range.head} : {from: range.head, to: other}\n }); }\n }),\n\n findPosV: function(from, amount, unit, goalColumn) {\n var dir = 1, x = goalColumn;\n if (amount < 0) { dir = -1; amount = -amount; }\n var cur = clipPos(this.doc, from);\n for (var i = 0; i < amount; ++i) {\n var coords = cursorCoords(this, cur, \"div\");\n if (x == null) { x = coords.left; }\n else { coords.left = x; }\n cur = findPosV(this, coords, dir, unit);\n if (cur.hitSide) { break }\n }\n return cur\n },\n\n moveV: methodOp(function(dir, unit) {\n var this$1 = this;\n\n var doc = this.doc, goals = [];\n var collapse = !this.display.shift && !doc.extend && doc.sel.somethingSelected();\n doc.extendSelectionsBy(function (range) {\n if (collapse)\n { return dir < 0 ? range.from() : range.to() }\n var headPos = cursorCoords(this$1, range.head, \"div\");\n if (range.goalColumn != null) { headPos.left = range.goalColumn; }\n goals.push(headPos.left);\n var pos = findPosV(this$1, headPos, dir, unit);\n if (unit == \"page\" && range == doc.sel.primary())\n { addToScrollTop(this$1, charCoords(this$1, pos, \"div\").top - headPos.top); }\n return pos\n }, sel_move);\n if (goals.length) { for (var i = 0; i < doc.sel.ranges.length; i++)\n { doc.sel.ranges[i].goalColumn = goals[i]; } }\n }),\n\n // Find the word at the given position (as returned by coordsChar).\n findWordAt: function(pos) {\n var doc = this.doc, line = getLine(doc, pos.line).text;\n var start = pos.ch, end = pos.ch;\n if (line) {\n var helper = this.getHelper(pos, \"wordChars\");\n if ((pos.sticky == \"before\" || end == line.length) && start) { --start; } else { ++end; }\n var startChar = line.charAt(start);\n var check = isWordChar(startChar, helper)\n ? function (ch) { return isWordChar(ch, helper); }\n : /\\s/.test(startChar) ? function (ch) { return /\\s/.test(ch); }\n : function (ch) { return (!/\\s/.test(ch) && !isWordChar(ch)); };\n while (start > 0 && check(line.charAt(start - 1))) { --start; }\n while (end < line.length && check(line.charAt(end))) { ++end; }\n }\n return new Range(Pos(pos.line, start), Pos(pos.line, end))\n },\n\n toggleOverwrite: function(value) {\n if (value != null && value == this.state.overwrite) { return }\n if (this.state.overwrite = !this.state.overwrite)\n { addClass(this.display.cursorDiv, \"CodeMirror-overwrite\"); }\n else\n { rmClass(this.display.cursorDiv, \"CodeMirror-overwrite\"); }\n\n signal(this, \"overwriteToggle\", this, this.state.overwrite);\n },\n hasFocus: function() { return this.display.input.getField() == activeElt() },\n isReadOnly: function() { return !!(this.options.readOnly || this.doc.cantEdit) },\n\n scrollTo: methodOp(function (x, y) { scrollToCoords(this, x, y); }),\n getScrollInfo: function() {\n var scroller = this.display.scroller;\n return {left: scroller.scrollLeft, top: scroller.scrollTop,\n height: scroller.scrollHeight - scrollGap(this) - this.display.barHeight,\n width: scroller.scrollWidth - scrollGap(this) - this.display.barWidth,\n clientHeight: displayHeight(this), clientWidth: displayWidth(this)}\n },\n\n scrollIntoView: methodOp(function(range, margin) {\n if (range == null) {\n range = {from: this.doc.sel.primary().head, to: null};\n if (margin == null) { margin = this.options.cursorScrollMargin; }\n } else if (typeof range == \"number\") {\n range = {from: Pos(range, 0), to: null};\n } else if (range.from == null) {\n range = {from: range, to: null};\n }\n if (!range.to) { range.to = range.from; }\n range.margin = margin || 0;\n\n if (range.from.line != null) {\n scrollToRange(this, range);\n } else {\n scrollToCoordsRange(this, range.from, range.to, range.margin);\n }\n }),\n\n setSize: methodOp(function(width, height) {\n var this$1 = this;\n\n var interpret = function (val) { return typeof val == \"number\" || /^\\d+$/.test(String(val)) ? val + \"px\" : val; };\n if (width != null) { this.display.wrapper.style.width = interpret(width); }\n if (height != null) { this.display.wrapper.style.height = interpret(height); }\n if (this.options.lineWrapping) { clearLineMeasurementCache(this); }\n var lineNo = this.display.viewFrom;\n this.doc.iter(lineNo, this.display.viewTo, function (line) {\n if (line.widgets) { for (var i = 0; i < line.widgets.length; i++)\n { if (line.widgets[i].noHScroll) { regLineChange(this$1, lineNo, \"widget\"); break } } }\n ++lineNo;\n });\n this.curOp.forceUpdate = true;\n signal(this, \"refresh\", this);\n }),\n\n operation: function(f){return runInOp(this, f)},\n startOperation: function(){return startOperation(this)},\n endOperation: function(){return endOperation(this)},\n\n refresh: methodOp(function() {\n var oldHeight = this.display.cachedTextHeight;\n regChange(this);\n this.curOp.forceUpdate = true;\n clearCaches(this);\n scrollToCoords(this, this.doc.scrollLeft, this.doc.scrollTop);\n updateGutterSpace(this.display);\n if (oldHeight == null || Math.abs(oldHeight - textHeight(this.display)) > .5 || this.options.lineWrapping)\n { estimateLineHeights(this); }\n signal(this, \"refresh\", this);\n }),\n\n swapDoc: methodOp(function(doc) {\n var old = this.doc;\n old.cm = null;\n // Cancel the current text selection if any (#5821)\n if (this.state.selectingText) { this.state.selectingText(); }\n attachDoc(this, doc);\n clearCaches(this);\n this.display.input.reset();\n scrollToCoords(this, doc.scrollLeft, doc.scrollTop);\n this.curOp.forceScroll = true;\n signalLater(this, \"swapDoc\", this, old);\n return old\n }),\n\n phrase: function(phraseText) {\n var phrases = this.options.phrases;\n return phrases && Object.prototype.hasOwnProperty.call(phrases, phraseText) ? phrases[phraseText] : phraseText\n },\n\n getInputField: function(){return this.display.input.getField()},\n getWrapperElement: function(){return this.display.wrapper},\n getScrollerElement: function(){return this.display.scroller},\n getGutterElement: function(){return this.display.gutters}\n };\n eventMixin(CodeMirror);\n\n CodeMirror.registerHelper = function(type, name, value) {\n if (!helpers.hasOwnProperty(type)) { helpers[type] = CodeMirror[type] = {_global: []}; }\n helpers[type][name] = value;\n };\n CodeMirror.registerGlobalHelper = function(type, name, predicate, value) {\n CodeMirror.registerHelper(type, name, value);\n helpers[type]._global.push({pred: predicate, val: value});\n };\n }\n\n // Used for horizontal relative motion. Dir is -1 or 1 (left or\n // right), unit can be \"codepoint\", \"char\", \"column\" (like char, but\n // doesn't cross line boundaries), \"word\" (across next word), or\n // \"group\" (to the start of next group of word or\n // non-word-non-whitespace chars). The visually param controls\n // whether, in right-to-left text, direction 1 means to move towards\n // the next index in the string, or towards the character to the right\n // of the current position. The resulting position will have a\n // hitSide=true property if it reached the end of the document.\n function findPosH(doc, pos, dir, unit, visually) {\n var oldPos = pos;\n var origDir = dir;\n var lineObj = getLine(doc, pos.line);\n var lineDir = visually && doc.direction == \"rtl\" ? -dir : dir;\n function findNextLine() {\n var l = pos.line + lineDir;\n if (l < doc.first || l >= doc.first + doc.size) { return false }\n pos = new Pos(l, pos.ch, pos.sticky);\n return lineObj = getLine(doc, l)\n }\n function moveOnce(boundToLine) {\n var next;\n if (unit == \"codepoint\") {\n var ch = lineObj.text.charCodeAt(pos.ch + (dir > 0 ? 0 : -1));\n if (isNaN(ch)) {\n next = null;\n } else {\n var astral = dir > 0 ? ch >= 0xD800 && ch < 0xDC00 : ch >= 0xDC00 && ch < 0xDFFF;\n next = new Pos(pos.line, Math.max(0, Math.min(lineObj.text.length, pos.ch + dir * (astral ? 2 : 1))), -dir);\n }\n } else if (visually) {\n next = moveVisually(doc.cm, lineObj, pos, dir);\n } else {\n next = moveLogically(lineObj, pos, dir);\n }\n if (next == null) {\n if (!boundToLine && findNextLine())\n { pos = endOfLine(visually, doc.cm, lineObj, pos.line, lineDir); }\n else\n { return false }\n } else {\n pos = next;\n }\n return true\n }\n\n if (unit == \"char\" || unit == \"codepoint\") {\n moveOnce();\n } else if (unit == \"column\") {\n moveOnce(true);\n } else if (unit == \"word\" || unit == \"group\") {\n var sawType = null, group = unit == \"group\";\n var helper = doc.cm && doc.cm.getHelper(pos, \"wordChars\");\n for (var first = true;; first = false) {\n if (dir < 0 && !moveOnce(!first)) { break }\n var cur = lineObj.text.charAt(pos.ch) || \"\\n\";\n var type = isWordChar(cur, helper) ? \"w\"\n : group && cur == \"\\n\" ? \"n\"\n : !group || /\\s/.test(cur) ? null\n : \"p\";\n if (group && !first && !type) { type = \"s\"; }\n if (sawType && sawType != type) {\n if (dir < 0) {dir = 1; moveOnce(); pos.sticky = \"after\";}\n break\n }\n\n if (type) { sawType = type; }\n if (dir > 0 && !moveOnce(!first)) { break }\n }\n }\n var result = skipAtomic(doc, pos, oldPos, origDir, true);\n if (equalCursorPos(oldPos, result)) { result.hitSide = true; }\n return result\n }\n\n // For relative vertical movement. Dir may be -1 or 1. Unit can be\n // \"page\" or \"line\". The resulting position will have a hitSide=true\n // property if it reached the end of the document.\n function findPosV(cm, pos, dir, unit) {\n var doc = cm.doc, x = pos.left, y;\n if (unit == \"page\") {\n var pageSize = Math.min(cm.display.wrapper.clientHeight, window.innerHeight || document.documentElement.clientHeight);\n var moveAmount = Math.max(pageSize - .5 * textHeight(cm.display), 3);\n y = (dir > 0 ? pos.bottom : pos.top) + dir * moveAmount;\n\n } else if (unit == \"line\") {\n y = dir > 0 ? pos.bottom + 3 : pos.top - 3;\n }\n var target;\n for (;;) {\n target = coordsChar(cm, x, y);\n if (!target.outside) { break }\n if (dir < 0 ? y <= 0 : y >= doc.height) { target.hitSide = true; break }\n y += dir * 5;\n }\n return target\n }\n\n // CONTENTEDITABLE INPUT STYLE\n\n var ContentEditableInput = function(cm) {\n this.cm = cm;\n this.lastAnchorNode = this.lastAnchorOffset = this.lastFocusNode = this.lastFocusOffset = null;\n this.polling = new Delayed();\n this.composing = null;\n this.gracePeriod = false;\n this.readDOMTimeout = null;\n };\n\n ContentEditableInput.prototype.init = function (display) {\n var this$1 = this;\n\n var input = this, cm = input.cm;\n var div = input.div = display.lineDiv;\n div.contentEditable = true;\n disableBrowserMagic(div, cm.options.spellcheck, cm.options.autocorrect, cm.options.autocapitalize);\n\n function belongsToInput(e) {\n for (var t = e.target; t; t = t.parentNode) {\n if (t == div) { return true }\n if (/\\bCodeMirror-(?:line)?widget\\b/.test(t.className)) { break }\n }\n return false\n }\n\n on(div, \"paste\", function (e) {\n if (!belongsToInput(e) || signalDOMEvent(cm, e) || handlePaste(e, cm)) { return }\n // IE doesn't fire input events, so we schedule a read for the pasted content in this way\n if (ie_version <= 11) { setTimeout(operation(cm, function () { return this$1.updateFromDOM(); }), 20); }\n });\n\n on(div, \"compositionstart\", function (e) {\n this$1.composing = {data: e.data, done: false};\n });\n on(div, \"compositionupdate\", function (e) {\n if (!this$1.composing) { this$1.composing = {data: e.data, done: false}; }\n });\n on(div, \"compositionend\", function (e) {\n if (this$1.composing) {\n if (e.data != this$1.composing.data) { this$1.readFromDOMSoon(); }\n this$1.composing.done = true;\n }\n });\n\n on(div, \"touchstart\", function () { return input.forceCompositionEnd(); });\n\n on(div, \"input\", function () {\n if (!this$1.composing) { this$1.readFromDOMSoon(); }\n });\n\n function onCopyCut(e) {\n if (!belongsToInput(e) || signalDOMEvent(cm, e)) { return }\n if (cm.somethingSelected()) {\n setLastCopied({lineWise: false, text: cm.getSelections()});\n if (e.type == \"cut\") { cm.replaceSelection(\"\", null, \"cut\"); }\n } else if (!cm.options.lineWiseCopyCut) {\n return\n } else {\n var ranges = copyableRanges(cm);\n setLastCopied({lineWise: true, text: ranges.text});\n if (e.type == \"cut\") {\n cm.operation(function () {\n cm.setSelections(ranges.ranges, 0, sel_dontScroll);\n cm.replaceSelection(\"\", null, \"cut\");\n });\n }\n }\n if (e.clipboardData) {\n e.clipboardData.clearData();\n var content = lastCopied.text.join(\"\\n\");\n // iOS exposes the clipboard API, but seems to discard content inserted into it\n e.clipboardData.setData(\"Text\", content);\n if (e.clipboardData.getData(\"Text\") == content) {\n e.preventDefault();\n return\n }\n }\n // Old-fashioned briefly-focus-a-textarea hack\n var kludge = hiddenTextarea(), te = kludge.firstChild;\n cm.display.lineSpace.insertBefore(kludge, cm.display.lineSpace.firstChild);\n te.value = lastCopied.text.join(\"\\n\");\n var hadFocus = activeElt();\n selectInput(te);\n setTimeout(function () {\n cm.display.lineSpace.removeChild(kludge);\n hadFocus.focus();\n if (hadFocus == div) { input.showPrimarySelection(); }\n }, 50);\n }\n on(div, \"copy\", onCopyCut);\n on(div, \"cut\", onCopyCut);\n };\n\n ContentEditableInput.prototype.screenReaderLabelChanged = function (label) {\n // Label for screenreaders, accessibility\n if(label) {\n this.div.setAttribute('aria-label', label);\n } else {\n this.div.removeAttribute('aria-label');\n }\n };\n\n ContentEditableInput.prototype.prepareSelection = function () {\n var result = prepareSelection(this.cm, false);\n result.focus = activeElt() == this.div;\n return result\n };\n\n ContentEditableInput.prototype.showSelection = function (info, takeFocus) {\n if (!info || !this.cm.display.view.length) { return }\n if (info.focus || takeFocus) { this.showPrimarySelection(); }\n this.showMultipleSelections(info);\n };\n\n ContentEditableInput.prototype.getSelection = function () {\n return this.cm.display.wrapper.ownerDocument.getSelection()\n };\n\n ContentEditableInput.prototype.showPrimarySelection = function () {\n var sel = this.getSelection(), cm = this.cm, prim = cm.doc.sel.primary();\n var from = prim.from(), to = prim.to();\n\n if (cm.display.viewTo == cm.display.viewFrom || from.line >= cm.display.viewTo || to.line < cm.display.viewFrom) {\n sel.removeAllRanges();\n return\n }\n\n var curAnchor = domToPos(cm, sel.anchorNode, sel.anchorOffset);\n var curFocus = domToPos(cm, sel.focusNode, sel.focusOffset);\n if (curAnchor && !curAnchor.bad && curFocus && !curFocus.bad &&\n cmp(minPos(curAnchor, curFocus), from) == 0 &&\n cmp(maxPos(curAnchor, curFocus), to) == 0)\n { return }\n\n var view = cm.display.view;\n var start = (from.line >= cm.display.viewFrom && posToDOM(cm, from)) ||\n {node: view[0].measure.map[2], offset: 0};\n var end = to.line < cm.display.viewTo && posToDOM(cm, to);\n if (!end) {\n var measure = view[view.length - 1].measure;\n var map = measure.maps ? measure.maps[measure.maps.length - 1] : measure.map;\n end = {node: map[map.length - 1], offset: map[map.length - 2] - map[map.length - 3]};\n }\n\n if (!start || !end) {\n sel.removeAllRanges();\n return\n }\n\n var old = sel.rangeCount && sel.getRangeAt(0), rng;\n try { rng = range(start.node, start.offset, end.offset, end.node); }\n catch(e) {} // Our model of the DOM might be outdated, in which case the range we try to set can be impossible\n if (rng) {\n if (!gecko && cm.state.focused) {\n sel.collapse(start.node, start.offset);\n if (!rng.collapsed) {\n sel.removeAllRanges();\n sel.addRange(rng);\n }\n } else {\n sel.removeAllRanges();\n sel.addRange(rng);\n }\n if (old && sel.anchorNode == null) { sel.addRange(old); }\n else if (gecko) { this.startGracePeriod(); }\n }\n this.rememberSelection();\n };\n\n ContentEditableInput.prototype.startGracePeriod = function () {\n var this$1 = this;\n\n clearTimeout(this.gracePeriod);\n this.gracePeriod = setTimeout(function () {\n this$1.gracePeriod = false;\n if (this$1.selectionChanged())\n { this$1.cm.operation(function () { return this$1.cm.curOp.selectionChanged = true; }); }\n }, 20);\n };\n\n ContentEditableInput.prototype.showMultipleSelections = function (info) {\n removeChildrenAndAdd(this.cm.display.cursorDiv, info.cursors);\n removeChildrenAndAdd(this.cm.display.selectionDiv, info.selection);\n };\n\n ContentEditableInput.prototype.rememberSelection = function () {\n var sel = this.getSelection();\n this.lastAnchorNode = sel.anchorNode; this.lastAnchorOffset = sel.anchorOffset;\n this.lastFocusNode = sel.focusNode; this.lastFocusOffset = sel.focusOffset;\n };\n\n ContentEditableInput.prototype.selectionInEditor = function () {\n var sel = this.getSelection();\n if (!sel.rangeCount) { return false }\n var node = sel.getRangeAt(0).commonAncestorContainer;\n return contains(this.div, node)\n };\n\n ContentEditableInput.prototype.focus = function () {\n if (this.cm.options.readOnly != \"nocursor\") {\n if (!this.selectionInEditor() || activeElt() != this.div)\n { this.showSelection(this.prepareSelection(), true); }\n this.div.focus();\n }\n };\n ContentEditableInput.prototype.blur = function () { this.div.blur(); };\n ContentEditableInput.prototype.getField = function () { return this.div };\n\n ContentEditableInput.prototype.supportsTouch = function () { return true };\n\n ContentEditableInput.prototype.receivedFocus = function () {\n var input = this;\n if (this.selectionInEditor())\n { this.pollSelection(); }\n else\n { runInOp(this.cm, function () { return input.cm.curOp.selectionChanged = true; }); }\n\n function poll() {\n if (input.cm.state.focused) {\n input.pollSelection();\n input.polling.set(input.cm.options.pollInterval, poll);\n }\n }\n this.polling.set(this.cm.options.pollInterval, poll);\n };\n\n ContentEditableInput.prototype.selectionChanged = function () {\n var sel = this.getSelection();\n return sel.anchorNode != this.lastAnchorNode || sel.anchorOffset != this.lastAnchorOffset ||\n sel.focusNode != this.lastFocusNode || sel.focusOffset != this.lastFocusOffset\n };\n\n ContentEditableInput.prototype.pollSelection = function () {\n if (this.readDOMTimeout != null || this.gracePeriod || !this.selectionChanged()) { return }\n var sel = this.getSelection(), cm = this.cm;\n // On Android Chrome (version 56, at least), backspacing into an\n // uneditable block element will put the cursor in that element,\n // and then, because it's not editable, hide the virtual keyboard.\n // Because Android doesn't allow us to actually detect backspace\n // presses in a sane way, this code checks for when that happens\n // and simulates a backspace press in this case.\n if (android && chrome && this.cm.display.gutterSpecs.length && isInGutter(sel.anchorNode)) {\n this.cm.triggerOnKeyDown({type: \"keydown\", keyCode: 8, preventDefault: Math.abs});\n this.blur();\n this.focus();\n return\n }\n if (this.composing) { return }\n this.rememberSelection();\n var anchor = domToPos(cm, sel.anchorNode, sel.anchorOffset);\n var head = domToPos(cm, sel.focusNode, sel.focusOffset);\n if (anchor && head) { runInOp(cm, function () {\n setSelection(cm.doc, simpleSelection(anchor, head), sel_dontScroll);\n if (anchor.bad || head.bad) { cm.curOp.selectionChanged = true; }\n }); }\n };\n\n ContentEditableInput.prototype.pollContent = function () {\n if (this.readDOMTimeout != null) {\n clearTimeout(this.readDOMTimeout);\n this.readDOMTimeout = null;\n }\n\n var cm = this.cm, display = cm.display, sel = cm.doc.sel.primary();\n var from = sel.from(), to = sel.to();\n if (from.ch == 0 && from.line > cm.firstLine())\n { from = Pos(from.line - 1, getLine(cm.doc, from.line - 1).length); }\n if (to.ch == getLine(cm.doc, to.line).text.length && to.line < cm.lastLine())\n { to = Pos(to.line + 1, 0); }\n if (from.line < display.viewFrom || to.line > display.viewTo - 1) { return false }\n\n var fromIndex, fromLine, fromNode;\n if (from.line == display.viewFrom || (fromIndex = findViewIndex(cm, from.line)) == 0) {\n fromLine = lineNo(display.view[0].line);\n fromNode = display.view[0].node;\n } else {\n fromLine = lineNo(display.view[fromIndex].line);\n fromNode = display.view[fromIndex - 1].node.nextSibling;\n }\n var toIndex = findViewIndex(cm, to.line);\n var toLine, toNode;\n if (toIndex == display.view.length - 1) {\n toLine = display.viewTo - 1;\n toNode = display.lineDiv.lastChild;\n } else {\n toLine = lineNo(display.view[toIndex + 1].line) - 1;\n toNode = display.view[toIndex + 1].node.previousSibling;\n }\n\n if (!fromNode) { return false }\n var newText = cm.doc.splitLines(domTextBetween(cm, fromNode, toNode, fromLine, toLine));\n var oldText = getBetween(cm.doc, Pos(fromLine, 0), Pos(toLine, getLine(cm.doc, toLine).text.length));\n while (newText.length > 1 && oldText.length > 1) {\n if (lst(newText) == lst(oldText)) { newText.pop(); oldText.pop(); toLine--; }\n else if (newText[0] == oldText[0]) { newText.shift(); oldText.shift(); fromLine++; }\n else { break }\n }\n\n var cutFront = 0, cutEnd = 0;\n var newTop = newText[0], oldTop = oldText[0], maxCutFront = Math.min(newTop.length, oldTop.length);\n while (cutFront < maxCutFront && newTop.charCodeAt(cutFront) == oldTop.charCodeAt(cutFront))\n { ++cutFront; }\n var newBot = lst(newText), oldBot = lst(oldText);\n var maxCutEnd = Math.min(newBot.length - (newText.length == 1 ? cutFront : 0),\n oldBot.length - (oldText.length == 1 ? cutFront : 0));\n while (cutEnd < maxCutEnd &&\n newBot.charCodeAt(newBot.length - cutEnd - 1) == oldBot.charCodeAt(oldBot.length - cutEnd - 1))\n { ++cutEnd; }\n // Try to move start of change to start of selection if ambiguous\n if (newText.length == 1 && oldText.length == 1 && fromLine == from.line) {\n while (cutFront && cutFront > from.ch &&\n newBot.charCodeAt(newBot.length - cutEnd - 1) == oldBot.charCodeAt(oldBot.length - cutEnd - 1)) {\n cutFront--;\n cutEnd++;\n }\n }\n\n newText[newText.length - 1] = newBot.slice(0, newBot.length - cutEnd).replace(/^\\u200b+/, \"\");\n newText[0] = newText[0].slice(cutFront).replace(/\\u200b+$/, \"\");\n\n var chFrom = Pos(fromLine, cutFront);\n var chTo = Pos(toLine, oldText.length ? lst(oldText).length - cutEnd : 0);\n if (newText.length > 1 || newText[0] || cmp(chFrom, chTo)) {\n replaceRange(cm.doc, newText, chFrom, chTo, \"+input\");\n return true\n }\n };\n\n ContentEditableInput.prototype.ensurePolled = function () {\n this.forceCompositionEnd();\n };\n ContentEditableInput.prototype.reset = function () {\n this.forceCompositionEnd();\n };\n ContentEditableInput.prototype.forceCompositionEnd = function () {\n if (!this.composing) { return }\n clearTimeout(this.readDOMTimeout);\n this.composing = null;\n this.updateFromDOM();\n this.div.blur();\n this.div.focus();\n };\n ContentEditableInput.prototype.readFromDOMSoon = function () {\n var this$1 = this;\n\n if (this.readDOMTimeout != null) { return }\n this.readDOMTimeout = setTimeout(function () {\n this$1.readDOMTimeout = null;\n if (this$1.composing) {\n if (this$1.composing.done) { this$1.composing = null; }\n else { return }\n }\n this$1.updateFromDOM();\n }, 80);\n };\n\n ContentEditableInput.prototype.updateFromDOM = function () {\n var this$1 = this;\n\n if (this.cm.isReadOnly() || !this.pollContent())\n { runInOp(this.cm, function () { return regChange(this$1.cm); }); }\n };\n\n ContentEditableInput.prototype.setUneditable = function (node) {\n node.contentEditable = \"false\";\n };\n\n ContentEditableInput.prototype.onKeyPress = function (e) {\n if (e.charCode == 0 || this.composing) { return }\n e.preventDefault();\n if (!this.cm.isReadOnly())\n { operation(this.cm, applyTextInput)(this.cm, String.fromCharCode(e.charCode == null ? e.keyCode : e.charCode), 0); }\n };\n\n ContentEditableInput.prototype.readOnlyChanged = function (val) {\n this.div.contentEditable = String(val != \"nocursor\");\n };\n\n ContentEditableInput.prototype.onContextMenu = function () {};\n ContentEditableInput.prototype.resetPosition = function () {};\n\n ContentEditableInput.prototype.needsContentAttribute = true;\n\n function posToDOM(cm, pos) {\n var view = findViewForLine(cm, pos.line);\n if (!view || view.hidden) { return null }\n var line = getLine(cm.doc, pos.line);\n var info = mapFromLineView(view, line, pos.line);\n\n var order = getOrder(line, cm.doc.direction), side = \"left\";\n if (order) {\n var partPos = getBidiPartAt(order, pos.ch);\n side = partPos % 2 ? \"right\" : \"left\";\n }\n var result = nodeAndOffsetInLineMap(info.map, pos.ch, side);\n result.offset = result.collapse == \"right\" ? result.end : result.start;\n return result\n }\n\n function isInGutter(node) {\n for (var scan = node; scan; scan = scan.parentNode)\n { if (/CodeMirror-gutter-wrapper/.test(scan.className)) { return true } }\n return false\n }\n\n function badPos(pos, bad) { if (bad) { pos.bad = true; } return pos }\n\n function domTextBetween(cm, from, to, fromLine, toLine) {\n var text = \"\", closing = false, lineSep = cm.doc.lineSeparator(), extraLinebreak = false;\n function recognizeMarker(id) { return function (marker) { return marker.id == id; } }\n function close() {\n if (closing) {\n text += lineSep;\n if (extraLinebreak) { text += lineSep; }\n closing = extraLinebreak = false;\n }\n }\n function addText(str) {\n if (str) {\n close();\n text += str;\n }\n }\n function walk(node) {\n if (node.nodeType == 1) {\n var cmText = node.getAttribute(\"cm-text\");\n if (cmText) {\n addText(cmText);\n return\n }\n var markerID = node.getAttribute(\"cm-marker\"), range;\n if (markerID) {\n var found = cm.findMarks(Pos(fromLine, 0), Pos(toLine + 1, 0), recognizeMarker(+markerID));\n if (found.length && (range = found[0].find(0)))\n { addText(getBetween(cm.doc, range.from, range.to).join(lineSep)); }\n return\n }\n if (node.getAttribute(\"contenteditable\") == \"false\") { return }\n var isBlock = /^(pre|div|p|li|table|br)$/i.test(node.nodeName);\n if (!/^br$/i.test(node.nodeName) && node.textContent.length == 0) { return }\n\n if (isBlock) { close(); }\n for (var i = 0; i < node.childNodes.length; i++)\n { walk(node.childNodes[i]); }\n\n if (/^(pre|p)$/i.test(node.nodeName)) { extraLinebreak = true; }\n if (isBlock) { closing = true; }\n } else if (node.nodeType == 3) {\n addText(node.nodeValue.replace(/\\u200b/g, \"\").replace(/\\u00a0/g, \" \"));\n }\n }\n for (;;) {\n walk(from);\n if (from == to) { break }\n from = from.nextSibling;\n extraLinebreak = false;\n }\n return text\n }\n\n function domToPos(cm, node, offset) {\n var lineNode;\n if (node == cm.display.lineDiv) {\n lineNode = cm.display.lineDiv.childNodes[offset];\n if (!lineNode) { return badPos(cm.clipPos(Pos(cm.display.viewTo - 1)), true) }\n node = null; offset = 0;\n } else {\n for (lineNode = node;; lineNode = lineNode.parentNode) {\n if (!lineNode || lineNode == cm.display.lineDiv) { return null }\n if (lineNode.parentNode && lineNode.parentNode == cm.display.lineDiv) { break }\n }\n }\n for (var i = 0; i < cm.display.view.length; i++) {\n var lineView = cm.display.view[i];\n if (lineView.node == lineNode)\n { return locateNodeInLineView(lineView, node, offset) }\n }\n }\n\n function locateNodeInLineView(lineView, node, offset) {\n var wrapper = lineView.text.firstChild, bad = false;\n if (!node || !contains(wrapper, node)) { return badPos(Pos(lineNo(lineView.line), 0), true) }\n if (node == wrapper) {\n bad = true;\n node = wrapper.childNodes[offset];\n offset = 0;\n if (!node) {\n var line = lineView.rest ? lst(lineView.rest) : lineView.line;\n return badPos(Pos(lineNo(line), line.text.length), bad)\n }\n }\n\n var textNode = node.nodeType == 3 ? node : null, topNode = node;\n if (!textNode && node.childNodes.length == 1 && node.firstChild.nodeType == 3) {\n textNode = node.firstChild;\n if (offset) { offset = textNode.nodeValue.length; }\n }\n while (topNode.parentNode != wrapper) { topNode = topNode.parentNode; }\n var measure = lineView.measure, maps = measure.maps;\n\n function find(textNode, topNode, offset) {\n for (var i = -1; i < (maps ? maps.length : 0); i++) {\n var map = i < 0 ? measure.map : maps[i];\n for (var j = 0; j < map.length; j += 3) {\n var curNode = map[j + 2];\n if (curNode == textNode || curNode == topNode) {\n var line = lineNo(i < 0 ? lineView.line : lineView.rest[i]);\n var ch = map[j] + offset;\n if (offset < 0 || curNode != textNode) { ch = map[j + (offset ? 1 : 0)]; }\n return Pos(line, ch)\n }\n }\n }\n }\n var found = find(textNode, topNode, offset);\n if (found) { return badPos(found, bad) }\n\n // FIXME this is all really shaky. might handle the few cases it needs to handle, but likely to cause problems\n for (var after = topNode.nextSibling, dist = textNode ? textNode.nodeValue.length - offset : 0; after; after = after.nextSibling) {\n found = find(after, after.firstChild, 0);\n if (found)\n { return badPos(Pos(found.line, found.ch - dist), bad) }\n else\n { dist += after.textContent.length; }\n }\n for (var before = topNode.previousSibling, dist$1 = offset; before; before = before.previousSibling) {\n found = find(before, before.firstChild, -1);\n if (found)\n { return badPos(Pos(found.line, found.ch + dist$1), bad) }\n else\n { dist$1 += before.textContent.length; }\n }\n }\n\n // TEXTAREA INPUT STYLE\n\n var TextareaInput = function(cm) {\n this.cm = cm;\n // See input.poll and input.reset\n this.prevInput = \"\";\n\n // Flag that indicates whether we expect input to appear real soon\n // now (after some event like 'keypress' or 'input') and are\n // polling intensively.\n this.pollingFast = false;\n // Self-resetting timeout for the poller\n this.polling = new Delayed();\n // Used to work around IE issue with selection being forgotten when focus moves away from textarea\n this.hasSelection = false;\n this.composing = null;\n };\n\n TextareaInput.prototype.init = function (display) {\n var this$1 = this;\n\n var input = this, cm = this.cm;\n this.createField(display);\n var te = this.textarea;\n\n display.wrapper.insertBefore(this.wrapper, display.wrapper.firstChild);\n\n // Needed to hide big blue blinking cursor on Mobile Safari (doesn't seem to work in iOS 8 anymore)\n if (ios) { te.style.width = \"0px\"; }\n\n on(te, \"input\", function () {\n if (ie && ie_version >= 9 && this$1.hasSelection) { this$1.hasSelection = null; }\n input.poll();\n });\n\n on(te, \"paste\", function (e) {\n if (signalDOMEvent(cm, e) || handlePaste(e, cm)) { return }\n\n cm.state.pasteIncoming = +new Date;\n input.fastPoll();\n });\n\n function prepareCopyCut(e) {\n if (signalDOMEvent(cm, e)) { return }\n if (cm.somethingSelected()) {\n setLastCopied({lineWise: false, text: cm.getSelections()});\n } else if (!cm.options.lineWiseCopyCut) {\n return\n } else {\n var ranges = copyableRanges(cm);\n setLastCopied({lineWise: true, text: ranges.text});\n if (e.type == \"cut\") {\n cm.setSelections(ranges.ranges, null, sel_dontScroll);\n } else {\n input.prevInput = \"\";\n te.value = ranges.text.join(\"\\n\");\n selectInput(te);\n }\n }\n if (e.type == \"cut\") { cm.state.cutIncoming = +new Date; }\n }\n on(te, \"cut\", prepareCopyCut);\n on(te, \"copy\", prepareCopyCut);\n\n on(display.scroller, \"paste\", function (e) {\n if (eventInWidget(display, e) || signalDOMEvent(cm, e)) { return }\n if (!te.dispatchEvent) {\n cm.state.pasteIncoming = +new Date;\n input.focus();\n return\n }\n\n // Pass the `paste` event to the textarea so it's handled by its event listener.\n var event = new Event(\"paste\");\n event.clipboardData = e.clipboardData;\n te.dispatchEvent(event);\n });\n\n // Prevent normal selection in the editor (we handle our own)\n on(display.lineSpace, \"selectstart\", function (e) {\n if (!eventInWidget(display, e)) { e_preventDefault(e); }\n });\n\n on(te, \"compositionstart\", function () {\n var start = cm.getCursor(\"from\");\n if (input.composing) { input.composing.range.clear(); }\n input.composing = {\n start: start,\n range: cm.markText(start, cm.getCursor(\"to\"), {className: \"CodeMirror-composing\"})\n };\n });\n on(te, \"compositionend\", function () {\n if (input.composing) {\n input.poll();\n input.composing.range.clear();\n input.composing = null;\n }\n });\n };\n\n TextareaInput.prototype.createField = function (_display) {\n // Wraps and hides input textarea\n this.wrapper = hiddenTextarea();\n // The semihidden textarea that is focused when the editor is\n // focused, and receives input.\n this.textarea = this.wrapper.firstChild;\n };\n\n TextareaInput.prototype.screenReaderLabelChanged = function (label) {\n // Label for screenreaders, accessibility\n if(label) {\n this.textarea.setAttribute('aria-label', label);\n } else {\n this.textarea.removeAttribute('aria-label');\n }\n };\n\n TextareaInput.prototype.prepareSelection = function () {\n // Redraw the selection and/or cursor\n var cm = this.cm, display = cm.display, doc = cm.doc;\n var result = prepareSelection(cm);\n\n // Move the hidden textarea near the cursor to prevent scrolling artifacts\n if (cm.options.moveInputWithCursor) {\n var headPos = cursorCoords(cm, doc.sel.primary().head, \"div\");\n var wrapOff = display.wrapper.getBoundingClientRect(), lineOff = display.lineDiv.getBoundingClientRect();\n result.teTop = Math.max(0, Math.min(display.wrapper.clientHeight - 10,\n headPos.top + lineOff.top - wrapOff.top));\n result.teLeft = Math.max(0, Math.min(display.wrapper.clientWidth - 10,\n headPos.left + lineOff.left - wrapOff.left));\n }\n\n return result\n };\n\n TextareaInput.prototype.showSelection = function (drawn) {\n var cm = this.cm, display = cm.display;\n removeChildrenAndAdd(display.cursorDiv, drawn.cursors);\n removeChildrenAndAdd(display.selectionDiv, drawn.selection);\n if (drawn.teTop != null) {\n this.wrapper.style.top = drawn.teTop + \"px\";\n this.wrapper.style.left = drawn.teLeft + \"px\";\n }\n };\n\n // Reset the input to correspond to the selection (or to be empty,\n // when not typing and nothing is selected)\n TextareaInput.prototype.reset = function (typing) {\n if (this.contextMenuPending || this.composing) { return }\n var cm = this.cm;\n if (cm.somethingSelected()) {\n this.prevInput = \"\";\n var content = cm.getSelection();\n this.textarea.value = content;\n if (cm.state.focused) { selectInput(this.textarea); }\n if (ie && ie_version >= 9) { this.hasSelection = content; }\n } else if (!typing) {\n this.prevInput = this.textarea.value = \"\";\n if (ie && ie_version >= 9) { this.hasSelection = null; }\n }\n };\n\n TextareaInput.prototype.getField = function () { return this.textarea };\n\n TextareaInput.prototype.supportsTouch = function () { return false };\n\n TextareaInput.prototype.focus = function () {\n if (this.cm.options.readOnly != \"nocursor\" && (!mobile || activeElt() != this.textarea)) {\n try { this.textarea.focus(); }\n catch (e) {} // IE8 will throw if the textarea is display: none or not in DOM\n }\n };\n\n TextareaInput.prototype.blur = function () { this.textarea.blur(); };\n\n TextareaInput.prototype.resetPosition = function () {\n this.wrapper.style.top = this.wrapper.style.left = 0;\n };\n\n TextareaInput.prototype.receivedFocus = function () { this.slowPoll(); };\n\n // Poll for input changes, using the normal rate of polling. This\n // runs as long as the editor is focused.\n TextareaInput.prototype.slowPoll = function () {\n var this$1 = this;\n\n if (this.pollingFast) { return }\n this.polling.set(this.cm.options.pollInterval, function () {\n this$1.poll();\n if (this$1.cm.state.focused) { this$1.slowPoll(); }\n });\n };\n\n // When an event has just come in that is likely to add or change\n // something in the input textarea, we poll faster, to ensure that\n // the change appears on the screen quickly.\n TextareaInput.prototype.fastPoll = function () {\n var missed = false, input = this;\n input.pollingFast = true;\n function p() {\n var changed = input.poll();\n if (!changed && !missed) {missed = true; input.polling.set(60, p);}\n else {input.pollingFast = false; input.slowPoll();}\n }\n input.polling.set(20, p);\n };\n\n // Read input from the textarea, and update the document to match.\n // When something is selected, it is present in the textarea, and\n // selected (unless it is huge, in which case a placeholder is\n // used). When nothing is selected, the cursor sits after previously\n // seen text (can be empty), which is stored in prevInput (we must\n // not reset the textarea when typing, because that breaks IME).\n TextareaInput.prototype.poll = function () {\n var this$1 = this;\n\n var cm = this.cm, input = this.textarea, prevInput = this.prevInput;\n // Since this is called a *lot*, try to bail out as cheaply as\n // possible when it is clear that nothing happened. hasSelection\n // will be the case when there is a lot of text in the textarea,\n // in which case reading its value would be expensive.\n if (this.contextMenuPending || !cm.state.focused ||\n (hasSelection(input) && !prevInput && !this.composing) ||\n cm.isReadOnly() || cm.options.disableInput || cm.state.keySeq)\n { return false }\n\n var text = input.value;\n // If nothing changed, bail.\n if (text == prevInput && !cm.somethingSelected()) { return false }\n // Work around nonsensical selection resetting in IE9/10, and\n // inexplicable appearance of private area unicode characters on\n // some key combos in Mac (#2689).\n if (ie && ie_version >= 9 && this.hasSelection === text ||\n mac && /[\\uf700-\\uf7ff]/.test(text)) {\n cm.display.input.reset();\n return false\n }\n\n if (cm.doc.sel == cm.display.selForContextMenu) {\n var first = text.charCodeAt(0);\n if (first == 0x200b && !prevInput) { prevInput = \"\\u200b\"; }\n if (first == 0x21da) { this.reset(); return this.cm.execCommand(\"undo\") }\n }\n // Find the part of the input that is actually new\n var same = 0, l = Math.min(prevInput.length, text.length);\n while (same < l && prevInput.charCodeAt(same) == text.charCodeAt(same)) { ++same; }\n\n runInOp(cm, function () {\n applyTextInput(cm, text.slice(same), prevInput.length - same,\n null, this$1.composing ? \"*compose\" : null);\n\n // Don't leave long text in the textarea, since it makes further polling slow\n if (text.length > 1000 || text.indexOf(\"\\n\") > -1) { input.value = this$1.prevInput = \"\"; }\n else { this$1.prevInput = text; }\n\n if (this$1.composing) {\n this$1.composing.range.clear();\n this$1.composing.range = cm.markText(this$1.composing.start, cm.getCursor(\"to\"),\n {className: \"CodeMirror-composing\"});\n }\n });\n return true\n };\n\n TextareaInput.prototype.ensurePolled = function () {\n if (this.pollingFast && this.poll()) { this.pollingFast = false; }\n };\n\n TextareaInput.prototype.onKeyPress = function () {\n if (ie && ie_version >= 9) { this.hasSelection = null; }\n this.fastPoll();\n };\n\n TextareaInput.prototype.onContextMenu = function (e) {\n var input = this, cm = input.cm, display = cm.display, te = input.textarea;\n if (input.contextMenuPending) { input.contextMenuPending(); }\n var pos = posFromMouse(cm, e), scrollPos = display.scroller.scrollTop;\n if (!pos || presto) { return } // Opera is difficult.\n\n // Reset the current text selection only if the click is done outside of the selection\n // and 'resetSelectionOnContextMenu' option is true.\n var reset = cm.options.resetSelectionOnContextMenu;\n if (reset && cm.doc.sel.contains(pos) == -1)\n { operation(cm, setSelection)(cm.doc, simpleSelection(pos), sel_dontScroll); }\n\n var oldCSS = te.style.cssText, oldWrapperCSS = input.wrapper.style.cssText;\n var wrapperBox = input.wrapper.offsetParent.getBoundingClientRect();\n input.wrapper.style.cssText = \"position: static\";\n te.style.cssText = \"position: absolute; width: 30px; height: 30px;\\n top: \" + (e.clientY - wrapperBox.top - 5) + \"px; left: \" + (e.clientX - wrapperBox.left - 5) + \"px;\\n z-index: 1000; background: \" + (ie ? \"rgba(255, 255, 255, .05)\" : \"transparent\") + \";\\n outline: none; border-width: 0; outline: none; overflow: hidden; opacity: .05; filter: alpha(opacity=5);\";\n var oldScrollY;\n if (webkit) { oldScrollY = window.scrollY; } // Work around Chrome issue (#2712)\n display.input.focus();\n if (webkit) { window.scrollTo(null, oldScrollY); }\n display.input.reset();\n // Adds \"Select all\" to context menu in FF\n if (!cm.somethingSelected()) { te.value = input.prevInput = \" \"; }\n input.contextMenuPending = rehide;\n display.selForContextMenu = cm.doc.sel;\n clearTimeout(display.detectingSelectAll);\n\n // Select-all will be greyed out if there's nothing to select, so\n // this adds a zero-width space so that we can later check whether\n // it got selected.\n function prepareSelectAllHack() {\n if (te.selectionStart != null) {\n var selected = cm.somethingSelected();\n var extval = \"\\u200b\" + (selected ? te.value : \"\");\n te.value = \"\\u21da\"; // Used to catch context-menu undo\n te.value = extval;\n input.prevInput = selected ? \"\" : \"\\u200b\";\n te.selectionStart = 1; te.selectionEnd = extval.length;\n // Re-set this, in case some other handler touched the\n // selection in the meantime.\n display.selForContextMenu = cm.doc.sel;\n }\n }\n function rehide() {\n if (input.contextMenuPending != rehide) { return }\n input.contextMenuPending = false;\n input.wrapper.style.cssText = oldWrapperCSS;\n te.style.cssText = oldCSS;\n if (ie && ie_version < 9) { display.scrollbars.setScrollTop(display.scroller.scrollTop = scrollPos); }\n\n // Try to detect the user choosing select-all\n if (te.selectionStart != null) {\n if (!ie || (ie && ie_version < 9)) { prepareSelectAllHack(); }\n var i = 0, poll = function () {\n if (display.selForContextMenu == cm.doc.sel && te.selectionStart == 0 &&\n te.selectionEnd > 0 && input.prevInput == \"\\u200b\") {\n operation(cm, selectAll)(cm);\n } else if (i++ < 10) {\n display.detectingSelectAll = setTimeout(poll, 500);\n } else {\n display.selForContextMenu = null;\n display.input.reset();\n }\n };\n display.detectingSelectAll = setTimeout(poll, 200);\n }\n }\n\n if (ie && ie_version >= 9) { prepareSelectAllHack(); }\n if (captureRightClick) {\n e_stop(e);\n var mouseup = function () {\n off(window, \"mouseup\", mouseup);\n setTimeout(rehide, 20);\n };\n on(window, \"mouseup\", mouseup);\n } else {\n setTimeout(rehide, 50);\n }\n };\n\n TextareaInput.prototype.readOnlyChanged = function (val) {\n if (!val) { this.reset(); }\n this.textarea.disabled = val == \"nocursor\";\n this.textarea.readOnly = !!val;\n };\n\n TextareaInput.prototype.setUneditable = function () {};\n\n TextareaInput.prototype.needsContentAttribute = false;\n\n function fromTextArea(textarea, options) {\n options = options ? copyObj(options) : {};\n options.value = textarea.value;\n if (!options.tabindex && textarea.tabIndex)\n { options.tabindex = textarea.tabIndex; }\n if (!options.placeholder && textarea.placeholder)\n { options.placeholder = textarea.placeholder; }\n // Set autofocus to true if this textarea is focused, or if it has\n // autofocus and no other element is focused.\n if (options.autofocus == null) {\n var hasFocus = activeElt();\n options.autofocus = hasFocus == textarea ||\n textarea.getAttribute(\"autofocus\") != null && hasFocus == document.body;\n }\n\n function save() {textarea.value = cm.getValue();}\n\n var realSubmit;\n if (textarea.form) {\n on(textarea.form, \"submit\", save);\n // Deplorable hack to make the submit method do the right thing.\n if (!options.leaveSubmitMethodAlone) {\n var form = textarea.form;\n realSubmit = form.submit;\n try {\n var wrappedSubmit = form.submit = function () {\n save();\n form.submit = realSubmit;\n form.submit();\n form.submit = wrappedSubmit;\n };\n } catch(e) {}\n }\n }\n\n options.finishInit = function (cm) {\n cm.save = save;\n cm.getTextArea = function () { return textarea; };\n cm.toTextArea = function () {\n cm.toTextArea = isNaN; // Prevent this from being ran twice\n save();\n textarea.parentNode.removeChild(cm.getWrapperElement());\n textarea.style.display = \"\";\n if (textarea.form) {\n off(textarea.form, \"submit\", save);\n if (!options.leaveSubmitMethodAlone && typeof textarea.form.submit == \"function\")\n { textarea.form.submit = realSubmit; }\n }\n };\n };\n\n textarea.style.display = \"none\";\n var cm = CodeMirror(function (node) { return textarea.parentNode.insertBefore(node, textarea.nextSibling); },\n options);\n return cm\n }\n\n function addLegacyProps(CodeMirror) {\n CodeMirror.off = off;\n CodeMirror.on = on;\n CodeMirror.wheelEventPixels = wheelEventPixels;\n CodeMirror.Doc = Doc;\n CodeMirror.splitLines = splitLinesAuto;\n CodeMirror.countColumn = countColumn;\n CodeMirror.findColumn = findColumn;\n CodeMirror.isWordChar = isWordCharBasic;\n CodeMirror.Pass = Pass;\n CodeMirror.signal = signal;\n CodeMirror.Line = Line;\n CodeMirror.changeEnd = changeEnd;\n CodeMirror.scrollbarModel = scrollbarModel;\n CodeMirror.Pos = Pos;\n CodeMirror.cmpPos = cmp;\n CodeMirror.modes = modes;\n CodeMirror.mimeModes = mimeModes;\n CodeMirror.resolveMode = resolveMode;\n CodeMirror.getMode = getMode;\n CodeMirror.modeExtensions = modeExtensions;\n CodeMirror.extendMode = extendMode;\n CodeMirror.copyState = copyState;\n CodeMirror.startState = startState;\n CodeMirror.innerMode = innerMode;\n CodeMirror.commands = commands;\n CodeMirror.keyMap = keyMap;\n CodeMirror.keyName = keyName;\n CodeMirror.isModifierKey = isModifierKey;\n CodeMirror.lookupKey = lookupKey;\n CodeMirror.normalizeKeyMap = normalizeKeyMap;\n CodeMirror.StringStream = StringStream;\n CodeMirror.SharedTextMarker = SharedTextMarker;\n CodeMirror.TextMarker = TextMarker;\n CodeMirror.LineWidget = LineWidget;\n CodeMirror.e_preventDefault = e_preventDefault;\n CodeMirror.e_stopPropagation = e_stopPropagation;\n CodeMirror.e_stop = e_stop;\n CodeMirror.addClass = addClass;\n CodeMirror.contains = contains;\n CodeMirror.rmClass = rmClass;\n CodeMirror.keyNames = keyNames;\n }\n\n // EDITOR CONSTRUCTOR\n\n defineOptions(CodeMirror);\n\n addEditorMethods(CodeMirror);\n\n // Set up methods on CodeMirror's prototype to redirect to the editor's document.\n var dontDelegate = \"iter insert remove copy getEditor constructor\".split(\" \");\n for (var prop in Doc.prototype) { if (Doc.prototype.hasOwnProperty(prop) && indexOf(dontDelegate, prop) < 0)\n { CodeMirror.prototype[prop] = (function(method) {\n return function() {return method.apply(this.doc, arguments)}\n })(Doc.prototype[prop]); } }\n\n eventMixin(Doc);\n CodeMirror.inputStyles = {\"textarea\": TextareaInput, \"contenteditable\": ContentEditableInput};\n\n // Extra arguments are stored as the mode's dependencies, which is\n // used by (legacy) mechanisms like loadmode.js to automatically\n // load a mode. (Preferred mechanism is the require/define calls.)\n CodeMirror.defineMode = function(name/*, mode, …*/) {\n if (!CodeMirror.defaults.mode && name != \"null\") { CodeMirror.defaults.mode = name; }\n defineMode.apply(this, arguments);\n };\n\n CodeMirror.defineMIME = defineMIME;\n\n // Minimal default mode.\n CodeMirror.defineMode(\"null\", function () { return ({token: function (stream) { return stream.skipToEnd(); }}); });\n CodeMirror.defineMIME(\"text/plain\", \"null\");\n\n // EXTENSIONS\n\n CodeMirror.defineExtension = function (name, func) {\n CodeMirror.prototype[name] = func;\n };\n CodeMirror.defineDocExtension = function (name, func) {\n Doc.prototype[name] = func;\n };\n\n CodeMirror.fromTextArea = fromTextArea;\n\n addLegacyProps(CodeMirror);\n\n CodeMirror.version = \"5.61.1\";\n\n return CodeMirror;\n\n})));\n"],"names":["module","exports","userAgent","navigator","platform","gecko","test","ie_upto10","ie_11up","exec","edge","ie","ie_version","document","documentMode","webkit","qtwebkit","chrome","presto","safari","vendor","mac_geMountainLion","phantom","ios","maxTouchPoints","android","mobile","mac","chromeOS","windows","presto_version","match","Number","flipCtrlCmd","captureRightClick","classTest","cls","RegExp","range","rmClass","node","current","className","after","slice","index","length","removeChildren","e","count","childNodes","removeChild","firstChild","removeChildrenAndAdd","parent","appendChild","elt","tag","content","style","createElement","cssText","createTextNode","i","eltP","setAttribute","contains","child","nodeType","parentNode","host","activeElt","activeElement","body","shadowRoot","addClass","joinClasses","a","b","as","split","createRange","start","end","endNode","r","setEnd","setStart","createTextRange","moveToElementText","collapse","moveEnd","moveStart","selectInput","select","bind","f","args","Array","prototype","call","arguments","apply","copyObj","obj","target","overwrite","prop","hasOwnProperty","countColumn","string","tabSize","startIndex","startValue","search","n","nextTab","indexOf","selectionStart","selectionEnd","value","_e","Delayed","this","id","time","handler","onTimeout","array","self","Date","setTimeout","set","ms","clearTimeout","Pass","toString","sel_dontScroll","scroll","sel_mouse","origin","sel_move","findColumn","goal","pos","col","skipped","Math","min","spaceStrs","spaceStr","push","lst","arr","map","out","nothing","createObj","base","props","inst","Object","create","nonASCIISingleCaseWordChar","isWordCharBasic","ch","toUpperCase","toLowerCase","isWordChar","helper","source","isEmpty","extendingChars","isExtendingChar","charCodeAt","skipExtendingChars","str","dir","charAt","findFirst","pred","from","to","midF","mid","ceil","floor","bidiOther","getBidiPartAt","order","sticky","found","cur","bidiOrdering","bidiRE","isNeutral","isStrong","countsAsLeft","countsAsNum","BidiSpan","level","direction","code","outerType","len","types","i$1","prev","type","i$2","type$1","i$3","prev$1","type$2","i$4","type$3","replace","j","i$5","cur$1","type$4","i$6","end$1","before","replace$1","j$1","m","i$7","at","isRTL","j$2","splice","nstart","unshift","reverse","getOrder","line","text","noHandlers","on","emitter","addEventListener","attachEvent","_handlers","concat","getHandlers","off","removeEventListener","detachEvent","signal","handlers","signalDOMEvent","cm","override","preventDefault","defaultPrevented","e_defaultPrevented","codemirrorIgnore","signalCursorActivity","cursorActivity","curOp","cursorActivityHandlers","hasHandler","eventMixin","ctor","e_preventDefault","returnValue","e_stopPropagation","stopPropagation","cancelBubble","e_stop","e_target","srcElement","e_button","which","button","ctrlKey","zwspSupported","badBidiRects","dragAndDrop","div","zeroWidthElement","measure","offsetHeight","offsetWidth","hasBadBidiRects","txt","r0","getBoundingClientRect","r1","left","right","splitLinesAuto","result","l","nl","rt","hasSelection","window","getSelection","te","ownerDocument","selection","parentElement","compareEndPoints","hasCopyEvent","oncopy","badZoomedRects","modes","mimeModes","defineMode","name","mode","dependencies","resolveMode","spec","getMode","options","mfactory","modeObj","modeExtensions","exts","helperType","modeProps","prop$1","extendMode","properties","copyState","state","nstate","val","innerMode","info","startState","a1","a2","StringStream","lineOracle","lastColumnPos","lastColumnValue","lineStart","getLine","doc","first","size","Error","chunk","lines","children","sz","chunkSize","getBetween","iter","getLines","updateLineHeight","height","diff","lineNo","no","lineAtHeight","h","outer","lh","isLine","lineNumberFor","String","lineNumberFormatter","firstLineNumber","Pos","cmp","equalCursorPos","copyPos","x","maxPos","minPos","clipLine","max","clipPos","last","linelen","clipToLen","clipPosArray","eol","sol","peek","undefined","next","eat","eatWhile","eatSpace","skipToEnd","skipTo","backUp","column","indentation","pattern","consume","caseInsensitive","cased","substr","hideFirstChars","inner","lookAhead","oracle","baseToken","SavedContext","Context","maxLookAhead","baseTokens","baseTokenPos","highlightLine","context","forceToEnd","st","modeGen","lineClasses","runMode","loop","o","overlay","overlays","i_end","opaque","styles","classes","bgClass","textClass","getLineStyles","updateFrontier","getContextBefore","resetState","maxHighlightLength","stateAfter","save","styleClasses","highlightFrontier","modeFrontier","precise","display","minindent","minline","lim","indented","findStartLine","saved","fromSaved","processLine","viewFrom","viewTo","nextLine","startAt","stream","callBlankLine","readToken","blankLine","token","copy","Token","takeToken","asArray","tokens","extractLineClasses","output","lineClass","flattenSpans","curStart","curStyle","addModeClass","mName","sawReadOnlySpans","sawCollapsedSpans","MarkedSpan","marker","getMarkedSpanFor","spans","span","removeMarkedSpan","stretchSpansOverChange","change","full","oldFirst","markedSpans","oldLast","startCh","endCh","isInsert","old","nw","inclusiveLeft","insertLeft","endsAfter","inclusiveRight","markedSpansBefore","startsBefore","markedSpansAfter","sameLine","offset","span$1","clearEmptySpans","newMarkers","gapMarkers","gap","clearWhenEmpty","detachMarkedSpans","detachLine","attachMarkedSpans","attachLine","extraLeft","extraRight","compareCollapsedMarkers","lenDiff","aPos","find","bPos","fromCmp","collapsedSpanAtSide","sps","sp","collapsed","collapsedSpanAtStart","collapsedSpanAtEnd","collapsedSpanAround","conflictingCollapsedRange","toCmp","visualLine","merged","visualLineNo","lineN","vis","visualLineEndNo","lastLine","lineIsHidden","widgetNode","lineIsHiddenInner","heightAtLine","lineObj","p","lineLength","found$1","findMaxLine","d","maxLine","maxLineLength","maxLineChanged","Line","estimateHeight","cleanUpLine","styleToClassCache","styleToClassCacheWithMode","interpretTokenStyle","cache","buildLineContent","lineView","builder","pre","trailingSpace","splitSpaces","getOption","rest","addToken","buildToken","buildTokenBadBidi","insertLineContent","externalMeasured","maps","caches","lastChild","querySelector","defaultSpecialCharPlaceholder","title","startStyle","endStyle","css","attributes","displayText","trailingBefore","spaceBefore","special","specialChars","mustWrap","createDocumentFragment","lastIndex","txt$1","tabWidth","specialCharPlaceholder","fullStyle","attr","part","buildCollapsedSpan","ignoreWidget","widget","input","needsContentAttribute","setUneditable","allText","spanStyle","spanEndStyle","spanStartStyle","nextChange","Infinity","foundBookmarks","endStyles","upto","tokenText","LineView","visualLineContinued","hidden","buildViewArray","nextPos","view","operationGroup","orphanDelayedCallbacks","signalLater","list","delayedCallbacks","fireOrphanDelayed","delayed","updateLineForChanges","dims","changes","updateLineText","updateLineGutter","updateLineClasses","updateLineWidgets","ensureLineWrapped","replaceChild","zIndex","getLineContent","ext","built","background","wrap","insertBefore","updateLineBackground","wrapClass","gutter","gutterBackground","gutterClass","fixedGutter","fixedPos","gutterTotalWidth","markers","gutterMarkers","lineNumbers","wrap$1","gutterWrap","lineNumber","gutterLeft","k","gutterSpecs","gutterWidth","alignable","isWidget","nextSibling","insertLineWidgets","buildLineElement","insertLineWidgetsFor","allowAbove","widgets","ws","handleMouseEvents","positionLineWidget","above","noHScroll","width","wrapperWidth","coverGutter","paddingLeft","position","marginLeft","widgetHeight","parentStyle","gutters","wrapper","clientWidth","eventInWidget","getAttribute","sizer","mover","paddingTop","lineSpace","offsetTop","paddingVert","paddingH","cachedPaddingH","getComputedStyle","currentStyle","data","parseInt","paddingRight","isNaN","scrollGap","nativeBarWidth","displayWidth","scroller","barWidth","displayHeight","clientHeight","barHeight","mapFromLineView","measureChar","bias","measureCharPrepared","prepareMeasureForLine","findViewForLine","findViewIndex","getDimensions","forceUpdate","lineMeasure","updateExternalMeasurement","rect","hasHeights","prepared","varHeight","key","wrapping","lineWrapping","curWidth","heights","rects","getClientRects","abs","bottom","top","ensureLineHeights","place","nodeAndOffsetInLineMap","coverStart","coverEnd","getUsefulRect","screen","logicalXDPI","deviceXDPI","normal","fromRange","hasBadZoomedRects","scaleX","scaleY","logicalYDPI","deviceYDPI","maybeUpdateRectForZooming","rSpan","charWidth","nullRect","rtop","rbot","bot","bogus","singleCursorHeightPerLine","rbottom","measureCharInner","measureText","mStart","mEnd","clearLineMeasurementCacheFor","clearLineMeasurementCache","externalMeasure","clearCaches","cachedCharWidth","cachedTextHeight","lineNumChars","pageScrollX","pageXOffset","documentElement","scrollLeft","pageScrollY","marginTop","pageYOffset","scrollTop","widgetTopHeight","intoCoordSystem","includeWidgets","yOff","viewOffset","lOff","xOff","fromCoordSystem","coords","localBox","lineSpaceBox","charCoords","cursorCoords","preparedMeasure","get","getBidi","partPos","invert","other","estimateCoords","PosWithInfo","outside","xRel","coordsChar","y","coordsCharInner","rangeEnd","wrappedLineExtent","begin","wrappedLineExtentChar","boxIsAfter","box","ltr","coordsBidiPartWrapped","coordsBidiPart","baseX","chAround","boxAround","atLeft","atStart","_lineNo","ref","closestDist","endX","dist","textHeight","anchor","clientLeft","offsetLeft","compensateForHScroll","th","perLine","widgetsHeight","estimateLineHeights","est","estHeight","posFromMouse","liberal","forRect","space","clientX","clientY","e$1","colDiff","round","regChange","lendiff","updateLineNumbers","viewChanged","resetView","cut","viewCuttingPoint","cut$1","cutTop","cutBot","regLineChange","oldN","newN","countDirtyView","dirty","updateSelection","showSelection","prepareSelection","primary","curFragment","cursors","selFragment","sel","ranges","primIndex","empty","showCursorWhenSelecting","drawSelectionCursor","head","drawSelectionRange","cursor","cursorHeight","otherCursor","cmpCoords","fragment","padding","leftSide","rightSide","sizerWidth","docLTR","add","drawForLine","fromArg","toArg","lineLen","wrapX","side","extent","iterateBidiSections","fromPos","toPos","openStart","openEnd","openRight","topLeft","topRight","botLeft","botRight","sFrom","sTo","fromLine","toLine","singleVLine","leftEnd","rightStart","restartBlink","focused","clearInterval","blinker","cursorDiv","visibility","cursorBlinkRate","setInterval","hasFocus","onBlur","ensureFocus","focus","onFocus","delayBlurEvent","delayingBlurEvent","draggingText","readOnly","selForContextMenu","reset","receivedFocus","shift","updateHeightsInViewport","prevBottom","lineDiv","updateWidgetHeight","chWidth","w","visibleLines","viewport","ensure","ensureFrom","ensureTo","calculateScrollPos","snapMargin","screentop","docBottom","atTop","atBottom","newTop","gutterSpace","screenleft","screenw","tooWide","addToScrollTop","resolveScrollToPos","ensureCursorVisible","getCursor","scrollToPos","margin","cursorScrollMargin","scrollToCoords","scrollToCoordsRange","sPos","updateScrollTop","updateDisplaySimple","setScrollTop","startWorker","forceScroll","scrollHeight","scrollbars","setScrollLeft","isScroller","scrollWidth","alignHorizontally","measureForScrollbars","gutterW","docH","viewHeight","viewWidth","barLeft","docHeight","NativeScrollbars","vert","horiz","tabIndex","checkedZeroWidth","minHeight","minWidth","update","needsH","needsV","sWidth","totalHeight","totalWidth","zeroWidthHack","disableHoriz","enableZeroWidthBar","disableVert","pointerEvents","bar","delay","maybeDisable","elementFromPoint","clear","NullScrollbars","updateScrollbars","startWidth","startHeight","updateScrollbarsInner","sizes","paddingBottom","heightForcer","borderBottom","scrollbarFiller","coverGutterNextToScrollbar","gutterFiller","scrollbarModel","initScrollbars","scrollbarStyle","axis","nextOpId","startOperation","op","updateInput","typing","changeObjs","cursorActivityCalled","selectionChanged","updateMaxLine","markArrays","ops","ownsGroup","endOperation","endCb","group","callbacks","fireCallbacksForOps","finishOperation","endOperation_R1","endOperation_W1","endOperation_R2","endOperation_W2","endOperation_finish","endOperations","scrollbarsClipped","marginBottom","borderRightWidth","maybeClipScrollbars","mustUpdate","DisplayUpdate","updatedDisplay","updateDisplayIfNeeded","barMeasure","adjustWidthTo","maxScrollLeft","preparedSelection","takeFocus","setDocumentHeight","postUpdateDisplay","wheelStartX","wheelStartY","doScroll","innerHeight","scrollNode","scrollIntoView","maybeScrollWindow","limit","changed","endCoords","scrollPos","startTop","startLeft","scrollPosIntoView","maybeHiddenMarkers","unhidden","maybeUnhiddenMarkers","finish","runInOp","operation","methodOp","docMethodOp","highlight","highlightWorker","workTime","changedLines","oldStyles","highlighted","oldCls","newCls","ischange","workDelay","force","visible","editorIsHidden","wrapperHeight","oldDisplayWidth","events","renderedView","maybeUpdateLineNumberWidth","viewportMargin","different","lastWrapHeight","lastWrapWidth","adjustView","toUpdate","selSnapshot","active","anchorNode","extend","anchorOffset","focusNode","focusOffset","selectionSnapshot","updateNumbersFrom","container","rm","currentWheelTarget","updateNumber","patchDisplay","snapshot","nodeName","removeAllRanges","addRange","restoreSelection","selectionDiv","reportedViewFrom","reportedViewTo","updateGutterSpace","alignWidgets","comp","align","innerW","lineGutter","lineNumInnerWidth","lineNumWidth","getGutters","sawLineNumbers","renderGutters","specs","gElt","updateGutters","Display","draggable","wheelDX","wheelDY","activeTouch","init","wheelSamples","wheelPixelsPerUnit","wheelEventDelta","dx","wheelDeltaX","dy","wheelDeltaY","detail","HORIZONTAL_AXIS","VERTICAL_AXIS","wheelDelta","wheelEventPixels","delta","onScrollWheel","canScrollX","canScrollY","pixels","movedX","movedY","sample","Selection","equals","here","there","deepCopy","Range","somethingSelected","normalizeSelection","mayTouch","selectionsMayTouch","prim","sort","inv","simpleSelection","changeEnd","adjustForChange","computeSelAfterChange","offsetPos","loadMode","modeOption","resetModeState","isWholeLineUpdate","wholeLineUpdateBefore","updateDoc","spansFor","updateLine","linesFor","firstLine","lastText","lastSpans","nlines","insert","remove","added","added$1","added$2","linkedDocs","sharedHistOnly","propagate","skip","sharedHist","linked","rel","shared","attachDoc","setDirectionClass","History","done","undone","undoDepth","lastModTime","lastSelTime","lastOp","lastSelOp","lastOrigin","lastSelOrigin","generation","maxGeneration","historyChangeFromChange","histChange","attachLocalSpans","clearSelectionEvents","pop","addChangeToHistory","selAfter","opId","hist","history","historyEventDelay","lastChangeEvent","pushSelectionToHistory","addSelectionToHistory","selectionEventCanBeMerged","clearRedo","dest","existing","removeClearedSpans","explicitlyCleared","mergeOldSpans","getOldSpans","stretched","oldCur","stretchCur","copyHistoryArray","newGroup","instantiateSel","event","newChanges","extendRange","posBefore","extendSelection","setSelection","extendSelections","heads","replaceOneSelection","setSimpleSelection","setSelectionReplaceHistory","setSelectionNoUndo","NaN","filterSelectionChange","setSelectionInner","skipAtomicInSelection","reCheckSelection","mayClear","newAnchor","skipAtomic","newHead","skipAtomicInner","oldPos","preventCursorLeft","selectLeft","preventCursorRight","selectRight","atomic","near","movePos","far","cantEdit","selectAll","filterChange","canceled","cancel","makeChange","ignoreReadOnly","suppressEdits","mark","parts","mk","newParts","dfrom","dto","removeReadOnlyRanges","makeChangeInner","makeChangeSingleDoc","rebased","rebaseHist","makeChangeFromHistory","allowSelectionOnly","suppress","antiChanges","filter","returned","v","shiftDoc","distance","removed","recomputeMaxLength","checkWidthStart","retreatFrontier","changesHandler","changeHandler","makeChangeSingleDocInEditor","replaceRange","assign","splitLines","rebaseHistSelSingle","rebaseHistArray","sub","ok","copied","changeLine","handle","changeType","LeafChunk","BranchChunk","removeInner","insertInner","iterN","oldHeight","remaining","leaf","maybeSpill","me","sibling","myIndex","used","LineWidget","opt","adjustScrollWhenAboveVisible","this$1","oldH","nextMarkerId","TextMarker","markText","cloneNode","isParent","SharedTextMarker","markTextShared","replacedWith","addToHistory","curLine","inThisOp","WeakSet","has","addMarkedSpan","clearOnEnter","clearHistory","withOp","visual","dHeight","findSharedMarkers","findMarks","detachSharedMarkers","subMarker","nextDocId","Doc","lineSep","cleanGeneration","constructor","getValue","join","lineSeparator","setValue","getRange","getLineHandle","getLineNumber","getLineHandleVisualStart","lineCount","listSelections","setCursor","extendSelectionsBy","setSelections","addSelection","getSelections","replaceSelection","dup","replaceSelections","newSel","hint","oldPrev","newPrev","computeReplacedSel","undo","redo","undoSelection","redoSelection","setExtending","getExtending","historySize","markClean","changeGeneration","forceSplit","isClean","gen","getHistory","setHistory","histData","setGutterMarker","gutterID","clearGutter","lineInfo","addLineClass","where","removeLineClass","addLineWidget","insertAt","aboveVisible","removeLineWidget","setBookmark","realOpts","findMarksAt","getAllMarks","posFromIndex","sepSize","indexFromPos","copyHistory","linkedDoc","mFrom","mTo","subMark","copySharedMarkers","unlinkDoc","CodeMirror","splitIds","iterLinkedDocs","getEditor","setDirection","eachLine","lastDrop","onDrop","clearDragCursor","files","dataTransfer","isReadOnly","FileReader","File","read","markAsReadAndPasteIfAllFilesAreRead","t","readTextFromFile","file","allowDropFileTypes","reader","onerror","onload","readAsText","text$1","getData","selected","dragCursor","forEachCodeMirror","getElementsByClassName","byClass","editors","globalsRegistered","ensureGlobalHandlers","resizeTimer","onResize","setSize","keyNames","fromCharCode","keyMap","normalizeKeyName","alt","ctrl","cmd","mod","normalizeKeyMap","keymap","keyname","keys","lookupKey","getKeyMap","fallthrough","isModifierKey","keyCode","addModifierNames","noShift","altKey","metaKey","shiftKey","keyName","altGraphKey","deleteNearSelection","compute","kill","toKill","replaced","moveCharLogically","moveLogically","endOfLine","visually","prep","targetTop","basic","pcDefault","emacsy","macDefault","commands","singleSelection","killLine","deleteLine","delLineLeft","delWrappedLineLeft","delWrappedLineRight","rightPos","goDocStart","goDocEnd","goLineStart","goLineStartSmart","lineStartSmart","goLineEnd","visualLineEnd","lineEnd","goLineRight","goLineLeft","goLineLeftSmart","goLineUp","moveV","goLineDown","goPageUp","goPageDown","goCharLeft","moveH","goCharRight","goColumnLeft","goColumnRight","goWordLeft","goGroupRight","goGroupLeft","goWordRight","delCharBefore","deleteH","delCharAfter","delWordBefore","delWordAfter","delGroupBefore","delGroupAfter","indentAuto","indentSelection","indentMore","indentLess","insertTab","insertSoftTab","spaces","defaultTab","execCommand","transposeChars","newlineAndIndent","sels","indentLine","openLine","toggleOverwrite","firstNonWS","inWS","doHandleBinding","bound","dropShift","ensurePolled","prevShift","stopSeq","dispatchKey","seq","keySeq","dispatchKeyInner","keyMaps","extraKeys","lookupKeyForEditor","handleKeyBinding","motion","lastStoppedKey","onKeyDown","getField","handled","up","showCrossHair","onKeyUp","onKeyPress","charCode","handleCharBinding","lastClick","lastDoubleClick","PastClick","onMouseDown","supportsTouch","clickInGutter","repeat","now","compare","clickRepeat","selectingText","handleMappedButton","contained","behavior","option","unit","addNew","moveOnDrag","configureMouse","dragDrop","moved","dragEnd","mouseMove","dragStart","preventScroll","e2","leftButtonStartDrag","ourRange","ourIndex","startSel","rangeForUnit","lastPos","extendTo","startCol","posCol","leftPos","oldRange","ranges$1","anchorLine","boundary","headIndex","usePart","bidiSimplify","editorSize","counter","curCount","move","buttons","leftButtonSelect","leftButtonDown","onContextMenu","findWordAt","gutterEvent","prevent","mX","mY","touches","lineBox","g","contextMenuInGutter","themeChanged","theme","Init","defaults","optionHandlers","dragDropChanged","funcs","dragFunctions","toggle","enter","over","leave","drop","wrappingChanged","inputStyles","inputStyle","pasteIncoming","cutIncoming","autofocus","word","touchFinished","prevTouch","finishTouch","isMouseLikeTouchEvent","touch","radiusX","radiusY","farAway","pageX","pageY","frag","onDragOver","setData","effectAllowed","setDragImage","img","src","_top","onDragStart","inp","registerEventHandlers","finishInit","initHooks","textRendering","how","aggressive","indent","curSpace","curSpaceString","indentUnit","indentString","indentWithTabs","pos$1","defineInitHook","lastCopied","setLastCopied","newLastCopied","applyTextInput","inserted","deleted","recent","paste","textLines","multiPaste","pasteLinesPerSelection","lineWise","changeEvent","triggerElectric","handlePaste","pasted","clipboardData","disableInput","electricChars","smartIndent","getModeAt","electricInput","copyableRanges","lineRange","disableBrowserMagic","field","spellcheck","autocorrect","autocapitalize","hiddenTextarea","border","findPosH","origDir","lineDir","moveOnce","boundToLine","astral","bidi","mv","getWrappedLineExtent","moveInStorageOrder","searchInVisualLine","getRes","res","nextCh","moveVisually","sawType","getHelper","hitSide","findPosV","pageSize","moveAmount","ContentEditableInput","lastAnchorNode","lastAnchorOffset","lastFocusNode","lastFocusOffset","polling","composing","gracePeriod","readDOMTimeout","posToDOM","badPos","bad","domToPos","lineNode","locateNodeInLineView","textNode","topNode","nodeValue","curNode","textContent","previousSibling","dist$1","belongsToInput","onCopyCut","lineWiseCopyCut","clearData","kludge","hadFocus","showPrimarySelection","contentEditable","updateFromDOM","readFromDOMSoon","forceCompositionEnd","screenReaderLabelChanged","label","removeAttribute","showMultipleSelections","curAnchor","curFocus","rng","rangeCount","getRangeAt","startGracePeriod","rememberSelection","selectionInEditor","commonAncestorContainer","blur","pollSelection","pollInterval","poll","scan","isInGutter","triggerOnKeyDown","pollContent","fromIndex","fromNode","toNode","toIndex","newText","closing","extraLinebreak","close","addText","walk","cmText","markerID","isBlock","domTextBetween","oldText","cutFront","cutEnd","oldTop","maxCutFront","newBot","oldBot","maxCutEnd","chFrom","chTo","readOnlyChanged","resetPosition","TextareaInput","prevInput","pollingFast","createField","textarea","prepareCopyCut","fastPoll","dispatchEvent","Event","_display","moveInputWithCursor","headPos","wrapOff","lineOff","teTop","teLeft","drawn","contextMenuPending","slowPoll","missed","same","resetSelectionOnContextMenu","oldScrollY","oldCSS","oldWrapperCSS","wrapperBox","offsetParent","scrollY","scrollTo","rehide","detectingSelectAll","prepareSelectAllHack","mouseup","extval","disabled","deflt","notOnInit","defineOption","newBreaks","refresh","getInputField","detach","attach","integer","defineOptions","helpers","setOption","getDoc","addKeyMap","removeKeyMap","addOverlay","score","priority","insertSorted","modeSpec","removeOverlay","newRanges","getTokenAt","getLineTokens","getTokenTypeAt","getHelpers","help","_global","getStateAfter","defaultTextHeight","defaultCharWidth","getViewport","addWidget","vspace","hspace","triggerOnKeyPress","triggerOnKeyUp","triggerOnMouseDown","amount","rtlMoveVisually","goalColumn","goals","startChar","check","getScrollInfo","scrollToRange","interpret","swapDoc","phrase","phraseText","phrases","getWrapperElement","getScrollerElement","getGutterElement","registerHelper","registerGlobalHelper","predicate","addEditorMethods","dontDelegate","method","defineMIME","mime","defineExtension","func","defineDocExtension","fromTextArea","tabindex","placeholder","realSubmit","form","leaveSubmitMethodAlone","submit","wrappedSubmit","getTextArea","toTextArea","cmpPos","addLegacyProps","version","factory"],"sourceRoot":""} \ No newline at end of file diff --git a/_static/build/582.21b8e7d.js b/_static/build/582.21b8e7d.js new file mode 100644 index 0000000..19ac40d --- /dev/null +++ b/_static/build/582.21b8e7d.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[582],{56738:(o,r,e)=>{e.d(r,{Z:()=>A});var t=e(34663),i=e.n(t),n=e(7638),c=e.n(n)()(i());c.push([o.id,".cm-s-liquibyte.CodeMirror {\n\tbackground-color: #000;\n\tcolor: #fff;\n\tline-height: 1.2em;\n\tfont-size: 1em;\n}\n.cm-s-liquibyte .CodeMirror-focused .cm-matchhighlight {\n\ttext-decoration: underline;\n\ttext-decoration-color: #0f0;\n\ttext-decoration-style: wavy;\n}\n.cm-s-liquibyte .cm-trailingspace {\n\ttext-decoration: line-through;\n\ttext-decoration-color: #f00;\n\ttext-decoration-style: dotted;\n}\n.cm-s-liquibyte .cm-tab {\n\ttext-decoration: line-through;\n\ttext-decoration-color: #404040;\n\ttext-decoration-style: dotted;\n}\n.cm-s-liquibyte .CodeMirror-gutters { background-color: #262626; border-right: 1px solid #505050; padding-right: 0.8em; }\n.cm-s-liquibyte .CodeMirror-gutter-elt div { font-size: 1.2em; }\n.cm-s-liquibyte .CodeMirror-guttermarker { }\n.cm-s-liquibyte .CodeMirror-guttermarker-subtle { }\n.cm-s-liquibyte .CodeMirror-linenumber { color: #606060; padding-left: 0; }\n.cm-s-liquibyte .CodeMirror-cursor { border-left: 1px solid #eee; }\n\n.cm-s-liquibyte span.cm-comment { color: #008000; }\n.cm-s-liquibyte span.cm-def { color: #ffaf40; font-weight: bold; }\n.cm-s-liquibyte span.cm-keyword { color: #c080ff; font-weight: bold; }\n.cm-s-liquibyte span.cm-builtin { color: #ffaf40; font-weight: bold; }\n.cm-s-liquibyte span.cm-variable { color: #5967ff; font-weight: bold; }\n.cm-s-liquibyte span.cm-string { color: #ff8000; }\n.cm-s-liquibyte span.cm-number { color: #0f0; font-weight: bold; }\n.cm-s-liquibyte span.cm-atom { color: #bf3030; font-weight: bold; }\n\n.cm-s-liquibyte span.cm-variable-2 { color: #007f7f; font-weight: bold; }\n.cm-s-liquibyte span.cm-variable-3, .cm-s-liquibyte span.cm-type { color: #c080ff; font-weight: bold; }\n.cm-s-liquibyte span.cm-property { color: #999; font-weight: bold; }\n.cm-s-liquibyte span.cm-operator { color: #fff; }\n\n.cm-s-liquibyte span.cm-meta { color: #0f0; }\n.cm-s-liquibyte span.cm-qualifier { color: #fff700; font-weight: bold; }\n.cm-s-liquibyte span.cm-bracket { color: #cc7; }\n.cm-s-liquibyte span.cm-tag { color: #ff0; font-weight: bold; }\n.cm-s-liquibyte span.cm-attribute { color: #c080ff; font-weight: bold; }\n.cm-s-liquibyte span.cm-error { color: #f00; }\n\n.cm-s-liquibyte div.CodeMirror-selected { background-color: rgba(255, 0, 0, 0.25); }\n\n.cm-s-liquibyte span.cm-compilation { background-color: rgba(255, 255, 255, 0.12); }\n\n.cm-s-liquibyte .CodeMirror-activeline-background { background-color: rgba(0, 255, 0, 0.15); }\n\n/* Default styles for common addons */\n.cm-s-liquibyte .CodeMirror span.CodeMirror-matchingbracket { color: #0f0; font-weight: bold; }\n.cm-s-liquibyte .CodeMirror span.CodeMirror-nonmatchingbracket { color: #f00; font-weight: bold; }\n.CodeMirror-matchingtag { background-color: rgba(150, 255, 0, .3); }\n/* Scrollbars */\n/* Simple */\n.cm-s-liquibyte div.CodeMirror-simplescroll-horizontal div:hover, .cm-s-liquibyte div.CodeMirror-simplescroll-vertical div:hover {\n\tbackground-color: rgba(80, 80, 80, .7);\n}\n.cm-s-liquibyte div.CodeMirror-simplescroll-horizontal div, .cm-s-liquibyte div.CodeMirror-simplescroll-vertical div {\n\tbackground-color: rgba(80, 80, 80, .3);\n\tborder: 1px solid #404040;\n\tborder-radius: 5px;\n}\n.cm-s-liquibyte div.CodeMirror-simplescroll-vertical div {\n\tborder-top: 1px solid #404040;\n\tborder-bottom: 1px solid #404040;\n}\n.cm-s-liquibyte div.CodeMirror-simplescroll-horizontal div {\n\tborder-left: 1px solid #404040;\n\tborder-right: 1px solid #404040;\n}\n.cm-s-liquibyte div.CodeMirror-simplescroll-vertical {\n\tbackground-color: #262626;\n}\n.cm-s-liquibyte div.CodeMirror-simplescroll-horizontal {\n\tbackground-color: #262626;\n\tborder-top: 1px solid #404040;\n}\n/* Overlay */\n.cm-s-liquibyte div.CodeMirror-overlayscroll-horizontal div, div.CodeMirror-overlayscroll-vertical div {\n\tbackground-color: #404040;\n\tborder-radius: 5px;\n}\n.cm-s-liquibyte div.CodeMirror-overlayscroll-vertical div {\n\tborder: 1px solid #404040;\n}\n.cm-s-liquibyte div.CodeMirror-overlayscroll-horizontal div {\n\tborder: 1px solid #404040;\n}\n","",{version:3,sources:["webpack://./../node_modules/codemirror/theme/liquibyte.css"],names:[],mappings:"AAAA;CACC,sBAAsB;CACtB,WAAW;CACX,kBAAkB;CAClB,cAAc;AACf;AACA;CACC,0BAA0B;CAC1B,2BAA2B;CAC3B,2BAA2B;AAC5B;AACA;CACC,6BAA6B;CAC7B,2BAA2B;CAC3B,6BAA6B;AAC9B;AACA;CACC,6BAA6B;CAC7B,8BAA8B;CAC9B,6BAA6B;AAC9B;AACA,sCAAsC,yBAAyB,EAAE,+BAA+B,EAAE,oBAAoB,EAAE;AACxH,6CAA6C,gBAAgB,EAAE;AAC/D,4CAA4C;AAC5C,mDAAmD;AACnD,yCAAyC,cAAc,EAAE,eAAe,EAAE;AAC1E,qCAAqC,2BAA2B,EAAE;;AAElE,sCAAsC,cAAc,EAAE;AACtD,sCAAsC,cAAc,EAAE,iBAAiB,EAAE;AACzE,sCAAsC,cAAc,EAAE,iBAAiB,EAAE;AACzE,sCAAsC,cAAc,EAAE,iBAAiB,EAAE;AACzE,sCAAsC,cAAc,EAAE,iBAAiB,EAAE;AACzE,sCAAsC,cAAc,EAAE;AACtD,sCAAsC,WAAW,EAAE,iBAAiB,EAAE;AACtE,sCAAsC,cAAc,EAAE,iBAAiB,EAAE;;AAEzE,sCAAsC,cAAc,EAAE,iBAAiB,EAAE;AACzE,mEAAmE,cAAc,EAAE,iBAAiB,EAAE;AACtG,sCAAsC,WAAW,EAAE,iBAAiB,EAAE;AACtE,sCAAsC,WAAW,EAAE;;AAEnD,sCAAsC,WAAW,EAAE;AACnD,sCAAsC,cAAc,EAAE,iBAAiB,EAAE;AACzE,sCAAsC,WAAW,EAAE;AACnD,sCAAsC,WAAW,EAAE,iBAAiB,EAAE;AACtE,sCAAsC,cAAc,EAAE,iBAAiB,EAAE;AACzE,sCAAsC,WAAW,EAAE;;AAEnD,0CAA0C,uCAAuC,EAAE;;AAEnF,sCAAsC,2CAA2C,EAAE;;AAEnF,oDAAoD,uCAAuC,EAAE;;AAE7F,qCAAqC;AACrC,8DAA8D,WAAW,EAAE,iBAAiB,EAAE;AAC9F,iEAAiE,WAAW,EAAE,iBAAiB,EAAE;AACjG,0BAA0B,uCAAuC,EAAE;AACnE,eAAe;AACf,WAAW;AACX;CACC,sCAAsC;AACvC;AACA;CACC,sCAAsC;CACtC,yBAAyB;CACzB,kBAAkB;AACnB;AACA;CACC,6BAA6B;CAC7B,gCAAgC;AACjC;AACA;CACC,8BAA8B;CAC9B,+BAA+B;AAChC;AACA;CACC,yBAAyB;AAC1B;AACA;CACC,yBAAyB;CACzB,6BAA6B;AAC9B;AACA,YAAY;AACZ;CACC,yBAAyB;CACzB,kBAAkB;AACnB;AACA;CACC,yBAAyB;AAC1B;AACA;CACC,yBAAyB;AAC1B",sourcesContent:[".cm-s-liquibyte.CodeMirror {\n\tbackground-color: #000;\n\tcolor: #fff;\n\tline-height: 1.2em;\n\tfont-size: 1em;\n}\n.cm-s-liquibyte .CodeMirror-focused .cm-matchhighlight {\n\ttext-decoration: underline;\n\ttext-decoration-color: #0f0;\n\ttext-decoration-style: wavy;\n}\n.cm-s-liquibyte .cm-trailingspace {\n\ttext-decoration: line-through;\n\ttext-decoration-color: #f00;\n\ttext-decoration-style: dotted;\n}\n.cm-s-liquibyte .cm-tab {\n\ttext-decoration: line-through;\n\ttext-decoration-color: #404040;\n\ttext-decoration-style: dotted;\n}\n.cm-s-liquibyte .CodeMirror-gutters { background-color: #262626; border-right: 1px solid #505050; padding-right: 0.8em; }\n.cm-s-liquibyte .CodeMirror-gutter-elt div { font-size: 1.2em; }\n.cm-s-liquibyte .CodeMirror-guttermarker { }\n.cm-s-liquibyte .CodeMirror-guttermarker-subtle { }\n.cm-s-liquibyte .CodeMirror-linenumber { color: #606060; padding-left: 0; }\n.cm-s-liquibyte .CodeMirror-cursor { border-left: 1px solid #eee; }\n\n.cm-s-liquibyte span.cm-comment { color: #008000; }\n.cm-s-liquibyte span.cm-def { color: #ffaf40; font-weight: bold; }\n.cm-s-liquibyte span.cm-keyword { color: #c080ff; font-weight: bold; }\n.cm-s-liquibyte span.cm-builtin { color: #ffaf40; font-weight: bold; }\n.cm-s-liquibyte span.cm-variable { color: #5967ff; font-weight: bold; }\n.cm-s-liquibyte span.cm-string { color: #ff8000; }\n.cm-s-liquibyte span.cm-number { color: #0f0; font-weight: bold; }\n.cm-s-liquibyte span.cm-atom { color: #bf3030; font-weight: bold; }\n\n.cm-s-liquibyte span.cm-variable-2 { color: #007f7f; font-weight: bold; }\n.cm-s-liquibyte span.cm-variable-3, .cm-s-liquibyte span.cm-type { color: #c080ff; font-weight: bold; }\n.cm-s-liquibyte span.cm-property { color: #999; font-weight: bold; }\n.cm-s-liquibyte span.cm-operator { color: #fff; }\n\n.cm-s-liquibyte span.cm-meta { color: #0f0; }\n.cm-s-liquibyte span.cm-qualifier { color: #fff700; font-weight: bold; }\n.cm-s-liquibyte span.cm-bracket { color: #cc7; }\n.cm-s-liquibyte span.cm-tag { color: #ff0; font-weight: bold; }\n.cm-s-liquibyte span.cm-attribute { color: #c080ff; font-weight: bold; }\n.cm-s-liquibyte span.cm-error { color: #f00; }\n\n.cm-s-liquibyte div.CodeMirror-selected { background-color: rgba(255, 0, 0, 0.25); }\n\n.cm-s-liquibyte span.cm-compilation { background-color: rgba(255, 255, 255, 0.12); }\n\n.cm-s-liquibyte .CodeMirror-activeline-background { background-color: rgba(0, 255, 0, 0.15); }\n\n/* Default styles for common addons */\n.cm-s-liquibyte .CodeMirror span.CodeMirror-matchingbracket { color: #0f0; font-weight: bold; }\n.cm-s-liquibyte .CodeMirror span.CodeMirror-nonmatchingbracket { color: #f00; font-weight: bold; }\n.CodeMirror-matchingtag { background-color: rgba(150, 255, 0, .3); }\n/* Scrollbars */\n/* Simple */\n.cm-s-liquibyte div.CodeMirror-simplescroll-horizontal div:hover, .cm-s-liquibyte div.CodeMirror-simplescroll-vertical div:hover {\n\tbackground-color: rgba(80, 80, 80, .7);\n}\n.cm-s-liquibyte div.CodeMirror-simplescroll-horizontal div, .cm-s-liquibyte div.CodeMirror-simplescroll-vertical div {\n\tbackground-color: rgba(80, 80, 80, .3);\n\tborder: 1px solid #404040;\n\tborder-radius: 5px;\n}\n.cm-s-liquibyte div.CodeMirror-simplescroll-vertical div {\n\tborder-top: 1px solid #404040;\n\tborder-bottom: 1px solid #404040;\n}\n.cm-s-liquibyte div.CodeMirror-simplescroll-horizontal div {\n\tborder-left: 1px solid #404040;\n\tborder-right: 1px solid #404040;\n}\n.cm-s-liquibyte div.CodeMirror-simplescroll-vertical {\n\tbackground-color: #262626;\n}\n.cm-s-liquibyte div.CodeMirror-simplescroll-horizontal {\n\tbackground-color: #262626;\n\tborder-top: 1px solid #404040;\n}\n/* Overlay */\n.cm-s-liquibyte div.CodeMirror-overlayscroll-horizontal div, div.CodeMirror-overlayscroll-vertical div {\n\tbackground-color: #404040;\n\tborder-radius: 5px;\n}\n.cm-s-liquibyte div.CodeMirror-overlayscroll-vertical div {\n\tborder: 1px solid #404040;\n}\n.cm-s-liquibyte div.CodeMirror-overlayscroll-horizontal div {\n\tborder: 1px solid #404040;\n}\n"],sourceRoot:""}]);const A=c},7638:o=>{o.exports=function(o){var r=[];return r.toString=function(){return this.map((function(r){var e="",t=void 0!==r[5];return r[4]&&(e+="@supports (".concat(r[4],") {")),r[2]&&(e+="@media ".concat(r[2]," {")),t&&(e+="@layer".concat(r[5].length>0?" ".concat(r[5]):""," {")),e+=o(r),t&&(e+="}"),r[2]&&(e+="}"),r[4]&&(e+="}"),e})).join("")},r.i=function(o,e,t,i,n){"string"==typeof o&&(o=[[null,o,void 0]]);var c={};if(t)for(var A=0;A0?" ".concat(a[5]):""," {").concat(a[1],"}")),a[5]=n),e&&(a[2]?(a[1]="@media ".concat(a[2]," {").concat(a[1],"}"),a[2]=e):a[2]=e),i&&(a[4]?(a[1]="@supports (".concat(a[4],") {").concat(a[1],"}"),a[4]=i):a[4]="".concat(i)),r.push(a))}},r}},34663:o=>{o.exports=function(o){var r=o[1],e=o[3];if(!e)return r;if("function"==typeof btoa){var t=btoa(unescape(encodeURIComponent(JSON.stringify(e)))),i="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(t),n="/*# ".concat(i," */"),c=e.sources.map((function(o){return"/*# sourceURL=".concat(e.sourceRoot||"").concat(o," */")}));return[r].concat(c).concat([n]).join("\n")}return[r].join("\n")}},60582:(o,r,e)=>{e.r(r),e.d(r,{default:()=>p});var t=e(1892),i=e.n(t),n=e(95760),c=e.n(n),A=e(38311),l=e.n(A),s=e(58192),a=e.n(s),d=e(38060),C=e.n(d),u=e(54865),m=e.n(u),b=e(56738),f={};f.styleTagTransform=m(),f.setAttributes=a(),f.insert=l().bind(null,"head"),f.domAPI=c(),f.insertStyleElement=C(),i()(b.Z,f);const p=b.Z&&b.Z.locals?b.Z.locals:void 0},1892:o=>{var r=[];function e(o){for(var e=-1,t=0;t{var r={};o.exports=function(o,e){var t=function(o){if(void 0===r[o]){var e=document.querySelector(o);if(window.HTMLIFrameElement&&e instanceof window.HTMLIFrameElement)try{e=e.contentDocument.head}catch(o){e=null}r[o]=e}return r[o]}(o);if(!t)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");t.appendChild(e)}},38060:o=>{o.exports=function(o){var r=document.createElement("style");return o.setAttributes(r,o.attributes),o.insert(r,o.options),r}},58192:(o,r,e)=>{o.exports=function(o){var r=e.nc;r&&o.setAttribute("nonce",r)}},95760:o=>{o.exports=function(o){var r=o.insertStyleElement(o);return{update:function(e){!function(o,r,e){var t="";e.supports&&(t+="@supports (".concat(e.supports,") {")),e.media&&(t+="@media ".concat(e.media," {"));var i=void 0!==e.layer;i&&(t+="@layer".concat(e.layer.length>0?" ".concat(e.layer):""," {")),t+=e.css,i&&(t+="}"),e.media&&(t+="}"),e.supports&&(t+="}");var n=e.sourceMap;n&&"undefined"!=typeof btoa&&(t+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(n))))," */")),r.styleTagTransform(t,o,r.options)}(r,o,e)},remove:function(){!function(o){if(null===o.parentNode)return!1;o.parentNode.removeChild(o)}(r)}}}},54865:o=>{o.exports=function(o,r){if(r.styleSheet)r.styleSheet.cssText=o;else{for(;r.firstChild;)r.removeChild(r.firstChild);r.appendChild(document.createTextNode(o))}}}}]); +//# sourceMappingURL=582.21b8e7d.js.map \ No newline at end of file diff --git a/_static/build/582.21b8e7d.js.map b/_static/build/582.21b8e7d.js.map new file mode 100644 index 0000000..8d1e29c --- /dev/null +++ b/_static/build/582.21b8e7d.js.map @@ -0,0 +1 @@ +{"version":3,"file":"582.21b8e7d.js","mappings":"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","sources":["webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/theme/liquibyte.css","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/css-loader/dist/runtime/api.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/css-loader/dist/runtime/sourceMaps.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/theme/liquibyte.css?cd6a","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/insertBySelector.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/insertStyleElement.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/styleDomAPI.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/styleTagTransform.js"],"sourcesContent":["// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".cm-s-liquibyte.CodeMirror {\\n\\tbackground-color: #000;\\n\\tcolor: #fff;\\n\\tline-height: 1.2em;\\n\\tfont-size: 1em;\\n}\\n.cm-s-liquibyte .CodeMirror-focused .cm-matchhighlight {\\n\\ttext-decoration: underline;\\n\\ttext-decoration-color: #0f0;\\n\\ttext-decoration-style: wavy;\\n}\\n.cm-s-liquibyte .cm-trailingspace {\\n\\ttext-decoration: line-through;\\n\\ttext-decoration-color: #f00;\\n\\ttext-decoration-style: dotted;\\n}\\n.cm-s-liquibyte .cm-tab {\\n\\ttext-decoration: line-through;\\n\\ttext-decoration-color: #404040;\\n\\ttext-decoration-style: dotted;\\n}\\n.cm-s-liquibyte .CodeMirror-gutters { background-color: #262626; border-right: 1px solid #505050; padding-right: 0.8em; }\\n.cm-s-liquibyte .CodeMirror-gutter-elt div { font-size: 1.2em; }\\n.cm-s-liquibyte .CodeMirror-guttermarker { }\\n.cm-s-liquibyte .CodeMirror-guttermarker-subtle { }\\n.cm-s-liquibyte .CodeMirror-linenumber { color: #606060; padding-left: 0; }\\n.cm-s-liquibyte .CodeMirror-cursor { border-left: 1px solid #eee; }\\n\\n.cm-s-liquibyte span.cm-comment { color: #008000; }\\n.cm-s-liquibyte span.cm-def { color: #ffaf40; font-weight: bold; }\\n.cm-s-liquibyte span.cm-keyword { color: #c080ff; font-weight: bold; }\\n.cm-s-liquibyte span.cm-builtin { color: #ffaf40; font-weight: bold; }\\n.cm-s-liquibyte span.cm-variable { color: #5967ff; font-weight: bold; }\\n.cm-s-liquibyte span.cm-string { color: #ff8000; }\\n.cm-s-liquibyte span.cm-number { color: #0f0; font-weight: bold; }\\n.cm-s-liquibyte span.cm-atom { color: #bf3030; font-weight: bold; }\\n\\n.cm-s-liquibyte span.cm-variable-2 { color: #007f7f; font-weight: bold; }\\n.cm-s-liquibyte span.cm-variable-3, .cm-s-liquibyte span.cm-type { color: #c080ff; font-weight: bold; }\\n.cm-s-liquibyte span.cm-property { color: #999; font-weight: bold; }\\n.cm-s-liquibyte span.cm-operator { color: #fff; }\\n\\n.cm-s-liquibyte span.cm-meta { color: #0f0; }\\n.cm-s-liquibyte span.cm-qualifier { color: #fff700; font-weight: bold; }\\n.cm-s-liquibyte span.cm-bracket { color: #cc7; }\\n.cm-s-liquibyte span.cm-tag { color: #ff0; font-weight: bold; }\\n.cm-s-liquibyte span.cm-attribute { color: #c080ff; font-weight: bold; }\\n.cm-s-liquibyte span.cm-error { color: #f00; }\\n\\n.cm-s-liquibyte div.CodeMirror-selected { background-color: rgba(255, 0, 0, 0.25); }\\n\\n.cm-s-liquibyte span.cm-compilation { background-color: rgba(255, 255, 255, 0.12); }\\n\\n.cm-s-liquibyte .CodeMirror-activeline-background { background-color: rgba(0, 255, 0, 0.15); }\\n\\n/* Default styles for common addons */\\n.cm-s-liquibyte .CodeMirror span.CodeMirror-matchingbracket { color: #0f0; font-weight: bold; }\\n.cm-s-liquibyte .CodeMirror span.CodeMirror-nonmatchingbracket { color: #f00; font-weight: bold; }\\n.CodeMirror-matchingtag { background-color: rgba(150, 255, 0, .3); }\\n/* Scrollbars */\\n/* Simple */\\n.cm-s-liquibyte div.CodeMirror-simplescroll-horizontal div:hover, .cm-s-liquibyte div.CodeMirror-simplescroll-vertical div:hover {\\n\\tbackground-color: rgba(80, 80, 80, .7);\\n}\\n.cm-s-liquibyte div.CodeMirror-simplescroll-horizontal div, .cm-s-liquibyte div.CodeMirror-simplescroll-vertical div {\\n\\tbackground-color: rgba(80, 80, 80, .3);\\n\\tborder: 1px solid #404040;\\n\\tborder-radius: 5px;\\n}\\n.cm-s-liquibyte div.CodeMirror-simplescroll-vertical div {\\n\\tborder-top: 1px solid #404040;\\n\\tborder-bottom: 1px solid #404040;\\n}\\n.cm-s-liquibyte div.CodeMirror-simplescroll-horizontal div {\\n\\tborder-left: 1px solid #404040;\\n\\tborder-right: 1px solid #404040;\\n}\\n.cm-s-liquibyte div.CodeMirror-simplescroll-vertical {\\n\\tbackground-color: #262626;\\n}\\n.cm-s-liquibyte div.CodeMirror-simplescroll-horizontal {\\n\\tbackground-color: #262626;\\n\\tborder-top: 1px solid #404040;\\n}\\n/* Overlay */\\n.cm-s-liquibyte div.CodeMirror-overlayscroll-horizontal div, div.CodeMirror-overlayscroll-vertical div {\\n\\tbackground-color: #404040;\\n\\tborder-radius: 5px;\\n}\\n.cm-s-liquibyte div.CodeMirror-overlayscroll-vertical div {\\n\\tborder: 1px solid #404040;\\n}\\n.cm-s-liquibyte div.CodeMirror-overlayscroll-horizontal div {\\n\\tborder: 1px solid #404040;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./../node_modules/codemirror/theme/liquibyte.css\"],\"names\":[],\"mappings\":\"AAAA;CACC,sBAAsB;CACtB,WAAW;CACX,kBAAkB;CAClB,cAAc;AACf;AACA;CACC,0BAA0B;CAC1B,2BAA2B;CAC3B,2BAA2B;AAC5B;AACA;CACC,6BAA6B;CAC7B,2BAA2B;CAC3B,6BAA6B;AAC9B;AACA;CACC,6BAA6B;CAC7B,8BAA8B;CAC9B,6BAA6B;AAC9B;AACA,sCAAsC,yBAAyB,EAAE,+BAA+B,EAAE,oBAAoB,EAAE;AACxH,6CAA6C,gBAAgB,EAAE;AAC/D,4CAA4C;AAC5C,mDAAmD;AACnD,yCAAyC,cAAc,EAAE,eAAe,EAAE;AAC1E,qCAAqC,2BAA2B,EAAE;;AAElE,sCAAsC,cAAc,EAAE;AACtD,sCAAsC,cAAc,EAAE,iBAAiB,EAAE;AACzE,sCAAsC,cAAc,EAAE,iBAAiB,EAAE;AACzE,sCAAsC,cAAc,EAAE,iBAAiB,EAAE;AACzE,sCAAsC,cAAc,EAAE,iBAAiB,EAAE;AACzE,sCAAsC,cAAc,EAAE;AACtD,sCAAsC,WAAW,EAAE,iBAAiB,EAAE;AACtE,sCAAsC,cAAc,EAAE,iBAAiB,EAAE;;AAEzE,sCAAsC,cAAc,EAAE,iBAAiB,EAAE;AACzE,mEAAmE,cAAc,EAAE,iBAAiB,EAAE;AACtG,sCAAsC,WAAW,EAAE,iBAAiB,EAAE;AACtE,sCAAsC,WAAW,EAAE;;AAEnD,sCAAsC,WAAW,EAAE;AACnD,sCAAsC,cAAc,EAAE,iBAAiB,EAAE;AACzE,sCAAsC,WAAW,EAAE;AACnD,sCAAsC,WAAW,EAAE,iBAAiB,EAAE;AACtE,sCAAsC,cAAc,EAAE,iBAAiB,EAAE;AACzE,sCAAsC,WAAW,EAAE;;AAEnD,0CAA0C,uCAAuC,EAAE;;AAEnF,sCAAsC,2CAA2C,EAAE;;AAEnF,oDAAoD,uCAAuC,EAAE;;AAE7F,qCAAqC;AACrC,8DAA8D,WAAW,EAAE,iBAAiB,EAAE;AAC9F,iEAAiE,WAAW,EAAE,iBAAiB,EAAE;AACjG,0BAA0B,uCAAuC,EAAE;AACnE,eAAe;AACf,WAAW;AACX;CACC,sCAAsC;AACvC;AACA;CACC,sCAAsC;CACtC,yBAAyB;CACzB,kBAAkB;AACnB;AACA;CACC,6BAA6B;CAC7B,gCAAgC;AACjC;AACA;CACC,8BAA8B;CAC9B,+BAA+B;AAChC;AACA;CACC,yBAAyB;AAC1B;AACA;CACC,yBAAyB;CACzB,6BAA6B;AAC9B;AACA,YAAY;AACZ;CACC,yBAAyB;CACzB,kBAAkB;AACnB;AACA;CACC,yBAAyB;AAC1B;AACA;CACC,yBAAyB;AAC1B\",\"sourcesContent\":[\".cm-s-liquibyte.CodeMirror {\\n\\tbackground-color: #000;\\n\\tcolor: #fff;\\n\\tline-height: 1.2em;\\n\\tfont-size: 1em;\\n}\\n.cm-s-liquibyte .CodeMirror-focused .cm-matchhighlight {\\n\\ttext-decoration: underline;\\n\\ttext-decoration-color: #0f0;\\n\\ttext-decoration-style: wavy;\\n}\\n.cm-s-liquibyte .cm-trailingspace {\\n\\ttext-decoration: line-through;\\n\\ttext-decoration-color: #f00;\\n\\ttext-decoration-style: dotted;\\n}\\n.cm-s-liquibyte .cm-tab {\\n\\ttext-decoration: line-through;\\n\\ttext-decoration-color: #404040;\\n\\ttext-decoration-style: dotted;\\n}\\n.cm-s-liquibyte .CodeMirror-gutters { background-color: #262626; border-right: 1px solid #505050; padding-right: 0.8em; }\\n.cm-s-liquibyte .CodeMirror-gutter-elt div { font-size: 1.2em; }\\n.cm-s-liquibyte .CodeMirror-guttermarker { }\\n.cm-s-liquibyte .CodeMirror-guttermarker-subtle { }\\n.cm-s-liquibyte .CodeMirror-linenumber { color: #606060; padding-left: 0; }\\n.cm-s-liquibyte .CodeMirror-cursor { border-left: 1px solid #eee; }\\n\\n.cm-s-liquibyte span.cm-comment { color: #008000; }\\n.cm-s-liquibyte span.cm-def { color: #ffaf40; font-weight: bold; }\\n.cm-s-liquibyte span.cm-keyword { color: #c080ff; font-weight: bold; }\\n.cm-s-liquibyte span.cm-builtin { color: #ffaf40; font-weight: bold; }\\n.cm-s-liquibyte span.cm-variable { color: #5967ff; font-weight: bold; }\\n.cm-s-liquibyte span.cm-string { color: #ff8000; }\\n.cm-s-liquibyte span.cm-number { color: #0f0; font-weight: bold; }\\n.cm-s-liquibyte span.cm-atom { color: #bf3030; font-weight: bold; }\\n\\n.cm-s-liquibyte span.cm-variable-2 { color: #007f7f; font-weight: bold; }\\n.cm-s-liquibyte span.cm-variable-3, .cm-s-liquibyte span.cm-type { color: #c080ff; font-weight: bold; }\\n.cm-s-liquibyte span.cm-property { color: #999; font-weight: bold; }\\n.cm-s-liquibyte span.cm-operator { color: #fff; }\\n\\n.cm-s-liquibyte span.cm-meta { color: #0f0; }\\n.cm-s-liquibyte span.cm-qualifier { color: #fff700; font-weight: bold; }\\n.cm-s-liquibyte span.cm-bracket { color: #cc7; }\\n.cm-s-liquibyte span.cm-tag { color: #ff0; font-weight: bold; }\\n.cm-s-liquibyte span.cm-attribute { color: #c080ff; font-weight: bold; }\\n.cm-s-liquibyte span.cm-error { color: #f00; }\\n\\n.cm-s-liquibyte div.CodeMirror-selected { background-color: rgba(255, 0, 0, 0.25); }\\n\\n.cm-s-liquibyte span.cm-compilation { background-color: rgba(255, 255, 255, 0.12); }\\n\\n.cm-s-liquibyte .CodeMirror-activeline-background { background-color: rgba(0, 255, 0, 0.15); }\\n\\n/* Default styles for common addons */\\n.cm-s-liquibyte .CodeMirror span.CodeMirror-matchingbracket { color: #0f0; font-weight: bold; }\\n.cm-s-liquibyte .CodeMirror span.CodeMirror-nonmatchingbracket { color: #f00; font-weight: bold; }\\n.CodeMirror-matchingtag { background-color: rgba(150, 255, 0, .3); }\\n/* Scrollbars */\\n/* Simple */\\n.cm-s-liquibyte div.CodeMirror-simplescroll-horizontal div:hover, .cm-s-liquibyte div.CodeMirror-simplescroll-vertical div:hover {\\n\\tbackground-color: rgba(80, 80, 80, .7);\\n}\\n.cm-s-liquibyte div.CodeMirror-simplescroll-horizontal div, .cm-s-liquibyte div.CodeMirror-simplescroll-vertical div {\\n\\tbackground-color: rgba(80, 80, 80, .3);\\n\\tborder: 1px solid #404040;\\n\\tborder-radius: 5px;\\n}\\n.cm-s-liquibyte div.CodeMirror-simplescroll-vertical div {\\n\\tborder-top: 1px solid #404040;\\n\\tborder-bottom: 1px solid #404040;\\n}\\n.cm-s-liquibyte div.CodeMirror-simplescroll-horizontal div {\\n\\tborder-left: 1px solid #404040;\\n\\tborder-right: 1px solid #404040;\\n}\\n.cm-s-liquibyte div.CodeMirror-simplescroll-vertical {\\n\\tbackground-color: #262626;\\n}\\n.cm-s-liquibyte div.CodeMirror-simplescroll-horizontal {\\n\\tbackground-color: #262626;\\n\\tborder-top: 1px solid #404040;\\n}\\n/* Overlay */\\n.cm-s-liquibyte div.CodeMirror-overlayscroll-horizontal div, div.CodeMirror-overlayscroll-vertical div {\\n\\tbackground-color: #404040;\\n\\tborder-radius: 5px;\\n}\\n.cm-s-liquibyte div.CodeMirror-overlayscroll-vertical div {\\n\\tborder: 1px solid #404040;\\n}\\n.cm-s-liquibyte div.CodeMirror-overlayscroll-horizontal div {\\n\\tborder: 1px solid #404040;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\nmodule.exports = function (cssWithMappingToString) {\n var list = [];\n\n // return the list of modules as css string\n list.toString = function toString() {\n return this.map(function (item) {\n var content = \"\";\n var needLayer = typeof item[5] !== \"undefined\";\n if (item[4]) {\n content += \"@supports (\".concat(item[4], \") {\");\n }\n if (item[2]) {\n content += \"@media \".concat(item[2], \" {\");\n }\n if (needLayer) {\n content += \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\");\n }\n content += cssWithMappingToString(item);\n if (needLayer) {\n content += \"}\";\n }\n if (item[2]) {\n content += \"}\";\n }\n if (item[4]) {\n content += \"}\";\n }\n return content;\n }).join(\"\");\n };\n\n // import a list of modules into the list\n list.i = function i(modules, media, dedupe, supports, layer) {\n if (typeof modules === \"string\") {\n modules = [[null, modules, undefined]];\n }\n var alreadyImportedModules = {};\n if (dedupe) {\n for (var k = 0; k < this.length; k++) {\n var id = this[k][0];\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n for (var _k = 0; _k < modules.length; _k++) {\n var item = [].concat(modules[_k]);\n if (dedupe && alreadyImportedModules[item[0]]) {\n continue;\n }\n if (typeof layer !== \"undefined\") {\n if (typeof item[5] === \"undefined\") {\n item[5] = layer;\n } else {\n item[1] = \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\").concat(item[1], \"}\");\n item[5] = layer;\n }\n }\n if (media) {\n if (!item[2]) {\n item[2] = media;\n } else {\n item[1] = \"@media \".concat(item[2], \" {\").concat(item[1], \"}\");\n item[2] = media;\n }\n }\n if (supports) {\n if (!item[4]) {\n item[4] = \"\".concat(supports);\n } else {\n item[1] = \"@supports (\".concat(item[4], \") {\").concat(item[1], \"}\");\n item[4] = supports;\n }\n }\n list.push(item);\n }\n };\n return list;\n};","\"use strict\";\n\nmodule.exports = function (item) {\n var content = item[1];\n var cssMapping = item[3];\n if (!cssMapping) {\n return content;\n }\n if (typeof btoa === \"function\") {\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(cssMapping))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n var sourceMapping = \"/*# \".concat(data, \" */\");\n var sourceURLs = cssMapping.sources.map(function (source) {\n return \"/*# sourceURL=\".concat(cssMapping.sourceRoot || \"\").concat(source, \" */\");\n });\n return [content].concat(sourceURLs).concat([sourceMapping]).join(\"\\n\");\n }\n return [content].join(\"\\n\");\n};","\n import API from \"!../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../css-loader/dist/cjs.js!./liquibyte.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../css-loader/dist/cjs.js!./liquibyte.css\";\n export default content && content.locals ? content.locals : undefined;\n","\"use strict\";\n\nvar stylesInDOM = [];\n\nfunction getIndexByIdentifier(identifier) {\n var result = -1;\n\n for (var i = 0; i < stylesInDOM.length; i++) {\n if (stylesInDOM[i].identifier === identifier) {\n result = i;\n break;\n }\n }\n\n return result;\n}\n\nfunction modulesToDom(list, options) {\n var idCountMap = {};\n var identifiers = [];\n\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var count = idCountMap[id] || 0;\n var identifier = \"\".concat(id, \" \").concat(count);\n idCountMap[id] = count + 1;\n var indexByIdentifier = getIndexByIdentifier(identifier);\n var obj = {\n css: item[1],\n media: item[2],\n sourceMap: item[3],\n supports: item[4],\n layer: item[5]\n };\n\n if (indexByIdentifier !== -1) {\n stylesInDOM[indexByIdentifier].references++;\n stylesInDOM[indexByIdentifier].updater(obj);\n } else {\n var updater = addElementStyle(obj, options);\n options.byIndex = i;\n stylesInDOM.splice(i, 0, {\n identifier: identifier,\n updater: updater,\n references: 1\n });\n }\n\n identifiers.push(identifier);\n }\n\n return identifiers;\n}\n\nfunction addElementStyle(obj, options) {\n var api = options.domAPI(options);\n api.update(obj);\n\n var updater = function updater(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap && newObj.supports === obj.supports && newObj.layer === obj.layer) {\n return;\n }\n\n api.update(obj = newObj);\n } else {\n api.remove();\n }\n };\n\n return updater;\n}\n\nmodule.exports = function (list, options) {\n options = options || {};\n list = list || [];\n var lastIdentifiers = modulesToDom(list, options);\n return function update(newList) {\n newList = newList || [];\n\n for (var i = 0; i < lastIdentifiers.length; i++) {\n var identifier = lastIdentifiers[i];\n var index = getIndexByIdentifier(identifier);\n stylesInDOM[index].references--;\n }\n\n var newLastIdentifiers = modulesToDom(newList, options);\n\n for (var _i = 0; _i < lastIdentifiers.length; _i++) {\n var _identifier = lastIdentifiers[_i];\n\n var _index = getIndexByIdentifier(_identifier);\n\n if (stylesInDOM[_index].references === 0) {\n stylesInDOM[_index].updater();\n\n stylesInDOM.splice(_index, 1);\n }\n }\n\n lastIdentifiers = newLastIdentifiers;\n };\n};","\"use strict\";\n\nvar memo = {};\n/* istanbul ignore next */\n\nfunction getTarget(target) {\n if (typeof memo[target] === \"undefined\") {\n var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself\n\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n\n memo[target] = styleTarget;\n }\n\n return memo[target];\n}\n/* istanbul ignore next */\n\n\nfunction insertBySelector(insert, style) {\n var target = getTarget(insert);\n\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n\n target.appendChild(style);\n}\n\nmodule.exports = insertBySelector;","\"use strict\";\n\n/* istanbul ignore next */\nfunction insertStyleElement(options) {\n var element = document.createElement(\"style\");\n options.setAttributes(element, options.attributes);\n options.insert(element, options.options);\n return element;\n}\n\nmodule.exports = insertStyleElement;","\"use strict\";\n\n/* istanbul ignore next */\nfunction setAttributesWithoutAttributes(styleElement) {\n var nonce = typeof __webpack_nonce__ !== \"undefined\" ? __webpack_nonce__ : null;\n\n if (nonce) {\n styleElement.setAttribute(\"nonce\", nonce);\n }\n}\n\nmodule.exports = setAttributesWithoutAttributes;","\"use strict\";\n\n/* istanbul ignore next */\nfunction apply(styleElement, options, obj) {\n var css = \"\";\n\n if (obj.supports) {\n css += \"@supports (\".concat(obj.supports, \") {\");\n }\n\n if (obj.media) {\n css += \"@media \".concat(obj.media, \" {\");\n }\n\n var needLayer = typeof obj.layer !== \"undefined\";\n\n if (needLayer) {\n css += \"@layer\".concat(obj.layer.length > 0 ? \" \".concat(obj.layer) : \"\", \" {\");\n }\n\n css += obj.css;\n\n if (needLayer) {\n css += \"}\";\n }\n\n if (obj.media) {\n css += \"}\";\n }\n\n if (obj.supports) {\n css += \"}\";\n }\n\n var sourceMap = obj.sourceMap;\n\n if (sourceMap && typeof btoa !== \"undefined\") {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n } // For old IE\n\n /* istanbul ignore if */\n\n\n options.styleTagTransform(css, styleElement, options.options);\n}\n\nfunction removeStyleElement(styleElement) {\n // istanbul ignore if\n if (styleElement.parentNode === null) {\n return false;\n }\n\n styleElement.parentNode.removeChild(styleElement);\n}\n/* istanbul ignore next */\n\n\nfunction domAPI(options) {\n var styleElement = options.insertStyleElement(options);\n return {\n update: function update(obj) {\n apply(styleElement, options, obj);\n },\n remove: function remove() {\n removeStyleElement(styleElement);\n }\n };\n}\n\nmodule.exports = domAPI;","\"use strict\";\n\n/* istanbul ignore next */\nfunction styleTagTransform(css, styleElement) {\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = css;\n } else {\n while (styleElement.firstChild) {\n styleElement.removeChild(styleElement.firstChild);\n }\n\n styleElement.appendChild(document.createTextNode(css));\n }\n}\n\nmodule.exports = styleTagTransform;"],"names":["___CSS_LOADER_EXPORT___","push","module","id","exports","cssWithMappingToString","list","toString","this","map","item","content","needLayer","concat","length","join","i","modules","media","dedupe","supports","layer","undefined","alreadyImportedModules","k","_k","cssMapping","btoa","base64","unescape","encodeURIComponent","JSON","stringify","data","sourceMapping","sourceURLs","sources","source","sourceRoot","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","stylesInDOM","getIndexByIdentifier","identifier","result","modulesToDom","idCountMap","identifiers","base","count","indexByIdentifier","obj","css","sourceMap","references","updater","addElementStyle","byIndex","splice","api","update","newObj","remove","lastIdentifiers","newList","index","newLastIdentifiers","_i","_index","memo","style","target","styleTarget","document","querySelector","window","HTMLIFrameElement","contentDocument","head","e","getTarget","Error","appendChild","element","createElement","attributes","styleElement","nonce","setAttribute","apply","parentNode","removeChild","removeStyleElement","styleSheet","cssText","firstChild","createTextNode"],"sourceRoot":""} \ No newline at end of file diff --git a/_static/build/5823.5045bdb.js b/_static/build/5823.5045bdb.js new file mode 100644 index 0000000..8534d80 --- /dev/null +++ b/_static/build/5823.5045bdb.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[5823],{92608:(r,o,e)=>{e.d(o,{Z:()=>i});var n=e(34663),a=e.n(n),t=e(7638),c=e.n(t)()(a());c.push([r.id,"/*\n\n Name: Paraíso (Light)\n Author: Jan T. Sott\n\n Color scheme by Jan T. Sott (https://github.com/idleberg/Paraiso-CodeMirror)\n Inspired by the art of Rubens LP (http://www.rubenslp.com.br)\n\n*/\n\n.cm-s-paraiso-light.CodeMirror { background: #e7e9db; color: #41323f; }\n.cm-s-paraiso-light div.CodeMirror-selected { background: #b9b6b0; }\n.cm-s-paraiso-light .CodeMirror-line::selection, .cm-s-paraiso-light .CodeMirror-line > span::selection, .cm-s-paraiso-light .CodeMirror-line > span > span::selection { background: #b9b6b0; }\n.cm-s-paraiso-light .CodeMirror-line::-moz-selection, .cm-s-paraiso-light .CodeMirror-line > span::-moz-selection, .cm-s-paraiso-light .CodeMirror-line > span > span::-moz-selection { background: #b9b6b0; }\n.cm-s-paraiso-light .CodeMirror-gutters { background: #e7e9db; border-right: 0px; }\n.cm-s-paraiso-light .CodeMirror-guttermarker { color: black; }\n.cm-s-paraiso-light .CodeMirror-guttermarker-subtle { color: #8d8687; }\n.cm-s-paraiso-light .CodeMirror-linenumber { color: #8d8687; }\n.cm-s-paraiso-light .CodeMirror-cursor { border-left: 1px solid #776e71; }\n\n.cm-s-paraiso-light span.cm-comment { color: #e96ba8; }\n.cm-s-paraiso-light span.cm-atom { color: #815ba4; }\n.cm-s-paraiso-light span.cm-number { color: #815ba4; }\n\n.cm-s-paraiso-light span.cm-property, .cm-s-paraiso-light span.cm-attribute { color: #48b685; }\n.cm-s-paraiso-light span.cm-keyword { color: #ef6155; }\n.cm-s-paraiso-light span.cm-string { color: #fec418; }\n\n.cm-s-paraiso-light span.cm-variable { color: #48b685; }\n.cm-s-paraiso-light span.cm-variable-2 { color: #06b6ef; }\n.cm-s-paraiso-light span.cm-def { color: #f99b15; }\n.cm-s-paraiso-light span.cm-bracket { color: #41323f; }\n.cm-s-paraiso-light span.cm-tag { color: #ef6155; }\n.cm-s-paraiso-light span.cm-link { color: #815ba4; }\n.cm-s-paraiso-light span.cm-error { background: #ef6155; color: #776e71; }\n\n.cm-s-paraiso-light .CodeMirror-activeline-background { background: #CFD1C4; }\n.cm-s-paraiso-light .CodeMirror-matchingbracket { text-decoration: underline; color: white !important; }\n","",{version:3,sources:["webpack://./../node_modules/codemirror/theme/paraiso-light.css"],names:[],mappings:"AAAA;;;;;;;;CAQC;;AAED,iCAAiC,mBAAmB,EAAE,cAAc,EAAE;AACtE,8CAA8C,mBAAmB,EAAE;AACnE,yKAAyK,mBAAmB,EAAE;AAC9L,wLAAwL,mBAAmB,EAAE;AAC7M,0CAA0C,mBAAmB,EAAE,iBAAiB,EAAE;AAClF,+CAA+C,YAAY,EAAE;AAC7D,sDAAsD,cAAc,EAAE;AACtE,6CAA6C,cAAc,EAAE;AAC7D,yCAAyC,8BAA8B,EAAE;;AAEzE,sCAAsC,cAAc,EAAE;AACtD,mCAAmC,cAAc,EAAE;AACnD,qCAAqC,cAAc,EAAE;;AAErD,8EAA8E,cAAc,EAAE;AAC9F,sCAAsC,cAAc,EAAE;AACtD,qCAAqC,cAAc,EAAE;;AAErD,uCAAuC,cAAc,EAAE;AACvD,yCAAyC,cAAc,EAAE;AACzD,kCAAkC,cAAc,EAAE;AAClD,sCAAsC,cAAc,EAAE;AACtD,kCAAkC,cAAc,EAAE;AAClD,mCAAmC,cAAc,EAAE;AACnD,oCAAoC,mBAAmB,EAAE,cAAc,EAAE;;AAEzE,wDAAwD,mBAAmB,EAAE;AAC7E,kDAAkD,0BAA0B,EAAE,uBAAuB,EAAE",sourcesContent:["/*\n\n Name: Paraíso (Light)\n Author: Jan T. Sott\n\n Color scheme by Jan T. Sott (https://github.com/idleberg/Paraiso-CodeMirror)\n Inspired by the art of Rubens LP (http://www.rubenslp.com.br)\n\n*/\n\n.cm-s-paraiso-light.CodeMirror { background: #e7e9db; color: #41323f; }\n.cm-s-paraiso-light div.CodeMirror-selected { background: #b9b6b0; }\n.cm-s-paraiso-light .CodeMirror-line::selection, .cm-s-paraiso-light .CodeMirror-line > span::selection, .cm-s-paraiso-light .CodeMirror-line > span > span::selection { background: #b9b6b0; }\n.cm-s-paraiso-light .CodeMirror-line::-moz-selection, .cm-s-paraiso-light .CodeMirror-line > span::-moz-selection, .cm-s-paraiso-light .CodeMirror-line > span > span::-moz-selection { background: #b9b6b0; }\n.cm-s-paraiso-light .CodeMirror-gutters { background: #e7e9db; border-right: 0px; }\n.cm-s-paraiso-light .CodeMirror-guttermarker { color: black; }\n.cm-s-paraiso-light .CodeMirror-guttermarker-subtle { color: #8d8687; }\n.cm-s-paraiso-light .CodeMirror-linenumber { color: #8d8687; }\n.cm-s-paraiso-light .CodeMirror-cursor { border-left: 1px solid #776e71; }\n\n.cm-s-paraiso-light span.cm-comment { color: #e96ba8; }\n.cm-s-paraiso-light span.cm-atom { color: #815ba4; }\n.cm-s-paraiso-light span.cm-number { color: #815ba4; }\n\n.cm-s-paraiso-light span.cm-property, .cm-s-paraiso-light span.cm-attribute { color: #48b685; }\n.cm-s-paraiso-light span.cm-keyword { color: #ef6155; }\n.cm-s-paraiso-light span.cm-string { color: #fec418; }\n\n.cm-s-paraiso-light span.cm-variable { color: #48b685; }\n.cm-s-paraiso-light span.cm-variable-2 { color: #06b6ef; }\n.cm-s-paraiso-light span.cm-def { color: #f99b15; }\n.cm-s-paraiso-light span.cm-bracket { color: #41323f; }\n.cm-s-paraiso-light span.cm-tag { color: #ef6155; }\n.cm-s-paraiso-light span.cm-link { color: #815ba4; }\n.cm-s-paraiso-light span.cm-error { background: #ef6155; color: #776e71; }\n\n.cm-s-paraiso-light .CodeMirror-activeline-background { background: #CFD1C4; }\n.cm-s-paraiso-light .CodeMirror-matchingbracket { text-decoration: underline; color: white !important; }\n"],sourceRoot:""}]);const i=c},7638:r=>{r.exports=function(r){var o=[];return o.toString=function(){return this.map((function(o){var e="",n=void 0!==o[5];return o[4]&&(e+="@supports (".concat(o[4],") {")),o[2]&&(e+="@media ".concat(o[2]," {")),n&&(e+="@layer".concat(o[5].length>0?" ".concat(o[5]):""," {")),e+=r(o),n&&(e+="}"),o[2]&&(e+="}"),o[4]&&(e+="}"),e})).join("")},o.i=function(r,e,n,a,t){"string"==typeof r&&(r=[[null,r,void 0]]);var c={};if(n)for(var i=0;i0?" ".concat(l[5]):""," {").concat(l[1],"}")),l[5]=t),e&&(l[2]?(l[1]="@media ".concat(l[2]," {").concat(l[1],"}"),l[2]=e):l[2]=e),a&&(l[4]?(l[1]="@supports (".concat(l[4],") {").concat(l[1],"}"),l[4]=a):l[4]="".concat(a)),o.push(l))}},o}},34663:r=>{r.exports=function(r){var o=r[1],e=r[3];if(!e)return o;if("function"==typeof btoa){var n=btoa(unescape(encodeURIComponent(JSON.stringify(e)))),a="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(n),t="/*# ".concat(a," */"),c=e.sources.map((function(r){return"/*# sourceURL=".concat(e.sourceRoot||"").concat(r," */")}));return[o].concat(c).concat([t]).join("\n")}return[o].join("\n")}},5823:(r,o,e)=>{e.r(o),e.d(o,{default:()=>b});var n=e(1892),a=e.n(n),t=e(95760),c=e.n(t),i=e(38311),s=e.n(i),A=e(58192),l=e.n(A),p=e(38060),m=e.n(p),u=e(54865),d=e.n(u),h=e(92608),g={};g.styleTagTransform=d(),g.setAttributes=l(),g.insert=s().bind(null,"head"),g.domAPI=c(),g.insertStyleElement=m(),a()(h.Z,g);const b=h.Z&&h.Z.locals?h.Z.locals:void 0},1892:r=>{var o=[];function e(r){for(var e=-1,n=0;n{var o={};r.exports=function(r,e){var n=function(r){if(void 0===o[r]){var e=document.querySelector(r);if(window.HTMLIFrameElement&&e instanceof window.HTMLIFrameElement)try{e=e.contentDocument.head}catch(r){e=null}o[r]=e}return o[r]}(r);if(!n)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");n.appendChild(e)}},38060:r=>{r.exports=function(r){var o=document.createElement("style");return r.setAttributes(o,r.attributes),r.insert(o,r.options),o}},58192:(r,o,e)=>{r.exports=function(r){var o=e.nc;o&&r.setAttribute("nonce",o)}},95760:r=>{r.exports=function(r){var o=r.insertStyleElement(r);return{update:function(e){!function(r,o,e){var n="";e.supports&&(n+="@supports (".concat(e.supports,") {")),e.media&&(n+="@media ".concat(e.media," {"));var a=void 0!==e.layer;a&&(n+="@layer".concat(e.layer.length>0?" ".concat(e.layer):""," {")),n+=e.css,a&&(n+="}"),e.media&&(n+="}"),e.supports&&(n+="}");var t=e.sourceMap;t&&"undefined"!=typeof btoa&&(n+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(t))))," */")),o.styleTagTransform(n,r,o.options)}(o,r,e)},remove:function(){!function(r){if(null===r.parentNode)return!1;r.parentNode.removeChild(r)}(o)}}}},54865:r=>{r.exports=function(r,o){if(o.styleSheet)o.styleSheet.cssText=r;else{for(;o.firstChild;)o.removeChild(o.firstChild);o.appendChild(document.createTextNode(r))}}}}]); +//# sourceMappingURL=5823.5045bdb.js.map \ No newline at end of file diff --git a/_static/build/5823.5045bdb.js.map b/_static/build/5823.5045bdb.js.map new file mode 100644 index 0000000..cd5d189 --- /dev/null +++ b/_static/build/5823.5045bdb.js.map @@ -0,0 +1 @@ +{"version":3,"file":"5823.5045bdb.js","mappings":"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","sources":["webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/theme/paraiso-light.css","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/css-loader/dist/runtime/api.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/css-loader/dist/runtime/sourceMaps.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/theme/paraiso-light.css?d492","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/insertBySelector.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/insertStyleElement.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/styleDomAPI.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/styleTagTransform.js"],"sourcesContent":["// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"/*\\n\\n Name: Paraíso (Light)\\n Author: Jan T. Sott\\n\\n Color scheme by Jan T. Sott (https://github.com/idleberg/Paraiso-CodeMirror)\\n Inspired by the art of Rubens LP (http://www.rubenslp.com.br)\\n\\n*/\\n\\n.cm-s-paraiso-light.CodeMirror { background: #e7e9db; color: #41323f; }\\n.cm-s-paraiso-light div.CodeMirror-selected { background: #b9b6b0; }\\n.cm-s-paraiso-light .CodeMirror-line::selection, .cm-s-paraiso-light .CodeMirror-line > span::selection, .cm-s-paraiso-light .CodeMirror-line > span > span::selection { background: #b9b6b0; }\\n.cm-s-paraiso-light .CodeMirror-line::-moz-selection, .cm-s-paraiso-light .CodeMirror-line > span::-moz-selection, .cm-s-paraiso-light .CodeMirror-line > span > span::-moz-selection { background: #b9b6b0; }\\n.cm-s-paraiso-light .CodeMirror-gutters { background: #e7e9db; border-right: 0px; }\\n.cm-s-paraiso-light .CodeMirror-guttermarker { color: black; }\\n.cm-s-paraiso-light .CodeMirror-guttermarker-subtle { color: #8d8687; }\\n.cm-s-paraiso-light .CodeMirror-linenumber { color: #8d8687; }\\n.cm-s-paraiso-light .CodeMirror-cursor { border-left: 1px solid #776e71; }\\n\\n.cm-s-paraiso-light span.cm-comment { color: #e96ba8; }\\n.cm-s-paraiso-light span.cm-atom { color: #815ba4; }\\n.cm-s-paraiso-light span.cm-number { color: #815ba4; }\\n\\n.cm-s-paraiso-light span.cm-property, .cm-s-paraiso-light span.cm-attribute { color: #48b685; }\\n.cm-s-paraiso-light span.cm-keyword { color: #ef6155; }\\n.cm-s-paraiso-light span.cm-string { color: #fec418; }\\n\\n.cm-s-paraiso-light span.cm-variable { color: #48b685; }\\n.cm-s-paraiso-light span.cm-variable-2 { color: #06b6ef; }\\n.cm-s-paraiso-light span.cm-def { color: #f99b15; }\\n.cm-s-paraiso-light span.cm-bracket { color: #41323f; }\\n.cm-s-paraiso-light span.cm-tag { color: #ef6155; }\\n.cm-s-paraiso-light span.cm-link { color: #815ba4; }\\n.cm-s-paraiso-light span.cm-error { background: #ef6155; color: #776e71; }\\n\\n.cm-s-paraiso-light .CodeMirror-activeline-background { background: #CFD1C4; }\\n.cm-s-paraiso-light .CodeMirror-matchingbracket { text-decoration: underline; color: white !important; }\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./../node_modules/codemirror/theme/paraiso-light.css\"],\"names\":[],\"mappings\":\"AAAA;;;;;;;;CAQC;;AAED,iCAAiC,mBAAmB,EAAE,cAAc,EAAE;AACtE,8CAA8C,mBAAmB,EAAE;AACnE,yKAAyK,mBAAmB,EAAE;AAC9L,wLAAwL,mBAAmB,EAAE;AAC7M,0CAA0C,mBAAmB,EAAE,iBAAiB,EAAE;AAClF,+CAA+C,YAAY,EAAE;AAC7D,sDAAsD,cAAc,EAAE;AACtE,6CAA6C,cAAc,EAAE;AAC7D,yCAAyC,8BAA8B,EAAE;;AAEzE,sCAAsC,cAAc,EAAE;AACtD,mCAAmC,cAAc,EAAE;AACnD,qCAAqC,cAAc,EAAE;;AAErD,8EAA8E,cAAc,EAAE;AAC9F,sCAAsC,cAAc,EAAE;AACtD,qCAAqC,cAAc,EAAE;;AAErD,uCAAuC,cAAc,EAAE;AACvD,yCAAyC,cAAc,EAAE;AACzD,kCAAkC,cAAc,EAAE;AAClD,sCAAsC,cAAc,EAAE;AACtD,kCAAkC,cAAc,EAAE;AAClD,mCAAmC,cAAc,EAAE;AACnD,oCAAoC,mBAAmB,EAAE,cAAc,EAAE;;AAEzE,wDAAwD,mBAAmB,EAAE;AAC7E,kDAAkD,0BAA0B,EAAE,uBAAuB,EAAE\",\"sourcesContent\":[\"/*\\n\\n Name: Paraíso (Light)\\n Author: Jan T. Sott\\n\\n Color scheme by Jan T. Sott (https://github.com/idleberg/Paraiso-CodeMirror)\\n Inspired by the art of Rubens LP (http://www.rubenslp.com.br)\\n\\n*/\\n\\n.cm-s-paraiso-light.CodeMirror { background: #e7e9db; color: #41323f; }\\n.cm-s-paraiso-light div.CodeMirror-selected { background: #b9b6b0; }\\n.cm-s-paraiso-light .CodeMirror-line::selection, .cm-s-paraiso-light .CodeMirror-line > span::selection, .cm-s-paraiso-light .CodeMirror-line > span > span::selection { background: #b9b6b0; }\\n.cm-s-paraiso-light .CodeMirror-line::-moz-selection, .cm-s-paraiso-light .CodeMirror-line > span::-moz-selection, .cm-s-paraiso-light .CodeMirror-line > span > span::-moz-selection { background: #b9b6b0; }\\n.cm-s-paraiso-light .CodeMirror-gutters { background: #e7e9db; border-right: 0px; }\\n.cm-s-paraiso-light .CodeMirror-guttermarker { color: black; }\\n.cm-s-paraiso-light .CodeMirror-guttermarker-subtle { color: #8d8687; }\\n.cm-s-paraiso-light .CodeMirror-linenumber { color: #8d8687; }\\n.cm-s-paraiso-light .CodeMirror-cursor { border-left: 1px solid #776e71; }\\n\\n.cm-s-paraiso-light span.cm-comment { color: #e96ba8; }\\n.cm-s-paraiso-light span.cm-atom { color: #815ba4; }\\n.cm-s-paraiso-light span.cm-number { color: #815ba4; }\\n\\n.cm-s-paraiso-light span.cm-property, .cm-s-paraiso-light span.cm-attribute { color: #48b685; }\\n.cm-s-paraiso-light span.cm-keyword { color: #ef6155; }\\n.cm-s-paraiso-light span.cm-string { color: #fec418; }\\n\\n.cm-s-paraiso-light span.cm-variable { color: #48b685; }\\n.cm-s-paraiso-light span.cm-variable-2 { color: #06b6ef; }\\n.cm-s-paraiso-light span.cm-def { color: #f99b15; }\\n.cm-s-paraiso-light span.cm-bracket { color: #41323f; }\\n.cm-s-paraiso-light span.cm-tag { color: #ef6155; }\\n.cm-s-paraiso-light span.cm-link { color: #815ba4; }\\n.cm-s-paraiso-light span.cm-error { background: #ef6155; color: #776e71; }\\n\\n.cm-s-paraiso-light .CodeMirror-activeline-background { background: #CFD1C4; }\\n.cm-s-paraiso-light .CodeMirror-matchingbracket { text-decoration: underline; color: white !important; }\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\nmodule.exports = function (cssWithMappingToString) {\n var list = [];\n\n // return the list of modules as css string\n list.toString = function toString() {\n return this.map(function (item) {\n var content = \"\";\n var needLayer = typeof item[5] !== \"undefined\";\n if (item[4]) {\n content += \"@supports (\".concat(item[4], \") {\");\n }\n if (item[2]) {\n content += \"@media \".concat(item[2], \" {\");\n }\n if (needLayer) {\n content += \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\");\n }\n content += cssWithMappingToString(item);\n if (needLayer) {\n content += \"}\";\n }\n if (item[2]) {\n content += \"}\";\n }\n if (item[4]) {\n content += \"}\";\n }\n return content;\n }).join(\"\");\n };\n\n // import a list of modules into the list\n list.i = function i(modules, media, dedupe, supports, layer) {\n if (typeof modules === \"string\") {\n modules = [[null, modules, undefined]];\n }\n var alreadyImportedModules = {};\n if (dedupe) {\n for (var k = 0; k < this.length; k++) {\n var id = this[k][0];\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n for (var _k = 0; _k < modules.length; _k++) {\n var item = [].concat(modules[_k]);\n if (dedupe && alreadyImportedModules[item[0]]) {\n continue;\n }\n if (typeof layer !== \"undefined\") {\n if (typeof item[5] === \"undefined\") {\n item[5] = layer;\n } else {\n item[1] = \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\").concat(item[1], \"}\");\n item[5] = layer;\n }\n }\n if (media) {\n if (!item[2]) {\n item[2] = media;\n } else {\n item[1] = \"@media \".concat(item[2], \" {\").concat(item[1], \"}\");\n item[2] = media;\n }\n }\n if (supports) {\n if (!item[4]) {\n item[4] = \"\".concat(supports);\n } else {\n item[1] = \"@supports (\".concat(item[4], \") {\").concat(item[1], \"}\");\n item[4] = supports;\n }\n }\n list.push(item);\n }\n };\n return list;\n};","\"use strict\";\n\nmodule.exports = function (item) {\n var content = item[1];\n var cssMapping = item[3];\n if (!cssMapping) {\n return content;\n }\n if (typeof btoa === \"function\") {\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(cssMapping))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n var sourceMapping = \"/*# \".concat(data, \" */\");\n var sourceURLs = cssMapping.sources.map(function (source) {\n return \"/*# sourceURL=\".concat(cssMapping.sourceRoot || \"\").concat(source, \" */\");\n });\n return [content].concat(sourceURLs).concat([sourceMapping]).join(\"\\n\");\n }\n return [content].join(\"\\n\");\n};","\n import API from \"!../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../css-loader/dist/cjs.js!./paraiso-light.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../css-loader/dist/cjs.js!./paraiso-light.css\";\n export default content && content.locals ? content.locals : undefined;\n","\"use strict\";\n\nvar stylesInDOM = [];\n\nfunction getIndexByIdentifier(identifier) {\n var result = -1;\n\n for (var i = 0; i < stylesInDOM.length; i++) {\n if (stylesInDOM[i].identifier === identifier) {\n result = i;\n break;\n }\n }\n\n return result;\n}\n\nfunction modulesToDom(list, options) {\n var idCountMap = {};\n var identifiers = [];\n\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var count = idCountMap[id] || 0;\n var identifier = \"\".concat(id, \" \").concat(count);\n idCountMap[id] = count + 1;\n var indexByIdentifier = getIndexByIdentifier(identifier);\n var obj = {\n css: item[1],\n media: item[2],\n sourceMap: item[3],\n supports: item[4],\n layer: item[5]\n };\n\n if (indexByIdentifier !== -1) {\n stylesInDOM[indexByIdentifier].references++;\n stylesInDOM[indexByIdentifier].updater(obj);\n } else {\n var updater = addElementStyle(obj, options);\n options.byIndex = i;\n stylesInDOM.splice(i, 0, {\n identifier: identifier,\n updater: updater,\n references: 1\n });\n }\n\n identifiers.push(identifier);\n }\n\n return identifiers;\n}\n\nfunction addElementStyle(obj, options) {\n var api = options.domAPI(options);\n api.update(obj);\n\n var updater = function updater(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap && newObj.supports === obj.supports && newObj.layer === obj.layer) {\n return;\n }\n\n api.update(obj = newObj);\n } else {\n api.remove();\n }\n };\n\n return updater;\n}\n\nmodule.exports = function (list, options) {\n options = options || {};\n list = list || [];\n var lastIdentifiers = modulesToDom(list, options);\n return function update(newList) {\n newList = newList || [];\n\n for (var i = 0; i < lastIdentifiers.length; i++) {\n var identifier = lastIdentifiers[i];\n var index = getIndexByIdentifier(identifier);\n stylesInDOM[index].references--;\n }\n\n var newLastIdentifiers = modulesToDom(newList, options);\n\n for (var _i = 0; _i < lastIdentifiers.length; _i++) {\n var _identifier = lastIdentifiers[_i];\n\n var _index = getIndexByIdentifier(_identifier);\n\n if (stylesInDOM[_index].references === 0) {\n stylesInDOM[_index].updater();\n\n stylesInDOM.splice(_index, 1);\n }\n }\n\n lastIdentifiers = newLastIdentifiers;\n };\n};","\"use strict\";\n\nvar memo = {};\n/* istanbul ignore next */\n\nfunction getTarget(target) {\n if (typeof memo[target] === \"undefined\") {\n var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself\n\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n\n memo[target] = styleTarget;\n }\n\n return memo[target];\n}\n/* istanbul ignore next */\n\n\nfunction insertBySelector(insert, style) {\n var target = getTarget(insert);\n\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n\n target.appendChild(style);\n}\n\nmodule.exports = insertBySelector;","\"use strict\";\n\n/* istanbul ignore next */\nfunction insertStyleElement(options) {\n var element = document.createElement(\"style\");\n options.setAttributes(element, options.attributes);\n options.insert(element, options.options);\n return element;\n}\n\nmodule.exports = insertStyleElement;","\"use strict\";\n\n/* istanbul ignore next */\nfunction setAttributesWithoutAttributes(styleElement) {\n var nonce = typeof __webpack_nonce__ !== \"undefined\" ? __webpack_nonce__ : null;\n\n if (nonce) {\n styleElement.setAttribute(\"nonce\", nonce);\n }\n}\n\nmodule.exports = setAttributesWithoutAttributes;","\"use strict\";\n\n/* istanbul ignore next */\nfunction apply(styleElement, options, obj) {\n var css = \"\";\n\n if (obj.supports) {\n css += \"@supports (\".concat(obj.supports, \") {\");\n }\n\n if (obj.media) {\n css += \"@media \".concat(obj.media, \" {\");\n }\n\n var needLayer = typeof obj.layer !== \"undefined\";\n\n if (needLayer) {\n css += \"@layer\".concat(obj.layer.length > 0 ? \" \".concat(obj.layer) : \"\", \" {\");\n }\n\n css += obj.css;\n\n if (needLayer) {\n css += \"}\";\n }\n\n if (obj.media) {\n css += \"}\";\n }\n\n if (obj.supports) {\n css += \"}\";\n }\n\n var sourceMap = obj.sourceMap;\n\n if (sourceMap && typeof btoa !== \"undefined\") {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n } // For old IE\n\n /* istanbul ignore if */\n\n\n options.styleTagTransform(css, styleElement, options.options);\n}\n\nfunction removeStyleElement(styleElement) {\n // istanbul ignore if\n if (styleElement.parentNode === null) {\n return false;\n }\n\n styleElement.parentNode.removeChild(styleElement);\n}\n/* istanbul ignore next */\n\n\nfunction domAPI(options) {\n var styleElement = options.insertStyleElement(options);\n return {\n update: function update(obj) {\n apply(styleElement, options, obj);\n },\n remove: function remove() {\n removeStyleElement(styleElement);\n }\n };\n}\n\nmodule.exports = domAPI;","\"use strict\";\n\n/* istanbul ignore next */\nfunction styleTagTransform(css, styleElement) {\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = css;\n } else {\n while (styleElement.firstChild) {\n styleElement.removeChild(styleElement.firstChild);\n }\n\n styleElement.appendChild(document.createTextNode(css));\n }\n}\n\nmodule.exports = styleTagTransform;"],"names":["___CSS_LOADER_EXPORT___","push","module","id","exports","cssWithMappingToString","list","toString","this","map","item","content","needLayer","concat","length","join","i","modules","media","dedupe","supports","layer","undefined","alreadyImportedModules","k","_k","cssMapping","btoa","base64","unescape","encodeURIComponent","JSON","stringify","data","sourceMapping","sourceURLs","sources","source","sourceRoot","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","stylesInDOM","getIndexByIdentifier","identifier","result","modulesToDom","idCountMap","identifiers","base","count","indexByIdentifier","obj","css","sourceMap","references","updater","addElementStyle","byIndex","splice","api","update","newObj","remove","lastIdentifiers","newList","index","newLastIdentifiers","_i","_index","memo","style","target","styleTarget","document","querySelector","window","HTMLIFrameElement","contentDocument","head","e","getTarget","Error","appendChild","element","createElement","attributes","styleElement","nonce","setAttribute","apply","parentNode","removeChild","removeStyleElement","styleSheet","cssText","firstChild","createTextNode"],"sourceRoot":""} \ No newline at end of file diff --git a/_static/build/5851.30b7b2a.js b/_static/build/5851.30b7b2a.js new file mode 100644 index 0000000..12f83d4 --- /dev/null +++ b/_static/build/5851.30b7b2a.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[5851],{35851:(t,e,i)=>{i.r(e),i.d(e,{DisposableDelegate:()=>p,DisposableSet:()=>c,ObservableDisposableDelegate:()=>u,ObservableDisposableSet:()=>a});var o=i(43892),n=i(70942),s=function(t,e){return s=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&(t[i]=e[i])},s(t,e)};function r(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");function i(){this.constructor=t}s(t,e),t.prototype=null===e?Object.create(e):(i.prototype=e.prototype,new i)}var p=function(){function t(t){this._fn=t}return Object.defineProperty(t.prototype,"isDisposed",{get:function(){return!this._fn},enumerable:!0,configurable:!0}),t.prototype.dispose=function(){if(this._fn){var t=this._fn;this._fn=null,t()}},t}(),u=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e._disposed=new n.Signal(e),e}return r(e,t),Object.defineProperty(e.prototype,"disposed",{get:function(){return this._disposed},enumerable:!0,configurable:!0}),e.prototype.dispose=function(){this.isDisposed||(t.prototype.dispose.call(this),this._disposed.emit(void 0),n.Signal.clearData(this))},e}(p),c=function(){function t(){this._isDisposed=!1,this._items=new Set}return Object.defineProperty(t.prototype,"isDisposed",{get:function(){return this._isDisposed},enumerable:!0,configurable:!0}),t.prototype.dispose=function(){this._isDisposed||(this._isDisposed=!0,this._items.forEach((function(t){t.dispose()})),this._items.clear())},t.prototype.contains=function(t){return this._items.has(t)},t.prototype.add=function(t){this._items.add(t)},t.prototype.remove=function(t){this._items.delete(t)},t.prototype.clear=function(){this._items.clear()},t}();!function(t){t.from=function(e){var i=new t;return(0,o.each)(e,(function(t){i.add(t)})),i}}(c||(c={}));var a=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e._disposed=new n.Signal(e),e}return r(e,t),Object.defineProperty(e.prototype,"disposed",{get:function(){return this._disposed},enumerable:!0,configurable:!0}),e.prototype.dispose=function(){this.isDisposed||(t.prototype.dispose.call(this),this._disposed.emit(void 0),n.Signal.clearData(this))},e}(c);!function(t){t.from=function(e){var i=new t;return(0,o.each)(e,(function(t){i.add(t)})),i}}(a||(a={}))}}]); +//# sourceMappingURL=5851.30b7b2a.js.map \ No newline at end of file diff --git a/_static/build/5851.30b7b2a.js.map b/_static/build/5851.30b7b2a.js.map new file mode 100644 index 0000000..2327f40 --- /dev/null +++ b/_static/build/5851.30b7b2a.js.map @@ -0,0 +1 @@ +{"version":3,"file":"5851.30b7b2a.js","mappings":"2RAgBIA,EAAgB,SAASC,EAAGC,GAI5B,OAHAF,EAAgBG,OAAOC,gBAClB,CAAEC,UAAW,cAAgBC,OAAS,SAAUL,EAAGC,GAAKD,EAAEI,UAAYH,CAAG,GAC1E,SAAUD,EAAGC,GAAK,IAAK,IAAIK,KAAKL,EAAOC,OAAOK,UAAUC,eAAeC,KAAKR,EAAGK,KAAIN,EAAEM,GAAKL,EAAEK,GAAI,EAC7FP,EAAcC,EAAGC,EAC5B,EAEO,SAASS,EAAUV,EAAGC,GACzB,GAAiB,mBAANA,GAA0B,OAANA,EAC3B,MAAM,IAAIU,UAAU,uBAAyBC,OAAOX,GAAK,iCAE7D,SAASY,IAAOC,KAAKC,YAAcf,CAAG,CADtCD,EAAcC,EAAGC,GAEjBD,EAAEO,UAAkB,OAANN,EAAaC,OAAOc,OAAOf,IAAMY,EAAGN,UAAYN,EAAEM,UAAW,IAAIM,EACnF,C,iBC6BE,WAAYI,GACVH,KAAKI,IAAMD,C,CAuBf,OAjBE,sBAAI,yBAAU,C,IAAd,WACE,OAAQH,KAAKI,G,kCAMf,YAAAC,QAAA,WACE,GAAKL,KAAKI,IAAV,CAGA,IAAID,EAAKH,KAAKI,IACdJ,KAAKI,IAAM,KACXD,G,GAIJ,E,iBAKA,2D,OAsBU,EAAAG,UAAY,IAAI,EAAAC,OAAmB,G,EAC7C,OAtBU,OAKR,sBAAI,uBAAQ,C,IAAZ,WACE,OAAOP,KAAKM,S,kCAMd,YAAAD,QAAA,WACML,KAAKQ,aAGT,YAAMH,QAAO,WACbL,KAAKM,UAAUG,UAAKC,GACpB,EAAAH,OAAA,UAAiBP,M,EAIrB,E,CAtBUW,G,aA2BV,aAmEU,KAAAC,aAAc,EACd,KAAAC,OAAS,IAAIC,G,CACvB,OAjEE,sBAAI,yBAAU,C,IAAd,WACE,OAAOd,KAAKY,W,kCASd,YAAAP,QAAA,WACML,KAAKY,cAGTZ,KAAKY,aAAc,EACnBZ,KAAKa,OAAOE,SAAQ,SAAAC,GAClBA,EAAKX,S,IAEPL,KAAKa,OAAOI,Q,EAUd,YAAAC,SAAA,SAASF,GACP,OAAOhB,KAAKa,OAAOM,IAAIH,E,EAWzB,YAAAI,IAAA,SAAIJ,GACFhB,KAAKa,OAAOO,IAAIJ,E,EAWlB,YAAAK,OAAA,SAAOL,GACLhB,KAAKa,OAAOS,OAAON,E,EAMrB,YAAAC,MAAA,WACEjB,KAAKa,OAAOI,O,EAKhB,E,IAKA,SAAiBM,GAQC,EAAAC,KAAhB,SAAqBC,GACnB,IAAIC,EAAM,IAAIH,EAId,OAHA,IAAAI,MAAKF,GAAO,SAAAT,GACVU,EAAIN,IAAIJ,E,IAEHU,C,CAEV,CAfD,CAAiBH,IAAAA,EAAa,K,kBAoB9B,2D,OAyBU,EAAAjB,UAAY,IAAI,EAAAC,OAAmB,G,EAC7C,OAzBU,OAKR,sBAAI,uBAAQ,C,IAAZ,WACE,OAAOP,KAAKM,S,kCASd,YAAAD,QAAA,WACML,KAAKQ,aAGT,YAAMH,QAAO,WACbL,KAAKM,UAAUG,UAAKC,GACpB,EAAAH,OAAA,UAAiBP,M,EAIrB,E,CAzBUuB,IA8BV,SAAiBK,GAQC,EAAAJ,KAAhB,SACEC,GAEA,IAAIC,EAAM,IAAIE,EAId,OAHA,IAAAD,MAAKF,GAAO,SAAAT,GACVU,EAAIN,IAAIJ,E,IAEHU,C,CAEV,CAjBD,CAAiBE,IAAAA,EAAuB,I","sources":["webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@lumino/disposable/node_modules/tslib/tslib.es6.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@lumino/disposable/src/index.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || from);\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n/*-----------------------------------------------------------------------------\n| Copyright (c) 2014-2017, PhosphorJS Contributors\n|\n| Distributed under the terms of the BSD 3-Clause License.\n|\n| The full license is in the file LICENSE, distributed with this software.\n|----------------------------------------------------------------------------*/\nimport { each, IterableOrArrayLike } from '@lumino/algorithm';\n\nimport { ISignal, Signal } from '@lumino/signaling';\n\n/**\n * An object which implements the disposable pattern.\n */\nexport interface IDisposable {\n /**\n * Test whether the object has been disposed.\n *\n * #### Notes\n * This property is always safe to access.\n */\n readonly isDisposed: boolean;\n\n /**\n * Dispose of the resources held by the object.\n *\n * #### Notes\n * If the object's `dispose` method is called more than once, all\n * calls made after the first will be a no-op.\n *\n * #### Undefined Behavior\n * It is undefined behavior to use any functionality of the object\n * after it has been disposed unless otherwise explicitly noted.\n */\n dispose(): void;\n}\n\n/**\n * A disposable object with an observable `disposed` signal.\n */\nexport interface IObservableDisposable extends IDisposable {\n /**\n * A signal emitted when the object is disposed.\n */\n readonly disposed: ISignal;\n}\n\n/**\n * A disposable object which delegates to a callback function.\n */\nexport class DisposableDelegate implements IDisposable {\n /**\n * Construct a new disposable delegate.\n *\n * @param fn - The callback function to invoke on dispose.\n */\n constructor(fn: () => void) {\n this._fn = fn;\n }\n\n /**\n * Test whether the delegate has been disposed.\n */\n get isDisposed(): boolean {\n return !this._fn;\n }\n\n /**\n * Dispose of the delegate and invoke the callback function.\n */\n dispose(): void {\n if (!this._fn) {\n return;\n }\n let fn = this._fn;\n this._fn = null;\n fn();\n }\n\n private _fn: (() => void) | null;\n}\n\n/**\n * An observable disposable object which delegates to a callback function.\n */\nexport class ObservableDisposableDelegate\n extends DisposableDelegate\n implements IObservableDisposable {\n /**\n * A signal emitted when the delegate is disposed.\n */\n get disposed(): ISignal {\n return this._disposed;\n }\n\n /**\n * Dispose of the delegate and invoke the callback function.\n */\n dispose(): void {\n if (this.isDisposed) {\n return;\n }\n super.dispose();\n this._disposed.emit(undefined);\n Signal.clearData(this);\n }\n\n private _disposed = new Signal(this);\n}\n\n/**\n * An object which manages a collection of disposable items.\n */\nexport class DisposableSet implements IDisposable {\n /**\n * Test whether the set has been disposed.\n */\n get isDisposed(): boolean {\n return this._isDisposed;\n }\n\n /**\n * Dispose of the set and the items it contains.\n *\n * #### Notes\n * Items are disposed in the order they are added to the set.\n */\n dispose(): void {\n if (this._isDisposed) {\n return;\n }\n this._isDisposed = true;\n this._items.forEach(item => {\n item.dispose();\n });\n this._items.clear();\n }\n\n /**\n * Test whether the set contains a specific item.\n *\n * @param item - The item of interest.\n *\n * @returns `true` if the set contains the item, `false` otherwise.\n */\n contains(item: IDisposable): boolean {\n return this._items.has(item);\n }\n\n /**\n * Add a disposable item to the set.\n *\n * @param item - The item to add to the set.\n *\n * #### Notes\n * If the item is already contained in the set, this is a no-op.\n */\n add(item: IDisposable): void {\n this._items.add(item);\n }\n\n /**\n * Remove a disposable item from the set.\n *\n * @param item - The item to remove from the set.\n *\n * #### Notes\n * If the item is not contained in the set, this is a no-op.\n */\n remove(item: IDisposable): void {\n this._items.delete(item);\n }\n\n /**\n * Remove all items from the set.\n */\n clear(): void {\n this._items.clear();\n }\n\n private _isDisposed = false;\n private _items = new Set();\n}\n\n/**\n * The namespace for the `DisposableSet` class statics.\n */\nexport namespace DisposableSet {\n /**\n * Create a disposable set from an iterable of items.\n *\n * @param items - The iterable or array-like object of interest.\n *\n * @returns A new disposable initialized with the given items.\n */\n export function from(items: IterableOrArrayLike): DisposableSet {\n let set = new DisposableSet();\n each(items, item => {\n set.add(item);\n });\n return set;\n }\n}\n\n/**\n * An observable object which manages a collection of disposable items.\n */\nexport class ObservableDisposableSet\n extends DisposableSet\n implements IObservableDisposable {\n /**\n * A signal emitted when the set is disposed.\n */\n get disposed(): ISignal {\n return this._disposed;\n }\n\n /**\n * Dispose of the set and the items it contains.\n *\n * #### Notes\n * Items are disposed in the order they are added to the set.\n */\n dispose(): void {\n if (this.isDisposed) {\n return;\n }\n super.dispose();\n this._disposed.emit(undefined);\n Signal.clearData(this);\n }\n\n private _disposed = new Signal(this);\n}\n\n/**\n * The namespace for the `ObservableDisposableSet` class statics.\n */\nexport namespace ObservableDisposableSet {\n /**\n * Create an observable disposable set from an iterable of items.\n *\n * @param items - The iterable or array-like object of interest.\n *\n * @returns A new disposable initialized with the given items.\n */\n export function from(\n items: IterableOrArrayLike\n ): ObservableDisposableSet {\n let set = new ObservableDisposableSet();\n each(items, item => {\n set.add(item);\n });\n return set;\n }\n}\n"],"names":["extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","prototype","hasOwnProperty","call","__extends","TypeError","String","__","this","constructor","create","fn","_fn","dispose","_disposed","Signal","isDisposed","emit","undefined","DisposableDelegate","_isDisposed","_items","Set","forEach","item","clear","contains","has","add","remove","delete","DisposableSet","from","items","set","each","ObservableDisposableSet"],"sourceRoot":""} \ No newline at end of file diff --git a/_static/build/5878.32d92fa.js b/_static/build/5878.32d92fa.js new file mode 100644 index 0000000..ab89f60 --- /dev/null +++ b/_static/build/5878.32d92fa.js @@ -0,0 +1,2 @@ +(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[5878,4535],{95878:(e,t,n)=>{"use strict";n.r(t),n.d(t,{CodeMirrorEditor:()=>S,CodeMirrorEditorFactory:()=>L,CodeMirrorMimeTypeService:()=>T,EditorSyntaxStatus:()=>z,ICodeMirror:()=>O,Mode:()=>k,editorServices:()=>I});var r=n(4265),i=n(2814),o=n(84853),a=n(43892),s=n(26169),l=n(43231),c=n(61313),u=n(70942),d=n(41981),m=n.n(d);n(76234),n(4218),n(37643),n(52971),n(41652),n(12575),n(74305),n(22842),n(2450),n(11723),n(48501),n(60762),n(38153),n(40554),n(13439),n(41859),n(67553),n(71633),n(97988),n(54206),n(19306),n(24354);var f=n(41865),p=n(79915),h=n(12904);const g=e=>class{constructor(e){this._=e}destroy(){e(this._)}};g(clearTimeout),g(clearInterval),g((e=>"undefined"!=typeof requestAnimationFrame&&cancelAnimationFrame(e))),g((e=>"undefined"!=typeof cancelIdleCallback&&cancelIdleCallback(e)));var b=n(32549);const v="y-codemirror",x=e=>{const t=document.createElement("span");t.setAttribute("style","user-select: none;");const n=document.createElement("span");n.insertBefore(document.createTextNode(""),null);const r=document.createElement("span");return r.setAttribute("class","y-line-selection"),r.setAttribute("style",`display: inline-block; position: absolute; left: 4px; right: 4px; top: 0; bottom: 0; background-color: ${e}70`),t.insertBefore(r,null),t.insertBefore(n,null),t};class y extends b.y{constructor(e,t,n=null,{yUndoManager:r=null}={}){super();const i=e.doc,o=t.getDoc();if(this.doc=i,this.type=e,this.cm=t,this.cmDoc=o,this.awareness=n||null,this.yUndoManager=r,this._onStackItemAdded=({stackItem:t,changedParentTypes:n})=>{n.has(e)&&this._beforeChangeSelection&&t.meta.set(this,this._beforeChangeSelection)},this._onStackItemPopped=({stackItem:e})=>{const n=e.meta.get(this);if(n){const e=p.createAbsolutePositionFromRelativePosition(n.anchor,i).index,r=p.createAbsolutePositionFromRelativePosition(n.head,i).index;t.setSelection(t.posFromIndex(e),t.posFromIndex(r)),this._beforeChange()}},r){r.trackedOrigins.add(this);const e=e=>{e.endOperation(),r.undo(),e.startOperation()},n=e=>{e.endOperation(),r.redo(),e.startOperation()};t.addKeyMap({"Ctrl-Z":e,"Shift-Ctrl-Z":n,"Ctrl-Y":n,"Cmd-Z":e,"Shift-Cmd-Z":n,"Cmd-Y":n}),r.on("stack-item-added",this._onStackItemAdded),r.on("stack-item-popped",this._onStackItemPopped)}this._mux=(()=>{let e=!0;return(t,n)=>{if(e){e=!1;try{t()}finally{e=!0}}else void 0!==n&&n()}})(),o.setValue(e.toString()),this._typeObserver=e=>((e,t)=>{e._mux((()=>{const n=e.cmDoc,r=n.getEditor();let i=r.indexFromPos(r.getCursor("anchor")),o=r.indexFromPos(r.getCursor("head"));const a=o{const e=t.delta;let r=0;for(let a=0;a{e.getDoc()===o&&((e,t)=>{e._mux((()=>{e.doc.transact((()=>{const n=e.yUndoManager&&t.some((e=>"paste"===e.origin));if(n&&e.yUndoManager.stopCapturing(),t.length>1){const t=((e,t)=>{let n=0,r=0;for(;ne.length)).reduce(f.IH)+n.removed.length-1;i>0&&e.type.delete(r,i),n.text.length>0&&e.type.insert(r,n.text.join("\n"))}n&&e.yUndoManager.stopCapturing()}),e)})),e._pendingCursorEvent&&(e._pendingCursorEvent=!1,e.emit("cursorActivity",[e]))})(this,t)},this._cursors=new Map,this._changedCursors=new Set,this._debounceCursorEvent=(e=>{let t=-1;return e=>{clearTimeout(t),e&&(t=setTimeout(e,10))}})(),this._awarenessListener=r=>{if(t.getDoc()!==o)return;const a=e=>{e!==i.clientID&&this._changedCursors.add(e)};r.added.forEach(a),r.removed.forEach(a),r.updated.forEach(a),this._changedCursors.size>0&&this._debounceCursorEvent((()=>{this._changedCursors.forEach((r=>{((e,t,n,r,i,o)=>{const a=o.getStates().get(i),s=r.get(i);if(void 0!==s&&(s.caret&&s.caret.clear(),s.sel.forEach((e=>e.clear())),r.delete(i)),void 0===a)return;const l=a.user||{};null==l.color&&(l.color="#ffa500"),null==l.name&&(l.name=`User: ${i}`);const c=a.cursor;if(null==c||null==c.anchor||null==c.head)return;const u=p.createAbsolutePositionFromRelativePosition(JSON.parse(c.anchor),e),d=p.createAbsolutePositionFromRelativePosition(JSON.parse(c.head),e);if(null!==u&&null!==d&&u.type===n&&d.type===n){const e=t.posFromIndex(d.index),n=t.posFromIndex(u.index);let o,f;d.index{const n=document.createElement("span");n.classList.add("remote-caret"),n.setAttribute("style",`border-color: ${t}`);const r=document.createElement("div");return r.setAttribute("style",`background-color: ${t}`),r.insertBefore(document.createTextNode(e),null),n.insertBefore(r,null),setTimeout((()=>{n.classList.add("hide-name")}),2e3),n})(l.name,l.color);s&&h.UV(a.cursor.anchor,s.awCursor.anchor)&&h.UV(a.cursor.head,s.awCursor.head)&&p.classList.add("hide-name");const g=[];if(d.index!==u.index){for(o.line!==f.line&&0!==o.ch&&(g.push(t.markText(o,new(m().Pos)(o.line+1,0),{css:`background-color: ${l.color}70;`,inclusiveRight:!1,inclusiveLeft:!1})),o=new(m().Pos)(o.line+1,0));o.line!==f.line;)g.push(t.setBookmark(new(m().Pos)(o.line,0),{widget:x(l.color)})),o=new(m().Pos)(o.line+1,0);g.push(t.markText(o,f,{css:`background-color: ${l.color}70;`,inclusiveRight:!1,inclusiveLeft:!1}))}const b=g.length>0&&f===e&&0===e.ch?null:t.setBookmark(e,{widget:p,insertLeft:!0});r.set(i,{caret:b,sel:g,awCursor:c})}})(i,t,e,this._cursors,r,n)})),this._changedCursors.clear()}))},this._pendingCursorEvent=!1,this._cursorListener=()=>{t.getDoc()===o&&(this._pendingCursorEvent=!0,setTimeout((()=>{this._pendingCursorEvent&&(this._pendingCursorEvent=!1,this.emit("cursorActivity",[t]))}),0))},this.on("cursorActivity",(()=>{((e,t,n,r)=>{const i=r.getLocalState();if(!t.hasFocus()||null==i||!t.display.wrapper.ownerDocument.hasFocus())return;const o=p.createRelativePositionFromTypeIndex(n,t.indexFromPos(t.getCursor("anchor"))),a=p.createRelativePositionFromTypeIndex(n,t.indexFromPos(t.getCursor("head")));let s=null,l=null;null!=i.cursor&&(s=p.createRelativePositionFromJSON(JSON.parse(i.cursor.anchor)),l=p.createRelativePositionFromJSON(JSON.parse(i.cursor.head))),null!=i.cursor&&p.compareRelativePositions(s,o)&&p.compareRelativePositions(l,a)||r.setLocalStateField("cursor",{anchor:JSON.stringify(o),head:JSON.stringify(a)})})(0,t,e,n)})),this._blurListeer=()=>n.setLocalStateField("cursor",null),e.observe(this._typeObserver),t.on("changes",this._targetObserver),this._beforeChangeSelection=null,this._beforeChange=()=>{this._mux((()=>{const n=p.createRelativePositionFromTypeIndex(e,t.indexFromPos(t.getCursor("anchor"))),r=p.createRelativePositionFromTypeIndex(e,t.indexFromPos(t.getCursor("head")));this._beforeChangeSelection={anchor:n,head:r}}))},t.on("beforeChange",this._beforeChange),n&&(t.on("swapDoc",this._blurListeer),n.on("change",this._awarenessListener),t.on("cursorActivity",this._cursorListener),t.on("blur",this._blurListeer),t.on("focus",this._cursorListener))}destroy(){this.type.unobserve(this._typeObserver),this.cm.off("swapDoc",this._blurListeer),this.cm.off("changes",this._targetObserver),this.cm.off("beforeChange",this._beforeChange),this.cm.off("cursorActivity",this._cursorListener),this.cm.off("focus",this._cursorListener),this.cm.off("blur",this._blurListeer),this.awareness&&this.awareness.off("change",this._awarenessListener),this.yUndoManager&&(this.yUndoManager.off("stack-item-added",this._onStackItemAdded),this.yUndoManager.off("stack-item-popped",this._onStackItemPopped),this.yUndoManager.trackedOrigins.delete(this)),this.type=null,this.cm=null,this.cmDoc=null,super.destroy()}}var k,w,C=n(55941);n(89750),n(91434),n(1827),n(72896),n(38269),n(15e3),n(7385),n(80505),n(52517),n(70390),n(67310),n(43454),m().defineMode("ipython",((e,t)=>{const n={};for(const e in t)t.hasOwnProperty(e)&&(n[e]=t[e]);return n.name="python",n.singleOperators=new RegExp("^[\\+\\-\\*/%&|@\\^~<>!\\?]"),n.identifiers=new RegExp("^[_A-Za-z¡-￿][_A-Za-z0-9¡-￿]*"),m().getMode(e,n)}),"python"),m().defineMIME("text/x-ipython","ipython"),m().modeInfo.push({ext:[],mime:"text/x-ipython",mode:"ipython",name:"ipython"}),n(46865),n(79999),n(16751),m().defineMode("ipythongfm",((e,t)=>{const n=m().getMode(e,{name:"gfm",tokenTypeOverrides:{list3:"string-2"}}),r=m().getMode(e,{name:"stex",inMathMode:!0});return m().multiplexingMode(n,{open:"",close:"",mode:n,parseDelimiters:!0},{open:"
    ",close:"
    ",mode:n,parseDelimiters:!0},{open:"```",close:"```",mode:n,parseDelimiters:!0},{open:"`",close:"`",mode:n,parseDelimiters:!0},{open:"$$",close:"$$",mode:r,delimStyle:"delimit"},{open:/\$(?=.*\$)/,close:"$",mode:r,delimStyle:"delimit"},{open:"\\(",close:"\\)",mode:r,delimStyle:"delimit"},{open:"\\[",close:"\\]",mode:r,delimStyle:"delimit"})}),"gfm"),m().defineMIME("text/x-ipythongfm","ipythongfm"),m().modeInfo.push({ext:[],mime:"text/x-ipythongfm",mode:"ipythongfm",name:"ipythongfm"}),function(e){const t=[{loader:async e=>m().modes.hasOwnProperty(e.mode),rank:0},{loader:function(e){return new Promise(((t,r)=>{Promise.all([n.e(9657),n.e(7364)]).then((function(){var r=[n(27364)(`./${e.mode}/${e.mode}.js`)];(function(){t(!0)}).apply(null,r)})).catch(n.oe)}))},rank:99}];function r(e){var t;const n="string"==typeof e?e:e.mode||e.name,r="string"!=typeof e?e.mime:n,a="string"!=typeof e&&null!==(t=e.ext)&&void 0!==t?t:[];return m().findModeByName(n||"")||m().findModeByMIME(r||"")||i(a)||m().findModeByMIME(o.IEditorMimeTypeService.defaultMimeType)||m().findModeByMIME("text/plain")}function i(e){if("string"==typeof e)return m().findModeByExtension(e);for(let t=0;t{this._checkSync()},frequency:{interval:3e3,backoff:!1},standby:()=>!this._lastChange||"when-hidden"}),l.mimeTypeChanged.connect(this._onMimeTypeChanged,this),l.selections.changed.connect(this._onSelectionsChanged,this),m().on(p,"keydown",((e,t)=>{-1===a.ArrayExt.findFirstIndex(this._keydownHandlers,(e=>!0===e(this,t)&&(t.preventDefault(),!0)))&&this.onKeydown(t)})),null===(t=this._yeditorBinding)||void 0===t||t.on("cursorActivity",(()=>this._onCursorActivity())),m().on(p.getDoc(),"change",((e,t)=>{"setValue"===t.origin&&this.hasFocus()&&this.refresh(),this._lastChange=t})),p.on("paste",((e,t)=>{var n;null===(n=this._config.handlePaste)||void 0===n||n||(t.codemirrorIgnore=!0)})),p.getWrapperElement().addEventListener("paste",(()=>{this.hasFocus()&&this.refresh()}))}_initializeEditorBinding(){var e;null===(e=this._yeditorBinding)||void 0===e||e.destroy();const t=this.model.sharedModel,n=t.undoManager?{yUndoManager:t.undoManager}:{},r=t.awareness;this._yeditorBinding=new y(t.ysource,this.editor,r,n)}get uuid(){return this._uuid}set uuid(e){this._uuid=e}get selectionStyle(){return this._selectionStyle}set selectionStyle(e){this._selectionStyle=e}get editor(){return this._editor}get doc(){return this._editor.getDoc()}get lineCount(){return this.doc.lineCount()}get model(){return this._model}get lineHeight(){return this._editor.defaultTextHeight()}get charWidth(){return this._editor.defaultCharWidth()}get isDisposed(){return this._isDisposed}dispose(){this.isDisposed||(this._isDisposed=!0,this.host.removeEventListener("focus",this,!0),this.host.removeEventListener("blur",this,!0),this.host.removeEventListener("scroll",this,!0),this._yeditorBinding&&this._yeditorBinding.destroy(),this._keydownHandlers.length=0,this._poll.dispose(),u.Signal.clearData(this))}getOption(e){return this._config[e]}setOption(e,t){this._config[e]!==t&&(this._config[e]=t,M.setOption(this.editor,e,t,this._config))}setOptions(e){const t=this._editor;t.startOperation();for(const n in e){const r=n;t.operation((()=>{this.setOption(r,e[r])}))}t.endOperation()}getLine(e){return this.doc.getLine(e)}getOffsetAt(e){return this.doc.indexFromPos({ch:e.column,line:e.line})}getPositionAt(e){const{ch:t,line:n}=this.doc.posFromIndex(e);return{line:n,column:t}}undo(){this.model.sharedModel.undo()}redo(){this.model.sharedModel.redo()}clearHistory(){var e,t;null===(t=null===(e=this._yeditorBinding)||void 0===e?void 0:e.yUndoManager)||void 0===t||t.clear()}focus(){this._editor.focus()}hasFocus(){return this._editor.getWrapperElement().contains(document.activeElement)}blur(){this._editor.getInputField().blur()}refresh(){this._editor.refresh(),this._needsRefresh=!1}resizeToFit(){this.hasFocus()?this.refresh():this._needsRefresh=!0,this._clearHover()}addOverlay(e,t){this._editor.addOverlay(e,t)}removeOverlay(e){this._editor.removeOverlay(e)}getSearchCursor(e,t,n){return this._editor.getDoc().getSearchCursor(e,t,n)}getCursor(e){return this._editor.getDoc().getCursor(e)}get state(){return this._editor.state}operation(e){return this._editor.operation(e)}firstLine(){return this._editor.getDoc().firstLine()}lastLine(){return this._editor.getDoc().lastLine()}scrollIntoView(e,t){this._editor.scrollIntoView(e,t)}scrollIntoViewCentered(e){var t,n;const r=this._editor.charCoords(e,"local").top,i=this._editor.getWrapperElement().offsetHeight;null===(n=(t=this.host).scrollIntoView)||void 0===n||n.call(t,{behavior:"auto",block:"center",inline:"center"}),this._editor.scrollTo(null,r-i/2)}cursorCoords(e,t){return this._editor.cursorCoords(e,t)}getRange(e,t,n){return this._editor.getDoc().getRange(e,t,n)}addKeydownHandler(e){return this._keydownHandlers.push(e),new l.DisposableDelegate((()=>{a.ArrayExt.removeAllWhere(this._keydownHandlers,(t=>t===e))}))}setSize(e){e?this._editor.setSize(e.width,e.height):this._editor.setSize(null,null),this._needsRefresh=!1}revealPosition(e){const t=this._toCodeMirrorPosition(e);this._editor.scrollIntoView(t)}revealSelection(e){const t={from:this._toCodeMirrorPosition(e.start),to:this._toCodeMirrorPosition(e.end)};this._editor.scrollIntoView(t)}getCoordinateForPosition(e){const t=this._toCodeMirrorPosition(e);return this.editor.charCoords(t,"page")}getPositionForCoordinate(e){return this._toPosition(this.editor.coordsChar(e))||null}getCursorPosition(){const e=this.doc.getCursor();return this._toPosition(e)}setCursorPosition(e,t){const n=this._toCodeMirrorPosition(e);this.doc.setCursor(n,void 0,t),this.editor.hasFocus()||this.model.selections.set(this.uuid,this.getSelections())}getSelection(){return this.getSelections()[0]}setSelection(e){this.setSelections([e])}getSelections(){const e=this.doc.listSelections();if(e.length>0)return e.map((e=>this._toSelection(e)));const t=this.doc.getCursor();return[this._toSelection({anchor:t,head:t})]}setSelections(e){const t=this._toCodeMirrorSelections(e);this.doc.setSelections(t,0)}replaceSelection(e){this.doc.replaceSelection(e)}getTokens(){let e=[];for(let t=0;t({offset:this.getOffsetAt({column:e.start,line:t}),value:e.string,type:e.type||""})));e=e.concat(n)}return e}getTokenForPosition(e){var t;const n=this._toCodeMirrorPosition(e),r=this.editor.getTokenAt(n);return{offset:this.getOffsetAt({column:r.start,line:n.line}),value:r.string,type:null!==(t=r.type)&&void 0!==t?t:void 0}}newIndentedLine(){this.execCommand("newlineAndIndent")}execCommand(e){this._editor.execCommand(e)}onKeydown(e){const t=this.getCursorPosition(),{line:n,column:r}=t;if(0===n&&0===r&&38===e.keyCode)return e.shiftKey||this.edgeRequested.emit("top"),!1;if(0===n&&38===e.keyCode)return e.shiftKey||this.edgeRequested.emit("topLine"),!1;const i=this.lineCount-1,o=this.getLine(i).length;return n===i&&r===o&&40===e.keyCode&&(e.shiftKey||this.edgeRequested.emit("bottom"),!1)}_toCodeMirrorSelections(e){if(e.length>0)return e.map((e=>this._toCodeMirrorSelection(e)));const t={line:0,ch:0};return[{anchor:t,head:t}]}_onMimeTypeChanged(){const e=this._model.mimeType,t=this._editor.getOption("extraKeys")||{};"text/plain"!==e&&"text/x-ipythongfm"!==e?t.Backspace="delSpaceToPrevTabStop":delete t.Backspace,this.setOption("extraKeys",t),k.ensure(e).then((e=>{var t;this.setOption("mode",null!==(t=null==e?void 0:e.mime)&&void 0!==t?t:"null")}))}_onSelectionsChanged(e,t){const n=t.key;n!==this.uuid&&(this._cleanSelections(n),"remove"!==t.type&&t.newValue&&this._markSelections(n,t.newValue))}_cleanSelections(e){const t=this.selectionMarkers[e];t&&t.forEach((e=>{e.clear()})),delete this.selectionMarkers[e]}_markSelections(e,t){const n=[];let r;e===this._hoverId&&this._clearHover(),this._model.modelDB.collaborators&&(r=this._model.modelDB.collaborators.get(e)),t.forEach((e=>{if(s.JSONExt.deepEqual(e.start,e.end)){if(r){const t=this._getCaret(r);n.push(this.doc.setBookmark(this._toCodeMirrorPosition(e.end),{widget:t}))}}else{const t=e.start.line{this._clearHover(),this._hoverId=e.sessionId;const i=r.getBoundingClientRect(),o=document.createElement("div");o.className="jp-CollaboratorCursor-hover",o.style.left=String(i.left)+"px",o.style.top=String(i.bottom)+"px",o.textContent=t,o.style.backgroundColor=n,o.onmouseenter=()=>{window.clearTimeout(this._hoverTimeout)},o.onmouseleave=()=>{this._hoverTimeout=window.setTimeout((()=>{this._clearHover()}),1e3)},this._caretHover=o,document.body.appendChild(o)},r.onmouseleave=()=>{this._hoverTimeout=window.setTimeout((()=>{this._clearHover()}),1e3)},r}_checkSync(){const e=this._lastChange;if(!e)return;this._lastChange=null;const t=this._editor,n=t.getDoc();n.getValue()!==this._model.value.text&&((0,i.showDialog)({title:this._trans.__("Code Editor out of Sync"),body:this._trans.__("Please open your browser JavaScript console for bug report instructions")}),console.warn('If you are able and willing to publicly share the text or code in your editor, you can help us debug the "Code Editor out of Sync" message by pasting the following to the public issue at https://github.com/jupyterlab/jupyterlab/issues/2951. Please note that the data below includes the text/code in your editor.'),console.warn(JSON.stringify({model:this._model.value.text,view:n.getValue(),selections:this.getSelections(),cursor:this.getCursorPosition(),lineSep:t.getOption("lineSeparator"),mode:t.getOption("mode"),change:e})))}}var M;!function(e){e.defaultConfig=Object.assign(Object.assign({},o.CodeEditor.defaultConfig),{mode:"null",theme:"jupyter",smartIndent:!0,electricChars:!0,keyMap:"default",extraKeys:null,gutters:[],fixedGutter:!0,showCursorWhenSelecting:!1,coverGutterNextToScrollbar:!1,dragDrop:!0,lineSeparator:null,scrollbarStyle:"native",lineWiseCopyCut:!0,scrollPastEnd:!1,styleActiveLine:!1,styleSelectedText:!0,selectionPointer:!1,rulers:[],foldGutter:!1,handlePaste:!0}),e.addCommand=function(e,t){m().commands[e]=t}}(S||(S={})),function(e){function t(e,t){return e.line===t.line&&e.ch===t.ch}function n(e){const t={"CodeMirror-linenumbers":"lineNumbers","CodeMirror-foldgutter":"codeFolding"};return Object.keys(t).filter((n=>e[t[n]]))}e.createEditor=function(e,t){const{autoClosingBrackets:n,fontFamily:r,fontSize:i,insertSpaces:o,lineHeight:a,lineWrap:s,wordWrapColumn:l,tabSize:c,readOnly:u}=t,d=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(r=Object.getOwnPropertySymbols(e);i{r&&(t.style.fontFamily=r),i&&(t.style.fontSize=i+"px"),a&&(t.style.lineHeight=a.toString()),u&&t.classList.add(_),"wordWrapColumn"===s&&(t.querySelector(".CodeMirror-lines").style.width=`${l}ch`),"bounded"===s&&(t.querySelector(".CodeMirror-lines").style.maxWidth=`${l}ch`),e.appendChild(t)}),f)},e.indentMoreOrinsertTab=function(e){const n=e.getDoc(),r=n.getCursor("from");if(!t(r,n.getCursor("to")))return void m().commands.indentMore(e);const i=n.getLine(r.line).slice(0,r.ch);/^\s*$/.test(i)?m().commands.indentMore(e):e.getOption("indentWithTabs")?m().commands.insertTab(e):m().commands.insertSoftTab(e)},e.delSpaceToPrevTabStop=function(e){var n;const r=e.getDoc(),i=null!==(n=e.getOption("indentUnit"))&&void 0!==n?n:2,o=r.listSelections();for(let n=o.length-1;n>=0;n--){const a=o[n].head,s=o[n].anchor;if(t(a,s))if(null!==r.getLine(a.line).substring(0,a.ch).match(/^\ +$/)){const e=(Math.ceil(a.ch/i)-1)*i,t=m().Pos(a.line,e);r.replaceRange("",t,a)}else{const t=e.findPosH(a,-1,"char",!1);r.replaceRange("",t,a)}else r.replaceRange("",s,a)}},e.posEq=t,e.setOption=function(e,t,r,i){const o=e.getWrapperElement();switch(t){case"cursorBlinkRate":case"showTrailingSpace":default:e.setOption(t,r);break;case"lineWrap":{const t="off"!==r,n=o.querySelector(".CodeMirror-lines"),a="bounded"===r?`${i.wordWrapColumn}ch`:null,s="wordWrapColumn"===r?`${i.wordWrapColumn}ch`:null;n.style.setProperty("max-width",a),n.style.setProperty("width",s),e.setOption("lineWrapping",t);break}case"wordWrapColumn":{const{lineWrap:e}=i;if("wordWrapColumn"===e||"bounded"===e){const t="wordWrapColumn"===e?"width":"maxWidth";o.querySelector(".CodeMirror-lines").style[t]=`${r}ch`}break}case"tabSize":e.setOption("indentUnit",r);break;case"insertSpaces":e.setOption("indentWithTabs",!r);break;case"autoClosingBrackets":e.setOption("autoCloseBrackets",r);break;case"rulers":{const t=r;e.setOption("rulers",t.map((e=>({column:e,className:"jp-CodeMirror-ruler"}))));break}case"readOnly":o.classList.toggle(_,r),e.setOption(t,r);break;case"fontFamily":o.style.fontFamily=r;break;case"fontSize":o.style.setProperty("font-size",r?r+"px":null);break;case"lineHeight":o.style.lineHeight=r?r.toString():null;break;case"gutters":e.setOption(t,n(i));break;case"lineNumbers":e.setOption(t,r),e.setOption("gutters",n(i));break;case"codeFolding":e.setOption("foldGutter",r),e.setOption("gutters",n(i))}}}(M||(M={})),S.addCommand("delSpaceToPrevTabStop",M.delSpaceToPrevTabStop),S.addCommand("indentMoreOrinsertTab",M.indentMoreOrinsertTab);class L{constructor(e={},t){this.newInlineEditor=e=>(e.host.dataset.type="inline",new S(Object.assign(Object.assign({},e),{config:Object.assign(Object.assign({},this.inlineCodeMirrorConfig),e.config||{}),translator:this.translator}))),this.newDocumentEditor=e=>(e.host.dataset.type="document",new S(Object.assign(Object.assign({},e),{config:Object.assign(Object.assign({},this.documentCodeMirrorConfig),e.config||{}),translator:this.translator}))),this.translator=t||r.nullTranslator,this.inlineCodeMirrorConfig=Object.assign(Object.assign(Object.assign({},S.defaultConfig),{extraKeys:{"Cmd-Right":"goLineRight",End:"goLineRight","Cmd-Left":"goLineLeft",Tab:"indentMoreOrinsertTab","Shift-Tab":"indentLess","Cmd-/":e=>e.toggleComment({indent:!0}),"Ctrl-/":e=>e.toggleComment({indent:!0}),"Ctrl-G":"find","Cmd-G":"find"}}),e),this.documentCodeMirrorConfig=Object.assign(Object.assign(Object.assign({},S.defaultConfig),{extraKeys:{Tab:"indentMoreOrinsertTab","Shift-Tab":"indentLess","Cmd-/":e=>e.toggleComment({indent:!0}),"Ctrl-/":e=>e.toggleComment({indent:!0}),"Shift-Enter":()=>{}},lineNumbers:!0,scrollPastEnd:!0}),e)}}class T{getMimeTypeByLanguage(e){const t=e.file_extension||"";return k.findBest(e.codemirror_mode||{mimetype:e.mimetype,name:e.name,ext:[t.split(".").slice(-1)[0]]}).mime}getMimeTypeByFilePath(e){const t=C.PathExt.extname(e);return".ipy"===t?"text/x-python":".md"===t?"text/x-ipythongfm":(k.findByFileName(e)||k.findBest("")).mime}}var F=n(16725),E=n(94519),A=n(62471),P=n.n(A);function D(e){return P().createElement(F.TextItem,{source:e.mode,onClick:e.handleClick})}class z extends i.VDomRenderer{constructor(e){super(new z.Model),this._handleClick=()=>{const e=new E.Menu({commands:this._commands});this._popup&&this._popup.dispose(),k.getModeInfo().sort(((e,t)=>{const n=e.name||"",r=t.name||"";return n.localeCompare(r)})).forEach((t=>{if(0===t.mode.indexOf("brainf"))return;const n={insertSpaces:!0,name:t.name};e.addItem({command:"codemirror:change-mode",args:n})})),this._popup=(0,F.showPopup)({body:e,anchor:this,align:"left"})},this._popup=null,this._commands=e.commands,this.translator=e.translator||r.nullTranslator;const t=this.translator.load("jupyterlab");this.addClass(F.interactiveItem),this.title.caption=t.__("Change text editor syntax highlighting")}render(){return this.model?P().createElement(D,{mode:this.model.mode,handleClick:this._handleClick}):null}}!function(e){class t extends i.VDomModel{constructor(){super(...arguments),this._onMIMETypeChange=(e,t)=>{const n=this._mode,r=k.findByMIME(t.newValue);this._mode=r.name||r.mode,this._triggerChange(n,this._mode)},this._mode="",this._editor=null}get mode(){return this._mode}get editor(){return this._editor}set editor(e){const t=this._editor;null!==t&&t.model.mimeTypeChanged.disconnect(this._onMIMETypeChange);const n=this._mode;if(this._editor=e,null===this._editor)this._mode="";else{const e=k.findByMIME(this._editor.model.mimeType);this._mode=e.name||e.mode,this._editor.model.mimeTypeChanged.connect(this._onMIMETypeChange)}this._triggerChange(n,this._mode)}_triggerChange(e,t){e!==t&&this.stateChanged.emit(void 0)}}e.Model=t}(z||(z={}));const O=new s.Token("@jupyterlab/codemirror:ICodeMirror"),I={factoryService:new L,mimeTypeService:new T}},76234:(e,t,n)=>{!function(e){"use strict";var t={},n=/[^\s\u00a0]/,r=e.Pos,i=e.cmpPos;function o(e){var t=e.search(n);return-1==t?0:t}function a(e,t){var n=e.getMode();return!1!==n.useInnerComments&&n.innerMode?e.getModeAt(t):n}e.commands.toggleComment=function(e){e.toggleComment()},e.defineExtension("toggleComment",(function(e){e||(e=t);for(var n=this,i=1/0,o=this.listSelections(),a=null,s=o.length-1;s>=0;s--){var l=o[s].from(),c=o[s].to();l.line>=i||(c.line>=i&&(c=r(i,0)),i=l.line,null==a?n.uncomment(l,c,e)?a="un":(n.lineComment(l,c,e),a="line"):"un"==a?n.uncomment(l,c,e):n.lineComment(l,c,e))}})),e.defineExtension("lineComment",(function(e,i,s){s||(s=t);var l,c,u=this,d=a(u,e),m=u.getLine(e.line);if(null!=m&&(l=e,c=m,!/\bstring\b/.test(u.getTokenTypeAt(r(l.line,0)))||/^[\'\"\`]/.test(c))){var f=s.lineComment||d.lineComment;if(f){var p=Math.min(0!=i.ch||i.line==e.line?i.line+1:i.line,u.lastLine()+1),h=null==s.padding?" ":s.padding,g=s.commentBlankLines||e.line==i.line;u.operation((function(){if(s.indent){for(var t=null,i=e.line;ia.length)&&(t=a)}for(i=e.line;im||l.operation((function(){if(0!=s.fullLines){var t=n.test(l.getLine(m));l.replaceRange(f+d,r(m)),l.replaceRange(u+f,r(e.line,0));var a=s.blockCommentLead||c.blockCommentLead;if(null!=a)for(var p=e.line+1;p<=m;++p)(p!=m||t)&&l.replaceRange(a+f,r(p,0))}else{var h=0==i(l.getCursor("to"),o),g=!l.somethingSelected();l.replaceRange(d,o),h&&l.setSelection(g?o:l.getCursor("from"),o),l.replaceRange(u,e)}}))}}else(s.lineComment||c.lineComment)&&0!=s.fullLines&&l.lineComment(e,o,s)})),e.defineExtension("uncomment",(function(e,i,o){o||(o=t);var s,l=this,c=a(l,e),u=Math.min(0!=i.ch||i.line==e.line?i.line:i.line-1,l.lastLine()),d=Math.min(e.line,u),m=o.lineComment||c.lineComment,f=[],p=null==o.padding?" ":o.padding;e:if(m){for(var h=d;h<=u;++h){var g=l.getLine(h),b=g.indexOf(m);if(b>-1&&!/comment/.test(l.getTokenTypeAt(r(h,b+1)))&&(b=-1),-1==b&&n.test(g))break e;if(b>-1&&n.test(g.slice(0,b)))break e;f.push(g)}if(l.operation((function(){for(var e=d;e<=u;++e){var t=f[e-d],n=t.indexOf(m),i=n+m.length;n<0||(t.slice(i,i+p.length)==p&&(i+=p.length),s=!0,l.replaceRange("",r(e,n),r(e,i)))}})),s)return!0}var v=o.blockCommentStart||c.blockCommentStart,x=o.blockCommentEnd||c.blockCommentEnd;if(!v||!x)return!1;var y=o.blockCommentLead||c.blockCommentLead,k=l.getLine(d),w=k.indexOf(v);if(-1==w)return!1;var C=u==d?k:l.getLine(u),_=C.indexOf(x,u==d?w+v.length:0),S=r(d,w+1),M=r(u,_+1);if(-1==_||!/comment/.test(l.getTokenTypeAt(S))||!/comment/.test(l.getTokenTypeAt(M))||l.getRange(S,M,"\n").indexOf(x)>-1)return!1;var L=k.lastIndexOf(v,e.ch),T=-1==L?-1:k.slice(0,e.ch).indexOf(x,L+v.length);if(-1!=L&&-1!=T&&T+x.length!=e.ch)return!1;T=C.indexOf(x,i.ch);var F=C.slice(i.ch).lastIndexOf(v,T-i.ch);return L=-1==T||-1==F?-1:i.ch+F,(-1==T||-1==L||L==i.ch)&&(l.operation((function(){l.replaceRange("",r(u,_-(p&&C.slice(_-p.length,_)==p?p.length:0)),r(u,_+x.length));var e=w+v.length;if(p&&k.slice(e,e+p.length)==p&&(e+=p.length),l.replaceRange("",r(d,w),r(d,e)),y)for(var t=d+1;t<=u;++t){var i=l.getLine(t),o=i.indexOf(y);if(-1!=o&&!n.test(i.slice(0,o))){var a=o+y.length;p&&i.slice(a,a+p.length)==p&&(a+=p.length),l.replaceRange("",r(t,o),r(t,a))}}})),!0)}))}(n(25747))},4218:(e,t,n)=>{!function(e){"use strict";function t(t){t.state.rulerDiv.textContent="";var n=t.getOption("rulers"),r=t.defaultCharWidth(),i=t.charCoords(e.Pos(t.firstLine(),0),"div").left;t.state.rulerDiv.style.minHeight=t.display.scroller.offsetHeight+30+"px";for(var o=0;o{!function(e){var t={pairs:"()[]{}''\"\"",closeBefore:")]}'\":;>",triples:"",explode:"[]{}"},n=e.Pos;function r(e,n){return"pairs"==n&&"string"==typeof e?e:"object"==typeof e&&null!=e[n]?e[n]:t[n]}e.defineOption("autoCloseBrackets",!1,(function(t,n,a){a&&a!=e.Init&&(t.removeKeyMap(i),t.state.closeBrackets=null),n&&(o(r(n,"pairs")),t.state.closeBrackets=n,t.addKeyMap(i))}));var i={Backspace:function(t){var i=s(t);if(!i||t.getOption("disableInput"))return e.Pass;for(var o=r(i,"pairs"),a=t.listSelections(),l=0;l=0;l--){var d=a[l].head;t.replaceRange("",n(d.line,d.ch-1),n(d.line,d.ch+1),"+delete")}},Enter:function(t){var n=s(t),i=n&&r(n,"explode");if(!i||t.getOption("disableInput"))return e.Pass;for(var o=t.listSelections(),a=0;a1&&p.indexOf(i)>=0&&t.getRange(n(k.line,k.ch-2),k)==i+i){if(k.ch>2&&/\bstring/.test(t.getTokenTypeAt(n(k.line,k.ch-2))))return e.Pass;x="addFour"}else if(h){var C=0==k.ch?" ":t.getRange(n(k.line,k.ch-1),k);if(e.isWordChar(w)||C==i||e.isWordChar(C))return e.Pass;x="both"}else{if(!b||!(0===w.length||/\s/.test(w)||f.indexOf(w)>-1))return e.Pass;x="both"}else x=h&&d(t,k)?"both":p.indexOf(i)>=0&&t.getRange(k,n(k.line,k.ch+3))==i+i+i?"skipThree":"skip";if(m){if(m!=x)return e.Pass}else m=x}var _=u%2?a.charAt(u-1):i,S=u%2?i:a.charAt(u+1);t.operation((function(){if("skip"==m)l(t,1);else if("skipThree"==m)l(t,3);else if("surround"==m){for(var e=t.getSelections(),n=0;n0?{line:a.head.line,ch:a.head.ch+t}:{line:a.head.line-1};n.push({anchor:s,head:s})}e.setSelections(n,i)}function c(t){var r=e.cmpPos(t.anchor,t.head)>0;return{anchor:new n(t.anchor.line,t.anchor.ch+(r?-1:1)),head:new n(t.head.line,t.head.ch+(r?1:-1))}}function u(e,t){var r=e.getRange(n(t.line,t.ch-1),n(t.line,t.ch+1));return 2==r.length?r:null}function d(e,t){var r=e.getTokenAt(n(t.line,t.ch+1));return/\bstring/.test(r.type)&&r.start==t.ch&&(0==t.ch||!/\bstring/.test(e.getTokenTypeAt(t)))}o(t.pairs+"`")}(n(25747))},54206:(e,t,n)=>{var r;(r=n(25747)).defineOption("showTrailingSpace",!1,(function(e,t,n){n==r.Init&&(n=!1),n&&!t?e.removeOverlay("trailingspace"):!n&&t&&e.addOverlay({token:function(e){for(var t=e.string.length,n=t;n&&/\s/.test(e.string.charAt(n-1));--n);return n>e.pos?(e.pos=n,null):(e.pos=t,"trailingspace")},name:"trailingspace"})}))},41652:(e,t,n)=>{!function(e){"use strict";e.registerHelper("fold","brace",(function(t,n){var r,i=n.line,o=t.getLine(i);function a(a){for(var s=n.ch,l=0;;){var c=s<=0?-1:o.lastIndexOf(a,s-1);if(-1!=c){if(1==l&&cu))c=u,s="{",l="}";else{if(null==d)return;c=d,s="[",l="]"}var m,f,p=1,h=t.lastLine();e:for(var g=i;g<=h;++g)for(var b=t.getLine(g),v=g==i?c:0;;){var x=b.indexOf(s,v),y=b.indexOf(l,v);if(x<0&&(x=b.length),y<0&&(y=b.length),(v=Math.min(x,y))==b.length)break;if(t.getTokenTypeAt(e.Pos(g,v+1))==r)if(v==x)++p;else if(!--p){m=g,f=v;break e}++v}if(null!=m&&i!=m)return{from:e.Pos(i,c),to:e.Pos(m,f)}})),e.registerHelper("fold","import",(function(t,n){function r(n){if(nt.lastLine())return null;var r=t.getTokenAt(e.Pos(n,1));if(/\S/.test(r.string)||(r=t.getTokenAt(e.Pos(n,r.end+1))),"keyword"!=r.type||"import"!=r.string)return null;for(var i=n,o=Math.min(t.lastLine(),n+10);i<=o;++i){var a=t.getLine(i).indexOf(";");if(-1!=a)return{startCh:r.end,end:e.Pos(i,a)}}}var i,o=n.line,a=r(o);if(!a||r(o-1)||(i=r(o-2))&&i.end.line==o-1)return null;for(var s=a.end;;){var l=r(s.line+1);if(null==l)break;s=l.end}return{from:t.clipPos(e.Pos(o,a.startCh+1)),to:s}})),e.registerHelper("fold","include",(function(t,n){function r(n){if(nt.lastLine())return null;var r=t.getTokenAt(e.Pos(n,1));return/\S/.test(r.string)||(r=t.getTokenAt(e.Pos(n,r.end+1))),"meta"==r.type&&"#include"==r.string.slice(0,8)?r.start+8:void 0}var i=n.line,o=r(i);if(null==o||null!=r(i-1))return null;for(var a=i;null!=r(a+1);)++a;return{from:e.Pos(i,o+1),to:t.clipPos(e.Pos(a))}}))}(n(25747))},12575:(e,t,n)=>{!function(e){"use strict";e.registerGlobalHelper("fold","comment",(function(e){return e.blockCommentStart&&e.blockCommentEnd}),(function(t,n){var r=t.getModeAt(n),i=r.blockCommentStart,o=r.blockCommentEnd;if(i&&o){for(var a,s=n.line,l=t.getLine(s),c=n.ch,u=0;;){var d=c<=0?-1:l.lastIndexOf(i,c-1);if(-1!=d){if(1==u&&d{!function(e){"use strict";function t(t,n,i,o){if(i&&i.call){var a=i;i=null}else a=r(t,i,"rangeFinder");"number"==typeof n&&(n=e.Pos(n,0));var s=r(t,i,"minFoldSize");function l(e){var r=a(t,n);if(!r||r.to.line-r.from.linet.firstLine();)n=e.Pos(n.line-1,0),c=l(!1);if(c&&!c.cleared&&"unfold"!==o){var u=function(e,t,n){var i=r(e,t,"widget");if("function"==typeof i&&(i=i(n.from,n.to)),"string"==typeof i){var o=document.createTextNode(i);(i=document.createElement("span")).appendChild(o),i.className="CodeMirror-foldmarker"}else i&&(i=i.cloneNode(!0));return i}(t,i,c);e.on(u,"mousedown",(function(t){d.clear(),e.e_preventDefault(t)}));var d=t.markText(c.from,c.to,{replacedWith:u,clearOnEnter:r(t,i,"clearOnEnter"),__isFold:!0});d.on("clear",(function(n,r){e.signal(t,"unfold",t,n,r)})),e.signal(t,"fold",t,c.from,c.to)}}e.newFoldFunction=function(e,n){return function(r,i){t(r,i,{rangeFinder:e,widget:n})}},e.defineExtension("foldCode",(function(e,n,r){t(this,e,n,r)})),e.defineExtension("isFolded",(function(e){for(var t=this.findMarksAt(e),n=0;n{!function(e){"use strict";e.defineOption("foldGutter",!1,(function(t,r,i){var o;i&&i!=e.Init&&(t.clearGutter(t.state.foldGutter.options.gutter),t.state.foldGutter=null,t.off("gutterClick",l),t.off("changes",c),t.off("viewportChange",u),t.off("fold",d),t.off("unfold",d),t.off("swapDoc",c)),r&&(t.state.foldGutter=new n((!0===(o=r)&&(o={}),null==o.gutter&&(o.gutter="CodeMirror-foldgutter"),null==o.indicatorOpen&&(o.indicatorOpen="CodeMirror-foldgutter-open"),null==o.indicatorFolded&&(o.indicatorFolded="CodeMirror-foldgutter-folded"),o)),s(t),t.on("gutterClick",l),t.on("changes",c),t.on("viewportChange",u),t.on("fold",d),t.on("unfold",d),t.on("swapDoc",c))}));var t=e.Pos;function n(e){this.options=e,this.from=this.to=0}function r(e,n){for(var r=e.findMarks(t(n,0),t(n+1,0)),i=0;i=c){if(m&&a&&m.test(a.className))return;o=i(s.indicatorOpen)}}(o||a)&&e.setGutterMarker(n,s.gutter,o)}))}function a(e){return new RegExp("(^|\\s)"+e+"(?:$|\\s)\\s*")}function s(e){var t=e.getViewport(),n=e.state.foldGutter;n&&(e.operation((function(){o(e,t.from,t.to)})),n.from=t.from,n.to=t.to)}function l(e,n,i){var o=e.state.foldGutter;if(o){var a=o.options;if(i==a.gutter){var s=r(e,n);s?s.clear():e.foldCode(t(n,0),a)}}}function c(e){var t=e.state.foldGutter;if(t){var n=t.options;t.from=t.to=0,clearTimeout(t.changeUpdate),t.changeUpdate=setTimeout((function(){s(e)}),n.foldOnChangeTimeSpan||600)}}function u(e){var t=e.state.foldGutter;if(t){var n=t.options;clearTimeout(t.changeUpdate),t.changeUpdate=setTimeout((function(){var n=e.getViewport();t.from==t.to||n.from-t.to>20||t.from-n.to>20?s(e):e.operation((function(){n.fromt.to&&(o(e,t.to,n.to),t.to=n.to)}))}),n.updateViewportTimeSpan||400)}}function d(e,t){var n=e.state.foldGutter;if(n){var r=t.line;r>=n.from&&r{!function(e){"use strict";function t(t,n){var r=t.getLine(n),i=r.search(/\S/);return-1==i||/\bcomment\b/.test(t.getTokenTypeAt(e.Pos(n,i+1)))?-1:e.countColumn(r,null,t.getOption("tabSize"))}e.registerHelper("fold","indent",(function(n,r){var i=t(n,r.line);if(!(i<0)){for(var o=null,a=r.line+1,s=n.lastLine();a<=s;++a){var l=t(n,a);if(-1==l);else{if(!(l>i))break;o=a}}return o?{from:e.Pos(r.line,n.getLine(r.line).length),to:e.Pos(o,n.getLine(o).length)}:void 0}}))}(n(25747))},11723:(e,t,n)=>{!function(e){"use strict";e.registerHelper("fold","markdown",(function(t,n){function r(n){var r=t.getTokenTypeAt(e.Pos(n,0));return r&&/\bheader\b/.test(r)}function i(e,t,n){var i=t&&t.match(/^#+/);return i&&r(e)?i[0].length:(i=n&&n.match(/^[=\-]+\s*$/))&&r(e+1)?"="==n[0]?1:2:100}var o=t.getLine(n.line),a=t.getLine(n.line+1),s=i(n.line,o,a);if(100!==s){for(var l=t.lastLine(),c=n.line,u=t.getLine(c+2);c{!function(e){"use strict";var t=e.Pos;function n(e,t){return e.line-t.line||e.ch-t.ch}var r="A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD",i=new RegExp("<(/?)(["+r+"]["+r+"-:.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*)","g");function o(e,t,n,r){this.line=t,this.ch=n,this.cm=e,this.text=e.getLine(t),this.min=r?Math.max(r.from,e.firstLine()):e.firstLine(),this.max=r?Math.min(r.to-1,e.lastLine()):e.lastLine()}function a(e,n){var r=e.cm.getTokenTypeAt(t(e.line,n));return r&&/\btag\b/.test(r)}function s(e){if(!(e.line>=e.max))return e.ch=0,e.text=e.cm.getLine(++e.line),!0}function l(e){if(!(e.line<=e.min))return e.text=e.cm.getLine(--e.line),e.ch=e.text.length,!0}function c(e){for(;;){var t=e.text.indexOf(">",e.ch);if(-1==t){if(s(e))continue;return}if(a(e,t+1)){var n=e.text.lastIndexOf("/",t),r=n>-1&&!/\S/.test(e.text.slice(n+1,t));return e.ch=t+1,r?"selfClose":"regular"}e.ch=t+1}}function u(e){for(;;){var t=e.ch?e.text.lastIndexOf("<",e.ch-1):-1;if(-1==t){if(l(e))continue;return}if(a(e,t+1)){i.lastIndex=t,e.ch=t;var n=i.exec(e.text);if(n&&n.index==t)return n}else e.ch=t}}function d(e){for(;;){i.lastIndex=e.ch;var t=i.exec(e.text);if(!t){if(s(e))continue;return}if(a(e,t.index+1))return e.ch=t.index+t[0].length,t;e.ch=t.index+1}}function m(e){for(;;){var t=e.ch?e.text.lastIndexOf(">",e.ch-1):-1;if(-1==t){if(l(e))continue;return}if(a(e,t+1)){var n=e.text.lastIndexOf("/",t),r=n>-1&&!/\S/.test(e.text.slice(n+1,t));return e.ch=t+1,r?"selfClose":"regular"}e.ch=t}}function f(e,n){for(var r=[];;){var i,o=d(e),a=e.line,s=e.ch-(o?o[0].length:0);if(!o||!(i=c(e)))return;if("selfClose"!=i)if(o[1]){for(var l=r.length-1;l>=0;--l)if(r[l]==o[2]){r.length=l;break}if(l<0&&(!n||n==o[2]))return{tag:o[2],from:t(a,s),to:t(e.line,e.ch)}}else r.push(o[2])}}function p(e,n){for(var r=[];;){var i=m(e);if(!i)return;if("selfClose"!=i){var o=e.line,a=e.ch,s=u(e);if(!s)return;if(s[1])r.push(s[2]);else{for(var l=r.length-1;l>=0;--l)if(r[l]==s[2]){r.length=l;break}if(l<0&&(!n||n==s[2]))return{tag:s[2],from:t(e.line,e.ch),to:t(o,a)}}}else u(e)}}e.registerHelper("fold","xml",(function(e,r){for(var i=new o(e,r.line,0);;){var a=d(i);if(!a||i.line!=r.line)return;var s=c(i);if(!s)return;if(!a[1]&&"selfClose"!=s){var l=t(i.line,i.ch),u=f(i,a[2]);return u&&n(u.from,l)>0?{from:l,to:u.from}:null}}})),e.findMatchingTag=function(e,r,i){var a=new o(e,r.line,r.ch,i);if(-1!=a.text.indexOf(">")||-1!=a.text.indexOf("<")){var s=c(a),l=s&&t(a.line,a.ch),d=s&&u(a);if(s&&d&&!(n(a,r)>0)){var m={from:t(a.line,a.ch),to:l,tag:d[2]};return"selfClose"==s?{open:m,close:null,at:"open"}:d[1]?{open:p(a,d[2]),close:m,at:"close"}:{open:m,close:f(a=new o(e,l.line,l.ch,i),d[2]),at:"open"}}}},e.findEnclosingTag=function(e,t,n,r){for(var i=new o(e,t.line,t.ch,n);;){var a=p(i,r);if(!a)break;var s=f(new o(e,t.line,t.ch,n),a.tag);if(s)return{open:a,close:s}}},e.scanForClosingTag=function(e,t,n,r){return f(new o(e,t.line,t.ch,r?{from:0,to:r}:null),n)}}(n(25747))},46865:(e,t,n)=>{!function(e){"use strict";e.multiplexingMode=function(t){var n=Array.prototype.slice.call(arguments,1);function r(e,t,n,r){if("string"==typeof t){var i=e.indexOf(t,n);return r&&i>-1?i+t.length:i}var o=t.exec(n?e.slice(n):e);return o?o.index+n+(r?o[0].length:0):-1}return{startState:function(){return{outer:e.startState(t),innerActive:null,inner:null,startingInner:!1}},copyState:function(n){return{outer:e.copyState(t,n.outer),innerActive:n.innerActive,inner:n.innerActive&&e.copyState(n.innerActive.mode,n.inner),startingInner:n.startingInner}},token:function(i,o){if(o.innerActive){var a=o.innerActive;if(c=i.string,!a.close&&i.sol())return o.innerActive=o.inner=null,this.token(i,o);if((d=a.close&&!o.startingInner?r(c,a.close,i.pos,a.parseDelimiters):-1)==i.pos&&!a.parseDelimiters)return i.match(a.close),o.innerActive=o.inner=null,a.delimStyle&&a.delimStyle+" "+a.delimStyle+"-close";d>-1&&(i.string=c.slice(0,d));var s=a.mode.token(i,o.inner);return d>-1?i.string=c:i.pos>i.start&&(o.startingInner=!1),d==i.pos&&a.parseDelimiters&&(o.innerActive=o.inner=null),a.innerStyle&&(s=s?s+" "+a.innerStyle:a.innerStyle),s}for(var l=1/0,c=i.string,u=0;u{!function(e){"use strict";e.overlayMode=function(t,n,r){return{startState:function(){return{base:e.startState(t),overlay:e.startState(n),basePos:0,baseCur:null,overlayPos:0,overlayCur:null,streamSeen:null}},copyState:function(r){return{base:e.copyState(t,r.base),overlay:e.copyState(n,r.overlay),basePos:r.basePos,baseCur:null,overlayPos:r.overlayPos,overlayCur:null}},token:function(e,i){return(e!=i.streamSeen||Math.min(i.basePos,i.overlayPos){!function(e){"use strict";function t(e,t){if(!e.hasOwnProperty(t))throw new Error("Undefined state "+t+" in simple mode")}function n(e,t){if(!e)return/(?:)/;var n="";return e instanceof RegExp?(e.ignoreCase&&(n="i"),e.unicode&&(n+="u"),e=e.source):e=String(e),new RegExp((!1===t?"":"^")+"(?:"+e+")",n)}function r(e,r){(e.next||e.push)&&t(r,e.next||e.push),this.regex=n(e.regex),this.token=function(e){if(!e)return null;if(e.apply)return e;if("string"==typeof e)return e.replace(/\./g," ");for(var t=[],n=0;n2&&u.token&&"string"!=typeof u.token){for(var f=2;f-1)return e.Pass;var a=r.indent.length-1,s=t[r.state];e:for(;;){for(var l=0;l{!function(e){"use strict";e.runMode=function(t,n,r,i){var o=e.getMode(e.defaults,n),a=i&&i.tabSize||e.defaults.tabSize;if(r.appendChild){var s=/MSIE \d/.test(navigator.userAgent)&&(null==document.documentMode||document.documentMode<9),l=r,c=0;l.innerHTML="",r=function(e,t){if("\n"==e)return l.appendChild(document.createTextNode(s?"\r":e)),void(c=0);for(var n="",r=0;;){var i=e.indexOf("\t",r);if(-1==i){n+=e.slice(r),c+=e.length-r;break}c+=i-r,n+=e.slice(r,i);var o=a-c%a;c+=o;for(var u=0;u{!function(e){"use strict";function t(t,r){e.changeEnd(r).line==t.lastLine()&&n(t)}function n(e){var t="";e.lineCount()>1&&(t=e.display.scroller.clientHeight-30-e.getLineHandle(e.lastLine()).height+"px"),e.state.scrollPastEndPadding!=t&&(e.state.scrollPastEndPadding=t,e.display.lineSpace.parentNode.style.paddingBottom=t,e.off("refresh",n),e.setSize(),e.on("refresh",n))}e.defineOption("scrollPastEnd",!1,(function(r,i,o){o&&o!=e.Init&&(r.off("change",t),r.off("refresh",n),r.display.lineSpace.parentNode.style.paddingBottom="",r.state.scrollPastEndPadding=null),i&&(r.on("change",t),r.on("refresh",n),n(r))}))}(n(25747))},40554:(e,t,n)=>{!function(e){"use strict";function t(e,t){var n=Number(t);return/^[-+]/.test(t)?e.getCursor().line+n:n-1}e.defineOption("search",{bottom:!1}),e.commands.jumpToLine=function(e){var n=e.getCursor();!function(e,t,n,r,i){e.openDialog?e.openDialog(t,i,{value:r,selectValueOnOpen:!0,bottom:e.options.search.bottom}):i(prompt(n,r))}(e,function(e){return e.phrase("Jump to line:")+' '+e.phrase("(Use line:column or scroll% syntax)")+""}(e),e.phrase("Jump to line:"),n.line+1+":"+n.ch,(function(r){var i;if(r)if(i=/^\s*([\+\-]?\d+)\s*\:\s*(\d+)\s*$/.exec(r))e.setCursor(t(e,i[1]),Number(i[2]));else if(i=/^\s*([\+\-]?\d+(\.\d+)?)\%\s*/.exec(r)){var o=Math.round(e.lineCount()*Number(i[1])/100);/^[-+]/.test(i[1])&&(o=n.line+o+1),e.setCursor(o-1,n.ch)}else(i=/^\s*\:?\s*([\+\-]?\d+)\s*/.exec(r))&&e.setCursor(t(e,i[1]),n.ch)}))},e.keyMap.default["Alt-G"]="jumpToLine"}(n(25747),n(36804))},13439:(e,t,n)=>{!function(e){"use strict";function t(){this.posFrom=this.posTo=this.lastQuery=this.query=null,this.overlay=null}function n(e){return e.state.search||(e.state.search=new t)}function r(e){return"string"==typeof e&&e==e.toLowerCase()}function i(e,t,n){return e.getSearchCursor(t,n,{caseFold:r(t),multiline:!0})}function o(e,t,n,r,i){e.openDialog?e.openDialog(t,i,{value:r,selectValueOnOpen:!0,bottom:e.options.search.bottom}):i(prompt(n,r))}function a(e){return e.replace(/\\([nrt\\])/g,(function(e,t){return"n"==t?"\n":"r"==t?"\r":"t"==t?"\t":"\\"==t?"\\":e}))}function s(e){var t=e.match(/^\/(.*)\/([a-z]*)$/);if(t)try{e=new RegExp(t[1],-1==t[2].indexOf("i")?"":"i")}catch(e){}else e=a(e);return("string"==typeof e?""==e:e.test(""))&&(e=/x^/),e}function l(e,t,n){t.queryText=n,t.query=s(n),e.removeOverlay(t.overlay,r(t.query)),t.overlay=function(e,t){return"string"==typeof e?e=new RegExp(e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&"),t?"gi":"g"):e.global||(e=new RegExp(e.source,e.ignoreCase?"gi":"g")),{token:function(t){e.lastIndex=t.pos;var n=e.exec(t.string);if(n&&n.index==t.pos)return t.pos+=n[0].length||1,"searching";n?t.pos=n.index:t.skipToEnd()}}}(t.query,r(t.query)),e.addOverlay(t.overlay),e.showMatchesOnScrollbar&&(t.annotate&&(t.annotate.clear(),t.annotate=null),t.annotate=e.showMatchesOnScrollbar(t.query,r(t.query)))}function c(t,r,i,a){var s=n(t);if(s.query)return u(t,r);var c=t.getSelection()||s.lastQuery;if(c instanceof RegExp&&"x^"==c.source&&(c=null),i&&t.openDialog){var f=null,p=function(n,r){e.e_stop(r),n&&(n!=s.queryText&&(l(t,s,n),s.posFrom=s.posTo=t.getCursor()),f&&(f.style.opacity=1),u(t,r.shiftKey,(function(e,n){var r;n.line<3&&document.querySelector&&(r=t.display.wrapper.querySelector(".CodeMirror-dialog"))&&r.getBoundingClientRect().bottom-4>t.cursorCoords(n,"window").top&&((f=r).style.opacity=.4)})))};(function(e,t,n,r,i){e.openDialog(t,r,{value:n,selectValueOnOpen:!0,closeOnEnter:!1,onClose:function(){d(e)},onKeyDown:i,bottom:e.options.search.bottom})})(t,m(t),c,p,(function(r,i){var o=e.keyName(r),a=t.getOption("extraKeys"),s=a&&a[o]||e.keyMap[t.getOption("keyMap")][o];"findNext"==s||"findPrev"==s||"findPersistentNext"==s||"findPersistentPrev"==s?(e.e_stop(r),l(t,n(t),i),t.execCommand(s)):"find"!=s&&"findPersistent"!=s||(e.e_stop(r),p(i,r))})),a&&c&&(l(t,s,c),u(t,r))}else o(t,m(t),"Search for:",c,(function(e){e&&!s.query&&t.operation((function(){l(t,s,e),s.posFrom=s.posTo=t.getCursor(),u(t,r)}))}))}function u(t,r,o){t.operation((function(){var a=n(t),s=i(t,a.query,r?a.posFrom:a.posTo);(s.find(r)||(s=i(t,a.query,r?e.Pos(t.lastLine()):e.Pos(t.firstLine(),0))).find(r))&&(t.setSelection(s.from(),s.to()),t.scrollIntoView({from:s.from(),to:s.to()},20),a.posFrom=s.from(),a.posTo=s.to(),o&&o(s.from(),s.to()))}))}function d(e){e.operation((function(){var t=n(e);t.lastQuery=t.query,t.query&&(t.query=t.queryText=null,e.removeOverlay(t.overlay),t.annotate&&(t.annotate.clear(),t.annotate=null))}))}function m(e){return''+e.phrase("Search:")+' '+e.phrase("(Use /re/ syntax for regexp search)")+""}function f(e,t,n){e.operation((function(){for(var r=i(e,t);r.findNext();)if("string"!=typeof t){var o=e.getRange(r.from(),r.to()).match(t);r.replace(n.replace(/\$(\d)/g,(function(e,t){return o[t]})))}else r.replace(n)}))}function p(e,t){if(!e.getOption("readOnly")){var r=e.getSelection()||n(e).lastQuery,l=''+(t?e.phrase("Replace all:"):e.phrase("Replace:"))+"";o(e,l+function(e){return' '+e.phrase("(Use /re/ syntax for regexp search)")+""}(e),l,r,(function(n){n&&(n=s(n),o(e,function(e){return''+e.phrase("With:")+' '}(e),e.phrase("Replace with:"),"",(function(r){if(r=a(r),t)f(e,n,r);else{d(e);var o=i(e,n,e.getCursor("from")),s=function(){var t,a=o.from();!(t=o.findNext())&&(o=i(e,n),!(t=o.findNext())||a&&o.from().line==a.line&&o.from().ch==a.ch)||(e.setSelection(o.from(),o.to()),e.scrollIntoView({from:o.from(),to:o.to()}),function(e,t,n,r){e.openConfirm?e.openConfirm(t,r):confirm(n)&&r[0]()}(e,function(e){return''+e.phrase("Replace?")+" "}(e),e.phrase("Replace?"),[function(){l(t)},s,function(){f(e,n,r)}]))},l=function(e){o.replace("string"==typeof n?r:r.replace(/\$(\d)/g,(function(t,n){return e[n]}))),s()};s()}})))}))}}e.defineOption("search",{bottom:!1}),e.commands.find=function(e){d(e),c(e)},e.commands.findPersistent=function(e){d(e),c(e,!1,!0)},e.commands.findPersistentNext=function(e){c(e,!1,!0,!0)},e.commands.findPersistentPrev=function(e){c(e,!0,!0,!0)},e.commands.findNext=c,e.commands.findPrev=function(e){c(e,!0)},e.commands.clearSearch=d,e.commands.replace=p,e.commands.replaceAll=function(e){p(e,!0)}}(n(25747),n(41859),n(36804))},67553:(e,t,n)=>{!function(e){"use strict";var t="CodeMirror-activeline",n="CodeMirror-activeline-background",r="CodeMirror-activeline-gutter";function i(e){for(var i=0;i{!function(e){"use strict";function t(e){e.state.markedSelection&&e.operation((function(){!function(e){if(!e.somethingSelected())return a(e);if(e.listSelections().length>1)return s(e);var t=e.getCursor("start"),n=e.getCursor("end"),r=e.state.markedSelection;if(!r.length)return o(e,t,n);var l=r[0].find(),c=r[r.length-1].find();if(!l||!c||n.line-t.line<=8||i(t,c.to)>=0||i(n,l.from)<=0)return s(e);for(;i(t,l.from)>0;)r.shift().clear(),l=r[0].find();for(i(t,l.from)<0&&(l.to.line-t.line<8?(r.shift().clear(),o(e,t,l.to,0)):o(e,t,l.from,0));i(n,c.to)<0;)r.pop().clear(),c=r[r.length-1].find();i(n,c.to)>0&&(n.line-c.from.line<8?(r.pop().clear(),o(e,c.from,n)):o(e,c.to,n))}(e)}))}function n(e){e.state.markedSelection&&e.state.markedSelection.length&&e.operation((function(){a(e)}))}e.defineOption("styleSelectedText",!1,(function(r,i,o){var l=o&&o!=e.Init;i&&!l?(r.state.markedSelection=[],r.state.markedSelectionStyle="string"==typeof i?i:"CodeMirror-selectedtext",s(r),r.on("cursorActivity",t),r.on("change",n)):!i&&l&&(r.off("cursorActivity",t),r.off("change",n),a(r),r.state.markedSelection=r.state.markedSelectionStyle=null)}));var r=e.Pos,i=e.cmpPos;function o(e,t,n,o){if(0!=i(t,n))for(var a=e.state.markedSelection,s=e.state.markedSelectionStyle,l=t.line;;){var c=l==t.line?t:r(l,0),u=l+8,d=u>=n.line,m=d?n:r(u,0),f=e.markText(c,m,{className:s});if(null==o?a.push(f):a.splice(o++,0,f),d)break;l=u}}function a(e){for(var t=e.state.markedSelection,n=0;n{!function(e){"use strict";function t(e){e.state.selectionPointer.rects=null,n(e)}function n(e){e.state.selectionPointer.willUpdate||(e.state.selectionPointer.willUpdate=!0,setTimeout((function(){(function(e){var t=e.state.selectionPointer;if(t){if(null==t.rects&&null!=t.mouseX&&(t.rects=[],e.somethingSelected()))for(var n=e.display.selectionDiv.firstChild;n;n=n.nextSibling)t.rects.push(n.getBoundingClientRect());var r=!1;if(null!=t.mouseX)for(var i=0;i=t.mouseX&&o.top<=t.mouseY&&o.bottom>=t.mouseY&&(r=!0)}var a=r?t.value:"";e.display.lineDiv.style.cursor!=a&&(e.display.lineDiv.style.cursor=a)}})(e),e.state.selectionPointer.willUpdate=!1}),50))}e.defineOption("selectionPointer",!1,(function(r,i){var o=r.state.selectionPointer;o&&(e.off(r.getWrapperElement(),"mousemove",o.mousemove),e.off(r.getWrapperElement(),"mouseout",o.mouseout),e.off(window,"scroll",o.windowScroll),r.off("cursorActivity",t),r.off("scroll",t),r.state.selectionPointer=null,r.display.lineDiv.style.cursor=""),i&&(o=r.state.selectionPointer={value:"string"==typeof i?i:"default",mousemove:function(e){!function(e,t){var r=e.state.selectionPointer;(null==t.buttons?t.which:t.buttons)?r.mouseX=r.mouseY=null:(r.mouseX=t.clientX,r.mouseY=t.clientY),n(e)}(r,e)},mouseout:function(e){!function(e,t){if(!e.getWrapperElement().contains(t.relatedTarget)){var r=e.state.selectionPointer;r.mouseX=r.mouseY=null,n(e)}}(r,e)},windowScroll:function(){t(r)},rects:null,mouseX:null,mouseY:null,willUpdate:!1},e.on(r.getWrapperElement(),"mousemove",o.mousemove),e.on(r.getWrapperElement(),"mouseout",o.mouseout),e.on(window,"scroll",o.windowScroll),r.on("cursorActivity",t),r.on("scroll",t))}))}(n(25747))},19306:(e,t,n)=>{!function(e){"use strict";var t=e.commands,n=e.Pos;function r(e,t){return e.line==t.line&&e.ch==t.ch}var i=[];function o(e){i.push(e),i.length>50&&i.shift()}function a(e){return i[i.length-(e?Math.min(e,1):1)]||""}var s=null;function l(e,t,n,a,l){null==l&&(l=e.getRange(t,n)),"grow"==a&&s&&s.cm==e&&r(t,s.pos)&&e.isClean(s.gen)?function(e){if(!i.length)return o(e);i[i.length-1]+=e}(l):!1!==a&&o(l),e.replaceRange("",t,n,"+delete"),s="grow"==a?{cm:e,pos:t,gen:e.changeGeneration()}:null}function c(e,t,n){return e.findPosH(t,n,"char",!0)}function u(e,t,n){return e.findPosH(t,n,"word",!0)}function d(e,t,n){return e.findPosV(t,n,"line",e.doc.sel.goalColumn)}function m(e,t,n){return e.findPosV(t,n,"page",e.doc.sel.goalColumn)}function f(e,t,r){for(var i=t.line,o=e.getLine(i),a=/\S/.test(r<0?o.slice(0,t.ch):o.slice(t.ch)),s=e.firstLine(),l=e.lastLine();;){if((i+=r)l)return e.clipPos(n(i-r,r<0?0:null));if(o=e.getLine(i),/\S/.test(o))a=!0;else if(a)return n(i,0)}}function p(e,t,r){for(var i=t.line,o=t.ch,a=e.getLine(t.line),s=!1;;){var l=a.charAt(o+(r<0?-1:0));if(l){if(s&&/[!?.]/.test(l))return n(i,o+(r>0?1:0));s||(s=/\w/.test(l)),o+=r}else{if(i==(r<0?e.firstLine():e.lastLine()))return n(i,o);if(a=e.getLine(i+r),!/\S/.test(a))return n(i,o);i+=r,o=r<0?a.length:0}}}function h(e,t,i){var o;if(e.findMatchingBracket&&(o=e.findMatchingBracket(t,{strict:!0}))&&o.match&&(o.forward?1:-1)==i)return i>0?n(o.to.line,o.to.ch+1):o.to;for(var a=!0;;a=!1){var s=e.getTokenAt(t),l=n(t.line,i<0?s.start:s.end);if(!(a&&i>0&&s.end==t.ch)&&/\w/.test(s.string))return l;var c=e.findPosH(l,i,"char");if(r(l,c))return t;t=c}}function g(e,t){var n=e.state.emacsPrefix;return n?(S(e),"-"==n?-1:Number(n)):t?null:1}function b(e){var t="string"==typeof e?function(t){t.execCommand(e)}:e;return function(e){var n=g(e);t(e);for(var r=1;r1&&"+input"==t.origin){for(var r=t.text.join("\n"),i="",o=1;o1&&i.pop(),a()),"around","paste")},t.forwardChar=x(c,1),t.backwardChar=x(c,-1),t.deleteChar=function(e){y(e,c,1,!1)},t.deleteForwardChar=function(e){k(e,!1)||y(e,c,1,!1)},t.deleteBackwardChar=function(e){k(e,!1)||y(e,c,-1,!1)},t.forwardWord=x(u,1),t.backwardWord=x(u,-1),t.killWord=function(e){y(e,u,1,"grow")},t.backwardKillWord=function(e){y(e,u,-1,"grow")},t.nextLine=x(d,1),t.previousLine=x(d,-1),t.scrollDownCommand=x(m,1),t.scrollUpCommand=x(m,-1),t.backwardParagraph=x(f,-1),t.forwardParagraph=x(f,1),t.backwardSentence=x(p,-1),t.forwardSentence=x(p,1),t.killSentence=function(e){y(e,p,1,"grow")},t.backwardKillSentence=function(e){l(e,e.getCursor(),p(e,e.getCursor(),1),"grow")},t.killSexp=function(e){y(e,h,1,"grow")},t.backwardKillSexp=function(e){y(e,h,-1,"grow")},t.forwardSexp=x(h,1),t.backwardSexp=x(h,-1),t.markSexp=function(e){var t=e.getCursor();e.setSelection(v(e,t,h,1),t)},t.transposeSexps=function(e){var t=h(e,e.getCursor(),-1),n=h(e,t,1),r=h(e,n,1),i=h(e,r,-1);e.replaceRange(e.getRange(i,r)+e.getRange(n,i)+e.getRange(t,n),t,r)},t.backwardUpList=b((function(e){for(var t=e.getCursor(),r=t.line,i=t.ch,o=[];r>=e.firstLine();){for(var a=e.getLine(r),s=null==i?a.length:i;s>0;)if(")"==(i=a.charAt(--s)))o.push("(");else if("]"==i)o.push("[");else if("}"==i)o.push("{");else if(/[\(\{\[]/.test(i)&&(!o.length||o.pop()!=i))return e.extendSelection(n(r,s));--r,i=null}})),t.justOneSpace=function(e){for(var t=e.getCursor(),r=t.ch,i=t.ch,o=e.getLine(t.line);r&&/\s/.test(o.charAt(r-1));)--r;for(;i0)return e.setCursor(t-1);F(e,"Goto line",(function(t){var n;t&&!isNaN(n=Number(t))&&n==(0|n)&&n>0&&e.setCursor(n-1)}))},t.indentRigidly=function(e){e.indentSelection(g(e,!0)||e.getOption("indentUnit"))},t.exchangePointAndMark=function(e){e.setSelection(e.getCursor("head"),e.getCursor("anchor"))},t.quotedInsertTab=b("insertTab"),t.universalArgument=function(e){e.state.emacsPrefixMap=!0,e.addKeyMap(P),e.on("keyHandled",L),e.on("inputRead",L)},e.emacs={kill:l,killRegion:k,repeated:b};var A=e.keyMap.emacs=e.normalizeKeyMap({"Ctrl-W":"killRegion","Ctrl-K":"killLineEmacs","Alt-W":"killRingSave","Ctrl-Y":"yank","Alt-Y":"yankPop","Ctrl-Space":"setMark","Ctrl-Shift-2":"setMark","Ctrl-F":"forwardChar","Ctrl-B":"backwardChar",Right:"forwardChar",Left:"backwardChar","Ctrl-D":"deleteChar",Delete:"deleteForwardChar","Ctrl-H":"deleteBackwardChar",Backspace:"deleteBackwardChar","Alt-F":"forwardWord","Alt-B":"backwardWord","Alt-Right":"forwardWord","Alt-Left":"backwardWord","Alt-D":"killWord","Alt-Backspace":"backwardKillWord","Ctrl-N":"nextLine","Ctrl-P":"previousLine",Down:"nextLine",Up:"previousLine","Ctrl-A":"goLineStart","Ctrl-E":"goLineEnd",End:"goLineEnd",Home:"goLineStart","Alt-V":"scrollDownCommand","Ctrl-V":"scrollUpCommand",PageUp:"scrollUpCommand",PageDown:"scrollDownCommand","Ctrl-Up":"backwardParagraph","Ctrl-Down":"forwardParagraph","Alt-{":"backwardParagraph","Alt-}":"forwardParagraph","Alt-A":"backwardSentence","Alt-E":"forwardSentence","Alt-K":"killSentence","Ctrl-X Delete":"backwardKillSentence","Ctrl-Alt-K":"killSexp","Ctrl-Alt-Backspace":"backwardKillSexp","Ctrl-Alt-F":"forwardSexp","Ctrl-Alt-B":"backwardSexp","Shift-Ctrl-Alt-2":"markSexp","Ctrl-Alt-T":"transposeSexps","Ctrl-Alt-U":"backwardUpList","Alt-Space":"justOneSpace","Ctrl-O":"openLine","Ctrl-T":"transposeCharsRepeatable","Alt-C":"capitalizeWord","Alt-U":"upcaseWord","Alt-L":"downcaseWord","Alt-;":"toggleComment","Ctrl-/":"undoRepeatable","Shift-Ctrl--":"undoRepeatable","Ctrl-Z":"undoRepeatable","Cmd-Z":"undoRepeatable","Ctrl-X U":"undoRepeatable","Shift-Ctrl-Z":"redo","Shift-Alt-,":"goDocStart","Shift-Alt-.":"goDocEnd","Ctrl-S":"findPersistentNext","Ctrl-R":"findPersistentPrev","Ctrl-G":"keyboardQuit","Shift-Alt-5":"replace","Alt-/":"autocomplete",Enter:"newlineAndIndent","Ctrl-J":"newline",Tab:"indentAuto","Alt-G G":"gotoLine","Ctrl-X Tab":"indentRigidly","Ctrl-X Ctrl-X":"exchangePointAndMark","Ctrl-X Ctrl-S":"save","Ctrl-X Ctrl-W":"save","Ctrl-X S":"saveAll","Ctrl-X F":"open","Ctrl-X K":"close","Ctrl-X H":"selectAll","Ctrl-Q Tab":"quotedInsertTab","Ctrl-U":"universalArgument",fallthrough:"default"}),P={"Ctrl-G":S};function D(e){P[e]=function(t){w(t,e)},A["Ctrl-"+e]=function(t){w(t,e)},C["Ctrl-"+e]=!0}for(var z=0;z<10;++z)D(String(z));D("-")}(n(25747))},24354:(e,t,n)=>{!function(e){"use strict";var t=e.commands,n=e.Pos;function r(t,r){t.extendSelectionsBy((function(i){return t.display.shift||t.doc.extend||i.empty()?function(t,r,i){if(i<0&&0==r.ch)return t.clipPos(n(r.line-1));var o=t.getLine(r.line);if(i>0&&r.ch>=o.length)return t.clipPos(n(r.line+1,0));for(var a,s="start",l=r.ch,c=l,u=i<0?0:o.length,d=0;c!=u;c+=i,d++){var m=o.charAt(i<0?c-1:c),f="_"!=m&&e.isWordChar(m)?"w":"o";if("w"==f&&m.toUpperCase()==m&&(f="W"),"start"==s)"o"!=f?(s="in",a=f):l=c+i;else if("in"==s&&a!=f){if("w"==a&&"W"==f&&i<0&&c--,"W"==a&&"w"==f&&i>0){if(c==l+1){a="w";continue}c--}break}}return n(r.line,c)}(t.doc,i.head,r):r<0?i.from():i.to()}))}function i(t,r){if(t.isReadOnly())return e.Pass;t.operation((function(){for(var e=t.listSelections().length,i=[],o=-1,a=0;a=n&&e.execCommand("goLineUp")}e.scrollTo(null,t.top-e.defaultTextHeight())},t.scrollLineDown=function(e){var t=e.getScrollInfo();if(!e.somethingSelected()){var n=e.lineAtHeight(t.top,"local")+1;e.getCursor().line<=n&&e.execCommand("goLineDown")}e.scrollTo(null,t.top+e.defaultTextHeight())},t.splitSelectionByLine=function(e){for(var t=e.listSelections(),r=[],i=0;io.line&&s==a.line&&0==a.ch||r.push({anchor:s==o.line?o:n(s,0),head:s==a.line?a:n(s)});e.setSelections(r,0)},t.singleSelectionTop=function(e){var t=e.listSelections()[0];e.setSelection(t.anchor,t.head,{scroll:!1})},t.selectLine=function(e){for(var t=e.listSelections(),r=[],i=0;i=0;s--){var c=r[i[s]];if(!(l&&e.cmpPos(c.head,l)>0)){var u=o(t,c.head);l=u.from,t.replaceRange(n(u.word),u.from,u.to)}}}))}function m(t){var n=t.getCursor("from"),r=t.getCursor("to");if(0==e.cmpPos(n,r)){var i=o(t,n);if(!i.word)return;n=i.from,r=i.to}return{from:n,to:r,query:t.getRange(n,r),word:i}}function f(e,t){var r=m(e);if(r){var i=r.query,o=e.getSearchCursor(i,t?r.to:r.from);(t?o.findNext():o.findPrevious())?e.setSelection(o.from(),o.to()):(o=e.getSearchCursor(i,t?n(e.firstLine(),0):e.clipPos(n(e.lastLine()))),(t?o.findNext():o.findPrevious())?e.setSelection(o.from(),o.to()):r.word&&e.setSelection(r.from,r.to))}}t.selectScope=function(e){l(e)||e.execCommand("selectAll")},t.selectBetweenBrackets=function(t){if(!l(t))return e.Pass},t.goToBracket=function(t){t.extendSelectionsBy((function(r){var i=t.scanForBracket(r.head,1,c(t.getTokenTypeAt(r.head)));if(i&&0!=e.cmpPos(i.pos,r.head))return i.pos;var o=t.scanForBracket(r.head,-1,c(t.getTokenTypeAt(n(r.head.line,r.head.ch+1))));return o&&n(o.pos.line,o.pos.ch+1)||r.head}))},t.swapLineUp=function(t){if(t.isReadOnly())return e.Pass;for(var r=t.listSelections(),i=[],o=t.firstLine()-1,a=[],s=0;so?i.push(c,u):i.length&&(i[i.length-1]=u),o=u}t.operation((function(){for(var e=0;et.lastLine()?t.replaceRange("\n"+s,n(t.lastLine()),null,"+swapLine"):t.replaceRange(s+"\n",n(o,0),null,"+swapLine")}t.setSelections(a),t.scrollIntoView()}))},t.swapLineDown=function(t){if(t.isReadOnly())return e.Pass;for(var r=t.listSelections(),i=[],o=t.lastLine()+1,a=r.length-1;a>=0;a--){var s=r[a],l=s.to().line+1,c=s.from().line;0!=s.to().ch||s.empty()||l--,l=0;e-=2){var r=i[e],o=i[e+1],a=t.getLine(r);r==t.lastLine()?t.replaceRange("",n(r-1),n(r),"+swapLine"):t.replaceRange("",n(r,0),n(r+1,0),"+swapLine"),t.replaceRange(a+"\n",n(o,0),null,"+swapLine")}t.scrollIntoView()}))},t.toggleCommentIndented=function(e){e.toggleComment({indent:!0})},t.joinLines=function(e){for(var t=e.listSelections(),r=[],i=0;i=0;o--){var a=r[o].head,s=t.getRange({line:a.line,ch:0},a),l=e.countColumn(s,null,t.getOption("tabSize")),c=t.findPosH(a,-1,"char",!1);if(s&&!/\S/.test(s)&&l%i==0){var u=new n(a.line,e.findColumn(s,l-i,i));u.ch!=a.ch&&(c=u)}t.replaceRange("",c,a,"+delete")}}))},t.delLineRight=function(e){e.operation((function(){for(var t=e.listSelections(),r=t.length-1;r>=0;r--)e.replaceRange("",t[r].anchor,n(t[r].to().line),"+delete");e.scrollIntoView()}))},t.upcaseAtCursor=function(e){d(e,(function(e){return e.toUpperCase()}))},t.downcaseAtCursor=function(e){d(e,(function(e){return e.toLowerCase()}))},t.setSublimeMark=function(e){e.state.sublimeMark&&e.state.sublimeMark.clear(),e.state.sublimeMark=e.setBookmark(e.getCursor())},t.selectToSublimeMark=function(e){var t=e.state.sublimeMark&&e.state.sublimeMark.find();t&&e.setSelection(e.getCursor(),t)},t.deleteToSublimeMark=function(t){var n=t.state.sublimeMark&&t.state.sublimeMark.find();if(n){var r=t.getCursor(),i=n;if(e.cmpPos(r,i)>0){var o=i;i=r,r=o}t.state.sublimeKilled=t.getRange(r,i),t.replaceRange("",r,i)}},t.swapWithSublimeMark=function(e){var t=e.state.sublimeMark&&e.state.sublimeMark.find();t&&(e.state.sublimeMark.clear(),e.state.sublimeMark=e.setBookmark(e.getCursor()),e.setCursor(t))},t.sublimeYank=function(e){null!=e.state.sublimeKilled&&e.replaceSelection(e.state.sublimeKilled,null,"paste")},t.showInCenter=function(e){var t=e.cursorCoords(null,"local");e.scrollTo(null,(t.top+t.bottom)/2-e.getScrollInfo().clientHeight/2)},t.findUnder=function(e){f(e,!0)},t.findUnderPrevious=function(e){f(e,!1)},t.findAllUnder=function(e){var t=m(e);if(t){for(var n=e.getSearchCursor(t.query),r=[],i=-1;n.findNext();)r.push({anchor:n.from(),head:n.to()}),n.from().line<=t.from.line&&n.from().ch<=t.from.ch&&i++;e.setSelections(r,i)}};var p=e.keyMap;p.macSublime={"Cmd-Left":"goLineStartSmart","Shift-Tab":"indentLess","Shift-Ctrl-K":"deleteLine","Alt-Q":"wrapLines","Ctrl-Left":"goSubwordLeft","Ctrl-Right":"goSubwordRight","Ctrl-Alt-Up":"scrollLineUp","Ctrl-Alt-Down":"scrollLineDown","Cmd-L":"selectLine","Shift-Cmd-L":"splitSelectionByLine",Esc:"singleSelectionTop","Cmd-Enter":"insertLineAfter","Shift-Cmd-Enter":"insertLineBefore","Cmd-D":"selectNextOccurrence","Shift-Cmd-Space":"selectScope","Shift-Cmd-M":"selectBetweenBrackets","Cmd-M":"goToBracket","Cmd-Ctrl-Up":"swapLineUp","Cmd-Ctrl-Down":"swapLineDown","Cmd-/":"toggleCommentIndented","Cmd-J":"joinLines","Shift-Cmd-D":"duplicateLine",F5:"sortLines","Shift-F5":"reverseSortLines","Cmd-F5":"sortLinesInsensitive","Shift-Cmd-F5":"reverseSortLinesInsensitive",F2:"nextBookmark","Shift-F2":"prevBookmark","Cmd-F2":"toggleBookmark","Shift-Cmd-F2":"clearBookmarks","Alt-F2":"selectBookmarks",Backspace:"smartBackspace","Cmd-K Cmd-D":"skipAndSelectNextOccurrence","Cmd-K Cmd-K":"delLineRight","Cmd-K Cmd-U":"upcaseAtCursor","Cmd-K Cmd-L":"downcaseAtCursor","Cmd-K Cmd-Space":"setSublimeMark","Cmd-K Cmd-A":"selectToSublimeMark","Cmd-K Cmd-W":"deleteToSublimeMark","Cmd-K Cmd-X":"swapWithSublimeMark","Cmd-K Cmd-Y":"sublimeYank","Cmd-K Cmd-C":"showInCenter","Cmd-K Cmd-G":"clearBookmarks","Cmd-K Cmd-Backspace":"delLineLeft","Cmd-K Cmd-1":"foldAll","Cmd-K Cmd-0":"unfoldAll","Cmd-K Cmd-J":"unfoldAll","Ctrl-Shift-Up":"addCursorToPrevLine","Ctrl-Shift-Down":"addCursorToNextLine","Cmd-F3":"findUnder","Shift-Cmd-F3":"findUnderPrevious","Alt-F3":"findAllUnder","Shift-Cmd-[":"fold","Shift-Cmd-]":"unfold","Cmd-I":"findIncremental","Shift-Cmd-I":"findIncrementalReverse","Cmd-H":"replace",F3:"findNext","Shift-F3":"findPrev",fallthrough:"macDefault"},e.normalizeKeyMap(p.macSublime),p.pcSublime={"Shift-Tab":"indentLess","Shift-Ctrl-K":"deleteLine","Alt-Q":"wrapLines","Ctrl-T":"transposeChars","Alt-Left":"goSubwordLeft","Alt-Right":"goSubwordRight","Ctrl-Up":"scrollLineUp","Ctrl-Down":"scrollLineDown","Ctrl-L":"selectLine","Shift-Ctrl-L":"splitSelectionByLine",Esc:"singleSelectionTop","Ctrl-Enter":"insertLineAfter","Shift-Ctrl-Enter":"insertLineBefore","Ctrl-D":"selectNextOccurrence","Shift-Ctrl-Space":"selectScope","Shift-Ctrl-M":"selectBetweenBrackets","Ctrl-M":"goToBracket","Shift-Ctrl-Up":"swapLineUp","Shift-Ctrl-Down":"swapLineDown","Ctrl-/":"toggleCommentIndented","Ctrl-J":"joinLines","Shift-Ctrl-D":"duplicateLine",F9:"sortLines","Shift-F9":"reverseSortLines","Ctrl-F9":"sortLinesInsensitive","Shift-Ctrl-F9":"reverseSortLinesInsensitive",F2:"nextBookmark","Shift-F2":"prevBookmark","Ctrl-F2":"toggleBookmark","Shift-Ctrl-F2":"clearBookmarks","Alt-F2":"selectBookmarks",Backspace:"smartBackspace","Ctrl-K Ctrl-D":"skipAndSelectNextOccurrence","Ctrl-K Ctrl-K":"delLineRight","Ctrl-K Ctrl-U":"upcaseAtCursor","Ctrl-K Ctrl-L":"downcaseAtCursor","Ctrl-K Ctrl-Space":"setSublimeMark","Ctrl-K Ctrl-A":"selectToSublimeMark","Ctrl-K Ctrl-W":"deleteToSublimeMark","Ctrl-K Ctrl-X":"swapWithSublimeMark","Ctrl-K Ctrl-Y":"sublimeYank","Ctrl-K Ctrl-C":"showInCenter","Ctrl-K Ctrl-G":"clearBookmarks","Ctrl-K Ctrl-Backspace":"delLineLeft","Ctrl-K Ctrl-1":"foldAll","Ctrl-K Ctrl-0":"unfoldAll","Ctrl-K Ctrl-J":"unfoldAll","Ctrl-Alt-Up":"addCursorToPrevLine","Ctrl-Alt-Down":"addCursorToNextLine","Ctrl-F3":"findUnder","Shift-Ctrl-F3":"findUnderPrevious","Alt-F3":"findAllUnder","Shift-Ctrl-[":"fold","Shift-Ctrl-]":"unfold","Ctrl-I":"findIncremental","Shift-Ctrl-I":"findIncrementalReverse","Ctrl-H":"replace",F3:"findNext","Shift-F3":"findPrev",fallthrough:"pcDefault"},e.normalizeKeyMap(p.pcSublime);var h=p.default==p.macDefault;p.sublime=h?p.macSublime:p.pcSublime}(n(25747),n(41859),n(52971))},91434:(e,t,n)=>{!function(e){"use strict";function t(e,t,n,r,i,o){this.indented=e,this.column=t,this.type=n,this.info=r,this.align=i,this.prev=o}function n(e,n,r,i){var o=e.indented;return e.context&&"statement"==e.context.type&&"statement"!=r&&(o=e.context.indented),e.context=new t(o,n,r,i,null,e.context)}function r(e){var t=e.context.type;return")"!=t&&"]"!=t&&"}"!=t||(e.indented=e.context.indented),e.context=e.context.prev}function i(e,t,n){return"variable"==t.prevToken||"type"==t.prevToken||!!/\S(?:[^- ]>|[*\]])\s*$|\*$/.test(e.string.slice(0,n))||!(!t.typeAtEndOfLine||e.column()!=e.indentation())||void 0}function o(e){for(;;){if(!e||"top"==e.type)return!0;if("}"==e.type&&"namespace"!=e.prev.info)return!1;e=e.prev}}function a(e){for(var t={},n=e.split(" "),r=0;r!?|\/]/,F=l.isIdentifierChar||/[\w\$_\xa1-\uffff]/,E=l.isReservedIdentifier||!1;function A(e,t){var n,r=e.next();if(y[r]){var i=y[r](e,t);if(!1!==i)return i}if('"'==r||"'"==r)return t.tokenize=(n=r,function(e,t){for(var r,i=!1,o=!1;null!=(r=e.next());){if(r==n&&!i){o=!0;break}i=!i&&"\\"==r}return(o||!i&&!k)&&(t.tokenize=null),"string"}),t.tokenize(e,t);if(M.test(r)){if(e.backUp(1),e.match(L))return"number";e.next()}if(S.test(r))return c=r,null;if("/"==r){if(e.eat("*"))return t.tokenize=P,P(e,t);if(e.eat("/"))return e.skipToEnd(),"comment"}if(T.test(r)){for(;!e.match(/^\/[\/*]/,!1)&&e.eat(T););return"operator"}if(e.eatWhile(F),_)for(;e.match(_);)e.eatWhile(F);var o=e.current();return s(p,o)?(s(b,o)&&(c="newstatement"),s(v,o)&&(u=!0),"keyword"):s(h,o)?"type":s(g,o)||E&&E(o)?(s(b,o)&&(c="newstatement"),"builtin"):s(x,o)?"atom":"variable"}function P(e,t){for(var n,r=!1;n=e.next();){if("/"==n&&r){t.tokenize=null;break}r="*"==n}return"comment"}function D(e,t){l.typeFirstDefinitions&&e.eol()&&o(t.context)&&(t.typeAtEndOfLine=i(e,t,e.pos))}return{startState:function(e){return{tokenize:null,context:new t((e||0)-d,0,"top",null,!1),indented:0,startOfLine:!0,prevToken:null}},token:function(e,t){var a=t.context;if(e.sol()&&(null==a.align&&(a.align=!1),t.indented=e.indentation(),t.startOfLine=!0),e.eatSpace())return D(e,t),null;c=u=null;var s=(t.tokenize||A)(e,t);if("comment"==s||"meta"==s)return s;if(null==a.align&&(a.align=!0),";"==c||":"==c||","==c&&e.match(/^\s*(?:\/\/.*)?$/,!1))for(;"statement"==t.context.type;)r(t);else if("{"==c)n(t,e.column(),"}");else if("["==c)n(t,e.column(),"]");else if("("==c)n(t,e.column(),")");else if("}"==c){for(;"statement"==a.type;)a=r(t);for("}"==a.type&&(a=r(t));"statement"==a.type;)a=r(t)}else c==a.type?r(t):w&&(("}"==a.type||"top"==a.type)&&";"!=c||"statement"==a.type&&"newstatement"==c)&&n(t,e.column(),"statement",e.current());if("variable"==s&&("def"==t.prevToken||l.typeFirstDefinitions&&i(e,t,e.start)&&o(t.context)&&e.match(/^\s*\(/,!1))&&(s="def"),y.token){var d=y.token(e,t,s);void 0!==d&&(s=d)}return"def"==s&&!1===l.styleDefs&&(s="variable"),t.startOfLine=!1,t.prevToken=u?"def":s||c,D(e,t),s},indent:function(t,n){if(t.tokenize!=A&&null!=t.tokenize||t.typeAtEndOfLine)return e.Pass;var r=t.context,i=n&&n.charAt(0),o=i==r.type;if("statement"==r.type&&"}"==i&&(r=r.prev),l.dontIndentStatements)for(;"statement"==r.type&&l.dontIndentStatements.test(r.info);)r=r.prev;if(y.indent){var a=y.indent(t,r,n,d);if("number"==typeof a)return a}var s=r.prev&&"switch"==r.prev.info;if(l.allmanIndentation&&/[{(]/.test(i)){for(;"top"!=r.type&&"}"!=r.type;)r=r.prev;return r.indented}return"statement"==r.type?r.indented+("{"==i?0:m):!r.align||f&&")"==r.type?")"!=r.type||o?r.indented+(o?0:d)+(o||!s||/^(?:case|default)\b/.test(n)?0:d):r.indented+m:r.column+(o?0:1)},electricInput:C?/^\s*(?:case .*?:|default:|\{\}?|\})$/:/^\s*[{}]$/,blockCommentStart:"/*",blockCommentEnd:"*/",blockCommentContinue:" * ",lineComment:"//",fold:"brace"}}));var l="auto if break case register continue return default do sizeof static else struct switch extern typedef union for goto while enum const volatile inline restrict asm fortran",c="alignas alignof and and_eq audit axiom bitand bitor catch class compl concept constexpr const_cast decltype delete dynamic_cast explicit export final friend import module mutable namespace new noexcept not not_eq operator or or_eq override private protected public reinterpret_cast requires static_assert static_cast template this thread_local throw try typeid typename using virtual xor xor_eq",u="bycopy byref in inout oneway out self super atomic nonatomic retain copy readwrite readonly strong weak assign typeof nullable nonnull null_resettable _cmd @interface @implementation @end @protocol @encode @property @synthesize @dynamic @class @public @package @private @protected @required @optional @try @catch @finally @import @selector @encode @defs @synchronized @autoreleasepool @compatibility_alias @available",d="FOUNDATION_EXPORT FOUNDATION_EXTERN NS_INLINE NS_FORMAT_FUNCTION NS_RETURNS_RETAINEDNS_ERROR_ENUM NS_RETURNS_NOT_RETAINED NS_RETURNS_INNER_POINTER NS_DESIGNATED_INITIALIZER NS_ENUM NS_OPTIONS NS_REQUIRES_NIL_TERMINATION NS_ASSUME_NONNULL_BEGIN NS_ASSUME_NONNULL_END NS_SWIFT_NAME NS_REFINED_FOR_SWIFT",m=a("int long char short double float unsigned signed void bool"),f=a("SEL instancetype id Class Protocol BOOL");function p(e){return s(m,e)||/.+_t$/.test(e)}function h(e){return p(e)||s(f,e)}var g="case do else for if switch while struct enum union",b="struct enum union";function v(e,t){if(!t.startOfLine)return!1;for(var n,r=null;n=e.peek();){if("\\"==n&&e.match(/^.$/)){r=v;break}if("/"==n&&e.match(/^\/[\/\*]/,!1))break;e.next()}return t.tokenize=r,"meta"}function x(e,t){return"type"==t.prevToken&&"type"}function y(e){return!(!e||e.length<2||"_"!=e[0]||"_"!=e[1]&&e[1]===e[1].toLowerCase())}function k(e){return e.eatWhile(/[\w\.']/),"number"}function w(e,t){if(e.backUp(1),e.match(/^(?:R|u8R|uR|UR|LR)/)){var n=e.match(/^"([^\s\\()]{0,16})\(/);return!!n&&(t.cpp11RawStringDelim=n[1],t.tokenize=S,S(e,t))}return e.match(/^(?:u8|u|U|L)/)?!!e.match(/^["']/,!1)&&"string":(e.next(),!1)}function C(e){var t=/(\w+)::~?(\w+)$/.exec(e);return t&&t[1]==t[2]}function _(e,t){for(var n;null!=(n=e.next());)if('"'==n&&!e.eat('"')){t.tokenize=null;break}return"string"}function S(e,t){var n=t.cpp11RawStringDelim.replace(/[^\w\s]/g,"\\$&");return e.match(new RegExp(".*?\\)"+n+'"'))?t.tokenize=null:e.skipToEnd(),"string"}function M(t,n){"string"==typeof t&&(t=[t]);var r=[];function i(e){if(e)for(var t in e)e.hasOwnProperty(t)&&r.push(t)}i(n.keywords),i(n.types),i(n.builtin),i(n.atoms),r.length&&(n.helperType=t[0],e.registerHelper("hintWords",t[0],r));for(var o=0;o!?|\/#:@]/,hooks:{"@":function(e){return e.eatWhile(/[\w\$_]/),"meta"},'"':function(e,t){return!!e.match('""')&&(t.tokenize=L,t.tokenize(e,t))},"'":function(e){return e.eatWhile(/[\w\$_\xa1-\uffff]/),"atom"},"=":function(e,n){var r=n.context;return!("}"!=r.type||!r.align||!e.eat(">"))&&(n.context=new t(r.indented,r.column,r.type,r.info,null,r.prev),"operator")},"/":function(e,t){return!!e.eat("*")&&(t.tokenize=T(1),t.tokenize(e,t))}},modeProps:{closeBrackets:{pairs:'()[]{}""',triples:'"'}}}),M("text/x-kotlin",{name:"clike",keywords:a("package as typealias class interface this super val operator var fun for is in This throw return annotation break continue object if else while do try when !in !is as? file import where by get set abstract enum open inner override private public internal protected catch finally out final vararg reified dynamic companion constructor init sealed field property receiver param sparam lateinit data inline noinline tailrec external annotation crossinline const operator infix suspend actual expect setparam value"),types:a("Boolean Byte Character CharSequence Class ClassLoader Cloneable Comparable Compiler Double Exception Float Integer Long Math Number Object Package Pair Process Runtime Runnable SecurityManager Short StackTraceElement StrictMath String StringBuffer System Thread ThreadGroup ThreadLocal Throwable Triple Void Annotation Any BooleanArray ByteArray Char CharArray DeprecationLevel DoubleArray Enum FloatArray Function Int IntArray Lazy LazyThreadSafetyMode LongArray Nothing ShortArray Unit"),intendSwitch:!1,indentStatements:!1,multiLineStrings:!0,number:/^(?:0x[a-f\d_]+|0b[01_]+|(?:[\d_]+(\.\d+)?|\.\d+)(?:e[-+]?[\d_]+)?)(u|ll?|l|f)?/i,blockKeywords:a("catch class do else finally for if where try while enum"),defKeywords:a("class val var object interface fun"),atoms:a("true false null this"),hooks:{"@":function(e){return e.eatWhile(/[\w\$_]/),"meta"},"*":function(e,t){return"."==t.prevToken?"variable":"operator"},'"':function(e,t){return t.tokenize=(n=e.match('""'),function(e,t){for(var r,i=!1,o=!1;!e.eol();){if(!n&&!i&&e.match('"')){o=!0;break}if(n&&e.match('"""')){o=!0;break}r=e.next(),!i&&"$"==r&&e.match("{")&&e.skipTo("}"),i=!i&&"\\"==r&&!n}return!o&&n||(t.tokenize=null),"string"}),t.tokenize(e,t);var n},"/":function(e,t){return!!e.eat("*")&&(t.tokenize=T(1),t.tokenize(e,t))},indent:function(e,t,n,r){var i=n&&n.charAt(0);return"}"!=e.prevToken&&")"!=e.prevToken||""!=n?"operator"==e.prevToken&&"}"!=n&&"}"!=e.context.type||"variable"==e.prevToken&&"."==i||("}"==e.prevToken||")"==e.prevToken)&&"."==i?2*r+t.indented:t.align&&"}"==t.type?t.indented+(e.context.type==(n||"").charAt(0)?0:r):void 0:e.indented}},modeProps:{closeBrackets:{triples:'"'}}}),M(["x-shader/x-vertex","x-shader/x-fragment"],{name:"clike",keywords:a("sampler1D sampler2D sampler3D samplerCube sampler1DShadow sampler2DShadow const attribute uniform varying break continue discard return for while do if else struct in out inout"),types:a("float int bool void vec2 vec3 vec4 ivec2 ivec3 ivec4 bvec2 bvec3 bvec4 mat2 mat3 mat4"),blockKeywords:a("for while do if else struct"),builtin:a("radians degrees sin cos tan asin acos atan pow exp log exp2 sqrt inversesqrt abs sign floor ceil fract mod min max clamp mix step smoothstep length distance dot cross normalize ftransform faceforward reflect refract matrixCompMult lessThan lessThanEqual greaterThan greaterThanEqual equal notEqual any all not texture1D texture1DProj texture1DLod texture1DProjLod texture2D texture2DProj texture2DLod texture2DProjLod texture3D texture3DProj texture3DLod texture3DProjLod textureCube textureCubeLod shadow1D shadow2D shadow1DProj shadow2DProj shadow1DLod shadow2DLod shadow1DProjLod shadow2DProjLod dFdx dFdy fwidth noise1 noise2 noise3 noise4"),atoms:a("true false gl_FragColor gl_SecondaryColor gl_Normal gl_Vertex gl_MultiTexCoord0 gl_MultiTexCoord1 gl_MultiTexCoord2 gl_MultiTexCoord3 gl_MultiTexCoord4 gl_MultiTexCoord5 gl_MultiTexCoord6 gl_MultiTexCoord7 gl_FogCoord gl_PointCoord gl_Position gl_PointSize gl_ClipVertex gl_FrontColor gl_BackColor gl_FrontSecondaryColor gl_BackSecondaryColor gl_TexCoord gl_FogFragCoord gl_FragCoord gl_FrontFacing gl_FragData gl_FragDepth gl_ModelViewMatrix gl_ProjectionMatrix gl_ModelViewProjectionMatrix gl_TextureMatrix gl_NormalMatrix gl_ModelViewMatrixInverse gl_ProjectionMatrixInverse gl_ModelViewProjectionMatrixInverse gl_TextureMatrixTranspose gl_ModelViewMatrixInverseTranspose gl_ProjectionMatrixInverseTranspose gl_ModelViewProjectionMatrixInverseTranspose gl_TextureMatrixInverseTranspose gl_NormalScale gl_DepthRange gl_ClipPlane gl_Point gl_FrontMaterial gl_BackMaterial gl_LightSource gl_LightModel gl_FrontLightModelProduct gl_BackLightModelProduct gl_TextureColor gl_EyePlaneS gl_EyePlaneT gl_EyePlaneR gl_EyePlaneQ gl_FogParameters gl_MaxLights gl_MaxClipPlanes gl_MaxTextureUnits gl_MaxTextureCoords gl_MaxVertexAttribs gl_MaxVertexUniformComponents gl_MaxVaryingFloats gl_MaxVertexTextureImageUnits gl_MaxTextureImageUnits gl_MaxFragmentUniformComponents gl_MaxCombineTextureImageUnits gl_MaxDrawBuffers"),indentSwitch:!1,hooks:{"#":v},modeProps:{fold:["brace","include"]}}),M("text/x-nesc",{name:"clike",keywords:a(l+" as atomic async call command component components configuration event generic implementation includes interface module new norace nx_struct nx_union post provides signal task uses abstract extends"),types:p,blockKeywords:a(g),atoms:a("null true false"),hooks:{"#":v},modeProps:{fold:["brace","include"]}}),M("text/x-objectivec",{name:"clike",keywords:a(l+" "+u),types:h,builtin:a(d),blockKeywords:a(g+" @synthesize @try @catch @finally @autoreleasepool @synchronized"),defKeywords:a(b+" @interface @implementation @protocol @class"),dontIndentStatements:/^@.*$/,typeFirstDefinitions:!0,atoms:a("YES NO NULL Nil nil true false nullptr"),isReservedIdentifier:y,hooks:{"#":v,"*":x},modeProps:{fold:["brace","include"]}}),M("text/x-objectivec++",{name:"clike",keywords:a(l+" "+u+" "+c),types:h,builtin:a(d),blockKeywords:a(g+" @synthesize @try @catch @finally @autoreleasepool @synchronized class try catch"),defKeywords:a(b+" @interface @implementation @protocol @class class namespace"),dontIndentStatements:/^@.*$|^template$/,typeFirstDefinitions:!0,atoms:a("YES NO NULL Nil nil true false nullptr"),isReservedIdentifier:y,hooks:{"#":v,"*":x,u:w,U:w,L:w,R:w,0:k,1:k,2:k,3:k,4:k,5:k,6:k,7:k,8:k,9:k,token:function(e,t,n){if("variable"==n&&"("==e.peek()&&(";"==t.prevToken||null==t.prevToken||"}"==t.prevToken)&&C(e.current()))return"def"}},namespaceSeparator:"::",modeProps:{fold:["brace","include"]}}),M("text/x-squirrel",{name:"clike",keywords:a("base break clone continue const default delete enum extends function in class foreach local resume return this throw typeof yield constructor instanceof static"),types:p,blockKeywords:a("case catch class else for foreach if switch try while"),defKeywords:a("function local class"),typeFirstDefinitions:!0,atoms:a("true false null"),hooks:{"#":v},modeProps:{fold:["brace","include"]}});var F=null;function E(e){return function(t,n){for(var r,i=!1,o=!1;!t.eol();){if(!i&&t.match('"')&&("single"==e||t.match('""'))){o=!0;break}if(!i&&t.match("``")){F=E(e),o=!0;break}r=t.next(),i="single"==e&&!i&&"\\"==r}return o&&(n.tokenize=null),"string"}}M("text/x-ceylon",{name:"clike",keywords:a("abstracts alias assembly assert assign break case catch class continue dynamic else exists extends finally for function given if import in interface is let module new nonempty object of out outer package return satisfies super switch then this throw try value void while"),types:function(e){var t=e.charAt(0);return t===t.toUpperCase()&&t!==t.toLowerCase()},blockKeywords:a("case catch class dynamic else finally for function if interface module new object switch try while"),defKeywords:a("class dynamic function interface module object package value"),builtin:a("abstract actual aliased annotation by default deprecated doc final formal late license native optional sealed see serializable shared suppressWarnings tagged throws variable"),isPunctuationChar:/[\[\]{}\(\),;\:\.`]/,isOperatorChar:/[+\-*&%=<>!?|^~:\/]/,numberStart:/[\d#$]/,number:/^(?:#[\da-fA-F_]+|\$[01_]+|[\d_]+[kMGTPmunpf]?|[\d_]+\.[\d_]+(?:[eE][-+]?\d+|[kMGTPmunpf]|)|)/i,multiLineStrings:!0,typeFirstDefinitions:!0,atoms:a("true false null larger smaller equal empty finished"),indentSwitch:!1,styleDefs:!1,hooks:{"@":function(e){return e.eatWhile(/[\w\$_]/),"meta"},'"':function(e,t){return t.tokenize=E(e.match('""')?"triple":"single"),t.tokenize(e,t)},"`":function(e,t){return!(!F||!e.match("`"))&&(t.tokenize=F,F=null,t.tokenize(e,t))},"'":function(e){return e.eatWhile(/[\w\$_\xa1-\uffff]/),"atom"},token:function(e,t,n){if(("variable"==n||"type"==n)&&"."==t.prevToken)return"variable-2"}},modeProps:{fold:["brace","import"],closeBrackets:{triples:'"'}}})}(n(25747))},1827:(e,t,n)=>{!function(e){"use strict";function t(e){for(var t={},n=0;n*\/]/.test(n)?w(null,"select-op"):"."==n&&e.match(/^-?[_a-z][_a-z0-9-]*/i)?w("qualifier","qualifier"):/[:;{}\[\]\(\)]/.test(n)?w(null,n):e.match(/^[\w-.]+(?=\()/)?(/^(url(-prefix)?|domain|regexp)$/i.test(e.current())&&(t.tokenize=S),w("variable callee","variable")):/[\w\\\-]/.test(n)?(e.eatWhile(/[\w\\\-]/),w("property","word")):w(null,null):/[\d.]/.test(e.peek())?(e.eatWhile(/[\w.%]/),w("number","unit")):e.match(/^-[\w\\\-]*/)?(e.eatWhile(/[\w\\\-]/),e.match(/^\s*:/,!1)?w("variable-2","variable-definition"):w("variable-2","variable")):e.match(/^\w+-/)?w("meta","meta"):void 0}function _(e){return function(t,n){for(var r,i=!1;null!=(r=t.next());){if(r==e&&!i){")"==e&&t.backUp(1);break}i=!i&&"\\"==r}return(r==e||!i&&")"!=e)&&(n.tokenize=null),w("string","string")}}function S(e,t){return e.next(),e.match(/^\s*[\"\')]/,!1)?t.tokenize=null:t.tokenize=_(")"),w(null,"(")}function M(e,t,n){this.type=e,this.indent=t,this.prev=n}function L(e,t,n,r){return e.context=new M(n,t.indentation()+(!1===r?0:a),e.context),n}function T(e){return e.context.prev&&(e.context=e.context.prev),e.context.type}function F(e,t,n){return P[n.context.type](e,t,n)}function E(e,t,n,r){for(var i=r||1;i>0;i--)n.context=n.context.prev;return F(e,t,n)}function A(e){var t=e.current().toLowerCase();o=b.hasOwnProperty(t)?"atom":g.hasOwnProperty(t)?"keyword":"variable"}var P={top:function(e,t,n){if("{"==e)return L(n,t,"block");if("}"==e&&n.context.prev)return T(n);if(y&&/@component/i.test(e))return L(n,t,"atComponentBlock");if(/^@(-moz-)?document$/i.test(e))return L(n,t,"documentTypes");if(/^@(media|supports|(-moz-)?document|import)$/i.test(e))return L(n,t,"atBlock");if(/^@(font-face|counter-style)/i.test(e))return n.stateArg=e,"restricted_atBlock_before";if(/^@(-(moz|ms|o|webkit)-)?keyframes$/i.test(e))return"keyframes";if(e&&"@"==e.charAt(0))return L(n,t,"at");if("hash"==e)o="builtin";else if("word"==e)o="tag";else{if("variable-definition"==e)return"maybeprop";if("interpolation"==e)return L(n,t,"interpolation");if(":"==e)return"pseudo";if(v&&"("==e)return L(n,t,"parens")}return n.context.type},block:function(e,t,n){if("word"==e){var r=t.current().toLowerCase();return m.hasOwnProperty(r)?(o="property","maybeprop"):f.hasOwnProperty(r)?(o=k?"string-2":"property","maybeprop"):v?(o=t.match(/^\s*:(?:\s|$)/,!1)?"property":"tag","block"):(o+=" error","maybeprop")}return"meta"==e?"block":v||"hash"!=e&&"qualifier"!=e?P.top(e,t,n):(o="error","block")},maybeprop:function(e,t,n){return":"==e?L(n,t,"prop"):F(e,t,n)},prop:function(e,t,n){if(";"==e)return T(n);if("{"==e&&v)return L(n,t,"propBlock");if("}"==e||"{"==e)return E(e,t,n);if("("==e)return L(n,t,"parens");if("hash"!=e||/^#([0-9a-fA-f]{3,4}|[0-9a-fA-f]{6}|[0-9a-fA-f]{8})$/.test(t.current())){if("word"==e)A(t);else if("interpolation"==e)return L(n,t,"interpolation")}else o+=" error";return"prop"},propBlock:function(e,t,n){return"}"==e?T(n):"word"==e?(o="property","maybeprop"):n.context.type},parens:function(e,t,n){return"{"==e||"}"==e?E(e,t,n):")"==e?T(n):"("==e?L(n,t,"parens"):"interpolation"==e?L(n,t,"interpolation"):("word"==e&&A(t),"parens")},pseudo:function(e,t,n){return"meta"==e?"pseudo":"word"==e?(o="variable-3",n.context.type):F(e,t,n)},documentTypes:function(e,t,n){return"word"==e&&l.hasOwnProperty(t.current())?(o="tag",n.context.type):P.atBlock(e,t,n)},atBlock:function(e,t,n){if("("==e)return L(n,t,"atBlock_parens");if("}"==e||";"==e)return E(e,t,n);if("{"==e)return T(n)&&L(n,t,v?"block":"top");if("interpolation"==e)return L(n,t,"interpolation");if("word"==e){var r=t.current().toLowerCase();o="only"==r||"not"==r||"and"==r||"or"==r?"keyword":c.hasOwnProperty(r)?"attribute":u.hasOwnProperty(r)?"property":d.hasOwnProperty(r)?"keyword":m.hasOwnProperty(r)?"property":f.hasOwnProperty(r)?k?"string-2":"property":b.hasOwnProperty(r)?"atom":g.hasOwnProperty(r)?"keyword":"error"}return n.context.type},atComponentBlock:function(e,t,n){return"}"==e?E(e,t,n):"{"==e?T(n)&&L(n,t,v?"block":"top",!1):("word"==e&&(o="error"),n.context.type)},atBlock_parens:function(e,t,n){return")"==e?T(n):"{"==e||"}"==e?E(e,t,n,2):P.atBlock(e,t,n)},restricted_atBlock_before:function(e,t,n){return"{"==e?L(n,t,"restricted_atBlock"):"word"==e&&"@counter-style"==n.stateArg?(o="variable","restricted_atBlock_before"):F(e,t,n)},restricted_atBlock:function(e,t,n){return"}"==e?(n.stateArg=null,T(n)):"word"==e?(o="@font-face"==n.stateArg&&!p.hasOwnProperty(t.current().toLowerCase())||"@counter-style"==n.stateArg&&!h.hasOwnProperty(t.current().toLowerCase())?"error":"property","maybeprop"):"restricted_atBlock"},keyframes:function(e,t,n){return"word"==e?(o="variable","keyframes"):"{"==e?L(n,t,"top"):F(e,t,n)},at:function(e,t,n){return";"==e?T(n):"{"==e||"}"==e?E(e,t,n):("word"==e?o="tag":"hash"==e&&(o="builtin"),"at")},interpolation:function(e,t,n){return"}"==e?T(n):"{"==e||";"==e?E(e,t,n):("word"==e?o="variable":"variable"!=e&&"("!=e&&")"!=e&&(o="error"),"interpolation")}};return{startState:function(e){return{tokenize:null,state:r?"block":"top",stateArg:null,context:new M(r?"block":"top",e||0,null)}},token:function(e,t){if(!t.tokenize&&e.eatSpace())return null;var n=(t.tokenize||C)(e,t);return n&&"object"==typeof n&&(i=n[1],n=n[0]),o=n,"comment"!=i&&(t.state=P[t.state](i,e,t)),o},indent:function(e,t){var n=e.context,r=t&&t.charAt(0),i=n.indent;return"prop"!=n.type||"}"!=r&&")"!=r||(n=n.prev),n.prev&&("}"!=r||"block"!=n.type&&"top"!=n.type&&"interpolation"!=n.type&&"restricted_atBlock"!=n.type?(")"!=r||"parens"!=n.type&&"atBlock_parens"!=n.type)&&("{"!=r||"at"!=n.type&&"atBlock"!=n.type)||(i=Math.max(0,n.indent-a)):i=(n=n.prev).indent),i},electricChars:"}",blockCommentStart:"/*",blockCommentEnd:"*/",blockCommentContinue:" * ",lineComment:x,fold:"brace"}}));var n=["domain","regexp","url","url-prefix"],r=t(n),i=["all","aural","braille","handheld","print","projection","screen","tty","tv","embossed"],o=t(i),a=["width","min-width","max-width","height","min-height","max-height","device-width","min-device-width","max-device-width","device-height","min-device-height","max-device-height","aspect-ratio","min-aspect-ratio","max-aspect-ratio","device-aspect-ratio","min-device-aspect-ratio","max-device-aspect-ratio","color","min-color","max-color","color-index","min-color-index","max-color-index","monochrome","min-monochrome","max-monochrome","resolution","min-resolution","max-resolution","scan","grid","orientation","device-pixel-ratio","min-device-pixel-ratio","max-device-pixel-ratio","pointer","any-pointer","hover","any-hover","prefers-color-scheme"],s=t(a),l=["landscape","portrait","none","coarse","fine","on-demand","hover","interlace","progressive","dark","light"],c=t(l),u=["align-content","align-items","align-self","alignment-adjust","alignment-baseline","all","anchor-point","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","appearance","azimuth","backdrop-filter","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-position-x","background-position-y","background-repeat","background-size","baseline-shift","binding","bleed","block-size","bookmark-label","bookmark-level","bookmark-state","bookmark-target","border","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","color","color-profile","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","content","counter-increment","counter-reset","crop","cue","cue-after","cue-before","cursor","direction","display","dominant-baseline","drop-initial-after-adjust","drop-initial-after-align","drop-initial-before-adjust","drop-initial-before-align","drop-initial-size","drop-initial-value","elevation","empty-cells","fit","fit-position","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","float-offset","flow-from","flow-into","font","font-family","font-feature-settings","font-kerning","font-language-override","font-optical-sizing","font-size","font-size-adjust","font-stretch","font-style","font-synthesis","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","gap","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-gap","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-gap","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphens","icon","image-orientation","image-rendering","image-resolution","inline-box-align","inset","inset-block","inset-block-end","inset-block-start","inset-inline","inset-inline-end","inset-inline-start","isolation","justify-content","justify-items","justify-self","left","letter-spacing","line-break","line-height","line-height-step","line-stacking","line-stacking-ruby","line-stacking-shift","line-stacking-strategy","list-style","list-style-image","list-style-position","list-style-type","margin","margin-bottom","margin-left","margin-right","margin-top","marks","marquee-direction","marquee-loop","marquee-play-count","marquee-speed","marquee-style","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","move-to","nav-down","nav-index","nav-left","nav-right","nav-up","object-fit","object-position","offset","offset-anchor","offset-distance","offset-path","offset-position","offset-rotate","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-style","overflow-wrap","overflow-x","overflow-y","padding","padding-bottom","padding-left","padding-right","padding-top","page","page-break-after","page-break-before","page-break-inside","page-policy","pause","pause-after","pause-before","perspective","perspective-origin","pitch","pitch-range","place-content","place-items","place-self","play-during","position","presentation-level","punctuation-trim","quotes","region-break-after","region-break-before","region-break-inside","region-fragment","rendering-intent","resize","rest","rest-after","rest-before","richness","right","rotate","rotation","rotation-point","row-gap","ruby-align","ruby-overhang","ruby-position","ruby-span","scale","scroll-behavior","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-type","shape-image-threshold","shape-inside","shape-margin","shape-outside","size","speak","speak-as","speak-header","speak-numeral","speak-punctuation","speech-rate","stress","string-set","tab-size","table-layout","target","target-name","target-new","target-position","text-align","text-align-last","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-skip","text-decoration-skip-ink","text-decoration-style","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-height","text-indent","text-justify","text-orientation","text-outline","text-overflow","text-rendering","text-shadow","text-size-adjust","text-space-collapse","text-transform","text-underline-position","text-wrap","top","touch-action","transform","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","translate","unicode-bidi","user-select","vertical-align","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","volume","white-space","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","z-index","clip-path","clip-rule","mask","enable-background","filter","flood-color","flood-opacity","lighting-color","stop-color","stop-opacity","pointer-events","color-interpolation","color-interpolation-filters","color-rendering","fill","fill-opacity","fill-rule","image-rendering","marker","marker-end","marker-mid","marker-start","paint-order","shape-rendering","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","text-rendering","baseline-shift","dominant-baseline","glyph-orientation-horizontal","glyph-orientation-vertical","text-anchor","writing-mode"],d=t(u),m=["border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","margin-block","margin-block-end","margin-block-start","margin-inline","margin-inline-end","margin-inline-start","padding-block","padding-block-end","padding-block-start","padding-inline","padding-inline-end","padding-inline-start","scroll-snap-stop","scrollbar-3d-light-color","scrollbar-arrow-color","scrollbar-base-color","scrollbar-dark-shadow-color","scrollbar-face-color","scrollbar-highlight-color","scrollbar-shadow-color","scrollbar-track-color","searchfield-cancel-button","searchfield-decoration","searchfield-results-button","searchfield-results-decoration","shape-inside","zoom"],f=t(m),p=t(["font-display","font-family","src","unicode-range","font-variant","font-feature-settings","font-stretch","font-weight","font-style"]),h=t(["additive-symbols","fallback","negative","pad","prefix","range","speak-as","suffix","symbols","system"]),g=["aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","grey","green","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen"],b=t(g),v=["above","absolute","activeborder","additive","activecaption","afar","after-white-space","ahead","alias","all","all-scroll","alphabetic","alternate","always","amharic","amharic-abegede","antialiased","appworkspace","arabic-indic","armenian","asterisks","attr","auto","auto-flow","avoid","avoid-column","avoid-page","avoid-region","axis-pan","background","backwards","baseline","below","bidi-override","binary","bengali","blink","block","block-axis","bold","bolder","border","border-box","both","bottom","break","break-all","break-word","bullets","button","button-bevel","buttonface","buttonhighlight","buttonshadow","buttontext","calc","cambodian","capitalize","caps-lock-indicator","caption","captiontext","caret","cell","center","checkbox","circle","cjk-decimal","cjk-earthly-branch","cjk-heavenly-stem","cjk-ideographic","clear","clip","close-quote","col-resize","collapse","color","color-burn","color-dodge","column","column-reverse","compact","condensed","contain","content","contents","content-box","context-menu","continuous","copy","counter","counters","cover","crop","cross","crosshair","currentcolor","cursive","cyclic","darken","dashed","decimal","decimal-leading-zero","default","default-button","dense","destination-atop","destination-in","destination-out","destination-over","devanagari","difference","disc","discard","disclosure-closed","disclosure-open","document","dot-dash","dot-dot-dash","dotted","double","down","e-resize","ease","ease-in","ease-in-out","ease-out","element","ellipse","ellipsis","embed","end","ethiopic","ethiopic-abegede","ethiopic-abegede-am-et","ethiopic-abegede-gez","ethiopic-abegede-ti-er","ethiopic-abegede-ti-et","ethiopic-halehame-aa-er","ethiopic-halehame-aa-et","ethiopic-halehame-am-et","ethiopic-halehame-gez","ethiopic-halehame-om-et","ethiopic-halehame-sid-et","ethiopic-halehame-so-et","ethiopic-halehame-ti-er","ethiopic-halehame-ti-et","ethiopic-halehame-tig","ethiopic-numeric","ew-resize","exclusion","expanded","extends","extra-condensed","extra-expanded","fantasy","fast","fill","fill-box","fixed","flat","flex","flex-end","flex-start","footnotes","forwards","from","geometricPrecision","georgian","graytext","grid","groove","gujarati","gurmukhi","hand","hangul","hangul-consonant","hard-light","hebrew","help","hidden","hide","higher","highlight","highlighttext","hiragana","hiragana-iroha","horizontal","hsl","hsla","hue","icon","ignore","inactiveborder","inactivecaption","inactivecaptiontext","infinite","infobackground","infotext","inherit","initial","inline","inline-axis","inline-block","inline-flex","inline-grid","inline-table","inset","inside","intrinsic","invert","italic","japanese-formal","japanese-informal","justify","kannada","katakana","katakana-iroha","keep-all","khmer","korean-hangul-formal","korean-hanja-formal","korean-hanja-informal","landscape","lao","large","larger","left","level","lighter","lighten","line-through","linear","linear-gradient","lines","list-item","listbox","listitem","local","logical","loud","lower","lower-alpha","lower-armenian","lower-greek","lower-hexadecimal","lower-latin","lower-norwegian","lower-roman","lowercase","ltr","luminosity","malayalam","manipulation","match","matrix","matrix3d","media-controls-background","media-current-time-display","media-fullscreen-button","media-mute-button","media-play-button","media-return-to-realtime-button","media-rewind-button","media-seek-back-button","media-seek-forward-button","media-slider","media-sliderthumb","media-time-remaining-display","media-volume-slider","media-volume-slider-container","media-volume-sliderthumb","medium","menu","menulist","menulist-button","menulist-text","menulist-textfield","menutext","message-box","middle","min-intrinsic","mix","mongolian","monospace","move","multiple","multiple_mask_images","multiply","myanmar","n-resize","narrower","ne-resize","nesw-resize","no-close-quote","no-drop","no-open-quote","no-repeat","none","normal","not-allowed","nowrap","ns-resize","numbers","numeric","nw-resize","nwse-resize","oblique","octal","opacity","open-quote","optimizeLegibility","optimizeSpeed","oriya","oromo","outset","outside","outside-shape","overlay","overline","padding","padding-box","painted","page","paused","persian","perspective","pinch-zoom","plus-darker","plus-lighter","pointer","polygon","portrait","pre","pre-line","pre-wrap","preserve-3d","progress","push-button","radial-gradient","radio","read-only","read-write","read-write-plaintext-only","rectangle","region","relative","repeat","repeating-linear-gradient","repeating-radial-gradient","repeat-x","repeat-y","reset","reverse","rgb","rgba","ridge","right","rotate","rotate3d","rotateX","rotateY","rotateZ","round","row","row-resize","row-reverse","rtl","run-in","running","s-resize","sans-serif","saturation","scale","scale3d","scaleX","scaleY","scaleZ","screen","scroll","scrollbar","scroll-position","se-resize","searchfield","searchfield-cancel-button","searchfield-decoration","searchfield-results-button","searchfield-results-decoration","self-start","self-end","semi-condensed","semi-expanded","separate","serif","show","sidama","simp-chinese-formal","simp-chinese-informal","single","skew","skewX","skewY","skip-white-space","slide","slider-horizontal","slider-vertical","sliderthumb-horizontal","sliderthumb-vertical","slow","small","small-caps","small-caption","smaller","soft-light","solid","somali","source-atop","source-in","source-out","source-over","space","space-around","space-between","space-evenly","spell-out","square","square-button","start","static","status-bar","stretch","stroke","stroke-box","sub","subpixel-antialiased","svg_masks","super","sw-resize","symbolic","symbols","system-ui","table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row","table-row-group","tamil","telugu","text","text-bottom","text-top","textarea","textfield","thai","thick","thin","threeddarkshadow","threedface","threedhighlight","threedlightshadow","threedshadow","tibetan","tigre","tigrinya-er","tigrinya-er-abegede","tigrinya-et","tigrinya-et-abegede","to","top","trad-chinese-formal","trad-chinese-informal","transform","translate","translate3d","translateX","translateY","translateZ","transparent","ultra-condensed","ultra-expanded","underline","unidirectional-pan","unset","up","upper-alpha","upper-armenian","upper-greek","upper-hexadecimal","upper-latin","upper-norwegian","upper-roman","uppercase","urdu","url","var","vertical","vertical-text","view-box","visible","visibleFill","visiblePainted","visibleStroke","visual","w-resize","wait","wave","wider","window","windowframe","windowtext","words","wrap","wrap-reverse","x-large","x-small","xor","xx-large","xx-small"],x=t(v),y=n.concat(i).concat(a).concat(l).concat(u).concat(m).concat(g).concat(v);function k(e,t){for(var n,r=!1;null!=(n=e.next());){if(r&&"/"==n){t.tokenize=null;break}r="*"==n}return["comment","comment"]}e.registerHelper("hintWords","css",y),e.defineMIME("text/css",{documentTypes:r,mediaTypes:o,mediaFeatures:s,mediaValueKeywords:c,propertyKeywords:d,nonStandardPropertyKeywords:f,fontProperties:p,counterDescriptors:h,colorKeywords:b,valueKeywords:x,tokenHooks:{"/":function(e,t){return!!e.eat("*")&&(t.tokenize=k,k(e,t))}},name:"css"}),e.defineMIME("text/x-scss",{mediaTypes:o,mediaFeatures:s,mediaValueKeywords:c,propertyKeywords:d,nonStandardPropertyKeywords:f,colorKeywords:b,valueKeywords:x,fontProperties:p,allowNested:!0,lineComment:"//",tokenHooks:{"/":function(e,t){return e.eat("/")?(e.skipToEnd(),["comment","comment"]):e.eat("*")?(t.tokenize=k,k(e,t)):["operator","operator"]},":":function(e){return!!e.match(/^\s*\{/,!1)&&[null,null]},$:function(e){return e.match(/^[\w-]+/),e.match(/^\s*:/,!1)?["variable-2","variable-definition"]:["variable-2","variable"]},"#":function(e){return!!e.eat("{")&&[null,"interpolation"]}},name:"css",helperType:"scss"}),e.defineMIME("text/x-less",{mediaTypes:o,mediaFeatures:s,mediaValueKeywords:c,propertyKeywords:d,nonStandardPropertyKeywords:f,colorKeywords:b,valueKeywords:x,fontProperties:p,allowNested:!0,lineComment:"//",tokenHooks:{"/":function(e,t){return e.eat("/")?(e.skipToEnd(),["comment","comment"]):e.eat("*")?(t.tokenize=k,k(e,t)):["operator","operator"]},"@":function(e){return e.eat("{")?[null,"interpolation"]:!e.match(/^(charset|document|font-face|import|(-(moz|ms|o|webkit)-)?keyframes|media|namespace|page|supports)\b/i,!1)&&(e.eatWhile(/[\w\\\-]/),e.match(/^\s*:/,!1)?["variable-2","variable-definition"]:["variable-2","variable"])},"&":function(){return["atom","atom"]}},name:"css",helperType:"less"}),e.defineMIME("text/x-gss",{documentTypes:r,mediaTypes:o,mediaFeatures:s,propertyKeywords:d,nonStandardPropertyKeywords:f,fontProperties:p,counterDescriptors:h,colorKeywords:b,valueKeywords:x,supportsAtComponent:!0,tokenHooks:{"/":function(e,t){return!!e.eat("*")&&(t.tokenize=k,k(e,t))}},name:"css",helperType:"gss"})}(n(25747))},79999:(e,t,n)=>{!function(e){"use strict";var t=/^((?:(?:aaas?|about|acap|adiumxtra|af[ps]|aim|apt|attachment|aw|beshare|bitcoin|bolo|callto|cap|chrome(?:-extension)?|cid|coap|com-eventbrite-attendee|content|crid|cvs|data|dav|dict|dlna-(?:playcontainer|playsingle)|dns|doi|dtn|dvb|ed2k|facetime|feed|file|finger|fish|ftp|geo|gg|git|gizmoproject|go|gopher|gtalk|h323|hcp|https?|iax|icap|icon|im|imap|info|ipn|ipp|irc[6s]?|iris(?:\.beep|\.lwz|\.xpc|\.xpcs)?|itms|jar|javascript|jms|keyparc|lastfm|ldaps?|magnet|mailto|maps|market|message|mid|mms|ms-help|msnim|msrps?|mtqp|mumble|mupdate|mvn|news|nfs|nih?|nntp|notes|oid|opaquelocktoken|palm|paparazzi|platform|pop|pres|proxy|psyc|query|res(?:ource)?|rmi|rsync|rtmp|rtsp|secondlife|service|session|sftp|sgn|shttp|sieve|sips?|skype|sm[bs]|snmp|soap\.beeps?|soldat|spotify|ssh|steam|svn|tag|teamspeak|tel(?:net)?|tftp|things|thismessage|tip|tn3270|tv|udp|unreal|urn|ut2004|vemmi|ventrilo|view-source|webcal|wss?|wtai|wyciwyg|xcon(?:-userid)?|xfire|xmlrpc\.beeps?|xmpp|xri|ymsgr|z39\.50[rs]?):(?:\/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}\/)(?:[^\s()<>]|\([^\s()<>]*\))+(?:\([^\s()<>]*\)|[^\s`*!()\[\]{};:'".,<>?«»“”‘’]))/i;e.defineMode("gfm",(function(n,r){var i=0;var o={startState:function(){return{code:!1,codeBlock:!1,ateSpace:!1}},copyState:function(e){return{code:e.code,codeBlock:e.codeBlock,ateSpace:e.ateSpace}},token:function(e,n){if(n.combineTokens=null,n.codeBlock)return e.match(/^```+/)?(n.codeBlock=!1,null):(e.skipToEnd(),null);if(e.sol()&&(n.code=!1),e.sol()&&e.match(/^```+/))return e.skipToEnd(),n.codeBlock=!0,null;if("`"===e.peek()){e.next();var o=e.pos;e.eatWhile("`");var a=1+e.pos-o;return n.code?a===i&&(n.code=!1):(i=a,n.code=!0),null}if(n.code)return e.next(),null;if(e.eatSpace())return n.ateSpace=!0,null;if((e.sol()||n.ateSpace)&&(n.ateSpace=!1,!1!==r.gitHubSpice)){if(e.match(/^(?:[a-zA-Z0-9\-_]+\/)?(?:[a-zA-Z0-9\-_]+@)?(?=.{0,6}\d)(?:[a-f0-9]{7,40}\b)/))return n.combineTokens=!0,"link";if(e.match(/^(?:[a-zA-Z0-9\-_]+\/)?(?:[a-zA-Z0-9\-_]+)?#[0-9]+\b/))return n.combineTokens=!0,"link"}return e.match(t)&&"]("!=e.string.slice(e.start-2,e.start)&&(0==e.start||/\W/.test(e.string.charAt(e.start-1)))?(n.combineTokens=!0,"link"):(e.next(),null)},blankLine:function(e){return e.code=!1,null}},a={taskLists:!0,strikethrough:!0,emoji:!0};for(var s in r)a[s]=r[s];return a.name="markdown",e.overlayMode(e.getMode(n,a),o)}),"markdown"),e.defineMIME("text/x-gfm","gfm")}(n(25747),n(7385),n(33694))},72896:(e,t,n)=>{!function(e){"use strict";e.defineMode("javascript",(function(t,n){var r,i,o=t.indentUnit,a=n.statementIndent,s=n.jsonld,l=n.json||s,c=!1!==n.trackScope,u=n.typescript,d=n.wordCharacters||/[\w$\xa1-\uffff]/,m=function(){function e(e){return{type:e,style:"keyword"}}var t=e("keyword a"),n=e("keyword b"),r=e("keyword c"),i=e("keyword d"),o=e("operator"),a={type:"atom",style:"atom"};return{if:e("if"),while:t,with:t,else:n,do:n,try:n,finally:n,return:i,break:i,continue:i,new:e("new"),delete:r,void:r,throw:r,debugger:e("debugger"),var:e("var"),const:e("var"),let:e("var"),function:e("function"),catch:e("catch"),for:e("for"),switch:e("switch"),case:e("case"),default:e("default"),in:o,typeof:o,instanceof:o,true:a,false:a,null:a,undefined:a,NaN:a,Infinity:a,this:e("this"),class:e("class"),super:e("atom"),yield:r,export:e("export"),import:e("import"),extends:r,await:r}}(),f=/[+\-*&%=<>!?|~^@]/,p=/^@(context|id|value|language|type|container|list|set|reverse|index|base|vocab|graph)"/;function h(e,t,n){return r=e,i=n,t}function g(e,t){var n,r=e.next();if('"'==r||"'"==r)return t.tokenize=(n=r,function(e,t){var r,i=!1;if(s&&"@"==e.peek()&&e.match(p))return t.tokenize=g,h("jsonld-keyword","meta");for(;null!=(r=e.next())&&(r!=n||i);)i=!i&&"\\"==r;return i||(t.tokenize=g),h("string","string")}),t.tokenize(e,t);if("."==r&&e.match(/^\d[\d_]*(?:[eE][+\-]?[\d_]+)?/))return h("number","number");if("."==r&&e.match(".."))return h("spread","meta");if(/[\[\]{}\(\),;\:\.]/.test(r))return h(r);if("="==r&&e.eat(">"))return h("=>","operator");if("0"==r&&e.match(/^(?:x[\dA-Fa-f_]+|o[0-7_]+|b[01_]+)n?/))return h("number","number");if(/\d/.test(r))return e.match(/^[\d_]*(?:n|(?:\.[\d_]*)?(?:[eE][+\-]?[\d_]+)?)?/),h("number","number");if("/"==r)return e.eat("*")?(t.tokenize=b,b(e,t)):e.eat("/")?(e.skipToEnd(),h("comment","comment")):Ye(e,t,1)?(function(e){for(var t,n=!1,r=!1;null!=(t=e.next());){if(!n){if("/"==t&&!r)return;"["==t?r=!0:r&&"]"==t&&(r=!1)}n=!n&&"\\"==t}}(e),e.match(/^\b(([gimyus])(?![gimyus]*\2))+\b/),h("regexp","string-2")):(e.eat("="),h("operator","operator",e.current()));if("`"==r)return t.tokenize=v,v(e,t);if("#"==r&&"!"==e.peek())return e.skipToEnd(),h("meta","meta");if("#"==r&&e.eatWhile(d))return h("variable","property");if("<"==r&&e.match("!--")||"-"==r&&e.match("->")&&!/\S/.test(e.string.slice(0,e.start)))return e.skipToEnd(),h("comment","comment");if(f.test(r))return">"==r&&t.lexical&&">"==t.lexical.type||(e.eat("=")?"!"!=r&&"="!=r||e.eat("="):/[<>*+\-|&?]/.test(r)&&(e.eat(r),">"==r&&e.eat(r))),"?"==r&&e.eat(".")?h("."):h("operator","operator",e.current());if(d.test(r)){e.eatWhile(d);var i=e.current();if("."!=t.lastType){if(m.propertyIsEnumerable(i)){var o=m[i];return h(o.type,o.style,i)}if("async"==i&&e.match(/^(\s|\/\*([^*]|\*(?!\/))*?\*\/)*[\[\(\w]/,!1))return h("async","keyword",i)}return h("variable","variable",i)}}function b(e,t){for(var n,r=!1;n=e.next();){if("/"==n&&r){t.tokenize=g;break}r="*"==n}return h("comment","comment")}function v(e,t){for(var n,r=!1;null!=(n=e.next());){if(!r&&("`"==n||"$"==n&&e.eat("{"))){t.tokenize=g;break}r=!r&&"\\"==n}return h("quasi","string-2",e.current())}function x(e,t){t.fatArrowAt&&(t.fatArrowAt=null);var n=e.string.indexOf("=>",e.start);if(!(n<0)){if(u){var r=/:\s*(?:\w+(?:<[^>]*>|\[\])?|\{[^}]*\})\s*$/.exec(e.string.slice(e.start,n));r&&(n=r.index)}for(var i=0,o=!1,a=n-1;a>=0;--a){var s=e.string.charAt(a),l="([{}])".indexOf(s);if(l>=0&&l<3){if(!i){++a;break}if(0==--i){"("==s&&(o=!0);break}}else if(l>=3&&l<6)++i;else if(d.test(s))o=!0;else if(/["'\/`]/.test(s))for(;;--a){if(0==a)return;if(e.string.charAt(a-1)==s&&"\\"!=e.string.charAt(a-2)){a--;break}}else if(o&&!i){++a;break}}o&&!i&&(t.fatArrowAt=a)}}var y={atom:!0,number:!0,variable:!0,string:!0,regexp:!0,this:!0,import:!0,"jsonld-keyword":!0};function k(e,t,n,r,i,o){this.indented=e,this.column=t,this.type=n,this.prev=i,this.info=o,null!=r&&(this.align=r)}function w(e,t){if(!c)return!1;for(var n=e.localVars;n;n=n.next)if(n.name==t)return!0;for(var r=e.context;r;r=r.prev)for(n=r.vars;n;n=n.next)if(n.name==t)return!0}function C(e,t,n,r,i){var o=e.cc;for(_.state=e,_.stream=i,_.marked=null,_.cc=o,_.style=t,e.lexical.hasOwnProperty("align")||(e.lexical.align=!0);;)if((o.length?o.pop():l?U:N)(n,r)){for(;o.length&&o[o.length-1].lex;)o.pop()();return _.marked?_.marked:"variable"==n&&w(e,r)?"variable-2":t}}var _={state:null,column:null,marked:null,cc:null};function S(){for(var e=arguments.length-1;e>=0;e--)_.cc.push(arguments[e])}function M(){return S.apply(null,arguments),!0}function L(e,t){for(var n=t;n;n=n.next)if(n.name==e)return!0;return!1}function T(e){var t=_.state;if(_.marked="def",c){if(t.context)if("var"==t.lexical.info&&t.context&&t.context.block){var r=F(e,t.context);if(null!=r)return void(t.context=r)}else if(!L(e,t.localVars))return void(t.localVars=new P(e,t.localVars));n.globalVars&&!L(e,t.globalVars)&&(t.globalVars=new P(e,t.globalVars))}}function F(e,t){if(t){if(t.block){var n=F(e,t.prev);return n?n==t.prev?t:new A(n,t.vars,!0):null}return L(e,t.vars)?t:new A(t.prev,new P(e,t.vars),!1)}return null}function E(e){return"public"==e||"private"==e||"protected"==e||"abstract"==e||"readonly"==e}function A(e,t,n){this.prev=e,this.vars=t,this.block=n}function P(e,t){this.name=e,this.next=t}var D=new P("this",new P("arguments",null));function z(){_.state.context=new A(_.state.context,_.state.localVars,!1),_.state.localVars=D}function O(){_.state.context=new A(_.state.context,_.state.localVars,!0),_.state.localVars=null}function I(){_.state.localVars=_.state.context.vars,_.state.context=_.state.context.prev}function B(e,t){var n=function(){var n=_.state,r=n.indented;if("stat"==n.lexical.type)r=n.lexical.indented;else for(var i=n.lexical;i&&")"==i.type&&i.align;i=i.prev)r=i.indented;n.lexical=new k(r,_.stream.column(),e,null,n.lexical,t)};return n.lex=!0,n}function j(){var e=_.state;e.lexical.prev&&(")"==e.lexical.type&&(e.indented=e.lexical.indented),e.lexical=e.lexical.prev)}function q(e){return function t(n){return n==e?M():";"==e||"}"==n||")"==n||"]"==n?S():M(t)}}function N(e,t){return"var"==e?M(B("vardef",t),_e,q(";"),j):"keyword a"==e?M(B("form"),W,N,j):"keyword b"==e?M(B("form"),N,j):"keyword d"==e?_.stream.match(/^\s*$/,!1)?M():M(B("stat"),H,q(";"),j):"debugger"==e?M(q(";")):"{"==e?M(B("}"),O,le,j,I):";"==e?M():"if"==e?("else"==_.state.lexical.info&&_.state.cc[_.state.cc.length-1]==j&&_.state.cc.pop()(),M(B("form"),W,N,j,Ee)):"function"==e?M(ze):"for"==e?M(B("form"),O,Ae,N,I,j):"class"==e||u&&"interface"==t?(_.marked="keyword",M(B("form","class"==e?e:t),qe,j)):"variable"==e?u&&"declare"==t?(_.marked="keyword",M(N)):u&&("module"==t||"enum"==t||"type"==t)&&_.stream.match(/^\s*\w/,!1)?(_.marked="keyword","enum"==t?M(Je):"type"==t?M(Ie,q("operator"),fe,q(";")):M(B("form"),Se,q("{"),B("}"),le,j,j)):u&&"namespace"==t?(_.marked="keyword",M(B("form"),U,N,j)):u&&"abstract"==t?(_.marked="keyword",M(N)):M(B("stat"),te):"switch"==e?M(B("form"),W,q("{"),B("}","switch"),O,le,j,j,I):"case"==e?M(U,q(":")):"default"==e?M(q(":")):"catch"==e?M(B("form"),z,R,N,j,I):"export"==e?M(B("stat"),$e,j):"import"==e?M(B("stat"),Ke,j):"async"==e?M(N):"@"==t?M(U,N):S(B("stat"),U,q(";"),j)}function R(e){if("("==e)return M(Be,q(")"))}function U(e,t){return K(e,t,!1)}function $(e,t){return K(e,t,!0)}function W(e){return"("!=e?S():M(B(")"),H,q(")"),j)}function K(e,t,n){if(_.state.fatArrowAt==_.stream.start){var r=n?Z:J;if("("==e)return M(z,B(")"),ae(Be,")"),j,q("=>"),r,I);if("variable"==e)return S(z,Se,q("=>"),r,I)}var i=n?G:V;return y.hasOwnProperty(e)?M(i):"function"==e?M(ze,i):"class"==e||u&&"interface"==t?(_.marked="keyword",M(B("form"),je,j)):"keyword c"==e||"async"==e?M(n?$:U):"("==e?M(B(")"),H,q(")"),j,i):"operator"==e||"spread"==e?M(n?$:U):"["==e?M(B("]"),Xe,j,i):"{"==e?se(re,"}",null,i):"quasi"==e?S(Q,i):"new"==e?M(function(e){return function(t){return"."==t?M(e?ee:Y):"variable"==t&&u?M(ke,e?G:V):S(e?$:U)}}(n)):M()}function H(e){return e.match(/[;\}\)\],]/)?S():S(U)}function V(e,t){return","==e?M(H):G(e,t,!1)}function G(e,t,n){var r=0==n?V:G,i=0==n?U:$;return"=>"==e?M(z,n?Z:J,I):"operator"==e?/\+\+|--/.test(t)||u&&"!"==t?M(r):u&&"<"==t&&_.stream.match(/^([^<>]|<[^<>]*>)*>\s*\(/,!1)?M(B(">"),ae(fe,">"),j,r):"?"==t?M(U,q(":"),i):M(i):"quasi"==e?S(Q,r):";"!=e?"("==e?se($,")","call",r):"."==e?M(ne,r):"["==e?M(B("]"),H,q("]"),j,r):u&&"as"==t?(_.marked="keyword",M(fe,r)):"regexp"==e?(_.state.lastType=_.marked="operator",_.stream.backUp(_.stream.pos-_.stream.start-1),M(i)):void 0:void 0}function Q(e,t){return"quasi"!=e?S():"${"!=t.slice(t.length-2)?M(Q):M(U,X)}function X(e){if("}"==e)return _.marked="string-2",_.state.tokenize=v,M(Q)}function J(e){return x(_.stream,_.state),S("{"==e?N:U)}function Z(e){return x(_.stream,_.state),S("{"==e?N:$)}function Y(e,t){if("target"==t)return _.marked="keyword",M(V)}function ee(e,t){if("target"==t)return _.marked="keyword",M(G)}function te(e){return":"==e?M(j,N):S(V,q(";"),j)}function ne(e){if("variable"==e)return _.marked="property",M()}function re(e,t){return"async"==e?(_.marked="property",M(re)):"variable"==e||"keyword"==_.style?(_.marked="property","get"==t||"set"==t?M(ie):(u&&_.state.fatArrowAt==_.stream.start&&(n=_.stream.match(/^\s*:\s*/,!1))&&(_.state.fatArrowAt=_.stream.pos+n[0].length),M(oe))):"number"==e||"string"==e?(_.marked=s?"property":_.style+" property",M(oe)):"jsonld-keyword"==e?M(oe):u&&E(t)?(_.marked="keyword",M(re)):"["==e?M(U,ce,q("]"),oe):"spread"==e?M($,oe):"*"==t?(_.marked="keyword",M(re)):":"==e?S(oe):void 0;var n}function ie(e){return"variable"!=e?S(oe):(_.marked="property",M(ze))}function oe(e){return":"==e?M($):"("==e?S(ze):void 0}function ae(e,t,n){function r(i,o){if(n?n.indexOf(i)>-1:","==i){var a=_.state.lexical;return"call"==a.info&&(a.pos=(a.pos||0)+1),M((function(n,r){return n==t||r==t?S():S(e)}),r)}return i==t||o==t?M():n&&n.indexOf(";")>-1?S(e):M(q(t))}return function(n,i){return n==t||i==t?M():S(e,r)}}function se(e,t,n){for(var r=3;r"),fe):"quasi"==e?S(be,ye):void 0}function pe(e){if("=>"==e)return M(fe)}function he(e){return e.match(/[\}\)\]]/)?M():","==e||";"==e?M(he):S(ge,he)}function ge(e,t){return"variable"==e||"keyword"==_.style?(_.marked="property",M(ge)):"?"==t||"number"==e||"string"==e?M(ge):":"==e?M(fe):"["==e?M(q("variable"),ue,q("]"),ge):"("==e?S(Oe,ge):e.match(/[;\}\)\],]/)?void 0:M()}function be(e,t){return"quasi"!=e?S():"${"!=t.slice(t.length-2)?M(be):M(fe,ve)}function ve(e){if("}"==e)return _.marked="string-2",_.state.tokenize=v,M(be)}function xe(e,t){return"variable"==e&&_.stream.match(/^\s*[?:]/,!1)||"?"==t?M(xe):":"==e?M(fe):"spread"==e?M(xe):S(fe)}function ye(e,t){return"<"==t?M(B(">"),ae(fe,">"),j,ye):"|"==t||"."==e||"&"==t?M(fe):"["==e?M(fe,q("]"),ye):"extends"==t||"implements"==t?(_.marked="keyword",M(fe)):"?"==t?M(fe,q(":"),fe):void 0}function ke(e,t){if("<"==t)return M(B(">"),ae(fe,">"),j,ye)}function we(){return S(fe,Ce)}function Ce(e,t){if("="==t)return M(fe)}function _e(e,t){return"enum"==t?(_.marked="keyword",M(Je)):S(Se,ce,Te,Fe)}function Se(e,t){return u&&E(t)?(_.marked="keyword",M(Se)):"variable"==e?(T(t),M()):"spread"==e?M(Se):"["==e?se(Le,"]"):"{"==e?se(Me,"}"):void 0}function Me(e,t){return"variable"!=e||_.stream.match(/^\s*:/,!1)?("variable"==e&&(_.marked="property"),"spread"==e?M(Se):"}"==e?S():"["==e?M(U,q("]"),q(":"),Me):M(q(":"),Se,Te)):(T(t),M(Te))}function Le(){return S(Se,Te)}function Te(e,t){if("="==t)return M($)}function Fe(e){if(","==e)return M(_e)}function Ee(e,t){if("keyword b"==e&&"else"==t)return M(B("form","else"),N,j)}function Ae(e,t){return"await"==t?M(Ae):"("==e?M(B(")"),Pe,j):void 0}function Pe(e){return"var"==e?M(_e,De):"variable"==e?M(De):S(De)}function De(e,t){return")"==e?M():";"==e?M(De):"in"==t||"of"==t?(_.marked="keyword",M(U,De)):S(U,De)}function ze(e,t){return"*"==t?(_.marked="keyword",M(ze)):"variable"==e?(T(t),M(ze)):"("==e?M(z,B(")"),ae(Be,")"),j,de,N,I):u&&"<"==t?M(B(">"),ae(we,">"),j,ze):void 0}function Oe(e,t){return"*"==t?(_.marked="keyword",M(Oe)):"variable"==e?(T(t),M(Oe)):"("==e?M(z,B(")"),ae(Be,")"),j,de,I):u&&"<"==t?M(B(">"),ae(we,">"),j,Oe):void 0}function Ie(e,t){return"keyword"==e||"variable"==e?(_.marked="type",M(Ie)):"<"==t?M(B(">"),ae(we,">"),j):void 0}function Be(e,t){return"@"==t&&M(U,Be),"spread"==e?M(Be):u&&E(t)?(_.marked="keyword",M(Be)):u&&"this"==e?M(ce,Te):S(Se,ce,Te)}function je(e,t){return"variable"==e?qe(e,t):Ne(e,t)}function qe(e,t){if("variable"==e)return T(t),M(Ne)}function Ne(e,t){return"<"==t?M(B(">"),ae(we,">"),j,Ne):"extends"==t||"implements"==t||u&&","==e?("implements"==t&&(_.marked="keyword"),M(u?fe:U,Ne)):"{"==e?M(B("}"),Re,j):void 0}function Re(e,t){return"async"==e||"variable"==e&&("static"==t||"get"==t||"set"==t||u&&E(t))&&_.stream.match(/^\s+[\w$\xa1-\uffff]/,!1)?(_.marked="keyword",M(Re)):"variable"==e||"keyword"==_.style?(_.marked="property",M(Ue,Re)):"number"==e||"string"==e?M(Ue,Re):"["==e?M(U,ce,q("]"),Ue,Re):"*"==t?(_.marked="keyword",M(Re)):u&&"("==e?S(Oe,Re):";"==e||","==e?M(Re):"}"==e?M():"@"==t?M(U,Re):void 0}function Ue(e,t){if("!"==t)return M(Ue);if("?"==t)return M(Ue);if(":"==e)return M(fe,Te);if("="==t)return M($);var n=_.state.lexical.prev;return S(n&&"interface"==n.info?Oe:ze)}function $e(e,t){return"*"==t?(_.marked="keyword",M(Qe,q(";"))):"default"==t?(_.marked="keyword",M(U,q(";"))):"{"==e?M(ae(We,"}"),Qe,q(";")):S(N)}function We(e,t){return"as"==t?(_.marked="keyword",M(q("variable"))):"variable"==e?S($,We):void 0}function Ke(e){return"string"==e?M():"("==e?S(U):"."==e?S(V):S(He,Ve,Qe)}function He(e,t){return"{"==e?se(He,"}"):("variable"==e&&T(t),"*"==t&&(_.marked="keyword"),M(Ge))}function Ve(e){if(","==e)return M(He,Ve)}function Ge(e,t){if("as"==t)return _.marked="keyword",M(He)}function Qe(e,t){if("from"==t)return _.marked="keyword",M(U)}function Xe(e){return"]"==e?M():S(ae($,"]"))}function Je(){return S(B("form"),Se,q("{"),B("}"),ae(Ze,"}"),j,j)}function Ze(){return S(Se,Te)}function Ye(e,t,n){return t.tokenize==g&&/^(?:operator|sof|keyword [bcd]|case|new|export|default|spread|[\[{}\(,;:]|=>)$/.test(t.lastType)||"quasi"==t.lastType&&/\{\s*$/.test(e.string.slice(0,e.pos-(n||0)))}return I.lex=!0,j.lex=!0,{startState:function(e){var t={tokenize:g,lastType:"sof",cc:[],lexical:new k((e||0)-o,0,"block",!1),localVars:n.localVars,context:n.localVars&&new A(null,null,!1),indented:e||0};return n.globalVars&&"object"==typeof n.globalVars&&(t.globalVars=n.globalVars),t},token:function(e,t){if(e.sol()&&(t.lexical.hasOwnProperty("align")||(t.lexical.align=!1),t.indented=e.indentation(),x(e,t)),t.tokenize!=b&&e.eatSpace())return null;var n=t.tokenize(e,t);return"comment"==r?n:(t.lastType="operator"!=r||"++"!=i&&"--"!=i?r:"incdec",C(t,n,r,i,e))},indent:function(t,r){if(t.tokenize==b||t.tokenize==v)return e.Pass;if(t.tokenize!=g)return 0;var i,s=r&&r.charAt(0),l=t.lexical;if(!/^\s*else\b/.test(r))for(var c=t.cc.length-1;c>=0;--c){var u=t.cc[c];if(u==j)l=l.prev;else if(u!=Ee&&u!=I)break}for(;("stat"==l.type||"form"==l.type)&&("}"==s||(i=t.cc[t.cc.length-1])&&(i==V||i==G)&&!/^[,\.=+\-*:?[\(]/.test(r));)l=l.prev;a&&")"==l.type&&"stat"==l.prev.type&&(l=l.prev);var d=l.type,m=s==d;return"vardef"==d?l.indented+("operator"==t.lastType||","==t.lastType?l.info.length+1:0):"form"==d&&"{"==s?l.indented:"form"==d?l.indented+o:"stat"==d?l.indented+(function(e,t){return"operator"==e.lastType||","==e.lastType||f.test(t.charAt(0))||/[,.]/.test(t.charAt(0))}(t,r)?a||o:0):"switch"!=l.info||m||0==n.doubleIndentSwitch?l.align?l.column+(m?0:1):l.indented+(m?0:o):l.indented+(/^(?:case|default)\b/.test(r)?o:2*o)},electricInput:/^\s*(?:case .*?:|default:|\{|\})$/,blockCommentStart:l?null:"/*",blockCommentEnd:l?null:"*/",blockCommentContinue:l?null:" * ",lineComment:l?null:"//",fold:"brace",closeBrackets:"()[]{}''\"\"``",helperType:l?"json":"javascript",jsonldMode:s,jsonMode:l,expressionAllowed:Ye,skipExpression:function(t){C(t,"atom","atom","true",new e.StringStream("",2,null))}}})),e.registerHelper("wordChars","javascript",/[\w$]/),e.defineMIME("text/javascript","javascript"),e.defineMIME("text/ecmascript","javascript"),e.defineMIME("application/javascript","javascript"),e.defineMIME("application/x-javascript","javascript"),e.defineMIME("application/ecmascript","javascript"),e.defineMIME("application/json",{name:"javascript",json:!0}),e.defineMIME("application/x-json",{name:"javascript",json:!0}),e.defineMIME("application/manifest+json",{name:"javascript",json:!0}),e.defineMIME("application/ld+json",{name:"javascript",jsonld:!0}),e.defineMIME("text/typescript",{name:"javascript",typescript:!0}),e.defineMIME("application/typescript",{name:"javascript",typescript:!0})}(n(25747))},38269:(e,t,n)=>{!function(e){"use strict";function t(e,t,n,r){this.state=e,this.mode=t,this.depth=n,this.prev=r}function n(r){return new t(e.copyState(r.mode,r.state),r.mode,r.depth,r.prev&&n(r.prev))}e.defineMode("jsx",(function(r,i){var o=e.getMode(r,{name:"xml",allowMissing:!0,multilineTagIndentPastTag:!1,allowMissingTagName:!0}),a=e.getMode(r,i&&i.base||"javascript");function s(e){var t=e.tagName;e.tagName=null;var n=o.indent(e,"","");return e.tagName=t,n}function l(n,i){return i.context.mode==o?function(n,i,c){if(2==c.depth)return n.match(/^.*?\*\//)?c.depth=1:n.skipToEnd(),"comment";if("{"==n.peek()){o.skipAttribute(c.state);var u=s(c.state),d=c.state.context;if(d&&n.match(/^[^>]*>\s*$/,!1)){for(;d.prev&&!d.startOfLine;)d=d.prev;d.startOfLine?u-=r.indentUnit:c.prev.state.lexical&&(u=c.prev.state.lexical.indented)}else 1==c.depth&&(u+=r.indentUnit);return i.context=new t(e.startState(a,u),a,0,i.context),null}if(1==c.depth){if("<"==n.peek())return o.skipAttribute(c.state),i.context=new t(e.startState(o,s(c.state)),o,0,i.context),null;if(n.match("//"))return n.skipToEnd(),"comment";if(n.match("/*"))return c.depth=2,l(n,i)}var m,f=o.token(n,c.state),p=n.current();return/\btag\b/.test(f)?/>$/.test(p)?c.state.context?c.depth=0:i.context=i.context.prev:/^-1&&n.backUp(p.length-m),f}(n,i,i.context):function(n,r,i){if("<"==n.peek()&&a.expressionAllowed(n,i.state))return r.context=new t(e.startState(o,a.indent(i.state,"","")),o,0,r.context),a.skipExpression(i.state),null;var s=a.token(n,i.state);if(!s&&null!=i.depth){var l=n.current();"{"==l?i.depth++:"}"==l&&0==--i.depth&&(r.context=r.context.prev)}return s}(n,i,i.context)}return{startState:function(){return{context:new t(e.startState(a),a)}},copyState:function(e){return{context:n(e.context)}},token:l,indent:function(e,t,n){return e.context.mode.indent(e.context.state,t,n)},innerMode:function(e){return e.context}}}),"xml","javascript"),e.defineMIME("text/jsx","jsx"),e.defineMIME("text/typescript-jsx",{name:"jsx",base:{name:"javascript",typescript:!0}})}(n(25747),n(89036),n(72896))},15e3:(e,t,n)=>{!function(e){"use strict";e.defineMode("julia",(function(t,n){function r(e,t){return void 0===t&&(t="\\b"),new RegExp("^(("+e.join(")|(")+"))"+t)}var i=n.operators||r(["[<>]:","[<>=]=","<<=?",">>>?=?","=>","->","\\/\\/","[\\\\%*+\\-<>!=\\/^|&\\u00F7\\u22BB]=?","\\?","\\$","~",":","\\u00D7","\\u2208","\\u2209","\\u220B","\\u220C","\\u2218","\\u221A","\\u221B","\\u2229","\\u222A","\\u2260","\\u2264","\\u2265","\\u2286","\\u2288","\\u228A","\\u22C5","\\b(in|isa)\\b(?!.?\\()"],""),o=n.delimiters||/^[;,()[\]{}]/,a=n.identifiers||/^[_A-Za-z\u00A1-\u2217\u2219-\uFFFF][\w\u00A1-\u2217\u2219-\uFFFF]*!*/,s=r(["\\\\[0-7]{1,3}","\\\\x[A-Fa-f0-9]{1,2}","\\\\[abefnrtv0%?'\"\\\\]","([^\\u0027\\u005C\\uD800-\\uDFFF]|[\\uD800-\\uDFFF][\\uDC00-\\uDFFF])"],"'"),l=["if","else","elseif","while","for","begin","let","end","do","try","catch","finally","return","break","continue","global","local","const","export","import","importall","using","function","where","macro","module","baremodule","struct","type","mutable","immutable","quote","typealias","abstract","primitive","bitstype"],c=["true","false","nothing","NaN","Inf"];e.registerHelper("hintWords","julia",l.concat(c));var u=r(["begin","function","type","struct","immutable","let","macro","for","while","quote","if","else","elseif","try","finally","catch","do"]),d=r(["end","else","elseif","catch","finally"]),m=r(l),f=r(c),p=/^@[_A-Za-z][\w]*/,h=/^:[_A-Za-z\u00A1-\uFFFF][\w\u00A1-\uFFFF]*!*/,g=/^(`|([_A-Za-z\u00A1-\uFFFF]*"("")?))/;function b(e){return e.nestedArrays>0}function v(e,t){return void 0===t&&(t=0),e.scopes.length<=t?null:e.scopes[e.scopes.length-(t+1)]}function x(e,t){if(e.match("#=",!1))return t.tokenize=k,t.tokenize(e,t);var n=t.leavingExpr;if(e.sol()&&(n=!1),t.leavingExpr=!1,n&&e.match(/^'+/))return"operator";if(e.match(/\.{4,}/))return"error";if(e.match(/\.{1,3}/))return"operator";if(e.eatSpace())return null;var r,s=e.peek();if("#"===s)return e.skipToEnd(),"comment";if("["===s&&(t.scopes.push("["),t.nestedArrays++),"("===s&&(t.scopes.push("("),t.nestedGenerators++),b(t)&&"]"===s){for(;t.scopes.length&&"["!==v(t);)t.scopes.pop();t.scopes.pop(),t.nestedArrays--,t.leavingExpr=!0}if(function(e){return e.nestedGenerators>0}(t)&&")"===s){for(;t.scopes.length&&"("!==v(t);)t.scopes.pop();t.scopes.pop(),t.nestedGenerators--,t.leavingExpr=!0}if(b(t)){if("end"==t.lastToken&&e.match(":"))return"operator";if(e.match("end"))return"number"}if((r=e.match(u,!1))&&t.scopes.push(r[0]),e.match(d,!1)&&t.scopes.pop(),e.match(/^::(?![:\$])/))return t.tokenize=y,t.tokenize(e,t);if(!n&&e.match(h)||e.match(/:([<>]:|<<=?|>>>?=?|->|\/\/|\.{2,3}|[\.\\%*+\-<>!\/^|&]=?|[~\?\$])/))return"builtin";if(e.match(i))return"operator";if(e.match(/^\.?\d/,!1)){var l=RegExp(/^im\b/),c=!1;if(e.match(/^0x\.[0-9a-f_]+p[\+\-]?[_\d]+/i)&&(c=!0),e.match(/^0x[0-9a-f_]+/i)&&(c=!0),e.match(/^0b[01_]+/i)&&(c=!0),e.match(/^0o[0-7_]+/i)&&(c=!0),e.match(/^(?:(?:\d[_\d]*)?\.(?!\.)(?:\d[_\d]*)?|\d[_\d]*\.(?!\.)(?:\d[_\d]*))?([Eef][\+\-]?[_\d]+)?/i)&&(c=!0),e.match(/^\d[_\d]*(e[\+\-]?\d+)?/i)&&(c=!0),c)return e.match(l),t.leavingExpr=!0,"number"}if(e.match("'"))return t.tokenize=w,t.tokenize(e,t);if(e.match(g))return t.tokenize=function(e){function t(t,n){if(t.eat("\\"))t.next();else{if(t.match(e))return n.tokenize=x,n.leavingExpr=!0,"string";t.eat(/[`"]/)}return t.eatWhile(/[^\\`"]/),"string"}return'"""'===e.substr(-3)?e='"""':'"'===e.substr(-1)&&(e='"'),t}(e.current()),t.tokenize(e,t);if(e.match(p))return"meta";if(e.match(o))return null;if(e.match(m))return"keyword";if(e.match(f))return"builtin";var C=t.isDefinition||"function"==t.lastToken||"macro"==t.lastToken||"type"==t.lastToken||"struct"==t.lastToken||"immutable"==t.lastToken;return e.match(a)?C?"."===e.peek()?(t.isDefinition=!0,"variable"):(t.isDefinition=!1,"def"):(t.leavingExpr=!0,"variable"):(e.next(),"error")}function y(e,t){return e.match(/.*?(?=[,;{}()=\s]|$)/),e.match("{")?t.nestedParameters++:e.match("}")&&t.nestedParameters>0&&t.nestedParameters--,t.nestedParameters>0?e.match(/.*?(?={|})/)||e.next():0==t.nestedParameters&&(t.tokenize=x),"builtin"}function k(e,t){return e.match("#=")&&t.nestedComments++,e.match(/.*?(?=(#=|=#))/)||e.skipToEnd(),e.match("=#")&&(t.nestedComments--,0==t.nestedComments&&(t.tokenize=x)),"comment"}function w(e,t){var n,r=!1;if(e.match(s))r=!0;else if(n=e.match(/\\u([a-f0-9]{1,4})(?=')/i))((i=parseInt(n[1],16))<=55295||i>=57344)&&(r=!0,e.next());else if(n=e.match(/\\U([A-Fa-f0-9]{5,8})(?=')/)){var i;(i=parseInt(n[1],16))<=1114111&&(r=!0,e.next())}return r?(t.leavingExpr=!0,t.tokenize=x,"string"):(e.match(/^[^']+(?=')/)||e.skipToEnd(),e.match("'")&&(t.tokenize=x),"error")}return{startState:function(){return{tokenize:x,scopes:[],lastToken:null,leavingExpr:!1,isDefinition:!1,nestedArrays:0,nestedComments:0,nestedGenerators:0,nestedParameters:0,firstParenPos:-1}},token:function(e,t){var n=t.tokenize(e,t),r=e.current();return r&&n&&(t.lastToken=r),n},indent:function(e,n){var r=0;return("]"===n||")"===n||/^end\b/.test(n)||/^else/.test(n)||/^catch\b/.test(n)||/^elseif\b/.test(n)||/^finally/.test(n))&&(r=-1),(e.scopes.length+r)*t.indentUnit},electricInput:/\b(end|else|catch|finally)\b/,blockCommentStart:"#=",blockCommentEnd:"=#",lineComment:"#",closeBrackets:'()[]{}""',fold:"indent"}})),e.defineMIME("text/x-julia","julia")}(n(25747))},7385:(e,t,n)=>{!function(e){"use strict";e.defineMode("markdown",(function(t,n){var r=e.getMode(t,"text/html"),i="null"==r.name;void 0===n.highlightFormatting&&(n.highlightFormatting=!1),void 0===n.maxBlockquoteDepth&&(n.maxBlockquoteDepth=0),void 0===n.taskLists&&(n.taskLists=!1),void 0===n.strikethrough&&(n.strikethrough=!1),void 0===n.emoji&&(n.emoji=!1),void 0===n.fencedCodeBlockHighlighting&&(n.fencedCodeBlockHighlighting=!0),void 0===n.fencedCodeBlockDefaultMode&&(n.fencedCodeBlockDefaultMode="text/plain"),void 0===n.xml&&(n.xml=!0),void 0===n.tokenTypeOverrides&&(n.tokenTypeOverrides={});var o={header:"header",code:"comment",quote:"quote",list1:"variable-2",list2:"variable-3",list3:"keyword",hr:"hr",image:"image",imageAltText:"image-alt-text",imageMarker:"image-marker",formatting:"formatting",linkInline:"link",linkEmail:"link",linkText:"link",linkHref:"string",em:"em",strong:"strong",strikethrough:"strikethrough",emoji:"builtin"};for(var a in o)o.hasOwnProperty(a)&&n.tokenTypeOverrides[a]&&(o[a]=n.tokenTypeOverrides[a]);var s=/^([*\-_])(?:\s*\1){2,}\s*$/,l=/^(?:[*\-+]|^[0-9]+([.)]))\s+/,c=/^\[(x| )\](?=\s)/i,u=n.allowAtxHeaderWithoutSpace?/^(#+)/:/^(#+)(?: |$)/,d=/^ {0,3}(?:\={1,}|-{2,})\s*$/,m=/^[^#!\[\]*_\\<>` "'(~:]+/,f=/^(~~~+|```+)[ \t]*([\w\/+#-]*)[^\n`]*$/,p=/^\s*\[[^\]]+?\]:.*$/,h=/[!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~\xA1\xA7\xAB\xB6\xB7\xBB\xBF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061E\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u0AF0\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166D\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E42\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]|\uD800[\uDD00-\uDD02\uDF9F\uDFD0]|\uD801\uDD6F|\uD802[\uDC57\uDD1F\uDD3F\uDE50-\uDE58\uDE7F\uDEF0-\uDEF6\uDF39-\uDF3F\uDF99-\uDF9C]|\uD804[\uDC47-\uDC4D\uDCBB\uDCBC\uDCBE-\uDCC1\uDD40-\uDD43\uDD74\uDD75\uDDC5-\uDDC9\uDDCD\uDDDB\uDDDD-\uDDDF\uDE38-\uDE3D\uDEA9]|\uD805[\uDCC6\uDDC1-\uDDD7\uDE41-\uDE43\uDF3C-\uDF3E]|\uD809[\uDC70-\uDC74]|\uD81A[\uDE6E\uDE6F\uDEF5\uDF37-\uDF3B\uDF44]|\uD82F\uDC9F|\uD836[\uDE87-\uDE8B]/;function g(e,t,n){return t.f=t.inline=n,n(e,t)}function b(e,t,n){return t.f=t.block=n,n(e,t)}function v(t){if(t.linkTitle=!1,t.linkHref=!1,t.linkText=!1,t.em=!1,t.strong=!1,t.strikethrough=!1,t.quote=0,t.indentedCode=!1,t.f==y){var n=i;if(!n){var o=e.innerMode(r,t.htmlState);n="xml"==o.mode.name&&null===o.state.tagStart&&!o.state.context&&o.state.tokenize.isInText}n&&(t.f=_,t.block=x,t.htmlState=null)}return t.trailingSpace=0,t.trailingSpaceNewLine=!1,t.prevLine=t.thisLine,t.thisLine={stream:null},null}function x(r,i){var a,m=r.column()===i.indentation,h=!(a=i.prevLine.stream)||!/\S/.test(a.string),b=i.indentedCode,v=i.prevLine.hr,x=!1!==i.list,y=(i.listStack[i.listStack.length-1]||0)+3;i.indentedCode=!1;var C=i.indentation;if(null===i.indentationDiff&&(i.indentationDiff=i.indentation,x)){for(i.list=null;C=4&&(b||i.prevLine.fencedCodeEnd||i.prevLine.header||h))return r.skipToEnd(),i.indentedCode=!0,o.code;if(r.eatSpace())return null;if(m&&i.indentation<=y&&(M=r.match(u))&&M[1].length<=6)return i.quote=0,i.header=M[1].length,i.thisLine.header=!0,n.highlightFormatting&&(i.formatting="header"),i.f=i.inline,w(i);if(i.indentation<=y&&r.eat(">"))return i.quote=m?1:i.quote+1,n.highlightFormatting&&(i.formatting="quote"),r.eatSpace(),w(i);if(!S&&!i.setext&&m&&i.indentation<=y&&(M=r.match(l))){var L=M[1]?"ol":"ul";return i.indentation=C+r.current().length,i.list=!0,i.quote=0,i.listStack.push(i.indentation),i.em=!1,i.strong=!1,i.code=!1,i.strikethrough=!1,n.taskLists&&r.match(c,!1)&&(i.taskList=!0),i.f=i.inline,n.highlightFormatting&&(i.formatting=["list","list-"+L]),w(i)}return m&&i.indentation<=y&&(M=r.match(f,!0))?(i.quote=0,i.fencedEndRE=new RegExp(M[1]+"+ *$"),i.localMode=n.fencedCodeBlockHighlighting&&function(n){if(e.findModeByName){var r=e.findModeByName(n);r&&(n=r.mime||r.mimes[0])}var i=e.getMode(t,n);return"null"==i.name?null:i}(M[2]||n.fencedCodeBlockDefaultMode),i.localMode&&(i.localState=e.startState(i.localMode)),i.f=i.block=k,n.highlightFormatting&&(i.formatting="code-block"),i.code=-1,w(i)):i.setext||!(_&&x||i.quote||!1!==i.list||i.code||S||p.test(r.string))&&(M=r.lookAhead(1))&&(M=M.match(d))?(i.setext?(i.header=i.setext,i.setext=0,r.skipToEnd(),n.highlightFormatting&&(i.formatting="header")):(i.header="="==M[0].charAt(0)?1:2,i.setext=i.header),i.thisLine.header=!0,i.f=i.inline,w(i)):S?(r.skipToEnd(),i.hr=!0,i.thisLine.hr=!0,o.hr):"["===r.peek()?g(r,i,T):g(r,i,i.inline)}function y(t,n){var o=r.token(t,n.htmlState);if(!i){var a=e.innerMode(r,n.htmlState);("xml"==a.mode.name&&null===a.state.tagStart&&!a.state.context&&a.state.tokenize.isInText||n.md_inside&&t.current().indexOf(">")>-1)&&(n.f=_,n.block=x,n.htmlState=null)}return o}function k(e,t){var r,i=t.listStack[t.listStack.length-1]||0,a=t.indentation=e.quote?t.push(o.formatting+"-"+e.formatting[r]+"-"+e.quote):t.push("error"))}if(e.taskOpen)return t.push("meta"),t.length?t.join(" "):null;if(e.taskClosed)return t.push("property"),t.length?t.join(" "):null;if(e.linkHref?t.push(o.linkHref,"url"):(e.strong&&t.push(o.strong),e.em&&t.push(o.em),e.strikethrough&&t.push(o.strikethrough),e.emoji&&t.push(o.emoji),e.linkText&&t.push(o.linkText),e.code&&t.push(o.code),e.image&&t.push(o.image),e.imageAltText&&t.push(o.imageAltText,"link"),e.imageMarker&&t.push(o.imageMarker)),e.header&&t.push(o.header,o.header+"-"+e.header),e.quote&&(t.push(o.quote),!n.maxBlockquoteDepth||n.maxBlockquoteDepth>=e.quote?t.push(o.quote+"-"+e.quote):t.push(o.quote+"-"+n.maxBlockquoteDepth)),!1!==e.list){var i=(e.listStack.length-1)%3;i?1===i?t.push(o.list2):t.push(o.list3):t.push(o.list1)}return e.trailingSpaceNewLine?t.push("trailing-space-new-line"):e.trailingSpace&&t.push("trailing-space-"+(e.trailingSpace%2?"a":"b")),t.length?t.join(" "):null}function C(e,t){if(e.match(m,!0))return w(t)}function _(t,i){var a=i.text(t,i);if(void 0!==a)return a;if(i.list)return i.list=null,w(i);if(i.taskList)return" "===t.match(c,!0)[1]?i.taskOpen=!0:i.taskClosed=!0,n.highlightFormatting&&(i.formatting="task"),i.taskList=!1,w(i);if(i.taskOpen=!1,i.taskClosed=!1,i.header&&t.match(/^#+$/,!0))return n.highlightFormatting&&(i.formatting="header"),w(i);var s=t.next();if(i.linkTitle){i.linkTitle=!1;var l=s;"("===s&&(l=")");var u="^\\s*(?:[^"+(l=(l+"").replace(/([.?*+^\[\]\\(){}|-])/g,"\\$1"))+"\\\\]+|\\\\\\\\|\\\\.)"+l;if(t.match(new RegExp(u),!0))return o.linkHref}if("`"===s){var d=i.formatting;n.highlightFormatting&&(i.formatting="code"),t.eatWhile("`");var m=t.current().length;if(0!=i.code||i.quote&&1!=m){if(m==i.code){var f=w(i);return i.code=0,f}return i.formatting=d,w(i)}return i.code=m,w(i)}if(i.code)return w(i);if("\\"===s&&(t.next(),n.highlightFormatting)){var p=w(i),g=o.formatting+"-escape";return p?p+" "+g:g}if("!"===s&&t.match(/\[[^\]]*\] ?(?:\(|\[)/,!1))return i.imageMarker=!0,i.image=!0,n.highlightFormatting&&(i.formatting="image"),w(i);if("["===s&&i.imageMarker&&t.match(/[^\]]*\](\(.*?\)| ?\[.*?\])/,!1))return i.imageMarker=!1,i.imageAltText=!0,n.highlightFormatting&&(i.formatting="image"),w(i);if("]"===s&&i.imageAltText){n.highlightFormatting&&(i.formatting="image");p=w(i);return i.imageAltText=!1,i.image=!1,i.inline=i.f=M,p}if("["===s&&!i.image)return i.linkText&&t.match(/^.*?\]/)||(i.linkText=!0,n.highlightFormatting&&(i.formatting="link")),w(i);if("]"===s&&i.linkText){n.highlightFormatting&&(i.formatting="link");p=w(i);return i.linkText=!1,i.inline=i.f=t.match(/\(.*?\)| ?\[.*?\]/,!1)?M:_,p}if("<"===s&&t.match(/^(https?|ftps?):\/\/(?:[^\\>]|\\.)+>/,!1))return i.f=i.inline=S,n.highlightFormatting&&(i.formatting="link"),(p=w(i))?p+=" ":p="",p+o.linkInline;if("<"===s&&t.match(/^[^> \\]+@(?:[^\\>]|\\.)+>/,!1))return i.f=i.inline=S,n.highlightFormatting&&(i.formatting="link"),(p=w(i))?p+=" ":p="",p+o.linkEmail;if(n.xml&&"<"===s&&t.match(/^(!--|\?|!\[CDATA\[|[a-z][a-z0-9-]*(?:\s+[a-z_:.\-]+(?:\s*=\s*[^>]+)?)*\s*(?:>|$))/i,!1)){var v=t.string.indexOf(">",t.pos);if(-1!=v){var x=t.string.substring(t.start,v);/markdown\s*=\s*('|"){0,1}1('|"){0,1}/.test(x)&&(i.md_inside=!0)}return t.backUp(1),i.htmlState=e.startState(r),b(t,i,y)}if(n.xml&&"<"===s&&t.match(/^\/\w*?>/))return i.md_inside=!1,"tag";if("*"===s||"_"===s){for(var k=1,C=1==t.pos?" ":t.string.charAt(t.pos-2);k<3&&t.eat(s);)k++;var L=t.peek()||" ",T=!/\s/.test(L)&&(!h.test(L)||/\s/.test(C)||h.test(C)),F=!/\s/.test(C)&&(!h.test(C)||/\s/.test(L)||h.test(L)),E=null,A=null;if(k%2&&(i.em||!T||"*"!==s&&F&&!h.test(C)?i.em!=s||!F||"*"!==s&&T&&!h.test(L)||(E=!1):E=!0),k>1&&(i.strong||!T||"*"!==s&&F&&!h.test(C)?i.strong!=s||!F||"*"!==s&&T&&!h.test(L)||(A=!1):A=!0),null!=A||null!=E)return n.highlightFormatting&&(i.formatting=null==E?"strong":null==A?"em":"strong em"),!0===E&&(i.em=s),!0===A&&(i.strong=s),f=w(i),!1===E&&(i.em=!1),!1===A&&(i.strong=!1),f}else if(" "===s&&(t.eat("*")||t.eat("_"))){if(" "===t.peek())return w(i);t.backUp(1)}if(n.strikethrough)if("~"===s&&t.eatWhile(s)){if(i.strikethrough)return n.highlightFormatting&&(i.formatting="strikethrough"),f=w(i),i.strikethrough=!1,f;if(t.match(/^[^\s]/,!1))return i.strikethrough=!0,n.highlightFormatting&&(i.formatting="strikethrough"),w(i)}else if(" "===s&&t.match("~~",!0)){if(" "===t.peek())return w(i);t.backUp(2)}if(n.emoji&&":"===s&&t.match(/^(?:[a-z_\d+][a-z_\d+-]*|\-[a-z_\d+][a-z_\d+-]*):/)){i.emoji=!0,n.highlightFormatting&&(i.formatting="emoji");var P=w(i);return i.emoji=!1,P}return" "===s&&(t.match(/^ +$/,!1)?i.trailingSpace++:i.trailingSpace&&(i.trailingSpaceNewLine=!0)),w(i)}function S(e,t){if(">"===e.next()){t.f=t.inline=_,n.highlightFormatting&&(t.formatting="link");var r=w(t);return r?r+=" ":r="",r+o.linkInline}return e.match(/^[^>]+/,!0),o.linkInline}function M(e,t){if(e.eatSpace())return null;var r,i=e.next();return"("===i||"["===i?(t.f=t.inline=(r="("===i?")":"]",function(e,t){if(e.next()===r){t.f=t.inline=_,n.highlightFormatting&&(t.formatting="link-string");var i=w(t);return t.linkHref=!1,i}return e.match(L[r]),t.linkHref=!0,w(t)}),n.highlightFormatting&&(t.formatting="link-string"),t.linkHref=!0,w(t)):"error"}var L={")":/^(?:[^\\\(\)]|\\.|\((?:[^\\\(\)]|\\.)*\))*?(?=\))/,"]":/^(?:[^\\\[\]]|\\.|\[(?:[^\\\[\]]|\\.)*\])*?(?=\])/};function T(e,t){return e.match(/^([^\]\\]|\\.)*\]:/,!1)?(t.f=F,e.next(),n.highlightFormatting&&(t.formatting="link"),t.linkText=!0,w(t)):g(e,t,_)}function F(e,t){if(e.match("]:",!0)){t.f=t.inline=E,n.highlightFormatting&&(t.formatting="link");var r=w(t);return t.linkText=!1,r}return e.match(/^([^\]\\]|\\.)+/,!0),o.linkText}function E(e,t){return e.eatSpace()?null:(e.match(/^[^\s]+/,!0),void 0===e.peek()?t.linkTitle=!0:e.match(/^(?:\s+(?:"(?:[^"\\]|\\.)+"|'(?:[^'\\]|\\.)+'|\((?:[^)\\]|\\.)+\)))?/,!0),t.f=t.inline=_,o.linkHref+" url")}var A={startState:function(){return{f:x,prevLine:{stream:null},thisLine:{stream:null},block:x,htmlState:null,indentation:0,inline:_,text:C,formatting:!1,linkText:!1,linkHref:!1,linkTitle:!1,code:0,em:!1,strong:!1,header:0,setext:0,hr:!1,taskList:!1,list:!1,listStack:[],quote:0,trailingSpace:0,trailingSpaceNewLine:!1,strikethrough:!1,emoji:!1,fencedEndRE:null}},copyState:function(t){return{f:t.f,prevLine:t.prevLine,thisLine:t.thisLine,block:t.block,htmlState:t.htmlState&&e.copyState(r,t.htmlState),indentation:t.indentation,localMode:t.localMode,localState:t.localMode?e.copyState(t.localMode,t.localState):null,inline:t.inline,text:t.text,formatting:!1,linkText:t.linkText,linkTitle:t.linkTitle,linkHref:t.linkHref,code:t.code,em:t.em,strong:t.strong,strikethrough:t.strikethrough,emoji:t.emoji,header:t.header,setext:t.setext,hr:t.hr,taskList:t.taskList,list:t.list,listStack:t.listStack.slice(0),quote:t.quote,indentedCode:t.indentedCode,trailingSpace:t.trailingSpace,trailingSpaceNewLine:t.trailingSpaceNewLine,md_inside:t.md_inside,fencedEndRE:t.fencedEndRE}},token:function(e,t){if(t.formatting=!1,e!=t.thisLine.stream){if(t.header=0,t.hr=!1,e.match(/^\s*$/,!0))return v(t),null;if(t.prevLine=t.thisLine,t.thisLine={stream:e},t.taskList=!1,t.trailingSpace=0,t.trailingSpaceNewLine=!1,!t.localState&&(t.f=t.block,t.f!=y)){var n=e.match(/^\s*/,!0)[0].replace(/\t/g," ").length;if(t.indentation=n,t.indentationDiff=null,n>0)return null}}return t.f(e,t)},innerMode:function(e){return e.block==y?{state:e.htmlState,mode:r}:e.localState?{state:e.localState,mode:e.localMode}:{state:e,mode:A}},indent:function(t,n,i){return t.block==y&&r.indent?r.indent(t.htmlState,n,i):t.localState&&t.localMode.indent?t.localMode.indent(t.localState,n,i):e.Pass},blankLine:v,getType:w,blockCommentStart:"\x3c!--",blockCommentEnd:"--\x3e",closeBrackets:"()[]{}''\"\"``",fold:"markdown"};return A}),"xml"),e.defineMIME("text/markdown","markdown"),e.defineMIME("text/x-markdown","markdown")}(n(25747),n(89036),n(80505))},80505:(e,t,n)=>{!function(e){"use strict";e.modeInfo=[{name:"APL",mime:"text/apl",mode:"apl",ext:["dyalog","apl"]},{name:"PGP",mimes:["application/pgp","application/pgp-encrypted","application/pgp-keys","application/pgp-signature"],mode:"asciiarmor",ext:["asc","pgp","sig"]},{name:"ASN.1",mime:"text/x-ttcn-asn",mode:"asn.1",ext:["asn","asn1"]},{name:"Asterisk",mime:"text/x-asterisk",mode:"asterisk",file:/^extensions\.conf$/i},{name:"Brainfuck",mime:"text/x-brainfuck",mode:"brainfuck",ext:["b","bf"]},{name:"C",mime:"text/x-csrc",mode:"clike",ext:["c","h","ino"]},{name:"C++",mime:"text/x-c++src",mode:"clike",ext:["cpp","c++","cc","cxx","hpp","h++","hh","hxx"],alias:["cpp"]},{name:"Cobol",mime:"text/x-cobol",mode:"cobol",ext:["cob","cpy"]},{name:"C#",mime:"text/x-csharp",mode:"clike",ext:["cs"],alias:["csharp","cs"]},{name:"Clojure",mime:"text/x-clojure",mode:"clojure",ext:["clj","cljc","cljx"]},{name:"ClojureScript",mime:"text/x-clojurescript",mode:"clojure",ext:["cljs"]},{name:"Closure Stylesheets (GSS)",mime:"text/x-gss",mode:"css",ext:["gss"]},{name:"CMake",mime:"text/x-cmake",mode:"cmake",ext:["cmake","cmake.in"],file:/^CMakeLists\.txt$/},{name:"CoffeeScript",mimes:["application/vnd.coffeescript","text/coffeescript","text/x-coffeescript"],mode:"coffeescript",ext:["coffee"],alias:["coffee","coffee-script"]},{name:"Common Lisp",mime:"text/x-common-lisp",mode:"commonlisp",ext:["cl","lisp","el"],alias:["lisp"]},{name:"Cypher",mime:"application/x-cypher-query",mode:"cypher",ext:["cyp","cypher"]},{name:"Cython",mime:"text/x-cython",mode:"python",ext:["pyx","pxd","pxi"]},{name:"Crystal",mime:"text/x-crystal",mode:"crystal",ext:["cr"]},{name:"CSS",mime:"text/css",mode:"css",ext:["css"]},{name:"CQL",mime:"text/x-cassandra",mode:"sql",ext:["cql"]},{name:"D",mime:"text/x-d",mode:"d",ext:["d"]},{name:"Dart",mimes:["application/dart","text/x-dart"],mode:"dart",ext:["dart"]},{name:"diff",mime:"text/x-diff",mode:"diff",ext:["diff","patch"]},{name:"Django",mime:"text/x-django",mode:"django"},{name:"Dockerfile",mime:"text/x-dockerfile",mode:"dockerfile",file:/^Dockerfile$/},{name:"DTD",mime:"application/xml-dtd",mode:"dtd",ext:["dtd"]},{name:"Dylan",mime:"text/x-dylan",mode:"dylan",ext:["dylan","dyl","intr"]},{name:"EBNF",mime:"text/x-ebnf",mode:"ebnf"},{name:"ECL",mime:"text/x-ecl",mode:"ecl",ext:["ecl"]},{name:"edn",mime:"application/edn",mode:"clojure",ext:["edn"]},{name:"Eiffel",mime:"text/x-eiffel",mode:"eiffel",ext:["e"]},{name:"Elm",mime:"text/x-elm",mode:"elm",ext:["elm"]},{name:"Embedded JavaScript",mime:"application/x-ejs",mode:"htmlembedded",ext:["ejs"]},{name:"Embedded Ruby",mime:"application/x-erb",mode:"htmlembedded",ext:["erb"]},{name:"Erlang",mime:"text/x-erlang",mode:"erlang",ext:["erl"]},{name:"Esper",mime:"text/x-esper",mode:"sql"},{name:"Factor",mime:"text/x-factor",mode:"factor",ext:["factor"]},{name:"FCL",mime:"text/x-fcl",mode:"fcl"},{name:"Forth",mime:"text/x-forth",mode:"forth",ext:["forth","fth","4th"]},{name:"Fortran",mime:"text/x-fortran",mode:"fortran",ext:["f","for","f77","f90","f95"]},{name:"F#",mime:"text/x-fsharp",mode:"mllike",ext:["fs"],alias:["fsharp"]},{name:"Gas",mime:"text/x-gas",mode:"gas",ext:["s"]},{name:"Gherkin",mime:"text/x-feature",mode:"gherkin",ext:["feature"]},{name:"GitHub Flavored Markdown",mime:"text/x-gfm",mode:"gfm",file:/^(readme|contributing|history)\.md$/i},{name:"Go",mime:"text/x-go",mode:"go",ext:["go"]},{name:"Groovy",mime:"text/x-groovy",mode:"groovy",ext:["groovy","gradle"],file:/^Jenkinsfile$/},{name:"HAML",mime:"text/x-haml",mode:"haml",ext:["haml"]},{name:"Haskell",mime:"text/x-haskell",mode:"haskell",ext:["hs"]},{name:"Haskell (Literate)",mime:"text/x-literate-haskell",mode:"haskell-literate",ext:["lhs"]},{name:"Haxe",mime:"text/x-haxe",mode:"haxe",ext:["hx"]},{name:"HXML",mime:"text/x-hxml",mode:"haxe",ext:["hxml"]},{name:"ASP.NET",mime:"application/x-aspx",mode:"htmlembedded",ext:["aspx"],alias:["asp","aspx"]},{name:"HTML",mime:"text/html",mode:"htmlmixed",ext:["html","htm","handlebars","hbs"],alias:["xhtml"]},{name:"HTTP",mime:"message/http",mode:"http"},{name:"IDL",mime:"text/x-idl",mode:"idl",ext:["pro"]},{name:"Pug",mime:"text/x-pug",mode:"pug",ext:["jade","pug"],alias:["jade"]},{name:"Java",mime:"text/x-java",mode:"clike",ext:["java"]},{name:"Java Server Pages",mime:"application/x-jsp",mode:"htmlembedded",ext:["jsp"],alias:["jsp"]},{name:"JavaScript",mimes:["text/javascript","text/ecmascript","application/javascript","application/x-javascript","application/ecmascript"],mode:"javascript",ext:["js"],alias:["ecmascript","js","node"]},{name:"JSON",mimes:["application/json","application/x-json"],mode:"javascript",ext:["json","map"],alias:["json5"]},{name:"JSON-LD",mime:"application/ld+json",mode:"javascript",ext:["jsonld"],alias:["jsonld"]},{name:"JSX",mime:"text/jsx",mode:"jsx",ext:["jsx"]},{name:"Jinja2",mime:"text/jinja2",mode:"jinja2",ext:["j2","jinja","jinja2"]},{name:"Julia",mime:"text/x-julia",mode:"julia",ext:["jl"],alias:["jl"]},{name:"Kotlin",mime:"text/x-kotlin",mode:"clike",ext:["kt"]},{name:"LESS",mime:"text/x-less",mode:"css",ext:["less"]},{name:"LiveScript",mime:"text/x-livescript",mode:"livescript",ext:["ls"],alias:["ls"]},{name:"Lua",mime:"text/x-lua",mode:"lua",ext:["lua"]},{name:"Markdown",mime:"text/x-markdown",mode:"markdown",ext:["markdown","md","mkd"]},{name:"mIRC",mime:"text/mirc",mode:"mirc"},{name:"MariaDB SQL",mime:"text/x-mariadb",mode:"sql"},{name:"Mathematica",mime:"text/x-mathematica",mode:"mathematica",ext:["m","nb","wl","wls"]},{name:"Modelica",mime:"text/x-modelica",mode:"modelica",ext:["mo"]},{name:"MUMPS",mime:"text/x-mumps",mode:"mumps",ext:["mps"]},{name:"MS SQL",mime:"text/x-mssql",mode:"sql"},{name:"mbox",mime:"application/mbox",mode:"mbox",ext:["mbox"]},{name:"MySQL",mime:"text/x-mysql",mode:"sql"},{name:"Nginx",mime:"text/x-nginx-conf",mode:"nginx",file:/nginx.*\.conf$/i},{name:"NSIS",mime:"text/x-nsis",mode:"nsis",ext:["nsh","nsi"]},{name:"NTriples",mimes:["application/n-triples","application/n-quads","text/n-triples"],mode:"ntriples",ext:["nt","nq"]},{name:"Objective-C",mime:"text/x-objectivec",mode:"clike",ext:["m"],alias:["objective-c","objc"]},{name:"Objective-C++",mime:"text/x-objectivec++",mode:"clike",ext:["mm"],alias:["objective-c++","objc++"]},{name:"OCaml",mime:"text/x-ocaml",mode:"mllike",ext:["ml","mli","mll","mly"]},{name:"Octave",mime:"text/x-octave",mode:"octave",ext:["m"]},{name:"Oz",mime:"text/x-oz",mode:"oz",ext:["oz"]},{name:"Pascal",mime:"text/x-pascal",mode:"pascal",ext:["p","pas"]},{name:"PEG.js",mime:"null",mode:"pegjs",ext:["jsonld"]},{name:"Perl",mime:"text/x-perl",mode:"perl",ext:["pl","pm"]},{name:"PHP",mimes:["text/x-php","application/x-httpd-php","application/x-httpd-php-open"],mode:"php",ext:["php","php3","php4","php5","php7","phtml"]},{name:"Pig",mime:"text/x-pig",mode:"pig",ext:["pig"]},{name:"Plain Text",mime:"text/plain",mode:"null",ext:["txt","text","conf","def","list","log"]},{name:"PLSQL",mime:"text/x-plsql",mode:"sql",ext:["pls"]},{name:"PostgreSQL",mime:"text/x-pgsql",mode:"sql"},{name:"PowerShell",mime:"application/x-powershell",mode:"powershell",ext:["ps1","psd1","psm1"]},{name:"Properties files",mime:"text/x-properties",mode:"properties",ext:["properties","ini","in"],alias:["ini","properties"]},{name:"ProtoBuf",mime:"text/x-protobuf",mode:"protobuf",ext:["proto"]},{name:"Python",mime:"text/x-python",mode:"python",ext:["BUILD","bzl","py","pyw"],file:/^(BUCK|BUILD)$/},{name:"Puppet",mime:"text/x-puppet",mode:"puppet",ext:["pp"]},{name:"Q",mime:"text/x-q",mode:"q",ext:["q"]},{name:"R",mime:"text/x-rsrc",mode:"r",ext:["r","R"],alias:["rscript"]},{name:"reStructuredText",mime:"text/x-rst",mode:"rst",ext:["rst"],alias:["rst"]},{name:"RPM Changes",mime:"text/x-rpm-changes",mode:"rpm"},{name:"RPM Spec",mime:"text/x-rpm-spec",mode:"rpm",ext:["spec"]},{name:"Ruby",mime:"text/x-ruby",mode:"ruby",ext:["rb"],alias:["jruby","macruby","rake","rb","rbx"]},{name:"Rust",mime:"text/x-rustsrc",mode:"rust",ext:["rs"]},{name:"SAS",mime:"text/x-sas",mode:"sas",ext:["sas"]},{name:"Sass",mime:"text/x-sass",mode:"sass",ext:["sass"]},{name:"Scala",mime:"text/x-scala",mode:"clike",ext:["scala"]},{name:"Scheme",mime:"text/x-scheme",mode:"scheme",ext:["scm","ss"]},{name:"SCSS",mime:"text/x-scss",mode:"css",ext:["scss"]},{name:"Shell",mimes:["text/x-sh","application/x-sh"],mode:"shell",ext:["sh","ksh","bash"],alias:["bash","sh","zsh"],file:/^PKGBUILD$/},{name:"Sieve",mime:"application/sieve",mode:"sieve",ext:["siv","sieve"]},{name:"Slim",mimes:["text/x-slim","application/x-slim"],mode:"slim",ext:["slim"]},{name:"Smalltalk",mime:"text/x-stsrc",mode:"smalltalk",ext:["st"]},{name:"Smarty",mime:"text/x-smarty",mode:"smarty",ext:["tpl"]},{name:"Solr",mime:"text/x-solr",mode:"solr"},{name:"SML",mime:"text/x-sml",mode:"mllike",ext:["sml","sig","fun","smackspec"]},{name:"Soy",mime:"text/x-soy",mode:"soy",ext:["soy"],alias:["closure template"]},{name:"SPARQL",mime:"application/sparql-query",mode:"sparql",ext:["rq","sparql"],alias:["sparul"]},{name:"Spreadsheet",mime:"text/x-spreadsheet",mode:"spreadsheet",alias:["excel","formula"]},{name:"SQL",mime:"text/x-sql",mode:"sql",ext:["sql"]},{name:"SQLite",mime:"text/x-sqlite",mode:"sql"},{name:"Squirrel",mime:"text/x-squirrel",mode:"clike",ext:["nut"]},{name:"Stylus",mime:"text/x-styl",mode:"stylus",ext:["styl"]},{name:"Swift",mime:"text/x-swift",mode:"swift",ext:["swift"]},{name:"sTeX",mime:"text/x-stex",mode:"stex"},{name:"LaTeX",mime:"text/x-latex",mode:"stex",ext:["text","ltx","tex"],alias:["tex"]},{name:"SystemVerilog",mime:"text/x-systemverilog",mode:"verilog",ext:["v","sv","svh"]},{name:"Tcl",mime:"text/x-tcl",mode:"tcl",ext:["tcl"]},{name:"Textile",mime:"text/x-textile",mode:"textile",ext:["textile"]},{name:"TiddlyWiki",mime:"text/x-tiddlywiki",mode:"tiddlywiki"},{name:"Tiki wiki",mime:"text/tiki",mode:"tiki"},{name:"TOML",mime:"text/x-toml",mode:"toml",ext:["toml"]},{name:"Tornado",mime:"text/x-tornado",mode:"tornado"},{name:"troff",mime:"text/troff",mode:"troff",ext:["1","2","3","4","5","6","7","8","9"]},{name:"TTCN",mime:"text/x-ttcn",mode:"ttcn",ext:["ttcn","ttcn3","ttcnpp"]},{name:"TTCN_CFG",mime:"text/x-ttcn-cfg",mode:"ttcn-cfg",ext:["cfg"]},{name:"Turtle",mime:"text/turtle",mode:"turtle",ext:["ttl"]},{name:"TypeScript",mime:"application/typescript",mode:"javascript",ext:["ts"],alias:["ts"]},{name:"TypeScript-JSX",mime:"text/typescript-jsx",mode:"jsx",ext:["tsx"],alias:["tsx"]},{name:"Twig",mime:"text/x-twig",mode:"twig"},{name:"Web IDL",mime:"text/x-webidl",mode:"webidl",ext:["webidl"]},{name:"VB.NET",mime:"text/x-vb",mode:"vb",ext:["vb"]},{name:"VBScript",mime:"text/vbscript",mode:"vbscript",ext:["vbs"]},{name:"Velocity",mime:"text/velocity",mode:"velocity",ext:["vtl"]},{name:"Verilog",mime:"text/x-verilog",mode:"verilog",ext:["v"]},{name:"VHDL",mime:"text/x-vhdl",mode:"vhdl",ext:["vhd","vhdl"]},{name:"Vue.js Component",mimes:["script/x-vue","text/x-vue"],mode:"vue",ext:["vue"]},{name:"XML",mimes:["application/xml","text/xml"],mode:"xml",ext:["xml","xsl","xsd","svg"],alias:["rss","wsdl","xsd"]},{name:"XQuery",mime:"application/xquery",mode:"xquery",ext:["xy","xquery"]},{name:"Yacas",mime:"text/x-yacas",mode:"yacas",ext:["ys"]},{name:"YAML",mimes:["text/x-yaml","text/yaml"],mode:"yaml",ext:["yaml","yml"],alias:["yml"]},{name:"Z80",mime:"text/x-z80",mode:"z80",ext:["z80"]},{name:"mscgen",mime:"text/x-mscgen",mode:"mscgen",ext:["mscgen","mscin","msc"]},{name:"xu",mime:"text/x-xu",mode:"mscgen",ext:["xu"]},{name:"msgenny",mime:"text/x-msgenny",mode:"mscgen",ext:["msgenny"]},{name:"WebAssembly",mime:"text/webassembly",mode:"wast",ext:["wat","wast"]}];for(var t=0;t-1&&t.substring(i+1,t.length);if(o)return e.findModeByExtension(o)},e.findModeByName=function(t){t=t.toLowerCase();for(var n=0;n{!function(e){"use strict";function t(e){return new RegExp("^(("+e.join(")|(")+"))\\b")}var n=t(["and","or","not","is"]),r=["as","assert","break","class","continue","def","del","elif","else","except","finally","for","from","global","if","import","lambda","pass","raise","return","try","while","with","yield","in"],i=["abs","all","any","bin","bool","bytearray","callable","chr","classmethod","compile","complex","delattr","dict","dir","divmod","enumerate","eval","filter","float","format","frozenset","getattr","globals","hasattr","hash","help","hex","id","input","int","isinstance","issubclass","iter","len","list","locals","map","max","memoryview","min","next","object","oct","open","ord","pow","property","range","repr","reversed","round","set","setattr","slice","sorted","staticmethod","str","sum","super","tuple","type","vars","zip","__import__","NotImplemented","Ellipsis","__debug__"];function o(e){return e.scopes[e.scopes.length-1]}e.registerHelper("hintWords","python",r.concat(i)),e.defineMode("python",(function(a,s){for(var l="error",c=s.delimiters||s.singleDelimiters||/^[\(\)\[\]\{\}@,:`=;\.\\]/,u=[s.singleOperators,s.doubleOperators,s.doubleDelimiters,s.tripleDelimiters,s.operators||/^([-+*/%\/&|^]=?|[<>=]+|\/\/=?|\*\*=?|!=|[~!@]|\.\.\.)/],d=0;dr?w(t):i0&&C(e,t)&&(a+=" "+l),a}return k(e,t)}function k(e,t,r){if(e.eatSpace())return null;if(!r&&e.match(/^#.*/))return"comment";if(e.match(/^[0-9\.]/,!1)){var i=!1;if(e.match(/^[\d_]*\.\d+(e[\+\-]?\d+)?/i)&&(i=!0),e.match(/^[\d_]+\.\d*/)&&(i=!0),e.match(/^\.\d+/)&&(i=!0),i)return e.eat(/J/i),"number";var o=!1;if(e.match(/^0x[0-9a-f_]+/i)&&(o=!0),e.match(/^0b[01_]+/i)&&(o=!0),e.match(/^0o[0-7_]+/i)&&(o=!0),e.match(/^[1-9][\d_]*(e[\+\-]?[\d_]+)?/)&&(e.eat(/J/i),o=!0),e.match(/^0(?![\dx])/i)&&(o=!0),o)return e.eat(/L/i),"number"}if(e.match(b))return-1!==e.current().toLowerCase().indexOf("f")?(t.tokenize=function(e,t){for(;"rubf".indexOf(e.charAt(0).toLowerCase())>=0;)e=e.substr(1);var n=1==e.length,r="string";function i(e){return function(t,n){var r=k(t,n,!0);return"punctuation"==r&&("{"==t.current()?n.tokenize=i(e+1):"}"==t.current()&&(n.tokenize=e>1?i(e-1):o)),r}}function o(o,a){for(;!o.eol();)if(o.eatWhile(/[^'"\{\}\\]/),o.eat("\\")){if(o.next(),n&&o.eol())return r}else{if(o.match(e))return a.tokenize=t,r;if(o.match("{{"))return r;if(o.match("{",!1))return a.tokenize=i(0),o.current()?r:a.tokenize(o,a);if(o.match("}}"))return r;if(o.match("}"))return l;o.eat(/['"]/)}if(n){if(s.singleLineStringErrors)return l;a.tokenize=t}return r}return o.isString=!0,o}(e.current(),t.tokenize),t.tokenize(e,t)):(t.tokenize=function(e,t){for(;"rubf".indexOf(e.charAt(0).toLowerCase())>=0;)e=e.substr(1);var n=1==e.length,r="string";function i(i,o){for(;!i.eol();)if(i.eatWhile(/[^'"\\]/),i.eat("\\")){if(i.next(),n&&i.eol())return r}else{if(i.match(e))return o.tokenize=t,r;i.eat(/['"]/)}if(n){if(s.singleLineStringErrors)return l;o.tokenize=t}return r}return i.isString=!0,i}(e.current(),t.tokenize),t.tokenize(e,t));for(var a=0;a1&&o(t).offset>n;){if("py"!=o(t).type)return!0;t.scopes.pop()}return o(t).offset!=n}function _(e,t){e.sol()&&(t.beginningOfLine=!0);var n=t.tokenize(e,t),r=e.current();if(t.beginningOfLine&&"@"==r)return e.match(g,!1)?"meta":h?"operator":l;if(/\S/.test(r)&&(t.beginningOfLine=!1),"variable"!=n&&"builtin"!=n||"meta"!=t.lastToken||(n="meta"),"pass"!=r&&"return"!=r||(t.dedent+=1),"lambda"==r&&(t.lambda=!0),":"==r&&!t.lambda&&"py"==o(t).type&&e.match(/^\s*(?:#|$)/,!1)&&w(t),1==r.length&&!/string|comment/.test(n)){var i="[({".indexOf(r);if(-1!=i&&function(e,t,n){var r=e.match(/^[\s\[\{\(]*(?:#|$)/,!1)?null:e.column()+1;t.scopes.push({offset:t.indent+m,type:n,align:r})}(e,t,"])}".slice(i,i+1)),-1!=(i="])}".indexOf(r))){if(o(t).type!=r)return l;t.indent=t.scopes.pop().offset-m}}return t.dedent>0&&e.eol()&&"py"==o(t).type&&(t.scopes.length>1&&t.scopes.pop(),t.dedent-=1),n}return{startState:function(e){return{tokenize:y,scopes:[{offset:e||0,type:"py",align:null}],indent:e||0,lastToken:null,lambda:!1,dedent:0}},token:function(e,t){var n=t.errorToken;n&&(t.errorToken=!1);var r=_(e,t);return r&&"comment"!=r&&(t.lastToken="keyword"==r||"punctuation"==r?e.current():r),"punctuation"==r&&(r=null),e.eol()&&t.lambda&&(t.lambda=!1),n?r+" "+l:r},indent:function(t,n){if(t.tokenize!=y)return t.tokenize.isString?e.Pass:0;var r=o(t),i=r.type==n.charAt(0);return null!=r.align?r.align-(i?1:0):r.offset-(i?m:0)},electricInput:/^\s*[\}\]\)]$/,closeBrackets:{triples:"'\""},lineComment:"#",fold:"indent"}})),e.defineMIME("text/x-python","python");var a;e.defineMIME("text/x-cython",{name:"python",extra_keywords:(a="by cdef cimport cpdef ctypedef enum except extern gil include nogil property public readonly struct union DEF IF ELIF ELSE",a.split(" "))})}(n(25747))},52517:(e,t,n)=>{!function(e){"use strict";e.registerHelper("wordChars","r",/[\w.]/),e.defineMode("r",(function(t){function n(e){for(var t={},n=0;n=!&|~$:]/;function m(e,t){a=null;var n,r=e.next();if("#"==r)return e.skipToEnd(),"comment";if("0"==r&&e.eat("x"))return e.eatWhile(/[\da-f]/i),"number";if("."==r&&e.eat(/\d/))return e.match(/\d*(?:e[+\-]?\d+)?/),"number";if(/\d/.test(r))return e.match(/\d*(?:\.\d+)?(?:e[+\-]\d+)?L?/),"number";if("'"==r||'"'==r)return t.tokenize=(n=r,function(e,t){if(e.eat("\\")){var r=e.next();return"x"==r?e.match(/^[a-f0-9]{2}/i):("u"==r||"U"==r)&&e.eat("{")&&e.skipTo("}")?e.next():"u"==r?e.match(/^[a-f0-9]{4}/i):"U"==r?e.match(/^[a-f0-9]{8}/i):/[0-7]/.test(r)&&e.match(/^[0-7]{1,2}/),"string-2"}for(var i;null!=(i=e.next());){if(i==n){t.tokenize=m;break}if("\\"==i){e.backUp(1);break}}return"string"}),"string";if("`"==r)return e.match(/[^`]+`/),"variable-3";if("."==r&&e.match(/.(?:[.]|\d+)/))return"keyword";if(/[a-zA-Z\.]/.test(r)){e.eatWhile(/[\w\.]/);var i=e.current();return s.propertyIsEnumerable(i)?"atom":c.propertyIsEnumerable(i)?(u.propertyIsEnumerable(i)&&!e.match(/\s*if(\s+|$)/,!1)&&(a="block"),"keyword"):l.propertyIsEnumerable(i)?"builtin":"variable"}return"%"==r?(e.skipTo("%")&&e.next(),"operator variable-2"):"<"==r&&e.eat("-")||"<"==r&&e.match("<-")||"-"==r&&e.match(/>>?/)?"operator arrow":"="==r&&t.ctx.argList?"arg-is":d.test(r)?"$"==r?"operator dollar":(e.eatWhile(d),"operator"):/[\(\){}\[\];]/.test(r)?(a=r,";"==r?"semi":null):null}function f(e,t,n){e.ctx={type:t,indent:e.indent,flags:0,column:n.column(),prev:e.ctx}}function p(e,t){var n=e.ctx;e.ctx={type:n.type,indent:n.indent,flags:n.flags|t,column:n.column,prev:n.prev}}function h(e){e.indent=e.ctx.indent,e.ctx=e.ctx.prev}return{startState:function(){return{tokenize:m,ctx:{type:"top",indent:-t.indentUnit,flags:2},indent:0,afterIdent:!1}},token:function(e,t){if(e.sol()&&(0==(3&t.ctx.flags)&&(t.ctx.flags|=2),4&t.ctx.flags&&h(t),t.indent=e.indentation()),e.eatSpace())return null;var n=t.tokenize(e,t);return"comment"!=n&&0==(2&t.ctx.flags)&&p(t,1),";"!=a&&"{"!=a&&"}"!=a||"block"!=t.ctx.type||h(t),"{"==a?f(t,"}",e):"("==a?(f(t,")",e),t.afterIdent&&(t.ctx.argList=!0)):"["==a?f(t,"]",e):"block"==a?f(t,"block",e):a==t.ctx.type?h(t):"block"==t.ctx.type&&"comment"!=n&&p(t,4),t.afterIdent="variable"==n||"keyword"==n,n},indent:function(e,n){if(e.tokenize!=m)return 0;var r=n&&n.charAt(0),i=e.ctx,o=r==i.type;return 4&i.flags&&(i=i.prev),"block"==i.type?i.indent+("{"==r?0:t.indentUnit):1&i.flags?i.column+(o?0:1):i.indent+(o?0:t.indentUnit)},lineComment:"#"}})),e.defineMIME("text/x-rsrc","r")}(n(25747))},70390:(e,t,n)=>{!function(e){"use strict";e.defineMode("shell",(function(){var t={};function n(e,n){for(var r=0;r1&&e.eat("$");var n=e.next();return/['"({]/.test(n)?(t.tokens[0]=s(n,"("==n?"quote":"{"==n?"def":"string"),u(e,t)):(/\d/.test(n)||e.eatWhile(/\w/),t.tokens.shift(),"def")};function u(e,t){return(t.tokens[0]||a)(e,t)}return{startState:function(){return{tokens:[]}},token:function(e,t){return u(e,t)},closeBrackets:"()[]{}''\"\"``",lineComment:"#",fold:"brace"}})),e.defineMIME("text/x-sh","shell"),e.defineMIME("application/x-sh","shell")}(n(25747))},67310:(e,t,n)=>{!function(e){"use strict";function t(e){for(var t;null!=(t=e.next());)if("`"==t&&!e.eat("`"))return"variable-2";return e.backUp(e.current().length-1),e.eatWhile(/\w/)?"variable-2":null}function n(e){return e.eat("@")&&(e.match("session."),e.match("local."),e.match("global.")),e.eat("'")?(e.match(/^.*'/),"variable-2"):e.eat('"')?(e.match(/^.*"/),"variable-2"):e.eat("`")?(e.match(/^.*`/),"variable-2"):e.match(/^[0-9a-zA-Z$\.\_]+/)?"variable-2":null}function r(e){return e.eat("N")?"atom":e.match(/^[a-zA-Z.#!?]/)?"variable-2":null}e.defineMode("sql",(function(t,n){var r=n.client||{},s=n.atoms||{false:!0,true:!0,null:!0},l=n.builtin||o(a),c=n.keywords||o(i),u=n.operatorChars||/^[*+\-%<>!=&|~^\/]/,d=n.support||{},m=n.hooks||{},f=n.dateSQL||{date:!0,time:!0,timestamp:!0},p=!1!==n.backslashStringEscapes,h=n.brackets||/^[\{}\(\)\[\]]/,g=n.punctuation||/^[;.,:]/;function b(e,t){var n=e.next();if(m[n]){var i=m[n](e,t);if(!1!==i)return i}if(d.hexNumber&&("0"==n&&e.match(/^[xX][0-9a-fA-F]+/)||("x"==n||"X"==n)&&e.match(/^'[0-9a-fA-F]+'/)))return"number";if(d.binaryNumber&&(("b"==n||"B"==n)&&e.match(/^'[01]+'/)||"0"==n&&e.match(/^b[01]+/)))return"number";if(n.charCodeAt(0)>47&&n.charCodeAt(0)<58)return e.match(/^[0-9]*(\.[0-9]+)?([eE][-+]?[0-9]+)?/),d.decimallessFloat&&e.match(/^\.(?!\.)/),"number";if("?"==n&&(e.eatSpace()||e.eol()||e.eat(";")))return"variable-3";if("'"==n||'"'==n&&d.doubleQuote)return t.tokenize=v(n),t.tokenize(e,t);if((d.nCharCast&&("n"==n||"N"==n)||d.charsetCast&&"_"==n&&e.match(/[a-z][a-z0-9]*/i))&&("'"==e.peek()||'"'==e.peek()))return"keyword";if(d.escapeConstant&&("e"==n||"E"==n)&&("'"==e.peek()||'"'==e.peek()&&d.doubleQuote))return t.tokenize=function(e,t){return(t.tokenize=v(e.next(),!0))(e,t)},"keyword";if(d.commentSlashSlash&&"/"==n&&e.eat("/"))return e.skipToEnd(),"comment";if(d.commentHash&&"#"==n||"-"==n&&e.eat("-")&&(!d.commentSpaceRequired||e.eat(" ")))return e.skipToEnd(),"comment";if("/"==n&&e.eat("*"))return t.tokenize=x(1),t.tokenize(e,t);if("."!=n){if(u.test(n))return e.eatWhile(u),"operator";if(h.test(n))return"bracket";if(g.test(n))return e.eatWhile(g),"punctuation";if("{"==n&&(e.match(/^( )*(d|D|t|T|ts|TS)( )*'[^']*'( )*}/)||e.match(/^( )*(d|D|t|T|ts|TS)( )*"[^"]*"( )*}/)))return"number";e.eatWhile(/^[_\w\d]/);var o=e.current().toLowerCase();return f.hasOwnProperty(o)&&(e.match(/^( )+'[^']*'/)||e.match(/^( )+"[^"]*"/))?"number":s.hasOwnProperty(o)?"atom":l.hasOwnProperty(o)?"builtin":c.hasOwnProperty(o)?"keyword":r.hasOwnProperty(o)?"string-2":null}return d.zerolessFloat&&e.match(/^(?:\d+(?:e[+-]?\d+)?)/i)?"number":e.match(/^\.+/)?null:d.ODBCdotTable&&e.match(/^[\w\d_$#]+/)?"variable-2":void 0}function v(e,t){return function(n,r){for(var i,o=!1;null!=(i=n.next());){if(i==e&&!o){r.tokenize=b;break}o=(p||t)&&!o&&"\\"==i}return"string"}}function x(e){return function(t,n){var r=t.match(/^.*?(\/\*|\*\/)/);return r?"/*"==r[1]?n.tokenize=x(e+1):n.tokenize=e>1?x(e-1):b:t.skipToEnd(),"comment"}}function y(e,t,n){t.context={prev:t.context,indent:e.indentation(),col:e.column(),type:n}}return{startState:function(){return{tokenize:b,context:null}},token:function(e,t){if(e.sol()&&t.context&&null==t.context.align&&(t.context.align=!1),t.tokenize==b&&e.eatSpace())return null;var n=t.tokenize(e,t);if("comment"==n)return n;t.context&&null==t.context.align&&(t.context.align=!0);var r=e.current();return"("==r?y(e,t,")"):"["==r?y(e,t,"]"):t.context&&t.context.type==r&&function(e){e.indent=e.context.indent,e.context=e.context.prev}(t),n},indent:function(n,r){var i=n.context;if(!i)return e.Pass;var o=r.charAt(0)==i.type;return i.align?i.col+(o?0:1):i.indent+(o?0:t.indentUnit)},blockCommentStart:"/*",blockCommentEnd:"*/",lineComment:d.commentSlashSlash?"//":d.commentHash?"#":"--",closeBrackets:"()[]{}''\"\"``"}}));var i="alter and as asc between by count create delete desc distinct drop from group having in insert into is join like not on or order select set table union update values where limit ";function o(e){for(var t={},n=e.split(" "),r=0;r!=^\&|\/]/,brackets:/^[\{}\(\)]/,punctuation:/^[;.,:/]/,backslashStringEscapes:!1,dateSQL:o("date datetimeoffset datetime2 smalldatetime datetime time"),hooks:{"@":n}}),e.defineMIME("text/x-mysql",{name:"sql",client:o("charset clear connect edit ego exit go help nopager notee nowarning pager print prompt quit rehash source status system tee"),keywords:o(i+"accessible action add after algorithm all analyze asensitive at authors auto_increment autocommit avg avg_row_length before binary binlog both btree cache call cascade cascaded case catalog_name chain change changed character check checkpoint checksum class_origin client_statistics close coalesce code collate collation collations column columns comment commit committed completion concurrent condition connection consistent constraint contains continue contributors convert cross current current_date current_time current_timestamp current_user cursor data database databases day_hour day_microsecond day_minute day_second deallocate dec declare default delay_key_write delayed delimiter des_key_file describe deterministic dev_pop dev_samp deviance diagnostics directory disable discard distinctrow div dual dumpfile each elseif enable enclosed end ends engine engines enum errors escape escaped even event events every execute exists exit explain extended fast fetch field fields first flush for force foreign found_rows full fulltext function general get global grant grants group group_concat handler hash help high_priority hosts hour_microsecond hour_minute hour_second if ignore ignore_server_ids import index index_statistics infile inner innodb inout insensitive insert_method install interval invoker isolation iterate key keys kill language last leading leave left level limit linear lines list load local localtime localtimestamp lock logs low_priority master master_heartbeat_period master_ssl_verify_server_cert masters match max max_rows maxvalue message_text middleint migrate min min_rows minute_microsecond minute_second mod mode modifies modify mutex mysql_errno natural next no no_write_to_binlog offline offset one online open optimize option optionally out outer outfile pack_keys parser partition partitions password phase plugin plugins prepare preserve prev primary privileges procedure processlist profile profiles purge query quick range read read_write reads real rebuild recover references regexp relaylog release remove rename reorganize repair repeatable replace require resignal restrict resume return returns revoke right rlike rollback rollup row row_format rtree savepoint schedule schema schema_name schemas second_microsecond security sensitive separator serializable server session share show signal slave slow smallint snapshot soname spatial specific sql sql_big_result sql_buffer_result sql_cache sql_calc_found_rows sql_no_cache sql_small_result sqlexception sqlstate sqlwarning ssl start starting starts status std stddev stddev_pop stddev_samp storage straight_join subclass_origin sum suspend table_name table_statistics tables tablespace temporary terminated to trailing transaction trigger triggers truncate uncommitted undo uninstall unique unlock upgrade usage use use_frm user user_resources user_statistics using utc_date utc_time utc_timestamp value variables varying view views warnings when while with work write xa xor year_month zerofill begin do then else loop repeat"),builtin:o("bool boolean bit blob decimal double float long longblob longtext medium mediumblob mediumint mediumtext time timestamp tinyblob tinyint tinytext text bigint int int1 int2 int3 int4 int8 integer float float4 float8 double char varbinary varchar varcharacter precision date datetime year unsigned signed numeric"),atoms:o("false true null unknown"),operatorChars:/^[*+\-%<>!=&|^]/,dateSQL:o("date time timestamp"),support:o("ODBCdotTable decimallessFloat zerolessFloat binaryNumber hexNumber doubleQuote nCharCast charsetCast commentHash commentSpaceRequired"),hooks:{"@":n,"`":t,"\\":r}}),e.defineMIME("text/x-mariadb",{name:"sql",client:o("charset clear connect edit ego exit go help nopager notee nowarning pager print prompt quit rehash source status system tee"),keywords:o(i+"accessible action add after algorithm all always analyze asensitive at authors auto_increment autocommit avg avg_row_length before binary binlog both btree cache call cascade cascaded case catalog_name chain change changed character check checkpoint checksum class_origin client_statistics close coalesce code collate collation collations column columns comment commit committed completion concurrent condition connection consistent constraint contains continue contributors convert cross current current_date current_time current_timestamp current_user cursor data database databases day_hour day_microsecond day_minute day_second deallocate dec declare default delay_key_write delayed delimiter des_key_file describe deterministic dev_pop dev_samp deviance diagnostics directory disable discard distinctrow div dual dumpfile each elseif enable enclosed end ends engine engines enum errors escape escaped even event events every execute exists exit explain extended fast fetch field fields first flush for force foreign found_rows full fulltext function general generated get global grant grants group groupby_concat handler hard hash help high_priority hosts hour_microsecond hour_minute hour_second if ignore ignore_server_ids import index index_statistics infile inner innodb inout insensitive insert_method install interval invoker isolation iterate key keys kill language last leading leave left level limit linear lines list load local localtime localtimestamp lock logs low_priority master master_heartbeat_period master_ssl_verify_server_cert masters match max max_rows maxvalue message_text middleint migrate min min_rows minute_microsecond minute_second mod mode modifies modify mutex mysql_errno natural next no no_write_to_binlog offline offset one online open optimize option optionally out outer outfile pack_keys parser partition partitions password persistent phase plugin plugins prepare preserve prev primary privileges procedure processlist profile profiles purge query quick range read read_write reads real rebuild recover references regexp relaylog release remove rename reorganize repair repeatable replace require resignal restrict resume return returns revoke right rlike rollback rollup row row_format rtree savepoint schedule schema schema_name schemas second_microsecond security sensitive separator serializable server session share show shutdown signal slave slow smallint snapshot soft soname spatial specific sql sql_big_result sql_buffer_result sql_cache sql_calc_found_rows sql_no_cache sql_small_result sqlexception sqlstate sqlwarning ssl start starting starts status std stddev stddev_pop stddev_samp storage straight_join subclass_origin sum suspend table_name table_statistics tables tablespace temporary terminated to trailing transaction trigger triggers truncate uncommitted undo uninstall unique unlock upgrade usage use use_frm user user_resources user_statistics using utc_date utc_time utc_timestamp value variables varying view views virtual warnings when while with work write xa xor year_month zerofill begin do then else loop repeat"),builtin:o("bool boolean bit blob decimal double float long longblob longtext medium mediumblob mediumint mediumtext time timestamp tinyblob tinyint tinytext text bigint int int1 int2 int3 int4 int8 integer float float4 float8 double char varbinary varchar varcharacter precision date datetime year unsigned signed numeric"),atoms:o("false true null unknown"),operatorChars:/^[*+\-%<>!=&|^]/,dateSQL:o("date time timestamp"),support:o("ODBCdotTable decimallessFloat zerolessFloat binaryNumber hexNumber doubleQuote nCharCast charsetCast commentHash commentSpaceRequired"),hooks:{"@":n,"`":t,"\\":r}}),e.defineMIME("text/x-sqlite",{name:"sql",client:o("auth backup bail binary changes check clone databases dbinfo dump echo eqp exit explain fullschema headers help import imposter indexes iotrace limit lint load log mode nullvalue once open output print prompt quit read restore save scanstats schema separator session shell show stats system tables testcase timeout timer trace vfsinfo vfslist vfsname width"),keywords:o(i+"abort action add after all analyze attach autoincrement before begin cascade case cast check collate column commit conflict constraint cross current_date current_time current_timestamp database default deferrable deferred detach each else end escape except exclusive exists explain fail for foreign full glob if ignore immediate index indexed initially inner instead intersect isnull key left limit match natural no notnull null of offset outer plan pragma primary query raise recursive references regexp reindex release rename replace restrict right rollback row savepoint temp temporary then to transaction trigger unique using vacuum view virtual when with without"),builtin:o("bool boolean bit blob decimal double float long longblob longtext medium mediumblob mediumint mediumtext time timestamp tinyblob tinyint tinytext text clob bigint int int2 int8 integer float double char varchar date datetime year unsigned signed numeric real"),atoms:o("null current_date current_time current_timestamp"),operatorChars:/^[*+\-%<>!=&|/~]/,dateSQL:o("date time timestamp datetime"),support:o("decimallessFloat zerolessFloat"),identifierQuote:'"',hooks:{"@":n,":":n,"?":n,$:n,'"':function(e){for(var t;null!=(t=e.next());)if('"'==t&&!e.eat('"'))return"variable-2";return e.backUp(e.current().length-1),e.eatWhile(/\w/)?"variable-2":null},"`":t}}),e.defineMIME("text/x-cassandra",{name:"sql",client:{},keywords:o("add all allow alter and any apply as asc authorize batch begin by clustering columnfamily compact consistency count create custom delete desc distinct drop each_quorum exists filtering from grant if in index insert into key keyspace keyspaces level limit local_one local_quorum modify nan norecursive nosuperuser not of on one order password permission permissions primary quorum rename revoke schema select set storage superuser table three to token truncate ttl two type unlogged update use user users using values where with writetime"),builtin:o("ascii bigint blob boolean counter decimal double float frozen inet int list map static text timestamp timeuuid tuple uuid varchar varint"),atoms:o("false true infinity NaN"),operatorChars:/^[<>=]/,dateSQL:{},support:o("commentSlashSlash decimallessFloat"),hooks:{}}),e.defineMIME("text/x-plsql",{name:"sql",client:o("appinfo arraysize autocommit autoprint autorecovery autotrace blockterminator break btitle cmdsep colsep compatibility compute concat copycommit copytypecheck define describe echo editfile embedded escape exec execute feedback flagger flush heading headsep instance linesize lno loboffset logsource long longchunksize markup native newpage numformat numwidth pagesize pause pno recsep recsepchar release repfooter repheader serveroutput shiftinout show showmode size spool sqlblanklines sqlcase sqlcode sqlcontinue sqlnumber sqlpluscompatibility sqlprefix sqlprompt sqlterminator suffix tab term termout time timing trimout trimspool ttitle underline verify version wrap"),keywords:o("abort accept access add all alter and any array arraylen as asc assert assign at attributes audit authorization avg base_table begin between binary_integer body boolean by case cast char char_base check close cluster clusters colauth column comment commit compress connect connected constant constraint crash create current currval cursor data_base database date dba deallocate debugoff debugon decimal declare default definition delay delete desc digits dispose distinct do drop else elseif elsif enable end entry escape exception exception_init exchange exclusive exists exit external fast fetch file for force form from function generic goto grant group having identified if immediate in increment index indexes indicator initial initrans insert interface intersect into is key level library like limited local lock log logging long loop master maxextents maxtrans member minextents minus mislabel mode modify multiset new next no noaudit nocompress nologging noparallel not nowait number_base object of off offline on online only open option or order out package parallel partition pctfree pctincrease pctused pls_integer positive positiven pragma primary prior private privileges procedure public raise range raw read rebuild record ref references refresh release rename replace resource restrict return returning returns reverse revoke rollback row rowid rowlabel rownum rows run savepoint schema segment select separate session set share snapshot some space split sql start statement storage subtype successful synonym tabauth table tables tablespace task terminate then to trigger truncate type union unique unlimited unrecoverable unusable update use using validate value values variable view views when whenever where while with work"),builtin:o("abs acos add_months ascii asin atan atan2 average bfile bfilename bigserial bit blob ceil character chartorowid chr clob concat convert cos cosh count dec decode deref dual dump dup_val_on_index empty error exp false float floor found glb greatest hextoraw initcap instr instrb int integer isopen last_day least length lengthb ln lower lpad ltrim lub make_ref max min mlslabel mod months_between natural naturaln nchar nclob new_time next_day nextval nls_charset_decl_len nls_charset_id nls_charset_name nls_initcap nls_lower nls_sort nls_upper nlssort no_data_found notfound null number numeric nvarchar2 nvl others power rawtohex real reftohex round rowcount rowidtochar rowtype rpad rtrim serial sign signtype sin sinh smallint soundex sqlcode sqlerrm sqrt stddev string substr substrb sum sysdate tan tanh to_char text to_date to_label to_multi_byte to_number to_single_byte translate true trunc uid unlogged upper user userenv varchar varchar2 variance varying vsize xml"),operatorChars:/^[*\/+\-%<>!=~]/,dateSQL:o("date time timestamp"),support:o("doubleQuote nCharCast zerolessFloat binaryNumber hexNumber")}),e.defineMIME("text/x-hive",{name:"sql",keywords:o("select alter $elem$ $key$ $value$ add after all analyze and archive as asc before between binary both bucket buckets by cascade case cast change cluster clustered clusterstatus collection column columns comment compute concatenate continue create cross cursor data database databases dbproperties deferred delete delimited desc describe directory disable distinct distribute drop else enable end escaped exclusive exists explain export extended external fetch fields fileformat first format formatted from full function functions grant group having hold_ddltime idxproperties if import in index indexes inpath inputdriver inputformat insert intersect into is items join keys lateral left like limit lines load local location lock locks mapjoin materialized minus msck no_drop nocompress not of offline on option or order out outer outputdriver outputformat overwrite partition partitioned partitions percent plus preserve procedure purge range rcfile read readonly reads rebuild recordreader recordwriter recover reduce regexp rename repair replace restrict revoke right rlike row schema schemas semi sequencefile serde serdeproperties set shared show show_database sort sorted ssl statistics stored streamtable table tables tablesample tblproperties temporary terminated textfile then tmp to touch transform trigger unarchive undo union uniquejoin unlock update use using utc utc_tmestamp view when where while with admin authorization char compact compactions conf cube current current_date current_timestamp day decimal defined dependency directories elem_type exchange file following for grouping hour ignore inner interval jar less logical macro minute month more none noscan over owner partialscan preceding pretty principals protection reload rewrite role roles rollup rows second server sets skewed transactions truncate unbounded unset uri user values window year"),builtin:o("bool boolean long timestamp tinyint smallint bigint int float double date datetime unsigned string array struct map uniontype key_type utctimestamp value_type varchar"),atoms:o("false true null unknown"),operatorChars:/^[*+\-%<>!=]/,dateSQL:o("date timestamp"),support:o("ODBCdotTable doubleQuote binaryNumber hexNumber")}),e.defineMIME("text/x-pgsql",{name:"sql",client:o("source"),keywords:o(i+"a abort abs absent absolute access according action ada add admin after aggregate alias all allocate also alter always analyse analyze and any are array array_agg array_max_cardinality as asc asensitive assert assertion assignment asymmetric at atomic attach attribute attributes authorization avg backward base64 before begin begin_frame begin_partition bernoulli between bigint binary bit bit_length blob blocked bom boolean both breadth by c cache call called cardinality cascade cascaded case cast catalog catalog_name ceil ceiling chain char char_length character character_length character_set_catalog character_set_name character_set_schema characteristics characters check checkpoint class class_origin clob close cluster coalesce cobol collate collation collation_catalog collation_name collation_schema collect column column_name columns command_function command_function_code comment comments commit committed concurrently condition condition_number configuration conflict connect connection connection_name constant constraint constraint_catalog constraint_name constraint_schema constraints constructor contains content continue control conversion convert copy corr corresponding cost count covar_pop covar_samp create cross csv cube cume_dist current current_catalog current_date current_default_transform_group current_path current_role current_row current_schema current_time current_timestamp current_transform_group_for_type current_user cursor cursor_name cycle data database datalink datatype date datetime_interval_code datetime_interval_precision day db deallocate debug dec decimal declare default defaults deferrable deferred defined definer degree delete delimiter delimiters dense_rank depends depth deref derived desc describe descriptor detach detail deterministic diagnostics dictionary disable discard disconnect dispatch distinct dlnewcopy dlpreviouscopy dlurlcomplete dlurlcompleteonly dlurlcompletewrite dlurlpath dlurlpathonly dlurlpathwrite dlurlscheme dlurlserver dlvalue do document domain double drop dump dynamic dynamic_function dynamic_function_code each element else elseif elsif empty enable encoding encrypted end end_frame end_partition endexec enforced enum equals errcode error escape event every except exception exclude excluding exclusive exec execute exists exit exp explain expression extension external extract false family fetch file filter final first first_value flag float floor following for force foreach foreign fortran forward found frame_row free freeze from fs full function functions fusion g general generated get global go goto grant granted greatest group grouping groups handler having header hex hierarchy hint hold hour id identity if ignore ilike immediate immediately immutable implementation implicit import in include including increment indent index indexes indicator info inherit inherits initially inline inner inout input insensitive insert instance instantiable instead int integer integrity intersect intersection interval into invoker is isnull isolation join k key key_member key_type label lag language large last last_value lateral lead leading leakproof least left length level library like like_regex limit link listen ln load local localtime localtimestamp location locator lock locked log logged loop lower m map mapping match matched materialized max max_cardinality maxvalue member merge message message_length message_octet_length message_text method min minute minvalue mod mode modifies module month more move multiset mumps name names namespace national natural nchar nclob nesting new next nfc nfd nfkc nfkd nil no none normalize normalized not nothing notice notify notnull nowait nth_value ntile null nullable nullif nulls number numeric object occurrences_regex octet_length octets of off offset oids old on only open operator option options or order ordering ordinality others out outer output over overlaps overlay overriding owned owner p pad parallel parameter parameter_mode parameter_name parameter_ordinal_position parameter_specific_catalog parameter_specific_name parameter_specific_schema parser partial partition pascal passing passthrough password path percent percent_rank percentile_cont percentile_disc perform period permission pg_context pg_datatype_name pg_exception_context pg_exception_detail pg_exception_hint placing plans pli policy portion position position_regex power precedes preceding precision prepare prepared preserve primary print_strict_params prior privileges procedural procedure procedures program public publication query quote raise range rank read reads real reassign recheck recovery recursive ref references referencing refresh regr_avgx regr_avgy regr_count regr_intercept regr_r2 regr_slope regr_sxx regr_sxy regr_syy reindex relative release rename repeatable replace replica requiring reset respect restart restore restrict result result_oid return returned_cardinality returned_length returned_octet_length returned_sqlstate returning returns reverse revoke right role rollback rollup routine routine_catalog routine_name routine_schema routines row row_count row_number rows rowtype rule savepoint scale schema schema_name schemas scope scope_catalog scope_name scope_schema scroll search second section security select selective self sensitive sequence sequences serializable server server_name session session_user set setof sets share show similar simple size skip slice smallint snapshot some source space specific specific_name specifictype sql sqlcode sqlerror sqlexception sqlstate sqlwarning sqrt stable stacked standalone start state statement static statistics stddev_pop stddev_samp stdin stdout storage strict strip structure style subclass_origin submultiset subscription substring substring_regex succeeds sum symmetric sysid system system_time system_user t table table_name tables tablesample tablespace temp template temporary text then ties time timestamp timezone_hour timezone_minute to token top_level_count trailing transaction transaction_active transactions_committed transactions_rolled_back transform transforms translate translate_regex translation treat trigger trigger_catalog trigger_name trigger_schema trim trim_array true truncate trusted type types uescape unbounded uncommitted under unencrypted union unique unknown unlink unlisten unlogged unnamed unnest until untyped update upper uri usage use_column use_variable user user_defined_type_catalog user_defined_type_code user_defined_type_name user_defined_type_schema using vacuum valid validate validator value value_of values var_pop var_samp varbinary varchar variable_conflict variadic varying verbose version versioning view views volatile warning when whenever where while whitespace width_bucket window with within without work wrapper write xml xmlagg xmlattributes xmlbinary xmlcast xmlcomment xmlconcat xmldeclaration xmldocument xmlelement xmlexists xmlforest xmliterate xmlnamespaces xmlparse xmlpi xmlquery xmlroot xmlschema xmlserialize xmltable xmltext xmlvalidate year yes zone"),builtin:o("bigint int8 bigserial serial8 bit varying varbit boolean bool box bytea character char varchar cidr circle date double precision float8 inet integer int int4 interval json jsonb line lseg macaddr macaddr8 money numeric decimal path pg_lsn point polygon real float4 smallint int2 smallserial serial2 serial serial4 text time without zone with timetz timestamp timestamptz tsquery tsvector txid_snapshot uuid xml"),atoms:o("false true null unknown"),operatorChars:/^[*\/+\-%<>!=&|^\/#@?~]/,backslashStringEscapes:!1,dateSQL:o("date time timestamp"),support:o("ODBCdotTable decimallessFloat zerolessFloat binaryNumber hexNumber nCharCast charsetCast escapeConstant")}),e.defineMIME("text/x-gql",{name:"sql",keywords:o("ancestor and asc by contains desc descendant distinct from group has in is limit offset on order select superset where"),atoms:o("false true"),builtin:o("blob datetime first key __key__ string integer double boolean null"),operatorChars:/^[*+\-%<>!=]/}),e.defineMIME("text/x-gpsql",{name:"sql",client:o("source"),keywords:o("abort absolute access action active add admin after aggregate all also alter always analyse analyze and any array as asc assertion assignment asymmetric at authorization backward before begin between bigint binary bit boolean both by cache called cascade cascaded case cast chain char character characteristics check checkpoint class close cluster coalesce codegen collate column comment commit committed concurrency concurrently configuration connection constraint constraints contains content continue conversion copy cost cpu_rate_limit create createdb createexttable createrole createuser cross csv cube current current_catalog current_date current_role current_schema current_time current_timestamp current_user cursor cycle data database day deallocate dec decimal declare decode default defaults deferrable deferred definer delete delimiter delimiters deny desc dictionary disable discard distinct distributed do document domain double drop dxl each else enable encoding encrypted end enum errors escape every except exchange exclude excluding exclusive execute exists explain extension external extract false family fetch fields filespace fill filter first float following for force foreign format forward freeze from full function global grant granted greatest group group_id grouping handler hash having header hold host hour identity if ignore ilike immediate immutable implicit in including inclusive increment index indexes inherit inherits initially inline inner inout input insensitive insert instead int integer intersect interval into invoker is isnull isolation join key language large last leading least left level like limit list listen load local localtime localtimestamp location lock log login mapping master match maxvalue median merge minute minvalue missing mode modifies modify month move name names national natural nchar new newline next no nocreatedb nocreateexttable nocreaterole nocreateuser noinherit nologin none noovercommit nosuperuser not nothing notify notnull nowait null nullif nulls numeric object of off offset oids old on only operator option options or order ordered others out outer over overcommit overlaps overlay owned owner parser partial partition partitions passing password percent percentile_cont percentile_disc placing plans position preceding precision prepare prepared preserve primary prior privileges procedural procedure protocol queue quote randomly range read readable reads real reassign recheck recursive ref references reindex reject relative release rename repeatable replace replica reset resource restart restrict returning returns revoke right role rollback rollup rootpartition row rows rule savepoint scatter schema scroll search second security segment select sequence serializable session session_user set setof sets share show similar simple smallint some split sql stable standalone start statement statistics stdin stdout storage strict strip subpartition subpartitions substring superuser symmetric sysid system table tablespace temp template temporary text then threshold ties time timestamp to trailing transaction treat trigger trim true truncate trusted type unbounded uncommitted unencrypted union unique unknown unlisten until update user using vacuum valid validation validator value values varchar variadic varying verbose version view volatile web when where whitespace window with within without work writable write xml xmlattributes xmlconcat xmlelement xmlexists xmlforest xmlparse xmlpi xmlroot xmlserialize year yes zone"),builtin:o("bigint int8 bigserial serial8 bit varying varbit boolean bool box bytea character char varchar cidr circle date double precision float float8 inet integer int int4 interval json jsonb line lseg macaddr macaddr8 money numeric decimal path pg_lsn point polygon real float4 smallint int2 smallserial serial2 serial serial4 text time without zone with timetz timestamp timestamptz tsquery tsvector txid_snapshot uuid xml"),atoms:o("false true null unknown"),operatorChars:/^[*+\-%<>!=&|^\/#@?~]/,dateSQL:o("date time timestamp"),support:o("ODBCdotTable decimallessFloat zerolessFloat binaryNumber hexNumber nCharCast charsetCast")}),e.defineMIME("text/x-sparksql",{name:"sql",keywords:o("add after all alter analyze and anti archive array as asc at between bucket buckets by cache cascade case cast change clear cluster clustered codegen collection column columns comment commit compact compactions compute concatenate cost create cross cube current current_date current_timestamp database databases data dbproperties defined delete delimited deny desc describe dfs directories distinct distribute drop else end escaped except exchange exists explain export extended external false fields fileformat first following for format formatted from full function functions global grant group grouping having if ignore import in index indexes inner inpath inputformat insert intersect interval into is items join keys last lateral lazy left like limit lines list load local location lock locks logical macro map minus msck natural no not null nulls of on optimize option options or order out outer outputformat over overwrite partition partitioned partitions percent preceding principals purge range recordreader recordwriter recover reduce refresh regexp rename repair replace reset restrict revoke right rlike role roles rollback rollup row rows schema schemas select semi separated serde serdeproperties set sets show skewed sort sorted start statistics stored stratify struct table tables tablesample tblproperties temp temporary terminated then to touch transaction transactions transform true truncate unarchive unbounded uncache union unlock unset use using values view when where window with"),builtin:o("tinyint smallint int bigint boolean float double string binary timestamp decimal array map struct uniontype delimited serde sequencefile textfile rcfile inputformat outputformat"),atoms:o("false true null"),operatorChars:/^[*\/+\-%<>!=~&|^]/,dateSQL:o("date time timestamp"),support:o("ODBCdotTable doubleQuote zerolessFloat")}),e.defineMIME("text/x-esper",{name:"sql",client:o("source"),keywords:o("alter and as asc between by count create delete desc distinct drop from group having in insert into is join like not on or order select set table union update values where limit after all and as at asc avedev avg between by case cast coalesce count create current_timestamp day days delete define desc distinct else end escape events every exists false first from full group having hour hours in inner insert instanceof into irstream is istream join last lastweekday left limit like max match_recognize matches median measures metadatasql min minute minutes msec millisecond milliseconds not null offset on or order outer output partition pattern prev prior regexp retain-union retain-intersection right rstream sec second seconds select set some snapshot sql stddev sum then true unidirectional until update variable weekday when where window"),builtin:{},atoms:o("false true null"),operatorChars:/^[*+\-%<>!=&|^\/#@?~]/,dateSQL:o("time"),support:o("decimallessFloat zerolessFloat binaryNumber hexNumber")})}(n(25747))},16751:(e,t,n)=>{!function(e){"use strict";e.defineMode("stex",(function(e,t){function n(e,t){e.cmdState.push(t)}function r(e){return e.cmdState.length>0?e.cmdState[e.cmdState.length-1]:null}function i(e,t,n){return function(){this.name=e,this.bracketNo=0,this.style=t,this.styles=n,this.argument=null,this.styleIdentifier=function(){return this.styles[this.bracketNo-1]||null},this.openBracket=function(){return this.bracketNo++,"bracket"},this.closeBracket=function(){}}}var o={};function a(e,t){e.f=t}function s(e,t){var i;if(e.match(/^\\[a-zA-Z@]+/)){var s=e.current().slice(1);return n(t,i=new(i=o.hasOwnProperty(s)?o[s]:o.DEFAULT)),a(t,c),i.style}if(e.match(/^\\[$&%#{}_]/))return"tag";if(e.match(/^\\[,;!\/\\]/))return"tag";if(e.match("\\["))return a(t,(function(e,t){return l(e,t,"\\]")})),"keyword";if(e.match("\\("))return a(t,(function(e,t){return l(e,t,"\\)")})),"keyword";if(e.match("$$"))return a(t,(function(e,t){return l(e,t,"$$")})),"keyword";if(e.match("$"))return a(t,(function(e,t){return l(e,t,"$")})),"keyword";var u=e.next();return"%"==u?(e.skipToEnd(),"comment"):"}"==u||"]"==u?(i=r(t))?(i.closeBracket(u),a(t,c),"bracket"):"error":"{"==u||"["==u?(n(t,i=new(i=o.DEFAULT)),"bracket"):/\d/.test(u)?(e.eatWhile(/[\w.%]/),"atom"):(e.eatWhile(/[\w\-_]/),"begin"==(i=function(e){for(var t=e.cmdState,n=t.length-1;n>=0;n--){var r=t[n];if("DEFAULT"!=r.name)return r}return{styleIdentifier:function(){return null}}}(t)).name&&(i.argument=e.current()),i.styleIdentifier())}function l(e,t,n){if(e.eatSpace())return null;if(n&&e.match(n))return a(t,s),"keyword";if(e.match(/^\\[a-zA-Z@]+/))return"tag";if(e.match(/^[a-zA-Z]+/))return"variable-2";if(e.match(/^\\[$&%#{}_]/))return"tag";if(e.match(/^\\[,;!\/]/))return"tag";if(e.match(/^[\^_&]/))return"tag";if(e.match(/^[+\-<>|=,\/@!*:;'"`~#?]/))return null;if(e.match(/^(\d+\.\d*|\d*\.\d+|\d+)/))return"number";var r=e.next();return"{"==r||"}"==r||"["==r||"]"==r||"("==r||")"==r?"bracket":"%"==r?(e.skipToEnd(),"comment"):"error"}function c(e,t){var n=e.peek();return"{"==n||"["==n?(r(t).openBracket(n),e.eat(n),a(t,s),"bracket"):/[ \t\r]/.test(n)?(e.eat(n),null):(a(t,s),function(e){var t=e.cmdState.pop();t&&t.closeBracket()}(t),s(e,t))}return o.importmodule=i("importmodule","tag",["string","builtin"]),o.documentclass=i("documentclass","tag",["","atom"]),o.usepackage=i("usepackage","tag",["atom"]),o.begin=i("begin","tag",["atom"]),o.end=i("end","tag",["atom"]),o.label=i("label","tag",["atom"]),o.ref=i("ref","tag",["atom"]),o.eqref=i("eqref","tag",["atom"]),o.cite=i("cite","tag",["atom"]),o.bibitem=i("bibitem","tag",["atom"]),o.Bibitem=i("Bibitem","tag",["atom"]),o.RBibitem=i("RBibitem","tag",["atom"]),o.DEFAULT=function(){this.name="DEFAULT",this.style="tag",this.styleIdentifier=this.openBracket=this.closeBracket=function(){}},{startState:function(){return{cmdState:[],f:t.inMathMode?function(e,t){return l(e,t)}:s}},copyState:function(e){return{cmdState:e.cmdState.slice(),f:e.f}},token:function(e,t){return t.f(e,t)},blankLine:function(e){e.f=s,e.cmdState.length=0},lineComment:"%"}})),e.defineMIME("text/x-stex","stex"),e.defineMIME("text/x-latex","stex")}(n(25747))},89036:(e,t,n)=>{!function(e){"use strict";var t={autoSelfClosers:{area:!0,base:!0,br:!0,col:!0,command:!0,embed:!0,frame:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0,menuitem:!0},implicitlyClosed:{dd:!0,li:!0,optgroup:!0,option:!0,p:!0,rp:!0,rt:!0,tbody:!0,td:!0,tfoot:!0,th:!0,tr:!0},contextGrabbers:{dd:{dd:!0,dt:!0},dt:{dd:!0,dt:!0},li:{li:!0},option:{option:!0,optgroup:!0},optgroup:{optgroup:!0},p:{address:!0,article:!0,aside:!0,blockquote:!0,dir:!0,div:!0,dl:!0,fieldset:!0,footer:!0,form:!0,h1:!0,h2:!0,h3:!0,h4:!0,h5:!0,h6:!0,header:!0,hgroup:!0,hr:!0,menu:!0,nav:!0,ol:!0,p:!0,pre:!0,section:!0,table:!0,ul:!0},rp:{rp:!0,rt:!0},rt:{rp:!0,rt:!0},tbody:{tbody:!0,tfoot:!0},td:{td:!0,th:!0},tfoot:{tbody:!0},th:{td:!0,th:!0},thead:{tbody:!0,tfoot:!0},tr:{tr:!0}},doNotIndent:{pre:!0},allowUnquoted:!0,allowMissing:!0,caseFold:!0},n={autoSelfClosers:{},implicitlyClosed:{},contextGrabbers:{},doNotIndent:{},allowUnquoted:!1,allowMissing:!1,allowMissingTagName:!1,caseFold:!1};e.defineMode("xml",(function(r,i){var o,a,s=r.indentUnit,l={},c=i.htmlMode?t:n;for(var u in c)l[u]=c[u];for(var u in i)l[u]=i[u];function d(e,t){function n(n){return t.tokenize=n,n(e,t)}var r=e.next();return"<"==r?e.eat("!")?e.eat("[")?e.match("CDATA[")?n(f("atom","]]>")):null:e.match("--")?n(f("comment","--\x3e")):e.match("DOCTYPE",!0,!0)?(e.eatWhile(/[\w\._\-]/),n(p(1))):null:e.eat("?")?(e.eatWhile(/[\w\._\-]/),t.tokenize=f("meta","?>"),"meta"):(o=e.eat("/")?"closeTag":"openTag",t.tokenize=m,"tag bracket"):"&"==r?(e.eat("#")?e.eat("x")?e.eatWhile(/[a-fA-F\d]/)&&e.eat(";"):e.eatWhile(/[\d]/)&&e.eat(";"):e.eatWhile(/[\w\.\-:]/)&&e.eat(";"))?"atom":"error":(e.eatWhile(/[^&<]/),null)}function m(e,t){var n,r,i=e.next();if(">"==i||"/"==i&&e.eat(">"))return t.tokenize=d,o=">"==i?"endTag":"selfcloseTag","tag bracket";if("="==i)return o="equals",null;if("<"==i){t.tokenize=d,t.state=v,t.tagName=t.tagStart=null;var a=t.tokenize(e,t);return a?a+" tag error":"tag error"}return/[\'\"]/.test(i)?(t.tokenize=(n=i,r=function(e,t){for(;!e.eol();)if(e.next()==n){t.tokenize=m;break}return"string"},r.isInAttribute=!0,r),t.stringStartCol=e.column(),t.tokenize(e,t)):(e.match(/^[^\s\u00a0=<>\"\']*[^\s\u00a0=<>\"\'\/]/),"word")}function f(e,t){return function(n,r){for(;!n.eol();){if(n.match(t)){r.tokenize=d;break}n.next()}return e}}function p(e){return function(t,n){for(var r;null!=(r=t.next());){if("<"==r)return n.tokenize=p(e+1),n.tokenize(t,n);if(">"==r){if(1==e){n.tokenize=d;break}return n.tokenize=p(e-1),n.tokenize(t,n)}}return"meta"}}function h(e,t,n){this.prev=e.context,this.tagName=t||"",this.indent=e.indented,this.startOfLine=n,(l.doNotIndent.hasOwnProperty(t)||e.context&&e.context.noIndent)&&(this.noIndent=!0)}function g(e){e.context&&(e.context=e.context.prev)}function b(e,t){for(var n;;){if(!e.context)return;if(n=e.context.tagName,!l.contextGrabbers.hasOwnProperty(n)||!l.contextGrabbers[n].hasOwnProperty(t))return;g(e)}}function v(e,t,n){return"openTag"==e?(n.tagStart=t.column(),x):"closeTag"==e?y:v}function x(e,t,n){return"word"==e?(n.tagName=t.current(),a="tag",C):l.allowMissingTagName&&"endTag"==e?(a="tag bracket",C(e,0,n)):(a="error",x)}function y(e,t,n){if("word"==e){var r=t.current();return n.context&&n.context.tagName!=r&&l.implicitlyClosed.hasOwnProperty(n.context.tagName)&&g(n),n.context&&n.context.tagName==r||!1===l.matchClosing?(a="tag",k):(a="tag error",w)}return l.allowMissingTagName&&"endTag"==e?(a="tag bracket",k(e,0,n)):(a="error",w)}function k(e,t,n){return"endTag"!=e?(a="error",k):(g(n),v)}function w(e,t,n){return a="error",k(e,0,n)}function C(e,t,n){if("word"==e)return a="attribute",_;if("endTag"==e||"selfcloseTag"==e){var r=n.tagName,i=n.tagStart;return n.tagName=n.tagStart=null,"selfcloseTag"==e||l.autoSelfClosers.hasOwnProperty(r)?b(n,r):(b(n,r),n.context=new h(n,r,i==n.indented)),v}return a="error",C}function _(e,t,n){return"equals"==e?S:(l.allowMissing||(a="error"),C(e,0,n))}function S(e,t,n){return"string"==e?M:"word"==e&&l.allowUnquoted?(a="string",C):(a="error",C(e,0,n))}function M(e,t,n){return"string"==e?M:C(e,0,n)}return d.isInText=!0,{startState:function(e){var t={tokenize:d,state:v,indented:e||0,tagName:null,tagStart:null,context:null};return null!=e&&(t.baseIndent=e),t},token:function(e,t){if(!t.tagName&&e.sol()&&(t.indented=e.indentation()),e.eatSpace())return null;o=null;var n=t.tokenize(e,t);return(n||o)&&"comment"!=n&&(a=null,t.state=t.state(o||n,e,t),a&&(n="error"==a?n+" error":a)),n},indent:function(t,n,r){var i=t.context;if(t.tokenize.isInAttribute)return t.tagStart==t.indented?t.stringStartCol+1:t.indented+s;if(i&&i.noIndent)return e.Pass;if(t.tokenize!=m&&t.tokenize!=d)return r?r.match(/^(\s*)/)[0].length:0;if(t.tagName)return!1!==l.multilineTagIndentPastTag?t.tagStart+t.tagName.length+2:t.tagStart+s*(l.multilineTagIndentFactor||1);if(l.alignCDATA&&/$/,blockCommentStart:"\x3c!--",blockCommentEnd:"--\x3e",configuration:l.htmlMode?"html":"xml",helperType:l.htmlMode?"html":"xml",skipAttribute:function(e){e.state==S&&(e.state=C)},xmlCurrentTag:function(e){return e.tagName?{name:e.tagName,close:"closeTag"==e.type}:null},xmlCurrentContext:function(e){for(var t=[],n=e.context;n;n=n.prev)t.push(n.tagName);return t.reverse()}}})),e.defineMIME("text/xml","xml"),e.defineMIME("application/xml","xml"),e.mimeModes.hasOwnProperty("text/html")||e.defineMIME("text/html",{name:"xml",htmlMode:!0})}(n(25747))},77608:(e,t,n)=>{"use strict";n.d(t,{$m:()=>a,Dp:()=>o,Z$:()=>r,kJ:()=>s,s7:()=>i});const r=e=>e[e.length-1],i=(e,t)=>{for(let n=0;n{return e.length===t.length&&(n=(e,n)=>e===t[n],e.every(n));var n},s=Array.isArray},12904:(e,t,n)=>{"use strict";n.d(t,{Hi:()=>s,PP:()=>o,UV:()=>a,gB:()=>l});var r=n(77608),i=n(41042);const o=(e,t,n=0)=>{try{for(;ne===t||null!=e&&null!=t&&e.constructor===t.constructor&&(e instanceof Array&&r.$m(e,t)||"object"==typeof e&&i.$m(e,t)),s=(e,t)=>{if(null==e||null==t)return((e,t)=>e===t)(e,t);if(e.constructor!==t.constructor)return!1;if(e===t)return!0;switch(e.constructor){case ArrayBuffer:e=new Uint8Array(e),t=new Uint8Array(t);case Uint8Array:if(e.byteLength!==t.byteLength)return!1;for(let n=0;nt.includes(e)},31234:(e,t,n)=>{"use strict";n.d(t,{JG:()=>i,UI:()=>a,Ue:()=>r,Yj:()=>s,Yu:()=>o});const r=()=>new Map,i=e=>{const t=r();return e.forEach(((e,n)=>{t.set(n,e)})),t},o=(e,t,n)=>{let r=e.get(t);return void 0===r&&e.set(t,r=n()),r},a=(e,t)=>{const n=[];for(const[r,i]of e)n.push(t(i,r));return n},s=(e,t)=>{for(const[n,r]of e)if(t(r,n))return!0;return!1}},41865:(e,t,n)=>{"use strict";n.d(t,{Fp:()=>s,GR:()=>c,GW:()=>r,IH:()=>o,VV:()=>a,Wn:()=>i,sQ:()=>l});const r=Math.floor,i=(Math.ceil,Math.abs),o=(Math.imul,Math.round,Math.log10,Math.log2,Math.log,Math.sqrt,(e,t)=>e+t),a=(e,t)=>ee>t?e:t,l=(Number.isNaN,Math.pow),c=(Math.sign,e=>0!==e?e<0:1/e<0)},41042:(e,t,n)=>{"use strict";n.d(t,{$m:()=>s,UI:()=>i,kE:()=>o,l$:()=>a}),Object.assign;const r=Object.keys,i=(e,t)=>{const n=[];for(const r in e)n.push(t(e[r],r));return n},o=e=>r(e).length,a=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),s=(e,t)=>e===t||o(e)===o(t)&&((e,t)=>{for(const n in e)if(!t(e[n],n))return!1;return!0})(e,((e,n)=>(void 0!==e||a(t,n))&&t[n]===e))},32549:(e,t,n)=>{"use strict";n.d(t,{y:()=>a});var r=n(31234),i=n(64064),o=n(77608);class a{constructor(){this._observers=r.Ue()}on(e,t){r.Yu(this._observers,e,i.Ue).add(t)}once(e,t){const n=(...r)=>{this.off(e,n),t(...r)};this.on(e,n)}off(e,t){const n=this._observers.get(e);void 0!==n&&(n.delete(t),0===n.size&&this._observers.delete(e))}emit(e,t){return o.Dp((this._observers.get(e)||r.Ue()).values()).forEach((e=>e(...t)))}destroy(){this._observers=r.Ue()}}},64064:(e,t,n)=>{"use strict";n.d(t,{Ue:()=>r});const r=()=>new Set}}]); +//# sourceMappingURL=5878.32d92fa.js.map \ No newline at end of file diff --git a/_static/build/5878.32d92fa.js.map b/_static/build/5878.32d92fa.js.map new file mode 100644 index 0000000..3f3428e --- /dev/null +++ b/_static/build/5878.32d92fa.js.map @@ -0,0 +1 @@ +{"version":3,"file":"5878.32d92fa.js","mappings":"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","sources":["webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/lib0/eventloop.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/lib0/diff.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/y-codemirror/src/y-codemirror.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/lib0/mutex.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/mode.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/codemirror-ipython.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/codemirror-ipythongfm.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/editor.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/factory.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/mimetype.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/syntaxstatus.tsx","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/tokens.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/index.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/addon/comment/comment.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/addon/display/rulers.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/addon/edit/closebrackets.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/addon/edit/trailingspace.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/addon/fold/brace-fold.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/addon/fold/comment-fold.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/addon/fold/foldcode.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/addon/fold/foldgutter.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/addon/fold/indent-fold.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/addon/fold/markdown-fold.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/addon/fold/xml-fold.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/addon/mode/multiplex.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/addon/mode/overlay.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/addon/mode/simple.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/addon/runmode/runmode.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/addon/scroll/scrollpastend.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/addon/search/jump-to-line.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/addon/search/search.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/addon/selection/active-line.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/addon/selection/mark-selection.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/addon/selection/selection-pointer.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/keymap/emacs.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/keymap/sublime.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/mode/clike/clike.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/mode/css/css.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/mode/gfm/gfm.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/mode/javascript/javascript.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/mode/jsx/jsx.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/mode/julia/julia.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/mode/markdown/markdown.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/mode/meta.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/mode/python/python.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/mode/r/r.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/mode/shell/shell.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/mode/sql/sql.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/mode/stex/stex.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/mode/xml/xml.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/lib0/array.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/lib0/function.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/lib0/map.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/lib0/math.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/lib0/object.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/lib0/observable.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/lib0/set.js"],"sourcesContent":["/* global requestIdleCallback, requestAnimationFrame, cancelIdleCallback, cancelAnimationFrame */\n\n/**\n * Utility module to work with EcmaScript's event loop.\n *\n * @module eventloop\n */\n\n/**\n * @type {Array}\n */\nlet queue = []\n\nconst _runQueue = () => {\n for (let i = 0; i < queue.length; i++) {\n queue[i]()\n }\n queue = []\n}\n\n/**\n * @param {function():void} f\n */\nexport const enqueue = f => {\n queue.push(f)\n if (queue.length === 1) {\n setTimeout(_runQueue, 0)\n }\n}\n\n/**\n * @typedef {Object} TimeoutObject\n * @property {function} TimeoutObject.destroy\n */\n\n/**\n * @param {function(number):void} clearFunction\n */\nconst createTimeoutClass = clearFunction => class TT {\n /**\n * @param {number} timeoutId\n */\n constructor (timeoutId) {\n this._ = timeoutId\n }\n\n destroy () {\n clearFunction(this._)\n }\n}\n\nconst Timeout = createTimeoutClass(clearTimeout)\n\n/**\n * @param {number} timeout\n * @param {function} callback\n * @return {TimeoutObject}\n */\nexport const timeout = (timeout, callback) => new Timeout(setTimeout(callback, timeout))\n\nconst Interval = createTimeoutClass(clearInterval)\n\n/**\n * @param {number} timeout\n * @param {function} callback\n * @return {TimeoutObject}\n */\nexport const interval = (timeout, callback) => new Interval(setInterval(callback, timeout))\n\n/* istanbul ignore next */\nexport const Animation = createTimeoutClass(arg => typeof requestAnimationFrame !== 'undefined' && cancelAnimationFrame(arg))\n\n/* istanbul ignore next */\n/**\n * @param {function(number):void} cb\n * @return {TimeoutObject}\n */\nexport const animationFrame = cb => typeof requestAnimationFrame === 'undefined' ? timeout(0, cb) : new Animation(requestAnimationFrame(cb))\n\n/* istanbul ignore next */\n// @ts-ignore\nconst Idle = createTimeoutClass(arg => typeof cancelIdleCallback !== 'undefined' && cancelIdleCallback(arg))\n\n/* istanbul ignore next */\n/**\n * Note: this is experimental and is probably only useful in browsers.\n *\n * @param {function} cb\n * @return {TimeoutObject}\n */\n// @ts-ignore\nexport const idleCallback = cb => typeof requestIdleCallback !== 'undefined' ? new Idle(requestIdleCallback(cb)) : timeout(1000, cb)\n\n/**\n * @param {number} timeout Timeout of the debounce action\n * @return {function(function():void):void}\n */\nexport const createDebouncer = timeout => {\n let timer = -1\n return f => {\n clearTimeout(timer)\n if (f) {\n timer = /** @type {any} */ (setTimeout(f, timeout))\n }\n }\n}\n","/**\n * Efficient diffs.\n *\n * @module diff\n */\n\nimport { equalityStrict } from './function.js'\n\n/**\n * A SimpleDiff describes a change on a String.\n *\n * ```js\n * console.log(a) // the old value\n * console.log(b) // the updated value\n * // Apply changes of diff (pseudocode)\n * a.remove(diff.index, diff.remove) // Remove `diff.remove` characters\n * a.insert(diff.index, diff.insert) // Insert `diff.insert`\n * a === b // values match\n * ```\n *\n * @typedef {Object} SimpleDiff\n * @property {Number} index The index where changes were applied\n * @property {Number} remove The number of characters to delete starting\n * at `index`.\n * @property {T} insert The new text to insert at `index` after applying\n * `delete`\n *\n * @template T\n */\n\n/**\n * Create a diff between two strings. This diff implementation is highly\n * efficient, but not very sophisticated.\n *\n * @function\n *\n * @param {string} a The old version of the string\n * @param {string} b The updated version of the string\n * @return {SimpleDiff} The diff description.\n */\nexport const simpleDiffString = (a, b) => {\n let left = 0 // number of same characters counting from left\n let right = 0 // number of same characters counting from right\n while (left < a.length && left < b.length && a[left] === b[left]) {\n left++\n }\n while (right + left < a.length && right + left < b.length && a[a.length - right - 1] === b[b.length - right - 1]) {\n right++\n }\n return {\n index: left,\n remove: a.length - left - right,\n insert: b.slice(left, b.length - right)\n }\n}\n\n/**\n * @todo Remove in favor of simpleDiffString\n * @deprecated\n */\nexport const simpleDiff = simpleDiffString\n\n/**\n * Create a diff between two arrays. This diff implementation is highly\n * efficient, but not very sophisticated.\n *\n * Note: This is basically the same function as above. Another function was created so that the runtime\n * can better optimize these function calls.\n *\n * @function\n * @template T\n *\n * @param {Array} a The old version of the array\n * @param {Array} b The updated version of the array\n * @param {function(T, T):boolean} [compare]\n * @return {SimpleDiff>} The diff description.\n */\nexport const simpleDiffArray = (a, b, compare = equalityStrict) => {\n let left = 0 // number of same characters counting from left\n let right = 0 // number of same characters counting from right\n while (left < a.length && left < b.length && compare(a[left], b[left])) {\n left++\n }\n while (right + left < a.length && right + left < b.length && compare(a[a.length - right - 1], b[b.length - right - 1])) {\n right++\n }\n return {\n index: left,\n remove: a.length - left - right,\n insert: b.slice(left, b.length - right)\n }\n}\n\n/**\n * Diff text and try to diff at the current cursor position.\n *\n * @param {string} a\n * @param {string} b\n * @param {number} cursor This should refer to the current left cursor-range position\n */\nexport const simpleDiffStringWithCursor = (a, b, cursor) => {\n let left = 0 // number of same characters counting from left\n let right = 0 // number of same characters counting from right\n // Iterate left to the right until we find a changed character\n // First iteration considers the current cursor position\n while (\n left < a.length &&\n left < b.length &&\n a[left] === b[left] &&\n left < cursor\n ) {\n left++\n }\n // Iterate right to the left until we find a changed character\n while (\n right + left < a.length &&\n right + left < b.length &&\n a[a.length - right - 1] === b[b.length - right - 1]\n ) {\n right++\n }\n // Try to iterate left further to the right without caring about the current cursor position\n while (\n right + left < a.length &&\n right + left < b.length &&\n a[left] === b[left]\n ) {\n left++\n }\n return {\n index: left,\n remove: a.length - left - right,\n insert: b.slice(left, b.length - right)\n }\n}\n","/**\n * @module bindings/textarea\n */\n\nimport { createMutex } from 'lib0/mutex'\nimport * as math from 'lib0/math'\nimport * as Y from 'yjs'\nimport * as func from 'lib0/function'\nimport * as eventloop from 'lib0/eventloop'\nimport { Observable } from 'lib0/observable'\nimport * as diff from 'lib0/diff'\nimport CodeMirror from 'codemirror'\n\nexport const cmOrigin = 'y-codemirror'\n\n/**\n * @param {CodemirrorBinding} binding\n * @param {any} event\n */\nconst typeObserver = (binding, event) => {\n binding._mux(() => {\n const cmDoc = binding.cmDoc\n const cm = cmDoc.getEditor()\n // Normally the position is right-associated\n // But when remote changes happen, it looks like the remote user is hijacking your position.\n // Just for remote insertions, we make the collapsed cursor left-associated.\n // If selection is not collapsed, we only make \"to\" left associated\n let anchor = cm.indexFromPos(cm.getCursor('anchor'))\n let head = cm.indexFromPos(cm.getCursor('head'))\n const switchSel = head < anchor\n // normalize selection so that anchor < head, switch back later\n if (switchSel) {\n const tmp = head\n head = anchor\n anchor = tmp\n }\n const performChange = () => {\n const delta = event.delta\n let index = 0\n for (let i = 0; i < event.delta.length; i++) {\n const d = delta[i]\n if (d.retain) {\n index += d.retain\n } else if (d.insert) {\n if (index < anchor || (anchor < head && index === anchor)) {\n anchor += d.insert.length\n }\n if (index < head) {\n head += d.insert.length\n }\n const pos = cmDoc.posFromIndex(index)\n cmDoc.replaceRange(d.insert, pos, pos, cmOrigin)\n index += d.insert.length\n } else if (d.delete) {\n if (index < anchor) {\n anchor = math.max(anchor - d.delete, index)\n }\n if (index < head) {\n head = math.max(head - d.delete, index)\n }\n const start = cmDoc.posFromIndex(index)\n const end = cmDoc.posFromIndex(index + d.delete)\n cmDoc.replaceRange('', start, end, cmOrigin)\n }\n }\n }\n // if possible, bundle the changes using cm.operation\n if (cm) {\n cm.operation(performChange)\n } else {\n performChange()\n }\n if (switchSel) {\n const tmp = head\n head = anchor\n anchor = tmp\n }\n cm.setSelection(cm.posFromIndex(anchor), cm.posFromIndex(head), { scroll: false })\n })\n}\n\n/**\n * @param {CodemirrorBinding} binding\n * @param {Array} changes\n */\nconst targetObserver = (binding, changes) => {\n binding._mux(() => {\n binding.doc.transact(() => {\n const hasPaste = binding.yUndoManager && changes.some(change => change.origin === 'paste')\n if (hasPaste) {\n binding.yUndoManager.stopCapturing()\n }\n\n if (changes.length > 1) {\n // If there are several consecutive changes, we can't reliably compute the positions anymore. See y-codemirror#11\n // Instead, we will compute the diff and apply the changes\n const d = diff.simpleDiffString(binding.type.toString(), binding.cmDoc.getValue())\n binding.type.delete(d.index, d.remove)\n binding.type.insert(d.index, d.insert)\n } else {\n const change = changes[0]\n const start = binding.cmDoc.indexFromPos(change.from)\n const delLen = change.removed.map(s => s.length).reduce(math.add) + change.removed.length - 1\n if (delLen > 0) {\n binding.type.delete(start, delLen)\n }\n if (change.text.length > 0) {\n binding.type.insert(start, change.text.join('\\n'))\n }\n }\n\n if (hasPaste) {\n binding.yUndoManager.stopCapturing()\n }\n }, binding)\n })\n if (binding._pendingCursorEvent) {\n binding._pendingCursorEvent = false\n binding.emit('cursorActivity', [binding])\n }\n}\n\nconst createRemoteCaret = (username, color) => {\n const caret = document.createElement('span')\n caret.classList.add('remote-caret')\n caret.setAttribute('style', `border-color: ${color}`)\n const userDiv = document.createElement('div')\n userDiv.setAttribute('style', `background-color: ${color}`)\n userDiv.insertBefore(document.createTextNode(username), null)\n caret.insertBefore(userDiv, null)\n setTimeout(() => {\n caret.classList.add('hide-name')\n }, 2000)\n return caret\n}\n\nconst createEmptyLinePlaceholder = (color) => {\n const placeholder = document.createElement('span')\n placeholder.setAttribute('style', 'user-select: none;')\n const emptyTxt = document.createElement('span')\n emptyTxt.insertBefore(document.createTextNode(''), null)\n const sel = document.createElement('span')\n sel.setAttribute('class', 'y-line-selection')\n sel.setAttribute('style', `display: inline-block; position: absolute; left: 4px; right: 4px; top: 0; bottom: 0; background-color: ${color}70`)\n placeholder.insertBefore(sel, null)\n placeholder.insertBefore(emptyTxt, null)\n return placeholder\n}\n\nconst updateRemoteSelection = (y, cm, type, cursors, clientId, awareness) => {\n // redraw caret and selection for clientId\n const aw = awareness.getStates().get(clientId)\n // destroy current text mark\n const m = cursors.get(clientId)\n if (m !== undefined) {\n if (m.caret) {\n m.caret.clear()\n }\n m.sel.forEach(sel => sel.clear())\n cursors.delete(clientId)\n }\n if (aw === undefined) {\n return\n }\n const user = aw.user || {}\n if (user.color == null) {\n user.color = '#ffa500'\n }\n if (user.name == null) {\n user.name = `User: ${clientId}`\n }\n const cursor = aw.cursor\n if (cursor == null || cursor.anchor == null || cursor.head == null) {\n return\n }\n const anchor = Y.createAbsolutePositionFromRelativePosition(JSON.parse(cursor.anchor), y)\n const head = Y.createAbsolutePositionFromRelativePosition(JSON.parse(cursor.head), y)\n if (anchor !== null && head !== null && anchor.type === type && head.type === type) {\n const headpos = cm.posFromIndex(head.index)\n const anchorpos = cm.posFromIndex(anchor.index)\n let from, to\n if (head.index < anchor.index) {\n from = headpos\n to = anchorpos\n } else {\n from = anchorpos\n to = headpos\n }\n const caretEl = createRemoteCaret(user.name, user.color)\n // if position was \"relatively\" the same, do not show name again and hide instead\n if (m && func.equalityFlat(aw.cursor.anchor, m.awCursor.anchor) && func.equalityFlat(aw.cursor.head, m.awCursor.head)) {\n caretEl.classList.add('hide-name')\n }\n const sel = []\n\n if (head.index !== anchor.index) {\n if (from.line !== to.line && from.ch !== 0) {\n // start of selection will only be a simple text-selection\n sel.push(cm.markText(from, new CodeMirror.Pos(from.line + 1, 0), { css: `background-color: ${user.color}70;`, inclusiveRight: false, inclusiveLeft: false }))\n from = new CodeMirror.Pos(from.line + 1, 0)\n }\n while (from.line !== to.line) {\n // middle of selection is always a whole-line selection. We add a widget at the first position which will fill the background.\n sel.push(cm.setBookmark(new CodeMirror.Pos(from.line, 0), { widget: createEmptyLinePlaceholder(user.color) }))\n from = new CodeMirror.Pos(from.line + 1, 0)\n }\n sel.push(cm.markText(from, to, { css: `background-color: ${user.color}70;`, inclusiveRight: false, inclusiveLeft: false }))\n }\n // only render caret if not the complete last line was selected (in this case headpos.ch === 0)\n const caret = sel.length > 0 && to === headpos && headpos.ch === 0 ? null : cm.setBookmark(headpos, { widget: caretEl, insertLeft: true })\n cursors.set(clientId, { caret, sel, awCursor: cursor })\n }\n}\n\nconst codemirrorCursorActivity = (y, cm, type, awareness) => {\n const aw = awareness.getLocalState()\n if (!cm.hasFocus() || aw == null || !cm.display.wrapper.ownerDocument.hasFocus()) {\n return\n }\n const newAnchor = Y.createRelativePositionFromTypeIndex(type, cm.indexFromPos(cm.getCursor('anchor')))\n const newHead = Y.createRelativePositionFromTypeIndex(type, cm.indexFromPos(cm.getCursor('head')))\n let currentAnchor = null\n let currentHead = null\n if (aw.cursor != null) {\n currentAnchor = Y.createRelativePositionFromJSON(JSON.parse(aw.cursor.anchor))\n currentHead = Y.createRelativePositionFromJSON(JSON.parse(aw.cursor.head))\n }\n if (aw.cursor == null || !Y.compareRelativePositions(currentAnchor, newAnchor) || !Y.compareRelativePositions(currentHead, newHead)) {\n awareness.setLocalStateField('cursor', {\n anchor: JSON.stringify(newAnchor),\n head: JSON.stringify(newHead)\n })\n }\n}\n\n/**\n * A binding that binds a YText to a CodeMirror editor.\n *\n * @example\n * const ytext = ydocument.define('codemirror', Y.Text)\n * const editor = new CodeMirror(document.querySelector('#container'), {\n * mode: 'javascript',\n * lineNumbers: true\n * })\n * const binding = new CodemirrorBinding(ytext, editor)\n *\n */\nexport class CodemirrorBinding extends Observable {\n /**\n * @param {Y.Text} textType\n * @param {import('codemirror').Editor} codeMirror\n * @param {any | null} [awareness]\n * @param {{ yUndoManager?: Y.UndoManager }} [options]\n */\n constructor (textType, codeMirror, awareness = null, { yUndoManager = null } = {}) {\n super()\n const doc = textType.doc\n const cmDoc = codeMirror.getDoc()\n this.doc = doc\n this.type = textType\n this.cm = codeMirror\n this.cmDoc = cmDoc\n this.awareness = awareness || null\n this.yUndoManager = yUndoManager\n this._onStackItemAdded = ({ stackItem, changedParentTypes }) => {\n // only store metadata if this type was affected\n if (changedParentTypes.has(textType) && this._beforeChangeSelection) {\n stackItem.meta.set(this, this._beforeChangeSelection)\n }\n }\n this._onStackItemPopped = ({ stackItem }) => {\n const sel = stackItem.meta.get(this)\n if (sel) {\n const anchor = Y.createAbsolutePositionFromRelativePosition(sel.anchor, doc).index\n const head = Y.createAbsolutePositionFromRelativePosition(sel.head, doc).index\n codeMirror.setSelection(codeMirror.posFromIndex(anchor), codeMirror.posFromIndex(head))\n this._beforeChange()\n }\n }\n if (yUndoManager) {\n yUndoManager.trackedOrigins.add(this) // track changes performed by this editor binding\n const editorUndo = cm => {\n // Keymaps always start with an active operation.\n // End the current operation so that the event is fired at the correct moment.\n // @todo check cm.curOp in typeListener and endOperation always.\n cm.endOperation()\n yUndoManager.undo()\n cm.startOperation()\n }\n const editorRedo = cm => {\n cm.endOperation()\n yUndoManager.redo()\n cm.startOperation()\n }\n codeMirror.addKeyMap({\n // pc\n 'Ctrl-Z': editorUndo,\n 'Shift-Ctrl-Z': editorRedo,\n 'Ctrl-Y': editorRedo,\n // mac\n 'Cmd-Z': editorUndo,\n 'Shift-Cmd-Z': editorRedo,\n 'Cmd-Y': editorRedo\n })\n\n yUndoManager.on('stack-item-added', this._onStackItemAdded)\n yUndoManager.on('stack-item-popped', this._onStackItemPopped)\n }\n\n this._mux = createMutex()\n // set initial value\n cmDoc.setValue(textType.toString())\n // observe type and target\n this._typeObserver = event => typeObserver(this, event)\n this._targetObserver = (instance, changes) => {\n if (instance.getDoc() === cmDoc) {\n targetObserver(this, changes)\n }\n }\n this._cursors = new Map()\n this._changedCursors = new Set()\n this._debounceCursorEvent = eventloop.createDebouncer(10)\n this._awarenessListener = event => {\n if (codeMirror.getDoc() !== cmDoc) {\n return\n }\n const f = clientId => {\n if (clientId !== doc.clientID) {\n this._changedCursors.add(clientId)\n }\n }\n event.added.forEach(f)\n event.removed.forEach(f)\n event.updated.forEach(f)\n if (this._changedCursors.size > 0) {\n this._debounceCursorEvent(() => {\n this._changedCursors.forEach(clientId => {\n updateRemoteSelection(doc, codeMirror, textType, this._cursors, clientId, awareness)\n })\n this._changedCursors.clear()\n })\n }\n }\n this._pendingCursorEvent = false\n this._cursorListener = () => {\n if (codeMirror.getDoc() === cmDoc) {\n this._pendingCursorEvent = true\n setTimeout(() => {\n if (this._pendingCursorEvent) {\n this._pendingCursorEvent = false\n this.emit('cursorActivity', [codeMirror])\n }\n }, 0)\n }\n }\n this.on('cursorActivity', () => {\n codemirrorCursorActivity(doc, codeMirror, textType, awareness)\n })\n this._blurListeer = () => awareness.setLocalStateField('cursor', null)\n\n textType.observe(this._typeObserver)\n // @ts-ignore\n codeMirror.on('changes', this._targetObserver)\n /**\n * @type {{ anchor: Y.RelativePosition, head: Y.RelativePosition } | null}\n */\n this._beforeChangeSelection = null\n this._beforeChange = () => {\n // update the the beforeChangeSelection that is stored befor each change to the editor (except when applying remote changes)\n this._mux(() => {\n // store the selection before the change is applied so we can restore it with the undo manager.\n const anchor = Y.createRelativePositionFromTypeIndex(textType, codeMirror.indexFromPos(codeMirror.getCursor('anchor')))\n const head = Y.createRelativePositionFromTypeIndex(textType, codeMirror.indexFromPos(codeMirror.getCursor('head')))\n this._beforeChangeSelection = { anchor, head }\n })\n }\n codeMirror.on('beforeChange', this._beforeChange)\n if (awareness) {\n codeMirror.on('swapDoc', this._blurListeer)\n awareness.on('change', this._awarenessListener)\n // @ts-ignore\n codeMirror.on('cursorActivity', this._cursorListener)\n codeMirror.on('blur', this._blurListeer)\n codeMirror.on('focus', this._cursorListener)\n }\n }\n\n destroy () {\n this.type.unobserve(this._typeObserver)\n this.cm.off('swapDoc', this._blurListeer)\n // @ts-ignore\n this.cm.off('changes', this._targetObserver)\n this.cm.off('beforeChange', this._beforeChange)\n // @ts-ignore\n this.cm.off('cursorActivity', this._cursorListener)\n this.cm.off('focus', this._cursorListener)\n this.cm.off('blur', this._blurListeer)\n if (this.awareness) {\n this.awareness.off('change', this._awarenessListener)\n }\n if (this.yUndoManager) {\n this.yUndoManager.off('stack-item-added', this._onStackItemAdded)\n this.yUndoManager.off('stack-item-popped', this._onStackItemPopped)\n this.yUndoManager.trackedOrigins.delete(this)\n }\n this.type = null\n this.cm = null\n this.cmDoc = null\n super.destroy()\n }\n}\n\nexport const CodeMirrorBinding = CodemirrorBinding\n","/**\n * Mutual exclude for JavaScript.\n *\n * @module mutex\n */\n\n/**\n * @callback mutex\n * @param {function():void} cb Only executed when this mutex is not in the current stack\n * @param {function():void} [elseCb] Executed when this mutex is in the current stack\n */\n\n/**\n * Creates a mutual exclude function with the following property:\n *\n * ```js\n * const mutex = createMutex()\n * mutex(() => {\n * // This function is immediately executed\n * mutex(() => {\n * // This function is not executed, as the mutex is already active.\n * })\n * })\n * ```\n *\n * @return {mutex} A mutual exclude function\n * @public\n */\nexport const createMutex = () => {\n let token = true\n return (f, g) => {\n if (token) {\n token = false\n try {\n f()\n } finally {\n token = true\n }\n } else if (g !== undefined) {\n g()\n }\n }\n}\n",null,null,null,null,null,null,null,null,null,"// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n \"use strict\";\n\n var noOptions = {};\n var nonWS = /[^\\s\\u00a0]/;\n var Pos = CodeMirror.Pos, cmp = CodeMirror.cmpPos;\n\n function firstNonWS(str) {\n var found = str.search(nonWS);\n return found == -1 ? 0 : found;\n }\n\n CodeMirror.commands.toggleComment = function(cm) {\n cm.toggleComment();\n };\n\n CodeMirror.defineExtension(\"toggleComment\", function(options) {\n if (!options) options = noOptions;\n var cm = this;\n var minLine = Infinity, ranges = this.listSelections(), mode = null;\n for (var i = ranges.length - 1; i >= 0; i--) {\n var from = ranges[i].from(), to = ranges[i].to();\n if (from.line >= minLine) continue;\n if (to.line >= minLine) to = Pos(minLine, 0);\n minLine = from.line;\n if (mode == null) {\n if (cm.uncomment(from, to, options)) mode = \"un\";\n else { cm.lineComment(from, to, options); mode = \"line\"; }\n } else if (mode == \"un\") {\n cm.uncomment(from, to, options);\n } else {\n cm.lineComment(from, to, options);\n }\n }\n });\n\n // Rough heuristic to try and detect lines that are part of multi-line string\n function probablyInsideString(cm, pos, line) {\n return /\\bstring\\b/.test(cm.getTokenTypeAt(Pos(pos.line, 0))) && !/^[\\'\\\"\\`]/.test(line)\n }\n\n function getMode(cm, pos) {\n var mode = cm.getMode()\n return mode.useInnerComments === false || !mode.innerMode ? mode : cm.getModeAt(pos)\n }\n\n CodeMirror.defineExtension(\"lineComment\", function(from, to, options) {\n if (!options) options = noOptions;\n var self = this, mode = getMode(self, from);\n var firstLine = self.getLine(from.line);\n if (firstLine == null || probablyInsideString(self, from, firstLine)) return;\n\n var commentString = options.lineComment || mode.lineComment;\n if (!commentString) {\n if (options.blockCommentStart || mode.blockCommentStart) {\n options.fullLines = true;\n self.blockComment(from, to, options);\n }\n return;\n }\n\n var end = Math.min(to.ch != 0 || to.line == from.line ? to.line + 1 : to.line, self.lastLine() + 1);\n var pad = options.padding == null ? \" \" : options.padding;\n var blankLines = options.commentBlankLines || from.line == to.line;\n\n self.operation(function() {\n if (options.indent) {\n var baseString = null;\n for (var i = from.line; i < end; ++i) {\n var line = self.getLine(i);\n var whitespace = line.slice(0, firstNonWS(line));\n if (baseString == null || baseString.length > whitespace.length) {\n baseString = whitespace;\n }\n }\n for (var i = from.line; i < end; ++i) {\n var line = self.getLine(i), cut = baseString.length;\n if (!blankLines && !nonWS.test(line)) continue;\n if (line.slice(0, cut) != baseString) cut = firstNonWS(line);\n self.replaceRange(baseString + commentString + pad, Pos(i, 0), Pos(i, cut));\n }\n } else {\n for (var i = from.line; i < end; ++i) {\n if (blankLines || nonWS.test(self.getLine(i)))\n self.replaceRange(commentString + pad, Pos(i, 0));\n }\n }\n });\n });\n\n CodeMirror.defineExtension(\"blockComment\", function(from, to, options) {\n if (!options) options = noOptions;\n var self = this, mode = getMode(self, from);\n var startString = options.blockCommentStart || mode.blockCommentStart;\n var endString = options.blockCommentEnd || mode.blockCommentEnd;\n if (!startString || !endString) {\n if ((options.lineComment || mode.lineComment) && options.fullLines != false)\n self.lineComment(from, to, options);\n return;\n }\n if (/\\bcomment\\b/.test(self.getTokenTypeAt(Pos(from.line, 0)))) return\n\n var end = Math.min(to.line, self.lastLine());\n if (end != from.line && to.ch == 0 && nonWS.test(self.getLine(end))) --end;\n\n var pad = options.padding == null ? \" \" : options.padding;\n if (from.line > end) return;\n\n self.operation(function() {\n if (options.fullLines != false) {\n var lastLineHasText = nonWS.test(self.getLine(end));\n self.replaceRange(pad + endString, Pos(end));\n self.replaceRange(startString + pad, Pos(from.line, 0));\n var lead = options.blockCommentLead || mode.blockCommentLead;\n if (lead != null) for (var i = from.line + 1; i <= end; ++i)\n if (i != end || lastLineHasText)\n self.replaceRange(lead + pad, Pos(i, 0));\n } else {\n var atCursor = cmp(self.getCursor(\"to\"), to) == 0, empty = !self.somethingSelected()\n self.replaceRange(endString, to);\n if (atCursor) self.setSelection(empty ? to : self.getCursor(\"from\"), to)\n self.replaceRange(startString, from);\n }\n });\n });\n\n CodeMirror.defineExtension(\"uncomment\", function(from, to, options) {\n if (!options) options = noOptions;\n var self = this, mode = getMode(self, from);\n var end = Math.min(to.ch != 0 || to.line == from.line ? to.line : to.line - 1, self.lastLine()), start = Math.min(from.line, end);\n\n // Try finding line comments\n var lineString = options.lineComment || mode.lineComment, lines = [];\n var pad = options.padding == null ? \" \" : options.padding, didSomething;\n lineComment: {\n if (!lineString) break lineComment;\n for (var i = start; i <= end; ++i) {\n var line = self.getLine(i);\n var found = line.indexOf(lineString);\n if (found > -1 && !/comment/.test(self.getTokenTypeAt(Pos(i, found + 1)))) found = -1;\n if (found == -1 && nonWS.test(line)) break lineComment;\n if (found > -1 && nonWS.test(line.slice(0, found))) break lineComment;\n lines.push(line);\n }\n self.operation(function() {\n for (var i = start; i <= end; ++i) {\n var line = lines[i - start];\n var pos = line.indexOf(lineString), endPos = pos + lineString.length;\n if (pos < 0) continue;\n if (line.slice(endPos, endPos + pad.length) == pad) endPos += pad.length;\n didSomething = true;\n self.replaceRange(\"\", Pos(i, pos), Pos(i, endPos));\n }\n });\n if (didSomething) return true;\n }\n\n // Try block comments\n var startString = options.blockCommentStart || mode.blockCommentStart;\n var endString = options.blockCommentEnd || mode.blockCommentEnd;\n if (!startString || !endString) return false;\n var lead = options.blockCommentLead || mode.blockCommentLead;\n var startLine = self.getLine(start), open = startLine.indexOf(startString)\n if (open == -1) return false\n var endLine = end == start ? startLine : self.getLine(end)\n var close = endLine.indexOf(endString, end == start ? open + startString.length : 0);\n var insideStart = Pos(start, open + 1), insideEnd = Pos(end, close + 1)\n if (close == -1 ||\n !/comment/.test(self.getTokenTypeAt(insideStart)) ||\n !/comment/.test(self.getTokenTypeAt(insideEnd)) ||\n self.getRange(insideStart, insideEnd, \"\\n\").indexOf(endString) > -1)\n return false;\n\n // Avoid killing block comments completely outside the selection.\n // Positions of the last startString before the start of the selection, and the first endString after it.\n var lastStart = startLine.lastIndexOf(startString, from.ch);\n var firstEnd = lastStart == -1 ? -1 : startLine.slice(0, from.ch).indexOf(endString, lastStart + startString.length);\n if (lastStart != -1 && firstEnd != -1 && firstEnd + endString.length != from.ch) return false;\n // Positions of the first endString after the end of the selection, and the last startString before it.\n firstEnd = endLine.indexOf(endString, to.ch);\n var almostLastStart = endLine.slice(to.ch).lastIndexOf(startString, firstEnd - to.ch);\n lastStart = (firstEnd == -1 || almostLastStart == -1) ? -1 : to.ch + almostLastStart;\n if (firstEnd != -1 && lastStart != -1 && lastStart != to.ch) return false;\n\n self.operation(function() {\n self.replaceRange(\"\", Pos(end, close - (pad && endLine.slice(close - pad.length, close) == pad ? pad.length : 0)),\n Pos(end, close + endString.length));\n var openEnd = open + startString.length;\n if (pad && startLine.slice(openEnd, openEnd + pad.length) == pad) openEnd += pad.length;\n self.replaceRange(\"\", Pos(start, open), Pos(start, openEnd));\n if (lead) for (var i = start + 1; i <= end; ++i) {\n var line = self.getLine(i), found = line.indexOf(lead);\n if (found == -1 || nonWS.test(line.slice(0, found))) continue;\n var foundEnd = found + lead.length;\n if (pad && line.slice(foundEnd, foundEnd + pad.length) == pad) foundEnd += pad.length;\n self.replaceRange(\"\", Pos(i, found), Pos(i, foundEnd));\n }\n });\n return true;\n });\n});\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n \"use strict\";\n\n CodeMirror.defineOption(\"rulers\", false, function(cm, val) {\n if (cm.state.rulerDiv) {\n cm.state.rulerDiv.parentElement.removeChild(cm.state.rulerDiv)\n cm.state.rulerDiv = null\n cm.off(\"refresh\", drawRulers)\n }\n if (val && val.length) {\n cm.state.rulerDiv = cm.display.lineSpace.parentElement.insertBefore(document.createElement(\"div\"), cm.display.lineSpace)\n cm.state.rulerDiv.className = \"CodeMirror-rulers\"\n drawRulers(cm)\n cm.on(\"refresh\", drawRulers)\n }\n });\n\n function drawRulers(cm) {\n cm.state.rulerDiv.textContent = \"\"\n var val = cm.getOption(\"rulers\");\n var cw = cm.defaultCharWidth();\n var left = cm.charCoords(CodeMirror.Pos(cm.firstLine(), 0), \"div\").left;\n cm.state.rulerDiv.style.minHeight = (cm.display.scroller.offsetHeight + 30) + \"px\";\n for (var i = 0; i < val.length; i++) {\n var elt = document.createElement(\"div\");\n elt.className = \"CodeMirror-ruler\";\n var col, conf = val[i];\n if (typeof conf == \"number\") {\n col = conf;\n } else {\n col = conf.column;\n if (conf.className) elt.className += \" \" + conf.className;\n if (conf.color) elt.style.borderColor = conf.color;\n if (conf.lineStyle) elt.style.borderLeftStyle = conf.lineStyle;\n if (conf.width) elt.style.borderLeftWidth = conf.width;\n }\n elt.style.left = (left + col * cw) + \"px\";\n cm.state.rulerDiv.appendChild(elt)\n }\n }\n});\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n var defaults = {\n pairs: \"()[]{}''\\\"\\\"\",\n closeBefore: \")]}'\\\":;>\",\n triples: \"\",\n explode: \"[]{}\"\n };\n\n var Pos = CodeMirror.Pos;\n\n CodeMirror.defineOption(\"autoCloseBrackets\", false, function(cm, val, old) {\n if (old && old != CodeMirror.Init) {\n cm.removeKeyMap(keyMap);\n cm.state.closeBrackets = null;\n }\n if (val) {\n ensureBound(getOption(val, \"pairs\"))\n cm.state.closeBrackets = val;\n cm.addKeyMap(keyMap);\n }\n });\n\n function getOption(conf, name) {\n if (name == \"pairs\" && typeof conf == \"string\") return conf;\n if (typeof conf == \"object\" && conf[name] != null) return conf[name];\n return defaults[name];\n }\n\n var keyMap = {Backspace: handleBackspace, Enter: handleEnter};\n function ensureBound(chars) {\n for (var i = 0; i < chars.length; i++) {\n var ch = chars.charAt(i), key = \"'\" + ch + \"'\"\n if (!keyMap[key]) keyMap[key] = handler(ch)\n }\n }\n ensureBound(defaults.pairs + \"`\")\n\n function handler(ch) {\n return function(cm) { return handleChar(cm, ch); };\n }\n\n function getConfig(cm) {\n var deflt = cm.state.closeBrackets;\n if (!deflt || deflt.override) return deflt;\n var mode = cm.getModeAt(cm.getCursor());\n return mode.closeBrackets || deflt;\n }\n\n function handleBackspace(cm) {\n var conf = getConfig(cm);\n if (!conf || cm.getOption(\"disableInput\")) return CodeMirror.Pass;\n\n var pairs = getOption(conf, \"pairs\");\n var ranges = cm.listSelections();\n for (var i = 0; i < ranges.length; i++) {\n if (!ranges[i].empty()) return CodeMirror.Pass;\n var around = charsAround(cm, ranges[i].head);\n if (!around || pairs.indexOf(around) % 2 != 0) return CodeMirror.Pass;\n }\n for (var i = ranges.length - 1; i >= 0; i--) {\n var cur = ranges[i].head;\n cm.replaceRange(\"\", Pos(cur.line, cur.ch - 1), Pos(cur.line, cur.ch + 1), \"+delete\");\n }\n }\n\n function handleEnter(cm) {\n var conf = getConfig(cm);\n var explode = conf && getOption(conf, \"explode\");\n if (!explode || cm.getOption(\"disableInput\")) return CodeMirror.Pass;\n\n var ranges = cm.listSelections();\n for (var i = 0; i < ranges.length; i++) {\n if (!ranges[i].empty()) return CodeMirror.Pass;\n var around = charsAround(cm, ranges[i].head);\n if (!around || explode.indexOf(around) % 2 != 0) return CodeMirror.Pass;\n }\n cm.operation(function() {\n var linesep = cm.lineSeparator() || \"\\n\";\n cm.replaceSelection(linesep + linesep, null);\n moveSel(cm, -1)\n ranges = cm.listSelections();\n for (var i = 0; i < ranges.length; i++) {\n var line = ranges[i].head.line;\n cm.indentLine(line, null, true);\n cm.indentLine(line + 1, null, true);\n }\n });\n }\n\n function moveSel(cm, dir) {\n var newRanges = [], ranges = cm.listSelections(), primary = 0\n for (var i = 0; i < ranges.length; i++) {\n var range = ranges[i]\n if (range.head == cm.getCursor()) primary = i\n var pos = range.head.ch || dir > 0 ? {line: range.head.line, ch: range.head.ch + dir} : {line: range.head.line - 1}\n newRanges.push({anchor: pos, head: pos})\n }\n cm.setSelections(newRanges, primary)\n }\n\n function contractSelection(sel) {\n var inverted = CodeMirror.cmpPos(sel.anchor, sel.head) > 0;\n return {anchor: new Pos(sel.anchor.line, sel.anchor.ch + (inverted ? -1 : 1)),\n head: new Pos(sel.head.line, sel.head.ch + (inverted ? 1 : -1))};\n }\n\n function handleChar(cm, ch) {\n var conf = getConfig(cm);\n if (!conf || cm.getOption(\"disableInput\")) return CodeMirror.Pass;\n\n var pairs = getOption(conf, \"pairs\");\n var pos = pairs.indexOf(ch);\n if (pos == -1) return CodeMirror.Pass;\n\n var closeBefore = getOption(conf,\"closeBefore\");\n\n var triples = getOption(conf, \"triples\");\n\n var identical = pairs.charAt(pos + 1) == ch;\n var ranges = cm.listSelections();\n var opening = pos % 2 == 0;\n\n var type;\n for (var i = 0; i < ranges.length; i++) {\n var range = ranges[i], cur = range.head, curType;\n var next = cm.getRange(cur, Pos(cur.line, cur.ch + 1));\n if (opening && !range.empty()) {\n curType = \"surround\";\n } else if ((identical || !opening) && next == ch) {\n if (identical && stringStartsAfter(cm, cur))\n curType = \"both\";\n else if (triples.indexOf(ch) >= 0 && cm.getRange(cur, Pos(cur.line, cur.ch + 3)) == ch + ch + ch)\n curType = \"skipThree\";\n else\n curType = \"skip\";\n } else if (identical && cur.ch > 1 && triples.indexOf(ch) >= 0 &&\n cm.getRange(Pos(cur.line, cur.ch - 2), cur) == ch + ch) {\n if (cur.ch > 2 && /\\bstring/.test(cm.getTokenTypeAt(Pos(cur.line, cur.ch - 2)))) return CodeMirror.Pass;\n curType = \"addFour\";\n } else if (identical) {\n var prev = cur.ch == 0 ? \" \" : cm.getRange(Pos(cur.line, cur.ch - 1), cur)\n if (!CodeMirror.isWordChar(next) && prev != ch && !CodeMirror.isWordChar(prev)) curType = \"both\";\n else return CodeMirror.Pass;\n } else if (opening && (next.length === 0 || /\\s/.test(next) || closeBefore.indexOf(next) > -1)) {\n curType = \"both\";\n } else {\n return CodeMirror.Pass;\n }\n if (!type) type = curType;\n else if (type != curType) return CodeMirror.Pass;\n }\n\n var left = pos % 2 ? pairs.charAt(pos - 1) : ch;\n var right = pos % 2 ? ch : pairs.charAt(pos + 1);\n cm.operation(function() {\n if (type == \"skip\") {\n moveSel(cm, 1)\n } else if (type == \"skipThree\") {\n moveSel(cm, 3)\n } else if (type == \"surround\") {\n var sels = cm.getSelections();\n for (var i = 0; i < sels.length; i++)\n sels[i] = left + sels[i] + right;\n cm.replaceSelections(sels, \"around\");\n sels = cm.listSelections().slice();\n for (var i = 0; i < sels.length; i++)\n sels[i] = contractSelection(sels[i]);\n cm.setSelections(sels);\n } else if (type == \"both\") {\n cm.replaceSelection(left + right, null);\n cm.triggerElectric(left + right);\n moveSel(cm, -1)\n } else if (type == \"addFour\") {\n cm.replaceSelection(left + left + left + left, \"before\");\n moveSel(cm, 1)\n }\n });\n }\n\n function charsAround(cm, pos) {\n var str = cm.getRange(Pos(pos.line, pos.ch - 1),\n Pos(pos.line, pos.ch + 1));\n return str.length == 2 ? str : null;\n }\n\n function stringStartsAfter(cm, pos) {\n var token = cm.getTokenAt(Pos(pos.line, pos.ch + 1))\n return /\\bstring/.test(token.type) && token.start == pos.ch &&\n (pos.ch == 0 || !/\\bstring/.test(cm.getTokenTypeAt(pos)))\n }\n});\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n CodeMirror.defineOption(\"showTrailingSpace\", false, function(cm, val, prev) {\n if (prev == CodeMirror.Init) prev = false;\n if (prev && !val)\n cm.removeOverlay(\"trailingspace\");\n else if (!prev && val)\n cm.addOverlay({\n token: function(stream) {\n for (var l = stream.string.length, i = l; i && /\\s/.test(stream.string.charAt(i - 1)); --i) {}\n if (i > stream.pos) { stream.pos = i; return null; }\n stream.pos = l;\n return \"trailingspace\";\n },\n name: \"trailingspace\"\n });\n });\n});\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.registerHelper(\"fold\", \"brace\", function(cm, start) {\n var line = start.line, lineText = cm.getLine(line);\n var tokenType;\n\n function findOpening(openCh) {\n for (var at = start.ch, pass = 0;;) {\n var found = at <= 0 ? -1 : lineText.lastIndexOf(openCh, at - 1);\n if (found == -1) {\n if (pass == 1) break;\n pass = 1;\n at = lineText.length;\n continue;\n }\n if (pass == 1 && found < start.ch) break;\n tokenType = cm.getTokenTypeAt(CodeMirror.Pos(line, found + 1));\n if (!/^(comment|string)/.test(tokenType)) return found + 1;\n at = found - 1;\n }\n }\n\n var startBrace = findOpening(\"{\"), startBracket = findOpening(\"[\")\n var startToken, endToken, startCh\n if (startBrace != null && (startBracket == null || startBracket > startBrace)) {\n startCh = startBrace; startToken = \"{\"; endToken = \"}\"\n } else if (startBracket != null) {\n startCh = startBracket; startToken = \"[\"; endToken = \"]\"\n } else {\n return\n }\n\n var count = 1, lastLine = cm.lastLine(), end, endCh;\n outer: for (var i = line; i <= lastLine; ++i) {\n var text = cm.getLine(i), pos = i == line ? startCh : 0;\n for (;;) {\n var nextOpen = text.indexOf(startToken, pos), nextClose = text.indexOf(endToken, pos);\n if (nextOpen < 0) nextOpen = text.length;\n if (nextClose < 0) nextClose = text.length;\n pos = Math.min(nextOpen, nextClose);\n if (pos == text.length) break;\n if (cm.getTokenTypeAt(CodeMirror.Pos(i, pos + 1)) == tokenType) {\n if (pos == nextOpen) ++count;\n else if (!--count) { end = i; endCh = pos; break outer; }\n }\n ++pos;\n }\n }\n if (end == null || line == end) return;\n return {from: CodeMirror.Pos(line, startCh),\n to: CodeMirror.Pos(end, endCh)};\n});\n\nCodeMirror.registerHelper(\"fold\", \"import\", function(cm, start) {\n function hasImport(line) {\n if (line < cm.firstLine() || line > cm.lastLine()) return null;\n var start = cm.getTokenAt(CodeMirror.Pos(line, 1));\n if (!/\\S/.test(start.string)) start = cm.getTokenAt(CodeMirror.Pos(line, start.end + 1));\n if (start.type != \"keyword\" || start.string != \"import\") return null;\n // Now find closing semicolon, return its position\n for (var i = line, e = Math.min(cm.lastLine(), line + 10); i <= e; ++i) {\n var text = cm.getLine(i), semi = text.indexOf(\";\");\n if (semi != -1) return {startCh: start.end, end: CodeMirror.Pos(i, semi)};\n }\n }\n\n var startLine = start.line, has = hasImport(startLine), prev;\n if (!has || hasImport(startLine - 1) || ((prev = hasImport(startLine - 2)) && prev.end.line == startLine - 1))\n return null;\n for (var end = has.end;;) {\n var next = hasImport(end.line + 1);\n if (next == null) break;\n end = next.end;\n }\n return {from: cm.clipPos(CodeMirror.Pos(startLine, has.startCh + 1)), to: end};\n});\n\nCodeMirror.registerHelper(\"fold\", \"include\", function(cm, start) {\n function hasInclude(line) {\n if (line < cm.firstLine() || line > cm.lastLine()) return null;\n var start = cm.getTokenAt(CodeMirror.Pos(line, 1));\n if (!/\\S/.test(start.string)) start = cm.getTokenAt(CodeMirror.Pos(line, start.end + 1));\n if (start.type == \"meta\" && start.string.slice(0, 8) == \"#include\") return start.start + 8;\n }\n\n var startLine = start.line, has = hasInclude(startLine);\n if (has == null || hasInclude(startLine - 1) != null) return null;\n for (var end = startLine;;) {\n var next = hasInclude(end + 1);\n if (next == null) break;\n ++end;\n }\n return {from: CodeMirror.Pos(startLine, has + 1),\n to: cm.clipPos(CodeMirror.Pos(end))};\n});\n\n});\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.registerGlobalHelper(\"fold\", \"comment\", function(mode) {\n return mode.blockCommentStart && mode.blockCommentEnd;\n}, function(cm, start) {\n var mode = cm.getModeAt(start), startToken = mode.blockCommentStart, endToken = mode.blockCommentEnd;\n if (!startToken || !endToken) return;\n var line = start.line, lineText = cm.getLine(line);\n\n var startCh;\n for (var at = start.ch, pass = 0;;) {\n var found = at <= 0 ? -1 : lineText.lastIndexOf(startToken, at - 1);\n if (found == -1) {\n if (pass == 1) return;\n pass = 1;\n at = lineText.length;\n continue;\n }\n if (pass == 1 && found < start.ch) return;\n if (/comment/.test(cm.getTokenTypeAt(CodeMirror.Pos(line, found + 1))) &&\n (found == 0 || lineText.slice(found - endToken.length, found) == endToken ||\n !/comment/.test(cm.getTokenTypeAt(CodeMirror.Pos(line, found))))) {\n startCh = found + startToken.length;\n break;\n }\n at = found - 1;\n }\n\n var depth = 1, lastLine = cm.lastLine(), end, endCh;\n outer: for (var i = line; i <= lastLine; ++i) {\n var text = cm.getLine(i), pos = i == line ? startCh : 0;\n for (;;) {\n var nextOpen = text.indexOf(startToken, pos), nextClose = text.indexOf(endToken, pos);\n if (nextOpen < 0) nextOpen = text.length;\n if (nextClose < 0) nextClose = text.length;\n pos = Math.min(nextOpen, nextClose);\n if (pos == text.length) break;\n if (pos == nextOpen) ++depth;\n else if (!--depth) { end = i; endCh = pos; break outer; }\n ++pos;\n }\n }\n if (end == null || line == end && endCh == startCh) return;\n return {from: CodeMirror.Pos(line, startCh),\n to: CodeMirror.Pos(end, endCh)};\n});\n\n});\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n \"use strict\";\n\n function doFold(cm, pos, options, force) {\n if (options && options.call) {\n var finder = options;\n options = null;\n } else {\n var finder = getOption(cm, options, \"rangeFinder\");\n }\n if (typeof pos == \"number\") pos = CodeMirror.Pos(pos, 0);\n var minSize = getOption(cm, options, \"minFoldSize\");\n\n function getRange(allowFolded) {\n var range = finder(cm, pos);\n if (!range || range.to.line - range.from.line < minSize) return null;\n var marks = cm.findMarksAt(range.from);\n for (var i = 0; i < marks.length; ++i) {\n if (marks[i].__isFold && force !== \"fold\") {\n if (!allowFolded) return null;\n range.cleared = true;\n marks[i].clear();\n }\n }\n return range;\n }\n\n var range = getRange(true);\n if (getOption(cm, options, \"scanUp\")) while (!range && pos.line > cm.firstLine()) {\n pos = CodeMirror.Pos(pos.line - 1, 0);\n range = getRange(false);\n }\n if (!range || range.cleared || force === \"unfold\") return;\n\n var myWidget = makeWidget(cm, options, range);\n CodeMirror.on(myWidget, \"mousedown\", function(e) {\n myRange.clear();\n CodeMirror.e_preventDefault(e);\n });\n var myRange = cm.markText(range.from, range.to, {\n replacedWith: myWidget,\n clearOnEnter: getOption(cm, options, \"clearOnEnter\"),\n __isFold: true\n });\n myRange.on(\"clear\", function(from, to) {\n CodeMirror.signal(cm, \"unfold\", cm, from, to);\n });\n CodeMirror.signal(cm, \"fold\", cm, range.from, range.to);\n }\n\n function makeWidget(cm, options, range) {\n var widget = getOption(cm, options, \"widget\");\n\n if (typeof widget == \"function\") {\n widget = widget(range.from, range.to);\n }\n\n if (typeof widget == \"string\") {\n var text = document.createTextNode(widget);\n widget = document.createElement(\"span\");\n widget.appendChild(text);\n widget.className = \"CodeMirror-foldmarker\";\n } else if (widget) {\n widget = widget.cloneNode(true)\n }\n return widget;\n }\n\n // Clumsy backwards-compatible interface\n CodeMirror.newFoldFunction = function(rangeFinder, widget) {\n return function(cm, pos) { doFold(cm, pos, {rangeFinder: rangeFinder, widget: widget}); };\n };\n\n // New-style interface\n CodeMirror.defineExtension(\"foldCode\", function(pos, options, force) {\n doFold(this, pos, options, force);\n });\n\n CodeMirror.defineExtension(\"isFolded\", function(pos) {\n var marks = this.findMarksAt(pos);\n for (var i = 0; i < marks.length; ++i)\n if (marks[i].__isFold) return true;\n });\n\n CodeMirror.commands.toggleFold = function(cm) {\n cm.foldCode(cm.getCursor());\n };\n CodeMirror.commands.fold = function(cm) {\n cm.foldCode(cm.getCursor(), null, \"fold\");\n };\n CodeMirror.commands.unfold = function(cm) {\n cm.foldCode(cm.getCursor(), null, \"unfold\");\n };\n CodeMirror.commands.foldAll = function(cm) {\n cm.operation(function() {\n for (var i = cm.firstLine(), e = cm.lastLine(); i <= e; i++)\n cm.foldCode(CodeMirror.Pos(i, 0), null, \"fold\");\n });\n };\n CodeMirror.commands.unfoldAll = function(cm) {\n cm.operation(function() {\n for (var i = cm.firstLine(), e = cm.lastLine(); i <= e; i++)\n cm.foldCode(CodeMirror.Pos(i, 0), null, \"unfold\");\n });\n };\n\n CodeMirror.registerHelper(\"fold\", \"combine\", function() {\n var funcs = Array.prototype.slice.call(arguments, 0);\n return function(cm, start) {\n for (var i = 0; i < funcs.length; ++i) {\n var found = funcs[i](cm, start);\n if (found) return found;\n }\n };\n });\n\n CodeMirror.registerHelper(\"fold\", \"auto\", function(cm, start) {\n var helpers = cm.getHelpers(start, \"fold\");\n for (var i = 0; i < helpers.length; i++) {\n var cur = helpers[i](cm, start);\n if (cur) return cur;\n }\n });\n\n var defaultOptions = {\n rangeFinder: CodeMirror.fold.auto,\n widget: \"\\u2194\",\n minFoldSize: 0,\n scanUp: false,\n clearOnEnter: true\n };\n\n CodeMirror.defineOption(\"foldOptions\", null);\n\n function getOption(cm, options, name) {\n if (options && options[name] !== undefined)\n return options[name];\n var editorOptions = cm.options.foldOptions;\n if (editorOptions && editorOptions[name] !== undefined)\n return editorOptions[name];\n return defaultOptions[name];\n }\n\n CodeMirror.defineExtension(\"foldOption\", function(options, name) {\n return getOption(this, options, name);\n });\n});\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"), require(\"./foldcode\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\", \"./foldcode\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n \"use strict\";\n\n CodeMirror.defineOption(\"foldGutter\", false, function(cm, val, old) {\n if (old && old != CodeMirror.Init) {\n cm.clearGutter(cm.state.foldGutter.options.gutter);\n cm.state.foldGutter = null;\n cm.off(\"gutterClick\", onGutterClick);\n cm.off(\"changes\", onChange);\n cm.off(\"viewportChange\", onViewportChange);\n cm.off(\"fold\", onFold);\n cm.off(\"unfold\", onFold);\n cm.off(\"swapDoc\", onChange);\n }\n if (val) {\n cm.state.foldGutter = new State(parseOptions(val));\n updateInViewport(cm);\n cm.on(\"gutterClick\", onGutterClick);\n cm.on(\"changes\", onChange);\n cm.on(\"viewportChange\", onViewportChange);\n cm.on(\"fold\", onFold);\n cm.on(\"unfold\", onFold);\n cm.on(\"swapDoc\", onChange);\n }\n });\n\n var Pos = CodeMirror.Pos;\n\n function State(options) {\n this.options = options;\n this.from = this.to = 0;\n }\n\n function parseOptions(opts) {\n if (opts === true) opts = {};\n if (opts.gutter == null) opts.gutter = \"CodeMirror-foldgutter\";\n if (opts.indicatorOpen == null) opts.indicatorOpen = \"CodeMirror-foldgutter-open\";\n if (opts.indicatorFolded == null) opts.indicatorFolded = \"CodeMirror-foldgutter-folded\";\n return opts;\n }\n\n function isFolded(cm, line) {\n var marks = cm.findMarks(Pos(line, 0), Pos(line + 1, 0));\n for (var i = 0; i < marks.length; ++i) {\n if (marks[i].__isFold) {\n var fromPos = marks[i].find(-1);\n if (fromPos && fromPos.line === line)\n return marks[i];\n }\n }\n }\n\n function marker(spec) {\n if (typeof spec == \"string\") {\n var elt = document.createElement(\"div\");\n elt.className = spec + \" CodeMirror-guttermarker-subtle\";\n return elt;\n } else {\n return spec.cloneNode(true);\n }\n }\n\n function updateFoldInfo(cm, from, to) {\n var opts = cm.state.foldGutter.options, cur = from - 1;\n var minSize = cm.foldOption(opts, \"minFoldSize\");\n var func = cm.foldOption(opts, \"rangeFinder\");\n // we can reuse the built-in indicator element if its className matches the new state\n var clsFolded = typeof opts.indicatorFolded == \"string\" && classTest(opts.indicatorFolded);\n var clsOpen = typeof opts.indicatorOpen == \"string\" && classTest(opts.indicatorOpen);\n cm.eachLine(from, to, function(line) {\n ++cur;\n var mark = null;\n var old = line.gutterMarkers;\n if (old) old = old[opts.gutter];\n if (isFolded(cm, cur)) {\n if (clsFolded && old && clsFolded.test(old.className)) return;\n mark = marker(opts.indicatorFolded);\n } else {\n var pos = Pos(cur, 0);\n var range = func && func(cm, pos);\n if (range && range.to.line - range.from.line >= minSize) {\n if (clsOpen && old && clsOpen.test(old.className)) return;\n mark = marker(opts.indicatorOpen);\n }\n }\n if (!mark && !old) return;\n cm.setGutterMarker(line, opts.gutter, mark);\n });\n }\n\n // copied from CodeMirror/src/util/dom.js\n function classTest(cls) { return new RegExp(\"(^|\\\\s)\" + cls + \"(?:$|\\\\s)\\\\s*\") }\n\n function updateInViewport(cm) {\n var vp = cm.getViewport(), state = cm.state.foldGutter;\n if (!state) return;\n cm.operation(function() {\n updateFoldInfo(cm, vp.from, vp.to);\n });\n state.from = vp.from; state.to = vp.to;\n }\n\n function onGutterClick(cm, line, gutter) {\n var state = cm.state.foldGutter;\n if (!state) return;\n var opts = state.options;\n if (gutter != opts.gutter) return;\n var folded = isFolded(cm, line);\n if (folded) folded.clear();\n else cm.foldCode(Pos(line, 0), opts);\n }\n\n function onChange(cm) {\n var state = cm.state.foldGutter;\n if (!state) return;\n var opts = state.options;\n state.from = state.to = 0;\n clearTimeout(state.changeUpdate);\n state.changeUpdate = setTimeout(function() { updateInViewport(cm); }, opts.foldOnChangeTimeSpan || 600);\n }\n\n function onViewportChange(cm) {\n var state = cm.state.foldGutter;\n if (!state) return;\n var opts = state.options;\n clearTimeout(state.changeUpdate);\n state.changeUpdate = setTimeout(function() {\n var vp = cm.getViewport();\n if (state.from == state.to || vp.from - state.to > 20 || state.from - vp.to > 20) {\n updateInViewport(cm);\n } else {\n cm.operation(function() {\n if (vp.from < state.from) {\n updateFoldInfo(cm, vp.from, state.from);\n state.from = vp.from;\n }\n if (vp.to > state.to) {\n updateFoldInfo(cm, state.to, vp.to);\n state.to = vp.to;\n }\n });\n }\n }, opts.updateViewportTimeSpan || 400);\n }\n\n function onFold(cm, from) {\n var state = cm.state.foldGutter;\n if (!state) return;\n var line = from.line;\n if (line >= state.from && line < state.to)\n updateFoldInfo(cm, line, line + 1);\n }\n});\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nfunction lineIndent(cm, lineNo) {\n var text = cm.getLine(lineNo)\n var spaceTo = text.search(/\\S/)\n if (spaceTo == -1 || /\\bcomment\\b/.test(cm.getTokenTypeAt(CodeMirror.Pos(lineNo, spaceTo + 1))))\n return -1\n return CodeMirror.countColumn(text, null, cm.getOption(\"tabSize\"))\n}\n\nCodeMirror.registerHelper(\"fold\", \"indent\", function(cm, start) {\n var myIndent = lineIndent(cm, start.line)\n if (myIndent < 0) return\n var lastLineInFold = null\n\n // Go through lines until we find a line that definitely doesn't belong in\n // the block we're folding, or to the end.\n for (var i = start.line + 1, end = cm.lastLine(); i <= end; ++i) {\n var indent = lineIndent(cm, i)\n if (indent == -1) {\n } else if (indent > myIndent) {\n // Lines with a greater indent are considered part of the block.\n lastLineInFold = i;\n } else {\n // If this line has non-space, non-comment content, and is\n // indented less or equal to the start line, it is the start of\n // another block.\n break;\n }\n }\n if (lastLineInFold) return {\n from: CodeMirror.Pos(start.line, cm.getLine(start.line).length),\n to: CodeMirror.Pos(lastLineInFold, cm.getLine(lastLineInFold).length)\n };\n});\n\n});\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.registerHelper(\"fold\", \"markdown\", function(cm, start) {\n var maxDepth = 100;\n\n function isHeader(lineNo) {\n var tokentype = cm.getTokenTypeAt(CodeMirror.Pos(lineNo, 0));\n return tokentype && /\\bheader\\b/.test(tokentype);\n }\n\n function headerLevel(lineNo, line, nextLine) {\n var match = line && line.match(/^#+/);\n if (match && isHeader(lineNo)) return match[0].length;\n match = nextLine && nextLine.match(/^[=\\-]+\\s*$/);\n if (match && isHeader(lineNo + 1)) return nextLine[0] == \"=\" ? 1 : 2;\n return maxDepth;\n }\n\n var firstLine = cm.getLine(start.line), nextLine = cm.getLine(start.line + 1);\n var level = headerLevel(start.line, firstLine, nextLine);\n if (level === maxDepth) return undefined;\n\n var lastLineNo = cm.lastLine();\n var end = start.line, nextNextLine = cm.getLine(end + 2);\n while (end < lastLineNo) {\n if (headerLevel(end + 1, nextLine, nextNextLine) <= level) break;\n ++end;\n nextLine = nextNextLine;\n nextNextLine = cm.getLine(end + 2);\n }\n\n return {\n from: CodeMirror.Pos(start.line, firstLine.length),\n to: CodeMirror.Pos(end, cm.getLine(end).length)\n };\n});\n\n});\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n \"use strict\";\n\n var Pos = CodeMirror.Pos;\n function cmp(a, b) { return a.line - b.line || a.ch - b.ch; }\n\n var nameStartChar = \"A-Z_a-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD\";\n var nameChar = nameStartChar + \"\\-\\:\\.0-9\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040\";\n var xmlTagStart = new RegExp(\"<(/?)([\" + nameStartChar + \"][\" + nameChar + \"]*)\", \"g\");\n\n function Iter(cm, line, ch, range) {\n this.line = line; this.ch = ch;\n this.cm = cm; this.text = cm.getLine(line);\n this.min = range ? Math.max(range.from, cm.firstLine()) : cm.firstLine();\n this.max = range ? Math.min(range.to - 1, cm.lastLine()) : cm.lastLine();\n }\n\n function tagAt(iter, ch) {\n var type = iter.cm.getTokenTypeAt(Pos(iter.line, ch));\n return type && /\\btag\\b/.test(type);\n }\n\n function nextLine(iter) {\n if (iter.line >= iter.max) return;\n iter.ch = 0;\n iter.text = iter.cm.getLine(++iter.line);\n return true;\n }\n function prevLine(iter) {\n if (iter.line <= iter.min) return;\n iter.text = iter.cm.getLine(--iter.line);\n iter.ch = iter.text.length;\n return true;\n }\n\n function toTagEnd(iter) {\n for (;;) {\n var gt = iter.text.indexOf(\">\", iter.ch);\n if (gt == -1) { if (nextLine(iter)) continue; else return; }\n if (!tagAt(iter, gt + 1)) { iter.ch = gt + 1; continue; }\n var lastSlash = iter.text.lastIndexOf(\"/\", gt);\n var selfClose = lastSlash > -1 && !/\\S/.test(iter.text.slice(lastSlash + 1, gt));\n iter.ch = gt + 1;\n return selfClose ? \"selfClose\" : \"regular\";\n }\n }\n function toTagStart(iter) {\n for (;;) {\n var lt = iter.ch ? iter.text.lastIndexOf(\"<\", iter.ch - 1) : -1;\n if (lt == -1) { if (prevLine(iter)) continue; else return; }\n if (!tagAt(iter, lt + 1)) { iter.ch = lt; continue; }\n xmlTagStart.lastIndex = lt;\n iter.ch = lt;\n var match = xmlTagStart.exec(iter.text);\n if (match && match.index == lt) return match;\n }\n }\n\n function toNextTag(iter) {\n for (;;) {\n xmlTagStart.lastIndex = iter.ch;\n var found = xmlTagStart.exec(iter.text);\n if (!found) { if (nextLine(iter)) continue; else return; }\n if (!tagAt(iter, found.index + 1)) { iter.ch = found.index + 1; continue; }\n iter.ch = found.index + found[0].length;\n return found;\n }\n }\n function toPrevTag(iter) {\n for (;;) {\n var gt = iter.ch ? iter.text.lastIndexOf(\">\", iter.ch - 1) : -1;\n if (gt == -1) { if (prevLine(iter)) continue; else return; }\n if (!tagAt(iter, gt + 1)) { iter.ch = gt; continue; }\n var lastSlash = iter.text.lastIndexOf(\"/\", gt);\n var selfClose = lastSlash > -1 && !/\\S/.test(iter.text.slice(lastSlash + 1, gt));\n iter.ch = gt + 1;\n return selfClose ? \"selfClose\" : \"regular\";\n }\n }\n\n function findMatchingClose(iter, tag) {\n var stack = [];\n for (;;) {\n var next = toNextTag(iter), end, startLine = iter.line, startCh = iter.ch - (next ? next[0].length : 0);\n if (!next || !(end = toTagEnd(iter))) return;\n if (end == \"selfClose\") continue;\n if (next[1]) { // closing tag\n for (var i = stack.length - 1; i >= 0; --i) if (stack[i] == next[2]) {\n stack.length = i;\n break;\n }\n if (i < 0 && (!tag || tag == next[2])) return {\n tag: next[2],\n from: Pos(startLine, startCh),\n to: Pos(iter.line, iter.ch)\n };\n } else { // opening tag\n stack.push(next[2]);\n }\n }\n }\n function findMatchingOpen(iter, tag) {\n var stack = [];\n for (;;) {\n var prev = toPrevTag(iter);\n if (!prev) return;\n if (prev == \"selfClose\") { toTagStart(iter); continue; }\n var endLine = iter.line, endCh = iter.ch;\n var start = toTagStart(iter);\n if (!start) return;\n if (start[1]) { // closing tag\n stack.push(start[2]);\n } else { // opening tag\n for (var i = stack.length - 1; i >= 0; --i) if (stack[i] == start[2]) {\n stack.length = i;\n break;\n }\n if (i < 0 && (!tag || tag == start[2])) return {\n tag: start[2],\n from: Pos(iter.line, iter.ch),\n to: Pos(endLine, endCh)\n };\n }\n }\n }\n\n CodeMirror.registerHelper(\"fold\", \"xml\", function(cm, start) {\n var iter = new Iter(cm, start.line, 0);\n for (;;) {\n var openTag = toNextTag(iter)\n if (!openTag || iter.line != start.line) return\n var end = toTagEnd(iter)\n if (!end) return\n if (!openTag[1] && end != \"selfClose\") {\n var startPos = Pos(iter.line, iter.ch);\n var endPos = findMatchingClose(iter, openTag[2]);\n return endPos && cmp(endPos.from, startPos) > 0 ? {from: startPos, to: endPos.from} : null\n }\n }\n });\n CodeMirror.findMatchingTag = function(cm, pos, range) {\n var iter = new Iter(cm, pos.line, pos.ch, range);\n if (iter.text.indexOf(\">\") == -1 && iter.text.indexOf(\"<\") == -1) return;\n var end = toTagEnd(iter), to = end && Pos(iter.line, iter.ch);\n var start = end && toTagStart(iter);\n if (!end || !start || cmp(iter, pos) > 0) return;\n var here = {from: Pos(iter.line, iter.ch), to: to, tag: start[2]};\n if (end == \"selfClose\") return {open: here, close: null, at: \"open\"};\n\n if (start[1]) { // closing tag\n return {open: findMatchingOpen(iter, start[2]), close: here, at: \"close\"};\n } else { // opening tag\n iter = new Iter(cm, to.line, to.ch, range);\n return {open: here, close: findMatchingClose(iter, start[2]), at: \"open\"};\n }\n };\n\n CodeMirror.findEnclosingTag = function(cm, pos, range, tag) {\n var iter = new Iter(cm, pos.line, pos.ch, range);\n for (;;) {\n var open = findMatchingOpen(iter, tag);\n if (!open) break;\n var forward = new Iter(cm, pos.line, pos.ch, range);\n var close = findMatchingClose(forward, open.tag);\n if (close) return {open: open, close: close};\n }\n };\n\n // Used by addon/edit/closetag.js\n CodeMirror.scanForClosingTag = function(cm, pos, name, end) {\n var iter = new Iter(cm, pos.line, pos.ch, end ? {from: 0, to: end} : null);\n return findMatchingClose(iter, name);\n };\n});\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.multiplexingMode = function(outer /*, others */) {\n // Others should be {open, close, mode [, delimStyle] [, innerStyle] [, parseDelimiters]} objects\n var others = Array.prototype.slice.call(arguments, 1);\n\n function indexOf(string, pattern, from, returnEnd) {\n if (typeof pattern == \"string\") {\n var found = string.indexOf(pattern, from);\n return returnEnd && found > -1 ? found + pattern.length : found;\n }\n var m = pattern.exec(from ? string.slice(from) : string);\n return m ? m.index + from + (returnEnd ? m[0].length : 0) : -1;\n }\n\n return {\n startState: function() {\n return {\n outer: CodeMirror.startState(outer),\n innerActive: null,\n inner: null,\n startingInner: false\n };\n },\n\n copyState: function(state) {\n return {\n outer: CodeMirror.copyState(outer, state.outer),\n innerActive: state.innerActive,\n inner: state.innerActive && CodeMirror.copyState(state.innerActive.mode, state.inner),\n startingInner: state.startingInner\n };\n },\n\n token: function(stream, state) {\n if (!state.innerActive) {\n var cutOff = Infinity, oldContent = stream.string;\n for (var i = 0; i < others.length; ++i) {\n var other = others[i];\n var found = indexOf(oldContent, other.open, stream.pos);\n if (found == stream.pos) {\n if (!other.parseDelimiters) stream.match(other.open);\n state.startingInner = !!other.parseDelimiters\n state.innerActive = other;\n\n // Get the outer indent, making sure to handle CodeMirror.Pass\n var outerIndent = 0;\n if (outer.indent) {\n var possibleOuterIndent = outer.indent(state.outer, \"\", \"\");\n if (possibleOuterIndent !== CodeMirror.Pass) outerIndent = possibleOuterIndent;\n }\n\n state.inner = CodeMirror.startState(other.mode, outerIndent);\n return other.delimStyle && (other.delimStyle + \" \" + other.delimStyle + \"-open\");\n } else if (found != -1 && found < cutOff) {\n cutOff = found;\n }\n }\n if (cutOff != Infinity) stream.string = oldContent.slice(0, cutOff);\n var outerToken = outer.token(stream, state.outer);\n if (cutOff != Infinity) stream.string = oldContent;\n return outerToken;\n } else {\n var curInner = state.innerActive, oldContent = stream.string;\n if (!curInner.close && stream.sol()) {\n state.innerActive = state.inner = null;\n return this.token(stream, state);\n }\n var found = curInner.close && !state.startingInner ?\n indexOf(oldContent, curInner.close, stream.pos, curInner.parseDelimiters) : -1;\n if (found == stream.pos && !curInner.parseDelimiters) {\n stream.match(curInner.close);\n state.innerActive = state.inner = null;\n return curInner.delimStyle && (curInner.delimStyle + \" \" + curInner.delimStyle + \"-close\");\n }\n if (found > -1) stream.string = oldContent.slice(0, found);\n var innerToken = curInner.mode.token(stream, state.inner);\n if (found > -1) stream.string = oldContent;\n else if (stream.pos > stream.start) state.startingInner = false\n\n if (found == stream.pos && curInner.parseDelimiters)\n state.innerActive = state.inner = null;\n\n if (curInner.innerStyle) {\n if (innerToken) innerToken = innerToken + \" \" + curInner.innerStyle;\n else innerToken = curInner.innerStyle;\n }\n\n return innerToken;\n }\n },\n\n indent: function(state, textAfter, line) {\n var mode = state.innerActive ? state.innerActive.mode : outer;\n if (!mode.indent) return CodeMirror.Pass;\n return mode.indent(state.innerActive ? state.inner : state.outer, textAfter, line);\n },\n\n blankLine: function(state) {\n var mode = state.innerActive ? state.innerActive.mode : outer;\n if (mode.blankLine) {\n mode.blankLine(state.innerActive ? state.inner : state.outer);\n }\n if (!state.innerActive) {\n for (var i = 0; i < others.length; ++i) {\n var other = others[i];\n if (other.open === \"\\n\") {\n state.innerActive = other;\n state.inner = CodeMirror.startState(other.mode, mode.indent ? mode.indent(state.outer, \"\", \"\") : 0);\n }\n }\n } else if (state.innerActive.close === \"\\n\") {\n state.innerActive = state.inner = null;\n }\n },\n\n electricChars: outer.electricChars,\n\n innerMode: function(state) {\n return state.inner ? {state: state.inner, mode: state.innerActive.mode} : {state: state.outer, mode: outer};\n }\n };\n};\n\n});\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n// Utility function that allows modes to be combined. The mode given\n// as the base argument takes care of most of the normal mode\n// functionality, but a second (typically simple) mode is used, which\n// can override the style of text. Both modes get to parse all of the\n// text, but when both assign a non-null style to a piece of code, the\n// overlay wins, unless the combine argument was true and not overridden,\n// or state.overlay.combineTokens was true, in which case the styles are\n// combined.\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.overlayMode = function(base, overlay, combine) {\n return {\n startState: function() {\n return {\n base: CodeMirror.startState(base),\n overlay: CodeMirror.startState(overlay),\n basePos: 0, baseCur: null,\n overlayPos: 0, overlayCur: null,\n streamSeen: null\n };\n },\n copyState: function(state) {\n return {\n base: CodeMirror.copyState(base, state.base),\n overlay: CodeMirror.copyState(overlay, state.overlay),\n basePos: state.basePos, baseCur: null,\n overlayPos: state.overlayPos, overlayCur: null\n };\n },\n\n token: function(stream, state) {\n if (stream != state.streamSeen ||\n Math.min(state.basePos, state.overlayPos) < stream.start) {\n state.streamSeen = stream;\n state.basePos = state.overlayPos = stream.start;\n }\n\n if (stream.start == state.basePos) {\n state.baseCur = base.token(stream, state.base);\n state.basePos = stream.pos;\n }\n if (stream.start == state.overlayPos) {\n stream.pos = stream.start;\n state.overlayCur = overlay.token(stream, state.overlay);\n state.overlayPos = stream.pos;\n }\n stream.pos = Math.min(state.basePos, state.overlayPos);\n\n // state.overlay.combineTokens always takes precedence over combine,\n // unless set to null\n if (state.overlayCur == null) return state.baseCur;\n else if (state.baseCur != null &&\n state.overlay.combineTokens ||\n combine && state.overlay.combineTokens == null)\n return state.baseCur + \" \" + state.overlayCur;\n else return state.overlayCur;\n },\n\n indent: base.indent && function(state, textAfter, line) {\n return base.indent(state.base, textAfter, line);\n },\n electricChars: base.electricChars,\n\n innerMode: function(state) { return {state: state.base, mode: base}; },\n\n blankLine: function(state) {\n var baseToken, overlayToken;\n if (base.blankLine) baseToken = base.blankLine(state.base);\n if (overlay.blankLine) overlayToken = overlay.blankLine(state.overlay);\n\n return overlayToken == null ?\n baseToken :\n (combine && baseToken != null ? baseToken + \" \" + overlayToken : overlayToken);\n }\n };\n};\n\n});\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n \"use strict\";\n\n CodeMirror.defineSimpleMode = function(name, states) {\n CodeMirror.defineMode(name, function(config) {\n return CodeMirror.simpleMode(config, states);\n });\n };\n\n CodeMirror.simpleMode = function(config, states) {\n ensureState(states, \"start\");\n var states_ = {}, meta = states.meta || {}, hasIndentation = false;\n for (var state in states) if (state != meta && states.hasOwnProperty(state)) {\n var list = states_[state] = [], orig = states[state];\n for (var i = 0; i < orig.length; i++) {\n var data = orig[i];\n list.push(new Rule(data, states));\n if (data.indent || data.dedent) hasIndentation = true;\n }\n }\n var mode = {\n startState: function() {\n return {state: \"start\", pending: null,\n local: null, localState: null,\n indent: hasIndentation ? [] : null};\n },\n copyState: function(state) {\n var s = {state: state.state, pending: state.pending,\n local: state.local, localState: null,\n indent: state.indent && state.indent.slice(0)};\n if (state.localState)\n s.localState = CodeMirror.copyState(state.local.mode, state.localState);\n if (state.stack)\n s.stack = state.stack.slice(0);\n for (var pers = state.persistentStates; pers; pers = pers.next)\n s.persistentStates = {mode: pers.mode,\n spec: pers.spec,\n state: pers.state == state.localState ? s.localState : CodeMirror.copyState(pers.mode, pers.state),\n next: s.persistentStates};\n return s;\n },\n token: tokenFunction(states_, config),\n innerMode: function(state) { return state.local && {mode: state.local.mode, state: state.localState}; },\n indent: indentFunction(states_, meta)\n };\n if (meta) for (var prop in meta) if (meta.hasOwnProperty(prop))\n mode[prop] = meta[prop];\n return mode;\n };\n\n function ensureState(states, name) {\n if (!states.hasOwnProperty(name))\n throw new Error(\"Undefined state \" + name + \" in simple mode\");\n }\n\n function toRegex(val, caret) {\n if (!val) return /(?:)/;\n var flags = \"\";\n if (val instanceof RegExp) {\n if (val.ignoreCase) flags = \"i\";\n if (val.unicode) flags += \"u\"\n val = val.source;\n } else {\n val = String(val);\n }\n return new RegExp((caret === false ? \"\" : \"^\") + \"(?:\" + val + \")\", flags);\n }\n\n function asToken(val) {\n if (!val) return null;\n if (val.apply) return val\n if (typeof val == \"string\") return val.replace(/\\./g, \" \");\n var result = [];\n for (var i = 0; i < val.length; i++)\n result.push(val[i] && val[i].replace(/\\./g, \" \"));\n return result;\n }\n\n function Rule(data, states) {\n if (data.next || data.push) ensureState(states, data.next || data.push);\n this.regex = toRegex(data.regex);\n this.token = asToken(data.token);\n this.data = data;\n }\n\n function tokenFunction(states, config) {\n return function(stream, state) {\n if (state.pending) {\n var pend = state.pending.shift();\n if (state.pending.length == 0) state.pending = null;\n stream.pos += pend.text.length;\n return pend.token;\n }\n\n if (state.local) {\n if (state.local.end && stream.match(state.local.end)) {\n var tok = state.local.endToken || null;\n state.local = state.localState = null;\n return tok;\n } else {\n var tok = state.local.mode.token(stream, state.localState), m;\n if (state.local.endScan && (m = state.local.endScan.exec(stream.current())))\n stream.pos = stream.start + m.index;\n return tok;\n }\n }\n\n var curState = states[state.state];\n for (var i = 0; i < curState.length; i++) {\n var rule = curState[i];\n var matches = (!rule.data.sol || stream.sol()) && stream.match(rule.regex);\n if (matches) {\n if (rule.data.next) {\n state.state = rule.data.next;\n } else if (rule.data.push) {\n (state.stack || (state.stack = [])).push(state.state);\n state.state = rule.data.push;\n } else if (rule.data.pop && state.stack && state.stack.length) {\n state.state = state.stack.pop();\n }\n\n if (rule.data.mode)\n enterLocalMode(config, state, rule.data.mode, rule.token);\n if (rule.data.indent)\n state.indent.push(stream.indentation() + config.indentUnit);\n if (rule.data.dedent)\n state.indent.pop();\n var token = rule.token\n if (token && token.apply) token = token(matches)\n if (matches.length > 2 && rule.token && typeof rule.token != \"string\") {\n for (var j = 2; j < matches.length; j++)\n if (matches[j])\n (state.pending || (state.pending = [])).push({text: matches[j], token: rule.token[j - 1]});\n stream.backUp(matches[0].length - (matches[1] ? matches[1].length : 0));\n return token[0];\n } else if (token && token.join) {\n return token[0];\n } else {\n return token;\n }\n }\n }\n stream.next();\n return null;\n };\n }\n\n function cmp(a, b) {\n if (a === b) return true;\n if (!a || typeof a != \"object\" || !b || typeof b != \"object\") return false;\n var props = 0;\n for (var prop in a) if (a.hasOwnProperty(prop)) {\n if (!b.hasOwnProperty(prop) || !cmp(a[prop], b[prop])) return false;\n props++;\n }\n for (var prop in b) if (b.hasOwnProperty(prop)) props--;\n return props == 0;\n }\n\n function enterLocalMode(config, state, spec, token) {\n var pers;\n if (spec.persistent) for (var p = state.persistentStates; p && !pers; p = p.next)\n if (spec.spec ? cmp(spec.spec, p.spec) : spec.mode == p.mode) pers = p;\n var mode = pers ? pers.mode : spec.mode || CodeMirror.getMode(config, spec.spec);\n var lState = pers ? pers.state : CodeMirror.startState(mode);\n if (spec.persistent && !pers)\n state.persistentStates = {mode: mode, spec: spec.spec, state: lState, next: state.persistentStates};\n\n state.localState = lState;\n state.local = {mode: mode,\n end: spec.end && toRegex(spec.end),\n endScan: spec.end && spec.forceEnd !== false && toRegex(spec.end, false),\n endToken: token && token.join ? token[token.length - 1] : token};\n }\n\n function indexOf(val, arr) {\n for (var i = 0; i < arr.length; i++) if (arr[i] === val) return true;\n }\n\n function indentFunction(states, meta) {\n return function(state, textAfter, line) {\n if (state.local && state.local.mode.indent)\n return state.local.mode.indent(state.localState, textAfter, line);\n if (state.indent == null || state.local || meta.dontIndentStates && indexOf(state.state, meta.dontIndentStates) > -1)\n return CodeMirror.Pass;\n\n var pos = state.indent.length - 1, rules = states[state.state];\n scan: for (;;) {\n for (var i = 0; i < rules.length; i++) {\n var rule = rules[i];\n if (rule.data.dedent && rule.data.dedentIfLineStart !== false) {\n var m = rule.regex.exec(textAfter);\n if (m && m[0]) {\n pos--;\n if (rule.next || rule.push) rules = states[rule.next || rule.push];\n textAfter = textAfter.slice(m[0].length);\n continue scan;\n }\n }\n }\n break;\n }\n return pos < 0 ? 0 : state.indent[pos];\n };\n }\n});\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.runMode = function(string, modespec, callback, options) {\n var mode = CodeMirror.getMode(CodeMirror.defaults, modespec);\n var tabSize = (options && options.tabSize) || CodeMirror.defaults.tabSize;\n\n // Create a tokenizing callback function if passed-in callback is a DOM element.\n if (callback.appendChild) {\n var ie = /MSIE \\d/.test(navigator.userAgent);\n var ie_lt9 = ie && (document.documentMode == null || document.documentMode < 9);\n var node = callback, col = 0;\n node.innerHTML = \"\";\n callback = function(text, style) {\n if (text == \"\\n\") {\n // Emitting LF or CRLF on IE8 or earlier results in an incorrect display.\n // Emitting a carriage return makes everything ok.\n node.appendChild(document.createTextNode(ie_lt9 ? '\\r' : text));\n col = 0;\n return;\n }\n var content = \"\";\n // replace tabs\n for (var pos = 0;;) {\n var idx = text.indexOf(\"\\t\", pos);\n if (idx == -1) {\n content += text.slice(pos);\n col += text.length - pos;\n break;\n } else {\n col += idx - pos;\n content += text.slice(pos, idx);\n var size = tabSize - col % tabSize;\n col += size;\n for (var i = 0; i < size; ++i) content += \" \";\n pos = idx + 1;\n }\n }\n // Create a node with token style and append it to the callback DOM element.\n if (style) {\n var sp = node.appendChild(document.createElement(\"span\"));\n sp.className = \"cm-\" + style.replace(/ +/g, \" cm-\");\n sp.appendChild(document.createTextNode(content));\n } else {\n node.appendChild(document.createTextNode(content));\n }\n };\n }\n\n var lines = CodeMirror.splitLines(string), state = (options && options.state) || CodeMirror.startState(mode);\n for (var i = 0, e = lines.length; i < e; ++i) {\n if (i) callback(\"\\n\");\n var stream = new CodeMirror.StringStream(lines[i], null, {\n lookAhead: function(n) { return lines[i + n] },\n baseToken: function() {}\n });\n if (!stream.string && mode.blankLine) mode.blankLine(state);\n while (!stream.eol()) {\n var style = mode.token(stream, state);\n callback(stream.current(), style, i, stream.start, state, mode);\n stream.start = stream.pos;\n }\n }\n};\n\n});\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n \"use strict\";\n\n CodeMirror.defineOption(\"scrollPastEnd\", false, function(cm, val, old) {\n if (old && old != CodeMirror.Init) {\n cm.off(\"change\", onChange);\n cm.off(\"refresh\", updateBottomMargin);\n cm.display.lineSpace.parentNode.style.paddingBottom = \"\";\n cm.state.scrollPastEndPadding = null;\n }\n if (val) {\n cm.on(\"change\", onChange);\n cm.on(\"refresh\", updateBottomMargin);\n updateBottomMargin(cm);\n }\n });\n\n function onChange(cm, change) {\n if (CodeMirror.changeEnd(change).line == cm.lastLine())\n updateBottomMargin(cm);\n }\n\n function updateBottomMargin(cm) {\n var padding = \"\";\n if (cm.lineCount() > 1) {\n var totalH = cm.display.scroller.clientHeight - 30,\n lastLineH = cm.getLineHandle(cm.lastLine()).height;\n padding = (totalH - lastLineH) + \"px\";\n }\n if (cm.state.scrollPastEndPadding != padding) {\n cm.state.scrollPastEndPadding = padding;\n cm.display.lineSpace.parentNode.style.paddingBottom = padding;\n cm.off(\"refresh\", updateBottomMargin);\n cm.setSize();\n cm.on(\"refresh\", updateBottomMargin);\n }\n }\n});\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n// Defines jumpToLine command. Uses dialog.js if present.\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"), require(\"../dialog/dialog\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\", \"../dialog/dialog\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n \"use strict\";\n\n // default search panel location\n CodeMirror.defineOption(\"search\", {bottom: false});\n\n function dialog(cm, text, shortText, deflt, f) {\n if (cm.openDialog) cm.openDialog(text, f, {value: deflt, selectValueOnOpen: true, bottom: cm.options.search.bottom});\n else f(prompt(shortText, deflt));\n }\n\n function getJumpDialog(cm) {\n return cm.phrase(\"Jump to line:\") + ' ' + cm.phrase(\"(Use line:column or scroll% syntax)\") + '';\n }\n\n function interpretLine(cm, string) {\n var num = Number(string)\n if (/^[-+]/.test(string)) return cm.getCursor().line + num\n else return num - 1\n }\n\n CodeMirror.commands.jumpToLine = function(cm) {\n var cur = cm.getCursor();\n dialog(cm, getJumpDialog(cm), cm.phrase(\"Jump to line:\"), (cur.line + 1) + \":\" + cur.ch, function(posStr) {\n if (!posStr) return;\n\n var match;\n if (match = /^\\s*([\\+\\-]?\\d+)\\s*\\:\\s*(\\d+)\\s*$/.exec(posStr)) {\n cm.setCursor(interpretLine(cm, match[1]), Number(match[2]))\n } else if (match = /^\\s*([\\+\\-]?\\d+(\\.\\d+)?)\\%\\s*/.exec(posStr)) {\n var line = Math.round(cm.lineCount() * Number(match[1]) / 100);\n if (/^[-+]/.test(match[1])) line = cur.line + line + 1;\n cm.setCursor(line - 1, cur.ch);\n } else if (match = /^\\s*\\:?\\s*([\\+\\-]?\\d+)\\s*/.exec(posStr)) {\n cm.setCursor(interpretLine(cm, match[1]), cur.ch);\n }\n });\n };\n\n CodeMirror.keyMap[\"default\"][\"Alt-G\"] = \"jumpToLine\";\n});\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n// Define search commands. Depends on dialog.js or another\n// implementation of the openDialog method.\n\n// Replace works a little oddly -- it will do the replace on the next\n// Ctrl-G (or whatever is bound to findNext) press. You prevent a\n// replace by making sure the match is no longer selected when hitting\n// Ctrl-G.\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"), require(\"./searchcursor\"), require(\"../dialog/dialog\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\", \"./searchcursor\", \"../dialog/dialog\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n \"use strict\";\n\n // default search panel location\n CodeMirror.defineOption(\"search\", {bottom: false});\n\n function searchOverlay(query, caseInsensitive) {\n if (typeof query == \"string\")\n query = new RegExp(query.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, \"\\\\$&\"), caseInsensitive ? \"gi\" : \"g\");\n else if (!query.global)\n query = new RegExp(query.source, query.ignoreCase ? \"gi\" : \"g\");\n\n return {token: function(stream) {\n query.lastIndex = stream.pos;\n var match = query.exec(stream.string);\n if (match && match.index == stream.pos) {\n stream.pos += match[0].length || 1;\n return \"searching\";\n } else if (match) {\n stream.pos = match.index;\n } else {\n stream.skipToEnd();\n }\n }};\n }\n\n function SearchState() {\n this.posFrom = this.posTo = this.lastQuery = this.query = null;\n this.overlay = null;\n }\n\n function getSearchState(cm) {\n return cm.state.search || (cm.state.search = new SearchState());\n }\n\n function queryCaseInsensitive(query) {\n return typeof query == \"string\" && query == query.toLowerCase();\n }\n\n function getSearchCursor(cm, query, pos) {\n // Heuristic: if the query string is all lowercase, do a case insensitive search.\n return cm.getSearchCursor(query, pos, {caseFold: queryCaseInsensitive(query), multiline: true});\n }\n\n function persistentDialog(cm, text, deflt, onEnter, onKeyDown) {\n cm.openDialog(text, onEnter, {\n value: deflt,\n selectValueOnOpen: true,\n closeOnEnter: false,\n onClose: function() { clearSearch(cm); },\n onKeyDown: onKeyDown,\n bottom: cm.options.search.bottom\n });\n }\n\n function dialog(cm, text, shortText, deflt, f) {\n if (cm.openDialog) cm.openDialog(text, f, {value: deflt, selectValueOnOpen: true, bottom: cm.options.search.bottom});\n else f(prompt(shortText, deflt));\n }\n\n function confirmDialog(cm, text, shortText, fs) {\n if (cm.openConfirm) cm.openConfirm(text, fs);\n else if (confirm(shortText)) fs[0]();\n }\n\n function parseString(string) {\n return string.replace(/\\\\([nrt\\\\])/g, function(match, ch) {\n if (ch == \"n\") return \"\\n\"\n if (ch == \"r\") return \"\\r\"\n if (ch == \"t\") return \"\\t\"\n if (ch == \"\\\\\") return \"\\\\\"\n return match\n })\n }\n\n function parseQuery(query) {\n var isRE = query.match(/^\\/(.*)\\/([a-z]*)$/);\n if (isRE) {\n try { query = new RegExp(isRE[1], isRE[2].indexOf(\"i\") == -1 ? \"\" : \"i\"); }\n catch(e) {} // Not a regular expression after all, do a string search\n } else {\n query = parseString(query)\n }\n if (typeof query == \"string\" ? query == \"\" : query.test(\"\"))\n query = /x^/;\n return query;\n }\n\n function startSearch(cm, state, query) {\n state.queryText = query;\n state.query = parseQuery(query);\n cm.removeOverlay(state.overlay, queryCaseInsensitive(state.query));\n state.overlay = searchOverlay(state.query, queryCaseInsensitive(state.query));\n cm.addOverlay(state.overlay);\n if (cm.showMatchesOnScrollbar) {\n if (state.annotate) { state.annotate.clear(); state.annotate = null; }\n state.annotate = cm.showMatchesOnScrollbar(state.query, queryCaseInsensitive(state.query));\n }\n }\n\n function doSearch(cm, rev, persistent, immediate) {\n var state = getSearchState(cm);\n if (state.query) return findNext(cm, rev);\n var q = cm.getSelection() || state.lastQuery;\n if (q instanceof RegExp && q.source == \"x^\") q = null\n if (persistent && cm.openDialog) {\n var hiding = null\n var searchNext = function(query, event) {\n CodeMirror.e_stop(event);\n if (!query) return;\n if (query != state.queryText) {\n startSearch(cm, state, query);\n state.posFrom = state.posTo = cm.getCursor();\n }\n if (hiding) hiding.style.opacity = 1\n findNext(cm, event.shiftKey, function(_, to) {\n var dialog\n if (to.line < 3 && document.querySelector &&\n (dialog = cm.display.wrapper.querySelector(\".CodeMirror-dialog\")) &&\n dialog.getBoundingClientRect().bottom - 4 > cm.cursorCoords(to, \"window\").top)\n (hiding = dialog).style.opacity = .4\n })\n };\n persistentDialog(cm, getQueryDialog(cm), q, searchNext, function(event, query) {\n var keyName = CodeMirror.keyName(event)\n var extra = cm.getOption('extraKeys'), cmd = (extra && extra[keyName]) || CodeMirror.keyMap[cm.getOption(\"keyMap\")][keyName]\n if (cmd == \"findNext\" || cmd == \"findPrev\" ||\n cmd == \"findPersistentNext\" || cmd == \"findPersistentPrev\") {\n CodeMirror.e_stop(event);\n startSearch(cm, getSearchState(cm), query);\n cm.execCommand(cmd);\n } else if (cmd == \"find\" || cmd == \"findPersistent\") {\n CodeMirror.e_stop(event);\n searchNext(query, event);\n }\n });\n if (immediate && q) {\n startSearch(cm, state, q);\n findNext(cm, rev);\n }\n } else {\n dialog(cm, getQueryDialog(cm), \"Search for:\", q, function(query) {\n if (query && !state.query) cm.operation(function() {\n startSearch(cm, state, query);\n state.posFrom = state.posTo = cm.getCursor();\n findNext(cm, rev);\n });\n });\n }\n }\n\n function findNext(cm, rev, callback) {cm.operation(function() {\n var state = getSearchState(cm);\n var cursor = getSearchCursor(cm, state.query, rev ? state.posFrom : state.posTo);\n if (!cursor.find(rev)) {\n cursor = getSearchCursor(cm, state.query, rev ? CodeMirror.Pos(cm.lastLine()) : CodeMirror.Pos(cm.firstLine(), 0));\n if (!cursor.find(rev)) return;\n }\n cm.setSelection(cursor.from(), cursor.to());\n cm.scrollIntoView({from: cursor.from(), to: cursor.to()}, 20);\n state.posFrom = cursor.from(); state.posTo = cursor.to();\n if (callback) callback(cursor.from(), cursor.to())\n });}\n\n function clearSearch(cm) {cm.operation(function() {\n var state = getSearchState(cm);\n state.lastQuery = state.query;\n if (!state.query) return;\n state.query = state.queryText = null;\n cm.removeOverlay(state.overlay);\n if (state.annotate) { state.annotate.clear(); state.annotate = null; }\n });}\n\n\n function getQueryDialog(cm) {\n return '' + cm.phrase(\"Search:\") + ' ' + cm.phrase(\"(Use /re/ syntax for regexp search)\") + '';\n }\n function getReplaceQueryDialog(cm) {\n return ' ' + cm.phrase(\"(Use /re/ syntax for regexp search)\") + '';\n }\n function getReplacementQueryDialog(cm) {\n return '' + cm.phrase(\"With:\") + ' ';\n }\n function getDoReplaceConfirm(cm) {\n return '' + cm.phrase(\"Replace?\") + ' ';\n }\n\n function replaceAll(cm, query, text) {\n cm.operation(function() {\n for (var cursor = getSearchCursor(cm, query); cursor.findNext();) {\n if (typeof query != \"string\") {\n var match = cm.getRange(cursor.from(), cursor.to()).match(query);\n cursor.replace(text.replace(/\\$(\\d)/g, function(_, i) {return match[i];}));\n } else cursor.replace(text);\n }\n });\n }\n\n function replace(cm, all) {\n if (cm.getOption(\"readOnly\")) return;\n var query = cm.getSelection() || getSearchState(cm).lastQuery;\n var dialogText = '' + (all ? cm.phrase(\"Replace all:\") : cm.phrase(\"Replace:\")) + '';\n dialog(cm, dialogText + getReplaceQueryDialog(cm), dialogText, query, function(query) {\n if (!query) return;\n query = parseQuery(query);\n dialog(cm, getReplacementQueryDialog(cm), cm.phrase(\"Replace with:\"), \"\", function(text) {\n text = parseString(text)\n if (all) {\n replaceAll(cm, query, text)\n } else {\n clearSearch(cm);\n var cursor = getSearchCursor(cm, query, cm.getCursor(\"from\"));\n var advance = function() {\n var start = cursor.from(), match;\n if (!(match = cursor.findNext())) {\n cursor = getSearchCursor(cm, query);\n if (!(match = cursor.findNext()) ||\n (start && cursor.from().line == start.line && cursor.from().ch == start.ch)) return;\n }\n cm.setSelection(cursor.from(), cursor.to());\n cm.scrollIntoView({from: cursor.from(), to: cursor.to()});\n confirmDialog(cm, getDoReplaceConfirm(cm), cm.phrase(\"Replace?\"),\n [function() {doReplace(match);}, advance,\n function() {replaceAll(cm, query, text)}]);\n };\n var doReplace = function(match) {\n cursor.replace(typeof query == \"string\" ? text :\n text.replace(/\\$(\\d)/g, function(_, i) {return match[i];}));\n advance();\n };\n advance();\n }\n });\n });\n }\n\n CodeMirror.commands.find = function(cm) {clearSearch(cm); doSearch(cm);};\n CodeMirror.commands.findPersistent = function(cm) {clearSearch(cm); doSearch(cm, false, true);};\n CodeMirror.commands.findPersistentNext = function(cm) {doSearch(cm, false, true, true);};\n CodeMirror.commands.findPersistentPrev = function(cm) {doSearch(cm, true, true, true);};\n CodeMirror.commands.findNext = doSearch;\n CodeMirror.commands.findPrev = function(cm) {doSearch(cm, true);};\n CodeMirror.commands.clearSearch = clearSearch;\n CodeMirror.commands.replace = replace;\n CodeMirror.commands.replaceAll = function(cm) {replace(cm, true);};\n});\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n \"use strict\";\n var WRAP_CLASS = \"CodeMirror-activeline\";\n var BACK_CLASS = \"CodeMirror-activeline-background\";\n var GUTT_CLASS = \"CodeMirror-activeline-gutter\";\n\n CodeMirror.defineOption(\"styleActiveLine\", false, function(cm, val, old) {\n var prev = old == CodeMirror.Init ? false : old;\n if (val == prev) return\n if (prev) {\n cm.off(\"beforeSelectionChange\", selectionChange);\n clearActiveLines(cm);\n delete cm.state.activeLines;\n }\n if (val) {\n cm.state.activeLines = [];\n updateActiveLines(cm, cm.listSelections());\n cm.on(\"beforeSelectionChange\", selectionChange);\n }\n });\n\n function clearActiveLines(cm) {\n for (var i = 0; i < cm.state.activeLines.length; i++) {\n cm.removeLineClass(cm.state.activeLines[i], \"wrap\", WRAP_CLASS);\n cm.removeLineClass(cm.state.activeLines[i], \"background\", BACK_CLASS);\n cm.removeLineClass(cm.state.activeLines[i], \"gutter\", GUTT_CLASS);\n }\n }\n\n function sameArray(a, b) {\n if (a.length != b.length) return false;\n for (var i = 0; i < a.length; i++)\n if (a[i] != b[i]) return false;\n return true;\n }\n\n function updateActiveLines(cm, ranges) {\n var active = [];\n for (var i = 0; i < ranges.length; i++) {\n var range = ranges[i];\n var option = cm.getOption(\"styleActiveLine\");\n if (typeof option == \"object\" && option.nonEmpty ? range.anchor.line != range.head.line : !range.empty())\n continue\n var line = cm.getLineHandleVisualStart(range.head.line);\n if (active[active.length - 1] != line) active.push(line);\n }\n if (sameArray(cm.state.activeLines, active)) return;\n cm.operation(function() {\n clearActiveLines(cm);\n for (var i = 0; i < active.length; i++) {\n cm.addLineClass(active[i], \"wrap\", WRAP_CLASS);\n cm.addLineClass(active[i], \"background\", BACK_CLASS);\n cm.addLineClass(active[i], \"gutter\", GUTT_CLASS);\n }\n cm.state.activeLines = active;\n });\n }\n\n function selectionChange(cm, sel) {\n updateActiveLines(cm, sel.ranges);\n }\n});\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n// Because sometimes you need to mark the selected *text*.\n//\n// Adds an option 'styleSelectedText' which, when enabled, gives\n// selected text the CSS class given as option value, or\n// \"CodeMirror-selectedtext\" when the value is not a string.\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n \"use strict\";\n\n CodeMirror.defineOption(\"styleSelectedText\", false, function(cm, val, old) {\n var prev = old && old != CodeMirror.Init;\n if (val && !prev) {\n cm.state.markedSelection = [];\n cm.state.markedSelectionStyle = typeof val == \"string\" ? val : \"CodeMirror-selectedtext\";\n reset(cm);\n cm.on(\"cursorActivity\", onCursorActivity);\n cm.on(\"change\", onChange);\n } else if (!val && prev) {\n cm.off(\"cursorActivity\", onCursorActivity);\n cm.off(\"change\", onChange);\n clear(cm);\n cm.state.markedSelection = cm.state.markedSelectionStyle = null;\n }\n });\n\n function onCursorActivity(cm) {\n if (cm.state.markedSelection)\n cm.operation(function() { update(cm); });\n }\n\n function onChange(cm) {\n if (cm.state.markedSelection && cm.state.markedSelection.length)\n cm.operation(function() { clear(cm); });\n }\n\n var CHUNK_SIZE = 8;\n var Pos = CodeMirror.Pos;\n var cmp = CodeMirror.cmpPos;\n\n function coverRange(cm, from, to, addAt) {\n if (cmp(from, to) == 0) return;\n var array = cm.state.markedSelection;\n var cls = cm.state.markedSelectionStyle;\n for (var line = from.line;;) {\n var start = line == from.line ? from : Pos(line, 0);\n var endLine = line + CHUNK_SIZE, atEnd = endLine >= to.line;\n var end = atEnd ? to : Pos(endLine, 0);\n var mark = cm.markText(start, end, {className: cls});\n if (addAt == null) array.push(mark);\n else array.splice(addAt++, 0, mark);\n if (atEnd) break;\n line = endLine;\n }\n }\n\n function clear(cm) {\n var array = cm.state.markedSelection;\n for (var i = 0; i < array.length; ++i) array[i].clear();\n array.length = 0;\n }\n\n function reset(cm) {\n clear(cm);\n var ranges = cm.listSelections();\n for (var i = 0; i < ranges.length; i++)\n coverRange(cm, ranges[i].from(), ranges[i].to());\n }\n\n function update(cm) {\n if (!cm.somethingSelected()) return clear(cm);\n if (cm.listSelections().length > 1) return reset(cm);\n\n var from = cm.getCursor(\"start\"), to = cm.getCursor(\"end\");\n\n var array = cm.state.markedSelection;\n if (!array.length) return coverRange(cm, from, to);\n\n var coverStart = array[0].find(), coverEnd = array[array.length - 1].find();\n if (!coverStart || !coverEnd || to.line - from.line <= CHUNK_SIZE ||\n cmp(from, coverEnd.to) >= 0 || cmp(to, coverStart.from) <= 0)\n return reset(cm);\n\n while (cmp(from, coverStart.from) > 0) {\n array.shift().clear();\n coverStart = array[0].find();\n }\n if (cmp(from, coverStart.from) < 0) {\n if (coverStart.to.line - from.line < CHUNK_SIZE) {\n array.shift().clear();\n coverRange(cm, from, coverStart.to, 0);\n } else {\n coverRange(cm, from, coverStart.from, 0);\n }\n }\n\n while (cmp(to, coverEnd.to) < 0) {\n array.pop().clear();\n coverEnd = array[array.length - 1].find();\n }\n if (cmp(to, coverEnd.to) > 0) {\n if (to.line - coverEnd.from.line < CHUNK_SIZE) {\n array.pop().clear();\n coverRange(cm, coverEnd.from, to);\n } else {\n coverRange(cm, coverEnd.to, to);\n }\n }\n }\n});\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n \"use strict\";\n\n CodeMirror.defineOption(\"selectionPointer\", false, function(cm, val) {\n var data = cm.state.selectionPointer;\n if (data) {\n CodeMirror.off(cm.getWrapperElement(), \"mousemove\", data.mousemove);\n CodeMirror.off(cm.getWrapperElement(), \"mouseout\", data.mouseout);\n CodeMirror.off(window, \"scroll\", data.windowScroll);\n cm.off(\"cursorActivity\", reset);\n cm.off(\"scroll\", reset);\n cm.state.selectionPointer = null;\n cm.display.lineDiv.style.cursor = \"\";\n }\n if (val) {\n data = cm.state.selectionPointer = {\n value: typeof val == \"string\" ? val : \"default\",\n mousemove: function(event) { mousemove(cm, event); },\n mouseout: function(event) { mouseout(cm, event); },\n windowScroll: function() { reset(cm); },\n rects: null,\n mouseX: null, mouseY: null,\n willUpdate: false\n };\n CodeMirror.on(cm.getWrapperElement(), \"mousemove\", data.mousemove);\n CodeMirror.on(cm.getWrapperElement(), \"mouseout\", data.mouseout);\n CodeMirror.on(window, \"scroll\", data.windowScroll);\n cm.on(\"cursorActivity\", reset);\n cm.on(\"scroll\", reset);\n }\n });\n\n function mousemove(cm, event) {\n var data = cm.state.selectionPointer;\n if (event.buttons == null ? event.which : event.buttons) {\n data.mouseX = data.mouseY = null;\n } else {\n data.mouseX = event.clientX;\n data.mouseY = event.clientY;\n }\n scheduleUpdate(cm);\n }\n\n function mouseout(cm, event) {\n if (!cm.getWrapperElement().contains(event.relatedTarget)) {\n var data = cm.state.selectionPointer;\n data.mouseX = data.mouseY = null;\n scheduleUpdate(cm);\n }\n }\n\n function reset(cm) {\n cm.state.selectionPointer.rects = null;\n scheduleUpdate(cm);\n }\n\n function scheduleUpdate(cm) {\n if (!cm.state.selectionPointer.willUpdate) {\n cm.state.selectionPointer.willUpdate = true;\n setTimeout(function() {\n update(cm);\n cm.state.selectionPointer.willUpdate = false;\n }, 50);\n }\n }\n\n function update(cm) {\n var data = cm.state.selectionPointer;\n if (!data) return;\n if (data.rects == null && data.mouseX != null) {\n data.rects = [];\n if (cm.somethingSelected()) {\n for (var sel = cm.display.selectionDiv.firstChild; sel; sel = sel.nextSibling)\n data.rects.push(sel.getBoundingClientRect());\n }\n }\n var inside = false;\n if (data.mouseX != null) for (var i = 0; i < data.rects.length; i++) {\n var rect = data.rects[i];\n if (rect.left <= data.mouseX && rect.right >= data.mouseX &&\n rect.top <= data.mouseY && rect.bottom >= data.mouseY)\n inside = true;\n }\n var cursor = inside ? data.value : \"\";\n if (cm.display.lineDiv.style.cursor != cursor)\n cm.display.lineDiv.style.cursor = cursor;\n }\n});\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../lib/codemirror\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../lib/codemirror\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n \"use strict\";\n\n var cmds = CodeMirror.commands;\n var Pos = CodeMirror.Pos;\n function posEq(a, b) { return a.line == b.line && a.ch == b.ch; }\n\n // Kill 'ring'\n\n var killRing = [];\n function addToRing(str) {\n killRing.push(str);\n if (killRing.length > 50) killRing.shift();\n }\n function growRingTop(str) {\n if (!killRing.length) return addToRing(str);\n killRing[killRing.length - 1] += str;\n }\n function getFromRing(n) { return killRing[killRing.length - (n ? Math.min(n, 1) : 1)] || \"\"; }\n function popFromRing() { if (killRing.length > 1) killRing.pop(); return getFromRing(); }\n\n var lastKill = null;\n\n // Internal generic kill function, used by several mapped kill \"family\" functions.\n function _kill(cm, from, to, ring, text) {\n if (text == null) text = cm.getRange(from, to);\n\n if (ring == \"grow\" && lastKill && lastKill.cm == cm && posEq(from, lastKill.pos) && cm.isClean(lastKill.gen))\n growRingTop(text);\n else if (ring !== false)\n addToRing(text);\n cm.replaceRange(\"\", from, to, \"+delete\");\n\n if (ring == \"grow\") lastKill = {cm: cm, pos: from, gen: cm.changeGeneration()};\n else lastKill = null;\n }\n\n // Boundaries of various units\n\n function byChar(cm, pos, dir) {\n return cm.findPosH(pos, dir, \"char\", true);\n }\n\n function byWord(cm, pos, dir) {\n return cm.findPosH(pos, dir, \"word\", true);\n }\n\n function byLine(cm, pos, dir) {\n return cm.findPosV(pos, dir, \"line\", cm.doc.sel.goalColumn);\n }\n\n function byPage(cm, pos, dir) {\n return cm.findPosV(pos, dir, \"page\", cm.doc.sel.goalColumn);\n }\n\n function byParagraph(cm, pos, dir) {\n var no = pos.line, line = cm.getLine(no);\n var sawText = /\\S/.test(dir < 0 ? line.slice(0, pos.ch) : line.slice(pos.ch));\n var fst = cm.firstLine(), lst = cm.lastLine();\n for (;;) {\n no += dir;\n if (no < fst || no > lst)\n return cm.clipPos(Pos(no - dir, dir < 0 ? 0 : null));\n line = cm.getLine(no);\n var hasText = /\\S/.test(line);\n if (hasText) sawText = true;\n else if (sawText) return Pos(no, 0);\n }\n }\n\n function bySentence(cm, pos, dir) {\n var line = pos.line, ch = pos.ch;\n var text = cm.getLine(pos.line), sawWord = false;\n for (;;) {\n var next = text.charAt(ch + (dir < 0 ? -1 : 0));\n if (!next) { // End/beginning of line reached\n if (line == (dir < 0 ? cm.firstLine() : cm.lastLine())) return Pos(line, ch);\n text = cm.getLine(line + dir);\n if (!/\\S/.test(text)) return Pos(line, ch);\n line += dir;\n ch = dir < 0 ? text.length : 0;\n continue;\n }\n if (sawWord && /[!?.]/.test(next)) return Pos(line, ch + (dir > 0 ? 1 : 0));\n if (!sawWord) sawWord = /\\w/.test(next);\n ch += dir;\n }\n }\n\n function byExpr(cm, pos, dir) {\n var wrap;\n if (cm.findMatchingBracket && (wrap = cm.findMatchingBracket(pos, {strict: true}))\n && wrap.match && (wrap.forward ? 1 : -1) == dir)\n return dir > 0 ? Pos(wrap.to.line, wrap.to.ch + 1) : wrap.to;\n\n for (var first = true;; first = false) {\n var token = cm.getTokenAt(pos);\n var after = Pos(pos.line, dir < 0 ? token.start : token.end);\n if (first && dir > 0 && token.end == pos.ch || !/\\w/.test(token.string)) {\n var newPos = cm.findPosH(after, dir, \"char\");\n if (posEq(after, newPos)) return pos;\n else pos = newPos;\n } else {\n return after;\n }\n }\n }\n\n // Prefixes (only crudely supported)\n\n function getPrefix(cm, precise) {\n var digits = cm.state.emacsPrefix;\n if (!digits) return precise ? null : 1;\n clearPrefix(cm);\n return digits == \"-\" ? -1 : Number(digits);\n }\n\n function repeated(cmd) {\n var f = typeof cmd == \"string\" ? function(cm) { cm.execCommand(cmd); } : cmd;\n return function(cm) {\n var prefix = getPrefix(cm);\n f(cm);\n for (var i = 1; i < prefix; ++i) f(cm);\n };\n }\n\n function findEnd(cm, pos, by, dir) {\n var prefix = getPrefix(cm);\n if (prefix < 0) { dir = -dir; prefix = -prefix; }\n for (var i = 0; i < prefix; ++i) {\n var newPos = by(cm, pos, dir);\n if (posEq(newPos, pos)) break;\n pos = newPos;\n }\n return pos;\n }\n\n function move(by, dir) {\n var f = function(cm) {\n cm.extendSelection(findEnd(cm, cm.getCursor(), by, dir));\n };\n f.motion = true;\n return f;\n }\n\n function killTo(cm, by, dir, ring) {\n var selections = cm.listSelections(), cursor;\n var i = selections.length;\n while (i--) {\n cursor = selections[i].head;\n _kill(cm, cursor, findEnd(cm, cursor, by, dir), ring);\n }\n }\n\n function _killRegion(cm, ring) {\n if (cm.somethingSelected()) {\n var selections = cm.listSelections(), selection;\n var i = selections.length;\n while (i--) {\n selection = selections[i];\n _kill(cm, selection.anchor, selection.head, ring);\n }\n return true;\n }\n }\n\n function addPrefix(cm, digit) {\n if (cm.state.emacsPrefix) {\n if (digit != \"-\") cm.state.emacsPrefix += digit;\n return;\n }\n // Not active yet\n cm.state.emacsPrefix = digit;\n cm.on(\"keyHandled\", maybeClearPrefix);\n cm.on(\"inputRead\", maybeDuplicateInput);\n }\n\n var prefixPreservingKeys = {\"Alt-G\": true, \"Ctrl-X\": true, \"Ctrl-Q\": true, \"Ctrl-U\": true};\n\n function maybeClearPrefix(cm, arg) {\n if (!cm.state.emacsPrefixMap && !prefixPreservingKeys.hasOwnProperty(arg))\n clearPrefix(cm);\n }\n\n function clearPrefix(cm) {\n cm.state.emacsPrefix = null;\n cm.off(\"keyHandled\", maybeClearPrefix);\n cm.off(\"inputRead\", maybeDuplicateInput);\n }\n\n function maybeDuplicateInput(cm, event) {\n var dup = getPrefix(cm);\n if (dup > 1 && event.origin == \"+input\") {\n var one = event.text.join(\"\\n\"), txt = \"\";\n for (var i = 1; i < dup; ++i) txt += one;\n cm.replaceSelection(txt);\n }\n }\n\n function maybeRemovePrefixMap(cm, arg) {\n if (typeof arg == \"string\" && (/^\\d$/.test(arg) || arg == \"Ctrl-U\")) return;\n cm.removeKeyMap(prefixMap);\n cm.state.emacsPrefixMap = false;\n cm.off(\"keyHandled\", maybeRemovePrefixMap);\n cm.off(\"inputRead\", maybeRemovePrefixMap);\n }\n\n // Utilities\n\n cmds.setMark = function (cm) {\n cm.setCursor(cm.getCursor());\n cm.setExtending(!cm.getExtending());\n cm.on(\"change\", function() { cm.setExtending(false); });\n }\n\n function clearMark(cm) {\n cm.setExtending(false);\n cm.setCursor(cm.getCursor());\n }\n\n function makePrompt(msg) {\n var fragment = document.createDocumentFragment();\n var input = document.createElement(\"input\");\n input.setAttribute(\"type\", \"text\");\n input.style.width = \"10em\";\n fragment.appendChild(document.createTextNode(msg + \": \"));\n fragment.appendChild(input);\n return fragment;\n }\n\n function getInput(cm, msg, f) {\n if (cm.openDialog)\n cm.openDialog(makePrompt(msg), f, {bottom: true});\n else\n f(prompt(msg, \"\"));\n }\n\n function operateOnWord(cm, op) {\n var start = cm.getCursor(), end = cm.findPosH(start, 1, \"word\");\n cm.replaceRange(op(cm.getRange(start, end)), start, end);\n cm.setCursor(end);\n }\n\n function toEnclosingExpr(cm) {\n var pos = cm.getCursor(), line = pos.line, ch = pos.ch;\n var stack = [];\n while (line >= cm.firstLine()) {\n var text = cm.getLine(line);\n for (var i = ch == null ? text.length : ch; i > 0;) {\n var ch = text.charAt(--i);\n if (ch == \")\")\n stack.push(\"(\");\n else if (ch == \"]\")\n stack.push(\"[\");\n else if (ch == \"}\")\n stack.push(\"{\");\n else if (/[\\(\\{\\[]/.test(ch) && (!stack.length || stack.pop() != ch))\n return cm.extendSelection(Pos(line, i));\n }\n --line; ch = null;\n }\n }\n\n // Commands. Names should match emacs function names (albeit in camelCase)\n // except where emacs function names collide with code mirror core commands.\n\n cmds.killRegion = function(cm) {\n _kill(cm, cm.getCursor(\"start\"), cm.getCursor(\"end\"), true);\n };\n\n // Maps to emacs kill-line\n cmds.killLineEmacs = repeated(function(cm) {\n var start = cm.getCursor(), end = cm.clipPos(Pos(start.line));\n var text = cm.getRange(start, end);\n if (!/\\S/.test(text)) {\n text += \"\\n\";\n end = Pos(start.line + 1, 0);\n }\n _kill(cm, start, end, \"grow\", text);\n });\n\n cmds.killRingSave = function(cm) {\n addToRing(cm.getSelection());\n clearMark(cm);\n };\n\n cmds.yank = function(cm) {\n var start = cm.getCursor();\n cm.replaceRange(getFromRing(getPrefix(cm)), start, start, \"paste\");\n cm.setSelection(start, cm.getCursor());\n };\n\n cmds.yankPop = function(cm) {\n cm.replaceSelection(popFromRing(), \"around\", \"paste\");\n };\n\n cmds.forwardChar = move(byChar, 1);\n\n cmds.backwardChar = move(byChar, -1)\n\n cmds.deleteChar = function(cm) { killTo(cm, byChar, 1, false); };\n\n cmds.deleteForwardChar = function(cm) {\n _killRegion(cm, false) || killTo(cm, byChar, 1, false);\n };\n\n cmds.deleteBackwardChar = function(cm) {\n _killRegion(cm, false) || killTo(cm, byChar, -1, false);\n };\n\n cmds.forwardWord = move(byWord, 1);\n\n cmds.backwardWord = move(byWord, -1);\n\n cmds.killWord = function(cm) { killTo(cm, byWord, 1, \"grow\"); };\n\n cmds.backwardKillWord = function(cm) { killTo(cm, byWord, -1, \"grow\"); };\n\n cmds.nextLine = move(byLine, 1);\n\n cmds.previousLine = move(byLine, -1);\n\n cmds.scrollDownCommand = move(byPage, 1);\n\n cmds.scrollUpCommand = move(byPage, -1);\n\n cmds.backwardParagraph = move(byParagraph, -1);\n\n cmds.forwardParagraph = move(byParagraph, 1);\n\n cmds.backwardSentence = move(bySentence, -1);\n\n cmds.forwardSentence = move(bySentence, 1);\n\n cmds.killSentence = function(cm) { killTo(cm, bySentence, 1, \"grow\"); };\n\n cmds.backwardKillSentence = function(cm) {\n _kill(cm, cm.getCursor(), bySentence(cm, cm.getCursor(), 1), \"grow\");\n };\n\n cmds.killSexp = function(cm) { killTo(cm, byExpr, 1, \"grow\"); };\n\n cmds.backwardKillSexp = function(cm) { killTo(cm, byExpr, -1, \"grow\"); };\n\n cmds.forwardSexp = move(byExpr, 1);\n\n cmds.backwardSexp = move(byExpr, -1);\n\n cmds.markSexp = function(cm) {\n var cursor = cm.getCursor();\n cm.setSelection(findEnd(cm, cursor, byExpr, 1), cursor);\n };\n\n cmds.transposeSexps = function(cm) {\n var leftStart = byExpr(cm, cm.getCursor(), -1);\n var leftEnd = byExpr(cm, leftStart, 1);\n var rightEnd = byExpr(cm, leftEnd, 1);\n var rightStart = byExpr(cm, rightEnd, -1);\n cm.replaceRange(cm.getRange(rightStart, rightEnd) +\n cm.getRange(leftEnd, rightStart) +\n cm.getRange(leftStart, leftEnd), leftStart, rightEnd);\n };\n\n cmds.backwardUpList = repeated(toEnclosingExpr);\n\n cmds.justOneSpace = function(cm) {\n var pos = cm.getCursor(), from = pos.ch;\n var to = pos.ch, text = cm.getLine(pos.line);\n while (from && /\\s/.test(text.charAt(from - 1))) --from;\n while (to < text.length && /\\s/.test(text.charAt(to))) ++to;\n cm.replaceRange(\" \", Pos(pos.line, from), Pos(pos.line, to));\n };\n\n cmds.openLine = repeated(function(cm) {\n cm.replaceSelection(\"\\n\", \"start\");\n });\n\n // maps to emacs 'transpose-chars'\n cmds.transposeCharsRepeatable = repeated(function(cm) {\n cm.execCommand(\"transposeChars\");\n });\n\n cmds.capitalizeWord = repeated(function(cm) {\n operateOnWord(cm, function(w) {\n var letter = w.search(/\\w/);\n if (letter == -1) return w;\n return w.slice(0, letter) + w.charAt(letter).toUpperCase() +\n w.slice(letter + 1).toLowerCase();\n });\n });\n\n cmds.upcaseWord = repeated(function(cm) {\n operateOnWord(cm, function(w) { return w.toUpperCase(); });\n });\n\n cmds.downcaseWord = repeated(function(cm) {\n operateOnWord(cm, function(w) { return w.toLowerCase(); });\n });\n\n // maps to emacs 'undo'\n cmds.undoRepeatable = repeated(\"undo\");\n\n cmds.keyboardQuit = function(cm) {\n cm.execCommand(\"clearSearch\");\n clearMark(cm);\n }\n\n cmds.newline = repeated(function(cm) { cm.replaceSelection(\"\\n\", \"end\"); });\n\n cmds.gotoLine = function(cm) {\n var prefix = getPrefix(cm, true);\n if (prefix != null && prefix > 0) return cm.setCursor(prefix - 1);\n\n getInput(cm, \"Goto line\", function(str) {\n var num;\n if (str && !isNaN(num = Number(str)) && num == (num|0) && num > 0)\n cm.setCursor(num - 1);\n });\n };\n\n cmds.indentRigidly = function(cm) {\n cm.indentSelection(getPrefix(cm, true) || cm.getOption(\"indentUnit\"));\n };\n\n cmds.exchangePointAndMark = function(cm) {\n cm.setSelection(cm.getCursor(\"head\"), cm.getCursor(\"anchor\"));\n };\n\n cmds.quotedInsertTab = repeated(\"insertTab\");\n\n cmds.universalArgument = function addPrefixMap(cm) {\n cm.state.emacsPrefixMap = true;\n cm.addKeyMap(prefixMap);\n cm.on(\"keyHandled\", maybeRemovePrefixMap);\n cm.on(\"inputRead\", maybeRemovePrefixMap);\n };\n\n CodeMirror.emacs = {kill: _kill, killRegion: _killRegion, repeated: repeated};\n\n // Actual keymap\n var keyMap = CodeMirror.keyMap.emacs = CodeMirror.normalizeKeyMap({\n \"Ctrl-W\": \"killRegion\",\n \"Ctrl-K\": \"killLineEmacs\",\n \"Alt-W\": \"killRingSave\",\n \"Ctrl-Y\": \"yank\",\n \"Alt-Y\": \"yankPop\",\n \"Ctrl-Space\": \"setMark\",\n \"Ctrl-Shift-2\": \"setMark\",\n \"Ctrl-F\": \"forwardChar\",\n \"Ctrl-B\": \"backwardChar\",\n \"Right\": \"forwardChar\",\n \"Left\": \"backwardChar\",\n \"Ctrl-D\": \"deleteChar\",\n \"Delete\": \"deleteForwardChar\",\n \"Ctrl-H\": \"deleteBackwardChar\",\n \"Backspace\": \"deleteBackwardChar\",\n \"Alt-F\": \"forwardWord\",\n \"Alt-B\": \"backwardWord\",\n \"Alt-Right\": \"forwardWord\",\n \"Alt-Left\": \"backwardWord\",\n \"Alt-D\": \"killWord\",\n \"Alt-Backspace\": \"backwardKillWord\",\n \"Ctrl-N\": \"nextLine\",\n \"Ctrl-P\": \"previousLine\",\n \"Down\": \"nextLine\",\n \"Up\": \"previousLine\",\n \"Ctrl-A\": \"goLineStart\",\n \"Ctrl-E\": \"goLineEnd\",\n \"End\": \"goLineEnd\",\n \"Home\": \"goLineStart\",\n \"Alt-V\": \"scrollDownCommand\",\n \"Ctrl-V\": \"scrollUpCommand\",\n \"PageUp\": \"scrollUpCommand\",\n \"PageDown\": \"scrollDownCommand\",\n \"Ctrl-Up\": \"backwardParagraph\",\n \"Ctrl-Down\": \"forwardParagraph\",\n \"Alt-{\": \"backwardParagraph\",\n \"Alt-}\": \"forwardParagraph\",\n \"Alt-A\": \"backwardSentence\",\n \"Alt-E\": \"forwardSentence\",\n \"Alt-K\": \"killSentence\",\n \"Ctrl-X Delete\": \"backwardKillSentence\",\n \"Ctrl-Alt-K\": \"killSexp\",\n \"Ctrl-Alt-Backspace\": \"backwardKillSexp\",\n \"Ctrl-Alt-F\": \"forwardSexp\",\n \"Ctrl-Alt-B\": \"backwardSexp\",\n \"Shift-Ctrl-Alt-2\": \"markSexp\",\n \"Ctrl-Alt-T\": \"transposeSexps\",\n \"Ctrl-Alt-U\": \"backwardUpList\",\n \"Alt-Space\": \"justOneSpace\",\n \"Ctrl-O\": \"openLine\",\n \"Ctrl-T\": \"transposeCharsRepeatable\",\n \"Alt-C\": \"capitalizeWord\",\n \"Alt-U\": \"upcaseWord\",\n \"Alt-L\": \"downcaseWord\",\n \"Alt-;\": \"toggleComment\",\n \"Ctrl-/\": \"undoRepeatable\",\n \"Shift-Ctrl--\": \"undoRepeatable\",\n \"Ctrl-Z\": \"undoRepeatable\",\n \"Cmd-Z\": \"undoRepeatable\",\n \"Ctrl-X U\": \"undoRepeatable\",\n \"Shift-Ctrl-Z\": \"redo\",\n \"Shift-Alt-,\": \"goDocStart\",\n \"Shift-Alt-.\": \"goDocEnd\",\n \"Ctrl-S\": \"findPersistentNext\",\n \"Ctrl-R\": \"findPersistentPrev\",\n \"Ctrl-G\": \"keyboardQuit\",\n \"Shift-Alt-5\": \"replace\",\n \"Alt-/\": \"autocomplete\",\n \"Enter\": \"newlineAndIndent\",\n \"Ctrl-J\": \"newline\",\n \"Tab\": \"indentAuto\",\n \"Alt-G G\": \"gotoLine\",\n \"Ctrl-X Tab\": \"indentRigidly\",\n \"Ctrl-X Ctrl-X\": \"exchangePointAndMark\",\n \"Ctrl-X Ctrl-S\": \"save\",\n \"Ctrl-X Ctrl-W\": \"save\",\n \"Ctrl-X S\": \"saveAll\",\n \"Ctrl-X F\": \"open\",\n \"Ctrl-X K\": \"close\",\n \"Ctrl-X H\": \"selectAll\",\n \"Ctrl-Q Tab\": \"quotedInsertTab\",\n \"Ctrl-U\": \"universalArgument\",\n \"fallthrough\": \"default\"\n });\n\n var prefixMap = {\"Ctrl-G\": clearPrefix};\n function regPrefix(d) {\n prefixMap[d] = function(cm) { addPrefix(cm, d); };\n keyMap[\"Ctrl-\" + d] = function(cm) { addPrefix(cm, d); };\n prefixPreservingKeys[\"Ctrl-\" + d] = true;\n }\n for (var i = 0; i < 10; ++i) regPrefix(String(i));\n regPrefix(\"-\");\n});\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n// A rough approximation of Sublime Text's keybindings\n// Depends on addon/search/searchcursor.js and optionally addon/dialog/dialogs.js\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../lib/codemirror\"), require(\"../addon/search/searchcursor\"), require(\"../addon/edit/matchbrackets\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../lib/codemirror\", \"../addon/search/searchcursor\", \"../addon/edit/matchbrackets\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n \"use strict\";\n\n var cmds = CodeMirror.commands;\n var Pos = CodeMirror.Pos;\n\n // This is not exactly Sublime's algorithm. I couldn't make heads or tails of that.\n function findPosSubword(doc, start, dir) {\n if (dir < 0 && start.ch == 0) return doc.clipPos(Pos(start.line - 1));\n var line = doc.getLine(start.line);\n if (dir > 0 && start.ch >= line.length) return doc.clipPos(Pos(start.line + 1, 0));\n var state = \"start\", type, startPos = start.ch;\n for (var pos = startPos, e = dir < 0 ? 0 : line.length, i = 0; pos != e; pos += dir, i++) {\n var next = line.charAt(dir < 0 ? pos - 1 : pos);\n var cat = next != \"_\" && CodeMirror.isWordChar(next) ? \"w\" : \"o\";\n if (cat == \"w\" && next.toUpperCase() == next) cat = \"W\";\n if (state == \"start\") {\n if (cat != \"o\") { state = \"in\"; type = cat; }\n else startPos = pos + dir\n } else if (state == \"in\") {\n if (type != cat) {\n if (type == \"w\" && cat == \"W\" && dir < 0) pos--;\n if (type == \"W\" && cat == \"w\" && dir > 0) { // From uppercase to lowercase\n if (pos == startPos + 1) { type = \"w\"; continue; }\n else pos--;\n }\n break;\n }\n }\n }\n return Pos(start.line, pos);\n }\n\n function moveSubword(cm, dir) {\n cm.extendSelectionsBy(function(range) {\n if (cm.display.shift || cm.doc.extend || range.empty())\n return findPosSubword(cm.doc, range.head, dir);\n else\n return dir < 0 ? range.from() : range.to();\n });\n }\n\n cmds.goSubwordLeft = function(cm) { moveSubword(cm, -1); };\n cmds.goSubwordRight = function(cm) { moveSubword(cm, 1); };\n\n cmds.scrollLineUp = function(cm) {\n var info = cm.getScrollInfo();\n if (!cm.somethingSelected()) {\n var visibleBottomLine = cm.lineAtHeight(info.top + info.clientHeight, \"local\");\n if (cm.getCursor().line >= visibleBottomLine)\n cm.execCommand(\"goLineUp\");\n }\n cm.scrollTo(null, info.top - cm.defaultTextHeight());\n };\n cmds.scrollLineDown = function(cm) {\n var info = cm.getScrollInfo();\n if (!cm.somethingSelected()) {\n var visibleTopLine = cm.lineAtHeight(info.top, \"local\")+1;\n if (cm.getCursor().line <= visibleTopLine)\n cm.execCommand(\"goLineDown\");\n }\n cm.scrollTo(null, info.top + cm.defaultTextHeight());\n };\n\n cmds.splitSelectionByLine = function(cm) {\n var ranges = cm.listSelections(), lineRanges = [];\n for (var i = 0; i < ranges.length; i++) {\n var from = ranges[i].from(), to = ranges[i].to();\n for (var line = from.line; line <= to.line; ++line)\n if (!(to.line > from.line && line == to.line && to.ch == 0))\n lineRanges.push({anchor: line == from.line ? from : Pos(line, 0),\n head: line == to.line ? to : Pos(line)});\n }\n cm.setSelections(lineRanges, 0);\n };\n\n cmds.singleSelectionTop = function(cm) {\n var range = cm.listSelections()[0];\n cm.setSelection(range.anchor, range.head, {scroll: false});\n };\n\n cmds.selectLine = function(cm) {\n var ranges = cm.listSelections(), extended = [];\n for (var i = 0; i < ranges.length; i++) {\n var range = ranges[i];\n extended.push({anchor: Pos(range.from().line, 0),\n head: Pos(range.to().line + 1, 0)});\n }\n cm.setSelections(extended);\n };\n\n function insertLine(cm, above) {\n if (cm.isReadOnly()) return CodeMirror.Pass\n cm.operation(function() {\n var len = cm.listSelections().length, newSelection = [], last = -1;\n for (var i = 0; i < len; i++) {\n var head = cm.listSelections()[i].head;\n if (head.line <= last) continue;\n var at = Pos(head.line + (above ? 0 : 1), 0);\n cm.replaceRange(\"\\n\", at, null, \"+insertLine\");\n cm.indentLine(at.line, null, true);\n newSelection.push({head: at, anchor: at});\n last = head.line + 1;\n }\n cm.setSelections(newSelection);\n });\n cm.execCommand(\"indentAuto\");\n }\n\n cmds.insertLineAfter = function(cm) { return insertLine(cm, false); };\n\n cmds.insertLineBefore = function(cm) { return insertLine(cm, true); };\n\n function wordAt(cm, pos) {\n var start = pos.ch, end = start, line = cm.getLine(pos.line);\n while (start && CodeMirror.isWordChar(line.charAt(start - 1))) --start;\n while (end < line.length && CodeMirror.isWordChar(line.charAt(end))) ++end;\n return {from: Pos(pos.line, start), to: Pos(pos.line, end), word: line.slice(start, end)};\n }\n\n cmds.selectNextOccurrence = function(cm) {\n var from = cm.getCursor(\"from\"), to = cm.getCursor(\"to\");\n var fullWord = cm.state.sublimeFindFullWord == cm.doc.sel;\n if (CodeMirror.cmpPos(from, to) == 0) {\n var word = wordAt(cm, from);\n if (!word.word) return;\n cm.setSelection(word.from, word.to);\n fullWord = true;\n } else {\n var text = cm.getRange(from, to);\n var query = fullWord ? new RegExp(\"\\\\b\" + text + \"\\\\b\") : text;\n var cur = cm.getSearchCursor(query, to);\n var found = cur.findNext();\n if (!found) {\n cur = cm.getSearchCursor(query, Pos(cm.firstLine(), 0));\n found = cur.findNext();\n }\n if (!found || isSelectedRange(cm.listSelections(), cur.from(), cur.to())) return\n cm.addSelection(cur.from(), cur.to());\n }\n if (fullWord)\n cm.state.sublimeFindFullWord = cm.doc.sel;\n };\n\n cmds.skipAndSelectNextOccurrence = function(cm) {\n var prevAnchor = cm.getCursor(\"anchor\"), prevHead = cm.getCursor(\"head\");\n cmds.selectNextOccurrence(cm);\n if (CodeMirror.cmpPos(prevAnchor, prevHead) != 0) {\n cm.doc.setSelections(cm.doc.listSelections()\n .filter(function (sel) {\n return sel.anchor != prevAnchor || sel.head != prevHead;\n }));\n }\n }\n\n function addCursorToSelection(cm, dir) {\n var ranges = cm.listSelections(), newRanges = [];\n for (var i = 0; i < ranges.length; i++) {\n var range = ranges[i];\n var newAnchor = cm.findPosV(\n range.anchor, dir, \"line\", range.anchor.goalColumn);\n var newHead = cm.findPosV(\n range.head, dir, \"line\", range.head.goalColumn);\n newAnchor.goalColumn = range.anchor.goalColumn != null ?\n range.anchor.goalColumn : cm.cursorCoords(range.anchor, \"div\").left;\n newHead.goalColumn = range.head.goalColumn != null ?\n range.head.goalColumn : cm.cursorCoords(range.head, \"div\").left;\n var newRange = {anchor: newAnchor, head: newHead};\n newRanges.push(range);\n newRanges.push(newRange);\n }\n cm.setSelections(newRanges);\n }\n cmds.addCursorToPrevLine = function(cm) { addCursorToSelection(cm, -1); };\n cmds.addCursorToNextLine = function(cm) { addCursorToSelection(cm, 1); };\n\n function isSelectedRange(ranges, from, to) {\n for (var i = 0; i < ranges.length; i++)\n if (CodeMirror.cmpPos(ranges[i].from(), from) == 0 &&\n CodeMirror.cmpPos(ranges[i].to(), to) == 0) return true\n return false\n }\n\n var mirror = \"(){}[]\";\n function selectBetweenBrackets(cm) {\n var ranges = cm.listSelections(), newRanges = []\n for (var i = 0; i < ranges.length; i++) {\n var range = ranges[i], pos = range.head, opening = cm.scanForBracket(pos, -1);\n if (!opening) return false;\n for (;;) {\n var closing = cm.scanForBracket(pos, 1);\n if (!closing) return false;\n if (closing.ch == mirror.charAt(mirror.indexOf(opening.ch) + 1)) {\n var startPos = Pos(opening.pos.line, opening.pos.ch + 1);\n if (CodeMirror.cmpPos(startPos, range.from()) == 0 &&\n CodeMirror.cmpPos(closing.pos, range.to()) == 0) {\n opening = cm.scanForBracket(opening.pos, -1);\n if (!opening) return false;\n } else {\n newRanges.push({anchor: startPos, head: closing.pos});\n break;\n }\n }\n pos = Pos(closing.pos.line, closing.pos.ch + 1);\n }\n }\n cm.setSelections(newRanges);\n return true;\n }\n\n cmds.selectScope = function(cm) {\n selectBetweenBrackets(cm) || cm.execCommand(\"selectAll\");\n };\n cmds.selectBetweenBrackets = function(cm) {\n if (!selectBetweenBrackets(cm)) return CodeMirror.Pass;\n };\n\n function puncType(type) {\n return !type ? null : /\\bpunctuation\\b/.test(type) ? type : undefined\n }\n\n cmds.goToBracket = function(cm) {\n cm.extendSelectionsBy(function(range) {\n var next = cm.scanForBracket(range.head, 1, puncType(cm.getTokenTypeAt(range.head)));\n if (next && CodeMirror.cmpPos(next.pos, range.head) != 0) return next.pos;\n var prev = cm.scanForBracket(range.head, -1, puncType(cm.getTokenTypeAt(Pos(range.head.line, range.head.ch + 1))));\n return prev && Pos(prev.pos.line, prev.pos.ch + 1) || range.head;\n });\n };\n\n cmds.swapLineUp = function(cm) {\n if (cm.isReadOnly()) return CodeMirror.Pass\n var ranges = cm.listSelections(), linesToMove = [], at = cm.firstLine() - 1, newSels = [];\n for (var i = 0; i < ranges.length; i++) {\n var range = ranges[i], from = range.from().line - 1, to = range.to().line;\n newSels.push({anchor: Pos(range.anchor.line - 1, range.anchor.ch),\n head: Pos(range.head.line - 1, range.head.ch)});\n if (range.to().ch == 0 && !range.empty()) --to;\n if (from > at) linesToMove.push(from, to);\n else if (linesToMove.length) linesToMove[linesToMove.length - 1] = to;\n at = to;\n }\n cm.operation(function() {\n for (var i = 0; i < linesToMove.length; i += 2) {\n var from = linesToMove[i], to = linesToMove[i + 1];\n var line = cm.getLine(from);\n cm.replaceRange(\"\", Pos(from, 0), Pos(from + 1, 0), \"+swapLine\");\n if (to > cm.lastLine())\n cm.replaceRange(\"\\n\" + line, Pos(cm.lastLine()), null, \"+swapLine\");\n else\n cm.replaceRange(line + \"\\n\", Pos(to, 0), null, \"+swapLine\");\n }\n cm.setSelections(newSels);\n cm.scrollIntoView();\n });\n };\n\n cmds.swapLineDown = function(cm) {\n if (cm.isReadOnly()) return CodeMirror.Pass\n var ranges = cm.listSelections(), linesToMove = [], at = cm.lastLine() + 1;\n for (var i = ranges.length - 1; i >= 0; i--) {\n var range = ranges[i], from = range.to().line + 1, to = range.from().line;\n if (range.to().ch == 0 && !range.empty()) from--;\n if (from < at) linesToMove.push(from, to);\n else if (linesToMove.length) linesToMove[linesToMove.length - 1] = to;\n at = to;\n }\n cm.operation(function() {\n for (var i = linesToMove.length - 2; i >= 0; i -= 2) {\n var from = linesToMove[i], to = linesToMove[i + 1];\n var line = cm.getLine(from);\n if (from == cm.lastLine())\n cm.replaceRange(\"\", Pos(from - 1), Pos(from), \"+swapLine\");\n else\n cm.replaceRange(\"\", Pos(from, 0), Pos(from + 1, 0), \"+swapLine\");\n cm.replaceRange(line + \"\\n\", Pos(to, 0), null, \"+swapLine\");\n }\n cm.scrollIntoView();\n });\n };\n\n cmds.toggleCommentIndented = function(cm) {\n cm.toggleComment({ indent: true });\n }\n\n cmds.joinLines = function(cm) {\n var ranges = cm.listSelections(), joined = [];\n for (var i = 0; i < ranges.length; i++) {\n var range = ranges[i], from = range.from();\n var start = from.line, end = range.to().line;\n while (i < ranges.length - 1 && ranges[i + 1].from().line == end)\n end = ranges[++i].to().line;\n joined.push({start: start, end: end, anchor: !range.empty() && from});\n }\n cm.operation(function() {\n var offset = 0, ranges = [];\n for (var i = 0; i < joined.length; i++) {\n var obj = joined[i];\n var anchor = obj.anchor && Pos(obj.anchor.line - offset, obj.anchor.ch), head;\n for (var line = obj.start; line <= obj.end; line++) {\n var actual = line - offset;\n if (line == obj.end) head = Pos(actual, cm.getLine(actual).length + 1);\n if (actual < cm.lastLine()) {\n cm.replaceRange(\" \", Pos(actual), Pos(actual + 1, /^\\s*/.exec(cm.getLine(actual + 1))[0].length));\n ++offset;\n }\n }\n ranges.push({anchor: anchor || head, head: head});\n }\n cm.setSelections(ranges, 0);\n });\n };\n\n cmds.duplicateLine = function(cm) {\n cm.operation(function() {\n var rangeCount = cm.listSelections().length;\n for (var i = 0; i < rangeCount; i++) {\n var range = cm.listSelections()[i];\n if (range.empty())\n cm.replaceRange(cm.getLine(range.head.line) + \"\\n\", Pos(range.head.line, 0));\n else\n cm.replaceRange(cm.getRange(range.from(), range.to()), range.from());\n }\n cm.scrollIntoView();\n });\n };\n\n\n function sortLines(cm, caseSensitive, direction) {\n if (cm.isReadOnly()) return CodeMirror.Pass\n var ranges = cm.listSelections(), toSort = [], selected;\n for (var i = 0; i < ranges.length; i++) {\n var range = ranges[i];\n if (range.empty()) continue;\n var from = range.from().line, to = range.to().line;\n while (i < ranges.length - 1 && ranges[i + 1].from().line == to)\n to = ranges[++i].to().line;\n if (!ranges[i].to().ch) to--;\n toSort.push(from, to);\n }\n if (toSort.length) selected = true;\n else toSort.push(cm.firstLine(), cm.lastLine());\n\n cm.operation(function() {\n var ranges = [];\n for (var i = 0; i < toSort.length; i += 2) {\n var from = toSort[i], to = toSort[i + 1];\n var start = Pos(from, 0), end = Pos(to);\n var lines = cm.getRange(start, end, false);\n if (caseSensitive)\n lines.sort(function(a, b) { return a < b ? -direction : a == b ? 0 : direction; });\n else\n lines.sort(function(a, b) {\n var au = a.toUpperCase(), bu = b.toUpperCase();\n if (au != bu) { a = au; b = bu; }\n return a < b ? -direction : a == b ? 0 : direction;\n });\n cm.replaceRange(lines, start, end);\n if (selected) ranges.push({anchor: start, head: Pos(to + 1, 0)});\n }\n if (selected) cm.setSelections(ranges, 0);\n });\n }\n\n cmds.sortLines = function(cm) { sortLines(cm, true, 1); };\n cmds.reverseSortLines = function(cm) { sortLines(cm, true, -1); };\n cmds.sortLinesInsensitive = function(cm) { sortLines(cm, false, 1); };\n cmds.reverseSortLinesInsensitive = function(cm) { sortLines(cm, false, -1); };\n\n cmds.nextBookmark = function(cm) {\n var marks = cm.state.sublimeBookmarks;\n if (marks) while (marks.length) {\n var current = marks.shift();\n var found = current.find();\n if (found) {\n marks.push(current);\n return cm.setSelection(found.from, found.to);\n }\n }\n };\n\n cmds.prevBookmark = function(cm) {\n var marks = cm.state.sublimeBookmarks;\n if (marks) while (marks.length) {\n marks.unshift(marks.pop());\n var found = marks[marks.length - 1].find();\n if (!found)\n marks.pop();\n else\n return cm.setSelection(found.from, found.to);\n }\n };\n\n cmds.toggleBookmark = function(cm) {\n var ranges = cm.listSelections();\n var marks = cm.state.sublimeBookmarks || (cm.state.sublimeBookmarks = []);\n for (var i = 0; i < ranges.length; i++) {\n var from = ranges[i].from(), to = ranges[i].to();\n var found = ranges[i].empty() ? cm.findMarksAt(from) : cm.findMarks(from, to);\n for (var j = 0; j < found.length; j++) {\n if (found[j].sublimeBookmark) {\n found[j].clear();\n for (var k = 0; k < marks.length; k++)\n if (marks[k] == found[j])\n marks.splice(k--, 1);\n break;\n }\n }\n if (j == found.length)\n marks.push(cm.markText(from, to, {sublimeBookmark: true, clearWhenEmpty: false}));\n }\n };\n\n cmds.clearBookmarks = function(cm) {\n var marks = cm.state.sublimeBookmarks;\n if (marks) for (var i = 0; i < marks.length; i++) marks[i].clear();\n marks.length = 0;\n };\n\n cmds.selectBookmarks = function(cm) {\n var marks = cm.state.sublimeBookmarks, ranges = [];\n if (marks) for (var i = 0; i < marks.length; i++) {\n var found = marks[i].find();\n if (!found)\n marks.splice(i--, 0);\n else\n ranges.push({anchor: found.from, head: found.to});\n }\n if (ranges.length)\n cm.setSelections(ranges, 0);\n };\n\n function modifyWordOrSelection(cm, mod) {\n cm.operation(function() {\n var ranges = cm.listSelections(), indices = [], replacements = [];\n for (var i = 0; i < ranges.length; i++) {\n var range = ranges[i];\n if (range.empty()) { indices.push(i); replacements.push(\"\"); }\n else replacements.push(mod(cm.getRange(range.from(), range.to())));\n }\n cm.replaceSelections(replacements, \"around\", \"case\");\n for (var i = indices.length - 1, at; i >= 0; i--) {\n var range = ranges[indices[i]];\n if (at && CodeMirror.cmpPos(range.head, at) > 0) continue;\n var word = wordAt(cm, range.head);\n at = word.from;\n cm.replaceRange(mod(word.word), word.from, word.to);\n }\n });\n }\n\n cmds.smartBackspace = function(cm) {\n if (cm.somethingSelected()) return CodeMirror.Pass;\n\n cm.operation(function() {\n var cursors = cm.listSelections();\n var indentUnit = cm.getOption(\"indentUnit\");\n\n for (var i = cursors.length - 1; i >= 0; i--) {\n var cursor = cursors[i].head;\n var toStartOfLine = cm.getRange({line: cursor.line, ch: 0}, cursor);\n var column = CodeMirror.countColumn(toStartOfLine, null, cm.getOption(\"tabSize\"));\n\n // Delete by one character by default\n var deletePos = cm.findPosH(cursor, -1, \"char\", false);\n\n if (toStartOfLine && !/\\S/.test(toStartOfLine) && column % indentUnit == 0) {\n var prevIndent = new Pos(cursor.line,\n CodeMirror.findColumn(toStartOfLine, column - indentUnit, indentUnit));\n\n // Smart delete only if we found a valid prevIndent location\n if (prevIndent.ch != cursor.ch) deletePos = prevIndent;\n }\n\n cm.replaceRange(\"\", deletePos, cursor, \"+delete\");\n }\n });\n };\n\n cmds.delLineRight = function(cm) {\n cm.operation(function() {\n var ranges = cm.listSelections();\n for (var i = ranges.length - 1; i >= 0; i--)\n cm.replaceRange(\"\", ranges[i].anchor, Pos(ranges[i].to().line), \"+delete\");\n cm.scrollIntoView();\n });\n };\n\n cmds.upcaseAtCursor = function(cm) {\n modifyWordOrSelection(cm, function(str) { return str.toUpperCase(); });\n };\n cmds.downcaseAtCursor = function(cm) {\n modifyWordOrSelection(cm, function(str) { return str.toLowerCase(); });\n };\n\n cmds.setSublimeMark = function(cm) {\n if (cm.state.sublimeMark) cm.state.sublimeMark.clear();\n cm.state.sublimeMark = cm.setBookmark(cm.getCursor());\n };\n cmds.selectToSublimeMark = function(cm) {\n var found = cm.state.sublimeMark && cm.state.sublimeMark.find();\n if (found) cm.setSelection(cm.getCursor(), found);\n };\n cmds.deleteToSublimeMark = function(cm) {\n var found = cm.state.sublimeMark && cm.state.sublimeMark.find();\n if (found) {\n var from = cm.getCursor(), to = found;\n if (CodeMirror.cmpPos(from, to) > 0) { var tmp = to; to = from; from = tmp; }\n cm.state.sublimeKilled = cm.getRange(from, to);\n cm.replaceRange(\"\", from, to);\n }\n };\n cmds.swapWithSublimeMark = function(cm) {\n var found = cm.state.sublimeMark && cm.state.sublimeMark.find();\n if (found) {\n cm.state.sublimeMark.clear();\n cm.state.sublimeMark = cm.setBookmark(cm.getCursor());\n cm.setCursor(found);\n }\n };\n cmds.sublimeYank = function(cm) {\n if (cm.state.sublimeKilled != null)\n cm.replaceSelection(cm.state.sublimeKilled, null, \"paste\");\n };\n\n cmds.showInCenter = function(cm) {\n var pos = cm.cursorCoords(null, \"local\");\n cm.scrollTo(null, (pos.top + pos.bottom) / 2 - cm.getScrollInfo().clientHeight / 2);\n };\n\n function getTarget(cm) {\n var from = cm.getCursor(\"from\"), to = cm.getCursor(\"to\");\n if (CodeMirror.cmpPos(from, to) == 0) {\n var word = wordAt(cm, from);\n if (!word.word) return;\n from = word.from;\n to = word.to;\n }\n return {from: from, to: to, query: cm.getRange(from, to), word: word};\n }\n\n function findAndGoTo(cm, forward) {\n var target = getTarget(cm);\n if (!target) return;\n var query = target.query;\n var cur = cm.getSearchCursor(query, forward ? target.to : target.from);\n\n if (forward ? cur.findNext() : cur.findPrevious()) {\n cm.setSelection(cur.from(), cur.to());\n } else {\n cur = cm.getSearchCursor(query, forward ? Pos(cm.firstLine(), 0)\n : cm.clipPos(Pos(cm.lastLine())));\n if (forward ? cur.findNext() : cur.findPrevious())\n cm.setSelection(cur.from(), cur.to());\n else if (target.word)\n cm.setSelection(target.from, target.to);\n }\n };\n cmds.findUnder = function(cm) { findAndGoTo(cm, true); };\n cmds.findUnderPrevious = function(cm) { findAndGoTo(cm,false); };\n cmds.findAllUnder = function(cm) {\n var target = getTarget(cm);\n if (!target) return;\n var cur = cm.getSearchCursor(target.query);\n var matches = [];\n var primaryIndex = -1;\n while (cur.findNext()) {\n matches.push({anchor: cur.from(), head: cur.to()});\n if (cur.from().line <= target.from.line && cur.from().ch <= target.from.ch)\n primaryIndex++;\n }\n cm.setSelections(matches, primaryIndex);\n };\n\n\n var keyMap = CodeMirror.keyMap;\n keyMap.macSublime = {\n \"Cmd-Left\": \"goLineStartSmart\",\n \"Shift-Tab\": \"indentLess\",\n \"Shift-Ctrl-K\": \"deleteLine\",\n \"Alt-Q\": \"wrapLines\",\n \"Ctrl-Left\": \"goSubwordLeft\",\n \"Ctrl-Right\": \"goSubwordRight\",\n \"Ctrl-Alt-Up\": \"scrollLineUp\",\n \"Ctrl-Alt-Down\": \"scrollLineDown\",\n \"Cmd-L\": \"selectLine\",\n \"Shift-Cmd-L\": \"splitSelectionByLine\",\n \"Esc\": \"singleSelectionTop\",\n \"Cmd-Enter\": \"insertLineAfter\",\n \"Shift-Cmd-Enter\": \"insertLineBefore\",\n \"Cmd-D\": \"selectNextOccurrence\",\n \"Shift-Cmd-Space\": \"selectScope\",\n \"Shift-Cmd-M\": \"selectBetweenBrackets\",\n \"Cmd-M\": \"goToBracket\",\n \"Cmd-Ctrl-Up\": \"swapLineUp\",\n \"Cmd-Ctrl-Down\": \"swapLineDown\",\n \"Cmd-/\": \"toggleCommentIndented\",\n \"Cmd-J\": \"joinLines\",\n \"Shift-Cmd-D\": \"duplicateLine\",\n \"F5\": \"sortLines\",\n \"Shift-F5\": \"reverseSortLines\",\n \"Cmd-F5\": \"sortLinesInsensitive\",\n \"Shift-Cmd-F5\": \"reverseSortLinesInsensitive\",\n \"F2\": \"nextBookmark\",\n \"Shift-F2\": \"prevBookmark\",\n \"Cmd-F2\": \"toggleBookmark\",\n \"Shift-Cmd-F2\": \"clearBookmarks\",\n \"Alt-F2\": \"selectBookmarks\",\n \"Backspace\": \"smartBackspace\",\n \"Cmd-K Cmd-D\": \"skipAndSelectNextOccurrence\",\n \"Cmd-K Cmd-K\": \"delLineRight\",\n \"Cmd-K Cmd-U\": \"upcaseAtCursor\",\n \"Cmd-K Cmd-L\": \"downcaseAtCursor\",\n \"Cmd-K Cmd-Space\": \"setSublimeMark\",\n \"Cmd-K Cmd-A\": \"selectToSublimeMark\",\n \"Cmd-K Cmd-W\": \"deleteToSublimeMark\",\n \"Cmd-K Cmd-X\": \"swapWithSublimeMark\",\n \"Cmd-K Cmd-Y\": \"sublimeYank\",\n \"Cmd-K Cmd-C\": \"showInCenter\",\n \"Cmd-K Cmd-G\": \"clearBookmarks\",\n \"Cmd-K Cmd-Backspace\": \"delLineLeft\",\n \"Cmd-K Cmd-1\": \"foldAll\",\n \"Cmd-K Cmd-0\": \"unfoldAll\",\n \"Cmd-K Cmd-J\": \"unfoldAll\",\n \"Ctrl-Shift-Up\": \"addCursorToPrevLine\",\n \"Ctrl-Shift-Down\": \"addCursorToNextLine\",\n \"Cmd-F3\": \"findUnder\",\n \"Shift-Cmd-F3\": \"findUnderPrevious\",\n \"Alt-F3\": \"findAllUnder\",\n \"Shift-Cmd-[\": \"fold\",\n \"Shift-Cmd-]\": \"unfold\",\n \"Cmd-I\": \"findIncremental\",\n \"Shift-Cmd-I\": \"findIncrementalReverse\",\n \"Cmd-H\": \"replace\",\n \"F3\": \"findNext\",\n \"Shift-F3\": \"findPrev\",\n \"fallthrough\": \"macDefault\"\n };\n CodeMirror.normalizeKeyMap(keyMap.macSublime);\n\n keyMap.pcSublime = {\n \"Shift-Tab\": \"indentLess\",\n \"Shift-Ctrl-K\": \"deleteLine\",\n \"Alt-Q\": \"wrapLines\",\n \"Ctrl-T\": \"transposeChars\",\n \"Alt-Left\": \"goSubwordLeft\",\n \"Alt-Right\": \"goSubwordRight\",\n \"Ctrl-Up\": \"scrollLineUp\",\n \"Ctrl-Down\": \"scrollLineDown\",\n \"Ctrl-L\": \"selectLine\",\n \"Shift-Ctrl-L\": \"splitSelectionByLine\",\n \"Esc\": \"singleSelectionTop\",\n \"Ctrl-Enter\": \"insertLineAfter\",\n \"Shift-Ctrl-Enter\": \"insertLineBefore\",\n \"Ctrl-D\": \"selectNextOccurrence\",\n \"Shift-Ctrl-Space\": \"selectScope\",\n \"Shift-Ctrl-M\": \"selectBetweenBrackets\",\n \"Ctrl-M\": \"goToBracket\",\n \"Shift-Ctrl-Up\": \"swapLineUp\",\n \"Shift-Ctrl-Down\": \"swapLineDown\",\n \"Ctrl-/\": \"toggleCommentIndented\",\n \"Ctrl-J\": \"joinLines\",\n \"Shift-Ctrl-D\": \"duplicateLine\",\n \"F9\": \"sortLines\",\n \"Shift-F9\": \"reverseSortLines\",\n \"Ctrl-F9\": \"sortLinesInsensitive\",\n \"Shift-Ctrl-F9\": \"reverseSortLinesInsensitive\",\n \"F2\": \"nextBookmark\",\n \"Shift-F2\": \"prevBookmark\",\n \"Ctrl-F2\": \"toggleBookmark\",\n \"Shift-Ctrl-F2\": \"clearBookmarks\",\n \"Alt-F2\": \"selectBookmarks\",\n \"Backspace\": \"smartBackspace\",\n \"Ctrl-K Ctrl-D\": \"skipAndSelectNextOccurrence\",\n \"Ctrl-K Ctrl-K\": \"delLineRight\",\n \"Ctrl-K Ctrl-U\": \"upcaseAtCursor\",\n \"Ctrl-K Ctrl-L\": \"downcaseAtCursor\",\n \"Ctrl-K Ctrl-Space\": \"setSublimeMark\",\n \"Ctrl-K Ctrl-A\": \"selectToSublimeMark\",\n \"Ctrl-K Ctrl-W\": \"deleteToSublimeMark\",\n \"Ctrl-K Ctrl-X\": \"swapWithSublimeMark\",\n \"Ctrl-K Ctrl-Y\": \"sublimeYank\",\n \"Ctrl-K Ctrl-C\": \"showInCenter\",\n \"Ctrl-K Ctrl-G\": \"clearBookmarks\",\n \"Ctrl-K Ctrl-Backspace\": \"delLineLeft\",\n \"Ctrl-K Ctrl-1\": \"foldAll\",\n \"Ctrl-K Ctrl-0\": \"unfoldAll\",\n \"Ctrl-K Ctrl-J\": \"unfoldAll\",\n \"Ctrl-Alt-Up\": \"addCursorToPrevLine\",\n \"Ctrl-Alt-Down\": \"addCursorToNextLine\",\n \"Ctrl-F3\": \"findUnder\",\n \"Shift-Ctrl-F3\": \"findUnderPrevious\",\n \"Alt-F3\": \"findAllUnder\",\n \"Shift-Ctrl-[\": \"fold\",\n \"Shift-Ctrl-]\": \"unfold\",\n \"Ctrl-I\": \"findIncremental\",\n \"Shift-Ctrl-I\": \"findIncrementalReverse\",\n \"Ctrl-H\": \"replace\",\n \"F3\": \"findNext\",\n \"Shift-F3\": \"findPrev\",\n \"fallthrough\": \"pcDefault\"\n };\n CodeMirror.normalizeKeyMap(keyMap.pcSublime);\n\n var mac = keyMap.default == keyMap.macDefault;\n keyMap.sublime = mac ? keyMap.macSublime : keyMap.pcSublime;\n});\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nfunction Context(indented, column, type, info, align, prev) {\n this.indented = indented;\n this.column = column;\n this.type = type;\n this.info = info;\n this.align = align;\n this.prev = prev;\n}\nfunction pushContext(state, col, type, info) {\n var indent = state.indented;\n if (state.context && state.context.type == \"statement\" && type != \"statement\")\n indent = state.context.indented;\n return state.context = new Context(indent, col, type, info, null, state.context);\n}\nfunction popContext(state) {\n var t = state.context.type;\n if (t == \")\" || t == \"]\" || t == \"}\")\n state.indented = state.context.indented;\n return state.context = state.context.prev;\n}\n\nfunction typeBefore(stream, state, pos) {\n if (state.prevToken == \"variable\" || state.prevToken == \"type\") return true;\n if (/\\S(?:[^- ]>|[*\\]])\\s*$|\\*$/.test(stream.string.slice(0, pos))) return true;\n if (state.typeAtEndOfLine && stream.column() == stream.indentation()) return true;\n}\n\nfunction isTopScope(context) {\n for (;;) {\n if (!context || context.type == \"top\") return true;\n if (context.type == \"}\" && context.prev.info != \"namespace\") return false;\n context = context.prev;\n }\n}\n\nCodeMirror.defineMode(\"clike\", function(config, parserConfig) {\n var indentUnit = config.indentUnit,\n statementIndentUnit = parserConfig.statementIndentUnit || indentUnit,\n dontAlignCalls = parserConfig.dontAlignCalls,\n keywords = parserConfig.keywords || {},\n types = parserConfig.types || {},\n builtin = parserConfig.builtin || {},\n blockKeywords = parserConfig.blockKeywords || {},\n defKeywords = parserConfig.defKeywords || {},\n atoms = parserConfig.atoms || {},\n hooks = parserConfig.hooks || {},\n multiLineStrings = parserConfig.multiLineStrings,\n indentStatements = parserConfig.indentStatements !== false,\n indentSwitch = parserConfig.indentSwitch !== false,\n namespaceSeparator = parserConfig.namespaceSeparator,\n isPunctuationChar = parserConfig.isPunctuationChar || /[\\[\\]{}\\(\\),;\\:\\.]/,\n numberStart = parserConfig.numberStart || /[\\d\\.]/,\n number = parserConfig.number || /^(?:0x[a-f\\d]+|0b[01]+|(?:\\d+\\.?\\d*|\\.\\d+)(?:e[-+]?\\d+)?)(u|ll?|l|f)?/i,\n isOperatorChar = parserConfig.isOperatorChar || /[+\\-*&%=<>!?|\\/]/,\n isIdentifierChar = parserConfig.isIdentifierChar || /[\\w\\$_\\xa1-\\uffff]/,\n // An optional function that takes a {string} token and returns true if it\n // should be treated as a builtin.\n isReservedIdentifier = parserConfig.isReservedIdentifier || false;\n\n var curPunc, isDefKeyword;\n\n function tokenBase(stream, state) {\n var ch = stream.next();\n if (hooks[ch]) {\n var result = hooks[ch](stream, state);\n if (result !== false) return result;\n }\n if (ch == '\"' || ch == \"'\") {\n state.tokenize = tokenString(ch);\n return state.tokenize(stream, state);\n }\n if (numberStart.test(ch)) {\n stream.backUp(1)\n if (stream.match(number)) return \"number\"\n stream.next()\n }\n if (isPunctuationChar.test(ch)) {\n curPunc = ch;\n return null;\n }\n if (ch == \"/\") {\n if (stream.eat(\"*\")) {\n state.tokenize = tokenComment;\n return tokenComment(stream, state);\n }\n if (stream.eat(\"/\")) {\n stream.skipToEnd();\n return \"comment\";\n }\n }\n if (isOperatorChar.test(ch)) {\n while (!stream.match(/^\\/[\\/*]/, false) && stream.eat(isOperatorChar)) {}\n return \"operator\";\n }\n stream.eatWhile(isIdentifierChar);\n if (namespaceSeparator) while (stream.match(namespaceSeparator))\n stream.eatWhile(isIdentifierChar);\n\n var cur = stream.current();\n if (contains(keywords, cur)) {\n if (contains(blockKeywords, cur)) curPunc = \"newstatement\";\n if (contains(defKeywords, cur)) isDefKeyword = true;\n return \"keyword\";\n }\n if (contains(types, cur)) return \"type\";\n if (contains(builtin, cur)\n || (isReservedIdentifier && isReservedIdentifier(cur))) {\n if (contains(blockKeywords, cur)) curPunc = \"newstatement\";\n return \"builtin\";\n }\n if (contains(atoms, cur)) return \"atom\";\n return \"variable\";\n }\n\n function tokenString(quote) {\n return function(stream, state) {\n var escaped = false, next, end = false;\n while ((next = stream.next()) != null) {\n if (next == quote && !escaped) {end = true; break;}\n escaped = !escaped && next == \"\\\\\";\n }\n if (end || !(escaped || multiLineStrings))\n state.tokenize = null;\n return \"string\";\n };\n }\n\n function tokenComment(stream, state) {\n var maybeEnd = false, ch;\n while (ch = stream.next()) {\n if (ch == \"/\" && maybeEnd) {\n state.tokenize = null;\n break;\n }\n maybeEnd = (ch == \"*\");\n }\n return \"comment\";\n }\n\n function maybeEOL(stream, state) {\n if (parserConfig.typeFirstDefinitions && stream.eol() && isTopScope(state.context))\n state.typeAtEndOfLine = typeBefore(stream, state, stream.pos)\n }\n\n // Interface\n\n return {\n startState: function(basecolumn) {\n return {\n tokenize: null,\n context: new Context((basecolumn || 0) - indentUnit, 0, \"top\", null, false),\n indented: 0,\n startOfLine: true,\n prevToken: null\n };\n },\n\n token: function(stream, state) {\n var ctx = state.context;\n if (stream.sol()) {\n if (ctx.align == null) ctx.align = false;\n state.indented = stream.indentation();\n state.startOfLine = true;\n }\n if (stream.eatSpace()) { maybeEOL(stream, state); return null; }\n curPunc = isDefKeyword = null;\n var style = (state.tokenize || tokenBase)(stream, state);\n if (style == \"comment\" || style == \"meta\") return style;\n if (ctx.align == null) ctx.align = true;\n\n if (curPunc == \";\" || curPunc == \":\" || (curPunc == \",\" && stream.match(/^\\s*(?:\\/\\/.*)?$/, false)))\n while (state.context.type == \"statement\") popContext(state);\n else if (curPunc == \"{\") pushContext(state, stream.column(), \"}\");\n else if (curPunc == \"[\") pushContext(state, stream.column(), \"]\");\n else if (curPunc == \"(\") pushContext(state, stream.column(), \")\");\n else if (curPunc == \"}\") {\n while (ctx.type == \"statement\") ctx = popContext(state);\n if (ctx.type == \"}\") ctx = popContext(state);\n while (ctx.type == \"statement\") ctx = popContext(state);\n }\n else if (curPunc == ctx.type) popContext(state);\n else if (indentStatements &&\n (((ctx.type == \"}\" || ctx.type == \"top\") && curPunc != \";\") ||\n (ctx.type == \"statement\" && curPunc == \"newstatement\"))) {\n pushContext(state, stream.column(), \"statement\", stream.current());\n }\n\n if (style == \"variable\" &&\n ((state.prevToken == \"def\" ||\n (parserConfig.typeFirstDefinitions && typeBefore(stream, state, stream.start) &&\n isTopScope(state.context) && stream.match(/^\\s*\\(/, false)))))\n style = \"def\";\n\n if (hooks.token) {\n var result = hooks.token(stream, state, style);\n if (result !== undefined) style = result;\n }\n\n if (style == \"def\" && parserConfig.styleDefs === false) style = \"variable\";\n\n state.startOfLine = false;\n state.prevToken = isDefKeyword ? \"def\" : style || curPunc;\n maybeEOL(stream, state);\n return style;\n },\n\n indent: function(state, textAfter) {\n if (state.tokenize != tokenBase && state.tokenize != null || state.typeAtEndOfLine) return CodeMirror.Pass;\n var ctx = state.context, firstChar = textAfter && textAfter.charAt(0);\n var closing = firstChar == ctx.type;\n if (ctx.type == \"statement\" && firstChar == \"}\") ctx = ctx.prev;\n if (parserConfig.dontIndentStatements)\n while (ctx.type == \"statement\" && parserConfig.dontIndentStatements.test(ctx.info))\n ctx = ctx.prev\n if (hooks.indent) {\n var hook = hooks.indent(state, ctx, textAfter, indentUnit);\n if (typeof hook == \"number\") return hook\n }\n var switchBlock = ctx.prev && ctx.prev.info == \"switch\";\n if (parserConfig.allmanIndentation && /[{(]/.test(firstChar)) {\n while (ctx.type != \"top\" && ctx.type != \"}\") ctx = ctx.prev\n return ctx.indented\n }\n if (ctx.type == \"statement\")\n return ctx.indented + (firstChar == \"{\" ? 0 : statementIndentUnit);\n if (ctx.align && (!dontAlignCalls || ctx.type != \")\"))\n return ctx.column + (closing ? 0 : 1);\n if (ctx.type == \")\" && !closing)\n return ctx.indented + statementIndentUnit;\n\n return ctx.indented + (closing ? 0 : indentUnit) +\n (!closing && switchBlock && !/^(?:case|default)\\b/.test(textAfter) ? indentUnit : 0);\n },\n\n electricInput: indentSwitch ? /^\\s*(?:case .*?:|default:|\\{\\}?|\\})$/ : /^\\s*[{}]$/,\n blockCommentStart: \"/*\",\n blockCommentEnd: \"*/\",\n blockCommentContinue: \" * \",\n lineComment: \"//\",\n fold: \"brace\"\n };\n});\n\n function words(str) {\n var obj = {}, words = str.split(\" \");\n for (var i = 0; i < words.length; ++i) obj[words[i]] = true;\n return obj;\n }\n function contains(words, word) {\n if (typeof words === \"function\") {\n return words(word);\n } else {\n return words.propertyIsEnumerable(word);\n }\n }\n var cKeywords = \"auto if break case register continue return default do sizeof \" +\n \"static else struct switch extern typedef union for goto while enum const \" +\n \"volatile inline restrict asm fortran\";\n\n // Keywords from https://en.cppreference.com/w/cpp/keyword includes C++20.\n var cppKeywords = \"alignas alignof and and_eq audit axiom bitand bitor catch \" +\n \"class compl concept constexpr const_cast decltype delete dynamic_cast \" +\n \"explicit export final friend import module mutable namespace new noexcept \" +\n \"not not_eq operator or or_eq override private protected public \" +\n \"reinterpret_cast requires static_assert static_cast template this \" +\n \"thread_local throw try typeid typename using virtual xor xor_eq\";\n\n var objCKeywords = \"bycopy byref in inout oneway out self super atomic nonatomic retain copy \" +\n \"readwrite readonly strong weak assign typeof nullable nonnull null_resettable _cmd \" +\n \"@interface @implementation @end @protocol @encode @property @synthesize @dynamic @class \" +\n \"@public @package @private @protected @required @optional @try @catch @finally @import \" +\n \"@selector @encode @defs @synchronized @autoreleasepool @compatibility_alias @available\";\n\n var objCBuiltins = \"FOUNDATION_EXPORT FOUNDATION_EXTERN NS_INLINE NS_FORMAT_FUNCTION \" +\n \" NS_RETURNS_RETAINEDNS_ERROR_ENUM NS_RETURNS_NOT_RETAINED NS_RETURNS_INNER_POINTER \" +\n \"NS_DESIGNATED_INITIALIZER NS_ENUM NS_OPTIONS NS_REQUIRES_NIL_TERMINATION \" +\n \"NS_ASSUME_NONNULL_BEGIN NS_ASSUME_NONNULL_END NS_SWIFT_NAME NS_REFINED_FOR_SWIFT\"\n\n // Do not use this. Use the cTypes function below. This is global just to avoid\n // excessive calls when cTypes is being called multiple times during a parse.\n var basicCTypes = words(\"int long char short double float unsigned signed \" +\n \"void bool\");\n\n // Do not use this. Use the objCTypes function below. This is global just to avoid\n // excessive calls when objCTypes is being called multiple times during a parse.\n var basicObjCTypes = words(\"SEL instancetype id Class Protocol BOOL\");\n\n // Returns true if identifier is a \"C\" type.\n // C type is defined as those that are reserved by the compiler (basicTypes),\n // and those that end in _t (Reserved by POSIX for types)\n // http://www.gnu.org/software/libc/manual/html_node/Reserved-Names.html\n function cTypes(identifier) {\n return contains(basicCTypes, identifier) || /.+_t$/.test(identifier);\n }\n\n // Returns true if identifier is a \"Objective C\" type.\n function objCTypes(identifier) {\n return cTypes(identifier) || contains(basicObjCTypes, identifier);\n }\n\n var cBlockKeywords = \"case do else for if switch while struct enum union\";\n var cDefKeywords = \"struct enum union\";\n\n function cppHook(stream, state) {\n if (!state.startOfLine) return false\n for (var ch, next = null; ch = stream.peek();) {\n if (ch == \"\\\\\" && stream.match(/^.$/)) {\n next = cppHook\n break\n } else if (ch == \"/\" && stream.match(/^\\/[\\/\\*]/, false)) {\n break\n }\n stream.next()\n }\n state.tokenize = next\n return \"meta\"\n }\n\n function pointerHook(_stream, state) {\n if (state.prevToken == \"type\") return \"type\";\n return false;\n }\n\n // For C and C++ (and ObjC): identifiers starting with __\n // or _ followed by a capital letter are reserved for the compiler.\n function cIsReservedIdentifier(token) {\n if (!token || token.length < 2) return false;\n if (token[0] != '_') return false;\n return (token[1] == '_') || (token[1] !== token[1].toLowerCase());\n }\n\n function cpp14Literal(stream) {\n stream.eatWhile(/[\\w\\.']/);\n return \"number\";\n }\n\n function cpp11StringHook(stream, state) {\n stream.backUp(1);\n // Raw strings.\n if (stream.match(/^(?:R|u8R|uR|UR|LR)/)) {\n var match = stream.match(/^\"([^\\s\\\\()]{0,16})\\(/);\n if (!match) {\n return false;\n }\n state.cpp11RawStringDelim = match[1];\n state.tokenize = tokenRawString;\n return tokenRawString(stream, state);\n }\n // Unicode strings/chars.\n if (stream.match(/^(?:u8|u|U|L)/)) {\n if (stream.match(/^[\"']/, /* eat */ false)) {\n return \"string\";\n }\n return false;\n }\n // Ignore this hook.\n stream.next();\n return false;\n }\n\n function cppLooksLikeConstructor(word) {\n var lastTwo = /(\\w+)::~?(\\w+)$/.exec(word);\n return lastTwo && lastTwo[1] == lastTwo[2];\n }\n\n // C#-style strings where \"\" escapes a quote.\n function tokenAtString(stream, state) {\n var next;\n while ((next = stream.next()) != null) {\n if (next == '\"' && !stream.eat('\"')) {\n state.tokenize = null;\n break;\n }\n }\n return \"string\";\n }\n\n // C++11 raw string literal is \"( anything )\", where\n // can be a string up to 16 characters long.\n function tokenRawString(stream, state) {\n // Escape characters that have special regex meanings.\n var delim = state.cpp11RawStringDelim.replace(/[^\\w\\s]/g, '\\\\$&');\n var match = stream.match(new RegExp(\".*?\\\\)\" + delim + '\"'));\n if (match)\n state.tokenize = null;\n else\n stream.skipToEnd();\n return \"string\";\n }\n\n function def(mimes, mode) {\n if (typeof mimes == \"string\") mimes = [mimes];\n var words = [];\n function add(obj) {\n if (obj) for (var prop in obj) if (obj.hasOwnProperty(prop))\n words.push(prop);\n }\n add(mode.keywords);\n add(mode.types);\n add(mode.builtin);\n add(mode.atoms);\n if (words.length) {\n mode.helperType = mimes[0];\n CodeMirror.registerHelper(\"hintWords\", mimes[0], words);\n }\n\n for (var i = 0; i < mimes.length; ++i)\n CodeMirror.defineMIME(mimes[i], mode);\n }\n\n def([\"text/x-csrc\", \"text/x-c\", \"text/x-chdr\"], {\n name: \"clike\",\n keywords: words(cKeywords),\n types: cTypes,\n blockKeywords: words(cBlockKeywords),\n defKeywords: words(cDefKeywords),\n typeFirstDefinitions: true,\n atoms: words(\"NULL true false\"),\n isReservedIdentifier: cIsReservedIdentifier,\n hooks: {\n \"#\": cppHook,\n \"*\": pointerHook,\n },\n modeProps: {fold: [\"brace\", \"include\"]}\n });\n\n def([\"text/x-c++src\", \"text/x-c++hdr\"], {\n name: \"clike\",\n keywords: words(cKeywords + \" \" + cppKeywords),\n types: cTypes,\n blockKeywords: words(cBlockKeywords + \" class try catch\"),\n defKeywords: words(cDefKeywords + \" class namespace\"),\n typeFirstDefinitions: true,\n atoms: words(\"true false NULL nullptr\"),\n dontIndentStatements: /^template$/,\n isIdentifierChar: /[\\w\\$_~\\xa1-\\uffff]/,\n isReservedIdentifier: cIsReservedIdentifier,\n hooks: {\n \"#\": cppHook,\n \"*\": pointerHook,\n \"u\": cpp11StringHook,\n \"U\": cpp11StringHook,\n \"L\": cpp11StringHook,\n \"R\": cpp11StringHook,\n \"0\": cpp14Literal,\n \"1\": cpp14Literal,\n \"2\": cpp14Literal,\n \"3\": cpp14Literal,\n \"4\": cpp14Literal,\n \"5\": cpp14Literal,\n \"6\": cpp14Literal,\n \"7\": cpp14Literal,\n \"8\": cpp14Literal,\n \"9\": cpp14Literal,\n token: function(stream, state, style) {\n if (style == \"variable\" && stream.peek() == \"(\" &&\n (state.prevToken == \";\" || state.prevToken == null ||\n state.prevToken == \"}\") &&\n cppLooksLikeConstructor(stream.current()))\n return \"def\";\n }\n },\n namespaceSeparator: \"::\",\n modeProps: {fold: [\"brace\", \"include\"]}\n });\n\n def(\"text/x-java\", {\n name: \"clike\",\n keywords: words(\"abstract assert break case catch class const continue default \" +\n \"do else enum extends final finally for goto if implements import \" +\n \"instanceof interface native new package private protected public \" +\n \"return static strictfp super switch synchronized this throw throws transient \" +\n \"try volatile while @interface\"),\n types: words(\"byte short int long float double boolean char void Boolean Byte Character Double Float \" +\n \"Integer Long Number Object Short String StringBuffer StringBuilder Void\"),\n blockKeywords: words(\"catch class do else finally for if switch try while\"),\n defKeywords: words(\"class interface enum @interface\"),\n typeFirstDefinitions: true,\n atoms: words(\"true false null\"),\n number: /^(?:0x[a-f\\d_]+|0b[01_]+|(?:[\\d_]+\\.?\\d*|\\.\\d+)(?:e[-+]?[\\d_]+)?)(u|ll?|l|f)?/i,\n hooks: {\n \"@\": function(stream) {\n // Don't match the @interface keyword.\n if (stream.match('interface', false)) return false;\n\n stream.eatWhile(/[\\w\\$_]/);\n return \"meta\";\n }\n },\n modeProps: {fold: [\"brace\", \"import\"]}\n });\n\n def(\"text/x-csharp\", {\n name: \"clike\",\n keywords: words(\"abstract as async await base break case catch checked class const continue\" +\n \" default delegate do else enum event explicit extern finally fixed for\" +\n \" foreach goto if implicit in interface internal is lock namespace new\" +\n \" operator out override params private protected public readonly ref return sealed\" +\n \" sizeof stackalloc static struct switch this throw try typeof unchecked\" +\n \" unsafe using virtual void volatile while add alias ascending descending dynamic from get\" +\n \" global group into join let orderby partial remove select set value var yield\"),\n types: words(\"Action Boolean Byte Char DateTime DateTimeOffset Decimal Double Func\" +\n \" Guid Int16 Int32 Int64 Object SByte Single String Task TimeSpan UInt16 UInt32\" +\n \" UInt64 bool byte char decimal double short int long object\" +\n \" sbyte float string ushort uint ulong\"),\n blockKeywords: words(\"catch class do else finally for foreach if struct switch try while\"),\n defKeywords: words(\"class interface namespace struct var\"),\n typeFirstDefinitions: true,\n atoms: words(\"true false null\"),\n hooks: {\n \"@\": function(stream, state) {\n if (stream.eat('\"')) {\n state.tokenize = tokenAtString;\n return tokenAtString(stream, state);\n }\n stream.eatWhile(/[\\w\\$_]/);\n return \"meta\";\n }\n }\n });\n\n function tokenTripleString(stream, state) {\n var escaped = false;\n while (!stream.eol()) {\n if (!escaped && stream.match('\"\"\"')) {\n state.tokenize = null;\n break;\n }\n escaped = stream.next() == \"\\\\\" && !escaped;\n }\n return \"string\";\n }\n\n function tokenNestedComment(depth) {\n return function (stream, state) {\n var ch\n while (ch = stream.next()) {\n if (ch == \"*\" && stream.eat(\"/\")) {\n if (depth == 1) {\n state.tokenize = null\n break\n } else {\n state.tokenize = tokenNestedComment(depth - 1)\n return state.tokenize(stream, state)\n }\n } else if (ch == \"/\" && stream.eat(\"*\")) {\n state.tokenize = tokenNestedComment(depth + 1)\n return state.tokenize(stream, state)\n }\n }\n return \"comment\"\n }\n }\n\n def(\"text/x-scala\", {\n name: \"clike\",\n keywords: words(\n /* scala */\n \"abstract case catch class def do else extends final finally for forSome if \" +\n \"implicit import lazy match new null object override package private protected return \" +\n \"sealed super this throw trait try type val var while with yield _ \" +\n\n /* package scala */\n \"assert assume require print println printf readLine readBoolean readByte readShort \" +\n \"readChar readInt readLong readFloat readDouble\"\n ),\n types: words(\n \"AnyVal App Application Array BufferedIterator BigDecimal BigInt Char Console Either \" +\n \"Enumeration Equiv Error Exception Fractional Function IndexedSeq Int Integral Iterable \" +\n \"Iterator List Map Numeric Nil NotNull Option Ordered Ordering PartialFunction PartialOrdering \" +\n \"Product Proxy Range Responder Seq Serializable Set Specializable Stream StringBuilder \" +\n \"StringContext Symbol Throwable Traversable TraversableOnce Tuple Unit Vector \" +\n\n /* package java.lang */\n \"Boolean Byte Character CharSequence Class ClassLoader Cloneable Comparable \" +\n \"Compiler Double Exception Float Integer Long Math Number Object Package Pair Process \" +\n \"Runtime Runnable SecurityManager Short StackTraceElement StrictMath String \" +\n \"StringBuffer System Thread ThreadGroup ThreadLocal Throwable Triple Void\"\n ),\n multiLineStrings: true,\n blockKeywords: words(\"catch class enum do else finally for forSome if match switch try while\"),\n defKeywords: words(\"class enum def object package trait type val var\"),\n atoms: words(\"true false null\"),\n indentStatements: false,\n indentSwitch: false,\n isOperatorChar: /[+\\-*&%=<>!?|\\/#:@]/,\n hooks: {\n \"@\": function(stream) {\n stream.eatWhile(/[\\w\\$_]/);\n return \"meta\";\n },\n '\"': function(stream, state) {\n if (!stream.match('\"\"')) return false;\n state.tokenize = tokenTripleString;\n return state.tokenize(stream, state);\n },\n \"'\": function(stream) {\n stream.eatWhile(/[\\w\\$_\\xa1-\\uffff]/);\n return \"atom\";\n },\n \"=\": function(stream, state) {\n var cx = state.context\n if (cx.type == \"}\" && cx.align && stream.eat(\">\")) {\n state.context = new Context(cx.indented, cx.column, cx.type, cx.info, null, cx.prev)\n return \"operator\"\n } else {\n return false\n }\n },\n\n \"/\": function(stream, state) {\n if (!stream.eat(\"*\")) return false\n state.tokenize = tokenNestedComment(1)\n return state.tokenize(stream, state)\n }\n },\n modeProps: {closeBrackets: {pairs: '()[]{}\"\"', triples: '\"'}}\n });\n\n function tokenKotlinString(tripleString){\n return function (stream, state) {\n var escaped = false, next, end = false;\n while (!stream.eol()) {\n if (!tripleString && !escaped && stream.match('\"') ) {end = true; break;}\n if (tripleString && stream.match('\"\"\"')) {end = true; break;}\n next = stream.next();\n if(!escaped && next == \"$\" && stream.match('{'))\n stream.skipTo(\"}\");\n escaped = !escaped && next == \"\\\\\" && !tripleString;\n }\n if (end || !tripleString)\n state.tokenize = null;\n return \"string\";\n }\n }\n\n def(\"text/x-kotlin\", {\n name: \"clike\",\n keywords: words(\n /*keywords*/\n \"package as typealias class interface this super val operator \" +\n \"var fun for is in This throw return annotation \" +\n \"break continue object if else while do try when !in !is as? \" +\n\n /*soft keywords*/\n \"file import where by get set abstract enum open inner override private public internal \" +\n \"protected catch finally out final vararg reified dynamic companion constructor init \" +\n \"sealed field property receiver param sparam lateinit data inline noinline tailrec \" +\n \"external annotation crossinline const operator infix suspend actual expect setparam value\"\n ),\n types: words(\n /* package java.lang */\n \"Boolean Byte Character CharSequence Class ClassLoader Cloneable Comparable \" +\n \"Compiler Double Exception Float Integer Long Math Number Object Package Pair Process \" +\n \"Runtime Runnable SecurityManager Short StackTraceElement StrictMath String \" +\n \"StringBuffer System Thread ThreadGroup ThreadLocal Throwable Triple Void Annotation Any BooleanArray \" +\n \"ByteArray Char CharArray DeprecationLevel DoubleArray Enum FloatArray Function Int IntArray Lazy \" +\n \"LazyThreadSafetyMode LongArray Nothing ShortArray Unit\"\n ),\n intendSwitch: false,\n indentStatements: false,\n multiLineStrings: true,\n number: /^(?:0x[a-f\\d_]+|0b[01_]+|(?:[\\d_]+(\\.\\d+)?|\\.\\d+)(?:e[-+]?[\\d_]+)?)(u|ll?|l|f)?/i,\n blockKeywords: words(\"catch class do else finally for if where try while enum\"),\n defKeywords: words(\"class val var object interface fun\"),\n atoms: words(\"true false null this\"),\n hooks: {\n \"@\": function(stream) {\n stream.eatWhile(/[\\w\\$_]/);\n return \"meta\";\n },\n '*': function(_stream, state) {\n return state.prevToken == '.' ? 'variable' : 'operator';\n },\n '\"': function(stream, state) {\n state.tokenize = tokenKotlinString(stream.match('\"\"'));\n return state.tokenize(stream, state);\n },\n \"/\": function(stream, state) {\n if (!stream.eat(\"*\")) return false;\n state.tokenize = tokenNestedComment(1);\n return state.tokenize(stream, state)\n },\n indent: function(state, ctx, textAfter, indentUnit) {\n var firstChar = textAfter && textAfter.charAt(0);\n if ((state.prevToken == \"}\" || state.prevToken == \")\") && textAfter == \"\")\n return state.indented;\n if ((state.prevToken == \"operator\" && textAfter != \"}\" && state.context.type != \"}\") ||\n state.prevToken == \"variable\" && firstChar == \".\" ||\n (state.prevToken == \"}\" || state.prevToken == \")\") && firstChar == \".\")\n return indentUnit * 2 + ctx.indented;\n if (ctx.align && ctx.type == \"}\")\n return ctx.indented + (state.context.type == (textAfter || \"\").charAt(0) ? 0 : indentUnit);\n }\n },\n modeProps: {closeBrackets: {triples: '\"'}}\n });\n\n def([\"x-shader/x-vertex\", \"x-shader/x-fragment\"], {\n name: \"clike\",\n keywords: words(\"sampler1D sampler2D sampler3D samplerCube \" +\n \"sampler1DShadow sampler2DShadow \" +\n \"const attribute uniform varying \" +\n \"break continue discard return \" +\n \"for while do if else struct \" +\n \"in out inout\"),\n types: words(\"float int bool void \" +\n \"vec2 vec3 vec4 ivec2 ivec3 ivec4 bvec2 bvec3 bvec4 \" +\n \"mat2 mat3 mat4\"),\n blockKeywords: words(\"for while do if else struct\"),\n builtin: words(\"radians degrees sin cos tan asin acos atan \" +\n \"pow exp log exp2 sqrt inversesqrt \" +\n \"abs sign floor ceil fract mod min max clamp mix step smoothstep \" +\n \"length distance dot cross normalize ftransform faceforward \" +\n \"reflect refract matrixCompMult \" +\n \"lessThan lessThanEqual greaterThan greaterThanEqual \" +\n \"equal notEqual any all not \" +\n \"texture1D texture1DProj texture1DLod texture1DProjLod \" +\n \"texture2D texture2DProj texture2DLod texture2DProjLod \" +\n \"texture3D texture3DProj texture3DLod texture3DProjLod \" +\n \"textureCube textureCubeLod \" +\n \"shadow1D shadow2D shadow1DProj shadow2DProj \" +\n \"shadow1DLod shadow2DLod shadow1DProjLod shadow2DProjLod \" +\n \"dFdx dFdy fwidth \" +\n \"noise1 noise2 noise3 noise4\"),\n atoms: words(\"true false \" +\n \"gl_FragColor gl_SecondaryColor gl_Normal gl_Vertex \" +\n \"gl_MultiTexCoord0 gl_MultiTexCoord1 gl_MultiTexCoord2 gl_MultiTexCoord3 \" +\n \"gl_MultiTexCoord4 gl_MultiTexCoord5 gl_MultiTexCoord6 gl_MultiTexCoord7 \" +\n \"gl_FogCoord gl_PointCoord \" +\n \"gl_Position gl_PointSize gl_ClipVertex \" +\n \"gl_FrontColor gl_BackColor gl_FrontSecondaryColor gl_BackSecondaryColor \" +\n \"gl_TexCoord gl_FogFragCoord \" +\n \"gl_FragCoord gl_FrontFacing \" +\n \"gl_FragData gl_FragDepth \" +\n \"gl_ModelViewMatrix gl_ProjectionMatrix gl_ModelViewProjectionMatrix \" +\n \"gl_TextureMatrix gl_NormalMatrix gl_ModelViewMatrixInverse \" +\n \"gl_ProjectionMatrixInverse gl_ModelViewProjectionMatrixInverse \" +\n \"gl_TextureMatrixTranspose gl_ModelViewMatrixInverseTranspose \" +\n \"gl_ProjectionMatrixInverseTranspose \" +\n \"gl_ModelViewProjectionMatrixInverseTranspose \" +\n \"gl_TextureMatrixInverseTranspose \" +\n \"gl_NormalScale gl_DepthRange gl_ClipPlane \" +\n \"gl_Point gl_FrontMaterial gl_BackMaterial gl_LightSource gl_LightModel \" +\n \"gl_FrontLightModelProduct gl_BackLightModelProduct \" +\n \"gl_TextureColor gl_EyePlaneS gl_EyePlaneT gl_EyePlaneR gl_EyePlaneQ \" +\n \"gl_FogParameters \" +\n \"gl_MaxLights gl_MaxClipPlanes gl_MaxTextureUnits gl_MaxTextureCoords \" +\n \"gl_MaxVertexAttribs gl_MaxVertexUniformComponents gl_MaxVaryingFloats \" +\n \"gl_MaxVertexTextureImageUnits gl_MaxTextureImageUnits \" +\n \"gl_MaxFragmentUniformComponents gl_MaxCombineTextureImageUnits \" +\n \"gl_MaxDrawBuffers\"),\n indentSwitch: false,\n hooks: {\"#\": cppHook},\n modeProps: {fold: [\"brace\", \"include\"]}\n });\n\n def(\"text/x-nesc\", {\n name: \"clike\",\n keywords: words(cKeywords + \" as atomic async call command component components configuration event generic \" +\n \"implementation includes interface module new norace nx_struct nx_union post provides \" +\n \"signal task uses abstract extends\"),\n types: cTypes,\n blockKeywords: words(cBlockKeywords),\n atoms: words(\"null true false\"),\n hooks: {\"#\": cppHook},\n modeProps: {fold: [\"brace\", \"include\"]}\n });\n\n def(\"text/x-objectivec\", {\n name: \"clike\",\n keywords: words(cKeywords + \" \" + objCKeywords),\n types: objCTypes,\n builtin: words(objCBuiltins),\n blockKeywords: words(cBlockKeywords + \" @synthesize @try @catch @finally @autoreleasepool @synchronized\"),\n defKeywords: words(cDefKeywords + \" @interface @implementation @protocol @class\"),\n dontIndentStatements: /^@.*$/,\n typeFirstDefinitions: true,\n atoms: words(\"YES NO NULL Nil nil true false nullptr\"),\n isReservedIdentifier: cIsReservedIdentifier,\n hooks: {\n \"#\": cppHook,\n \"*\": pointerHook,\n },\n modeProps: {fold: [\"brace\", \"include\"]}\n });\n\n def(\"text/x-objectivec++\", {\n name: \"clike\",\n keywords: words(cKeywords + \" \" + objCKeywords + \" \" + cppKeywords),\n types: objCTypes,\n builtin: words(objCBuiltins),\n blockKeywords: words(cBlockKeywords + \" @synthesize @try @catch @finally @autoreleasepool @synchronized class try catch\"),\n defKeywords: words(cDefKeywords + \" @interface @implementation @protocol @class class namespace\"),\n dontIndentStatements: /^@.*$|^template$/,\n typeFirstDefinitions: true,\n atoms: words(\"YES NO NULL Nil nil true false nullptr\"),\n isReservedIdentifier: cIsReservedIdentifier,\n hooks: {\n \"#\": cppHook,\n \"*\": pointerHook,\n \"u\": cpp11StringHook,\n \"U\": cpp11StringHook,\n \"L\": cpp11StringHook,\n \"R\": cpp11StringHook,\n \"0\": cpp14Literal,\n \"1\": cpp14Literal,\n \"2\": cpp14Literal,\n \"3\": cpp14Literal,\n \"4\": cpp14Literal,\n \"5\": cpp14Literal,\n \"6\": cpp14Literal,\n \"7\": cpp14Literal,\n \"8\": cpp14Literal,\n \"9\": cpp14Literal,\n token: function(stream, state, style) {\n if (style == \"variable\" && stream.peek() == \"(\" &&\n (state.prevToken == \";\" || state.prevToken == null ||\n state.prevToken == \"}\") &&\n cppLooksLikeConstructor(stream.current()))\n return \"def\";\n }\n },\n namespaceSeparator: \"::\",\n modeProps: {fold: [\"brace\", \"include\"]}\n });\n\n def(\"text/x-squirrel\", {\n name: \"clike\",\n keywords: words(\"base break clone continue const default delete enum extends function in class\" +\n \" foreach local resume return this throw typeof yield constructor instanceof static\"),\n types: cTypes,\n blockKeywords: words(\"case catch class else for foreach if switch try while\"),\n defKeywords: words(\"function local class\"),\n typeFirstDefinitions: true,\n atoms: words(\"true false null\"),\n hooks: {\"#\": cppHook},\n modeProps: {fold: [\"brace\", \"include\"]}\n });\n\n // Ceylon Strings need to deal with interpolation\n var stringTokenizer = null;\n function tokenCeylonString(type) {\n return function(stream, state) {\n var escaped = false, next, end = false;\n while (!stream.eol()) {\n if (!escaped && stream.match('\"') &&\n (type == \"single\" || stream.match('\"\"'))) {\n end = true;\n break;\n }\n if (!escaped && stream.match('``')) {\n stringTokenizer = tokenCeylonString(type);\n end = true;\n break;\n }\n next = stream.next();\n escaped = type == \"single\" && !escaped && next == \"\\\\\";\n }\n if (end)\n state.tokenize = null;\n return \"string\";\n }\n }\n\n def(\"text/x-ceylon\", {\n name: \"clike\",\n keywords: words(\"abstracts alias assembly assert assign break case catch class continue dynamic else\" +\n \" exists extends finally for function given if import in interface is let module new\" +\n \" nonempty object of out outer package return satisfies super switch then this throw\" +\n \" try value void while\"),\n types: function(word) {\n // In Ceylon all identifiers that start with an uppercase are types\n var first = word.charAt(0);\n return (first === first.toUpperCase() && first !== first.toLowerCase());\n },\n blockKeywords: words(\"case catch class dynamic else finally for function if interface module new object switch try while\"),\n defKeywords: words(\"class dynamic function interface module object package value\"),\n builtin: words(\"abstract actual aliased annotation by default deprecated doc final formal late license\" +\n \" native optional sealed see serializable shared suppressWarnings tagged throws variable\"),\n isPunctuationChar: /[\\[\\]{}\\(\\),;\\:\\.`]/,\n isOperatorChar: /[+\\-*&%=<>!?|^~:\\/]/,\n numberStart: /[\\d#$]/,\n number: /^(?:#[\\da-fA-F_]+|\\$[01_]+|[\\d_]+[kMGTPmunpf]?|[\\d_]+\\.[\\d_]+(?:[eE][-+]?\\d+|[kMGTPmunpf]|)|)/i,\n multiLineStrings: true,\n typeFirstDefinitions: true,\n atoms: words(\"true false null larger smaller equal empty finished\"),\n indentSwitch: false,\n styleDefs: false,\n hooks: {\n \"@\": function(stream) {\n stream.eatWhile(/[\\w\\$_]/);\n return \"meta\";\n },\n '\"': function(stream, state) {\n state.tokenize = tokenCeylonString(stream.match('\"\"') ? \"triple\" : \"single\");\n return state.tokenize(stream, state);\n },\n '`': function(stream, state) {\n if (!stringTokenizer || !stream.match('`')) return false;\n state.tokenize = stringTokenizer;\n stringTokenizer = null;\n return state.tokenize(stream, state);\n },\n \"'\": function(stream) {\n stream.eatWhile(/[\\w\\$_\\xa1-\\uffff]/);\n return \"atom\";\n },\n token: function(_stream, state, style) {\n if ((style == \"variable\" || style == \"type\") &&\n state.prevToken == \".\") {\n return \"variable-2\";\n }\n }\n },\n modeProps: {\n fold: [\"brace\", \"import\"],\n closeBrackets: {triples: '\"'}\n }\n });\n\n});\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"css\", function(config, parserConfig) {\n var inline = parserConfig.inline\n if (!parserConfig.propertyKeywords) parserConfig = CodeMirror.resolveMode(\"text/css\");\n\n var indentUnit = config.indentUnit,\n tokenHooks = parserConfig.tokenHooks,\n documentTypes = parserConfig.documentTypes || {},\n mediaTypes = parserConfig.mediaTypes || {},\n mediaFeatures = parserConfig.mediaFeatures || {},\n mediaValueKeywords = parserConfig.mediaValueKeywords || {},\n propertyKeywords = parserConfig.propertyKeywords || {},\n nonStandardPropertyKeywords = parserConfig.nonStandardPropertyKeywords || {},\n fontProperties = parserConfig.fontProperties || {},\n counterDescriptors = parserConfig.counterDescriptors || {},\n colorKeywords = parserConfig.colorKeywords || {},\n valueKeywords = parserConfig.valueKeywords || {},\n allowNested = parserConfig.allowNested,\n lineComment = parserConfig.lineComment,\n supportsAtComponent = parserConfig.supportsAtComponent === true,\n highlightNonStandardPropertyKeywords = config.highlightNonStandardPropertyKeywords !== false;\n\n var type, override;\n function ret(style, tp) { type = tp; return style; }\n\n // Tokenizers\n\n function tokenBase(stream, state) {\n var ch = stream.next();\n if (tokenHooks[ch]) {\n var result = tokenHooks[ch](stream, state);\n if (result !== false) return result;\n }\n if (ch == \"@\") {\n stream.eatWhile(/[\\w\\\\\\-]/);\n return ret(\"def\", stream.current());\n } else if (ch == \"=\" || (ch == \"~\" || ch == \"|\") && stream.eat(\"=\")) {\n return ret(null, \"compare\");\n } else if (ch == \"\\\"\" || ch == \"'\") {\n state.tokenize = tokenString(ch);\n return state.tokenize(stream, state);\n } else if (ch == \"#\") {\n stream.eatWhile(/[\\w\\\\\\-]/);\n return ret(\"atom\", \"hash\");\n } else if (ch == \"!\") {\n stream.match(/^\\s*\\w*/);\n return ret(\"keyword\", \"important\");\n } else if (/\\d/.test(ch) || ch == \".\" && stream.eat(/\\d/)) {\n stream.eatWhile(/[\\w.%]/);\n return ret(\"number\", \"unit\");\n } else if (ch === \"-\") {\n if (/[\\d.]/.test(stream.peek())) {\n stream.eatWhile(/[\\w.%]/);\n return ret(\"number\", \"unit\");\n } else if (stream.match(/^-[\\w\\\\\\-]*/)) {\n stream.eatWhile(/[\\w\\\\\\-]/);\n if (stream.match(/^\\s*:/, false))\n return ret(\"variable-2\", \"variable-definition\");\n return ret(\"variable-2\", \"variable\");\n } else if (stream.match(/^\\w+-/)) {\n return ret(\"meta\", \"meta\");\n }\n } else if (/[,+>*\\/]/.test(ch)) {\n return ret(null, \"select-op\");\n } else if (ch == \".\" && stream.match(/^-?[_a-z][_a-z0-9-]*/i)) {\n return ret(\"qualifier\", \"qualifier\");\n } else if (/[:;{}\\[\\]\\(\\)]/.test(ch)) {\n return ret(null, ch);\n } else if (stream.match(/^[\\w-.]+(?=\\()/)) {\n if (/^(url(-prefix)?|domain|regexp)$/i.test(stream.current())) {\n state.tokenize = tokenParenthesized;\n }\n return ret(\"variable callee\", \"variable\");\n } else if (/[\\w\\\\\\-]/.test(ch)) {\n stream.eatWhile(/[\\w\\\\\\-]/);\n return ret(\"property\", \"word\");\n } else {\n return ret(null, null);\n }\n }\n\n function tokenString(quote) {\n return function(stream, state) {\n var escaped = false, ch;\n while ((ch = stream.next()) != null) {\n if (ch == quote && !escaped) {\n if (quote == \")\") stream.backUp(1);\n break;\n }\n escaped = !escaped && ch == \"\\\\\";\n }\n if (ch == quote || !escaped && quote != \")\") state.tokenize = null;\n return ret(\"string\", \"string\");\n };\n }\n\n function tokenParenthesized(stream, state) {\n stream.next(); // Must be '('\n if (!stream.match(/^\\s*[\\\"\\')]/, false))\n state.tokenize = tokenString(\")\");\n else\n state.tokenize = null;\n return ret(null, \"(\");\n }\n\n // Context management\n\n function Context(type, indent, prev) {\n this.type = type;\n this.indent = indent;\n this.prev = prev;\n }\n\n function pushContext(state, stream, type, indent) {\n state.context = new Context(type, stream.indentation() + (indent === false ? 0 : indentUnit), state.context);\n return type;\n }\n\n function popContext(state) {\n if (state.context.prev)\n state.context = state.context.prev;\n return state.context.type;\n }\n\n function pass(type, stream, state) {\n return states[state.context.type](type, stream, state);\n }\n function popAndPass(type, stream, state, n) {\n for (var i = n || 1; i > 0; i--)\n state.context = state.context.prev;\n return pass(type, stream, state);\n }\n\n // Parser\n\n function wordAsValue(stream) {\n var word = stream.current().toLowerCase();\n if (valueKeywords.hasOwnProperty(word))\n override = \"atom\";\n else if (colorKeywords.hasOwnProperty(word))\n override = \"keyword\";\n else\n override = \"variable\";\n }\n\n var states = {};\n\n states.top = function(type, stream, state) {\n if (type == \"{\") {\n return pushContext(state, stream, \"block\");\n } else if (type == \"}\" && state.context.prev) {\n return popContext(state);\n } else if (supportsAtComponent && /@component/i.test(type)) {\n return pushContext(state, stream, \"atComponentBlock\");\n } else if (/^@(-moz-)?document$/i.test(type)) {\n return pushContext(state, stream, \"documentTypes\");\n } else if (/^@(media|supports|(-moz-)?document|import)$/i.test(type)) {\n return pushContext(state, stream, \"atBlock\");\n } else if (/^@(font-face|counter-style)/i.test(type)) {\n state.stateArg = type;\n return \"restricted_atBlock_before\";\n } else if (/^@(-(moz|ms|o|webkit)-)?keyframes$/i.test(type)) {\n return \"keyframes\";\n } else if (type && type.charAt(0) == \"@\") {\n return pushContext(state, stream, \"at\");\n } else if (type == \"hash\") {\n override = \"builtin\";\n } else if (type == \"word\") {\n override = \"tag\";\n } else if (type == \"variable-definition\") {\n return \"maybeprop\";\n } else if (type == \"interpolation\") {\n return pushContext(state, stream, \"interpolation\");\n } else if (type == \":\") {\n return \"pseudo\";\n } else if (allowNested && type == \"(\") {\n return pushContext(state, stream, \"parens\");\n }\n return state.context.type;\n };\n\n states.block = function(type, stream, state) {\n if (type == \"word\") {\n var word = stream.current().toLowerCase();\n if (propertyKeywords.hasOwnProperty(word)) {\n override = \"property\";\n return \"maybeprop\";\n } else if (nonStandardPropertyKeywords.hasOwnProperty(word)) {\n override = highlightNonStandardPropertyKeywords ? \"string-2\" : \"property\";\n return \"maybeprop\";\n } else if (allowNested) {\n override = stream.match(/^\\s*:(?:\\s|$)/, false) ? \"property\" : \"tag\";\n return \"block\";\n } else {\n override += \" error\";\n return \"maybeprop\";\n }\n } else if (type == \"meta\") {\n return \"block\";\n } else if (!allowNested && (type == \"hash\" || type == \"qualifier\")) {\n override = \"error\";\n return \"block\";\n } else {\n return states.top(type, stream, state);\n }\n };\n\n states.maybeprop = function(type, stream, state) {\n if (type == \":\") return pushContext(state, stream, \"prop\");\n return pass(type, stream, state);\n };\n\n states.prop = function(type, stream, state) {\n if (type == \";\") return popContext(state);\n if (type == \"{\" && allowNested) return pushContext(state, stream, \"propBlock\");\n if (type == \"}\" || type == \"{\") return popAndPass(type, stream, state);\n if (type == \"(\") return pushContext(state, stream, \"parens\");\n\n if (type == \"hash\" && !/^#([0-9a-fA-f]{3,4}|[0-9a-fA-f]{6}|[0-9a-fA-f]{8})$/.test(stream.current())) {\n override += \" error\";\n } else if (type == \"word\") {\n wordAsValue(stream);\n } else if (type == \"interpolation\") {\n return pushContext(state, stream, \"interpolation\");\n }\n return \"prop\";\n };\n\n states.propBlock = function(type, _stream, state) {\n if (type == \"}\") return popContext(state);\n if (type == \"word\") { override = \"property\"; return \"maybeprop\"; }\n return state.context.type;\n };\n\n states.parens = function(type, stream, state) {\n if (type == \"{\" || type == \"}\") return popAndPass(type, stream, state);\n if (type == \")\") return popContext(state);\n if (type == \"(\") return pushContext(state, stream, \"parens\");\n if (type == \"interpolation\") return pushContext(state, stream, \"interpolation\");\n if (type == \"word\") wordAsValue(stream);\n return \"parens\";\n };\n\n states.pseudo = function(type, stream, state) {\n if (type == \"meta\") return \"pseudo\";\n\n if (type == \"word\") {\n override = \"variable-3\";\n return state.context.type;\n }\n return pass(type, stream, state);\n };\n\n states.documentTypes = function(type, stream, state) {\n if (type == \"word\" && documentTypes.hasOwnProperty(stream.current())) {\n override = \"tag\";\n return state.context.type;\n } else {\n return states.atBlock(type, stream, state);\n }\n };\n\n states.atBlock = function(type, stream, state) {\n if (type == \"(\") return pushContext(state, stream, \"atBlock_parens\");\n if (type == \"}\" || type == \";\") return popAndPass(type, stream, state);\n if (type == \"{\") return popContext(state) && pushContext(state, stream, allowNested ? \"block\" : \"top\");\n\n if (type == \"interpolation\") return pushContext(state, stream, \"interpolation\");\n\n if (type == \"word\") {\n var word = stream.current().toLowerCase();\n if (word == \"only\" || word == \"not\" || word == \"and\" || word == \"or\")\n override = \"keyword\";\n else if (mediaTypes.hasOwnProperty(word))\n override = \"attribute\";\n else if (mediaFeatures.hasOwnProperty(word))\n override = \"property\";\n else if (mediaValueKeywords.hasOwnProperty(word))\n override = \"keyword\";\n else if (propertyKeywords.hasOwnProperty(word))\n override = \"property\";\n else if (nonStandardPropertyKeywords.hasOwnProperty(word))\n override = highlightNonStandardPropertyKeywords ? \"string-2\" : \"property\";\n else if (valueKeywords.hasOwnProperty(word))\n override = \"atom\";\n else if (colorKeywords.hasOwnProperty(word))\n override = \"keyword\";\n else\n override = \"error\";\n }\n return state.context.type;\n };\n\n states.atComponentBlock = function(type, stream, state) {\n if (type == \"}\")\n return popAndPass(type, stream, state);\n if (type == \"{\")\n return popContext(state) && pushContext(state, stream, allowNested ? \"block\" : \"top\", false);\n if (type == \"word\")\n override = \"error\";\n return state.context.type;\n };\n\n states.atBlock_parens = function(type, stream, state) {\n if (type == \")\") return popContext(state);\n if (type == \"{\" || type == \"}\") return popAndPass(type, stream, state, 2);\n return states.atBlock(type, stream, state);\n };\n\n states.restricted_atBlock_before = function(type, stream, state) {\n if (type == \"{\")\n return pushContext(state, stream, \"restricted_atBlock\");\n if (type == \"word\" && state.stateArg == \"@counter-style\") {\n override = \"variable\";\n return \"restricted_atBlock_before\";\n }\n return pass(type, stream, state);\n };\n\n states.restricted_atBlock = function(type, stream, state) {\n if (type == \"}\") {\n state.stateArg = null;\n return popContext(state);\n }\n if (type == \"word\") {\n if ((state.stateArg == \"@font-face\" && !fontProperties.hasOwnProperty(stream.current().toLowerCase())) ||\n (state.stateArg == \"@counter-style\" && !counterDescriptors.hasOwnProperty(stream.current().toLowerCase())))\n override = \"error\";\n else\n override = \"property\";\n return \"maybeprop\";\n }\n return \"restricted_atBlock\";\n };\n\n states.keyframes = function(type, stream, state) {\n if (type == \"word\") { override = \"variable\"; return \"keyframes\"; }\n if (type == \"{\") return pushContext(state, stream, \"top\");\n return pass(type, stream, state);\n };\n\n states.at = function(type, stream, state) {\n if (type == \";\") return popContext(state);\n if (type == \"{\" || type == \"}\") return popAndPass(type, stream, state);\n if (type == \"word\") override = \"tag\";\n else if (type == \"hash\") override = \"builtin\";\n return \"at\";\n };\n\n states.interpolation = function(type, stream, state) {\n if (type == \"}\") return popContext(state);\n if (type == \"{\" || type == \";\") return popAndPass(type, stream, state);\n if (type == \"word\") override = \"variable\";\n else if (type != \"variable\" && type != \"(\" && type != \")\") override = \"error\";\n return \"interpolation\";\n };\n\n return {\n startState: function(base) {\n return {tokenize: null,\n state: inline ? \"block\" : \"top\",\n stateArg: null,\n context: new Context(inline ? \"block\" : \"top\", base || 0, null)};\n },\n\n token: function(stream, state) {\n if (!state.tokenize && stream.eatSpace()) return null;\n var style = (state.tokenize || tokenBase)(stream, state);\n if (style && typeof style == \"object\") {\n type = style[1];\n style = style[0];\n }\n override = style;\n if (type != \"comment\")\n state.state = states[state.state](type, stream, state);\n return override;\n },\n\n indent: function(state, textAfter) {\n var cx = state.context, ch = textAfter && textAfter.charAt(0);\n var indent = cx.indent;\n if (cx.type == \"prop\" && (ch == \"}\" || ch == \")\")) cx = cx.prev;\n if (cx.prev) {\n if (ch == \"}\" && (cx.type == \"block\" || cx.type == \"top\" ||\n cx.type == \"interpolation\" || cx.type == \"restricted_atBlock\")) {\n // Resume indentation from parent context.\n cx = cx.prev;\n indent = cx.indent;\n } else if (ch == \")\" && (cx.type == \"parens\" || cx.type == \"atBlock_parens\") ||\n ch == \"{\" && (cx.type == \"at\" || cx.type == \"atBlock\")) {\n // Dedent relative to current context.\n indent = Math.max(0, cx.indent - indentUnit);\n }\n }\n return indent;\n },\n\n electricChars: \"}\",\n blockCommentStart: \"/*\",\n blockCommentEnd: \"*/\",\n blockCommentContinue: \" * \",\n lineComment: lineComment,\n fold: \"brace\"\n };\n});\n\n function keySet(array) {\n var keys = {};\n for (var i = 0; i < array.length; ++i) {\n keys[array[i].toLowerCase()] = true;\n }\n return keys;\n }\n\n var documentTypes_ = [\n \"domain\", \"regexp\", \"url\", \"url-prefix\"\n ], documentTypes = keySet(documentTypes_);\n\n var mediaTypes_ = [\n \"all\", \"aural\", \"braille\", \"handheld\", \"print\", \"projection\", \"screen\",\n \"tty\", \"tv\", \"embossed\"\n ], mediaTypes = keySet(mediaTypes_);\n\n var mediaFeatures_ = [\n \"width\", \"min-width\", \"max-width\", \"height\", \"min-height\", \"max-height\",\n \"device-width\", \"min-device-width\", \"max-device-width\", \"device-height\",\n \"min-device-height\", \"max-device-height\", \"aspect-ratio\",\n \"min-aspect-ratio\", \"max-aspect-ratio\", \"device-aspect-ratio\",\n \"min-device-aspect-ratio\", \"max-device-aspect-ratio\", \"color\", \"min-color\",\n \"max-color\", \"color-index\", \"min-color-index\", \"max-color-index\",\n \"monochrome\", \"min-monochrome\", \"max-monochrome\", \"resolution\",\n \"min-resolution\", \"max-resolution\", \"scan\", \"grid\", \"orientation\",\n \"device-pixel-ratio\", \"min-device-pixel-ratio\", \"max-device-pixel-ratio\",\n \"pointer\", \"any-pointer\", \"hover\", \"any-hover\", \"prefers-color-scheme\"\n ], mediaFeatures = keySet(mediaFeatures_);\n\n var mediaValueKeywords_ = [\n \"landscape\", \"portrait\", \"none\", \"coarse\", \"fine\", \"on-demand\", \"hover\",\n \"interlace\", \"progressive\",\n \"dark\", \"light\"\n ], mediaValueKeywords = keySet(mediaValueKeywords_);\n\n var propertyKeywords_ = [\n \"align-content\", \"align-items\", \"align-self\", \"alignment-adjust\",\n \"alignment-baseline\", \"all\", \"anchor-point\", \"animation\", \"animation-delay\",\n \"animation-direction\", \"animation-duration\", \"animation-fill-mode\",\n \"animation-iteration-count\", \"animation-name\", \"animation-play-state\",\n \"animation-timing-function\", \"appearance\", \"azimuth\", \"backdrop-filter\",\n \"backface-visibility\", \"background\", \"background-attachment\",\n \"background-blend-mode\", \"background-clip\", \"background-color\",\n \"background-image\", \"background-origin\", \"background-position\",\n \"background-position-x\", \"background-position-y\", \"background-repeat\",\n \"background-size\", \"baseline-shift\", \"binding\", \"bleed\", \"block-size\",\n \"bookmark-label\", \"bookmark-level\", \"bookmark-state\", \"bookmark-target\",\n \"border\", \"border-bottom\", \"border-bottom-color\", \"border-bottom-left-radius\",\n \"border-bottom-right-radius\", \"border-bottom-style\", \"border-bottom-width\",\n \"border-collapse\", \"border-color\", \"border-image\", \"border-image-outset\",\n \"border-image-repeat\", \"border-image-slice\", \"border-image-source\",\n \"border-image-width\", \"border-left\", \"border-left-color\", \"border-left-style\",\n \"border-left-width\", \"border-radius\", \"border-right\", \"border-right-color\",\n \"border-right-style\", \"border-right-width\", \"border-spacing\", \"border-style\",\n \"border-top\", \"border-top-color\", \"border-top-left-radius\",\n \"border-top-right-radius\", \"border-top-style\", \"border-top-width\",\n \"border-width\", \"bottom\", \"box-decoration-break\", \"box-shadow\", \"box-sizing\",\n \"break-after\", \"break-before\", \"break-inside\", \"caption-side\", \"caret-color\",\n \"clear\", \"clip\", \"color\", \"color-profile\", \"column-count\", \"column-fill\",\n \"column-gap\", \"column-rule\", \"column-rule-color\", \"column-rule-style\",\n \"column-rule-width\", \"column-span\", \"column-width\", \"columns\", \"contain\",\n \"content\", \"counter-increment\", \"counter-reset\", \"crop\", \"cue\", \"cue-after\",\n \"cue-before\", \"cursor\", \"direction\", \"display\", \"dominant-baseline\",\n \"drop-initial-after-adjust\", \"drop-initial-after-align\",\n \"drop-initial-before-adjust\", \"drop-initial-before-align\", \"drop-initial-size\",\n \"drop-initial-value\", \"elevation\", \"empty-cells\", \"fit\", \"fit-position\",\n \"flex\", \"flex-basis\", \"flex-direction\", \"flex-flow\", \"flex-grow\",\n \"flex-shrink\", \"flex-wrap\", \"float\", \"float-offset\", \"flow-from\", \"flow-into\",\n \"font\", \"font-family\", \"font-feature-settings\", \"font-kerning\",\n \"font-language-override\", \"font-optical-sizing\", \"font-size\",\n \"font-size-adjust\", \"font-stretch\", \"font-style\", \"font-synthesis\",\n \"font-variant\", \"font-variant-alternates\", \"font-variant-caps\",\n \"font-variant-east-asian\", \"font-variant-ligatures\", \"font-variant-numeric\",\n \"font-variant-position\", \"font-variation-settings\", \"font-weight\", \"gap\",\n \"grid\", \"grid-area\", \"grid-auto-columns\", \"grid-auto-flow\", \"grid-auto-rows\",\n \"grid-column\", \"grid-column-end\", \"grid-column-gap\", \"grid-column-start\",\n \"grid-gap\", \"grid-row\", \"grid-row-end\", \"grid-row-gap\", \"grid-row-start\",\n \"grid-template\", \"grid-template-areas\", \"grid-template-columns\",\n \"grid-template-rows\", \"hanging-punctuation\", \"height\", \"hyphens\", \"icon\",\n \"image-orientation\", \"image-rendering\", \"image-resolution\", \"inline-box-align\",\n \"inset\", \"inset-block\", \"inset-block-end\", \"inset-block-start\", \"inset-inline\",\n \"inset-inline-end\", \"inset-inline-start\", \"isolation\", \"justify-content\",\n \"justify-items\", \"justify-self\", \"left\", \"letter-spacing\", \"line-break\",\n \"line-height\", \"line-height-step\", \"line-stacking\", \"line-stacking-ruby\",\n \"line-stacking-shift\", \"line-stacking-strategy\", \"list-style\",\n \"list-style-image\", \"list-style-position\", \"list-style-type\", \"margin\",\n \"margin-bottom\", \"margin-left\", \"margin-right\", \"margin-top\", \"marks\",\n \"marquee-direction\", \"marquee-loop\", \"marquee-play-count\", \"marquee-speed\",\n \"marquee-style\", \"mask-clip\", \"mask-composite\", \"mask-image\", \"mask-mode\",\n \"mask-origin\", \"mask-position\", \"mask-repeat\", \"mask-size\",\"mask-type\",\n \"max-block-size\", \"max-height\", \"max-inline-size\",\n \"max-width\", \"min-block-size\", \"min-height\", \"min-inline-size\", \"min-width\",\n \"mix-blend-mode\", \"move-to\", \"nav-down\", \"nav-index\", \"nav-left\", \"nav-right\",\n \"nav-up\", \"object-fit\", \"object-position\", \"offset\", \"offset-anchor\",\n \"offset-distance\", \"offset-path\", \"offset-position\", \"offset-rotate\",\n \"opacity\", \"order\", \"orphans\", \"outline\", \"outline-color\", \"outline-offset\",\n \"outline-style\", \"outline-width\", \"overflow\", \"overflow-style\",\n \"overflow-wrap\", \"overflow-x\", \"overflow-y\", \"padding\", \"padding-bottom\",\n \"padding-left\", \"padding-right\", \"padding-top\", \"page\", \"page-break-after\",\n \"page-break-before\", \"page-break-inside\", \"page-policy\", \"pause\",\n \"pause-after\", \"pause-before\", \"perspective\", \"perspective-origin\", \"pitch\",\n \"pitch-range\", \"place-content\", \"place-items\", \"place-self\", \"play-during\",\n \"position\", \"presentation-level\", \"punctuation-trim\", \"quotes\",\n \"region-break-after\", \"region-break-before\", \"region-break-inside\",\n \"region-fragment\", \"rendering-intent\", \"resize\", \"rest\", \"rest-after\",\n \"rest-before\", \"richness\", \"right\", \"rotate\", \"rotation\", \"rotation-point\",\n \"row-gap\", \"ruby-align\", \"ruby-overhang\", \"ruby-position\", \"ruby-span\",\n \"scale\", \"scroll-behavior\", \"scroll-margin\", \"scroll-margin-block\",\n \"scroll-margin-block-end\", \"scroll-margin-block-start\", \"scroll-margin-bottom\",\n \"scroll-margin-inline\", \"scroll-margin-inline-end\",\n \"scroll-margin-inline-start\", \"scroll-margin-left\", \"scroll-margin-right\",\n \"scroll-margin-top\", \"scroll-padding\", \"scroll-padding-block\",\n \"scroll-padding-block-end\", \"scroll-padding-block-start\",\n \"scroll-padding-bottom\", \"scroll-padding-inline\", \"scroll-padding-inline-end\",\n \"scroll-padding-inline-start\", \"scroll-padding-left\", \"scroll-padding-right\",\n \"scroll-padding-top\", \"scroll-snap-align\", \"scroll-snap-type\",\n \"shape-image-threshold\", \"shape-inside\", \"shape-margin\", \"shape-outside\",\n \"size\", \"speak\", \"speak-as\", \"speak-header\", \"speak-numeral\",\n \"speak-punctuation\", \"speech-rate\", \"stress\", \"string-set\", \"tab-size\",\n \"table-layout\", \"target\", \"target-name\", \"target-new\", \"target-position\",\n \"text-align\", \"text-align-last\", \"text-combine-upright\", \"text-decoration\",\n \"text-decoration-color\", \"text-decoration-line\", \"text-decoration-skip\",\n \"text-decoration-skip-ink\", \"text-decoration-style\", \"text-emphasis\",\n \"text-emphasis-color\", \"text-emphasis-position\", \"text-emphasis-style\",\n \"text-height\", \"text-indent\", \"text-justify\", \"text-orientation\",\n \"text-outline\", \"text-overflow\", \"text-rendering\", \"text-shadow\",\n \"text-size-adjust\", \"text-space-collapse\", \"text-transform\",\n \"text-underline-position\", \"text-wrap\", \"top\", \"touch-action\", \"transform\", \"transform-origin\",\n \"transform-style\", \"transition\", \"transition-delay\", \"transition-duration\",\n \"transition-property\", \"transition-timing-function\", \"translate\",\n \"unicode-bidi\", \"user-select\", \"vertical-align\", \"visibility\", \"voice-balance\",\n \"voice-duration\", \"voice-family\", \"voice-pitch\", \"voice-range\", \"voice-rate\",\n \"voice-stress\", \"voice-volume\", \"volume\", \"white-space\", \"widows\", \"width\",\n \"will-change\", \"word-break\", \"word-spacing\", \"word-wrap\", \"writing-mode\", \"z-index\",\n // SVG-specific\n \"clip-path\", \"clip-rule\", \"mask\", \"enable-background\", \"filter\", \"flood-color\",\n \"flood-opacity\", \"lighting-color\", \"stop-color\", \"stop-opacity\", \"pointer-events\",\n \"color-interpolation\", \"color-interpolation-filters\",\n \"color-rendering\", \"fill\", \"fill-opacity\", \"fill-rule\", \"image-rendering\",\n \"marker\", \"marker-end\", \"marker-mid\", \"marker-start\", \"paint-order\", \"shape-rendering\", \"stroke\",\n \"stroke-dasharray\", \"stroke-dashoffset\", \"stroke-linecap\", \"stroke-linejoin\",\n \"stroke-miterlimit\", \"stroke-opacity\", \"stroke-width\", \"text-rendering\",\n \"baseline-shift\", \"dominant-baseline\", \"glyph-orientation-horizontal\",\n \"glyph-orientation-vertical\", \"text-anchor\", \"writing-mode\",\n ], propertyKeywords = keySet(propertyKeywords_);\n\n var nonStandardPropertyKeywords_ = [\n \"border-block\", \"border-block-color\", \"border-block-end\",\n \"border-block-end-color\", \"border-block-end-style\", \"border-block-end-width\",\n \"border-block-start\", \"border-block-start-color\", \"border-block-start-style\",\n \"border-block-start-width\", \"border-block-style\", \"border-block-width\",\n \"border-inline\", \"border-inline-color\", \"border-inline-end\",\n \"border-inline-end-color\", \"border-inline-end-style\",\n \"border-inline-end-width\", \"border-inline-start\", \"border-inline-start-color\",\n \"border-inline-start-style\", \"border-inline-start-width\",\n \"border-inline-style\", \"border-inline-width\", \"margin-block\",\n \"margin-block-end\", \"margin-block-start\", \"margin-inline\", \"margin-inline-end\",\n \"margin-inline-start\", \"padding-block\", \"padding-block-end\",\n \"padding-block-start\", \"padding-inline\", \"padding-inline-end\",\n \"padding-inline-start\", \"scroll-snap-stop\", \"scrollbar-3d-light-color\",\n \"scrollbar-arrow-color\", \"scrollbar-base-color\", \"scrollbar-dark-shadow-color\",\n \"scrollbar-face-color\", \"scrollbar-highlight-color\", \"scrollbar-shadow-color\",\n \"scrollbar-track-color\", \"searchfield-cancel-button\", \"searchfield-decoration\",\n \"searchfield-results-button\", \"searchfield-results-decoration\", \"shape-inside\", \"zoom\"\n ], nonStandardPropertyKeywords = keySet(nonStandardPropertyKeywords_);\n\n var fontProperties_ = [\n \"font-display\", \"font-family\", \"src\", \"unicode-range\", \"font-variant\",\n \"font-feature-settings\", \"font-stretch\", \"font-weight\", \"font-style\"\n ], fontProperties = keySet(fontProperties_);\n\n var counterDescriptors_ = [\n \"additive-symbols\", \"fallback\", \"negative\", \"pad\", \"prefix\", \"range\",\n \"speak-as\", \"suffix\", \"symbols\", \"system\"\n ], counterDescriptors = keySet(counterDescriptors_);\n\n var colorKeywords_ = [\n \"aliceblue\", \"antiquewhite\", \"aqua\", \"aquamarine\", \"azure\", \"beige\",\n \"bisque\", \"black\", \"blanchedalmond\", \"blue\", \"blueviolet\", \"brown\",\n \"burlywood\", \"cadetblue\", \"chartreuse\", \"chocolate\", \"coral\", \"cornflowerblue\",\n \"cornsilk\", \"crimson\", \"cyan\", \"darkblue\", \"darkcyan\", \"darkgoldenrod\",\n \"darkgray\", \"darkgreen\", \"darkkhaki\", \"darkmagenta\", \"darkolivegreen\",\n \"darkorange\", \"darkorchid\", \"darkred\", \"darksalmon\", \"darkseagreen\",\n \"darkslateblue\", \"darkslategray\", \"darkturquoise\", \"darkviolet\",\n \"deeppink\", \"deepskyblue\", \"dimgray\", \"dodgerblue\", \"firebrick\",\n \"floralwhite\", \"forestgreen\", \"fuchsia\", \"gainsboro\", \"ghostwhite\",\n \"gold\", \"goldenrod\", \"gray\", \"grey\", \"green\", \"greenyellow\", \"honeydew\",\n \"hotpink\", \"indianred\", \"indigo\", \"ivory\", \"khaki\", \"lavender\",\n \"lavenderblush\", \"lawngreen\", \"lemonchiffon\", \"lightblue\", \"lightcoral\",\n \"lightcyan\", \"lightgoldenrodyellow\", \"lightgray\", \"lightgreen\", \"lightpink\",\n \"lightsalmon\", \"lightseagreen\", \"lightskyblue\", \"lightslategray\",\n \"lightsteelblue\", \"lightyellow\", \"lime\", \"limegreen\", \"linen\", \"magenta\",\n \"maroon\", \"mediumaquamarine\", \"mediumblue\", \"mediumorchid\", \"mediumpurple\",\n \"mediumseagreen\", \"mediumslateblue\", \"mediumspringgreen\", \"mediumturquoise\",\n \"mediumvioletred\", \"midnightblue\", \"mintcream\", \"mistyrose\", \"moccasin\",\n \"navajowhite\", \"navy\", \"oldlace\", \"olive\", \"olivedrab\", \"orange\", \"orangered\",\n \"orchid\", \"palegoldenrod\", \"palegreen\", \"paleturquoise\", \"palevioletred\",\n \"papayawhip\", \"peachpuff\", \"peru\", \"pink\", \"plum\", \"powderblue\",\n \"purple\", \"rebeccapurple\", \"red\", \"rosybrown\", \"royalblue\", \"saddlebrown\",\n \"salmon\", \"sandybrown\", \"seagreen\", \"seashell\", \"sienna\", \"silver\", \"skyblue\",\n \"slateblue\", \"slategray\", \"snow\", \"springgreen\", \"steelblue\", \"tan\",\n \"teal\", \"thistle\", \"tomato\", \"turquoise\", \"violet\", \"wheat\", \"white\",\n \"whitesmoke\", \"yellow\", \"yellowgreen\"\n ], colorKeywords = keySet(colorKeywords_);\n\n var valueKeywords_ = [\n \"above\", \"absolute\", \"activeborder\", \"additive\", \"activecaption\", \"afar\",\n \"after-white-space\", \"ahead\", \"alias\", \"all\", \"all-scroll\", \"alphabetic\", \"alternate\",\n \"always\", \"amharic\", \"amharic-abegede\", \"antialiased\", \"appworkspace\",\n \"arabic-indic\", \"armenian\", \"asterisks\", \"attr\", \"auto\", \"auto-flow\", \"avoid\", \"avoid-column\", \"avoid-page\",\n \"avoid-region\", \"axis-pan\", \"background\", \"backwards\", \"baseline\", \"below\", \"bidi-override\", \"binary\",\n \"bengali\", \"blink\", \"block\", \"block-axis\", \"bold\", \"bolder\", \"border\", \"border-box\",\n \"both\", \"bottom\", \"break\", \"break-all\", \"break-word\", \"bullets\", \"button\", \"button-bevel\",\n \"buttonface\", \"buttonhighlight\", \"buttonshadow\", \"buttontext\", \"calc\", \"cambodian\",\n \"capitalize\", \"caps-lock-indicator\", \"caption\", \"captiontext\", \"caret\",\n \"cell\", \"center\", \"checkbox\", \"circle\", \"cjk-decimal\", \"cjk-earthly-branch\",\n \"cjk-heavenly-stem\", \"cjk-ideographic\", \"clear\", \"clip\", \"close-quote\",\n \"col-resize\", \"collapse\", \"color\", \"color-burn\", \"color-dodge\", \"column\", \"column-reverse\",\n \"compact\", \"condensed\", \"contain\", \"content\", \"contents\",\n \"content-box\", \"context-menu\", \"continuous\", \"copy\", \"counter\", \"counters\", \"cover\", \"crop\",\n \"cross\", \"crosshair\", \"currentcolor\", \"cursive\", \"cyclic\", \"darken\", \"dashed\", \"decimal\",\n \"decimal-leading-zero\", \"default\", \"default-button\", \"dense\", \"destination-atop\",\n \"destination-in\", \"destination-out\", \"destination-over\", \"devanagari\", \"difference\",\n \"disc\", \"discard\", \"disclosure-closed\", \"disclosure-open\", \"document\",\n \"dot-dash\", \"dot-dot-dash\",\n \"dotted\", \"double\", \"down\", \"e-resize\", \"ease\", \"ease-in\", \"ease-in-out\", \"ease-out\",\n \"element\", \"ellipse\", \"ellipsis\", \"embed\", \"end\", \"ethiopic\", \"ethiopic-abegede\",\n \"ethiopic-abegede-am-et\", \"ethiopic-abegede-gez\", \"ethiopic-abegede-ti-er\",\n \"ethiopic-abegede-ti-et\", \"ethiopic-halehame-aa-er\",\n \"ethiopic-halehame-aa-et\", \"ethiopic-halehame-am-et\",\n \"ethiopic-halehame-gez\", \"ethiopic-halehame-om-et\",\n \"ethiopic-halehame-sid-et\", \"ethiopic-halehame-so-et\",\n \"ethiopic-halehame-ti-er\", \"ethiopic-halehame-ti-et\", \"ethiopic-halehame-tig\",\n \"ethiopic-numeric\", \"ew-resize\", \"exclusion\", \"expanded\", \"extends\", \"extra-condensed\",\n \"extra-expanded\", \"fantasy\", \"fast\", \"fill\", \"fill-box\", \"fixed\", \"flat\", \"flex\", \"flex-end\", \"flex-start\", \"footnotes\",\n \"forwards\", \"from\", \"geometricPrecision\", \"georgian\", \"graytext\", \"grid\", \"groove\",\n \"gujarati\", \"gurmukhi\", \"hand\", \"hangul\", \"hangul-consonant\", \"hard-light\", \"hebrew\",\n \"help\", \"hidden\", \"hide\", \"higher\", \"highlight\", \"highlighttext\",\n \"hiragana\", \"hiragana-iroha\", \"horizontal\", \"hsl\", \"hsla\", \"hue\", \"icon\", \"ignore\",\n \"inactiveborder\", \"inactivecaption\", \"inactivecaptiontext\", \"infinite\",\n \"infobackground\", \"infotext\", \"inherit\", \"initial\", \"inline\", \"inline-axis\",\n \"inline-block\", \"inline-flex\", \"inline-grid\", \"inline-table\", \"inset\", \"inside\", \"intrinsic\", \"invert\",\n \"italic\", \"japanese-formal\", \"japanese-informal\", \"justify\", \"kannada\",\n \"katakana\", \"katakana-iroha\", \"keep-all\", \"khmer\",\n \"korean-hangul-formal\", \"korean-hanja-formal\", \"korean-hanja-informal\",\n \"landscape\", \"lao\", \"large\", \"larger\", \"left\", \"level\", \"lighter\", \"lighten\",\n \"line-through\", \"linear\", \"linear-gradient\", \"lines\", \"list-item\", \"listbox\", \"listitem\",\n \"local\", \"logical\", \"loud\", \"lower\", \"lower-alpha\", \"lower-armenian\",\n \"lower-greek\", \"lower-hexadecimal\", \"lower-latin\", \"lower-norwegian\",\n \"lower-roman\", \"lowercase\", \"ltr\", \"luminosity\", \"malayalam\", \"manipulation\", \"match\", \"matrix\", \"matrix3d\",\n \"media-controls-background\", \"media-current-time-display\",\n \"media-fullscreen-button\", \"media-mute-button\", \"media-play-button\",\n \"media-return-to-realtime-button\", \"media-rewind-button\",\n \"media-seek-back-button\", \"media-seek-forward-button\", \"media-slider\",\n \"media-sliderthumb\", \"media-time-remaining-display\", \"media-volume-slider\",\n \"media-volume-slider-container\", \"media-volume-sliderthumb\", \"medium\",\n \"menu\", \"menulist\", \"menulist-button\", \"menulist-text\",\n \"menulist-textfield\", \"menutext\", \"message-box\", \"middle\", \"min-intrinsic\",\n \"mix\", \"mongolian\", \"monospace\", \"move\", \"multiple\", \"multiple_mask_images\", \"multiply\", \"myanmar\", \"n-resize\",\n \"narrower\", \"ne-resize\", \"nesw-resize\", \"no-close-quote\", \"no-drop\",\n \"no-open-quote\", \"no-repeat\", \"none\", \"normal\", \"not-allowed\", \"nowrap\",\n \"ns-resize\", \"numbers\", \"numeric\", \"nw-resize\", \"nwse-resize\", \"oblique\", \"octal\", \"opacity\", \"open-quote\",\n \"optimizeLegibility\", \"optimizeSpeed\", \"oriya\", \"oromo\", \"outset\",\n \"outside\", \"outside-shape\", \"overlay\", \"overline\", \"padding\", \"padding-box\",\n \"painted\", \"page\", \"paused\", \"persian\", \"perspective\", \"pinch-zoom\", \"plus-darker\", \"plus-lighter\",\n \"pointer\", \"polygon\", \"portrait\", \"pre\", \"pre-line\", \"pre-wrap\", \"preserve-3d\",\n \"progress\", \"push-button\", \"radial-gradient\", \"radio\", \"read-only\",\n \"read-write\", \"read-write-plaintext-only\", \"rectangle\", \"region\",\n \"relative\", \"repeat\", \"repeating-linear-gradient\",\n \"repeating-radial-gradient\", \"repeat-x\", \"repeat-y\", \"reset\", \"reverse\",\n \"rgb\", \"rgba\", \"ridge\", \"right\", \"rotate\", \"rotate3d\", \"rotateX\", \"rotateY\",\n \"rotateZ\", \"round\", \"row\", \"row-resize\", \"row-reverse\", \"rtl\", \"run-in\", \"running\",\n \"s-resize\", \"sans-serif\", \"saturation\", \"scale\", \"scale3d\", \"scaleX\", \"scaleY\", \"scaleZ\", \"screen\",\n \"scroll\", \"scrollbar\", \"scroll-position\", \"se-resize\", \"searchfield\",\n \"searchfield-cancel-button\", \"searchfield-decoration\",\n \"searchfield-results-button\", \"searchfield-results-decoration\", \"self-start\", \"self-end\",\n \"semi-condensed\", \"semi-expanded\", \"separate\", \"serif\", \"show\", \"sidama\",\n \"simp-chinese-formal\", \"simp-chinese-informal\", \"single\",\n \"skew\", \"skewX\", \"skewY\", \"skip-white-space\", \"slide\", \"slider-horizontal\",\n \"slider-vertical\", \"sliderthumb-horizontal\", \"sliderthumb-vertical\", \"slow\",\n \"small\", \"small-caps\", \"small-caption\", \"smaller\", \"soft-light\", \"solid\", \"somali\",\n \"source-atop\", \"source-in\", \"source-out\", \"source-over\", \"space\", \"space-around\", \"space-between\", \"space-evenly\", \"spell-out\", \"square\",\n \"square-button\", \"start\", \"static\", \"status-bar\", \"stretch\", \"stroke\", \"stroke-box\", \"sub\",\n \"subpixel-antialiased\", \"svg_masks\", \"super\", \"sw-resize\", \"symbolic\", \"symbols\", \"system-ui\", \"table\",\n \"table-caption\", \"table-cell\", \"table-column\", \"table-column-group\",\n \"table-footer-group\", \"table-header-group\", \"table-row\", \"table-row-group\",\n \"tamil\",\n \"telugu\", \"text\", \"text-bottom\", \"text-top\", \"textarea\", \"textfield\", \"thai\",\n \"thick\", \"thin\", \"threeddarkshadow\", \"threedface\", \"threedhighlight\",\n \"threedlightshadow\", \"threedshadow\", \"tibetan\", \"tigre\", \"tigrinya-er\",\n \"tigrinya-er-abegede\", \"tigrinya-et\", \"tigrinya-et-abegede\", \"to\", \"top\",\n \"trad-chinese-formal\", \"trad-chinese-informal\", \"transform\",\n \"translate\", \"translate3d\", \"translateX\", \"translateY\", \"translateZ\",\n \"transparent\", \"ultra-condensed\", \"ultra-expanded\", \"underline\", \"unidirectional-pan\", \"unset\", \"up\",\n \"upper-alpha\", \"upper-armenian\", \"upper-greek\", \"upper-hexadecimal\",\n \"upper-latin\", \"upper-norwegian\", \"upper-roman\", \"uppercase\", \"urdu\", \"url\",\n \"var\", \"vertical\", \"vertical-text\", \"view-box\", \"visible\", \"visibleFill\", \"visiblePainted\",\n \"visibleStroke\", \"visual\", \"w-resize\", \"wait\", \"wave\", \"wider\",\n \"window\", \"windowframe\", \"windowtext\", \"words\", \"wrap\", \"wrap-reverse\", \"x-large\", \"x-small\", \"xor\",\n \"xx-large\", \"xx-small\"\n ], valueKeywords = keySet(valueKeywords_);\n\n var allWords = documentTypes_.concat(mediaTypes_).concat(mediaFeatures_).concat(mediaValueKeywords_)\n .concat(propertyKeywords_).concat(nonStandardPropertyKeywords_).concat(colorKeywords_)\n .concat(valueKeywords_);\n CodeMirror.registerHelper(\"hintWords\", \"css\", allWords);\n\n function tokenCComment(stream, state) {\n var maybeEnd = false, ch;\n while ((ch = stream.next()) != null) {\n if (maybeEnd && ch == \"/\") {\n state.tokenize = null;\n break;\n }\n maybeEnd = (ch == \"*\");\n }\n return [\"comment\", \"comment\"];\n }\n\n CodeMirror.defineMIME(\"text/css\", {\n documentTypes: documentTypes,\n mediaTypes: mediaTypes,\n mediaFeatures: mediaFeatures,\n mediaValueKeywords: mediaValueKeywords,\n propertyKeywords: propertyKeywords,\n nonStandardPropertyKeywords: nonStandardPropertyKeywords,\n fontProperties: fontProperties,\n counterDescriptors: counterDescriptors,\n colorKeywords: colorKeywords,\n valueKeywords: valueKeywords,\n tokenHooks: {\n \"/\": function(stream, state) {\n if (!stream.eat(\"*\")) return false;\n state.tokenize = tokenCComment;\n return tokenCComment(stream, state);\n }\n },\n name: \"css\"\n });\n\n CodeMirror.defineMIME(\"text/x-scss\", {\n mediaTypes: mediaTypes,\n mediaFeatures: mediaFeatures,\n mediaValueKeywords: mediaValueKeywords,\n propertyKeywords: propertyKeywords,\n nonStandardPropertyKeywords: nonStandardPropertyKeywords,\n colorKeywords: colorKeywords,\n valueKeywords: valueKeywords,\n fontProperties: fontProperties,\n allowNested: true,\n lineComment: \"//\",\n tokenHooks: {\n \"/\": function(stream, state) {\n if (stream.eat(\"/\")) {\n stream.skipToEnd();\n return [\"comment\", \"comment\"];\n } else if (stream.eat(\"*\")) {\n state.tokenize = tokenCComment;\n return tokenCComment(stream, state);\n } else {\n return [\"operator\", \"operator\"];\n }\n },\n \":\": function(stream) {\n if (stream.match(/^\\s*\\{/, false))\n return [null, null]\n return false;\n },\n \"$\": function(stream) {\n stream.match(/^[\\w-]+/);\n if (stream.match(/^\\s*:/, false))\n return [\"variable-2\", \"variable-definition\"];\n return [\"variable-2\", \"variable\"];\n },\n \"#\": function(stream) {\n if (!stream.eat(\"{\")) return false;\n return [null, \"interpolation\"];\n }\n },\n name: \"css\",\n helperType: \"scss\"\n });\n\n CodeMirror.defineMIME(\"text/x-less\", {\n mediaTypes: mediaTypes,\n mediaFeatures: mediaFeatures,\n mediaValueKeywords: mediaValueKeywords,\n propertyKeywords: propertyKeywords,\n nonStandardPropertyKeywords: nonStandardPropertyKeywords,\n colorKeywords: colorKeywords,\n valueKeywords: valueKeywords,\n fontProperties: fontProperties,\n allowNested: true,\n lineComment: \"//\",\n tokenHooks: {\n \"/\": function(stream, state) {\n if (stream.eat(\"/\")) {\n stream.skipToEnd();\n return [\"comment\", \"comment\"];\n } else if (stream.eat(\"*\")) {\n state.tokenize = tokenCComment;\n return tokenCComment(stream, state);\n } else {\n return [\"operator\", \"operator\"];\n }\n },\n \"@\": function(stream) {\n if (stream.eat(\"{\")) return [null, \"interpolation\"];\n if (stream.match(/^(charset|document|font-face|import|(-(moz|ms|o|webkit)-)?keyframes|media|namespace|page|supports)\\b/i, false)) return false;\n stream.eatWhile(/[\\w\\\\\\-]/);\n if (stream.match(/^\\s*:/, false))\n return [\"variable-2\", \"variable-definition\"];\n return [\"variable-2\", \"variable\"];\n },\n \"&\": function() {\n return [\"atom\", \"atom\"];\n }\n },\n name: \"css\",\n helperType: \"less\"\n });\n\n CodeMirror.defineMIME(\"text/x-gss\", {\n documentTypes: documentTypes,\n mediaTypes: mediaTypes,\n mediaFeatures: mediaFeatures,\n propertyKeywords: propertyKeywords,\n nonStandardPropertyKeywords: nonStandardPropertyKeywords,\n fontProperties: fontProperties,\n counterDescriptors: counterDescriptors,\n colorKeywords: colorKeywords,\n valueKeywords: valueKeywords,\n supportsAtComponent: true,\n tokenHooks: {\n \"/\": function(stream, state) {\n if (!stream.eat(\"*\")) return false;\n state.tokenize = tokenCComment;\n return tokenCComment(stream, state);\n }\n },\n name: \"css\",\n helperType: \"gss\"\n });\n\n});\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"), require(\"../markdown/markdown\"), require(\"../../addon/mode/overlay\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\", \"../markdown/markdown\", \"../../addon/mode/overlay\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nvar urlRE = /^((?:(?:aaas?|about|acap|adiumxtra|af[ps]|aim|apt|attachment|aw|beshare|bitcoin|bolo|callto|cap|chrome(?:-extension)?|cid|coap|com-eventbrite-attendee|content|crid|cvs|data|dav|dict|dlna-(?:playcontainer|playsingle)|dns|doi|dtn|dvb|ed2k|facetime|feed|file|finger|fish|ftp|geo|gg|git|gizmoproject|go|gopher|gtalk|h323|hcp|https?|iax|icap|icon|im|imap|info|ipn|ipp|irc[6s]?|iris(?:\\.beep|\\.lwz|\\.xpc|\\.xpcs)?|itms|jar|javascript|jms|keyparc|lastfm|ldaps?|magnet|mailto|maps|market|message|mid|mms|ms-help|msnim|msrps?|mtqp|mumble|mupdate|mvn|news|nfs|nih?|nntp|notes|oid|opaquelocktoken|palm|paparazzi|platform|pop|pres|proxy|psyc|query|res(?:ource)?|rmi|rsync|rtmp|rtsp|secondlife|service|session|sftp|sgn|shttp|sieve|sips?|skype|sm[bs]|snmp|soap\\.beeps?|soldat|spotify|ssh|steam|svn|tag|teamspeak|tel(?:net)?|tftp|things|thismessage|tip|tn3270|tv|udp|unreal|urn|ut2004|vemmi|ventrilo|view-source|webcal|wss?|wtai|wyciwyg|xcon(?:-userid)?|xfire|xmlrpc\\.beeps?|xmpp|xri|ymsgr|z39\\.50[rs]?):(?:\\/{1,3}|[a-z0-9%])|www\\d{0,3}[.]|[a-z0-9.\\-]+[.][a-z]{2,4}\\/)(?:[^\\s()<>]|\\([^\\s()<>]*\\))+(?:\\([^\\s()<>]*\\)|[^\\s`*!()\\[\\]{};:'\".,<>?«»“”‘’]))/i\n\nCodeMirror.defineMode(\"gfm\", function(config, modeConfig) {\n var codeDepth = 0;\n function blankLine(state) {\n state.code = false;\n return null;\n }\n var gfmOverlay = {\n startState: function() {\n return {\n code: false,\n codeBlock: false,\n ateSpace: false\n };\n },\n copyState: function(s) {\n return {\n code: s.code,\n codeBlock: s.codeBlock,\n ateSpace: s.ateSpace\n };\n },\n token: function(stream, state) {\n state.combineTokens = null;\n\n // Hack to prevent formatting override inside code blocks (block and inline)\n if (state.codeBlock) {\n if (stream.match(/^```+/)) {\n state.codeBlock = false;\n return null;\n }\n stream.skipToEnd();\n return null;\n }\n if (stream.sol()) {\n state.code = false;\n }\n if (stream.sol() && stream.match(/^```+/)) {\n stream.skipToEnd();\n state.codeBlock = true;\n return null;\n }\n // If this block is changed, it may need to be updated in Markdown mode\n if (stream.peek() === '`') {\n stream.next();\n var before = stream.pos;\n stream.eatWhile('`');\n var difference = 1 + stream.pos - before;\n if (!state.code) {\n codeDepth = difference;\n state.code = true;\n } else {\n if (difference === codeDepth) { // Must be exact\n state.code = false;\n }\n }\n return null;\n } else if (state.code) {\n stream.next();\n return null;\n }\n // Check if space. If so, links can be formatted later on\n if (stream.eatSpace()) {\n state.ateSpace = true;\n return null;\n }\n if (stream.sol() || state.ateSpace) {\n state.ateSpace = false;\n if (modeConfig.gitHubSpice !== false) {\n if(stream.match(/^(?:[a-zA-Z0-9\\-_]+\\/)?(?:[a-zA-Z0-9\\-_]+@)?(?=.{0,6}\\d)(?:[a-f0-9]{7,40}\\b)/)) {\n // User/Project@SHA\n // User@SHA\n // SHA\n state.combineTokens = true;\n return \"link\";\n } else if (stream.match(/^(?:[a-zA-Z0-9\\-_]+\\/)?(?:[a-zA-Z0-9\\-_]+)?#[0-9]+\\b/)) {\n // User/Project#Num\n // User#Num\n // #Num\n state.combineTokens = true;\n return \"link\";\n }\n }\n }\n if (stream.match(urlRE) &&\n stream.string.slice(stream.start - 2, stream.start) != \"](\" &&\n (stream.start == 0 || /\\W/.test(stream.string.charAt(stream.start - 1)))) {\n // URLs\n // Taken from http://daringfireball.net/2010/07/improved_regex_for_matching_urls\n // And then (issue #1160) simplified to make it not crash the Chrome Regexp engine\n // And then limited url schemes to the CommonMark list, so foo:bar isn't matched as a URL\n state.combineTokens = true;\n return \"link\";\n }\n stream.next();\n return null;\n },\n blankLine: blankLine\n };\n\n var markdownConfig = {\n taskLists: true,\n strikethrough: true,\n emoji: true\n };\n for (var attr in modeConfig) {\n markdownConfig[attr] = modeConfig[attr];\n }\n markdownConfig.name = \"markdown\";\n return CodeMirror.overlayMode(CodeMirror.getMode(config, markdownConfig), gfmOverlay);\n\n}, \"markdown\");\n\n CodeMirror.defineMIME(\"text/x-gfm\", \"gfm\");\n});\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"javascript\", function(config, parserConfig) {\n var indentUnit = config.indentUnit;\n var statementIndent = parserConfig.statementIndent;\n var jsonldMode = parserConfig.jsonld;\n var jsonMode = parserConfig.json || jsonldMode;\n var trackScope = parserConfig.trackScope !== false\n var isTS = parserConfig.typescript;\n var wordRE = parserConfig.wordCharacters || /[\\w$\\xa1-\\uffff]/;\n\n // Tokenizer\n\n var keywords = function(){\n function kw(type) {return {type: type, style: \"keyword\"};}\n var A = kw(\"keyword a\"), B = kw(\"keyword b\"), C = kw(\"keyword c\"), D = kw(\"keyword d\");\n var operator = kw(\"operator\"), atom = {type: \"atom\", style: \"atom\"};\n\n return {\n \"if\": kw(\"if\"), \"while\": A, \"with\": A, \"else\": B, \"do\": B, \"try\": B, \"finally\": B,\n \"return\": D, \"break\": D, \"continue\": D, \"new\": kw(\"new\"), \"delete\": C, \"void\": C, \"throw\": C,\n \"debugger\": kw(\"debugger\"), \"var\": kw(\"var\"), \"const\": kw(\"var\"), \"let\": kw(\"var\"),\n \"function\": kw(\"function\"), \"catch\": kw(\"catch\"),\n \"for\": kw(\"for\"), \"switch\": kw(\"switch\"), \"case\": kw(\"case\"), \"default\": kw(\"default\"),\n \"in\": operator, \"typeof\": operator, \"instanceof\": operator,\n \"true\": atom, \"false\": atom, \"null\": atom, \"undefined\": atom, \"NaN\": atom, \"Infinity\": atom,\n \"this\": kw(\"this\"), \"class\": kw(\"class\"), \"super\": kw(\"atom\"),\n \"yield\": C, \"export\": kw(\"export\"), \"import\": kw(\"import\"), \"extends\": C,\n \"await\": C\n };\n }();\n\n var isOperatorChar = /[+\\-*&%=<>!?|~^@]/;\n var isJsonldKeyword = /^@(context|id|value|language|type|container|list|set|reverse|index|base|vocab|graph)\"/;\n\n function readRegexp(stream) {\n var escaped = false, next, inSet = false;\n while ((next = stream.next()) != null) {\n if (!escaped) {\n if (next == \"/\" && !inSet) return;\n if (next == \"[\") inSet = true;\n else if (inSet && next == \"]\") inSet = false;\n }\n escaped = !escaped && next == \"\\\\\";\n }\n }\n\n // Used as scratch variables to communicate multiple values without\n // consing up tons of objects.\n var type, content;\n function ret(tp, style, cont) {\n type = tp; content = cont;\n return style;\n }\n function tokenBase(stream, state) {\n var ch = stream.next();\n if (ch == '\"' || ch == \"'\") {\n state.tokenize = tokenString(ch);\n return state.tokenize(stream, state);\n } else if (ch == \".\" && stream.match(/^\\d[\\d_]*(?:[eE][+\\-]?[\\d_]+)?/)) {\n return ret(\"number\", \"number\");\n } else if (ch == \".\" && stream.match(\"..\")) {\n return ret(\"spread\", \"meta\");\n } else if (/[\\[\\]{}\\(\\),;\\:\\.]/.test(ch)) {\n return ret(ch);\n } else if (ch == \"=\" && stream.eat(\">\")) {\n return ret(\"=>\", \"operator\");\n } else if (ch == \"0\" && stream.match(/^(?:x[\\dA-Fa-f_]+|o[0-7_]+|b[01_]+)n?/)) {\n return ret(\"number\", \"number\");\n } else if (/\\d/.test(ch)) {\n stream.match(/^[\\d_]*(?:n|(?:\\.[\\d_]*)?(?:[eE][+\\-]?[\\d_]+)?)?/);\n return ret(\"number\", \"number\");\n } else if (ch == \"/\") {\n if (stream.eat(\"*\")) {\n state.tokenize = tokenComment;\n return tokenComment(stream, state);\n } else if (stream.eat(\"/\")) {\n stream.skipToEnd();\n return ret(\"comment\", \"comment\");\n } else if (expressionAllowed(stream, state, 1)) {\n readRegexp(stream);\n stream.match(/^\\b(([gimyus])(?![gimyus]*\\2))+\\b/);\n return ret(\"regexp\", \"string-2\");\n } else {\n stream.eat(\"=\");\n return ret(\"operator\", \"operator\", stream.current());\n }\n } else if (ch == \"`\") {\n state.tokenize = tokenQuasi;\n return tokenQuasi(stream, state);\n } else if (ch == \"#\" && stream.peek() == \"!\") {\n stream.skipToEnd();\n return ret(\"meta\", \"meta\");\n } else if (ch == \"#\" && stream.eatWhile(wordRE)) {\n return ret(\"variable\", \"property\")\n } else if (ch == \"<\" && stream.match(\"!--\") ||\n (ch == \"-\" && stream.match(\"->\") && !/\\S/.test(stream.string.slice(0, stream.start)))) {\n stream.skipToEnd()\n return ret(\"comment\", \"comment\")\n } else if (isOperatorChar.test(ch)) {\n if (ch != \">\" || !state.lexical || state.lexical.type != \">\") {\n if (stream.eat(\"=\")) {\n if (ch == \"!\" || ch == \"=\") stream.eat(\"=\")\n } else if (/[<>*+\\-|&?]/.test(ch)) {\n stream.eat(ch)\n if (ch == \">\") stream.eat(ch)\n }\n }\n if (ch == \"?\" && stream.eat(\".\")) return ret(\".\")\n return ret(\"operator\", \"operator\", stream.current());\n } else if (wordRE.test(ch)) {\n stream.eatWhile(wordRE);\n var word = stream.current()\n if (state.lastType != \".\") {\n if (keywords.propertyIsEnumerable(word)) {\n var kw = keywords[word]\n return ret(kw.type, kw.style, word)\n }\n if (word == \"async\" && stream.match(/^(\\s|\\/\\*([^*]|\\*(?!\\/))*?\\*\\/)*[\\[\\(\\w]/, false))\n return ret(\"async\", \"keyword\", word)\n }\n return ret(\"variable\", \"variable\", word)\n }\n }\n\n function tokenString(quote) {\n return function(stream, state) {\n var escaped = false, next;\n if (jsonldMode && stream.peek() == \"@\" && stream.match(isJsonldKeyword)){\n state.tokenize = tokenBase;\n return ret(\"jsonld-keyword\", \"meta\");\n }\n while ((next = stream.next()) != null) {\n if (next == quote && !escaped) break;\n escaped = !escaped && next == \"\\\\\";\n }\n if (!escaped) state.tokenize = tokenBase;\n return ret(\"string\", \"string\");\n };\n }\n\n function tokenComment(stream, state) {\n var maybeEnd = false, ch;\n while (ch = stream.next()) {\n if (ch == \"/\" && maybeEnd) {\n state.tokenize = tokenBase;\n break;\n }\n maybeEnd = (ch == \"*\");\n }\n return ret(\"comment\", \"comment\");\n }\n\n function tokenQuasi(stream, state) {\n var escaped = false, next;\n while ((next = stream.next()) != null) {\n if (!escaped && (next == \"`\" || next == \"$\" && stream.eat(\"{\"))) {\n state.tokenize = tokenBase;\n break;\n }\n escaped = !escaped && next == \"\\\\\";\n }\n return ret(\"quasi\", \"string-2\", stream.current());\n }\n\n var brackets = \"([{}])\";\n // This is a crude lookahead trick to try and notice that we're\n // parsing the argument patterns for a fat-arrow function before we\n // actually hit the arrow token. It only works if the arrow is on\n // the same line as the arguments and there's no strange noise\n // (comments) in between. Fallback is to only notice when we hit the\n // arrow, and not declare the arguments as locals for the arrow\n // body.\n function findFatArrow(stream, state) {\n if (state.fatArrowAt) state.fatArrowAt = null;\n var arrow = stream.string.indexOf(\"=>\", stream.start);\n if (arrow < 0) return;\n\n if (isTS) { // Try to skip TypeScript return type declarations after the arguments\n var m = /:\\s*(?:\\w+(?:<[^>]*>|\\[\\])?|\\{[^}]*\\})\\s*$/.exec(stream.string.slice(stream.start, arrow))\n if (m) arrow = m.index\n }\n\n var depth = 0, sawSomething = false;\n for (var pos = arrow - 1; pos >= 0; --pos) {\n var ch = stream.string.charAt(pos);\n var bracket = brackets.indexOf(ch);\n if (bracket >= 0 && bracket < 3) {\n if (!depth) { ++pos; break; }\n if (--depth == 0) { if (ch == \"(\") sawSomething = true; break; }\n } else if (bracket >= 3 && bracket < 6) {\n ++depth;\n } else if (wordRE.test(ch)) {\n sawSomething = true;\n } else if (/[\"'\\/`]/.test(ch)) {\n for (;; --pos) {\n if (pos == 0) return\n var next = stream.string.charAt(pos - 1)\n if (next == ch && stream.string.charAt(pos - 2) != \"\\\\\") { pos--; break }\n }\n } else if (sawSomething && !depth) {\n ++pos;\n break;\n }\n }\n if (sawSomething && !depth) state.fatArrowAt = pos;\n }\n\n // Parser\n\n var atomicTypes = {\"atom\": true, \"number\": true, \"variable\": true, \"string\": true,\n \"regexp\": true, \"this\": true, \"import\": true, \"jsonld-keyword\": true};\n\n function JSLexical(indented, column, type, align, prev, info) {\n this.indented = indented;\n this.column = column;\n this.type = type;\n this.prev = prev;\n this.info = info;\n if (align != null) this.align = align;\n }\n\n function inScope(state, varname) {\n if (!trackScope) return false\n for (var v = state.localVars; v; v = v.next)\n if (v.name == varname) return true;\n for (var cx = state.context; cx; cx = cx.prev) {\n for (var v = cx.vars; v; v = v.next)\n if (v.name == varname) return true;\n }\n }\n\n function parseJS(state, style, type, content, stream) {\n var cc = state.cc;\n // Communicate our context to the combinators.\n // (Less wasteful than consing up a hundred closures on every call.)\n cx.state = state; cx.stream = stream; cx.marked = null, cx.cc = cc; cx.style = style;\n\n if (!state.lexical.hasOwnProperty(\"align\"))\n state.lexical.align = true;\n\n while(true) {\n var combinator = cc.length ? cc.pop() : jsonMode ? expression : statement;\n if (combinator(type, content)) {\n while(cc.length && cc[cc.length - 1].lex)\n cc.pop()();\n if (cx.marked) return cx.marked;\n if (type == \"variable\" && inScope(state, content)) return \"variable-2\";\n return style;\n }\n }\n }\n\n // Combinator utils\n\n var cx = {state: null, column: null, marked: null, cc: null};\n function pass() {\n for (var i = arguments.length - 1; i >= 0; i--) cx.cc.push(arguments[i]);\n }\n function cont() {\n pass.apply(null, arguments);\n return true;\n }\n function inList(name, list) {\n for (var v = list; v; v = v.next) if (v.name == name) return true\n return false;\n }\n function register(varname) {\n var state = cx.state;\n cx.marked = \"def\";\n if (!trackScope) return\n if (state.context) {\n if (state.lexical.info == \"var\" && state.context && state.context.block) {\n // FIXME function decls are also not block scoped\n var newContext = registerVarScoped(varname, state.context)\n if (newContext != null) {\n state.context = newContext\n return\n }\n } else if (!inList(varname, state.localVars)) {\n state.localVars = new Var(varname, state.localVars)\n return\n }\n }\n // Fall through means this is global\n if (parserConfig.globalVars && !inList(varname, state.globalVars))\n state.globalVars = new Var(varname, state.globalVars)\n }\n function registerVarScoped(varname, context) {\n if (!context) {\n return null\n } else if (context.block) {\n var inner = registerVarScoped(varname, context.prev)\n if (!inner) return null\n if (inner == context.prev) return context\n return new Context(inner, context.vars, true)\n } else if (inList(varname, context.vars)) {\n return context\n } else {\n return new Context(context.prev, new Var(varname, context.vars), false)\n }\n }\n\n function isModifier(name) {\n return name == \"public\" || name == \"private\" || name == \"protected\" || name == \"abstract\" || name == \"readonly\"\n }\n\n // Combinators\n\n function Context(prev, vars, block) { this.prev = prev; this.vars = vars; this.block = block }\n function Var(name, next) { this.name = name; this.next = next }\n\n var defaultVars = new Var(\"this\", new Var(\"arguments\", null))\n function pushcontext() {\n cx.state.context = new Context(cx.state.context, cx.state.localVars, false)\n cx.state.localVars = defaultVars\n }\n function pushblockcontext() {\n cx.state.context = new Context(cx.state.context, cx.state.localVars, true)\n cx.state.localVars = null\n }\n function popcontext() {\n cx.state.localVars = cx.state.context.vars\n cx.state.context = cx.state.context.prev\n }\n popcontext.lex = true\n function pushlex(type, info) {\n var result = function() {\n var state = cx.state, indent = state.indented;\n if (state.lexical.type == \"stat\") indent = state.lexical.indented;\n else for (var outer = state.lexical; outer && outer.type == \")\" && outer.align; outer = outer.prev)\n indent = outer.indented;\n state.lexical = new JSLexical(indent, cx.stream.column(), type, null, state.lexical, info);\n };\n result.lex = true;\n return result;\n }\n function poplex() {\n var state = cx.state;\n if (state.lexical.prev) {\n if (state.lexical.type == \")\")\n state.indented = state.lexical.indented;\n state.lexical = state.lexical.prev;\n }\n }\n poplex.lex = true;\n\n function expect(wanted) {\n function exp(type) {\n if (type == wanted) return cont();\n else if (wanted == \";\" || type == \"}\" || type == \")\" || type == \"]\") return pass();\n else return cont(exp);\n };\n return exp;\n }\n\n function statement(type, value) {\n if (type == \"var\") return cont(pushlex(\"vardef\", value), vardef, expect(\";\"), poplex);\n if (type == \"keyword a\") return cont(pushlex(\"form\"), parenExpr, statement, poplex);\n if (type == \"keyword b\") return cont(pushlex(\"form\"), statement, poplex);\n if (type == \"keyword d\") return cx.stream.match(/^\\s*$/, false) ? cont() : cont(pushlex(\"stat\"), maybeexpression, expect(\";\"), poplex);\n if (type == \"debugger\") return cont(expect(\";\"));\n if (type == \"{\") return cont(pushlex(\"}\"), pushblockcontext, block, poplex, popcontext);\n if (type == \";\") return cont();\n if (type == \"if\") {\n if (cx.state.lexical.info == \"else\" && cx.state.cc[cx.state.cc.length - 1] == poplex)\n cx.state.cc.pop()();\n return cont(pushlex(\"form\"), parenExpr, statement, poplex, maybeelse);\n }\n if (type == \"function\") return cont(functiondef);\n if (type == \"for\") return cont(pushlex(\"form\"), pushblockcontext, forspec, statement, popcontext, poplex);\n if (type == \"class\" || (isTS && value == \"interface\")) {\n cx.marked = \"keyword\"\n return cont(pushlex(\"form\", type == \"class\" ? type : value), className, poplex)\n }\n if (type == \"variable\") {\n if (isTS && value == \"declare\") {\n cx.marked = \"keyword\"\n return cont(statement)\n } else if (isTS && (value == \"module\" || value == \"enum\" || value == \"type\") && cx.stream.match(/^\\s*\\w/, false)) {\n cx.marked = \"keyword\"\n if (value == \"enum\") return cont(enumdef);\n else if (value == \"type\") return cont(typename, expect(\"operator\"), typeexpr, expect(\";\"));\n else return cont(pushlex(\"form\"), pattern, expect(\"{\"), pushlex(\"}\"), block, poplex, poplex)\n } else if (isTS && value == \"namespace\") {\n cx.marked = \"keyword\"\n return cont(pushlex(\"form\"), expression, statement, poplex)\n } else if (isTS && value == \"abstract\") {\n cx.marked = \"keyword\"\n return cont(statement)\n } else {\n return cont(pushlex(\"stat\"), maybelabel);\n }\n }\n if (type == \"switch\") return cont(pushlex(\"form\"), parenExpr, expect(\"{\"), pushlex(\"}\", \"switch\"), pushblockcontext,\n block, poplex, poplex, popcontext);\n if (type == \"case\") return cont(expression, expect(\":\"));\n if (type == \"default\") return cont(expect(\":\"));\n if (type == \"catch\") return cont(pushlex(\"form\"), pushcontext, maybeCatchBinding, statement, poplex, popcontext);\n if (type == \"export\") return cont(pushlex(\"stat\"), afterExport, poplex);\n if (type == \"import\") return cont(pushlex(\"stat\"), afterImport, poplex);\n if (type == \"async\") return cont(statement)\n if (value == \"@\") return cont(expression, statement)\n return pass(pushlex(\"stat\"), expression, expect(\";\"), poplex);\n }\n function maybeCatchBinding(type) {\n if (type == \"(\") return cont(funarg, expect(\")\"))\n }\n function expression(type, value) {\n return expressionInner(type, value, false);\n }\n function expressionNoComma(type, value) {\n return expressionInner(type, value, true);\n }\n function parenExpr(type) {\n if (type != \"(\") return pass()\n return cont(pushlex(\")\"), maybeexpression, expect(\")\"), poplex)\n }\n function expressionInner(type, value, noComma) {\n if (cx.state.fatArrowAt == cx.stream.start) {\n var body = noComma ? arrowBodyNoComma : arrowBody;\n if (type == \"(\") return cont(pushcontext, pushlex(\")\"), commasep(funarg, \")\"), poplex, expect(\"=>\"), body, popcontext);\n else if (type == \"variable\") return pass(pushcontext, pattern, expect(\"=>\"), body, popcontext);\n }\n\n var maybeop = noComma ? maybeoperatorNoComma : maybeoperatorComma;\n if (atomicTypes.hasOwnProperty(type)) return cont(maybeop);\n if (type == \"function\") return cont(functiondef, maybeop);\n if (type == \"class\" || (isTS && value == \"interface\")) { cx.marked = \"keyword\"; return cont(pushlex(\"form\"), classExpression, poplex); }\n if (type == \"keyword c\" || type == \"async\") return cont(noComma ? expressionNoComma : expression);\n if (type == \"(\") return cont(pushlex(\")\"), maybeexpression, expect(\")\"), poplex, maybeop);\n if (type == \"operator\" || type == \"spread\") return cont(noComma ? expressionNoComma : expression);\n if (type == \"[\") return cont(pushlex(\"]\"), arrayLiteral, poplex, maybeop);\n if (type == \"{\") return contCommasep(objprop, \"}\", null, maybeop);\n if (type == \"quasi\") return pass(quasi, maybeop);\n if (type == \"new\") return cont(maybeTarget(noComma));\n return cont();\n }\n function maybeexpression(type) {\n if (type.match(/[;\\}\\)\\],]/)) return pass();\n return pass(expression);\n }\n\n function maybeoperatorComma(type, value) {\n if (type == \",\") return cont(maybeexpression);\n return maybeoperatorNoComma(type, value, false);\n }\n function maybeoperatorNoComma(type, value, noComma) {\n var me = noComma == false ? maybeoperatorComma : maybeoperatorNoComma;\n var expr = noComma == false ? expression : expressionNoComma;\n if (type == \"=>\") return cont(pushcontext, noComma ? arrowBodyNoComma : arrowBody, popcontext);\n if (type == \"operator\") {\n if (/\\+\\+|--/.test(value) || isTS && value == \"!\") return cont(me);\n if (isTS && value == \"<\" && cx.stream.match(/^([^<>]|<[^<>]*>)*>\\s*\\(/, false))\n return cont(pushlex(\">\"), commasep(typeexpr, \">\"), poplex, me);\n if (value == \"?\") return cont(expression, expect(\":\"), expr);\n return cont(expr);\n }\n if (type == \"quasi\") { return pass(quasi, me); }\n if (type == \";\") return;\n if (type == \"(\") return contCommasep(expressionNoComma, \")\", \"call\", me);\n if (type == \".\") return cont(property, me);\n if (type == \"[\") return cont(pushlex(\"]\"), maybeexpression, expect(\"]\"), poplex, me);\n if (isTS && value == \"as\") { cx.marked = \"keyword\"; return cont(typeexpr, me) }\n if (type == \"regexp\") {\n cx.state.lastType = cx.marked = \"operator\"\n cx.stream.backUp(cx.stream.pos - cx.stream.start - 1)\n return cont(expr)\n }\n }\n function quasi(type, value) {\n if (type != \"quasi\") return pass();\n if (value.slice(value.length - 2) != \"${\") return cont(quasi);\n return cont(expression, continueQuasi);\n }\n function continueQuasi(type) {\n if (type == \"}\") {\n cx.marked = \"string-2\";\n cx.state.tokenize = tokenQuasi;\n return cont(quasi);\n }\n }\n function arrowBody(type) {\n findFatArrow(cx.stream, cx.state);\n return pass(type == \"{\" ? statement : expression);\n }\n function arrowBodyNoComma(type) {\n findFatArrow(cx.stream, cx.state);\n return pass(type == \"{\" ? statement : expressionNoComma);\n }\n function maybeTarget(noComma) {\n return function(type) {\n if (type == \".\") return cont(noComma ? targetNoComma : target);\n else if (type == \"variable\" && isTS) return cont(maybeTypeArgs, noComma ? maybeoperatorNoComma : maybeoperatorComma)\n else return pass(noComma ? expressionNoComma : expression);\n };\n }\n function target(_, value) {\n if (value == \"target\") { cx.marked = \"keyword\"; return cont(maybeoperatorComma); }\n }\n function targetNoComma(_, value) {\n if (value == \"target\") { cx.marked = \"keyword\"; return cont(maybeoperatorNoComma); }\n }\n function maybelabel(type) {\n if (type == \":\") return cont(poplex, statement);\n return pass(maybeoperatorComma, expect(\";\"), poplex);\n }\n function property(type) {\n if (type == \"variable\") {cx.marked = \"property\"; return cont();}\n }\n function objprop(type, value) {\n if (type == \"async\") {\n cx.marked = \"property\";\n return cont(objprop);\n } else if (type == \"variable\" || cx.style == \"keyword\") {\n cx.marked = \"property\";\n if (value == \"get\" || value == \"set\") return cont(getterSetter);\n var m // Work around fat-arrow-detection complication for detecting typescript typed arrow params\n if (isTS && cx.state.fatArrowAt == cx.stream.start && (m = cx.stream.match(/^\\s*:\\s*/, false)))\n cx.state.fatArrowAt = cx.stream.pos + m[0].length\n return cont(afterprop);\n } else if (type == \"number\" || type == \"string\") {\n cx.marked = jsonldMode ? \"property\" : (cx.style + \" property\");\n return cont(afterprop);\n } else if (type == \"jsonld-keyword\") {\n return cont(afterprop);\n } else if (isTS && isModifier(value)) {\n cx.marked = \"keyword\"\n return cont(objprop)\n } else if (type == \"[\") {\n return cont(expression, maybetype, expect(\"]\"), afterprop);\n } else if (type == \"spread\") {\n return cont(expressionNoComma, afterprop);\n } else if (value == \"*\") {\n cx.marked = \"keyword\";\n return cont(objprop);\n } else if (type == \":\") {\n return pass(afterprop)\n }\n }\n function getterSetter(type) {\n if (type != \"variable\") return pass(afterprop);\n cx.marked = \"property\";\n return cont(functiondef);\n }\n function afterprop(type) {\n if (type == \":\") return cont(expressionNoComma);\n if (type == \"(\") return pass(functiondef);\n }\n function commasep(what, end, sep) {\n function proceed(type, value) {\n if (sep ? sep.indexOf(type) > -1 : type == \",\") {\n var lex = cx.state.lexical;\n if (lex.info == \"call\") lex.pos = (lex.pos || 0) + 1;\n return cont(function(type, value) {\n if (type == end || value == end) return pass()\n return pass(what)\n }, proceed);\n }\n if (type == end || value == end) return cont();\n if (sep && sep.indexOf(\";\") > -1) return pass(what)\n return cont(expect(end));\n }\n return function(type, value) {\n if (type == end || value == end) return cont();\n return pass(what, proceed);\n };\n }\n function contCommasep(what, end, info) {\n for (var i = 3; i < arguments.length; i++)\n cx.cc.push(arguments[i]);\n return cont(pushlex(end, info), commasep(what, end), poplex);\n }\n function block(type) {\n if (type == \"}\") return cont();\n return pass(statement, block);\n }\n function maybetype(type, value) {\n if (isTS) {\n if (type == \":\") return cont(typeexpr);\n if (value == \"?\") return cont(maybetype);\n }\n }\n function maybetypeOrIn(type, value) {\n if (isTS && (type == \":\" || value == \"in\")) return cont(typeexpr)\n }\n function mayberettype(type) {\n if (isTS && type == \":\") {\n if (cx.stream.match(/^\\s*\\w+\\s+is\\b/, false)) return cont(expression, isKW, typeexpr)\n else return cont(typeexpr)\n }\n }\n function isKW(_, value) {\n if (value == \"is\") {\n cx.marked = \"keyword\"\n return cont()\n }\n }\n function typeexpr(type, value) {\n if (value == \"keyof\" || value == \"typeof\" || value == \"infer\" || value == \"readonly\") {\n cx.marked = \"keyword\"\n return cont(value == \"typeof\" ? expressionNoComma : typeexpr)\n }\n if (type == \"variable\" || value == \"void\") {\n cx.marked = \"type\"\n return cont(afterType)\n }\n if (value == \"|\" || value == \"&\") return cont(typeexpr)\n if (type == \"string\" || type == \"number\" || type == \"atom\") return cont(afterType);\n if (type == \"[\") return cont(pushlex(\"]\"), commasep(typeexpr, \"]\", \",\"), poplex, afterType)\n if (type == \"{\") return cont(pushlex(\"}\"), typeprops, poplex, afterType)\n if (type == \"(\") return cont(commasep(typearg, \")\"), maybeReturnType, afterType)\n if (type == \"<\") return cont(commasep(typeexpr, \">\"), typeexpr)\n if (type == \"quasi\") { return pass(quasiType, afterType); }\n }\n function maybeReturnType(type) {\n if (type == \"=>\") return cont(typeexpr)\n }\n function typeprops(type) {\n if (type.match(/[\\}\\)\\]]/)) return cont()\n if (type == \",\" || type == \";\") return cont(typeprops)\n return pass(typeprop, typeprops)\n }\n function typeprop(type, value) {\n if (type == \"variable\" || cx.style == \"keyword\") {\n cx.marked = \"property\"\n return cont(typeprop)\n } else if (value == \"?\" || type == \"number\" || type == \"string\") {\n return cont(typeprop)\n } else if (type == \":\") {\n return cont(typeexpr)\n } else if (type == \"[\") {\n return cont(expect(\"variable\"), maybetypeOrIn, expect(\"]\"), typeprop)\n } else if (type == \"(\") {\n return pass(functiondecl, typeprop)\n } else if (!type.match(/[;\\}\\)\\],]/)) {\n return cont()\n }\n }\n function quasiType(type, value) {\n if (type != \"quasi\") return pass();\n if (value.slice(value.length - 2) != \"${\") return cont(quasiType);\n return cont(typeexpr, continueQuasiType);\n }\n function continueQuasiType(type) {\n if (type == \"}\") {\n cx.marked = \"string-2\";\n cx.state.tokenize = tokenQuasi;\n return cont(quasiType);\n }\n }\n function typearg(type, value) {\n if (type == \"variable\" && cx.stream.match(/^\\s*[?:]/, false) || value == \"?\") return cont(typearg)\n if (type == \":\") return cont(typeexpr)\n if (type == \"spread\") return cont(typearg)\n return pass(typeexpr)\n }\n function afterType(type, value) {\n if (value == \"<\") return cont(pushlex(\">\"), commasep(typeexpr, \">\"), poplex, afterType)\n if (value == \"|\" || type == \".\" || value == \"&\") return cont(typeexpr)\n if (type == \"[\") return cont(typeexpr, expect(\"]\"), afterType)\n if (value == \"extends\" || value == \"implements\") { cx.marked = \"keyword\"; return cont(typeexpr) }\n if (value == \"?\") return cont(typeexpr, expect(\":\"), typeexpr)\n }\n function maybeTypeArgs(_, value) {\n if (value == \"<\") return cont(pushlex(\">\"), commasep(typeexpr, \">\"), poplex, afterType)\n }\n function typeparam() {\n return pass(typeexpr, maybeTypeDefault)\n }\n function maybeTypeDefault(_, value) {\n if (value == \"=\") return cont(typeexpr)\n }\n function vardef(_, value) {\n if (value == \"enum\") {cx.marked = \"keyword\"; return cont(enumdef)}\n return pass(pattern, maybetype, maybeAssign, vardefCont);\n }\n function pattern(type, value) {\n if (isTS && isModifier(value)) { cx.marked = \"keyword\"; return cont(pattern) }\n if (type == \"variable\") { register(value); return cont(); }\n if (type == \"spread\") return cont(pattern);\n if (type == \"[\") return contCommasep(eltpattern, \"]\");\n if (type == \"{\") return contCommasep(proppattern, \"}\");\n }\n function proppattern(type, value) {\n if (type == \"variable\" && !cx.stream.match(/^\\s*:/, false)) {\n register(value);\n return cont(maybeAssign);\n }\n if (type == \"variable\") cx.marked = \"property\";\n if (type == \"spread\") return cont(pattern);\n if (type == \"}\") return pass();\n if (type == \"[\") return cont(expression, expect(']'), expect(':'), proppattern);\n return cont(expect(\":\"), pattern, maybeAssign);\n }\n function eltpattern() {\n return pass(pattern, maybeAssign)\n }\n function maybeAssign(_type, value) {\n if (value == \"=\") return cont(expressionNoComma);\n }\n function vardefCont(type) {\n if (type == \",\") return cont(vardef);\n }\n function maybeelse(type, value) {\n if (type == \"keyword b\" && value == \"else\") return cont(pushlex(\"form\", \"else\"), statement, poplex);\n }\n function forspec(type, value) {\n if (value == \"await\") return cont(forspec);\n if (type == \"(\") return cont(pushlex(\")\"), forspec1, poplex);\n }\n function forspec1(type) {\n if (type == \"var\") return cont(vardef, forspec2);\n if (type == \"variable\") return cont(forspec2);\n return pass(forspec2)\n }\n function forspec2(type, value) {\n if (type == \")\") return cont()\n if (type == \";\") return cont(forspec2)\n if (value == \"in\" || value == \"of\") { cx.marked = \"keyword\"; return cont(expression, forspec2) }\n return pass(expression, forspec2)\n }\n function functiondef(type, value) {\n if (value == \"*\") {cx.marked = \"keyword\"; return cont(functiondef);}\n if (type == \"variable\") {register(value); return cont(functiondef);}\n if (type == \"(\") return cont(pushcontext, pushlex(\")\"), commasep(funarg, \")\"), poplex, mayberettype, statement, popcontext);\n if (isTS && value == \"<\") return cont(pushlex(\">\"), commasep(typeparam, \">\"), poplex, functiondef)\n }\n function functiondecl(type, value) {\n if (value == \"*\") {cx.marked = \"keyword\"; return cont(functiondecl);}\n if (type == \"variable\") {register(value); return cont(functiondecl);}\n if (type == \"(\") return cont(pushcontext, pushlex(\")\"), commasep(funarg, \")\"), poplex, mayberettype, popcontext);\n if (isTS && value == \"<\") return cont(pushlex(\">\"), commasep(typeparam, \">\"), poplex, functiondecl)\n }\n function typename(type, value) {\n if (type == \"keyword\" || type == \"variable\") {\n cx.marked = \"type\"\n return cont(typename)\n } else if (value == \"<\") {\n return cont(pushlex(\">\"), commasep(typeparam, \">\"), poplex)\n }\n }\n function funarg(type, value) {\n if (value == \"@\") cont(expression, funarg)\n if (type == \"spread\") return cont(funarg);\n if (isTS && isModifier(value)) { cx.marked = \"keyword\"; return cont(funarg); }\n if (isTS && type == \"this\") return cont(maybetype, maybeAssign)\n return pass(pattern, maybetype, maybeAssign);\n }\n function classExpression(type, value) {\n // Class expressions may have an optional name.\n if (type == \"variable\") return className(type, value);\n return classNameAfter(type, value);\n }\n function className(type, value) {\n if (type == \"variable\") {register(value); return cont(classNameAfter);}\n }\n function classNameAfter(type, value) {\n if (value == \"<\") return cont(pushlex(\">\"), commasep(typeparam, \">\"), poplex, classNameAfter)\n if (value == \"extends\" || value == \"implements\" || (isTS && type == \",\")) {\n if (value == \"implements\") cx.marked = \"keyword\";\n return cont(isTS ? typeexpr : expression, classNameAfter);\n }\n if (type == \"{\") return cont(pushlex(\"}\"), classBody, poplex);\n }\n function classBody(type, value) {\n if (type == \"async\" ||\n (type == \"variable\" &&\n (value == \"static\" || value == \"get\" || value == \"set\" || (isTS && isModifier(value))) &&\n cx.stream.match(/^\\s+[\\w$\\xa1-\\uffff]/, false))) {\n cx.marked = \"keyword\";\n return cont(classBody);\n }\n if (type == \"variable\" || cx.style == \"keyword\") {\n cx.marked = \"property\";\n return cont(classfield, classBody);\n }\n if (type == \"number\" || type == \"string\") return cont(classfield, classBody);\n if (type == \"[\")\n return cont(expression, maybetype, expect(\"]\"), classfield, classBody)\n if (value == \"*\") {\n cx.marked = \"keyword\";\n return cont(classBody);\n }\n if (isTS && type == \"(\") return pass(functiondecl, classBody)\n if (type == \";\" || type == \",\") return cont(classBody);\n if (type == \"}\") return cont();\n if (value == \"@\") return cont(expression, classBody)\n }\n function classfield(type, value) {\n if (value == \"!\") return cont(classfield)\n if (value == \"?\") return cont(classfield)\n if (type == \":\") return cont(typeexpr, maybeAssign)\n if (value == \"=\") return cont(expressionNoComma)\n var context = cx.state.lexical.prev, isInterface = context && context.info == \"interface\"\n return pass(isInterface ? functiondecl : functiondef)\n }\n function afterExport(type, value) {\n if (value == \"*\") { cx.marked = \"keyword\"; return cont(maybeFrom, expect(\";\")); }\n if (value == \"default\") { cx.marked = \"keyword\"; return cont(expression, expect(\";\")); }\n if (type == \"{\") return cont(commasep(exportField, \"}\"), maybeFrom, expect(\";\"));\n return pass(statement);\n }\n function exportField(type, value) {\n if (value == \"as\") { cx.marked = \"keyword\"; return cont(expect(\"variable\")); }\n if (type == \"variable\") return pass(expressionNoComma, exportField);\n }\n function afterImport(type) {\n if (type == \"string\") return cont();\n if (type == \"(\") return pass(expression);\n if (type == \".\") return pass(maybeoperatorComma);\n return pass(importSpec, maybeMoreImports, maybeFrom);\n }\n function importSpec(type, value) {\n if (type == \"{\") return contCommasep(importSpec, \"}\");\n if (type == \"variable\") register(value);\n if (value == \"*\") cx.marked = \"keyword\";\n return cont(maybeAs);\n }\n function maybeMoreImports(type) {\n if (type == \",\") return cont(importSpec, maybeMoreImports)\n }\n function maybeAs(_type, value) {\n if (value == \"as\") { cx.marked = \"keyword\"; return cont(importSpec); }\n }\n function maybeFrom(_type, value) {\n if (value == \"from\") { cx.marked = \"keyword\"; return cont(expression); }\n }\n function arrayLiteral(type) {\n if (type == \"]\") return cont();\n return pass(commasep(expressionNoComma, \"]\"));\n }\n function enumdef() {\n return pass(pushlex(\"form\"), pattern, expect(\"{\"), pushlex(\"}\"), commasep(enummember, \"}\"), poplex, poplex)\n }\n function enummember() {\n return pass(pattern, maybeAssign);\n }\n\n function isContinuedStatement(state, textAfter) {\n return state.lastType == \"operator\" || state.lastType == \",\" ||\n isOperatorChar.test(textAfter.charAt(0)) ||\n /[,.]/.test(textAfter.charAt(0));\n }\n\n function expressionAllowed(stream, state, backUp) {\n return state.tokenize == tokenBase &&\n /^(?:operator|sof|keyword [bcd]|case|new|export|default|spread|[\\[{}\\(,;:]|=>)$/.test(state.lastType) ||\n (state.lastType == \"quasi\" && /\\{\\s*$/.test(stream.string.slice(0, stream.pos - (backUp || 0))))\n }\n\n // Interface\n\n return {\n startState: function(basecolumn) {\n var state = {\n tokenize: tokenBase,\n lastType: \"sof\",\n cc: [],\n lexical: new JSLexical((basecolumn || 0) - indentUnit, 0, \"block\", false),\n localVars: parserConfig.localVars,\n context: parserConfig.localVars && new Context(null, null, false),\n indented: basecolumn || 0\n };\n if (parserConfig.globalVars && typeof parserConfig.globalVars == \"object\")\n state.globalVars = parserConfig.globalVars;\n return state;\n },\n\n token: function(stream, state) {\n if (stream.sol()) {\n if (!state.lexical.hasOwnProperty(\"align\"))\n state.lexical.align = false;\n state.indented = stream.indentation();\n findFatArrow(stream, state);\n }\n if (state.tokenize != tokenComment && stream.eatSpace()) return null;\n var style = state.tokenize(stream, state);\n if (type == \"comment\") return style;\n state.lastType = type == \"operator\" && (content == \"++\" || content == \"--\") ? \"incdec\" : type;\n return parseJS(state, style, type, content, stream);\n },\n\n indent: function(state, textAfter) {\n if (state.tokenize == tokenComment || state.tokenize == tokenQuasi) return CodeMirror.Pass;\n if (state.tokenize != tokenBase) return 0;\n var firstChar = textAfter && textAfter.charAt(0), lexical = state.lexical, top\n // Kludge to prevent 'maybelse' from blocking lexical scope pops\n if (!/^\\s*else\\b/.test(textAfter)) for (var i = state.cc.length - 1; i >= 0; --i) {\n var c = state.cc[i];\n if (c == poplex) lexical = lexical.prev;\n else if (c != maybeelse && c != popcontext) break;\n }\n while ((lexical.type == \"stat\" || lexical.type == \"form\") &&\n (firstChar == \"}\" || ((top = state.cc[state.cc.length - 1]) &&\n (top == maybeoperatorComma || top == maybeoperatorNoComma) &&\n !/^[,\\.=+\\-*:?[\\(]/.test(textAfter))))\n lexical = lexical.prev;\n if (statementIndent && lexical.type == \")\" && lexical.prev.type == \"stat\")\n lexical = lexical.prev;\n var type = lexical.type, closing = firstChar == type;\n\n if (type == \"vardef\") return lexical.indented + (state.lastType == \"operator\" || state.lastType == \",\" ? lexical.info.length + 1 : 0);\n else if (type == \"form\" && firstChar == \"{\") return lexical.indented;\n else if (type == \"form\") return lexical.indented + indentUnit;\n else if (type == \"stat\")\n return lexical.indented + (isContinuedStatement(state, textAfter) ? statementIndent || indentUnit : 0);\n else if (lexical.info == \"switch\" && !closing && parserConfig.doubleIndentSwitch != false)\n return lexical.indented + (/^(?:case|default)\\b/.test(textAfter) ? indentUnit : 2 * indentUnit);\n else if (lexical.align) return lexical.column + (closing ? 0 : 1);\n else return lexical.indented + (closing ? 0 : indentUnit);\n },\n\n electricInput: /^\\s*(?:case .*?:|default:|\\{|\\})$/,\n blockCommentStart: jsonMode ? null : \"/*\",\n blockCommentEnd: jsonMode ? null : \"*/\",\n blockCommentContinue: jsonMode ? null : \" * \",\n lineComment: jsonMode ? null : \"//\",\n fold: \"brace\",\n closeBrackets: \"()[]{}''\\\"\\\"``\",\n\n helperType: jsonMode ? \"json\" : \"javascript\",\n jsonldMode: jsonldMode,\n jsonMode: jsonMode,\n\n expressionAllowed: expressionAllowed,\n\n skipExpression: function(state) {\n parseJS(state, \"atom\", \"atom\", \"true\", new CodeMirror.StringStream(\"\", 2, null))\n }\n };\n});\n\nCodeMirror.registerHelper(\"wordChars\", \"javascript\", /[\\w$]/);\n\nCodeMirror.defineMIME(\"text/javascript\", \"javascript\");\nCodeMirror.defineMIME(\"text/ecmascript\", \"javascript\");\nCodeMirror.defineMIME(\"application/javascript\", \"javascript\");\nCodeMirror.defineMIME(\"application/x-javascript\", \"javascript\");\nCodeMirror.defineMIME(\"application/ecmascript\", \"javascript\");\nCodeMirror.defineMIME(\"application/json\", { name: \"javascript\", json: true });\nCodeMirror.defineMIME(\"application/x-json\", { name: \"javascript\", json: true });\nCodeMirror.defineMIME(\"application/manifest+json\", { name: \"javascript\", json: true })\nCodeMirror.defineMIME(\"application/ld+json\", { name: \"javascript\", jsonld: true });\nCodeMirror.defineMIME(\"text/typescript\", { name: \"javascript\", typescript: true });\nCodeMirror.defineMIME(\"application/typescript\", { name: \"javascript\", typescript: true });\n\n});\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"), require(\"../xml/xml\"), require(\"../javascript/javascript\"))\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\", \"../xml/xml\", \"../javascript/javascript\"], mod)\n else // Plain browser env\n mod(CodeMirror)\n})(function(CodeMirror) {\n \"use strict\"\n\n // Depth means the amount of open braces in JS context, in XML\n // context 0 means not in tag, 1 means in tag, and 2 means in tag\n // and js block comment.\n function Context(state, mode, depth, prev) {\n this.state = state; this.mode = mode; this.depth = depth; this.prev = prev\n }\n\n function copyContext(context) {\n return new Context(CodeMirror.copyState(context.mode, context.state),\n context.mode,\n context.depth,\n context.prev && copyContext(context.prev))\n }\n\n CodeMirror.defineMode(\"jsx\", function(config, modeConfig) {\n var xmlMode = CodeMirror.getMode(config, {name: \"xml\", allowMissing: true, multilineTagIndentPastTag: false, allowMissingTagName: true})\n var jsMode = CodeMirror.getMode(config, modeConfig && modeConfig.base || \"javascript\")\n\n function flatXMLIndent(state) {\n var tagName = state.tagName\n state.tagName = null\n var result = xmlMode.indent(state, \"\", \"\")\n state.tagName = tagName\n return result\n }\n\n function token(stream, state) {\n if (state.context.mode == xmlMode)\n return xmlToken(stream, state, state.context)\n else\n return jsToken(stream, state, state.context)\n }\n\n function xmlToken(stream, state, cx) {\n if (cx.depth == 2) { // Inside a JS /* */ comment\n if (stream.match(/^.*?\\*\\//)) cx.depth = 1\n else stream.skipToEnd()\n return \"comment\"\n }\n\n if (stream.peek() == \"{\") {\n xmlMode.skipAttribute(cx.state)\n\n var indent = flatXMLIndent(cx.state), xmlContext = cx.state.context\n // If JS starts on same line as tag\n if (xmlContext && stream.match(/^[^>]*>\\s*$/, false)) {\n while (xmlContext.prev && !xmlContext.startOfLine)\n xmlContext = xmlContext.prev\n // If tag starts the line, use XML indentation level\n if (xmlContext.startOfLine) indent -= config.indentUnit\n // Else use JS indentation level\n else if (cx.prev.state.lexical) indent = cx.prev.state.lexical.indented\n // Else if inside of tag\n } else if (cx.depth == 1) {\n indent += config.indentUnit\n }\n\n state.context = new Context(CodeMirror.startState(jsMode, indent),\n jsMode, 0, state.context)\n return null\n }\n\n if (cx.depth == 1) { // Inside of tag\n if (stream.peek() == \"<\") { // Tag inside of tag\n xmlMode.skipAttribute(cx.state)\n state.context = new Context(CodeMirror.startState(xmlMode, flatXMLIndent(cx.state)),\n xmlMode, 0, state.context)\n return null\n } else if (stream.match(\"//\")) {\n stream.skipToEnd()\n return \"comment\"\n } else if (stream.match(\"/*\")) {\n cx.depth = 2\n return token(stream, state)\n }\n }\n\n var style = xmlMode.token(stream, cx.state), cur = stream.current(), stop\n if (/\\btag\\b/.test(style)) {\n if (/>$/.test(cur)) {\n if (cx.state.context) cx.depth = 0\n else state.context = state.context.prev\n } else if (/^ -1) {\n stream.backUp(cur.length - stop)\n }\n return style\n }\n\n function jsToken(stream, state, cx) {\n if (stream.peek() == \"<\" && jsMode.expressionAllowed(stream, cx.state)) {\n state.context = new Context(CodeMirror.startState(xmlMode, jsMode.indent(cx.state, \"\", \"\")),\n xmlMode, 0, state.context)\n jsMode.skipExpression(cx.state)\n return null\n }\n\n var style = jsMode.token(stream, cx.state)\n if (!style && cx.depth != null) {\n var cur = stream.current()\n if (cur == \"{\") {\n cx.depth++\n } else if (cur == \"}\") {\n if (--cx.depth == 0) state.context = state.context.prev\n }\n }\n return style\n }\n\n return {\n startState: function() {\n return {context: new Context(CodeMirror.startState(jsMode), jsMode)}\n },\n\n copyState: function(state) {\n return {context: copyContext(state.context)}\n },\n\n token: token,\n\n indent: function(state, textAfter, fullLine) {\n return state.context.mode.indent(state.context.state, textAfter, fullLine)\n },\n\n innerMode: function(state) {\n return state.context\n }\n }\n }, \"xml\", \"javascript\")\n\n CodeMirror.defineMIME(\"text/jsx\", \"jsx\")\n CodeMirror.defineMIME(\"text/typescript-jsx\", {name: \"jsx\", base: {name: \"javascript\", typescript: true}})\n});\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"julia\", function(config, parserConf) {\n function wordRegexp(words, end) {\n if (typeof end === \"undefined\") { end = \"\\\\b\"; }\n return new RegExp(\"^((\" + words.join(\")|(\") + \"))\" + end);\n }\n\n var octChar = \"\\\\\\\\[0-7]{1,3}\";\n var hexChar = \"\\\\\\\\x[A-Fa-f0-9]{1,2}\";\n var sChar = \"\\\\\\\\[abefnrtv0%?'\\\"\\\\\\\\]\";\n var uChar = \"([^\\\\u0027\\\\u005C\\\\uD800-\\\\uDFFF]|[\\\\uD800-\\\\uDFFF][\\\\uDC00-\\\\uDFFF])\";\n\n var operators = parserConf.operators || wordRegexp([\n \"[<>]:\", \"[<>=]=\", \"<<=?\", \">>>?=?\", \"=>\", \"->\", \"\\\\/\\\\/\",\n \"[\\\\\\\\%*+\\\\-<>!=\\\\/^|&\\\\u00F7\\\\u22BB]=?\", \"\\\\?\", \"\\\\$\", \"~\", \":\",\n \"\\\\u00D7\", \"\\\\u2208\", \"\\\\u2209\", \"\\\\u220B\", \"\\\\u220C\", \"\\\\u2218\",\n \"\\\\u221A\", \"\\\\u221B\", \"\\\\u2229\", \"\\\\u222A\", \"\\\\u2260\", \"\\\\u2264\",\n \"\\\\u2265\", \"\\\\u2286\", \"\\\\u2288\", \"\\\\u228A\", \"\\\\u22C5\",\n \"\\\\b(in|isa)\\\\b(?!\\.?\\\\()\"], \"\");\n var delimiters = parserConf.delimiters || /^[;,()[\\]{}]/;\n var identifiers = parserConf.identifiers ||\n /^[_A-Za-z\\u00A1-\\u2217\\u2219-\\uFFFF][\\w\\u00A1-\\u2217\\u2219-\\uFFFF]*!*/;\n\n var chars = wordRegexp([octChar, hexChar, sChar, uChar], \"'\");\n\n var openersList = [\"begin\", \"function\", \"type\", \"struct\", \"immutable\", \"let\",\n \"macro\", \"for\", \"while\", \"quote\", \"if\", \"else\", \"elseif\", \"try\",\n \"finally\", \"catch\", \"do\"];\n\n var closersList = [\"end\", \"else\", \"elseif\", \"catch\", \"finally\"];\n\n var keywordsList = [\"if\", \"else\", \"elseif\", \"while\", \"for\", \"begin\", \"let\",\n \"end\", \"do\", \"try\", \"catch\", \"finally\", \"return\", \"break\", \"continue\",\n \"global\", \"local\", \"const\", \"export\", \"import\", \"importall\", \"using\",\n \"function\", \"where\", \"macro\", \"module\", \"baremodule\", \"struct\", \"type\",\n \"mutable\", \"immutable\", \"quote\", \"typealias\", \"abstract\", \"primitive\",\n \"bitstype\"];\n\n var builtinsList = [\"true\", \"false\", \"nothing\", \"NaN\", \"Inf\"];\n\n CodeMirror.registerHelper(\"hintWords\", \"julia\", keywordsList.concat(builtinsList));\n\n var openers = wordRegexp(openersList);\n var closers = wordRegexp(closersList);\n var keywords = wordRegexp(keywordsList);\n var builtins = wordRegexp(builtinsList);\n\n var macro = /^@[_A-Za-z][\\w]*/;\n var symbol = /^:[_A-Za-z\\u00A1-\\uFFFF][\\w\\u00A1-\\uFFFF]*!*/;\n var stringPrefixes = /^(`|([_A-Za-z\\u00A1-\\uFFFF]*\"(\"\")?))/;\n\n function inArray(state) {\n return (state.nestedArrays > 0);\n }\n\n function inGenerator(state) {\n return (state.nestedGenerators > 0);\n }\n\n function currentScope(state, n) {\n if (typeof(n) === \"undefined\") { n = 0; }\n if (state.scopes.length <= n) {\n return null;\n }\n return state.scopes[state.scopes.length - (n + 1)];\n }\n\n // tokenizers\n function tokenBase(stream, state) {\n // Handle multiline comments\n if (stream.match('#=', false)) {\n state.tokenize = tokenComment;\n return state.tokenize(stream, state);\n }\n\n // Handle scope changes\n var leavingExpr = state.leavingExpr;\n if (stream.sol()) {\n leavingExpr = false;\n }\n state.leavingExpr = false;\n\n if (leavingExpr) {\n if (stream.match(/^'+/)) {\n return \"operator\";\n }\n }\n\n if (stream.match(/\\.{4,}/)) {\n return \"error\";\n } else if (stream.match(/\\.{1,3}/)) {\n return \"operator\";\n }\n\n if (stream.eatSpace()) {\n return null;\n }\n\n var ch = stream.peek();\n\n // Handle single line comments\n if (ch === '#') {\n stream.skipToEnd();\n return \"comment\";\n }\n\n if (ch === '[') {\n state.scopes.push('[');\n state.nestedArrays++;\n }\n\n if (ch === '(') {\n state.scopes.push('(');\n state.nestedGenerators++;\n }\n\n if (inArray(state) && ch === ']') {\n while (state.scopes.length && currentScope(state) !== \"[\") { state.scopes.pop(); }\n state.scopes.pop();\n state.nestedArrays--;\n state.leavingExpr = true;\n }\n\n if (inGenerator(state) && ch === ')') {\n while (state.scopes.length && currentScope(state) !== \"(\") { state.scopes.pop(); }\n state.scopes.pop();\n state.nestedGenerators--;\n state.leavingExpr = true;\n }\n\n if (inArray(state)) {\n if (state.lastToken == \"end\" && stream.match(':')) {\n return \"operator\";\n }\n if (stream.match('end')) {\n return \"number\";\n }\n }\n\n var match;\n if (match = stream.match(openers, false)) {\n state.scopes.push(match[0]);\n }\n\n if (stream.match(closers, false)) {\n state.scopes.pop();\n }\n\n // Handle type annotations\n if (stream.match(/^::(?![:\\$])/)) {\n state.tokenize = tokenAnnotation;\n return state.tokenize(stream, state);\n }\n\n // Handle symbols\n if (!leavingExpr && stream.match(symbol) ||\n stream.match(/:([<>]:|<<=?|>>>?=?|->|\\/\\/|\\.{2,3}|[\\.\\\\%*+\\-<>!\\/^|&]=?|[~\\?\\$])/)) {\n return \"builtin\";\n }\n\n // Handle parametric types\n //if (stream.match(/^{[^}]*}(?=\\()/)) {\n // return \"builtin\";\n //}\n\n // Handle operators and Delimiters\n if (stream.match(operators)) {\n return \"operator\";\n }\n\n // Handle Number Literals\n if (stream.match(/^\\.?\\d/, false)) {\n var imMatcher = RegExp(/^im\\b/);\n var numberLiteral = false;\n if (stream.match(/^0x\\.[0-9a-f_]+p[\\+\\-]?[_\\d]+/i)) { numberLiteral = true; }\n // Integers\n if (stream.match(/^0x[0-9a-f_]+/i)) { numberLiteral = true; } // Hex\n if (stream.match(/^0b[01_]+/i)) { numberLiteral = true; } // Binary\n if (stream.match(/^0o[0-7_]+/i)) { numberLiteral = true; } // Octal\n // Floats\n if (stream.match(/^(?:(?:\\d[_\\d]*)?\\.(?!\\.)(?:\\d[_\\d]*)?|\\d[_\\d]*\\.(?!\\.)(?:\\d[_\\d]*))?([Eef][\\+\\-]?[_\\d]+)?/i)) { numberLiteral = true; }\n if (stream.match(/^\\d[_\\d]*(e[\\+\\-]?\\d+)?/i)) { numberLiteral = true; } // Decimal\n if (numberLiteral) {\n // Integer literals may be \"long\"\n stream.match(imMatcher);\n state.leavingExpr = true;\n return \"number\";\n }\n }\n\n // Handle Chars\n if (stream.match('\\'')) {\n state.tokenize = tokenChar;\n return state.tokenize(stream, state);\n }\n\n // Handle Strings\n if (stream.match(stringPrefixes)) {\n state.tokenize = tokenStringFactory(stream.current());\n return state.tokenize(stream, state);\n }\n\n if (stream.match(macro)) {\n return \"meta\";\n }\n\n if (stream.match(delimiters)) {\n return null;\n }\n\n if (stream.match(keywords)) {\n return \"keyword\";\n }\n\n if (stream.match(builtins)) {\n return \"builtin\";\n }\n\n var isDefinition = state.isDefinition || state.lastToken == \"function\" ||\n state.lastToken == \"macro\" || state.lastToken == \"type\" ||\n state.lastToken == \"struct\" || state.lastToken == \"immutable\";\n\n if (stream.match(identifiers)) {\n if (isDefinition) {\n if (stream.peek() === '.') {\n state.isDefinition = true;\n return \"variable\";\n }\n state.isDefinition = false;\n return \"def\";\n }\n state.leavingExpr = true;\n return \"variable\";\n }\n\n // Handle non-detected items\n stream.next();\n return \"error\";\n }\n\n function tokenAnnotation(stream, state) {\n stream.match(/.*?(?=[,;{}()=\\s]|$)/);\n if (stream.match('{')) {\n state.nestedParameters++;\n } else if (stream.match('}') && state.nestedParameters > 0) {\n state.nestedParameters--;\n }\n if (state.nestedParameters > 0) {\n stream.match(/.*?(?={|})/) || stream.next();\n } else if (state.nestedParameters == 0) {\n state.tokenize = tokenBase;\n }\n return \"builtin\";\n }\n\n function tokenComment(stream, state) {\n if (stream.match('#=')) {\n state.nestedComments++;\n }\n if (!stream.match(/.*?(?=(#=|=#))/)) {\n stream.skipToEnd();\n }\n if (stream.match('=#')) {\n state.nestedComments--;\n if (state.nestedComments == 0)\n state.tokenize = tokenBase;\n }\n return \"comment\";\n }\n\n function tokenChar(stream, state) {\n var isChar = false, match;\n if (stream.match(chars)) {\n isChar = true;\n } else if (match = stream.match(/\\\\u([a-f0-9]{1,4})(?=')/i)) {\n var value = parseInt(match[1], 16);\n if (value <= 55295 || value >= 57344) { // (U+0,U+D7FF), (U+E000,U+FFFF)\n isChar = true;\n stream.next();\n }\n } else if (match = stream.match(/\\\\U([A-Fa-f0-9]{5,8})(?=')/)) {\n var value = parseInt(match[1], 16);\n if (value <= 1114111) { // U+10FFFF\n isChar = true;\n stream.next();\n }\n }\n if (isChar) {\n state.leavingExpr = true;\n state.tokenize = tokenBase;\n return \"string\";\n }\n if (!stream.match(/^[^']+(?=')/)) { stream.skipToEnd(); }\n if (stream.match('\\'')) { state.tokenize = tokenBase; }\n return \"error\";\n }\n\n function tokenStringFactory(delimiter) {\n if (delimiter.substr(-3) === '\"\"\"') {\n delimiter = '\"\"\"';\n } else if (delimiter.substr(-1) === '\"') {\n delimiter = '\"';\n }\n function tokenString(stream, state) {\n if (stream.eat('\\\\')) {\n stream.next();\n } else if (stream.match(delimiter)) {\n state.tokenize = tokenBase;\n state.leavingExpr = true;\n return \"string\";\n } else {\n stream.eat(/[`\"]/);\n }\n stream.eatWhile(/[^\\\\`\"]/);\n return \"string\";\n }\n return tokenString;\n }\n\n var external = {\n startState: function() {\n return {\n tokenize: tokenBase,\n scopes: [],\n lastToken: null,\n leavingExpr: false,\n isDefinition: false,\n nestedArrays: 0,\n nestedComments: 0,\n nestedGenerators: 0,\n nestedParameters: 0,\n firstParenPos: -1\n };\n },\n\n token: function(stream, state) {\n var style = state.tokenize(stream, state);\n var current = stream.current();\n\n if (current && style) {\n state.lastToken = current;\n }\n\n return style;\n },\n\n indent: function(state, textAfter) {\n var delta = 0;\n if ( textAfter === ']' || textAfter === ')' || /^end\\b/.test(textAfter) ||\n /^else/.test(textAfter) || /^catch\\b/.test(textAfter) || /^elseif\\b/.test(textAfter) ||\n /^finally/.test(textAfter) ) {\n delta = -1;\n }\n return (state.scopes.length + delta) * config.indentUnit;\n },\n\n electricInput: /\\b(end|else|catch|finally)\\b/,\n blockCommentStart: \"#=\",\n blockCommentEnd: \"=#\",\n lineComment: \"#\",\n closeBrackets: \"()[]{}\\\"\\\"\",\n fold: \"indent\"\n };\n return external;\n});\n\n\nCodeMirror.defineMIME(\"text/x-julia\", \"julia\");\n\n});\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"), require(\"../xml/xml\"), require(\"../meta\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\", \"../xml/xml\", \"../meta\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"markdown\", function(cmCfg, modeCfg) {\n\n var htmlMode = CodeMirror.getMode(cmCfg, \"text/html\");\n var htmlModeMissing = htmlMode.name == \"null\"\n\n function getMode(name) {\n if (CodeMirror.findModeByName) {\n var found = CodeMirror.findModeByName(name);\n if (found) name = found.mime || found.mimes[0];\n }\n var mode = CodeMirror.getMode(cmCfg, name);\n return mode.name == \"null\" ? null : mode;\n }\n\n // Should characters that affect highlighting be highlighted separate?\n // Does not include characters that will be output (such as `1.` and `-` for lists)\n if (modeCfg.highlightFormatting === undefined)\n modeCfg.highlightFormatting = false;\n\n // Maximum number of nested blockquotes. Set to 0 for infinite nesting.\n // Excess `>` will emit `error` token.\n if (modeCfg.maxBlockquoteDepth === undefined)\n modeCfg.maxBlockquoteDepth = 0;\n\n // Turn on task lists? (\"- [ ] \" and \"- [x] \")\n if (modeCfg.taskLists === undefined) modeCfg.taskLists = false;\n\n // Turn on strikethrough syntax\n if (modeCfg.strikethrough === undefined)\n modeCfg.strikethrough = false;\n\n if (modeCfg.emoji === undefined)\n modeCfg.emoji = false;\n\n if (modeCfg.fencedCodeBlockHighlighting === undefined)\n modeCfg.fencedCodeBlockHighlighting = true;\n\n if (modeCfg.fencedCodeBlockDefaultMode === undefined)\n modeCfg.fencedCodeBlockDefaultMode = 'text/plain';\n\n if (modeCfg.xml === undefined)\n modeCfg.xml = true;\n\n // Allow token types to be overridden by user-provided token types.\n if (modeCfg.tokenTypeOverrides === undefined)\n modeCfg.tokenTypeOverrides = {};\n\n var tokenTypes = {\n header: \"header\",\n code: \"comment\",\n quote: \"quote\",\n list1: \"variable-2\",\n list2: \"variable-3\",\n list3: \"keyword\",\n hr: \"hr\",\n image: \"image\",\n imageAltText: \"image-alt-text\",\n imageMarker: \"image-marker\",\n formatting: \"formatting\",\n linkInline: \"link\",\n linkEmail: \"link\",\n linkText: \"link\",\n linkHref: \"string\",\n em: \"em\",\n strong: \"strong\",\n strikethrough: \"strikethrough\",\n emoji: \"builtin\"\n };\n\n for (var tokenType in tokenTypes) {\n if (tokenTypes.hasOwnProperty(tokenType) && modeCfg.tokenTypeOverrides[tokenType]) {\n tokenTypes[tokenType] = modeCfg.tokenTypeOverrides[tokenType];\n }\n }\n\n var hrRE = /^([*\\-_])(?:\\s*\\1){2,}\\s*$/\n , listRE = /^(?:[*\\-+]|^[0-9]+([.)]))\\s+/\n , taskListRE = /^\\[(x| )\\](?=\\s)/i // Must follow listRE\n , atxHeaderRE = modeCfg.allowAtxHeaderWithoutSpace ? /^(#+)/ : /^(#+)(?: |$)/\n , setextHeaderRE = /^ {0,3}(?:\\={1,}|-{2,})\\s*$/\n , textRE = /^[^#!\\[\\]*_\\\\<>` \"'(~:]+/\n , fencedCodeRE = /^(~~~+|```+)[ \\t]*([\\w\\/+#-]*)[^\\n`]*$/\n , linkDefRE = /^\\s*\\[[^\\]]+?\\]:.*$/ // naive link-definition\n , punctuation = /[!\"#$%&'()*+,\\-.\\/:;<=>?@\\[\\\\\\]^_`{|}~\\xA1\\xA7\\xAB\\xB6\\xB7\\xBB\\xBF\\u037E\\u0387\\u055A-\\u055F\\u0589\\u058A\\u05BE\\u05C0\\u05C3\\u05C6\\u05F3\\u05F4\\u0609\\u060A\\u060C\\u060D\\u061B\\u061E\\u061F\\u066A-\\u066D\\u06D4\\u0700-\\u070D\\u07F7-\\u07F9\\u0830-\\u083E\\u085E\\u0964\\u0965\\u0970\\u0AF0\\u0DF4\\u0E4F\\u0E5A\\u0E5B\\u0F04-\\u0F12\\u0F14\\u0F3A-\\u0F3D\\u0F85\\u0FD0-\\u0FD4\\u0FD9\\u0FDA\\u104A-\\u104F\\u10FB\\u1360-\\u1368\\u1400\\u166D\\u166E\\u169B\\u169C\\u16EB-\\u16ED\\u1735\\u1736\\u17D4-\\u17D6\\u17D8-\\u17DA\\u1800-\\u180A\\u1944\\u1945\\u1A1E\\u1A1F\\u1AA0-\\u1AA6\\u1AA8-\\u1AAD\\u1B5A-\\u1B60\\u1BFC-\\u1BFF\\u1C3B-\\u1C3F\\u1C7E\\u1C7F\\u1CC0-\\u1CC7\\u1CD3\\u2010-\\u2027\\u2030-\\u2043\\u2045-\\u2051\\u2053-\\u205E\\u207D\\u207E\\u208D\\u208E\\u2308-\\u230B\\u2329\\u232A\\u2768-\\u2775\\u27C5\\u27C6\\u27E6-\\u27EF\\u2983-\\u2998\\u29D8-\\u29DB\\u29FC\\u29FD\\u2CF9-\\u2CFC\\u2CFE\\u2CFF\\u2D70\\u2E00-\\u2E2E\\u2E30-\\u2E42\\u3001-\\u3003\\u3008-\\u3011\\u3014-\\u301F\\u3030\\u303D\\u30A0\\u30FB\\uA4FE\\uA4FF\\uA60D-\\uA60F\\uA673\\uA67E\\uA6F2-\\uA6F7\\uA874-\\uA877\\uA8CE\\uA8CF\\uA8F8-\\uA8FA\\uA8FC\\uA92E\\uA92F\\uA95F\\uA9C1-\\uA9CD\\uA9DE\\uA9DF\\uAA5C-\\uAA5F\\uAADE\\uAADF\\uAAF0\\uAAF1\\uABEB\\uFD3E\\uFD3F\\uFE10-\\uFE19\\uFE30-\\uFE52\\uFE54-\\uFE61\\uFE63\\uFE68\\uFE6A\\uFE6B\\uFF01-\\uFF03\\uFF05-\\uFF0A\\uFF0C-\\uFF0F\\uFF1A\\uFF1B\\uFF1F\\uFF20\\uFF3B-\\uFF3D\\uFF3F\\uFF5B\\uFF5D\\uFF5F-\\uFF65]|\\uD800[\\uDD00-\\uDD02\\uDF9F\\uDFD0]|\\uD801\\uDD6F|\\uD802[\\uDC57\\uDD1F\\uDD3F\\uDE50-\\uDE58\\uDE7F\\uDEF0-\\uDEF6\\uDF39-\\uDF3F\\uDF99-\\uDF9C]|\\uD804[\\uDC47-\\uDC4D\\uDCBB\\uDCBC\\uDCBE-\\uDCC1\\uDD40-\\uDD43\\uDD74\\uDD75\\uDDC5-\\uDDC9\\uDDCD\\uDDDB\\uDDDD-\\uDDDF\\uDE38-\\uDE3D\\uDEA9]|\\uD805[\\uDCC6\\uDDC1-\\uDDD7\\uDE41-\\uDE43\\uDF3C-\\uDF3E]|\\uD809[\\uDC70-\\uDC74]|\\uD81A[\\uDE6E\\uDE6F\\uDEF5\\uDF37-\\uDF3B\\uDF44]|\\uD82F\\uDC9F|\\uD836[\\uDE87-\\uDE8B]/\n , expandedTab = \" \" // CommonMark specifies tab as 4 spaces\n\n function switchInline(stream, state, f) {\n state.f = state.inline = f;\n return f(stream, state);\n }\n\n function switchBlock(stream, state, f) {\n state.f = state.block = f;\n return f(stream, state);\n }\n\n function lineIsEmpty(line) {\n return !line || !/\\S/.test(line.string)\n }\n\n // Blocks\n\n function blankLine(state) {\n // Reset linkTitle state\n state.linkTitle = false;\n state.linkHref = false;\n state.linkText = false;\n // Reset EM state\n state.em = false;\n // Reset STRONG state\n state.strong = false;\n // Reset strikethrough state\n state.strikethrough = false;\n // Reset state.quote\n state.quote = 0;\n // Reset state.indentedCode\n state.indentedCode = false;\n if (state.f == htmlBlock) {\n var exit = htmlModeMissing\n if (!exit) {\n var inner = CodeMirror.innerMode(htmlMode, state.htmlState)\n exit = inner.mode.name == \"xml\" && inner.state.tagStart === null &&\n (!inner.state.context && inner.state.tokenize.isInText)\n }\n if (exit) {\n state.f = inlineNormal;\n state.block = blockNormal;\n state.htmlState = null;\n }\n }\n // Reset state.trailingSpace\n state.trailingSpace = 0;\n state.trailingSpaceNewLine = false;\n // Mark this line as blank\n state.prevLine = state.thisLine\n state.thisLine = {stream: null}\n return null;\n }\n\n function blockNormal(stream, state) {\n var firstTokenOnLine = stream.column() === state.indentation;\n var prevLineLineIsEmpty = lineIsEmpty(state.prevLine.stream);\n var prevLineIsIndentedCode = state.indentedCode;\n var prevLineIsHr = state.prevLine.hr;\n var prevLineIsList = state.list !== false;\n var maxNonCodeIndentation = (state.listStack[state.listStack.length - 1] || 0) + 3;\n\n state.indentedCode = false;\n\n var lineIndentation = state.indentation;\n // compute once per line (on first token)\n if (state.indentationDiff === null) {\n state.indentationDiff = state.indentation;\n if (prevLineIsList) {\n state.list = null;\n // While this list item's marker's indentation is less than the deepest\n // list item's content's indentation,pop the deepest list item\n // indentation off the stack, and update block indentation state\n while (lineIndentation < state.listStack[state.listStack.length - 1]) {\n state.listStack.pop();\n if (state.listStack.length) {\n state.indentation = state.listStack[state.listStack.length - 1];\n // less than the first list's indent -> the line is no longer a list\n } else {\n state.list = false;\n }\n }\n if (state.list !== false) {\n state.indentationDiff = lineIndentation - state.listStack[state.listStack.length - 1]\n }\n }\n }\n\n // not comprehensive (currently only for setext detection purposes)\n var allowsInlineContinuation = (\n !prevLineLineIsEmpty && !prevLineIsHr && !state.prevLine.header &&\n (!prevLineIsList || !prevLineIsIndentedCode) &&\n !state.prevLine.fencedCodeEnd\n );\n\n var isHr = (state.list === false || prevLineIsHr || prevLineLineIsEmpty) &&\n state.indentation <= maxNonCodeIndentation && stream.match(hrRE);\n\n var match = null;\n if (state.indentationDiff >= 4 && (prevLineIsIndentedCode || state.prevLine.fencedCodeEnd ||\n state.prevLine.header || prevLineLineIsEmpty)) {\n stream.skipToEnd();\n state.indentedCode = true;\n return tokenTypes.code;\n } else if (stream.eatSpace()) {\n return null;\n } else if (firstTokenOnLine && state.indentation <= maxNonCodeIndentation && (match = stream.match(atxHeaderRE)) && match[1].length <= 6) {\n state.quote = 0;\n state.header = match[1].length;\n state.thisLine.header = true;\n if (modeCfg.highlightFormatting) state.formatting = \"header\";\n state.f = state.inline;\n return getType(state);\n } else if (state.indentation <= maxNonCodeIndentation && stream.eat('>')) {\n state.quote = firstTokenOnLine ? 1 : state.quote + 1;\n if (modeCfg.highlightFormatting) state.formatting = \"quote\";\n stream.eatSpace();\n return getType(state);\n } else if (!isHr && !state.setext && firstTokenOnLine && state.indentation <= maxNonCodeIndentation && (match = stream.match(listRE))) {\n var listType = match[1] ? \"ol\" : \"ul\";\n\n state.indentation = lineIndentation + stream.current().length;\n state.list = true;\n state.quote = 0;\n\n // Add this list item's content's indentation to the stack\n state.listStack.push(state.indentation);\n // Reset inline styles which shouldn't propagate across list items\n state.em = false;\n state.strong = false;\n state.code = false;\n state.strikethrough = false;\n\n if (modeCfg.taskLists && stream.match(taskListRE, false)) {\n state.taskList = true;\n }\n state.f = state.inline;\n if (modeCfg.highlightFormatting) state.formatting = [\"list\", \"list-\" + listType];\n return getType(state);\n } else if (firstTokenOnLine && state.indentation <= maxNonCodeIndentation && (match = stream.match(fencedCodeRE, true))) {\n state.quote = 0;\n state.fencedEndRE = new RegExp(match[1] + \"+ *$\");\n // try switching mode\n state.localMode = modeCfg.fencedCodeBlockHighlighting && getMode(match[2] || modeCfg.fencedCodeBlockDefaultMode );\n if (state.localMode) state.localState = CodeMirror.startState(state.localMode);\n state.f = state.block = local;\n if (modeCfg.highlightFormatting) state.formatting = \"code-block\";\n state.code = -1\n return getType(state);\n // SETEXT has lowest block-scope precedence after HR, so check it after\n // the others (code, blockquote, list...)\n } else if (\n // if setext set, indicates line after ---/===\n state.setext || (\n // line before ---/===\n (!allowsInlineContinuation || !prevLineIsList) && !state.quote && state.list === false &&\n !state.code && !isHr && !linkDefRE.test(stream.string) &&\n (match = stream.lookAhead(1)) && (match = match.match(setextHeaderRE))\n )\n ) {\n if ( !state.setext ) {\n state.header = match[0].charAt(0) == '=' ? 1 : 2;\n state.setext = state.header;\n } else {\n state.header = state.setext;\n // has no effect on type so we can reset it now\n state.setext = 0;\n stream.skipToEnd();\n if (modeCfg.highlightFormatting) state.formatting = \"header\";\n }\n state.thisLine.header = true;\n state.f = state.inline;\n return getType(state);\n } else if (isHr) {\n stream.skipToEnd();\n state.hr = true;\n state.thisLine.hr = true;\n return tokenTypes.hr;\n } else if (stream.peek() === '[') {\n return switchInline(stream, state, footnoteLink);\n }\n\n return switchInline(stream, state, state.inline);\n }\n\n function htmlBlock(stream, state) {\n var style = htmlMode.token(stream, state.htmlState);\n if (!htmlModeMissing) {\n var inner = CodeMirror.innerMode(htmlMode, state.htmlState)\n if ((inner.mode.name == \"xml\" && inner.state.tagStart === null &&\n (!inner.state.context && inner.state.tokenize.isInText)) ||\n (state.md_inside && stream.current().indexOf(\">\") > -1)) {\n state.f = inlineNormal;\n state.block = blockNormal;\n state.htmlState = null;\n }\n }\n return style;\n }\n\n function local(stream, state) {\n var currListInd = state.listStack[state.listStack.length - 1] || 0;\n var hasExitedList = state.indentation < currListInd;\n var maxFencedEndInd = currListInd + 3;\n if (state.fencedEndRE && state.indentation <= maxFencedEndInd && (hasExitedList || stream.match(state.fencedEndRE))) {\n if (modeCfg.highlightFormatting) state.formatting = \"code-block\";\n var returnType;\n if (!hasExitedList) returnType = getType(state)\n state.localMode = state.localState = null;\n state.block = blockNormal;\n state.f = inlineNormal;\n state.fencedEndRE = null;\n state.code = 0\n state.thisLine.fencedCodeEnd = true;\n if (hasExitedList) return switchBlock(stream, state, state.block);\n return returnType;\n } else if (state.localMode) {\n return state.localMode.token(stream, state.localState);\n } else {\n stream.skipToEnd();\n return tokenTypes.code;\n }\n }\n\n // Inline\n function getType(state) {\n var styles = [];\n\n if (state.formatting) {\n styles.push(tokenTypes.formatting);\n\n if (typeof state.formatting === \"string\") state.formatting = [state.formatting];\n\n for (var i = 0; i < state.formatting.length; i++) {\n styles.push(tokenTypes.formatting + \"-\" + state.formatting[i]);\n\n if (state.formatting[i] === \"header\") {\n styles.push(tokenTypes.formatting + \"-\" + state.formatting[i] + \"-\" + state.header);\n }\n\n // Add `formatting-quote` and `formatting-quote-#` for blockquotes\n // Add `error` instead if the maximum blockquote nesting depth is passed\n if (state.formatting[i] === \"quote\") {\n if (!modeCfg.maxBlockquoteDepth || modeCfg.maxBlockquoteDepth >= state.quote) {\n styles.push(tokenTypes.formatting + \"-\" + state.formatting[i] + \"-\" + state.quote);\n } else {\n styles.push(\"error\");\n }\n }\n }\n }\n\n if (state.taskOpen) {\n styles.push(\"meta\");\n return styles.length ? styles.join(' ') : null;\n }\n if (state.taskClosed) {\n styles.push(\"property\");\n return styles.length ? styles.join(' ') : null;\n }\n\n if (state.linkHref) {\n styles.push(tokenTypes.linkHref, \"url\");\n } else { // Only apply inline styles to non-url text\n if (state.strong) { styles.push(tokenTypes.strong); }\n if (state.em) { styles.push(tokenTypes.em); }\n if (state.strikethrough) { styles.push(tokenTypes.strikethrough); }\n if (state.emoji) { styles.push(tokenTypes.emoji); }\n if (state.linkText) { styles.push(tokenTypes.linkText); }\n if (state.code) { styles.push(tokenTypes.code); }\n if (state.image) { styles.push(tokenTypes.image); }\n if (state.imageAltText) { styles.push(tokenTypes.imageAltText, \"link\"); }\n if (state.imageMarker) { styles.push(tokenTypes.imageMarker); }\n }\n\n if (state.header) { styles.push(tokenTypes.header, tokenTypes.header + \"-\" + state.header); }\n\n if (state.quote) {\n styles.push(tokenTypes.quote);\n\n // Add `quote-#` where the maximum for `#` is modeCfg.maxBlockquoteDepth\n if (!modeCfg.maxBlockquoteDepth || modeCfg.maxBlockquoteDepth >= state.quote) {\n styles.push(tokenTypes.quote + \"-\" + state.quote);\n } else {\n styles.push(tokenTypes.quote + \"-\" + modeCfg.maxBlockquoteDepth);\n }\n }\n\n if (state.list !== false) {\n var listMod = (state.listStack.length - 1) % 3;\n if (!listMod) {\n styles.push(tokenTypes.list1);\n } else if (listMod === 1) {\n styles.push(tokenTypes.list2);\n } else {\n styles.push(tokenTypes.list3);\n }\n }\n\n if (state.trailingSpaceNewLine) {\n styles.push(\"trailing-space-new-line\");\n } else if (state.trailingSpace) {\n styles.push(\"trailing-space-\" + (state.trailingSpace % 2 ? \"a\" : \"b\"));\n }\n\n return styles.length ? styles.join(' ') : null;\n }\n\n function handleText(stream, state) {\n if (stream.match(textRE, true)) {\n return getType(state);\n }\n return undefined;\n }\n\n function inlineNormal(stream, state) {\n var style = state.text(stream, state);\n if (typeof style !== 'undefined')\n return style;\n\n if (state.list) { // List marker (*, +, -, 1., etc)\n state.list = null;\n return getType(state);\n }\n\n if (state.taskList) {\n var taskOpen = stream.match(taskListRE, true)[1] === \" \";\n if (taskOpen) state.taskOpen = true;\n else state.taskClosed = true;\n if (modeCfg.highlightFormatting) state.formatting = \"task\";\n state.taskList = false;\n return getType(state);\n }\n\n state.taskOpen = false;\n state.taskClosed = false;\n\n if (state.header && stream.match(/^#+$/, true)) {\n if (modeCfg.highlightFormatting) state.formatting = \"header\";\n return getType(state);\n }\n\n var ch = stream.next();\n\n // Matches link titles present on next line\n if (state.linkTitle) {\n state.linkTitle = false;\n var matchCh = ch;\n if (ch === '(') {\n matchCh = ')';\n }\n matchCh = (matchCh+'').replace(/([.?*+^\\[\\]\\\\(){}|-])/g, \"\\\\$1\");\n var regex = '^\\\\s*(?:[^' + matchCh + '\\\\\\\\]+|\\\\\\\\\\\\\\\\|\\\\\\\\.)' + matchCh;\n if (stream.match(new RegExp(regex), true)) {\n return tokenTypes.linkHref;\n }\n }\n\n // If this block is changed, it may need to be updated in GFM mode\n if (ch === '`') {\n var previousFormatting = state.formatting;\n if (modeCfg.highlightFormatting) state.formatting = \"code\";\n stream.eatWhile('`');\n var count = stream.current().length\n if (state.code == 0 && (!state.quote || count == 1)) {\n state.code = count\n return getType(state)\n } else if (count == state.code) { // Must be exact\n var t = getType(state)\n state.code = 0\n return t\n } else {\n state.formatting = previousFormatting\n return getType(state)\n }\n } else if (state.code) {\n return getType(state);\n }\n\n if (ch === '\\\\') {\n stream.next();\n if (modeCfg.highlightFormatting) {\n var type = getType(state);\n var formattingEscape = tokenTypes.formatting + \"-escape\";\n return type ? type + \" \" + formattingEscape : formattingEscape;\n }\n }\n\n if (ch === '!' && stream.match(/\\[[^\\]]*\\] ?(?:\\(|\\[)/, false)) {\n state.imageMarker = true;\n state.image = true;\n if (modeCfg.highlightFormatting) state.formatting = \"image\";\n return getType(state);\n }\n\n if (ch === '[' && state.imageMarker && stream.match(/[^\\]]*\\](\\(.*?\\)| ?\\[.*?\\])/, false)) {\n state.imageMarker = false;\n state.imageAltText = true\n if (modeCfg.highlightFormatting) state.formatting = \"image\";\n return getType(state);\n }\n\n if (ch === ']' && state.imageAltText) {\n if (modeCfg.highlightFormatting) state.formatting = \"image\";\n var type = getType(state);\n state.imageAltText = false;\n state.image = false;\n state.inline = state.f = linkHref;\n return type;\n }\n\n if (ch === '[' && !state.image) {\n if (state.linkText && stream.match(/^.*?\\]/)) return getType(state)\n state.linkText = true;\n if (modeCfg.highlightFormatting) state.formatting = \"link\";\n return getType(state);\n }\n\n if (ch === ']' && state.linkText) {\n if (modeCfg.highlightFormatting) state.formatting = \"link\";\n var type = getType(state);\n state.linkText = false;\n state.inline = state.f = stream.match(/\\(.*?\\)| ?\\[.*?\\]/, false) ? linkHref : inlineNormal\n return type;\n }\n\n if (ch === '<' && stream.match(/^(https?|ftps?):\\/\\/(?:[^\\\\>]|\\\\.)+>/, false)) {\n state.f = state.inline = linkInline;\n if (modeCfg.highlightFormatting) state.formatting = \"link\";\n var type = getType(state);\n if (type){\n type += \" \";\n } else {\n type = \"\";\n }\n return type + tokenTypes.linkInline;\n }\n\n if (ch === '<' && stream.match(/^[^> \\\\]+@(?:[^\\\\>]|\\\\.)+>/, false)) {\n state.f = state.inline = linkInline;\n if (modeCfg.highlightFormatting) state.formatting = \"link\";\n var type = getType(state);\n if (type){\n type += \" \";\n } else {\n type = \"\";\n }\n return type + tokenTypes.linkEmail;\n }\n\n if (modeCfg.xml && ch === '<' && stream.match(/^(!--|\\?|!\\[CDATA\\[|[a-z][a-z0-9-]*(?:\\s+[a-z_:.\\-]+(?:\\s*=\\s*[^>]+)?)*\\s*(?:>|$))/i, false)) {\n var end = stream.string.indexOf(\">\", stream.pos);\n if (end != -1) {\n var atts = stream.string.substring(stream.start, end);\n if (/markdown\\s*=\\s*('|\"){0,1}1('|\"){0,1}/.test(atts)) state.md_inside = true;\n }\n stream.backUp(1);\n state.htmlState = CodeMirror.startState(htmlMode);\n return switchBlock(stream, state, htmlBlock);\n }\n\n if (modeCfg.xml && ch === '<' && stream.match(/^\\/\\w*?>/)) {\n state.md_inside = false;\n return \"tag\";\n } else if (ch === \"*\" || ch === \"_\") {\n var len = 1, before = stream.pos == 1 ? \" \" : stream.string.charAt(stream.pos - 2)\n while (len < 3 && stream.eat(ch)) len++\n var after = stream.peek() || \" \"\n // See http://spec.commonmark.org/0.27/#emphasis-and-strong-emphasis\n var leftFlanking = !/\\s/.test(after) && (!punctuation.test(after) || /\\s/.test(before) || punctuation.test(before))\n var rightFlanking = !/\\s/.test(before) && (!punctuation.test(before) || /\\s/.test(after) || punctuation.test(after))\n var setEm = null, setStrong = null\n if (len % 2) { // Em\n if (!state.em && leftFlanking && (ch === \"*\" || !rightFlanking || punctuation.test(before)))\n setEm = true\n else if (state.em == ch && rightFlanking && (ch === \"*\" || !leftFlanking || punctuation.test(after)))\n setEm = false\n }\n if (len > 1) { // Strong\n if (!state.strong && leftFlanking && (ch === \"*\" || !rightFlanking || punctuation.test(before)))\n setStrong = true\n else if (state.strong == ch && rightFlanking && (ch === \"*\" || !leftFlanking || punctuation.test(after)))\n setStrong = false\n }\n if (setStrong != null || setEm != null) {\n if (modeCfg.highlightFormatting) state.formatting = setEm == null ? \"strong\" : setStrong == null ? \"em\" : \"strong em\"\n if (setEm === true) state.em = ch\n if (setStrong === true) state.strong = ch\n var t = getType(state)\n if (setEm === false) state.em = false\n if (setStrong === false) state.strong = false\n return t\n }\n } else if (ch === ' ') {\n if (stream.eat('*') || stream.eat('_')) { // Probably surrounded by spaces\n if (stream.peek() === ' ') { // Surrounded by spaces, ignore\n return getType(state);\n } else { // Not surrounded by spaces, back up pointer\n stream.backUp(1);\n }\n }\n }\n\n if (modeCfg.strikethrough) {\n if (ch === '~' && stream.eatWhile(ch)) {\n if (state.strikethrough) {// Remove strikethrough\n if (modeCfg.highlightFormatting) state.formatting = \"strikethrough\";\n var t = getType(state);\n state.strikethrough = false;\n return t;\n } else if (stream.match(/^[^\\s]/, false)) {// Add strikethrough\n state.strikethrough = true;\n if (modeCfg.highlightFormatting) state.formatting = \"strikethrough\";\n return getType(state);\n }\n } else if (ch === ' ') {\n if (stream.match('~~', true)) { // Probably surrounded by space\n if (stream.peek() === ' ') { // Surrounded by spaces, ignore\n return getType(state);\n } else { // Not surrounded by spaces, back up pointer\n stream.backUp(2);\n }\n }\n }\n }\n\n if (modeCfg.emoji && ch === \":\" && stream.match(/^(?:[a-z_\\d+][a-z_\\d+-]*|\\-[a-z_\\d+][a-z_\\d+-]*):/)) {\n state.emoji = true;\n if (modeCfg.highlightFormatting) state.formatting = \"emoji\";\n var retType = getType(state);\n state.emoji = false;\n return retType;\n }\n\n if (ch === ' ') {\n if (stream.match(/^ +$/, false)) {\n state.trailingSpace++;\n } else if (state.trailingSpace) {\n state.trailingSpaceNewLine = true;\n }\n }\n\n return getType(state);\n }\n\n function linkInline(stream, state) {\n var ch = stream.next();\n\n if (ch === \">\") {\n state.f = state.inline = inlineNormal;\n if (modeCfg.highlightFormatting) state.formatting = \"link\";\n var type = getType(state);\n if (type){\n type += \" \";\n } else {\n type = \"\";\n }\n return type + tokenTypes.linkInline;\n }\n\n stream.match(/^[^>]+/, true);\n\n return tokenTypes.linkInline;\n }\n\n function linkHref(stream, state) {\n // Check if space, and return NULL if so (to avoid marking the space)\n if(stream.eatSpace()){\n return null;\n }\n var ch = stream.next();\n if (ch === '(' || ch === '[') {\n state.f = state.inline = getLinkHrefInside(ch === \"(\" ? \")\" : \"]\");\n if (modeCfg.highlightFormatting) state.formatting = \"link-string\";\n state.linkHref = true;\n return getType(state);\n }\n return 'error';\n }\n\n var linkRE = {\n \")\": /^(?:[^\\\\\\(\\)]|\\\\.|\\((?:[^\\\\\\(\\)]|\\\\.)*\\))*?(?=\\))/,\n \"]\": /^(?:[^\\\\\\[\\]]|\\\\.|\\[(?:[^\\\\\\[\\]]|\\\\.)*\\])*?(?=\\])/\n }\n\n function getLinkHrefInside(endChar) {\n return function(stream, state) {\n var ch = stream.next();\n\n if (ch === endChar) {\n state.f = state.inline = inlineNormal;\n if (modeCfg.highlightFormatting) state.formatting = \"link-string\";\n var returnState = getType(state);\n state.linkHref = false;\n return returnState;\n }\n\n stream.match(linkRE[endChar])\n state.linkHref = true;\n return getType(state);\n };\n }\n\n function footnoteLink(stream, state) {\n if (stream.match(/^([^\\]\\\\]|\\\\.)*\\]:/, false)) {\n state.f = footnoteLinkInside;\n stream.next(); // Consume [\n if (modeCfg.highlightFormatting) state.formatting = \"link\";\n state.linkText = true;\n return getType(state);\n }\n return switchInline(stream, state, inlineNormal);\n }\n\n function footnoteLinkInside(stream, state) {\n if (stream.match(']:', true)) {\n state.f = state.inline = footnoteUrl;\n if (modeCfg.highlightFormatting) state.formatting = \"link\";\n var returnType = getType(state);\n state.linkText = false;\n return returnType;\n }\n\n stream.match(/^([^\\]\\\\]|\\\\.)+/, true);\n\n return tokenTypes.linkText;\n }\n\n function footnoteUrl(stream, state) {\n // Check if space, and return NULL if so (to avoid marking the space)\n if(stream.eatSpace()){\n return null;\n }\n // Match URL\n stream.match(/^[^\\s]+/, true);\n // Check for link title\n if (stream.peek() === undefined) { // End of line, set flag to check next line\n state.linkTitle = true;\n } else { // More content on line, check if link title\n stream.match(/^(?:\\s+(?:\"(?:[^\"\\\\]|\\\\.)+\"|'(?:[^'\\\\]|\\\\.)+'|\\((?:[^)\\\\]|\\\\.)+\\)))?/, true);\n }\n state.f = state.inline = inlineNormal;\n return tokenTypes.linkHref + \" url\";\n }\n\n var mode = {\n startState: function() {\n return {\n f: blockNormal,\n\n prevLine: {stream: null},\n thisLine: {stream: null},\n\n block: blockNormal,\n htmlState: null,\n indentation: 0,\n\n inline: inlineNormal,\n text: handleText,\n\n formatting: false,\n linkText: false,\n linkHref: false,\n linkTitle: false,\n code: 0,\n em: false,\n strong: false,\n header: 0,\n setext: 0,\n hr: false,\n taskList: false,\n list: false,\n listStack: [],\n quote: 0,\n trailingSpace: 0,\n trailingSpaceNewLine: false,\n strikethrough: false,\n emoji: false,\n fencedEndRE: null\n };\n },\n\n copyState: function(s) {\n return {\n f: s.f,\n\n prevLine: s.prevLine,\n thisLine: s.thisLine,\n\n block: s.block,\n htmlState: s.htmlState && CodeMirror.copyState(htmlMode, s.htmlState),\n indentation: s.indentation,\n\n localMode: s.localMode,\n localState: s.localMode ? CodeMirror.copyState(s.localMode, s.localState) : null,\n\n inline: s.inline,\n text: s.text,\n formatting: false,\n linkText: s.linkText,\n linkTitle: s.linkTitle,\n linkHref: s.linkHref,\n code: s.code,\n em: s.em,\n strong: s.strong,\n strikethrough: s.strikethrough,\n emoji: s.emoji,\n header: s.header,\n setext: s.setext,\n hr: s.hr,\n taskList: s.taskList,\n list: s.list,\n listStack: s.listStack.slice(0),\n quote: s.quote,\n indentedCode: s.indentedCode,\n trailingSpace: s.trailingSpace,\n trailingSpaceNewLine: s.trailingSpaceNewLine,\n md_inside: s.md_inside,\n fencedEndRE: s.fencedEndRE\n };\n },\n\n token: function(stream, state) {\n\n // Reset state.formatting\n state.formatting = false;\n\n if (stream != state.thisLine.stream) {\n state.header = 0;\n state.hr = false;\n\n if (stream.match(/^\\s*$/, true)) {\n blankLine(state);\n return null;\n }\n\n state.prevLine = state.thisLine\n state.thisLine = {stream: stream}\n\n // Reset state.taskList\n state.taskList = false;\n\n // Reset state.trailingSpace\n state.trailingSpace = 0;\n state.trailingSpaceNewLine = false;\n\n if (!state.localState) {\n state.f = state.block;\n if (state.f != htmlBlock) {\n var indentation = stream.match(/^\\s*/, true)[0].replace(/\\t/g, expandedTab).length;\n state.indentation = indentation;\n state.indentationDiff = null;\n if (indentation > 0) return null;\n }\n }\n }\n return state.f(stream, state);\n },\n\n innerMode: function(state) {\n if (state.block == htmlBlock) return {state: state.htmlState, mode: htmlMode};\n if (state.localState) return {state: state.localState, mode: state.localMode};\n return {state: state, mode: mode};\n },\n\n indent: function(state, textAfter, line) {\n if (state.block == htmlBlock && htmlMode.indent) return htmlMode.indent(state.htmlState, textAfter, line)\n if (state.localState && state.localMode.indent) return state.localMode.indent(state.localState, textAfter, line)\n return CodeMirror.Pass\n },\n\n blankLine: blankLine,\n\n getType: getType,\n\n blockCommentStart: \"\",\n closeBrackets: \"()[]{}''\\\"\\\"``\",\n fold: \"markdown\"\n };\n return mode;\n}, \"xml\");\n\nCodeMirror.defineMIME(\"text/markdown\", \"markdown\");\n\nCodeMirror.defineMIME(\"text/x-markdown\", \"markdown\");\n\n});\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../lib/codemirror\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../lib/codemirror\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n \"use strict\";\n\n CodeMirror.modeInfo = [\n {name: \"APL\", mime: \"text/apl\", mode: \"apl\", ext: [\"dyalog\", \"apl\"]},\n {name: \"PGP\", mimes: [\"application/pgp\", \"application/pgp-encrypted\", \"application/pgp-keys\", \"application/pgp-signature\"], mode: \"asciiarmor\", ext: [\"asc\", \"pgp\", \"sig\"]},\n {name: \"ASN.1\", mime: \"text/x-ttcn-asn\", mode: \"asn.1\", ext: [\"asn\", \"asn1\"]},\n {name: \"Asterisk\", mime: \"text/x-asterisk\", mode: \"asterisk\", file: /^extensions\\.conf$/i},\n {name: \"Brainfuck\", mime: \"text/x-brainfuck\", mode: \"brainfuck\", ext: [\"b\", \"bf\"]},\n {name: \"C\", mime: \"text/x-csrc\", mode: \"clike\", ext: [\"c\", \"h\", \"ino\"]},\n {name: \"C++\", mime: \"text/x-c++src\", mode: \"clike\", ext: [\"cpp\", \"c++\", \"cc\", \"cxx\", \"hpp\", \"h++\", \"hh\", \"hxx\"], alias: [\"cpp\"]},\n {name: \"Cobol\", mime: \"text/x-cobol\", mode: \"cobol\", ext: [\"cob\", \"cpy\"]},\n {name: \"C#\", mime: \"text/x-csharp\", mode: \"clike\", ext: [\"cs\"], alias: [\"csharp\", \"cs\"]},\n {name: \"Clojure\", mime: \"text/x-clojure\", mode: \"clojure\", ext: [\"clj\", \"cljc\", \"cljx\"]},\n {name: \"ClojureScript\", mime: \"text/x-clojurescript\", mode: \"clojure\", ext: [\"cljs\"]},\n {name: \"Closure Stylesheets (GSS)\", mime: \"text/x-gss\", mode: \"css\", ext: [\"gss\"]},\n {name: \"CMake\", mime: \"text/x-cmake\", mode: \"cmake\", ext: [\"cmake\", \"cmake.in\"], file: /^CMakeLists\\.txt$/},\n {name: \"CoffeeScript\", mimes: [\"application/vnd.coffeescript\", \"text/coffeescript\", \"text/x-coffeescript\"], mode: \"coffeescript\", ext: [\"coffee\"], alias: [\"coffee\", \"coffee-script\"]},\n {name: \"Common Lisp\", mime: \"text/x-common-lisp\", mode: \"commonlisp\", ext: [\"cl\", \"lisp\", \"el\"], alias: [\"lisp\"]},\n {name: \"Cypher\", mime: \"application/x-cypher-query\", mode: \"cypher\", ext: [\"cyp\", \"cypher\"]},\n {name: \"Cython\", mime: \"text/x-cython\", mode: \"python\", ext: [\"pyx\", \"pxd\", \"pxi\"]},\n {name: \"Crystal\", mime: \"text/x-crystal\", mode: \"crystal\", ext: [\"cr\"]},\n {name: \"CSS\", mime: \"text/css\", mode: \"css\", ext: [\"css\"]},\n {name: \"CQL\", mime: \"text/x-cassandra\", mode: \"sql\", ext: [\"cql\"]},\n {name: \"D\", mime: \"text/x-d\", mode: \"d\", ext: [\"d\"]},\n {name: \"Dart\", mimes: [\"application/dart\", \"text/x-dart\"], mode: \"dart\", ext: [\"dart\"]},\n {name: \"diff\", mime: \"text/x-diff\", mode: \"diff\", ext: [\"diff\", \"patch\"]},\n {name: \"Django\", mime: \"text/x-django\", mode: \"django\"},\n {name: \"Dockerfile\", mime: \"text/x-dockerfile\", mode: \"dockerfile\", file: /^Dockerfile$/},\n {name: \"DTD\", mime: \"application/xml-dtd\", mode: \"dtd\", ext: [\"dtd\"]},\n {name: \"Dylan\", mime: \"text/x-dylan\", mode: \"dylan\", ext: [\"dylan\", \"dyl\", \"intr\"]},\n {name: \"EBNF\", mime: \"text/x-ebnf\", mode: \"ebnf\"},\n {name: \"ECL\", mime: \"text/x-ecl\", mode: \"ecl\", ext: [\"ecl\"]},\n {name: \"edn\", mime: \"application/edn\", mode: \"clojure\", ext: [\"edn\"]},\n {name: \"Eiffel\", mime: \"text/x-eiffel\", mode: \"eiffel\", ext: [\"e\"]},\n {name: \"Elm\", mime: \"text/x-elm\", mode: \"elm\", ext: [\"elm\"]},\n {name: \"Embedded JavaScript\", mime: \"application/x-ejs\", mode: \"htmlembedded\", ext: [\"ejs\"]},\n {name: \"Embedded Ruby\", mime: \"application/x-erb\", mode: \"htmlembedded\", ext: [\"erb\"]},\n {name: \"Erlang\", mime: \"text/x-erlang\", mode: \"erlang\", ext: [\"erl\"]},\n {name: \"Esper\", mime: \"text/x-esper\", mode: \"sql\"},\n {name: \"Factor\", mime: \"text/x-factor\", mode: \"factor\", ext: [\"factor\"]},\n {name: \"FCL\", mime: \"text/x-fcl\", mode: \"fcl\"},\n {name: \"Forth\", mime: \"text/x-forth\", mode: \"forth\", ext: [\"forth\", \"fth\", \"4th\"]},\n {name: \"Fortran\", mime: \"text/x-fortran\", mode: \"fortran\", ext: [\"f\", \"for\", \"f77\", \"f90\", \"f95\"]},\n {name: \"F#\", mime: \"text/x-fsharp\", mode: \"mllike\", ext: [\"fs\"], alias: [\"fsharp\"]},\n {name: \"Gas\", mime: \"text/x-gas\", mode: \"gas\", ext: [\"s\"]},\n {name: \"Gherkin\", mime: \"text/x-feature\", mode: \"gherkin\", ext: [\"feature\"]},\n {name: \"GitHub Flavored Markdown\", mime: \"text/x-gfm\", mode: \"gfm\", file: /^(readme|contributing|history)\\.md$/i},\n {name: \"Go\", mime: \"text/x-go\", mode: \"go\", ext: [\"go\"]},\n {name: \"Groovy\", mime: \"text/x-groovy\", mode: \"groovy\", ext: [\"groovy\", \"gradle\"], file: /^Jenkinsfile$/},\n {name: \"HAML\", mime: \"text/x-haml\", mode: \"haml\", ext: [\"haml\"]},\n {name: \"Haskell\", mime: \"text/x-haskell\", mode: \"haskell\", ext: [\"hs\"]},\n {name: \"Haskell (Literate)\", mime: \"text/x-literate-haskell\", mode: \"haskell-literate\", ext: [\"lhs\"]},\n {name: \"Haxe\", mime: \"text/x-haxe\", mode: \"haxe\", ext: [\"hx\"]},\n {name: \"HXML\", mime: \"text/x-hxml\", mode: \"haxe\", ext: [\"hxml\"]},\n {name: \"ASP.NET\", mime: \"application/x-aspx\", mode: \"htmlembedded\", ext: [\"aspx\"], alias: [\"asp\", \"aspx\"]},\n {name: \"HTML\", mime: \"text/html\", mode: \"htmlmixed\", ext: [\"html\", \"htm\", \"handlebars\", \"hbs\"], alias: [\"xhtml\"]},\n {name: \"HTTP\", mime: \"message/http\", mode: \"http\"},\n {name: \"IDL\", mime: \"text/x-idl\", mode: \"idl\", ext: [\"pro\"]},\n {name: \"Pug\", mime: \"text/x-pug\", mode: \"pug\", ext: [\"jade\", \"pug\"], alias: [\"jade\"]},\n {name: \"Java\", mime: \"text/x-java\", mode: \"clike\", ext: [\"java\"]},\n {name: \"Java Server Pages\", mime: \"application/x-jsp\", mode: \"htmlembedded\", ext: [\"jsp\"], alias: [\"jsp\"]},\n {name: \"JavaScript\", mimes: [\"text/javascript\", \"text/ecmascript\", \"application/javascript\", \"application/x-javascript\", \"application/ecmascript\"],\n mode: \"javascript\", ext: [\"js\"], alias: [\"ecmascript\", \"js\", \"node\"]},\n {name: \"JSON\", mimes: [\"application/json\", \"application/x-json\"], mode: \"javascript\", ext: [\"json\", \"map\"], alias: [\"json5\"]},\n {name: \"JSON-LD\", mime: \"application/ld+json\", mode: \"javascript\", ext: [\"jsonld\"], alias: [\"jsonld\"]},\n {name: \"JSX\", mime: \"text/jsx\", mode: \"jsx\", ext: [\"jsx\"]},\n {name: \"Jinja2\", mime: \"text/jinja2\", mode: \"jinja2\", ext: [\"j2\", \"jinja\", \"jinja2\"]},\n {name: \"Julia\", mime: \"text/x-julia\", mode: \"julia\", ext: [\"jl\"], alias: [\"jl\"]},\n {name: \"Kotlin\", mime: \"text/x-kotlin\", mode: \"clike\", ext: [\"kt\"]},\n {name: \"LESS\", mime: \"text/x-less\", mode: \"css\", ext: [\"less\"]},\n {name: \"LiveScript\", mime: \"text/x-livescript\", mode: \"livescript\", ext: [\"ls\"], alias: [\"ls\"]},\n {name: \"Lua\", mime: \"text/x-lua\", mode: \"lua\", ext: [\"lua\"]},\n {name: \"Markdown\", mime: \"text/x-markdown\", mode: \"markdown\", ext: [\"markdown\", \"md\", \"mkd\"]},\n {name: \"mIRC\", mime: \"text/mirc\", mode: \"mirc\"},\n {name: \"MariaDB SQL\", mime: \"text/x-mariadb\", mode: \"sql\"},\n {name: \"Mathematica\", mime: \"text/x-mathematica\", mode: \"mathematica\", ext: [\"m\", \"nb\", \"wl\", \"wls\"]},\n {name: \"Modelica\", mime: \"text/x-modelica\", mode: \"modelica\", ext: [\"mo\"]},\n {name: \"MUMPS\", mime: \"text/x-mumps\", mode: \"mumps\", ext: [\"mps\"]},\n {name: \"MS SQL\", mime: \"text/x-mssql\", mode: \"sql\"},\n {name: \"mbox\", mime: \"application/mbox\", mode: \"mbox\", ext: [\"mbox\"]},\n {name: \"MySQL\", mime: \"text/x-mysql\", mode: \"sql\"},\n {name: \"Nginx\", mime: \"text/x-nginx-conf\", mode: \"nginx\", file: /nginx.*\\.conf$/i},\n {name: \"NSIS\", mime: \"text/x-nsis\", mode: \"nsis\", ext: [\"nsh\", \"nsi\"]},\n {name: \"NTriples\", mimes: [\"application/n-triples\", \"application/n-quads\", \"text/n-triples\"],\n mode: \"ntriples\", ext: [\"nt\", \"nq\"]},\n {name: \"Objective-C\", mime: \"text/x-objectivec\", mode: \"clike\", ext: [\"m\"], alias: [\"objective-c\", \"objc\"]},\n {name: \"Objective-C++\", mime: \"text/x-objectivec++\", mode: \"clike\", ext: [\"mm\"], alias: [\"objective-c++\", \"objc++\"]},\n {name: \"OCaml\", mime: \"text/x-ocaml\", mode: \"mllike\", ext: [\"ml\", \"mli\", \"mll\", \"mly\"]},\n {name: \"Octave\", mime: \"text/x-octave\", mode: \"octave\", ext: [\"m\"]},\n {name: \"Oz\", mime: \"text/x-oz\", mode: \"oz\", ext: [\"oz\"]},\n {name: \"Pascal\", mime: \"text/x-pascal\", mode: \"pascal\", ext: [\"p\", \"pas\"]},\n {name: \"PEG.js\", mime: \"null\", mode: \"pegjs\", ext: [\"jsonld\"]},\n {name: \"Perl\", mime: \"text/x-perl\", mode: \"perl\", ext: [\"pl\", \"pm\"]},\n {name: \"PHP\", mimes: [\"text/x-php\", \"application/x-httpd-php\", \"application/x-httpd-php-open\"], mode: \"php\", ext: [\"php\", \"php3\", \"php4\", \"php5\", \"php7\", \"phtml\"]},\n {name: \"Pig\", mime: \"text/x-pig\", mode: \"pig\", ext: [\"pig\"]},\n {name: \"Plain Text\", mime: \"text/plain\", mode: \"null\", ext: [\"txt\", \"text\", \"conf\", \"def\", \"list\", \"log\"]},\n {name: \"PLSQL\", mime: \"text/x-plsql\", mode: \"sql\", ext: [\"pls\"]},\n {name: \"PostgreSQL\", mime: \"text/x-pgsql\", mode: \"sql\"},\n {name: \"PowerShell\", mime: \"application/x-powershell\", mode: \"powershell\", ext: [\"ps1\", \"psd1\", \"psm1\"]},\n {name: \"Properties files\", mime: \"text/x-properties\", mode: \"properties\", ext: [\"properties\", \"ini\", \"in\"], alias: [\"ini\", \"properties\"]},\n {name: \"ProtoBuf\", mime: \"text/x-protobuf\", mode: \"protobuf\", ext: [\"proto\"]},\n {name: \"Python\", mime: \"text/x-python\", mode: \"python\", ext: [\"BUILD\", \"bzl\", \"py\", \"pyw\"], file: /^(BUCK|BUILD)$/},\n {name: \"Puppet\", mime: \"text/x-puppet\", mode: \"puppet\", ext: [\"pp\"]},\n {name: \"Q\", mime: \"text/x-q\", mode: \"q\", ext: [\"q\"]},\n {name: \"R\", mime: \"text/x-rsrc\", mode: \"r\", ext: [\"r\", \"R\"], alias: [\"rscript\"]},\n {name: \"reStructuredText\", mime: \"text/x-rst\", mode: \"rst\", ext: [\"rst\"], alias: [\"rst\"]},\n {name: \"RPM Changes\", mime: \"text/x-rpm-changes\", mode: \"rpm\"},\n {name: \"RPM Spec\", mime: \"text/x-rpm-spec\", mode: \"rpm\", ext: [\"spec\"]},\n {name: \"Ruby\", mime: \"text/x-ruby\", mode: \"ruby\", ext: [\"rb\"], alias: [\"jruby\", \"macruby\", \"rake\", \"rb\", \"rbx\"]},\n {name: \"Rust\", mime: \"text/x-rustsrc\", mode: \"rust\", ext: [\"rs\"]},\n {name: \"SAS\", mime: \"text/x-sas\", mode: \"sas\", ext: [\"sas\"]},\n {name: \"Sass\", mime: \"text/x-sass\", mode: \"sass\", ext: [\"sass\"]},\n {name: \"Scala\", mime: \"text/x-scala\", mode: \"clike\", ext: [\"scala\"]},\n {name: \"Scheme\", mime: \"text/x-scheme\", mode: \"scheme\", ext: [\"scm\", \"ss\"]},\n {name: \"SCSS\", mime: \"text/x-scss\", mode: \"css\", ext: [\"scss\"]},\n {name: \"Shell\", mimes: [\"text/x-sh\", \"application/x-sh\"], mode: \"shell\", ext: [\"sh\", \"ksh\", \"bash\"], alias: [\"bash\", \"sh\", \"zsh\"], file: /^PKGBUILD$/},\n {name: \"Sieve\", mime: \"application/sieve\", mode: \"sieve\", ext: [\"siv\", \"sieve\"]},\n {name: \"Slim\", mimes: [\"text/x-slim\", \"application/x-slim\"], mode: \"slim\", ext: [\"slim\"]},\n {name: \"Smalltalk\", mime: \"text/x-stsrc\", mode: \"smalltalk\", ext: [\"st\"]},\n {name: \"Smarty\", mime: \"text/x-smarty\", mode: \"smarty\", ext: [\"tpl\"]},\n {name: \"Solr\", mime: \"text/x-solr\", mode: \"solr\"},\n {name: \"SML\", mime: \"text/x-sml\", mode: \"mllike\", ext: [\"sml\", \"sig\", \"fun\", \"smackspec\"]},\n {name: \"Soy\", mime: \"text/x-soy\", mode: \"soy\", ext: [\"soy\"], alias: [\"closure template\"]},\n {name: \"SPARQL\", mime: \"application/sparql-query\", mode: \"sparql\", ext: [\"rq\", \"sparql\"], alias: [\"sparul\"]},\n {name: \"Spreadsheet\", mime: \"text/x-spreadsheet\", mode: \"spreadsheet\", alias: [\"excel\", \"formula\"]},\n {name: \"SQL\", mime: \"text/x-sql\", mode: \"sql\", ext: [\"sql\"]},\n {name: \"SQLite\", mime: \"text/x-sqlite\", mode: \"sql\"},\n {name: \"Squirrel\", mime: \"text/x-squirrel\", mode: \"clike\", ext: [\"nut\"]},\n {name: \"Stylus\", mime: \"text/x-styl\", mode: \"stylus\", ext: [\"styl\"]},\n {name: \"Swift\", mime: \"text/x-swift\", mode: \"swift\", ext: [\"swift\"]},\n {name: \"sTeX\", mime: \"text/x-stex\", mode: \"stex\"},\n {name: \"LaTeX\", mime: \"text/x-latex\", mode: \"stex\", ext: [\"text\", \"ltx\", \"tex\"], alias: [\"tex\"]},\n {name: \"SystemVerilog\", mime: \"text/x-systemverilog\", mode: \"verilog\", ext: [\"v\", \"sv\", \"svh\"]},\n {name: \"Tcl\", mime: \"text/x-tcl\", mode: \"tcl\", ext: [\"tcl\"]},\n {name: \"Textile\", mime: \"text/x-textile\", mode: \"textile\", ext: [\"textile\"]},\n {name: \"TiddlyWiki\", mime: \"text/x-tiddlywiki\", mode: \"tiddlywiki\"},\n {name: \"Tiki wiki\", mime: \"text/tiki\", mode: \"tiki\"},\n {name: \"TOML\", mime: \"text/x-toml\", mode: \"toml\", ext: [\"toml\"]},\n {name: \"Tornado\", mime: \"text/x-tornado\", mode: \"tornado\"},\n {name: \"troff\", mime: \"text/troff\", mode: \"troff\", ext: [\"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\"]},\n {name: \"TTCN\", mime: \"text/x-ttcn\", mode: \"ttcn\", ext: [\"ttcn\", \"ttcn3\", \"ttcnpp\"]},\n {name: \"TTCN_CFG\", mime: \"text/x-ttcn-cfg\", mode: \"ttcn-cfg\", ext: [\"cfg\"]},\n {name: \"Turtle\", mime: \"text/turtle\", mode: \"turtle\", ext: [\"ttl\"]},\n {name: \"TypeScript\", mime: \"application/typescript\", mode: \"javascript\", ext: [\"ts\"], alias: [\"ts\"]},\n {name: \"TypeScript-JSX\", mime: \"text/typescript-jsx\", mode: \"jsx\", ext: [\"tsx\"], alias: [\"tsx\"]},\n {name: \"Twig\", mime: \"text/x-twig\", mode: \"twig\"},\n {name: \"Web IDL\", mime: \"text/x-webidl\", mode: \"webidl\", ext: [\"webidl\"]},\n {name: \"VB.NET\", mime: \"text/x-vb\", mode: \"vb\", ext: [\"vb\"]},\n {name: \"VBScript\", mime: \"text/vbscript\", mode: \"vbscript\", ext: [\"vbs\"]},\n {name: \"Velocity\", mime: \"text/velocity\", mode: \"velocity\", ext: [\"vtl\"]},\n {name: \"Verilog\", mime: \"text/x-verilog\", mode: \"verilog\", ext: [\"v\"]},\n {name: \"VHDL\", mime: \"text/x-vhdl\", mode: \"vhdl\", ext: [\"vhd\", \"vhdl\"]},\n {name: \"Vue.js Component\", mimes: [\"script/x-vue\", \"text/x-vue\"], mode: \"vue\", ext: [\"vue\"]},\n {name: \"XML\", mimes: [\"application/xml\", \"text/xml\"], mode: \"xml\", ext: [\"xml\", \"xsl\", \"xsd\", \"svg\"], alias: [\"rss\", \"wsdl\", \"xsd\"]},\n {name: \"XQuery\", mime: \"application/xquery\", mode: \"xquery\", ext: [\"xy\", \"xquery\"]},\n {name: \"Yacas\", mime: \"text/x-yacas\", mode: \"yacas\", ext: [\"ys\"]},\n {name: \"YAML\", mimes: [\"text/x-yaml\", \"text/yaml\"], mode: \"yaml\", ext: [\"yaml\", \"yml\"], alias: [\"yml\"]},\n {name: \"Z80\", mime: \"text/x-z80\", mode: \"z80\", ext: [\"z80\"]},\n {name: \"mscgen\", mime: \"text/x-mscgen\", mode: \"mscgen\", ext: [\"mscgen\", \"mscin\", \"msc\"]},\n {name: \"xu\", mime: \"text/x-xu\", mode: \"mscgen\", ext: [\"xu\"]},\n {name: \"msgenny\", mime: \"text/x-msgenny\", mode: \"mscgen\", ext: [\"msgenny\"]},\n {name: \"WebAssembly\", mime: \"text/webassembly\", mode: \"wast\", ext: [\"wat\", \"wast\"]},\n ];\n // Ensure all modes have a mime property for backwards compatibility\n for (var i = 0; i < CodeMirror.modeInfo.length; i++) {\n var info = CodeMirror.modeInfo[i];\n if (info.mimes) info.mime = info.mimes[0];\n }\n\n CodeMirror.findModeByMIME = function(mime) {\n mime = mime.toLowerCase();\n for (var i = 0; i < CodeMirror.modeInfo.length; i++) {\n var info = CodeMirror.modeInfo[i];\n if (info.mime == mime) return info;\n if (info.mimes) for (var j = 0; j < info.mimes.length; j++)\n if (info.mimes[j] == mime) return info;\n }\n if (/\\+xml$/.test(mime)) return CodeMirror.findModeByMIME(\"application/xml\")\n if (/\\+json$/.test(mime)) return CodeMirror.findModeByMIME(\"application/json\")\n };\n\n CodeMirror.findModeByExtension = function(ext) {\n ext = ext.toLowerCase();\n for (var i = 0; i < CodeMirror.modeInfo.length; i++) {\n var info = CodeMirror.modeInfo[i];\n if (info.ext) for (var j = 0; j < info.ext.length; j++)\n if (info.ext[j] == ext) return info;\n }\n };\n\n CodeMirror.findModeByFileName = function(filename) {\n for (var i = 0; i < CodeMirror.modeInfo.length; i++) {\n var info = CodeMirror.modeInfo[i];\n if (info.file && info.file.test(filename)) return info;\n }\n var dot = filename.lastIndexOf(\".\");\n var ext = dot > -1 && filename.substring(dot + 1, filename.length);\n if (ext) return CodeMirror.findModeByExtension(ext);\n };\n\n CodeMirror.findModeByName = function(name) {\n name = name.toLowerCase();\n for (var i = 0; i < CodeMirror.modeInfo.length; i++) {\n var info = CodeMirror.modeInfo[i];\n if (info.name.toLowerCase() == name) return info;\n if (info.alias) for (var j = 0; j < info.alias.length; j++)\n if (info.alias[j].toLowerCase() == name) return info;\n }\n };\n});\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n \"use strict\";\n\n function wordRegexp(words) {\n return new RegExp(\"^((\" + words.join(\")|(\") + \"))\\\\b\");\n }\n\n var wordOperators = wordRegexp([\"and\", \"or\", \"not\", \"is\"]);\n var commonKeywords = [\"as\", \"assert\", \"break\", \"class\", \"continue\",\n \"def\", \"del\", \"elif\", \"else\", \"except\", \"finally\",\n \"for\", \"from\", \"global\", \"if\", \"import\",\n \"lambda\", \"pass\", \"raise\", \"return\",\n \"try\", \"while\", \"with\", \"yield\", \"in\"];\n var commonBuiltins = [\"abs\", \"all\", \"any\", \"bin\", \"bool\", \"bytearray\", \"callable\", \"chr\",\n \"classmethod\", \"compile\", \"complex\", \"delattr\", \"dict\", \"dir\", \"divmod\",\n \"enumerate\", \"eval\", \"filter\", \"float\", \"format\", \"frozenset\",\n \"getattr\", \"globals\", \"hasattr\", \"hash\", \"help\", \"hex\", \"id\",\n \"input\", \"int\", \"isinstance\", \"issubclass\", \"iter\", \"len\",\n \"list\", \"locals\", \"map\", \"max\", \"memoryview\", \"min\", \"next\",\n \"object\", \"oct\", \"open\", \"ord\", \"pow\", \"property\", \"range\",\n \"repr\", \"reversed\", \"round\", \"set\", \"setattr\", \"slice\",\n \"sorted\", \"staticmethod\", \"str\", \"sum\", \"super\", \"tuple\",\n \"type\", \"vars\", \"zip\", \"__import__\", \"NotImplemented\",\n \"Ellipsis\", \"__debug__\"];\n CodeMirror.registerHelper(\"hintWords\", \"python\", commonKeywords.concat(commonBuiltins));\n\n function top(state) {\n return state.scopes[state.scopes.length - 1];\n }\n\n CodeMirror.defineMode(\"python\", function(conf, parserConf) {\n var ERRORCLASS = \"error\";\n\n var delimiters = parserConf.delimiters || parserConf.singleDelimiters || /^[\\(\\)\\[\\]\\{\\}@,:`=;\\.\\\\]/;\n // (Backwards-compatibility with old, cumbersome config system)\n var operators = [parserConf.singleOperators, parserConf.doubleOperators, parserConf.doubleDelimiters, parserConf.tripleDelimiters,\n parserConf.operators || /^([-+*/%\\/&|^]=?|[<>=]+|\\/\\/=?|\\*\\*=?|!=|[~!@]|\\.\\.\\.)/]\n for (var i = 0; i < operators.length; i++) if (!operators[i]) operators.splice(i--, 1)\n\n var hangingIndent = parserConf.hangingIndent || conf.indentUnit;\n\n var myKeywords = commonKeywords, myBuiltins = commonBuiltins;\n if (parserConf.extra_keywords != undefined)\n myKeywords = myKeywords.concat(parserConf.extra_keywords);\n\n if (parserConf.extra_builtins != undefined)\n myBuiltins = myBuiltins.concat(parserConf.extra_builtins);\n\n var py3 = !(parserConf.version && Number(parserConf.version) < 3)\n if (py3) {\n // since http://legacy.python.org/dev/peps/pep-0465/ @ is also an operator\n var identifiers = parserConf.identifiers|| /^[_A-Za-z\\u00A1-\\uFFFF][_A-Za-z0-9\\u00A1-\\uFFFF]*/;\n myKeywords = myKeywords.concat([\"nonlocal\", \"False\", \"True\", \"None\", \"async\", \"await\"]);\n myBuiltins = myBuiltins.concat([\"ascii\", \"bytes\", \"exec\", \"print\"]);\n var stringPrefixes = new RegExp(\"^(([rbuf]|(br)|(fr))?('{3}|\\\"{3}|['\\\"]))\", \"i\");\n } else {\n var identifiers = parserConf.identifiers|| /^[_A-Za-z][_A-Za-z0-9]*/;\n myKeywords = myKeywords.concat([\"exec\", \"print\"]);\n myBuiltins = myBuiltins.concat([\"apply\", \"basestring\", \"buffer\", \"cmp\", \"coerce\", \"execfile\",\n \"file\", \"intern\", \"long\", \"raw_input\", \"reduce\", \"reload\",\n \"unichr\", \"unicode\", \"xrange\", \"False\", \"True\", \"None\"]);\n var stringPrefixes = new RegExp(\"^(([rubf]|(ur)|(br))?('{3}|\\\"{3}|['\\\"]))\", \"i\");\n }\n var keywords = wordRegexp(myKeywords);\n var builtins = wordRegexp(myBuiltins);\n\n // tokenizers\n function tokenBase(stream, state) {\n var sol = stream.sol() && state.lastToken != \"\\\\\"\n if (sol) state.indent = stream.indentation()\n // Handle scope changes\n if (sol && top(state).type == \"py\") {\n var scopeOffset = top(state).offset;\n if (stream.eatSpace()) {\n var lineOffset = stream.indentation();\n if (lineOffset > scopeOffset)\n pushPyScope(state);\n else if (lineOffset < scopeOffset && dedent(stream, state) && stream.peek() != \"#\")\n state.errorToken = true;\n return null;\n } else {\n var style = tokenBaseInner(stream, state);\n if (scopeOffset > 0 && dedent(stream, state))\n style += \" \" + ERRORCLASS;\n return style;\n }\n }\n return tokenBaseInner(stream, state);\n }\n\n function tokenBaseInner(stream, state, inFormat) {\n if (stream.eatSpace()) return null;\n\n // Handle Comments\n if (!inFormat && stream.match(/^#.*/)) return \"comment\";\n\n // Handle Number Literals\n if (stream.match(/^[0-9\\.]/, false)) {\n var floatLiteral = false;\n // Floats\n if (stream.match(/^[\\d_]*\\.\\d+(e[\\+\\-]?\\d+)?/i)) { floatLiteral = true; }\n if (stream.match(/^[\\d_]+\\.\\d*/)) { floatLiteral = true; }\n if (stream.match(/^\\.\\d+/)) { floatLiteral = true; }\n if (floatLiteral) {\n // Float literals may be \"imaginary\"\n stream.eat(/J/i);\n return \"number\";\n }\n // Integers\n var intLiteral = false;\n // Hex\n if (stream.match(/^0x[0-9a-f_]+/i)) intLiteral = true;\n // Binary\n if (stream.match(/^0b[01_]+/i)) intLiteral = true;\n // Octal\n if (stream.match(/^0o[0-7_]+/i)) intLiteral = true;\n // Decimal\n if (stream.match(/^[1-9][\\d_]*(e[\\+\\-]?[\\d_]+)?/)) {\n // Decimal literals may be \"imaginary\"\n stream.eat(/J/i);\n // TODO - Can you have imaginary longs?\n intLiteral = true;\n }\n // Zero by itself with no other piece of number.\n if (stream.match(/^0(?![\\dx])/i)) intLiteral = true;\n if (intLiteral) {\n // Integer literals may be \"long\"\n stream.eat(/L/i);\n return \"number\";\n }\n }\n\n // Handle Strings\n if (stream.match(stringPrefixes)) {\n var isFmtString = stream.current().toLowerCase().indexOf('f') !== -1;\n if (!isFmtString) {\n state.tokenize = tokenStringFactory(stream.current(), state.tokenize);\n return state.tokenize(stream, state);\n } else {\n state.tokenize = formatStringFactory(stream.current(), state.tokenize);\n return state.tokenize(stream, state);\n }\n }\n\n for (var i = 0; i < operators.length; i++)\n if (stream.match(operators[i])) return \"operator\"\n\n if (stream.match(delimiters)) return \"punctuation\";\n\n if (state.lastToken == \".\" && stream.match(identifiers))\n return \"property\";\n\n if (stream.match(keywords) || stream.match(wordOperators))\n return \"keyword\";\n\n if (stream.match(builtins))\n return \"builtin\";\n\n if (stream.match(/^(self|cls)\\b/))\n return \"variable-2\";\n\n if (stream.match(identifiers)) {\n if (state.lastToken == \"def\" || state.lastToken == \"class\")\n return \"def\";\n return \"variable\";\n }\n\n // Handle non-detected items\n stream.next();\n return inFormat ? null :ERRORCLASS;\n }\n\n function formatStringFactory(delimiter, tokenOuter) {\n while (\"rubf\".indexOf(delimiter.charAt(0).toLowerCase()) >= 0)\n delimiter = delimiter.substr(1);\n\n var singleline = delimiter.length == 1;\n var OUTCLASS = \"string\";\n\n function tokenNestedExpr(depth) {\n return function(stream, state) {\n var inner = tokenBaseInner(stream, state, true)\n if (inner == \"punctuation\") {\n if (stream.current() == \"{\") {\n state.tokenize = tokenNestedExpr(depth + 1)\n } else if (stream.current() == \"}\") {\n if (depth > 1) state.tokenize = tokenNestedExpr(depth - 1)\n else state.tokenize = tokenString\n }\n }\n return inner\n }\n }\n\n function tokenString(stream, state) {\n while (!stream.eol()) {\n stream.eatWhile(/[^'\"\\{\\}\\\\]/);\n if (stream.eat(\"\\\\\")) {\n stream.next();\n if (singleline && stream.eol())\n return OUTCLASS;\n } else if (stream.match(delimiter)) {\n state.tokenize = tokenOuter;\n return OUTCLASS;\n } else if (stream.match('{{')) {\n // ignore {{ in f-str\n return OUTCLASS;\n } else if (stream.match('{', false)) {\n // switch to nested mode\n state.tokenize = tokenNestedExpr(0)\n if (stream.current()) return OUTCLASS;\n else return state.tokenize(stream, state)\n } else if (stream.match('}}')) {\n return OUTCLASS;\n } else if (stream.match('}')) {\n // single } in f-string is an error\n return ERRORCLASS;\n } else {\n stream.eat(/['\"]/);\n }\n }\n if (singleline) {\n if (parserConf.singleLineStringErrors)\n return ERRORCLASS;\n else\n state.tokenize = tokenOuter;\n }\n return OUTCLASS;\n }\n tokenString.isString = true;\n return tokenString;\n }\n\n function tokenStringFactory(delimiter, tokenOuter) {\n while (\"rubf\".indexOf(delimiter.charAt(0).toLowerCase()) >= 0)\n delimiter = delimiter.substr(1);\n\n var singleline = delimiter.length == 1;\n var OUTCLASS = \"string\";\n\n function tokenString(stream, state) {\n while (!stream.eol()) {\n stream.eatWhile(/[^'\"\\\\]/);\n if (stream.eat(\"\\\\\")) {\n stream.next();\n if (singleline && stream.eol())\n return OUTCLASS;\n } else if (stream.match(delimiter)) {\n state.tokenize = tokenOuter;\n return OUTCLASS;\n } else {\n stream.eat(/['\"]/);\n }\n }\n if (singleline) {\n if (parserConf.singleLineStringErrors)\n return ERRORCLASS;\n else\n state.tokenize = tokenOuter;\n }\n return OUTCLASS;\n }\n tokenString.isString = true;\n return tokenString;\n }\n\n function pushPyScope(state) {\n while (top(state).type != \"py\") state.scopes.pop()\n state.scopes.push({offset: top(state).offset + conf.indentUnit,\n type: \"py\",\n align: null})\n }\n\n function pushBracketScope(stream, state, type) {\n var align = stream.match(/^[\\s\\[\\{\\(]*(?:#|$)/, false) ? null : stream.column() + 1\n state.scopes.push({offset: state.indent + hangingIndent,\n type: type,\n align: align})\n }\n\n function dedent(stream, state) {\n var indented = stream.indentation();\n while (state.scopes.length > 1 && top(state).offset > indented) {\n if (top(state).type != \"py\") return true;\n state.scopes.pop();\n }\n return top(state).offset != indented;\n }\n\n function tokenLexer(stream, state) {\n if (stream.sol()) state.beginningOfLine = true;\n\n var style = state.tokenize(stream, state);\n var current = stream.current();\n\n // Handle decorators\n if (state.beginningOfLine && current == \"@\")\n return stream.match(identifiers, false) ? \"meta\" : py3 ? \"operator\" : ERRORCLASS;\n\n if (/\\S/.test(current)) state.beginningOfLine = false;\n\n if ((style == \"variable\" || style == \"builtin\")\n && state.lastToken == \"meta\")\n style = \"meta\";\n\n // Handle scope changes.\n if (current == \"pass\" || current == \"return\")\n state.dedent += 1;\n\n if (current == \"lambda\") state.lambda = true;\n if (current == \":\" && !state.lambda && top(state).type == \"py\" && stream.match(/^\\s*(?:#|$)/, false))\n pushPyScope(state);\n\n if (current.length == 1 && !/string|comment/.test(style)) {\n var delimiter_index = \"[({\".indexOf(current);\n if (delimiter_index != -1)\n pushBracketScope(stream, state, \"])}\".slice(delimiter_index, delimiter_index+1));\n\n delimiter_index = \"])}\".indexOf(current);\n if (delimiter_index != -1) {\n if (top(state).type == current) state.indent = state.scopes.pop().offset - hangingIndent\n else return ERRORCLASS;\n }\n }\n if (state.dedent > 0 && stream.eol() && top(state).type == \"py\") {\n if (state.scopes.length > 1) state.scopes.pop();\n state.dedent -= 1;\n }\n\n return style;\n }\n\n var external = {\n startState: function(basecolumn) {\n return {\n tokenize: tokenBase,\n scopes: [{offset: basecolumn || 0, type: \"py\", align: null}],\n indent: basecolumn || 0,\n lastToken: null,\n lambda: false,\n dedent: 0\n };\n },\n\n token: function(stream, state) {\n var addErr = state.errorToken;\n if (addErr) state.errorToken = false;\n var style = tokenLexer(stream, state);\n\n if (style && style != \"comment\")\n state.lastToken = (style == \"keyword\" || style == \"punctuation\") ? stream.current() : style;\n if (style == \"punctuation\") style = null;\n\n if (stream.eol() && state.lambda)\n state.lambda = false;\n return addErr ? style + \" \" + ERRORCLASS : style;\n },\n\n indent: function(state, textAfter) {\n if (state.tokenize != tokenBase)\n return state.tokenize.isString ? CodeMirror.Pass : 0;\n\n var scope = top(state), closing = scope.type == textAfter.charAt(0)\n if (scope.align != null)\n return scope.align - (closing ? 1 : 0)\n else\n return scope.offset - (closing ? hangingIndent : 0)\n },\n\n electricInput: /^\\s*[\\}\\]\\)]$/,\n closeBrackets: {triples: \"'\\\"\"},\n lineComment: \"#\",\n fold: \"indent\"\n };\n return external;\n });\n\n CodeMirror.defineMIME(\"text/x-python\", \"python\");\n\n var words = function(str) { return str.split(\" \"); };\n\n CodeMirror.defineMIME(\"text/x-cython\", {\n name: \"python\",\n extra_keywords: words(\"by cdef cimport cpdef ctypedef enum except \"+\n \"extern gil include nogil property public \"+\n \"readonly struct union DEF IF ELIF ELSE\")\n });\n\n});\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.registerHelper(\"wordChars\", \"r\", /[\\w.]/);\n\nCodeMirror.defineMode(\"r\", function(config) {\n function wordObj(words) {\n var res = {};\n for (var i = 0; i < words.length; ++i) res[words[i]] = true;\n return res;\n }\n var commonAtoms = [\"NULL\", \"NA\", \"Inf\", \"NaN\", \"NA_integer_\", \"NA_real_\", \"NA_complex_\", \"NA_character_\", \"TRUE\", \"FALSE\"];\n var commonBuiltins = [\"list\", \"quote\", \"bquote\", \"eval\", \"return\", \"call\", \"parse\", \"deparse\"];\n var commonKeywords = [\"if\", \"else\", \"repeat\", \"while\", \"function\", \"for\", \"in\", \"next\", \"break\"];\n var commonBlockKeywords = [\"if\", \"else\", \"repeat\", \"while\", \"function\", \"for\"];\n\n CodeMirror.registerHelper(\"hintWords\", \"r\", commonAtoms.concat(commonBuiltins, commonKeywords));\n\n var atoms = wordObj(commonAtoms);\n var builtins = wordObj(commonBuiltins);\n var keywords = wordObj(commonKeywords);\n var blockkeywords = wordObj(commonBlockKeywords);\n var opChars = /[+\\-*\\/^<>=!&|~$:]/;\n var curPunc;\n\n function tokenBase(stream, state) {\n curPunc = null;\n var ch = stream.next();\n if (ch == \"#\") {\n stream.skipToEnd();\n return \"comment\";\n } else if (ch == \"0\" && stream.eat(\"x\")) {\n stream.eatWhile(/[\\da-f]/i);\n return \"number\";\n } else if (ch == \".\" && stream.eat(/\\d/)) {\n stream.match(/\\d*(?:e[+\\-]?\\d+)?/);\n return \"number\";\n } else if (/\\d/.test(ch)) {\n stream.match(/\\d*(?:\\.\\d+)?(?:e[+\\-]\\d+)?L?/);\n return \"number\";\n } else if (ch == \"'\" || ch == '\"') {\n state.tokenize = tokenString(ch);\n return \"string\";\n } else if (ch == \"`\") {\n stream.match(/[^`]+`/);\n return \"variable-3\";\n } else if (ch == \".\" && stream.match(/.(?:[.]|\\d+)/)) {\n return \"keyword\";\n } else if (/[a-zA-Z\\.]/.test(ch)) {\n stream.eatWhile(/[\\w\\.]/);\n var word = stream.current();\n if (atoms.propertyIsEnumerable(word)) return \"atom\";\n if (keywords.propertyIsEnumerable(word)) {\n // Block keywords start new blocks, except 'else if', which only starts\n // one new block for the 'if', no block for the 'else'.\n if (blockkeywords.propertyIsEnumerable(word) &&\n !stream.match(/\\s*if(\\s+|$)/, false))\n curPunc = \"block\";\n return \"keyword\";\n }\n if (builtins.propertyIsEnumerable(word)) return \"builtin\";\n return \"variable\";\n } else if (ch == \"%\") {\n if (stream.skipTo(\"%\")) stream.next();\n return \"operator variable-2\";\n } else if (\n (ch == \"<\" && stream.eat(\"-\")) ||\n (ch == \"<\" && stream.match(\"<-\")) ||\n (ch == \"-\" && stream.match(/>>?/))\n ) {\n return \"operator arrow\";\n } else if (ch == \"=\" && state.ctx.argList) {\n return \"arg-is\";\n } else if (opChars.test(ch)) {\n if (ch == \"$\") return \"operator dollar\";\n stream.eatWhile(opChars);\n return \"operator\";\n } else if (/[\\(\\){}\\[\\];]/.test(ch)) {\n curPunc = ch;\n if (ch == \";\") return \"semi\";\n return null;\n } else {\n return null;\n }\n }\n\n function tokenString(quote) {\n return function(stream, state) {\n if (stream.eat(\"\\\\\")) {\n var ch = stream.next();\n if (ch == \"x\") stream.match(/^[a-f0-9]{2}/i);\n else if ((ch == \"u\" || ch == \"U\") && stream.eat(\"{\") && stream.skipTo(\"}\")) stream.next();\n else if (ch == \"u\") stream.match(/^[a-f0-9]{4}/i);\n else if (ch == \"U\") stream.match(/^[a-f0-9]{8}/i);\n else if (/[0-7]/.test(ch)) stream.match(/^[0-7]{1,2}/);\n return \"string-2\";\n } else {\n var next;\n while ((next = stream.next()) != null) {\n if (next == quote) { state.tokenize = tokenBase; break; }\n if (next == \"\\\\\") { stream.backUp(1); break; }\n }\n return \"string\";\n }\n };\n }\n\n var ALIGN_YES = 1, ALIGN_NO = 2, BRACELESS = 4\n\n function push(state, type, stream) {\n state.ctx = {type: type,\n indent: state.indent,\n flags: 0,\n column: stream.column(),\n prev: state.ctx};\n }\n function setFlag(state, flag) {\n var ctx = state.ctx\n state.ctx = {type: ctx.type,\n indent: ctx.indent,\n flags: ctx.flags | flag,\n column: ctx.column,\n prev: ctx.prev}\n }\n function pop(state) {\n state.indent = state.ctx.indent;\n state.ctx = state.ctx.prev;\n }\n\n return {\n startState: function() {\n return {tokenize: tokenBase,\n ctx: {type: \"top\",\n indent: -config.indentUnit,\n flags: ALIGN_NO},\n indent: 0,\n afterIdent: false};\n },\n\n token: function(stream, state) {\n if (stream.sol()) {\n if ((state.ctx.flags & 3) == 0) state.ctx.flags |= ALIGN_NO\n if (state.ctx.flags & BRACELESS) pop(state)\n state.indent = stream.indentation();\n }\n if (stream.eatSpace()) return null;\n var style = state.tokenize(stream, state);\n if (style != \"comment\" && (state.ctx.flags & ALIGN_NO) == 0) setFlag(state, ALIGN_YES)\n\n if ((curPunc == \";\" || curPunc == \"{\" || curPunc == \"}\") && state.ctx.type == \"block\") pop(state);\n if (curPunc == \"{\") push(state, \"}\", stream);\n else if (curPunc == \"(\") {\n push(state, \")\", stream);\n if (state.afterIdent) state.ctx.argList = true;\n }\n else if (curPunc == \"[\") push(state, \"]\", stream);\n else if (curPunc == \"block\") push(state, \"block\", stream);\n else if (curPunc == state.ctx.type) pop(state);\n else if (state.ctx.type == \"block\" && style != \"comment\") setFlag(state, BRACELESS)\n state.afterIdent = style == \"variable\" || style == \"keyword\";\n return style;\n },\n\n indent: function(state, textAfter) {\n if (state.tokenize != tokenBase) return 0;\n var firstChar = textAfter && textAfter.charAt(0), ctx = state.ctx,\n closing = firstChar == ctx.type;\n if (ctx.flags & BRACELESS) ctx = ctx.prev\n if (ctx.type == \"block\") return ctx.indent + (firstChar == \"{\" ? 0 : config.indentUnit);\n else if (ctx.flags & ALIGN_YES) return ctx.column + (closing ? 0 : 1);\n else return ctx.indent + (closing ? 0 : config.indentUnit);\n },\n\n lineComment: \"#\"\n };\n});\n\nCodeMirror.defineMIME(\"text/x-rsrc\", \"r\");\n\n});\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode('shell', function() {\n\n var words = {};\n function define(style, dict) {\n for(var i = 0; i < dict.length; i++) {\n words[dict[i]] = style;\n }\n };\n\n var commonAtoms = [\"true\", \"false\"];\n var commonKeywords = [\"if\", \"then\", \"do\", \"else\", \"elif\", \"while\", \"until\", \"for\", \"in\", \"esac\", \"fi\",\n \"fin\", \"fil\", \"done\", \"exit\", \"set\", \"unset\", \"export\", \"function\"];\n var commonCommands = [\"ab\", \"awk\", \"bash\", \"beep\", \"cat\", \"cc\", \"cd\", \"chown\", \"chmod\", \"chroot\", \"clear\",\n \"cp\", \"curl\", \"cut\", \"diff\", \"echo\", \"find\", \"gawk\", \"gcc\", \"get\", \"git\", \"grep\", \"hg\", \"kill\", \"killall\",\n \"ln\", \"ls\", \"make\", \"mkdir\", \"openssl\", \"mv\", \"nc\", \"nl\", \"node\", \"npm\", \"ping\", \"ps\", \"restart\", \"rm\",\n \"rmdir\", \"sed\", \"service\", \"sh\", \"shopt\", \"shred\", \"source\", \"sort\", \"sleep\", \"ssh\", \"start\", \"stop\",\n \"su\", \"sudo\", \"svn\", \"tee\", \"telnet\", \"top\", \"touch\", \"vi\", \"vim\", \"wall\", \"wc\", \"wget\", \"who\", \"write\",\n \"yes\", \"zsh\"];\n\n CodeMirror.registerHelper(\"hintWords\", \"shell\", commonAtoms.concat(commonKeywords, commonCommands));\n\n define('atom', commonAtoms);\n define('keyword', commonKeywords);\n define('builtin', commonCommands);\n\n function tokenBase(stream, state) {\n if (stream.eatSpace()) return null;\n\n var sol = stream.sol();\n var ch = stream.next();\n\n if (ch === '\\\\') {\n stream.next();\n return null;\n }\n if (ch === '\\'' || ch === '\"' || ch === '`') {\n state.tokens.unshift(tokenString(ch, ch === \"`\" ? \"quote\" : \"string\"));\n return tokenize(stream, state);\n }\n if (ch === '#') {\n if (sol && stream.eat('!')) {\n stream.skipToEnd();\n return 'meta'; // 'comment'?\n }\n stream.skipToEnd();\n return 'comment';\n }\n if (ch === '$') {\n state.tokens.unshift(tokenDollar);\n return tokenize(stream, state);\n }\n if (ch === '+' || ch === '=') {\n return 'operator';\n }\n if (ch === '-') {\n stream.eat('-');\n stream.eatWhile(/\\w/);\n return 'attribute';\n }\n if (ch == \"<\") {\n if (stream.match(\"<<\")) return \"operator\"\n var heredoc = stream.match(/^<-?\\s*['\"]?([^'\"]*)['\"]?/)\n if (heredoc) {\n state.tokens.unshift(tokenHeredoc(heredoc[1]))\n return 'string-2'\n }\n }\n if (/\\d/.test(ch)) {\n stream.eatWhile(/\\d/);\n if(stream.eol() || !/\\w/.test(stream.peek())) {\n return 'number';\n }\n }\n stream.eatWhile(/[\\w-]/);\n var cur = stream.current();\n if (stream.peek() === '=' && /\\w+/.test(cur)) return 'def';\n return words.hasOwnProperty(cur) ? words[cur] : null;\n }\n\n function tokenString(quote, style) {\n var close = quote == \"(\" ? \")\" : quote == \"{\" ? \"}\" : quote\n return function(stream, state) {\n var next, escaped = false;\n while ((next = stream.next()) != null) {\n if (next === close && !escaped) {\n state.tokens.shift();\n break;\n } else if (next === '$' && !escaped && quote !== \"'\" && stream.peek() != close) {\n escaped = true;\n stream.backUp(1);\n state.tokens.unshift(tokenDollar);\n break;\n } else if (!escaped && quote !== close && next === quote) {\n state.tokens.unshift(tokenString(quote, style))\n return tokenize(stream, state)\n } else if (!escaped && /['\"]/.test(next) && !/['\"]/.test(quote)) {\n state.tokens.unshift(tokenStringStart(next, \"string\"));\n stream.backUp(1);\n break;\n }\n escaped = !escaped && next === '\\\\';\n }\n return style;\n };\n };\n\n function tokenStringStart(quote, style) {\n return function(stream, state) {\n state.tokens[0] = tokenString(quote, style)\n stream.next()\n return tokenize(stream, state)\n }\n }\n\n var tokenDollar = function(stream, state) {\n if (state.tokens.length > 1) stream.eat('$');\n var ch = stream.next()\n if (/['\"({]/.test(ch)) {\n state.tokens[0] = tokenString(ch, ch == \"(\" ? \"quote\" : ch == \"{\" ? \"def\" : \"string\");\n return tokenize(stream, state);\n }\n if (!/\\d/.test(ch)) stream.eatWhile(/\\w/);\n state.tokens.shift();\n return 'def';\n };\n\n function tokenHeredoc(delim) {\n return function(stream, state) {\n if (stream.sol() && stream.string == delim) state.tokens.shift()\n stream.skipToEnd()\n return \"string-2\"\n }\n }\n\n function tokenize(stream, state) {\n return (state.tokens[0] || tokenBase) (stream, state);\n };\n\n return {\n startState: function() {return {tokens:[]};},\n token: function(stream, state) {\n return tokenize(stream, state);\n },\n closeBrackets: \"()[]{}''\\\"\\\"``\",\n lineComment: '#',\n fold: \"brace\"\n };\n});\n\nCodeMirror.defineMIME('text/x-sh', 'shell');\n// Apache uses a slightly different Media Type for Shell scripts\n// http://svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime.types\nCodeMirror.defineMIME('application/x-sh', 'shell');\n\n});\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"sql\", function(config, parserConfig) {\n var client = parserConfig.client || {},\n atoms = parserConfig.atoms || {\"false\": true, \"true\": true, \"null\": true},\n builtin = parserConfig.builtin || set(defaultBuiltin),\n keywords = parserConfig.keywords || set(sqlKeywords),\n operatorChars = parserConfig.operatorChars || /^[*+\\-%<>!=&|~^\\/]/,\n support = parserConfig.support || {},\n hooks = parserConfig.hooks || {},\n dateSQL = parserConfig.dateSQL || {\"date\" : true, \"time\" : true, \"timestamp\" : true},\n backslashStringEscapes = parserConfig.backslashStringEscapes !== false,\n brackets = parserConfig.brackets || /^[\\{}\\(\\)\\[\\]]/,\n punctuation = parserConfig.punctuation || /^[;.,:]/\n\n function tokenBase(stream, state) {\n var ch = stream.next();\n\n // call hooks from the mime type\n if (hooks[ch]) {\n var result = hooks[ch](stream, state);\n if (result !== false) return result;\n }\n\n if (support.hexNumber &&\n ((ch == \"0\" && stream.match(/^[xX][0-9a-fA-F]+/))\n || (ch == \"x\" || ch == \"X\") && stream.match(/^'[0-9a-fA-F]+'/))) {\n // hex\n // ref: http://dev.mysql.com/doc/refman/5.5/en/hexadecimal-literals.html\n return \"number\";\n } else if (support.binaryNumber &&\n (((ch == \"b\" || ch == \"B\") && stream.match(/^'[01]+'/))\n || (ch == \"0\" && stream.match(/^b[01]+/)))) {\n // bitstring\n // ref: http://dev.mysql.com/doc/refman/5.5/en/bit-field-literals.html\n return \"number\";\n } else if (ch.charCodeAt(0) > 47 && ch.charCodeAt(0) < 58) {\n // numbers\n // ref: http://dev.mysql.com/doc/refman/5.5/en/number-literals.html\n stream.match(/^[0-9]*(\\.[0-9]+)?([eE][-+]?[0-9]+)?/);\n support.decimallessFloat && stream.match(/^\\.(?!\\.)/);\n return \"number\";\n } else if (ch == \"?\" && (stream.eatSpace() || stream.eol() || stream.eat(\";\"))) {\n // placeholders\n return \"variable-3\";\n } else if (ch == \"'\" || (ch == '\"' && support.doubleQuote)) {\n // strings\n // ref: http://dev.mysql.com/doc/refman/5.5/en/string-literals.html\n state.tokenize = tokenLiteral(ch);\n return state.tokenize(stream, state);\n } else if ((((support.nCharCast && (ch == \"n\" || ch == \"N\"))\n || (support.charsetCast && ch == \"_\" && stream.match(/[a-z][a-z0-9]*/i)))\n && (stream.peek() == \"'\" || stream.peek() == '\"'))) {\n // charset casting: _utf8'str', N'str', n'str'\n // ref: http://dev.mysql.com/doc/refman/5.5/en/string-literals.html\n return \"keyword\";\n } else if (support.escapeConstant && (ch == \"e\" || ch == \"E\")\n && (stream.peek() == \"'\" || (stream.peek() == '\"' && support.doubleQuote))) {\n // escape constant: E'str', e'str'\n // ref: https://www.postgresql.org/docs/current/sql-syntax-lexical.html#SQL-SYNTAX-STRINGS-ESCAPE\n state.tokenize = function(stream, state) {\n return (state.tokenize = tokenLiteral(stream.next(), true))(stream, state);\n }\n return \"keyword\";\n } else if (support.commentSlashSlash && ch == \"/\" && stream.eat(\"/\")) {\n // 1-line comment\n stream.skipToEnd();\n return \"comment\";\n } else if ((support.commentHash && ch == \"#\")\n || (ch == \"-\" && stream.eat(\"-\") && (!support.commentSpaceRequired || stream.eat(\" \")))) {\n // 1-line comments\n // ref: https://kb.askmonty.org/en/comment-syntax/\n stream.skipToEnd();\n return \"comment\";\n } else if (ch == \"/\" && stream.eat(\"*\")) {\n // multi-line comments\n // ref: https://kb.askmonty.org/en/comment-syntax/\n state.tokenize = tokenComment(1);\n return state.tokenize(stream, state);\n } else if (ch == \".\") {\n // .1 for 0.1\n if (support.zerolessFloat && stream.match(/^(?:\\d+(?:e[+-]?\\d+)?)/i))\n return \"number\";\n if (stream.match(/^\\.+/))\n return null\n // .table_name (ODBC)\n // // ref: http://dev.mysql.com/doc/refman/5.6/en/identifier-qualifiers.html\n if (support.ODBCdotTable && stream.match(/^[\\w\\d_$#]+/))\n return \"variable-2\";\n } else if (operatorChars.test(ch)) {\n // operators\n stream.eatWhile(operatorChars);\n return \"operator\";\n } else if (brackets.test(ch)) {\n // brackets\n return \"bracket\";\n } else if (punctuation.test(ch)) {\n // punctuation\n stream.eatWhile(punctuation);\n return \"punctuation\";\n } else if (ch == '{' &&\n (stream.match(/^( )*(d|D|t|T|ts|TS)( )*'[^']*'( )*}/) || stream.match(/^( )*(d|D|t|T|ts|TS)( )*\"[^\"]*\"( )*}/))) {\n // dates (weird ODBC syntax)\n // ref: http://dev.mysql.com/doc/refman/5.5/en/date-and-time-literals.html\n return \"number\";\n } else {\n stream.eatWhile(/^[_\\w\\d]/);\n var word = stream.current().toLowerCase();\n // dates (standard SQL syntax)\n // ref: http://dev.mysql.com/doc/refman/5.5/en/date-and-time-literals.html\n if (dateSQL.hasOwnProperty(word) && (stream.match(/^( )+'[^']*'/) || stream.match(/^( )+\"[^\"]*\"/)))\n return \"number\";\n if (atoms.hasOwnProperty(word)) return \"atom\";\n if (builtin.hasOwnProperty(word)) return \"builtin\";\n if (keywords.hasOwnProperty(word)) return \"keyword\";\n if (client.hasOwnProperty(word)) return \"string-2\";\n return null;\n }\n }\n\n // 'string', with char specified in quote escaped by '\\'\n function tokenLiteral(quote, backslashEscapes) {\n return function(stream, state) {\n var escaped = false, ch;\n while ((ch = stream.next()) != null) {\n if (ch == quote && !escaped) {\n state.tokenize = tokenBase;\n break;\n }\n escaped = (backslashStringEscapes || backslashEscapes) && !escaped && ch == \"\\\\\";\n }\n return \"string\";\n };\n }\n function tokenComment(depth) {\n return function(stream, state) {\n var m = stream.match(/^.*?(\\/\\*|\\*\\/)/)\n if (!m) stream.skipToEnd()\n else if (m[1] == \"/*\") state.tokenize = tokenComment(depth + 1)\n else if (depth > 1) state.tokenize = tokenComment(depth - 1)\n else state.tokenize = tokenBase\n return \"comment\"\n }\n }\n\n function pushContext(stream, state, type) {\n state.context = {\n prev: state.context,\n indent: stream.indentation(),\n col: stream.column(),\n type: type\n };\n }\n\n function popContext(state) {\n state.indent = state.context.indent;\n state.context = state.context.prev;\n }\n\n return {\n startState: function() {\n return {tokenize: tokenBase, context: null};\n },\n\n token: function(stream, state) {\n if (stream.sol()) {\n if (state.context && state.context.align == null)\n state.context.align = false;\n }\n if (state.tokenize == tokenBase && stream.eatSpace()) return null;\n\n var style = state.tokenize(stream, state);\n if (style == \"comment\") return style;\n\n if (state.context && state.context.align == null)\n state.context.align = true;\n\n var tok = stream.current();\n if (tok == \"(\")\n pushContext(stream, state, \")\");\n else if (tok == \"[\")\n pushContext(stream, state, \"]\");\n else if (state.context && state.context.type == tok)\n popContext(state);\n return style;\n },\n\n indent: function(state, textAfter) {\n var cx = state.context;\n if (!cx) return CodeMirror.Pass;\n var closing = textAfter.charAt(0) == cx.type;\n if (cx.align) return cx.col + (closing ? 0 : 1);\n else return cx.indent + (closing ? 0 : config.indentUnit);\n },\n\n blockCommentStart: \"/*\",\n blockCommentEnd: \"*/\",\n lineComment: support.commentSlashSlash ? \"//\" : support.commentHash ? \"#\" : \"--\",\n closeBrackets: \"()[]{}''\\\"\\\"``\"\n };\n});\n\n // `identifier`\n function hookIdentifier(stream) {\n // MySQL/MariaDB identifiers\n // ref: http://dev.mysql.com/doc/refman/5.6/en/identifier-qualifiers.html\n var ch;\n while ((ch = stream.next()) != null) {\n if (ch == \"`\" && !stream.eat(\"`\")) return \"variable-2\";\n }\n stream.backUp(stream.current().length - 1);\n return stream.eatWhile(/\\w/) ? \"variable-2\" : null;\n }\n\n // \"identifier\"\n function hookIdentifierDoublequote(stream) {\n // Standard SQL /SQLite identifiers\n // ref: http://web.archive.org/web/20160813185132/http://savage.net.au/SQL/sql-99.bnf.html#delimited%20identifier\n // ref: http://sqlite.org/lang_keywords.html\n var ch;\n while ((ch = stream.next()) != null) {\n if (ch == \"\\\"\" && !stream.eat(\"\\\"\")) return \"variable-2\";\n }\n stream.backUp(stream.current().length - 1);\n return stream.eatWhile(/\\w/) ? \"variable-2\" : null;\n }\n\n // variable token\n function hookVar(stream) {\n // variables\n // @@prefix.varName @varName\n // varName can be quoted with ` or ' or \"\n // ref: http://dev.mysql.com/doc/refman/5.5/en/user-variables.html\n if (stream.eat(\"@\")) {\n stream.match('session.');\n stream.match('local.');\n stream.match('global.');\n }\n\n if (stream.eat(\"'\")) {\n stream.match(/^.*'/);\n return \"variable-2\";\n } else if (stream.eat('\"')) {\n stream.match(/^.*\"/);\n return \"variable-2\";\n } else if (stream.eat(\"`\")) {\n stream.match(/^.*`/);\n return \"variable-2\";\n } else if (stream.match(/^[0-9a-zA-Z$\\.\\_]+/)) {\n return \"variable-2\";\n }\n return null;\n };\n\n // short client keyword token\n function hookClient(stream) {\n // \\N means NULL\n // ref: http://dev.mysql.com/doc/refman/5.5/en/null-values.html\n if (stream.eat(\"N\")) {\n return \"atom\";\n }\n // \\g, etc\n // ref: http://dev.mysql.com/doc/refman/5.5/en/mysql-commands.html\n return stream.match(/^[a-zA-Z.#!?]/) ? \"variable-2\" : null;\n }\n\n // these keywords are used by all SQL dialects (however, a mode can still overwrite it)\n var sqlKeywords = \"alter and as asc between by count create delete desc distinct drop from group having in insert into is join like not on or order select set table union update values where limit \";\n\n // turn a space-separated list into an array\n function set(str) {\n var obj = {}, words = str.split(\" \");\n for (var i = 0; i < words.length; ++i) obj[words[i]] = true;\n return obj;\n }\n\n var defaultBuiltin = \"bool boolean bit blob enum long longblob longtext medium mediumblob mediumint mediumtext time timestamp tinyblob tinyint tinytext text bigint int int1 int2 int3 int4 int8 integer float float4 float8 double char varbinary varchar varcharacter precision real date datetime year unsigned signed decimal numeric\"\n\n // A generic SQL Mode. It's not a standard, it just try to support what is generally supported\n CodeMirror.defineMIME(\"text/x-sql\", {\n name: \"sql\",\n keywords: set(sqlKeywords + \"begin\"),\n builtin: set(defaultBuiltin),\n atoms: set(\"false true null unknown\"),\n dateSQL: set(\"date time timestamp\"),\n support: set(\"ODBCdotTable doubleQuote binaryNumber hexNumber\")\n });\n\n CodeMirror.defineMIME(\"text/x-mssql\", {\n name: \"sql\",\n client: set(\"$partition binary_checksum checksum connectionproperty context_info current_request_id error_line error_message error_number error_procedure error_severity error_state formatmessage get_filestream_transaction_context getansinull host_id host_name isnull isnumeric min_active_rowversion newid newsequentialid rowcount_big xact_state object_id\"),\n keywords: set(sqlKeywords + \"begin trigger proc view index for add constraint key primary foreign collate clustered nonclustered declare exec go if use index holdlock nolock nowait paglock readcommitted readcommittedlock readpast readuncommitted repeatableread rowlock serializable snapshot tablock tablockx updlock with\"),\n builtin: set(\"bigint numeric bit smallint decimal smallmoney int tinyint money float real char varchar text nchar nvarchar ntext binary varbinary image cursor timestamp hierarchyid uniqueidentifier sql_variant xml table \"),\n atoms: set(\"is not null like and or in left right between inner outer join all any some cross unpivot pivot exists\"),\n operatorChars: /^[*+\\-%<>!=^\\&|\\/]/,\n brackets: /^[\\{}\\(\\)]/,\n punctuation: /^[;.,:/]/,\n backslashStringEscapes: false,\n dateSQL: set(\"date datetimeoffset datetime2 smalldatetime datetime time\"),\n hooks: {\n \"@\": hookVar\n }\n });\n\n CodeMirror.defineMIME(\"text/x-mysql\", {\n name: \"sql\",\n client: set(\"charset clear connect edit ego exit go help nopager notee nowarning pager print prompt quit rehash source status system tee\"),\n keywords: set(sqlKeywords + \"accessible action add after algorithm all analyze asensitive at authors auto_increment autocommit avg avg_row_length before binary binlog both btree cache call cascade cascaded case catalog_name chain change changed character check checkpoint checksum class_origin client_statistics close coalesce code collate collation collations column columns comment commit committed completion concurrent condition connection consistent constraint contains continue contributors convert cross current current_date current_time current_timestamp current_user cursor data database databases day_hour day_microsecond day_minute day_second deallocate dec declare default delay_key_write delayed delimiter des_key_file describe deterministic dev_pop dev_samp deviance diagnostics directory disable discard distinctrow div dual dumpfile each elseif enable enclosed end ends engine engines enum errors escape escaped even event events every execute exists exit explain extended fast fetch field fields first flush for force foreign found_rows full fulltext function general get global grant grants group group_concat handler hash help high_priority hosts hour_microsecond hour_minute hour_second if ignore ignore_server_ids import index index_statistics infile inner innodb inout insensitive insert_method install interval invoker isolation iterate key keys kill language last leading leave left level limit linear lines list load local localtime localtimestamp lock logs low_priority master master_heartbeat_period master_ssl_verify_server_cert masters match max max_rows maxvalue message_text middleint migrate min min_rows minute_microsecond minute_second mod mode modifies modify mutex mysql_errno natural next no no_write_to_binlog offline offset one online open optimize option optionally out outer outfile pack_keys parser partition partitions password phase plugin plugins prepare preserve prev primary privileges procedure processlist profile profiles purge query quick range read read_write reads real rebuild recover references regexp relaylog release remove rename reorganize repair repeatable replace require resignal restrict resume return returns revoke right rlike rollback rollup row row_format rtree savepoint schedule schema schema_name schemas second_microsecond security sensitive separator serializable server session share show signal slave slow smallint snapshot soname spatial specific sql sql_big_result sql_buffer_result sql_cache sql_calc_found_rows sql_no_cache sql_small_result sqlexception sqlstate sqlwarning ssl start starting starts status std stddev stddev_pop stddev_samp storage straight_join subclass_origin sum suspend table_name table_statistics tables tablespace temporary terminated to trailing transaction trigger triggers truncate uncommitted undo uninstall unique unlock upgrade usage use use_frm user user_resources user_statistics using utc_date utc_time utc_timestamp value variables varying view views warnings when while with work write xa xor year_month zerofill begin do then else loop repeat\"),\n builtin: set(\"bool boolean bit blob decimal double float long longblob longtext medium mediumblob mediumint mediumtext time timestamp tinyblob tinyint tinytext text bigint int int1 int2 int3 int4 int8 integer float float4 float8 double char varbinary varchar varcharacter precision date datetime year unsigned signed numeric\"),\n atoms: set(\"false true null unknown\"),\n operatorChars: /^[*+\\-%<>!=&|^]/,\n dateSQL: set(\"date time timestamp\"),\n support: set(\"ODBCdotTable decimallessFloat zerolessFloat binaryNumber hexNumber doubleQuote nCharCast charsetCast commentHash commentSpaceRequired\"),\n hooks: {\n \"@\": hookVar,\n \"`\": hookIdentifier,\n \"\\\\\": hookClient\n }\n });\n\n CodeMirror.defineMIME(\"text/x-mariadb\", {\n name: \"sql\",\n client: set(\"charset clear connect edit ego exit go help nopager notee nowarning pager print prompt quit rehash source status system tee\"),\n keywords: set(sqlKeywords + \"accessible action add after algorithm all always analyze asensitive at authors auto_increment autocommit avg avg_row_length before binary binlog both btree cache call cascade cascaded case catalog_name chain change changed character check checkpoint checksum class_origin client_statistics close coalesce code collate collation collations column columns comment commit committed completion concurrent condition connection consistent constraint contains continue contributors convert cross current current_date current_time current_timestamp current_user cursor data database databases day_hour day_microsecond day_minute day_second deallocate dec declare default delay_key_write delayed delimiter des_key_file describe deterministic dev_pop dev_samp deviance diagnostics directory disable discard distinctrow div dual dumpfile each elseif enable enclosed end ends engine engines enum errors escape escaped even event events every execute exists exit explain extended fast fetch field fields first flush for force foreign found_rows full fulltext function general generated get global grant grants group groupby_concat handler hard hash help high_priority hosts hour_microsecond hour_minute hour_second if ignore ignore_server_ids import index index_statistics infile inner innodb inout insensitive insert_method install interval invoker isolation iterate key keys kill language last leading leave left level limit linear lines list load local localtime localtimestamp lock logs low_priority master master_heartbeat_period master_ssl_verify_server_cert masters match max max_rows maxvalue message_text middleint migrate min min_rows minute_microsecond minute_second mod mode modifies modify mutex mysql_errno natural next no no_write_to_binlog offline offset one online open optimize option optionally out outer outfile pack_keys parser partition partitions password persistent phase plugin plugins prepare preserve prev primary privileges procedure processlist profile profiles purge query quick range read read_write reads real rebuild recover references regexp relaylog release remove rename reorganize repair repeatable replace require resignal restrict resume return returns revoke right rlike rollback rollup row row_format rtree savepoint schedule schema schema_name schemas second_microsecond security sensitive separator serializable server session share show shutdown signal slave slow smallint snapshot soft soname spatial specific sql sql_big_result sql_buffer_result sql_cache sql_calc_found_rows sql_no_cache sql_small_result sqlexception sqlstate sqlwarning ssl start starting starts status std stddev stddev_pop stddev_samp storage straight_join subclass_origin sum suspend table_name table_statistics tables tablespace temporary terminated to trailing transaction trigger triggers truncate uncommitted undo uninstall unique unlock upgrade usage use use_frm user user_resources user_statistics using utc_date utc_time utc_timestamp value variables varying view views virtual warnings when while with work write xa xor year_month zerofill begin do then else loop repeat\"),\n builtin: set(\"bool boolean bit blob decimal double float long longblob longtext medium mediumblob mediumint mediumtext time timestamp tinyblob tinyint tinytext text bigint int int1 int2 int3 int4 int8 integer float float4 float8 double char varbinary varchar varcharacter precision date datetime year unsigned signed numeric\"),\n atoms: set(\"false true null unknown\"),\n operatorChars: /^[*+\\-%<>!=&|^]/,\n dateSQL: set(\"date time timestamp\"),\n support: set(\"ODBCdotTable decimallessFloat zerolessFloat binaryNumber hexNumber doubleQuote nCharCast charsetCast commentHash commentSpaceRequired\"),\n hooks: {\n \"@\": hookVar,\n \"`\": hookIdentifier,\n \"\\\\\": hookClient\n }\n });\n\n // provided by the phpLiteAdmin project - phpliteadmin.org\n CodeMirror.defineMIME(\"text/x-sqlite\", {\n name: \"sql\",\n // commands of the official SQLite client, ref: https://www.sqlite.org/cli.html#dotcmd\n client: set(\"auth backup bail binary changes check clone databases dbinfo dump echo eqp exit explain fullschema headers help import imposter indexes iotrace limit lint load log mode nullvalue once open output print prompt quit read restore save scanstats schema separator session shell show stats system tables testcase timeout timer trace vfsinfo vfslist vfsname width\"),\n // ref: http://sqlite.org/lang_keywords.html\n keywords: set(sqlKeywords + \"abort action add after all analyze attach autoincrement before begin cascade case cast check collate column commit conflict constraint cross current_date current_time current_timestamp database default deferrable deferred detach each else end escape except exclusive exists explain fail for foreign full glob if ignore immediate index indexed initially inner instead intersect isnull key left limit match natural no notnull null of offset outer plan pragma primary query raise recursive references regexp reindex release rename replace restrict right rollback row savepoint temp temporary then to transaction trigger unique using vacuum view virtual when with without\"),\n // SQLite is weakly typed, ref: http://sqlite.org/datatype3.html. This is just a list of some common types.\n builtin: set(\"bool boolean bit blob decimal double float long longblob longtext medium mediumblob mediumint mediumtext time timestamp tinyblob tinyint tinytext text clob bigint int int2 int8 integer float double char varchar date datetime year unsigned signed numeric real\"),\n // ref: http://sqlite.org/syntax/literal-value.html\n atoms: set(\"null current_date current_time current_timestamp\"),\n // ref: http://sqlite.org/lang_expr.html#binaryops\n operatorChars: /^[*+\\-%<>!=&|/~]/,\n // SQLite is weakly typed, ref: http://sqlite.org/datatype3.html. This is just a list of some common types.\n dateSQL: set(\"date time timestamp datetime\"),\n support: set(\"decimallessFloat zerolessFloat\"),\n identifierQuote: \"\\\"\", //ref: http://sqlite.org/lang_keywords.html\n hooks: {\n // bind-parameters ref:http://sqlite.org/lang_expr.html#varparam\n \"@\": hookVar,\n \":\": hookVar,\n \"?\": hookVar,\n \"$\": hookVar,\n // The preferred way to escape Identifiers is using double quotes, ref: http://sqlite.org/lang_keywords.html\n \"\\\"\": hookIdentifierDoublequote,\n // there is also support for backticks, ref: http://sqlite.org/lang_keywords.html\n \"`\": hookIdentifier\n }\n });\n\n // the query language used by Apache Cassandra is called CQL, but this mime type\n // is called Cassandra to avoid confusion with Contextual Query Language\n CodeMirror.defineMIME(\"text/x-cassandra\", {\n name: \"sql\",\n client: { },\n keywords: set(\"add all allow alter and any apply as asc authorize batch begin by clustering columnfamily compact consistency count create custom delete desc distinct drop each_quorum exists filtering from grant if in index insert into key keyspace keyspaces level limit local_one local_quorum modify nan norecursive nosuperuser not of on one order password permission permissions primary quorum rename revoke schema select set storage superuser table three to token truncate ttl two type unlogged update use user users using values where with writetime\"),\n builtin: set(\"ascii bigint blob boolean counter decimal double float frozen inet int list map static text timestamp timeuuid tuple uuid varchar varint\"),\n atoms: set(\"false true infinity NaN\"),\n operatorChars: /^[<>=]/,\n dateSQL: { },\n support: set(\"commentSlashSlash decimallessFloat\"),\n hooks: { }\n });\n\n // this is based on Peter Raganitsch's 'plsql' mode\n CodeMirror.defineMIME(\"text/x-plsql\", {\n name: \"sql\",\n client: set(\"appinfo arraysize autocommit autoprint autorecovery autotrace blockterminator break btitle cmdsep colsep compatibility compute concat copycommit copytypecheck define describe echo editfile embedded escape exec execute feedback flagger flush heading headsep instance linesize lno loboffset logsource long longchunksize markup native newpage numformat numwidth pagesize pause pno recsep recsepchar release repfooter repheader serveroutput shiftinout show showmode size spool sqlblanklines sqlcase sqlcode sqlcontinue sqlnumber sqlpluscompatibility sqlprefix sqlprompt sqlterminator suffix tab term termout time timing trimout trimspool ttitle underline verify version wrap\"),\n keywords: set(\"abort accept access add all alter and any array arraylen as asc assert assign at attributes audit authorization avg base_table begin between binary_integer body boolean by case cast char char_base check close cluster clusters colauth column comment commit compress connect connected constant constraint crash create current currval cursor data_base database date dba deallocate debugoff debugon decimal declare default definition delay delete desc digits dispose distinct do drop else elseif elsif enable end entry escape exception exception_init exchange exclusive exists exit external fast fetch file for force form from function generic goto grant group having identified if immediate in increment index indexes indicator initial initrans insert interface intersect into is key level library like limited local lock log logging long loop master maxextents maxtrans member minextents minus mislabel mode modify multiset new next no noaudit nocompress nologging noparallel not nowait number_base object of off offline on online only open option or order out package parallel partition pctfree pctincrease pctused pls_integer positive positiven pragma primary prior private privileges procedure public raise range raw read rebuild record ref references refresh release rename replace resource restrict return returning returns reverse revoke rollback row rowid rowlabel rownum rows run savepoint schema segment select separate session set share snapshot some space split sql start statement storage subtype successful synonym tabauth table tables tablespace task terminate then to trigger truncate type union unique unlimited unrecoverable unusable update use using validate value values variable view views when whenever where while with work\"),\n builtin: set(\"abs acos add_months ascii asin atan atan2 average bfile bfilename bigserial bit blob ceil character chartorowid chr clob concat convert cos cosh count dec decode deref dual dump dup_val_on_index empty error exp false float floor found glb greatest hextoraw initcap instr instrb int integer isopen last_day least length lengthb ln lower lpad ltrim lub make_ref max min mlslabel mod months_between natural naturaln nchar nclob new_time next_day nextval nls_charset_decl_len nls_charset_id nls_charset_name nls_initcap nls_lower nls_sort nls_upper nlssort no_data_found notfound null number numeric nvarchar2 nvl others power rawtohex real reftohex round rowcount rowidtochar rowtype rpad rtrim serial sign signtype sin sinh smallint soundex sqlcode sqlerrm sqrt stddev string substr substrb sum sysdate tan tanh to_char text to_date to_label to_multi_byte to_number to_single_byte translate true trunc uid unlogged upper user userenv varchar varchar2 variance varying vsize xml\"),\n operatorChars: /^[*\\/+\\-%<>!=~]/,\n dateSQL: set(\"date time timestamp\"),\n support: set(\"doubleQuote nCharCast zerolessFloat binaryNumber hexNumber\")\n });\n\n // Created to support specific hive keywords\n CodeMirror.defineMIME(\"text/x-hive\", {\n name: \"sql\",\n keywords: set(\"select alter $elem$ $key$ $value$ add after all analyze and archive as asc before between binary both bucket buckets by cascade case cast change cluster clustered clusterstatus collection column columns comment compute concatenate continue create cross cursor data database databases dbproperties deferred delete delimited desc describe directory disable distinct distribute drop else enable end escaped exclusive exists explain export extended external fetch fields fileformat first format formatted from full function functions grant group having hold_ddltime idxproperties if import in index indexes inpath inputdriver inputformat insert intersect into is items join keys lateral left like limit lines load local location lock locks mapjoin materialized minus msck no_drop nocompress not of offline on option or order out outer outputdriver outputformat overwrite partition partitioned partitions percent plus preserve procedure purge range rcfile read readonly reads rebuild recordreader recordwriter recover reduce regexp rename repair replace restrict revoke right rlike row schema schemas semi sequencefile serde serdeproperties set shared show show_database sort sorted ssl statistics stored streamtable table tables tablesample tblproperties temporary terminated textfile then tmp to touch transform trigger unarchive undo union uniquejoin unlock update use using utc utc_tmestamp view when where while with admin authorization char compact compactions conf cube current current_date current_timestamp day decimal defined dependency directories elem_type exchange file following for grouping hour ignore inner interval jar less logical macro minute month more none noscan over owner partialscan preceding pretty principals protection reload rewrite role roles rollup rows second server sets skewed transactions truncate unbounded unset uri user values window year\"),\n builtin: set(\"bool boolean long timestamp tinyint smallint bigint int float double date datetime unsigned string array struct map uniontype key_type utctimestamp value_type varchar\"),\n atoms: set(\"false true null unknown\"),\n operatorChars: /^[*+\\-%<>!=]/,\n dateSQL: set(\"date timestamp\"),\n support: set(\"ODBCdotTable doubleQuote binaryNumber hexNumber\")\n });\n\n CodeMirror.defineMIME(\"text/x-pgsql\", {\n name: \"sql\",\n client: set(\"source\"),\n // For PostgreSQL - https://www.postgresql.org/docs/11/sql-keywords-appendix.html\n // For pl/pgsql lang - https://github.com/postgres/postgres/blob/REL_11_2/src/pl/plpgsql/src/pl_scanner.c\n keywords: set(sqlKeywords + \"a abort abs absent absolute access according action ada add admin after aggregate alias all allocate also alter always analyse analyze and any are array array_agg array_max_cardinality as asc asensitive assert assertion assignment asymmetric at atomic attach attribute attributes authorization avg backward base64 before begin begin_frame begin_partition bernoulli between bigint binary bit bit_length blob blocked bom boolean both breadth by c cache call called cardinality cascade cascaded case cast catalog catalog_name ceil ceiling chain char char_length character character_length character_set_catalog character_set_name character_set_schema characteristics characters check checkpoint class class_origin clob close cluster coalesce cobol collate collation collation_catalog collation_name collation_schema collect column column_name columns command_function command_function_code comment comments commit committed concurrently condition condition_number configuration conflict connect connection connection_name constant constraint constraint_catalog constraint_name constraint_schema constraints constructor contains content continue control conversion convert copy corr corresponding cost count covar_pop covar_samp create cross csv cube cume_dist current current_catalog current_date current_default_transform_group current_path current_role current_row current_schema current_time current_timestamp current_transform_group_for_type current_user cursor cursor_name cycle data database datalink datatype date datetime_interval_code datetime_interval_precision day db deallocate debug dec decimal declare default defaults deferrable deferred defined definer degree delete delimiter delimiters dense_rank depends depth deref derived desc describe descriptor detach detail deterministic diagnostics dictionary disable discard disconnect dispatch distinct dlnewcopy dlpreviouscopy dlurlcomplete dlurlcompleteonly dlurlcompletewrite dlurlpath dlurlpathonly dlurlpathwrite dlurlscheme dlurlserver dlvalue do document domain double drop dump dynamic dynamic_function dynamic_function_code each element else elseif elsif empty enable encoding encrypted end end_frame end_partition endexec enforced enum equals errcode error escape event every except exception exclude excluding exclusive exec execute exists exit exp explain expression extension external extract false family fetch file filter final first first_value flag float floor following for force foreach foreign fortran forward found frame_row free freeze from fs full function functions fusion g general generated get global go goto grant granted greatest group grouping groups handler having header hex hierarchy hint hold hour id identity if ignore ilike immediate immediately immutable implementation implicit import in include including increment indent index indexes indicator info inherit inherits initially inline inner inout input insensitive insert instance instantiable instead int integer integrity intersect intersection interval into invoker is isnull isolation join k key key_member key_type label lag language large last last_value lateral lead leading leakproof least left length level library like like_regex limit link listen ln load local localtime localtimestamp location locator lock locked log logged loop lower m map mapping match matched materialized max max_cardinality maxvalue member merge message message_length message_octet_length message_text method min minute minvalue mod mode modifies module month more move multiset mumps name names namespace national natural nchar nclob nesting new next nfc nfd nfkc nfkd nil no none normalize normalized not nothing notice notify notnull nowait nth_value ntile null nullable nullif nulls number numeric object occurrences_regex octet_length octets of off offset oids old on only open operator option options or order ordering ordinality others out outer output over overlaps overlay overriding owned owner p pad parallel parameter parameter_mode parameter_name parameter_ordinal_position parameter_specific_catalog parameter_specific_name parameter_specific_schema parser partial partition pascal passing passthrough password path percent percent_rank percentile_cont percentile_disc perform period permission pg_context pg_datatype_name pg_exception_context pg_exception_detail pg_exception_hint placing plans pli policy portion position position_regex power precedes preceding precision prepare prepared preserve primary print_strict_params prior privileges procedural procedure procedures program public publication query quote raise range rank read reads real reassign recheck recovery recursive ref references referencing refresh regr_avgx regr_avgy regr_count regr_intercept regr_r2 regr_slope regr_sxx regr_sxy regr_syy reindex relative release rename repeatable replace replica requiring reset respect restart restore restrict result result_oid return returned_cardinality returned_length returned_octet_length returned_sqlstate returning returns reverse revoke right role rollback rollup routine routine_catalog routine_name routine_schema routines row row_count row_number rows rowtype rule savepoint scale schema schema_name schemas scope scope_catalog scope_name scope_schema scroll search second section security select selective self sensitive sequence sequences serializable server server_name session session_user set setof sets share show similar simple size skip slice smallint snapshot some source space specific specific_name specifictype sql sqlcode sqlerror sqlexception sqlstate sqlwarning sqrt stable stacked standalone start state statement static statistics stddev_pop stddev_samp stdin stdout storage strict strip structure style subclass_origin submultiset subscription substring substring_regex succeeds sum symmetric sysid system system_time system_user t table table_name tables tablesample tablespace temp template temporary text then ties time timestamp timezone_hour timezone_minute to token top_level_count trailing transaction transaction_active transactions_committed transactions_rolled_back transform transforms translate translate_regex translation treat trigger trigger_catalog trigger_name trigger_schema trim trim_array true truncate trusted type types uescape unbounded uncommitted under unencrypted union unique unknown unlink unlisten unlogged unnamed unnest until untyped update upper uri usage use_column use_variable user user_defined_type_catalog user_defined_type_code user_defined_type_name user_defined_type_schema using vacuum valid validate validator value value_of values var_pop var_samp varbinary varchar variable_conflict variadic varying verbose version versioning view views volatile warning when whenever where while whitespace width_bucket window with within without work wrapper write xml xmlagg xmlattributes xmlbinary xmlcast xmlcomment xmlconcat xmldeclaration xmldocument xmlelement xmlexists xmlforest xmliterate xmlnamespaces xmlparse xmlpi xmlquery xmlroot xmlschema xmlserialize xmltable xmltext xmlvalidate year yes zone\"),\n // https://www.postgresql.org/docs/11/datatype.html\n builtin: set(\"bigint int8 bigserial serial8 bit varying varbit boolean bool box bytea character char varchar cidr circle date double precision float8 inet integer int int4 interval json jsonb line lseg macaddr macaddr8 money numeric decimal path pg_lsn point polygon real float4 smallint int2 smallserial serial2 serial serial4 text time without zone with timetz timestamp timestamptz tsquery tsvector txid_snapshot uuid xml\"),\n atoms: set(\"false true null unknown\"),\n operatorChars: /^[*\\/+\\-%<>!=&|^\\/#@?~]/,\n backslashStringEscapes: false,\n dateSQL: set(\"date time timestamp\"),\n support: set(\"ODBCdotTable decimallessFloat zerolessFloat binaryNumber hexNumber nCharCast charsetCast escapeConstant\")\n });\n\n // Google's SQL-like query language, GQL\n CodeMirror.defineMIME(\"text/x-gql\", {\n name: \"sql\",\n keywords: set(\"ancestor and asc by contains desc descendant distinct from group has in is limit offset on order select superset where\"),\n atoms: set(\"false true\"),\n builtin: set(\"blob datetime first key __key__ string integer double boolean null\"),\n operatorChars: /^[*+\\-%<>!=]/\n });\n\n // Greenplum\n CodeMirror.defineMIME(\"text/x-gpsql\", {\n name: \"sql\",\n client: set(\"source\"),\n //https://github.com/greenplum-db/gpdb/blob/master/src/include/parser/kwlist.h\n keywords: set(\"abort absolute access action active add admin after aggregate all also alter always analyse analyze and any array as asc assertion assignment asymmetric at authorization backward before begin between bigint binary bit boolean both by cache called cascade cascaded case cast chain char character characteristics check checkpoint class close cluster coalesce codegen collate column comment commit committed concurrency concurrently configuration connection constraint constraints contains content continue conversion copy cost cpu_rate_limit create createdb createexttable createrole createuser cross csv cube current current_catalog current_date current_role current_schema current_time current_timestamp current_user cursor cycle data database day deallocate dec decimal declare decode default defaults deferrable deferred definer delete delimiter delimiters deny desc dictionary disable discard distinct distributed do document domain double drop dxl each else enable encoding encrypted end enum errors escape every except exchange exclude excluding exclusive execute exists explain extension external extract false family fetch fields filespace fill filter first float following for force foreign format forward freeze from full function global grant granted greatest group group_id grouping handler hash having header hold host hour identity if ignore ilike immediate immutable implicit in including inclusive increment index indexes inherit inherits initially inline inner inout input insensitive insert instead int integer intersect interval into invoker is isnull isolation join key language large last leading least left level like limit list listen load local localtime localtimestamp location lock log login mapping master match maxvalue median merge minute minvalue missing mode modifies modify month move name names national natural nchar new newline next no nocreatedb nocreateexttable nocreaterole nocreateuser noinherit nologin none noovercommit nosuperuser not nothing notify notnull nowait null nullif nulls numeric object of off offset oids old on only operator option options or order ordered others out outer over overcommit overlaps overlay owned owner parser partial partition partitions passing password percent percentile_cont percentile_disc placing plans position preceding precision prepare prepared preserve primary prior privileges procedural procedure protocol queue quote randomly range read readable reads real reassign recheck recursive ref references reindex reject relative release rename repeatable replace replica reset resource restart restrict returning returns revoke right role rollback rollup rootpartition row rows rule savepoint scatter schema scroll search second security segment select sequence serializable session session_user set setof sets share show similar simple smallint some split sql stable standalone start statement statistics stdin stdout storage strict strip subpartition subpartitions substring superuser symmetric sysid system table tablespace temp template temporary text then threshold ties time timestamp to trailing transaction treat trigger trim true truncate trusted type unbounded uncommitted unencrypted union unique unknown unlisten until update user using vacuum valid validation validator value values varchar variadic varying verbose version view volatile web when where whitespace window with within without work writable write xml xmlattributes xmlconcat xmlelement xmlexists xmlforest xmlparse xmlpi xmlroot xmlserialize year yes zone\"),\n builtin: set(\"bigint int8 bigserial serial8 bit varying varbit boolean bool box bytea character char varchar cidr circle date double precision float float8 inet integer int int4 interval json jsonb line lseg macaddr macaddr8 money numeric decimal path pg_lsn point polygon real float4 smallint int2 smallserial serial2 serial serial4 text time without zone with timetz timestamp timestamptz tsquery tsvector txid_snapshot uuid xml\"),\n atoms: set(\"false true null unknown\"),\n operatorChars: /^[*+\\-%<>!=&|^\\/#@?~]/,\n dateSQL: set(\"date time timestamp\"),\n support: set(\"ODBCdotTable decimallessFloat zerolessFloat binaryNumber hexNumber nCharCast charsetCast\")\n });\n\n // Spark SQL\n CodeMirror.defineMIME(\"text/x-sparksql\", {\n name: \"sql\",\n keywords: set(\"add after all alter analyze and anti archive array as asc at between bucket buckets by cache cascade case cast change clear cluster clustered codegen collection column columns comment commit compact compactions compute concatenate cost create cross cube current current_date current_timestamp database databases data dbproperties defined delete delimited deny desc describe dfs directories distinct distribute drop else end escaped except exchange exists explain export extended external false fields fileformat first following for format formatted from full function functions global grant group grouping having if ignore import in index indexes inner inpath inputformat insert intersect interval into is items join keys last lateral lazy left like limit lines list load local location lock locks logical macro map minus msck natural no not null nulls of on optimize option options or order out outer outputformat over overwrite partition partitioned partitions percent preceding principals purge range recordreader recordwriter recover reduce refresh regexp rename repair replace reset restrict revoke right rlike role roles rollback rollup row rows schema schemas select semi separated serde serdeproperties set sets show skewed sort sorted start statistics stored stratify struct table tables tablesample tblproperties temp temporary terminated then to touch transaction transactions transform true truncate unarchive unbounded uncache union unlock unset use using values view when where window with\"),\n builtin: set(\"tinyint smallint int bigint boolean float double string binary timestamp decimal array map struct uniontype delimited serde sequencefile textfile rcfile inputformat outputformat\"),\n atoms: set(\"false true null\"),\n operatorChars: /^[*\\/+\\-%<>!=~&|^]/,\n dateSQL: set(\"date time timestamp\"),\n support: set(\"ODBCdotTable doubleQuote zerolessFloat\")\n });\n\n // Esper\n CodeMirror.defineMIME(\"text/x-esper\", {\n name: \"sql\",\n client: set(\"source\"),\n // http://www.espertech.com/esper/release-5.5.0/esper-reference/html/appendix_keywords.html\n keywords: set(\"alter and as asc between by count create delete desc distinct drop from group having in insert into is join like not on or order select set table union update values where limit after all and as at asc avedev avg between by case cast coalesce count create current_timestamp day days delete define desc distinct else end escape events every exists false first from full group having hour hours in inner insert instanceof into irstream is istream join last lastweekday left limit like max match_recognize matches median measures metadatasql min minute minutes msec millisecond milliseconds not null offset on or order outer output partition pattern prev prior regexp retain-union retain-intersection right rstream sec second seconds select set some snapshot sql stddev sum then true unidirectional until update variable weekday when where window\"),\n builtin: {},\n atoms: set(\"false true null\"),\n operatorChars: /^[*+\\-%<>!=&|^\\/#@?~]/,\n dateSQL: set(\"time\"),\n support: set(\"decimallessFloat zerolessFloat binaryNumber hexNumber\")\n });\n});\n\n/*\n How Properties of Mime Types are used by SQL Mode\n =================================================\n\n keywords:\n A list of keywords you want to be highlighted.\n builtin:\n A list of builtin types you want to be highlighted (if you want types to be of class \"builtin\" instead of \"keyword\").\n operatorChars:\n All characters that must be handled as operators.\n client:\n Commands parsed and executed by the client (not the server).\n support:\n A list of supported syntaxes which are not common, but are supported by more than 1 DBMS.\n * ODBCdotTable: .tableName\n * zerolessFloat: .1\n * doubleQuote\n * nCharCast: N'string'\n * charsetCast: _utf8'string'\n * commentHash: use # char for comments\n * commentSlashSlash: use // for comments\n * commentSpaceRequired: require a space after -- for comments\n atoms:\n Keywords that must be highlighted as atoms,. Some DBMS's support more atoms than others:\n UNKNOWN, INFINITY, UNDERFLOW, NaN...\n dateSQL:\n Used for date/time SQL standard syntax, because not all DBMS's support same temporal types.\n*/\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n/*\n * Author: Constantin Jucovschi (c.jucovschi@jacobs-university.de)\n * Licence: MIT\n */\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n \"use strict\";\n\n CodeMirror.defineMode(\"stex\", function(_config, parserConfig) {\n \"use strict\";\n\n function pushCommand(state, command) {\n state.cmdState.push(command);\n }\n\n function peekCommand(state) {\n if (state.cmdState.length > 0) {\n return state.cmdState[state.cmdState.length - 1];\n } else {\n return null;\n }\n }\n\n function popCommand(state) {\n var plug = state.cmdState.pop();\n if (plug) {\n plug.closeBracket();\n }\n }\n\n // returns the non-default plugin closest to the end of the list\n function getMostPowerful(state) {\n var context = state.cmdState;\n for (var i = context.length - 1; i >= 0; i--) {\n var plug = context[i];\n if (plug.name == \"DEFAULT\") {\n continue;\n }\n return plug;\n }\n return { styleIdentifier: function() { return null; } };\n }\n\n function addPluginPattern(pluginName, cmdStyle, styles) {\n return function () {\n this.name = pluginName;\n this.bracketNo = 0;\n this.style = cmdStyle;\n this.styles = styles;\n this.argument = null; // \\begin and \\end have arguments that follow. These are stored in the plugin\n\n this.styleIdentifier = function() {\n return this.styles[this.bracketNo - 1] || null;\n };\n this.openBracket = function() {\n this.bracketNo++;\n return \"bracket\";\n };\n this.closeBracket = function() {};\n };\n }\n\n var plugins = {};\n\n plugins[\"importmodule\"] = addPluginPattern(\"importmodule\", \"tag\", [\"string\", \"builtin\"]);\n plugins[\"documentclass\"] = addPluginPattern(\"documentclass\", \"tag\", [\"\", \"atom\"]);\n plugins[\"usepackage\"] = addPluginPattern(\"usepackage\", \"tag\", [\"atom\"]);\n plugins[\"begin\"] = addPluginPattern(\"begin\", \"tag\", [\"atom\"]);\n plugins[\"end\"] = addPluginPattern(\"end\", \"tag\", [\"atom\"]);\n\n plugins[\"label\" ] = addPluginPattern(\"label\" , \"tag\", [\"atom\"]);\n plugins[\"ref\" ] = addPluginPattern(\"ref\" , \"tag\", [\"atom\"]);\n plugins[\"eqref\" ] = addPluginPattern(\"eqref\" , \"tag\", [\"atom\"]);\n plugins[\"cite\" ] = addPluginPattern(\"cite\" , \"tag\", [\"atom\"]);\n plugins[\"bibitem\" ] = addPluginPattern(\"bibitem\" , \"tag\", [\"atom\"]);\n plugins[\"Bibitem\" ] = addPluginPattern(\"Bibitem\" , \"tag\", [\"atom\"]);\n plugins[\"RBibitem\" ] = addPluginPattern(\"RBibitem\" , \"tag\", [\"atom\"]);\n\n plugins[\"DEFAULT\"] = function () {\n this.name = \"DEFAULT\";\n this.style = \"tag\";\n\n this.styleIdentifier = this.openBracket = this.closeBracket = function() {};\n };\n\n function setState(state, f) {\n state.f = f;\n }\n\n // called when in a normal (no environment) context\n function normal(source, state) {\n var plug;\n // Do we look like '\\command' ? If so, attempt to apply the plugin 'command'\n if (source.match(/^\\\\[a-zA-Z@]+/)) {\n var cmdName = source.current().slice(1);\n plug = plugins.hasOwnProperty(cmdName) ? plugins[cmdName] : plugins[\"DEFAULT\"];\n plug = new plug();\n pushCommand(state, plug);\n setState(state, beginParams);\n return plug.style;\n }\n\n // escape characters\n if (source.match(/^\\\\[$&%#{}_]/)) {\n return \"tag\";\n }\n\n // white space control characters\n if (source.match(/^\\\\[,;!\\/\\\\]/)) {\n return \"tag\";\n }\n\n // find if we're starting various math modes\n if (source.match(\"\\\\[\")) {\n setState(state, function(source, state){ return inMathMode(source, state, \"\\\\]\"); });\n return \"keyword\";\n }\n if (source.match(\"\\\\(\")) {\n setState(state, function(source, state){ return inMathMode(source, state, \"\\\\)\"); });\n return \"keyword\";\n }\n if (source.match(\"$$\")) {\n setState(state, function(source, state){ return inMathMode(source, state, \"$$\"); });\n return \"keyword\";\n }\n if (source.match(\"$\")) {\n setState(state, function(source, state){ return inMathMode(source, state, \"$\"); });\n return \"keyword\";\n }\n\n var ch = source.next();\n if (ch == \"%\") {\n source.skipToEnd();\n return \"comment\";\n } else if (ch == '}' || ch == ']') {\n plug = peekCommand(state);\n if (plug) {\n plug.closeBracket(ch);\n setState(state, beginParams);\n } else {\n return \"error\";\n }\n return \"bracket\";\n } else if (ch == '{' || ch == '[') {\n plug = plugins[\"DEFAULT\"];\n plug = new plug();\n pushCommand(state, plug);\n return \"bracket\";\n } else if (/\\d/.test(ch)) {\n source.eatWhile(/[\\w.%]/);\n return \"atom\";\n } else {\n source.eatWhile(/[\\w\\-_]/);\n plug = getMostPowerful(state);\n if (plug.name == 'begin') {\n plug.argument = source.current();\n }\n return plug.styleIdentifier();\n }\n }\n\n function inMathMode(source, state, endModeSeq) {\n if (source.eatSpace()) {\n return null;\n }\n if (endModeSeq && source.match(endModeSeq)) {\n setState(state, normal);\n return \"keyword\";\n }\n if (source.match(/^\\\\[a-zA-Z@]+/)) {\n return \"tag\";\n }\n if (source.match(/^[a-zA-Z]+/)) {\n return \"variable-2\";\n }\n // escape characters\n if (source.match(/^\\\\[$&%#{}_]/)) {\n return \"tag\";\n }\n // white space control characters\n if (source.match(/^\\\\[,;!\\/]/)) {\n return \"tag\";\n }\n // special math-mode characters\n if (source.match(/^[\\^_&]/)) {\n return \"tag\";\n }\n // non-special characters\n if (source.match(/^[+\\-<>|=,\\/@!*:;'\"`~#?]/)) {\n return null;\n }\n if (source.match(/^(\\d+\\.\\d*|\\d*\\.\\d+|\\d+)/)) {\n return \"number\";\n }\n var ch = source.next();\n if (ch == \"{\" || ch == \"}\" || ch == \"[\" || ch == \"]\" || ch == \"(\" || ch == \")\") {\n return \"bracket\";\n }\n\n if (ch == \"%\") {\n source.skipToEnd();\n return \"comment\";\n }\n return \"error\";\n }\n\n function beginParams(source, state) {\n var ch = source.peek(), lastPlug;\n if (ch == '{' || ch == '[') {\n lastPlug = peekCommand(state);\n lastPlug.openBracket(ch);\n source.eat(ch);\n setState(state, normal);\n return \"bracket\";\n }\n if (/[ \\t\\r]/.test(ch)) {\n source.eat(ch);\n return null;\n }\n setState(state, normal);\n popCommand(state);\n\n return normal(source, state);\n }\n\n return {\n startState: function() {\n var f = parserConfig.inMathMode ? function(source, state){ return inMathMode(source, state); } : normal;\n return {\n cmdState: [],\n f: f\n };\n },\n copyState: function(s) {\n return {\n cmdState: s.cmdState.slice(),\n f: s.f\n };\n },\n token: function(stream, state) {\n return state.f(stream, state);\n },\n blankLine: function(state) {\n state.f = normal;\n state.cmdState.length = 0;\n },\n lineComment: \"%\"\n };\n });\n\n CodeMirror.defineMIME(\"text/x-stex\", \"stex\");\n CodeMirror.defineMIME(\"text/x-latex\", \"stex\");\n\n});\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nvar htmlConfig = {\n autoSelfClosers: {'area': true, 'base': true, 'br': true, 'col': true, 'command': true,\n 'embed': true, 'frame': true, 'hr': true, 'img': true, 'input': true,\n 'keygen': true, 'link': true, 'meta': true, 'param': true, 'source': true,\n 'track': true, 'wbr': true, 'menuitem': true},\n implicitlyClosed: {'dd': true, 'li': true, 'optgroup': true, 'option': true, 'p': true,\n 'rp': true, 'rt': true, 'tbody': true, 'td': true, 'tfoot': true,\n 'th': true, 'tr': true},\n contextGrabbers: {\n 'dd': {'dd': true, 'dt': true},\n 'dt': {'dd': true, 'dt': true},\n 'li': {'li': true},\n 'option': {'option': true, 'optgroup': true},\n 'optgroup': {'optgroup': true},\n 'p': {'address': true, 'article': true, 'aside': true, 'blockquote': true, 'dir': true,\n 'div': true, 'dl': true, 'fieldset': true, 'footer': true, 'form': true,\n 'h1': true, 'h2': true, 'h3': true, 'h4': true, 'h5': true, 'h6': true,\n 'header': true, 'hgroup': true, 'hr': true, 'menu': true, 'nav': true, 'ol': true,\n 'p': true, 'pre': true, 'section': true, 'table': true, 'ul': true},\n 'rp': {'rp': true, 'rt': true},\n 'rt': {'rp': true, 'rt': true},\n 'tbody': {'tbody': true, 'tfoot': true},\n 'td': {'td': true, 'th': true},\n 'tfoot': {'tbody': true},\n 'th': {'td': true, 'th': true},\n 'thead': {'tbody': true, 'tfoot': true},\n 'tr': {'tr': true}\n },\n doNotIndent: {\"pre\": true},\n allowUnquoted: true,\n allowMissing: true,\n caseFold: true\n}\n\nvar xmlConfig = {\n autoSelfClosers: {},\n implicitlyClosed: {},\n contextGrabbers: {},\n doNotIndent: {},\n allowUnquoted: false,\n allowMissing: false,\n allowMissingTagName: false,\n caseFold: false\n}\n\nCodeMirror.defineMode(\"xml\", function(editorConf, config_) {\n var indentUnit = editorConf.indentUnit\n var config = {}\n var defaults = config_.htmlMode ? htmlConfig : xmlConfig\n for (var prop in defaults) config[prop] = defaults[prop]\n for (var prop in config_) config[prop] = config_[prop]\n\n // Return variables for tokenizers\n var type, setStyle;\n\n function inText(stream, state) {\n function chain(parser) {\n state.tokenize = parser;\n return parser(stream, state);\n }\n\n var ch = stream.next();\n if (ch == \"<\") {\n if (stream.eat(\"!\")) {\n if (stream.eat(\"[\")) {\n if (stream.match(\"CDATA[\")) return chain(inBlock(\"atom\", \"]]>\"));\n else return null;\n } else if (stream.match(\"--\")) {\n return chain(inBlock(\"comment\", \"-->\"));\n } else if (stream.match(\"DOCTYPE\", true, true)) {\n stream.eatWhile(/[\\w\\._\\-]/);\n return chain(doctype(1));\n } else {\n return null;\n }\n } else if (stream.eat(\"?\")) {\n stream.eatWhile(/[\\w\\._\\-]/);\n state.tokenize = inBlock(\"meta\", \"?>\");\n return \"meta\";\n } else {\n type = stream.eat(\"/\") ? \"closeTag\" : \"openTag\";\n state.tokenize = inTag;\n return \"tag bracket\";\n }\n } else if (ch == \"&\") {\n var ok;\n if (stream.eat(\"#\")) {\n if (stream.eat(\"x\")) {\n ok = stream.eatWhile(/[a-fA-F\\d]/) && stream.eat(\";\");\n } else {\n ok = stream.eatWhile(/[\\d]/) && stream.eat(\";\");\n }\n } else {\n ok = stream.eatWhile(/[\\w\\.\\-:]/) && stream.eat(\";\");\n }\n return ok ? \"atom\" : \"error\";\n } else {\n stream.eatWhile(/[^&<]/);\n return null;\n }\n }\n inText.isInText = true;\n\n function inTag(stream, state) {\n var ch = stream.next();\n if (ch == \">\" || (ch == \"/\" && stream.eat(\">\"))) {\n state.tokenize = inText;\n type = ch == \">\" ? \"endTag\" : \"selfcloseTag\";\n return \"tag bracket\";\n } else if (ch == \"=\") {\n type = \"equals\";\n return null;\n } else if (ch == \"<\") {\n state.tokenize = inText;\n state.state = baseState;\n state.tagName = state.tagStart = null;\n var next = state.tokenize(stream, state);\n return next ? next + \" tag error\" : \"tag error\";\n } else if (/[\\'\\\"]/.test(ch)) {\n state.tokenize = inAttribute(ch);\n state.stringStartCol = stream.column();\n return state.tokenize(stream, state);\n } else {\n stream.match(/^[^\\s\\u00a0=<>\\\"\\']*[^\\s\\u00a0=<>\\\"\\'\\/]/);\n return \"word\";\n }\n }\n\n function inAttribute(quote) {\n var closure = function(stream, state) {\n while (!stream.eol()) {\n if (stream.next() == quote) {\n state.tokenize = inTag;\n break;\n }\n }\n return \"string\";\n };\n closure.isInAttribute = true;\n return closure;\n }\n\n function inBlock(style, terminator) {\n return function(stream, state) {\n while (!stream.eol()) {\n if (stream.match(terminator)) {\n state.tokenize = inText;\n break;\n }\n stream.next();\n }\n return style;\n }\n }\n\n function doctype(depth) {\n return function(stream, state) {\n var ch;\n while ((ch = stream.next()) != null) {\n if (ch == \"<\") {\n state.tokenize = doctype(depth + 1);\n return state.tokenize(stream, state);\n } else if (ch == \">\") {\n if (depth == 1) {\n state.tokenize = inText;\n break;\n } else {\n state.tokenize = doctype(depth - 1);\n return state.tokenize(stream, state);\n }\n }\n }\n return \"meta\";\n };\n }\n\n function Context(state, tagName, startOfLine) {\n this.prev = state.context;\n this.tagName = tagName || \"\";\n this.indent = state.indented;\n this.startOfLine = startOfLine;\n if (config.doNotIndent.hasOwnProperty(tagName) || (state.context && state.context.noIndent))\n this.noIndent = true;\n }\n function popContext(state) {\n if (state.context) state.context = state.context.prev;\n }\n function maybePopContext(state, nextTagName) {\n var parentTagName;\n while (true) {\n if (!state.context) {\n return;\n }\n parentTagName = state.context.tagName;\n if (!config.contextGrabbers.hasOwnProperty(parentTagName) ||\n !config.contextGrabbers[parentTagName].hasOwnProperty(nextTagName)) {\n return;\n }\n popContext(state);\n }\n }\n\n function baseState(type, stream, state) {\n if (type == \"openTag\") {\n state.tagStart = stream.column();\n return tagNameState;\n } else if (type == \"closeTag\") {\n return closeTagNameState;\n } else {\n return baseState;\n }\n }\n function tagNameState(type, stream, state) {\n if (type == \"word\") {\n state.tagName = stream.current();\n setStyle = \"tag\";\n return attrState;\n } else if (config.allowMissingTagName && type == \"endTag\") {\n setStyle = \"tag bracket\";\n return attrState(type, stream, state);\n } else {\n setStyle = \"error\";\n return tagNameState;\n }\n }\n function closeTagNameState(type, stream, state) {\n if (type == \"word\") {\n var tagName = stream.current();\n if (state.context && state.context.tagName != tagName &&\n config.implicitlyClosed.hasOwnProperty(state.context.tagName))\n popContext(state);\n if ((state.context && state.context.tagName == tagName) || config.matchClosing === false) {\n setStyle = \"tag\";\n return closeState;\n } else {\n setStyle = \"tag error\";\n return closeStateErr;\n }\n } else if (config.allowMissingTagName && type == \"endTag\") {\n setStyle = \"tag bracket\";\n return closeState(type, stream, state);\n } else {\n setStyle = \"error\";\n return closeStateErr;\n }\n }\n\n function closeState(type, _stream, state) {\n if (type != \"endTag\") {\n setStyle = \"error\";\n return closeState;\n }\n popContext(state);\n return baseState;\n }\n function closeStateErr(type, stream, state) {\n setStyle = \"error\";\n return closeState(type, stream, state);\n }\n\n function attrState(type, _stream, state) {\n if (type == \"word\") {\n setStyle = \"attribute\";\n return attrEqState;\n } else if (type == \"endTag\" || type == \"selfcloseTag\") {\n var tagName = state.tagName, tagStart = state.tagStart;\n state.tagName = state.tagStart = null;\n if (type == \"selfcloseTag\" ||\n config.autoSelfClosers.hasOwnProperty(tagName)) {\n maybePopContext(state, tagName);\n } else {\n maybePopContext(state, tagName);\n state.context = new Context(state, tagName, tagStart == state.indented);\n }\n return baseState;\n }\n setStyle = \"error\";\n return attrState;\n }\n function attrEqState(type, stream, state) {\n if (type == \"equals\") return attrValueState;\n if (!config.allowMissing) setStyle = \"error\";\n return attrState(type, stream, state);\n }\n function attrValueState(type, stream, state) {\n if (type == \"string\") return attrContinuedState;\n if (type == \"word\" && config.allowUnquoted) {setStyle = \"string\"; return attrState;}\n setStyle = \"error\";\n return attrState(type, stream, state);\n }\n function attrContinuedState(type, stream, state) {\n if (type == \"string\") return attrContinuedState;\n return attrState(type, stream, state);\n }\n\n return {\n startState: function(baseIndent) {\n var state = {tokenize: inText,\n state: baseState,\n indented: baseIndent || 0,\n tagName: null, tagStart: null,\n context: null}\n if (baseIndent != null) state.baseIndent = baseIndent\n return state\n },\n\n token: function(stream, state) {\n if (!state.tagName && stream.sol())\n state.indented = stream.indentation();\n\n if (stream.eatSpace()) return null;\n type = null;\n var style = state.tokenize(stream, state);\n if ((style || type) && style != \"comment\") {\n setStyle = null;\n state.state = state.state(type || style, stream, state);\n if (setStyle)\n style = setStyle == \"error\" ? style + \" error\" : setStyle;\n }\n return style;\n },\n\n indent: function(state, textAfter, fullLine) {\n var context = state.context;\n // Indent multi-line strings (e.g. css).\n if (state.tokenize.isInAttribute) {\n if (state.tagStart == state.indented)\n return state.stringStartCol + 1;\n else\n return state.indented + indentUnit;\n }\n if (context && context.noIndent) return CodeMirror.Pass;\n if (state.tokenize != inTag && state.tokenize != inText)\n return fullLine ? fullLine.match(/^(\\s*)/)[0].length : 0;\n // Indent the starts of attribute names.\n if (state.tagName) {\n if (config.multilineTagIndentPastTag !== false)\n return state.tagStart + state.tagName.length + 2;\n else\n return state.tagStart + indentUnit * (config.multilineTagIndentFactor || 1);\n }\n if (config.alignCDATA && /$/,\n blockCommentStart: \"\",\n\n configuration: config.htmlMode ? \"html\" : \"xml\",\n helperType: config.htmlMode ? \"html\" : \"xml\",\n\n skipAttribute: function(state) {\n if (state.state == attrValueState)\n state.state = attrState\n },\n\n xmlCurrentTag: function(state) {\n return state.tagName ? {name: state.tagName, close: state.type == \"closeTag\"} : null\n },\n\n xmlCurrentContext: function(state) {\n var context = []\n for (var cx = state.context; cx; cx = cx.prev)\n context.push(cx.tagName)\n return context.reverse()\n }\n };\n});\n\nCodeMirror.defineMIME(\"text/xml\", \"xml\");\nCodeMirror.defineMIME(\"application/xml\", \"xml\");\nif (!CodeMirror.mimeModes.hasOwnProperty(\"text/html\"))\n CodeMirror.defineMIME(\"text/html\", {name: \"xml\", htmlMode: true});\n\n});\n","/**\n * Utility module to work with Arrays.\n *\n * @module array\n */\n\n/**\n * Return the last element of an array. The element must exist\n *\n * @template L\n * @param {Array} arr\n * @return {L}\n */\nexport const last = arr => arr[arr.length - 1]\n\n/**\n * @template C\n * @return {Array}\n */\nexport const create = () => /** @type {Array} */ ([])\n\n/**\n * @template D\n * @param {Array} a\n * @return {Array}\n */\nexport const copy = a => /** @type {Array} */ (a.slice())\n\n/**\n * Append elements from src to dest\n *\n * @template M\n * @param {Array} dest\n * @param {Array} src\n */\nexport const appendTo = (dest, src) => {\n for (let i = 0; i < src.length; i++) {\n dest.push(src[i])\n }\n}\n\n/**\n * Transforms something array-like to an actual Array.\n *\n * @function\n * @template T\n * @param {ArrayLike|Iterable} arraylike\n * @return {T}\n */\nexport const from = Array.from\n\n/**\n * True iff condition holds on every element in the Array.\n *\n * @function\n * @template ITEM\n *\n * @param {Array} arr\n * @param {function(ITEM, number, Array):boolean} f\n * @return {boolean}\n */\nexport const every = (arr, f) => arr.every(f)\n\n/**\n * True iff condition holds on some element in the Array.\n *\n * @function\n * @template S\n * @param {Array} arr\n * @param {function(S, number, Array):boolean} f\n * @return {boolean}\n */\nexport const some = (arr, f) => arr.some(f)\n\n/**\n * @template ELEM\n *\n * @param {Array} a\n * @param {Array} b\n * @return {boolean}\n */\nexport const equalFlat = (a, b) => a.length === b.length && every(a, (item, index) => item === b[index])\n\n/**\n * @template ELEM\n * @param {Array>} arr\n * @return {Array}\n */\nexport const flatten = arr => arr.reduce((acc, val) => acc.concat(val), [])\n\nexport const isArray = Array.isArray\n","/**\n * Common functions and function call helpers.\n *\n * @module function\n */\n\nimport * as array from './array.js'\nimport * as object from './object.js'\n\n/**\n * Calls all functions in `fs` with args. Only throws after all functions were called.\n *\n * @param {Array} fs\n * @param {Array} args\n */\nexport const callAll = (fs, args, i = 0) => {\n try {\n for (; i < fs.length; i++) {\n fs[i](...args)\n }\n } finally {\n if (i < fs.length) {\n callAll(fs, args, i + 1)\n }\n }\n}\n\nexport const nop = () => {}\n\n/**\n * @template T\n * @param {function():T} f\n * @return {T}\n */\nexport const apply = f => f()\n\n/**\n * @template A\n *\n * @param {A} a\n * @return {A}\n */\nexport const id = a => a\n\n/**\n * @template T\n *\n * @param {T} a\n * @param {T} b\n * @return {boolean}\n */\nexport const equalityStrict = (a, b) => a === b\n\n/**\n * @template T\n *\n * @param {Array|object} a\n * @param {Array|object} b\n * @return {boolean}\n */\nexport const equalityFlat = (a, b) => a === b || (a != null && b != null && a.constructor === b.constructor && ((a instanceof Array && array.equalFlat(a, /** @type {Array} */ (b))) || (typeof a === 'object' && object.equalFlat(a, b))))\n\n/**\n * @param {any} a\n * @param {any} b\n * @return {boolean}\n */\nexport const equalityDeep = (a, b) => {\n if (a == null || b == null) {\n return equalityStrict(a, b)\n }\n if (a.constructor !== b.constructor) {\n return false\n }\n if (a === b) {\n return true\n }\n switch (a.constructor) {\n case ArrayBuffer:\n a = new Uint8Array(a)\n b = new Uint8Array(b)\n // eslint-disable-next-line no-fallthrough\n case Uint8Array: {\n if (a.byteLength !== b.byteLength) {\n return false\n }\n for (let i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) {\n return false\n }\n }\n break\n }\n case Set: {\n if (a.size !== b.size) {\n return false\n }\n for (const value of a) {\n if (!b.has(value)) {\n return false\n }\n }\n break\n }\n case Map: {\n if (a.size !== b.size) {\n return false\n }\n for (const key of a.keys()) {\n if (!b.has(key) || !equalityDeep(a.get(key), b.get(key))) {\n return false\n }\n }\n break\n }\n case Object:\n if (object.length(a) !== object.length(b)) {\n return false\n }\n for (const key in a) {\n if (!object.hasProperty(a, key) || !equalityDeep(a[key], b[key])) {\n return false\n }\n }\n break\n case Array:\n if (a.length !== b.length) {\n return false\n }\n for (let i = 0; i < a.length; i++) {\n if (!equalityDeep(a[i], b[i])) {\n return false\n }\n }\n break\n default:\n return false\n }\n return true\n}\n\n/**\n * @template V\n * @template {V} OPTS\n *\n * @param {V} value\n * @param {Array} options\n */\n// @ts-ignore\nexport const isOneOf = (value, options) => options.includes(value)\n","/**\n * Utility module to work with key-value stores.\n *\n * @module map\n */\n\n/**\n * Creates a new Map instance.\n *\n * @function\n * @return {Map}\n *\n * @function\n */\nexport const create = () => new Map()\n\n/**\n * Copy a Map object into a fresh Map object.\n *\n * @function\n * @template X,Y\n * @param {Map} m\n * @return {Map}\n */\nexport const copy = m => {\n const r = create()\n m.forEach((v, k) => { r.set(k, v) })\n return r\n}\n\n/**\n * Get map property. Create T if property is undefined and set T on map.\n *\n * ```js\n * const listeners = map.setIfUndefined(events, 'eventName', set.create)\n * listeners.add(listener)\n * ```\n *\n * @function\n * @template T,K\n * @param {Map} map\n * @param {K} key\n * @param {function():T} createT\n * @return {T}\n */\nexport const setIfUndefined = (map, key, createT) => {\n let set = map.get(key)\n if (set === undefined) {\n map.set(key, set = createT())\n }\n return set\n}\n\n/**\n * Creates an Array and populates it with the content of all key-value pairs using the `f(value, key)` function.\n *\n * @function\n * @template K\n * @template V\n * @template R\n * @param {Map} m\n * @param {function(V,K):R} f\n * @return {Array}\n */\nexport const map = (m, f) => {\n const res = []\n for (const [key, value] of m) {\n res.push(f(value, key))\n }\n return res\n}\n\n/**\n * Tests whether any key-value pairs pass the test implemented by `f(value, key)`.\n *\n * @todo should rename to some - similarly to Array.some\n *\n * @function\n * @template K\n * @template V\n * @param {Map} m\n * @param {function(V,K):boolean} f\n * @return {boolean}\n */\nexport const any = (m, f) => {\n for (const [key, value] of m) {\n if (f(value, key)) {\n return true\n }\n }\n return false\n}\n\n/**\n * Tests whether all key-value pairs pass the test implemented by `f(value, key)`.\n *\n * @function\n * @template K\n * @template V\n * @param {Map} m\n * @param {function(V,K):boolean} f\n * @return {boolean}\n */\nexport const all = (m, f) => {\n for (const [key, value] of m) {\n if (!f(value, key)) {\n return false\n }\n }\n return true\n}\n","/**\n * Common Math expressions.\n *\n * @module math\n */\n\nexport const floor = Math.floor\nexport const ceil = Math.ceil\nexport const abs = Math.abs\nexport const imul = Math.imul\nexport const round = Math.round\nexport const log10 = Math.log10\nexport const log2 = Math.log2\nexport const log = Math.log\nexport const sqrt = Math.sqrt\n\n/**\n * @function\n * @param {number} a\n * @param {number} b\n * @return {number} The sum of a and b\n */\nexport const add = (a, b) => a + b\n\n/**\n * @function\n * @param {number} a\n * @param {number} b\n * @return {number} The smaller element of a and b\n */\nexport const min = (a, b) => a < b ? a : b\n\n/**\n * @function\n * @param {number} a\n * @param {number} b\n * @return {number} The bigger element of a and b\n */\nexport const max = (a, b) => a > b ? a : b\n\nexport const isNaN = Number.isNaN\n\nexport const pow = Math.pow\n/**\n * Base 10 exponential function. Returns the value of 10 raised to the power of pow.\n *\n * @param {number} exp\n * @return {number}\n */\nexport const exp10 = exp => Math.pow(10, exp)\n\nexport const sign = Math.sign\n\n/**\n * @param {number} n\n * @return {boolean} Wether n is negative. This function also differentiates between -0 and +0\n */\nexport const isNegativeZero = n => n !== 0 ? n < 0 : 1 / n < 0\n","/**\n * Utility functions for working with EcmaScript objects.\n *\n * @module object\n */\n\n/**\n * @return {Object} obj\n */\nexport const create = () => Object.create(null)\n\n/**\n * Object.assign\n */\nexport const assign = Object.assign\n\n/**\n * @param {Object} obj\n */\nexport const keys = Object.keys\n\n/**\n * @param {Object} obj\n * @param {function(any,string):any} f\n */\nexport const forEach = (obj, f) => {\n for (const key in obj) {\n f(obj[key], key)\n }\n}\n\n/**\n * @template R\n * @param {Object} obj\n * @param {function(any,string):R} f\n * @return {Array}\n */\nexport const map = (obj, f) => {\n const results = []\n for (const key in obj) {\n results.push(f(obj[key], key))\n }\n return results\n}\n\n/**\n * @param {Object} obj\n * @return {number}\n */\nexport const length = obj => keys(obj).length\n\n/**\n * @param {Object} obj\n * @param {function(any,string):boolean} f\n * @return {boolean}\n */\nexport const some = (obj, f) => {\n for (const key in obj) {\n if (f(obj[key], key)) {\n return true\n }\n }\n return false\n}\n\n/**\n * @param {Object} obj\n * @param {function(any,string):boolean} f\n * @return {boolean}\n */\nexport const every = (obj, f) => {\n for (const key in obj) {\n if (!f(obj[key], key)) {\n return false\n }\n }\n return true\n}\n\n/**\n * Calls `Object.prototype.hasOwnProperty`.\n *\n * @param {any} obj\n * @param {string|symbol} key\n * @return {boolean}\n */\nexport const hasProperty = (obj, key) => Object.prototype.hasOwnProperty.call(obj, key)\n\n/**\n * @param {Object} a\n * @param {Object} b\n * @return {boolean}\n */\nexport const equalFlat = (a, b) => a === b || (length(a) === length(b) && every(a, (val, key) => (val !== undefined || hasProperty(b, key)) && b[key] === val))\n","/**\n * Observable class prototype.\n *\n * @module observable\n */\n\nimport * as map from './map.js'\nimport * as set from './set.js'\nimport * as array from './array.js'\n\n/**\n * Handles named events.\n *\n * @template N\n */\nexport class Observable {\n constructor () {\n /**\n * Some desc.\n * @type {Map}\n */\n this._observers = map.create()\n }\n\n /**\n * @param {N} name\n * @param {function} f\n */\n on (name, f) {\n map.setIfUndefined(this._observers, name, set.create).add(f)\n }\n\n /**\n * @param {N} name\n * @param {function} f\n */\n once (name, f) {\n /**\n * @param {...any} args\n */\n const _f = (...args) => {\n this.off(name, _f)\n f(...args)\n }\n this.on(name, _f)\n }\n\n /**\n * @param {N} name\n * @param {function} f\n */\n off (name, f) {\n const observers = this._observers.get(name)\n if (observers !== undefined) {\n observers.delete(f)\n if (observers.size === 0) {\n this._observers.delete(name)\n }\n }\n }\n\n /**\n * Emit a named event. All registered event listeners that listen to the\n * specified name will receive the event.\n *\n * @todo This should catch exceptions\n *\n * @param {N} name The event name.\n * @param {Array} args The arguments that are applied to the event listener.\n */\n emit (name, args) {\n // copy all listeners to an array first to make sure that no event is emitted to listeners that are subscribed while the event handler is called.\n return array.from((this._observers.get(name) || map.create()).values()).forEach(f => f(...args))\n }\n\n destroy () {\n this._observers = map.create()\n }\n}\n","/**\n * Utility module to work with sets.\n *\n * @module set\n */\n\nexport const create = () => new Set()\n\n/**\n * @template T\n * @param {Set} set\n * @return {Array}\n */\nexport const toArray = set => Array.from(set)\n\n/**\n * @template T\n * @param {Set} set\n * @return {T}\n */\nexport const first = set => {\n return set.values().next().value || undefined\n}\n\n/**\n * @template T\n * @param {Iterable} entries\n * @return {Set}\n */\nexport const from = entries => {\n return new Set(entries)\n}\n"],"names":["createTimeoutClass","clearFunction","constructor","timeoutId","this","_","destroy","clearTimeout","clearInterval","arg","requestAnimationFrame","cancelAnimationFrame","cancelIdleCallback","cmOrigin","createEmptyLinePlaceholder","color","placeholder","document","createElement","setAttribute","emptyTxt","insertBefore","createTextNode","sel","CodemirrorBinding","textType","codeMirror","awareness","yUndoManager","super","doc","cmDoc","getDoc","type","cm","_onStackItemAdded","stackItem","changedParentTypes","has","_beforeChangeSelection","meta","set","_onStackItemPopped","get","anchor","index","head","setSelection","posFromIndex","_beforeChange","trackedOrigins","add","editorUndo","endOperation","undo","startOperation","editorRedo","redo","addKeyMap","on","_mux","token","f","g","undefined","createMutex","setValue","toString","_typeObserver","event","binding","getEditor","indexFromPos","getCursor","switchSel","tmp","performChange","delta","i","length","d","retain","insert","pos","replaceRange","delete","math","start","end","operation","scroll","typeObserver","_targetObserver","instance","changes","transact","hasPaste","some","change","origin","stopCapturing","a","b","left","right","remove","slice","getValue","from","delLen","removed","map","s","reduce","text","join","_pendingCursorEvent","emit","targetObserver","_cursors","Map","_changedCursors","Set","_debounceCursorEvent","timeout","timer","setTimeout","_awarenessListener","clientId","clientID","added","forEach","updated","size","y","cursors","aw","getStates","m","caret","clear","user","name","cursor","JSON","parse","headpos","anchorpos","to","caretEl","username","classList","userDiv","createRemoteCaret","awCursor","line","ch","push","markText","css","inclusiveRight","inclusiveLeft","setBookmark","widget","insertLeft","updateRemoteSelection","_cursorListener","getLocalState","hasFocus","display","wrapper","ownerDocument","newAnchor","newHead","currentAnchor","currentHead","setLocalStateField","stringify","codemirrorCursorActivity","_blurListeer","observe","unobserve","off","CodeMirror","noOptions","nonWS","Pos","cmp","cmpPos","firstNonWS","str","found","search","getMode","mode","useInnerComments","innerMode","getModeAt","commands","toggleComment","defineExtension","options","minLine","Infinity","ranges","listSelections","uncomment","lineComment","self","firstLine","getLine","test","getTokenTypeAt","commentString","Math","min","lastLine","pad","padding","blankLines","commentBlankLines","indent","baseString","whitespace","cut","blockCommentStart","fullLines","blockComment","startString","endString","blockCommentEnd","lastLineHasText","lead","blockCommentLead","atCursor","empty","somethingSelected","didSomething","lineString","lines","indexOf","endPos","startLine","open","endLine","close","insideStart","insideEnd","getRange","lastStart","lastIndexOf","firstEnd","almostLastStart","openEnd","foundEnd","mod","drawRulers","state","rulerDiv","textContent","val","getOption","cw","defaultCharWidth","charCoords","style","minHeight","scroller","offsetHeight","elt","className","col","conf","column","borderColor","lineStyle","borderLeftStyle","width","borderLeftWidth","appendChild","defineOption","parentElement","removeChild","lineSpace","defaults","pairs","closeBefore","triples","explode","old","Init","removeKeyMap","keyMap","closeBrackets","ensureBound","Backspace","getConfig","Pass","around","charsAround","cur","Enter","linesep","lineSeparator","replaceSelection","moveSel","indentLine","chars","charAt","key","handler","identical","opening","curType","range","next","prev","isWordChar","stringStartsAfter","sels","getSelections","replaceSelections","contractSelection","setSelections","triggerElectric","handleChar","deflt","override","dir","newRanges","primary","inverted","getTokenAt","removeOverlay","addOverlay","stream","l","string","registerHelper","tokenType","lineText","findOpening","openCh","at","pass","startToken","endToken","startCh","startBrace","startBracket","endCh","count","outer","nextOpen","nextClose","hasImport","e","semi","clipPos","hasInclude","registerGlobalHelper","depth","doFold","force","call","finder","minSize","allowFolded","marks","findMarksAt","__isFold","cleared","myWidget","cloneNode","makeWidget","myRange","e_preventDefault","replacedWith","clearOnEnter","signal","newFoldFunction","rangeFinder","toggleFold","foldCode","fold","unfold","foldAll","unfoldAll","funcs","Array","prototype","arguments","helpers","getHelpers","defaultOptions","auto","minFoldSize","scanUp","editorOptions","foldOptions","opts","clearGutter","foldGutter","gutter","onGutterClick","onChange","onViewportChange","onFold","State","indicatorOpen","indicatorFolded","updateInViewport","isFolded","findMarks","fromPos","find","marker","spec","updateFoldInfo","foldOption","func","clsFolded","classTest","clsOpen","eachLine","mark","gutterMarkers","setGutterMarker","cls","RegExp","vp","getViewport","folded","changeUpdate","foldOnChangeTimeSpan","updateViewportTimeSpan","lineIndent","lineNo","spaceTo","countColumn","myIndent","lastLineInFold","isHeader","tokentype","headerLevel","nextLine","match","level","lastLineNo","nextNextLine","nameStartChar","xmlTagStart","Iter","max","tagAt","iter","prevLine","toTagEnd","gt","lastSlash","selfClose","toTagStart","lt","lastIndex","exec","toNextTag","toPrevTag","findMatchingClose","tag","stack","findMatchingOpen","openTag","startPos","findMatchingTag","here","findEnclosingTag","scanForClosingTag","multiplexingMode","others","pattern","returnEnd","startState","innerActive","inner","startingInner","copyState","curInner","oldContent","sol","parseDelimiters","delimStyle","innerToken","innerStyle","cutOff","other","outerIndent","possibleOuterIndent","outerToken","textAfter","blankLine","electricChars","overlayMode","base","overlay","combine","basePos","baseCur","overlayPos","overlayCur","streamSeen","combineTokens","baseToken","overlayToken","ensureState","states","hasOwnProperty","Error","toRegex","flags","ignoreCase","unicode","source","String","Rule","data","regex","apply","replace","result","asToken","tokenFunction","config","pending","pend","shift","local","tok","localState","endScan","current","curState","rule","matches","pop","enterLocalMode","indentation","indentUnit","dedent","j","backUp","props","prop","pers","persistent","p","persistentStates","lState","forceEnd","indentFunction","dontIndentStates","arr","rules","scan","dedentIfLineStart","defineSimpleMode","defineMode","simpleMode","states_","hasIndentation","list","orig","runMode","modespec","callback","tabSize","ie_lt9","navigator","userAgent","documentMode","node","innerHTML","content","idx","sp","splitLines","StringStream","lookAhead","n","eol","changeEnd","updateBottomMargin","lineCount","clientHeight","getLineHandle","height","scrollPastEndPadding","parentNode","paddingBottom","setSize","interpretLine","num","Number","bottom","jumpToLine","shortText","openDialog","value","selectValueOnOpen","prompt","dialog","phrase","getJumpDialog","posStr","setCursor","round","SearchState","posFrom","posTo","lastQuery","query","getSearchState","queryCaseInsensitive","toLowerCase","getSearchCursor","caseFold","multiline","parseString","parseQuery","isRE","startSearch","queryText","caseInsensitive","global","skipToEnd","searchOverlay","showMatchesOnScrollbar","annotate","doSearch","rev","immediate","findNext","q","getSelection","hiding","searchNext","e_stop","opacity","shiftKey","querySelector","getBoundingClientRect","cursorCoords","top","onEnter","onKeyDown","closeOnEnter","onClose","clearSearch","persistentDialog","getQueryDialog","keyName","extra","cmd","execCommand","scrollIntoView","replaceAll","all","dialogText","getReplaceQueryDialog","getReplacementQueryDialog","advance","fs","openConfirm","confirm","confirmDialog","getDoReplaceConfirm","doReplace","findPersistent","findPersistentNext","findPersistentPrev","findPrev","WRAP_CLASS","BACK_CLASS","GUTT_CLASS","clearActiveLines","activeLines","removeLineClass","updateActiveLines","active","option","nonEmpty","getLineHandleVisualStart","sameArray","addLineClass","selectionChange","onCursorActivity","markedSelection","reset","array","coverRange","coverStart","coverEnd","update","markedSelectionStyle","addAt","atEnd","splice","selectionPointer","rects","scheduleUpdate","willUpdate","mouseX","selectionDiv","firstChild","nextSibling","inside","rect","mouseY","lineDiv","getWrapperElement","mousemove","mouseout","window","windowScroll","buttons","which","clientX","clientY","contains","relatedTarget","cmds","posEq","killRing","addToRing","getFromRing","lastKill","_kill","ring","isClean","gen","growRingTop","changeGeneration","byChar","findPosH","byWord","byLine","findPosV","goalColumn","byPage","byParagraph","no","sawText","fst","lst","bySentence","sawWord","byExpr","wrap","findMatchingBracket","strict","forward","first","after","newPos","getPrefix","precise","digits","emacsPrefix","clearPrefix","repeated","prefix","findEnd","by","move","extendSelection","motion","killTo","selections","_killRegion","selection","addPrefix","digit","maybeClearPrefix","maybeDuplicateInput","prefixPreservingKeys","emacsPrefixMap","dup","one","txt","maybeRemovePrefixMap","prefixMap","clearMark","setExtending","getInput","msg","fragment","createDocumentFragment","input","makePrompt","operateOnWord","op","setMark","getExtending","killRegion","killLineEmacs","killRingSave","yank","yankPop","forwardChar","backwardChar","deleteChar","deleteForwardChar","deleteBackwardChar","forwardWord","backwardWord","killWord","backwardKillWord","previousLine","scrollDownCommand","scrollUpCommand","backwardParagraph","forwardParagraph","backwardSentence","forwardSentence","killSentence","backwardKillSentence","killSexp","backwardKillSexp","forwardSexp","backwardSexp","markSexp","transposeSexps","leftStart","leftEnd","rightEnd","rightStart","backwardUpList","justOneSpace","openLine","transposeCharsRepeatable","capitalizeWord","w","letter","toUpperCase","upcaseWord","downcaseWord","undoRepeatable","keyboardQuit","newline","gotoLine","isNaN","indentRigidly","indentSelection","exchangePointAndMark","quotedInsertTab","universalArgument","emacs","kill","normalizeKeyMap","regPrefix","moveSubword","extendSelectionsBy","extend","cat","findPosSubword","insertLine","above","isReadOnly","len","newSelection","last","wordAt","word","addCursorToSelection","newRange","goSubwordLeft","goSubwordRight","scrollLineUp","info","getScrollInfo","visibleBottomLine","lineAtHeight","scrollTo","defaultTextHeight","scrollLineDown","visibleTopLine","splitSelectionByLine","lineRanges","singleSelectionTop","selectLine","extended","insertLineAfter","insertLineBefore","selectNextOccurrence","fullWord","sublimeFindFullWord","isSelectedRange","addSelection","skipAndSelectNextOccurrence","prevAnchor","prevHead","filter","addCursorToPrevLine","addCursorToNextLine","mirror","selectBetweenBrackets","scanForBracket","closing","puncType","sortLines","caseSensitive","direction","selected","toSort","sort","au","bu","modifyWordOrSelection","indices","replacements","getTarget","findAndGoTo","target","findPrevious","selectScope","goToBracket","swapLineUp","linesToMove","newSels","swapLineDown","toggleCommentIndented","joinLines","joined","offset","obj","actual","duplicateLine","rangeCount","reverseSortLines","sortLinesInsensitive","reverseSortLinesInsensitive","nextBookmark","sublimeBookmarks","prevBookmark","unshift","toggleBookmark","sublimeBookmark","k","clearWhenEmpty","clearBookmarks","selectBookmarks","smartBackspace","toStartOfLine","deletePos","prevIndent","findColumn","delLineRight","upcaseAtCursor","downcaseAtCursor","setSublimeMark","sublimeMark","selectToSublimeMark","deleteToSublimeMark","sublimeKilled","swapWithSublimeMark","sublimeYank","showInCenter","findUnder","findUnderPrevious","findAllUnder","primaryIndex","macSublime","pcSublime","mac","default","macDefault","sublime","Context","indented","align","pushContext","context","popContext","t","typeBefore","prevToken","typeAtEndOfLine","isTopScope","words","split","propertyIsEnumerable","parserConfig","curPunc","isDefKeyword","statementIndentUnit","dontAlignCalls","keywords","types","builtin","blockKeywords","defKeywords","atoms","hooks","multiLineStrings","indentStatements","indentSwitch","namespaceSeparator","isPunctuationChar","numberStart","number","isOperatorChar","isIdentifierChar","isReservedIdentifier","tokenBase","quote","tokenize","escaped","eat","tokenComment","eatWhile","maybeEnd","maybeEOL","typeFirstDefinitions","basecolumn","startOfLine","ctx","eatSpace","styleDefs","firstChar","dontIndentStatements","hook","switchBlock","allmanIndentation","electricInput","blockCommentContinue","cKeywords","cppKeywords","objCKeywords","objCBuiltins","basicCTypes","basicObjCTypes","cTypes","identifier","objCTypes","cBlockKeywords","cDefKeywords","cppHook","peek","pointerHook","_stream","cIsReservedIdentifier","cpp14Literal","cpp11StringHook","cpp11RawStringDelim","tokenRawString","cppLooksLikeConstructor","lastTwo","tokenAtString","delim","def","mimes","helperType","defineMIME","tokenTripleString","tokenNestedComment","modeProps","cx","intendSwitch","tripleString","skipTo","stringTokenizer","tokenCeylonString","keySet","keys","inline","propertyKeywords","resolveMode","tokenHooks","documentTypes","mediaTypes","mediaFeatures","mediaValueKeywords","nonStandardPropertyKeywords","fontProperties","counterDescriptors","colorKeywords","valueKeywords","allowNested","supportsAtComponent","highlightNonStandardPropertyKeywords","ret","tp","tokenString","tokenParenthesized","popAndPass","wordAsValue","stateArg","atBlock","documentTypes_","mediaTypes_","mediaFeatures_","mediaValueKeywords_","propertyKeywords_","nonStandardPropertyKeywords_","colorKeywords_","valueKeywords_","allWords","concat","tokenCComment","urlRE","modeConfig","codeDepth","gfmOverlay","code","codeBlock","ateSpace","before","difference","gitHubSpice","markdownConfig","taskLists","strikethrough","emoji","attr","statementIndent","jsonldMode","jsonld","jsonMode","json","trackScope","isTS","typescript","wordRE","wordCharacters","kw","A","B","C","D","operator","atom","isJsonldKeyword","cont","expressionAllowed","inSet","readRegexp","tokenQuasi","lexical","lastType","findFatArrow","fatArrowAt","arrow","sawSomething","bracket","atomicTypes","JSLexical","inScope","varname","v","localVars","vars","parseJS","cc","marked","expression","statement","lex","inList","register","block","newContext","registerVarScoped","Var","globalVars","isModifier","defaultVars","pushcontext","pushblockcontext","popcontext","pushlex","poplex","expect","wanted","exp","vardef","parenExpr","maybeexpression","maybeelse","functiondef","forspec","enumdef","typename","typeexpr","maybelabel","maybeCatchBinding","afterExport","afterImport","funarg","expressionInner","expressionNoComma","noComma","body","arrowBodyNoComma","arrowBody","commasep","maybeop","maybeoperatorNoComma","maybeoperatorComma","classExpression","arrayLiteral","contCommasep","objprop","quasi","targetNoComma","maybeTypeArgs","maybeTarget","me","expr","property","continueQuasi","getterSetter","afterprop","maybetype","what","sep","proceed","maybetypeOrIn","mayberettype","isKW","afterType","typeprops","typearg","maybeReturnType","quasiType","typeprop","functiondecl","continueQuasiType","typeparam","maybeTypeDefault","maybeAssign","vardefCont","eltpattern","proppattern","_type","forspec1","forspec2","classNameAfter","classBody","classfield","maybeFrom","exportField","importSpec","maybeMoreImports","maybeAs","enummember","c","isContinuedStatement","doubleIndentSwitch","skipExpression","copyContext","xmlMode","allowMissing","multilineTagIndentPastTag","allowMissingTagName","jsMode","flatXMLIndent","tagName","skipAttribute","xmlContext","stop","xmlToken","jsToken","fullLine","parserConf","wordRegexp","operators","delimiters","identifiers","keywordsList","builtinsList","openers","closers","builtins","macro","symbol","stringPrefixes","inArray","nestedArrays","currentScope","scopes","leavingExpr","nestedGenerators","inGenerator","lastToken","tokenAnnotation","imMatcher","numberLiteral","tokenChar","delimiter","substr","tokenStringFactory","isDefinition","nestedParameters","nestedComments","isChar","parseInt","firstParenPos","cmCfg","modeCfg","htmlMode","htmlModeMissing","highlightFormatting","maxBlockquoteDepth","fencedCodeBlockHighlighting","fencedCodeBlockDefaultMode","xml","tokenTypeOverrides","tokenTypes","header","list1","list2","list3","hr","image","imageAltText","imageMarker","formatting","linkInline","linkEmail","linkText","linkHref","em","strong","hrRE","listRE","taskListRE","atxHeaderRE","allowAtxHeaderWithoutSpace","setextHeaderRE","textRE","fencedCodeRE","linkDefRE","punctuation","switchInline","linkTitle","indentedCode","htmlBlock","exit","htmlState","tagStart","isInText","inlineNormal","blockNormal","trailingSpace","trailingSpaceNewLine","thisLine","firstTokenOnLine","prevLineLineIsEmpty","prevLineIsIndentedCode","prevLineIsHr","prevLineIsList","maxNonCodeIndentation","listStack","lineIndentation","indentationDiff","allowsInlineContinuation","fencedCodeEnd","isHr","getType","setext","listType","taskList","fencedEndRE","localMode","findModeByName","mime","footnoteLink","md_inside","returnType","currListInd","hasExitedList","maxFencedEndInd","styles","taskOpen","taskClosed","listMod","handleText","matchCh","previousFormatting","formattingEscape","atts","substring","leftFlanking","rightFlanking","setEm","setStrong","retType","endChar","returnState","linkRE","footnoteLinkInside","footnoteUrl","modeInfo","ext","file","alias","findModeByMIME","findModeByExtension","findModeByFileName","filename","dot","wordOperators","commonKeywords","commonBuiltins","ERRORCLASS","singleDelimiters","singleOperators","doubleOperators","doubleDelimiters","tripleDelimiters","hangingIndent","myKeywords","myBuiltins","extra_keywords","extra_builtins","py3","version","scopeOffset","lineOffset","pushPyScope","errorToken","tokenBaseInner","inFormat","floatLiteral","intLiteral","tokenOuter","singleline","OUTCLASS","tokenNestedExpr","singleLineStringErrors","isString","formatStringFactory","tokenLexer","beginningOfLine","lambda","delimiter_index","pushBracketScope","addErr","scope","wordObj","res","commonAtoms","blockkeywords","opChars","argList","setFlag","flag","afterIdent","define","dict","commonCommands","tokens","tokenDollar","heredoc","tokenStringStart","hookIdentifier","hookVar","hookClient","client","defaultBuiltin","sqlKeywords","operatorChars","support","dateSQL","backslashStringEscapes","brackets","hexNumber","binaryNumber","charCodeAt","decimallessFloat","doubleQuote","tokenLiteral","nCharCast","charsetCast","escapeConstant","commentSlashSlash","commentHash","commentSpaceRequired","zerolessFloat","ODBCdotTable","backslashEscapes","identifierQuote","_config","pushCommand","command","cmdState","peekCommand","addPluginPattern","pluginName","cmdStyle","bracketNo","argument","styleIdentifier","openBracket","closeBracket","plugins","setState","normal","plug","cmdName","beginParams","inMathMode","getMostPowerful","endModeSeq","popCommand","htmlConfig","autoSelfClosers","implicitlyClosed","contextGrabbers","doNotIndent","allowUnquoted","xmlConfig","editorConf","config_","setStyle","inText","chain","parser","inBlock","doctype","inTag","closure","baseState","isInAttribute","stringStartCol","terminator","noIndent","maybePopContext","nextTagName","parentTagName","tagNameState","closeTagNameState","attrState","matchClosing","closeState","closeStateErr","attrEqState","attrValueState","attrContinuedState","baseIndent","multilineTagIndentFactor","alignCDATA","tagAfter","grabbers","configuration","xmlCurrentTag","xmlCurrentContext","reverse","mimeModes","appendTo","dest","src","equalFlat","item","every","isArray","callAll","args","equalityFlat","equalityDeep","equalityStrict","ArrayBuffer","Uint8Array","byteLength","Object","isOneOf","includes","create","copy","r","setIfUndefined","createT","any","floor","abs","ceil","imul","log10","log2","log","sqrt","pow","isNegativeZero","sign","assign","results","hasProperty","Observable","_observers","once","_f","observers","values"],"sourceRoot":""} \ No newline at end of file diff --git a/_static/build/5880.68f975b.js b/_static/build/5880.68f975b.js new file mode 100644 index 0000000..e12fe44 --- /dev/null +++ b/_static/build/5880.68f975b.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[5880,9035],{59035:(e,t,r)=>{r.r(t),r.d(t,{default:()=>l});var a=r(67504),n=r(2814),o=r(60192),c=r(15786),d=r(4265);const s="jp-mod-searchable",i={id:"@jupyterlab/documentsearch:labShellWidgetListener",requires:[a.ILabShell,o.ISearchProviderRegistry],autoStart:!0,activate:(e,t,r)=>{const a=e=>{if(!e)return;const t=r.getProviderForWidget(e);t&&e.addClass(s),t||e.removeClass(s)};r.changed.connect((()=>a(t.activeWidget))),t.activeChanged.connect(((e,t)=>{const r=t.oldValue;r&&r.removeClass(s),a(t.newValue)}))}},l=[{id:"@jupyterlab/documentsearch:plugin",provides:o.ISearchProviderRegistry,requires:[d.ITranslator],optional:[n.ICommandPalette,c.ISettingRegistry],autoStart:!0,activate:(e,t,r,a)=>{const n=t.load("jupyterlab");let c=500;const d=new o.SearchProviderRegistry;d.register("jp-notebookSearchProvider",o.NotebookSearchProvider),d.register("jp-codeMirrorSearchProvider",o.CodeMirrorSearchProvider);const s=new Map,i="documentsearch:start",l="documentsearch:highlightNext",h="documentsearch:highlightPrevious";if(a){const t=a.load("@jupyterlab/documentsearch-extension:plugin"),r=e=>{c=e.get("searchDebounceTime").composite};Promise.all([t,e.restored]).then((([e])=>{r(e),e.changed.connect((e=>{r(e)}))})).catch((e=>{console.error(e.message)}))}const u=()=>{const t=e.shell.currentWidget;return!!t&&void 0!==d.getProviderForWidget(t)},m=()=>{const r=e.shell.currentWidget;if(!r)return;const a=r.id;let n=s.get(a);if(!n){const i=d.getProviderForWidget(r);if(!i)return;n=new o.SearchInstance(r,i,t,c),s.set(a,n),e.commands.notifyCommandChanged(),n.disposed.connect((()=>{s.delete(a),e.commands.notifyCommandChanged()}))}return n};return e.commands.addCommand(i,{label:n.__("Find…"),isEnabled:u,execute:e=>{const t=m();if(t){const r=e.searchText;r&&t.setSearchText(r),t.focusInput()}}}),e.commands.addCommand("documentsearch:startWithReplace",{label:n.__("Find and Replace…"),isEnabled:u,execute:e=>{const t=m();if(t){const r=e.searchText;r&&t.setSearchText(r);const a=e.replaceText;a&&t.setReplaceText(a),t.showReplace(),t.focusInput()}}}),e.commands.addCommand(l,{label:n.__("Find Next"),isEnabled:()=>{const t=e.shell.currentWidget;return!!t&&s.has(t.id)},execute:async()=>{const t=e.shell.currentWidget;if(!t)return;const r=s.get(t.id);r&&(await r.provider.highlightNext(),r.updateIndices())}}),e.commands.addCommand(h,{label:n.__("Find Previous"),isEnabled:()=>{const t=e.shell.currentWidget;return!!t&&s.has(t.id)},execute:async()=>{const t=e.shell.currentWidget;if(!t)return;const r=s.get(t.id);r&&(await r.provider.highlightPrevious(),r.updateIndices())}}),r&&(r.addItem({command:i,category:n.__("Main Area")}),r.addItem({command:l,category:n.__("Main Area")}),r.addItem({command:h,category:n.__("Main Area")})),d}},i]}}]); +//# sourceMappingURL=5880.68f975b.js.map \ No newline at end of file diff --git a/_static/build/5880.68f975b.js.map b/_static/build/5880.68f975b.js.map new file mode 100644 index 0000000..4447625 --- /dev/null +++ b/_static/build/5880.68f975b.js.map @@ -0,0 +1 @@ +{"version":3,"file":"5880.68f975b.js","mappings":"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","sources":["webpack://_JUPYTERLAB.CORE_OUTPUT/../src/index.ts"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/_static/build/5955.88508f7.js b/_static/build/5955.88508f7.js new file mode 100644 index 0000000..54b496d --- /dev/null +++ b/_static/build/5955.88508f7.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[5955,2358],{22358:(e,t,i)=>{i.r(t),i.d(t,{IMarkdownViewerTracker:()=>n,MarkdownDocument:()=>_,MarkdownViewer:()=>u,MarkdownViewerFactory:()=>m});var r=i(26169);const n=new r.Token("@jupyterlab/markdownviewer:IMarkdownViewerTracker");var s=i(2814),o=i(55941),a=i(985),d=i(20040),h=i(4265),c=i(94519);const l="text/markdown";class u extends c.Widget{constructor(e){super(),this._config=Object.assign({},u.defaultConfig),this._fragment="",this._ready=new r.PromiseDelegate,this._isRendering=!1,this._renderRequested=!1,this.context=e.context,this.translator=e.translator||h.nullTranslator,this._trans=this.translator.load("jupyterlab"),this.renderer=e.renderer,this.node.tabIndex=0,this.addClass("jp-MarkdownViewer"),(this.layout=new c.StackedLayout).addWidget(this.renderer),this.context.ready.then((async()=>{await this._render(),this._monitor=new o.ActivityMonitor({signal:this.context.model.contentChanged,timeout:this._config.renderTimeout}),this._monitor.activityStopped.connect(this.update,this),this._ready.resolve(void 0)}))}get ready(){return this._ready.promise}setFragment(e){this._fragment=e,this.update()}setOption(e,t){if(this._config[e]===t)return;this._config[e]=t;const{style:i}=this.renderer.node;switch(e){case"fontFamily":i.setProperty("font-family",t);break;case"fontSize":i.setProperty("font-size",t?t+"px":null);break;case"hideFrontMatter":this.update();break;case"lineHeight":i.setProperty("line-height",t?t.toString():null);break;case"lineWidth":{const e=t?`calc(50% - ${t/2}ch)`:null;i.setProperty("padding-left",e),i.setProperty("padding-right",e);break}case"renderTimeout":this._monitor&&(this._monitor.timeout=t)}}dispose(){this.isDisposed||(this._monitor&&this._monitor.dispose(),this._monitor=null,super.dispose())}onUpdateRequest(e){this.context.isReady&&!this.isDisposed&&(this._render(),this._fragment="")}onActivateRequest(e){this.node.focus()}async _render(){if(this.isDisposed)return;if(this._isRendering)return void(this._renderRequested=!0);this._renderRequested=!1;const{context:e}=this,{model:t}=e,i=t.toString(),r={};r[l]=this._config.hideFrontMatter?g.removeFrontMatter(i):i;const n=new d.MimeModel({data:r,metadata:{fragment:this._fragment}});try{if(this._isRendering=!0,await this.renderer.renderModel(n),this._isRendering=!1,this._renderRequested)return this._render()}catch(t){requestAnimationFrame((()=>{this.dispose()})),(0,s.showErrorMessage)(this._trans.__("Renderer Failure: %1",e.path),t)}}}!function(e){e.defaultConfig={fontFamily:null,fontSize:null,lineHeight:null,lineWidth:null,hideFrontMatter:!0,renderTimeout:1e3}}(u||(u={}));class _ extends a.DocumentWidget{setFragment(e){this.content.setFragment(e)}}class m extends a.ABCWidgetFactory{constructor(e){super(g.createRegistryOptions(e)),this._fileType=e.primaryFileType,this._rendermime=e.rendermime}createNewWidget(e){var t,i,r,n,s;const o=this._rendermime.clone({resolver:e.urlResolver}).createRenderer(l),a=new u({context:e,renderer:o});return a.title.icon=null===(t=this._fileType)||void 0===t?void 0:t.icon,a.title.iconClass=null!==(r=null===(i=this._fileType)||void 0===i?void 0:i.iconClass)&&void 0!==r?r:"",a.title.iconLabel=null!==(s=null===(n=this._fileType)||void 0===n?void 0:n.iconLabel)&&void 0!==s?s:"",new _({content:a,context:e})}}var g;!function(e){e.createRegistryOptions=function(e){return Object.assign(Object.assign({},e),{readOnly:!0})},e.removeFrontMatter=function(e){const t=e.match(/^---\n[^]*?\n(---|...)\n/);if(!t)return e;const{length:i}=t[0];return e.slice(i)}}(g||(g={}))}}]); +//# sourceMappingURL=5955.88508f7.js.map \ No newline at end of file diff --git a/_static/build/5955.88508f7.js.map b/_static/build/5955.88508f7.js.map new file mode 100644 index 0000000..a2324cc --- /dev/null +++ b/_static/build/5955.88508f7.js.map @@ -0,0 +1 @@ +{"version":3,"file":"5955.88508f7.js","mappings":"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","sources":["webpack://_JUPYTERLAB.CORE_OUTPUT/../src/tokens.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/widget.ts"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/_static/build/5971.88c5642.js b/_static/build/5971.88c5642.js new file mode 100644 index 0000000..c3e662f --- /dev/null +++ b/_static/build/5971.88c5642.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[5971,5096],{15971:(e,t,r)=>{r.r(t),r.d(t,{default:()=>v});var n=r(67504),a=r(2814),o=r(17543),c=r(60192),i=r(49005),s=r(15786),l=r(4265),d=r(90901),g=r(985),h=r(70942);class u{constructor(){this.matches=[],this.currentMatchIndex=null,this.isReadOnly=!0,this._changed=new h.Signal(this)}static canSearchOn(e){return e instanceof g.DocumentWidget&&e.content instanceof o.CSVViewer}getInitialQuery(e){return null}async startQuery(e,t){return this._target=t,this._query=e,t.content.searchService.find(e),this.matches}async endQuery(){this._target.content.searchService.clear()}async endSearch(){this._target.content.searchService.clear()}async highlightNext(){this._target.content.searchService.find(this._query)}async highlightPrevious(){this._target.content.searchService.find(this._query,!0)}async replaceCurrentMatch(e){return!1}async replaceAllMatches(e){return!1}get changed(){return this._changed}}const T="CSVTable",y="TSVTable",C={activate:function(e,t,r,n,c,i,s,l){let d;l&&(l.registerFactory(T,"delimiter",(e=>new o.CSVDelimiter({widget:e.content,translator:t}))),s&&(d=(0,a.createToolbarFactory)(l,s,T,C.id,t)));const g=new o.CSVViewerFactory({name:T,fileTypes:["csv"],defaultFor:["csv"],readOnly:!0,toolbarFactory:d,translator:t}),h=new a.WidgetTracker({namespace:"csvviewer"});let y=L.LIGHT_STYLE,_=L.LIGHT_TEXT_CONFIG;r&&r.restore(h,{command:"docmanager:open",args:e=>({path:e.context.path,factory:T}),name:e=>e.context.path}),e.docRegistry.addWidgetFactory(g);const v=e.docRegistry.getFileType("csv");g.widgetCreated.connect(((e,t)=>{h.add(t),t.context.pathChanged.connect((()=>{h.save(t)})),v&&(t.title.icon=v.icon,t.title.iconClass=v.iconClass,t.title.iconLabel=v.iconLabel),t.content.style=y,t.content.rendererConfig=_}));n&&n.themeChanged.connect((()=>{const e=!n||!n.theme||n.isLight(n.theme);y=e?L.LIGHT_STYLE:L.DARK_STYLE,_=e?L.LIGHT_TEXT_CONFIG:L.DARK_TEXT_CONFIG,h.forEach((e=>{e.content.style=y,e.content.rendererConfig=_}))})),c&&F(c,h,t),i&&i.register("csv",u)},id:"@jupyterlab/csvviewer-extension:csv",requires:[l.ITranslator],optional:[n.ILayoutRestorer,a.IThemeManager,i.IMainMenu,c.ISearchProviderRegistry,s.ISettingRegistry,a.IToolbarWidgetRegistry],autoStart:!0},_={activate:function(e,t,r,n,c,i,s,l){let d;l&&(l.registerFactory(y,"delimiter",(e=>new o.CSVDelimiter({widget:e.content,translator:t}))),s&&(d=(0,a.createToolbarFactory)(l,s,y,_.id,t)));const g=new o.TSVViewerFactory({name:y,fileTypes:["tsv"],defaultFor:["tsv"],readOnly:!0,toolbarFactory:d,translator:t}),h=new a.WidgetTracker({namespace:"tsvviewer"});let T=L.LIGHT_STYLE,C=L.LIGHT_TEXT_CONFIG;r&&r.restore(h,{command:"docmanager:open",args:e=>({path:e.context.path,factory:y}),name:e=>e.context.path}),e.docRegistry.addWidgetFactory(g);const v=e.docRegistry.getFileType("tsv");g.widgetCreated.connect(((e,t)=>{h.add(t),t.context.pathChanged.connect((()=>{h.save(t)})),v&&(t.title.icon=v.icon,t.title.iconClass=v.iconClass,t.title.iconLabel=v.iconLabel),t.content.style=T,t.content.rendererConfig=C}));n&&n.themeChanged.connect((()=>{const e=!n||!n.theme||n.isLight(n.theme);T=e?L.LIGHT_STYLE:L.DARK_STYLE,C=e?L.LIGHT_TEXT_CONFIG:L.DARK_TEXT_CONFIG,h.forEach((e=>{e.content.style=T,e.content.rendererConfig=C}))})),c&&F(c,h,t),i&&i.register("tsv",u)},id:"@jupyterlab/csvviewer-extension:tsv",requires:[l.ITranslator],optional:[n.ILayoutRestorer,a.IThemeManager,i.IMainMenu,c.ISearchProviderRegistry,s.ISettingRegistry,a.IToolbarWidgetRegistry],autoStart:!0};function F(e,t,r){const n=r.load("jupyterlab");e.editMenu.goToLiners.add({tracker:t,goToLine:e=>a.InputDialog.getNumber({title:n.__("Go to Line"),value:0}).then((t=>{t.button.accept&&null!==t.value&&e.content.goToLine(t.value)}))})}const v=[C,_];var L;!function(e){e.LIGHT_STYLE=Object.assign(Object.assign({},d.DataGrid.defaultStyle),{voidColor:"#F3F3F3",backgroundColor:"white",headerBackgroundColor:"#EEEEEE",gridLineColor:"rgba(20, 20, 20, 0.15)",headerGridLineColor:"rgba(20, 20, 20, 0.25)",rowBackgroundColor:e=>e%2==0?"#F5F5F5":"white"}),e.DARK_STYLE=Object.assign(Object.assign({},d.DataGrid.defaultStyle),{voidColor:"black",backgroundColor:"#111111",headerBackgroundColor:"#424242",gridLineColor:"rgba(235, 235, 235, 0.15)",headerGridLineColor:"rgba(235, 235, 235, 0.25)",rowBackgroundColor:e=>e%2==0?"#212121":"#111111"}),e.LIGHT_TEXT_CONFIG={textColor:"#111111",matchBackgroundColor:"#FFFFE0",currentMatchBackgroundColor:"#FFFF00",horizontalAlignment:"right"},e.DARK_TEXT_CONFIG={textColor:"#F5F5F5",matchBackgroundColor:"#838423",currentMatchBackgroundColor:"#A3807A",horizontalAlignment:"right"}}(L||(L={}))}}]); +//# sourceMappingURL=5971.88c5642.js.map \ No newline at end of file diff --git a/_static/build/5971.88c5642.js.map b/_static/build/5971.88c5642.js.map new file mode 100644 index 0000000..14d4330 --- /dev/null +++ b/_static/build/5971.88c5642.js.map @@ -0,0 +1 @@ +{"version":3,"file":"5971.88c5642.js","mappings":"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","sources":["webpack://_JUPYTERLAB.CORE_OUTPUT/../src/searchprovider.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/index.ts"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/_static/build/6080.aa0ff24.js b/_static/build/6080.aa0ff24.js new file mode 100644 index 0000000..fdd2cd6 --- /dev/null +++ b/_static/build/6080.aa0ff24.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[6080,7526],{97526:(t,e,r)=>{r.r(e),r.d(e,{MAJOR_VERSION:()=>u,MINOR_VERSION:()=>i,isCode:()=>c,isDisplayData:()=>l,isDisplayUpdate:()=>_,isError:()=>f,isExecuteResult:()=>s,isMarkdown:()=>p,isRaw:()=>o,isStream:()=>y,validateMimeValue:()=>a});var n=r(26169);const u=4,i=4;function a(t,e){const r="application/json"===t||/^application\/(.*?)+\+json$/.test(t),u=t=>"[object String]"===Object.prototype.toString.call(t);if(Array.isArray(e)){if(r)return!1;let t=!0;return e.forEach((e=>{u(e)||(t=!1)})),t}return u(e)?!r:!!r&&n.JSONExt.isObject(e)}function o(t){return"raw"===t.cell_type}function p(t){return"markdown"===t.cell_type}function c(t){return"code"===t.cell_type}function s(t){return"execute_result"===t.output_type}function l(t){return"display_data"===t.output_type}function _(t){return"update_display_data"===t.output_type}function y(t){return"stream"===t.output_type}function f(t){return"error"===t.output_type}}}]); +//# sourceMappingURL=6080.aa0ff24.js.map \ No newline at end of file diff --git a/_static/build/6080.aa0ff24.js.map b/_static/build/6080.aa0ff24.js.map new file mode 100644 index 0000000..4fe1d2c --- /dev/null +++ b/_static/build/6080.aa0ff24.js.map @@ -0,0 +1 @@ +{"version":3,"file":"6080.aa0ff24.js","mappings":"8WAgBO,MAAM,EAAwB,EAKxB,EAAwB,EA8E/B,SAAU,EACd,EACA,GAGA,MACM,EAAsB,qBAAT,GADF,8BAC0C,KAAK,GAE1D,EAAY,GAC6B,oBAAtC,OAAO,UAAU,SAAS,KAAK,GAKxC,GAAI,MAAM,QAAQ,GAAQ,CACxB,GAAI,EACF,OAAO,EAET,IAAI,GAAQ,EAMZ,OALC,EAAmB,SAAQ,IACrB,EAAS,KACZ,GAAQ,E,IAGL,C,CAIT,OAAI,EAAS,IACH,IAIL,GAKE,mBAAiB,EAC1B,CA6MM,SAAU,EAAM,GACpB,MAA0B,QAAnB,EAAK,SACd,CAKM,SAAU,EAAW,GACzB,MAA0B,aAAnB,EAAK,SACd,CAKM,SAAU,EAAO,GACrB,MAA0B,SAAnB,EAAK,SACd,CAyJM,SAAU,EAAgB,GAC9B,MAA8B,mBAAvB,EAAO,WAChB,CAKM,SAAU,EAAc,GAC5B,MAA8B,iBAAvB,EAAO,WAChB,CAKM,SAAU,EAAgB,GAC9B,MAA8B,wBAAvB,EAAO,WAChB,CAKM,SAAU,EAAS,GACvB,MAA8B,WAAvB,EAAO,WAChB,CAKM,SAAU,EAAQ,GACtB,MAA8B,UAAvB,EAAO,WAChB,C","sources":["webpack://_JUPYTERLAB.CORE_OUTPUT/../src/index.ts"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/_static/build/61.2808a0d.js b/_static/build/61.2808a0d.js new file mode 100644 index 0000000..ab68b11 --- /dev/null +++ b/_static/build/61.2808a0d.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[61],{65880:(u,e,t)=>{t.d(e,{r:()=>o});const r=/[[\]{}]/,n={"*":1,arc:1,area:1,group:1,image:1,line:1,path:1,rect:1,rule:1,shape:1,symbol:1,text:1,trail:1};let A,a;function o(u,e,t){return A=e||"view",a=t||n,s(u.trim()).map(i)}function F(u,e,t,r,n){const A=u.length;let a,o=0;for(;e=0?--o:r&&r.indexOf(a)>=0&&++o}return e}function s(u){const e=[],t=u.length;let r=0,n=0;for(;n"!==(u=u.slice(r+1).trim())[0])throw"Expected '>' after between selector: "+u;t=t.map(i);const n=i(u.slice(1).trim());return n.between?{between:t,stream:n}:(n.between=t,n)}(u):function(u){const e={source:A},t=[];let n,o,s=[0,0],i=0,C=0,c=u.length,B=0;if("}"===u[c-1]){if(B=u.lastIndexOf("{"),!(B>=0))throw"Unmatched right brace: "+u;try{s=function(u){const e=u.split(",");if(!u.length||e.length>2)throw u;return e.map((e=>{const t=+e;if(t!=t)throw u;return t}))}(u.substring(B+1,c-1))}catch(e){throw"Invalid throttle specification: "+u}c=(u=u.slice(0,B).trim()).length,B=0}if(!c)throw u;if("@"===u[0]&&(i=++B),n=F(u,B,":"),n1?(e.type=t[1],i?e.markname=t[0].slice(1):(D=t[0],a[D]?e.marktype=t[0]:e.source=t[0])):e.type=t[0],"!"===e.type.slice(-1)&&(e.consume=!0,e.type=e.type.slice(0,-1)),null!=o&&(e.filter=o),s[0]&&(e.throttle=s[0]),s[1]&&(e.debounce=s[1]),e}(u)}},34358:(u,e,t)=>{t.d(e,{BJ:()=>ou,Lt:()=>A,YP:()=>iu,_G:()=>Fu,t$:()=>n,wk:()=>su});var r=t(68542);const n="Literal",A="CallExpression";function a(u){this.type=u}var o,F,s,i,C;a.prototype.visit=function(u){let e,t,r;if(u(this))return 1;for(e=function(u){switch(u.type){case"ArrayExpression":return u.elements;case"BinaryExpression":case"LogicalExpression":return[u.left,u.right];case A:return[u.callee].concat(u.arguments);case"ConditionalExpression":return[u.test,u.consequent,u.alternate];case"MemberExpression":return[u.object,u.property];case"ObjectExpression":return u.properties;case"Property":return[u.key,u.value];case"UnaryExpression":return[u.argument];default:return[]}}(this),t=0,r=e.length;t",o[3]="Identifier",o[4]="Keyword",o[5]="Null",o[6]="Numeric",o[7]="Punctuator",o[8]="String",o[9]="RegularExpression";var c="Identifier",B="Unexpected token %0",D="Invalid regular expression",E="Invalid regular expression: missing /",l="Octal literals are not allowed in strict mode.",f="ILLEGAL",p="Disabled.",h=new RegExp("[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u08A0-\\u08B2\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58\\u0C59\\u0C60\\u0C61\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D60\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1877\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19C1-\\u19C7\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6EF\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA78E\\uA790-\\uA7AD\\uA7B0\\uA7B1\\uA7F7-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB5F\\uAB64\\uAB65\\uABC0-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]"),d=new RegExp("[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0300-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u0483-\\u0487\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0610-\\u061A\\u0620-\\u0669\\u066E-\\u06D3\\u06D5-\\u06DC\\u06DF-\\u06E8\\u06EA-\\u06FC\\u06FF\\u0710-\\u074A\\u074D-\\u07B1\\u07C0-\\u07F5\\u07FA\\u0800-\\u082D\\u0840-\\u085B\\u08A0-\\u08B2\\u08E4-\\u0963\\u0966-\\u096F\\u0971-\\u0983\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BC-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CE\\u09D7\\u09DC\\u09DD\\u09DF-\\u09E3\\u09E6-\\u09F1\\u0A01-\\u0A03\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A59-\\u0A5C\\u0A5E\\u0A66-\\u0A75\\u0A81-\\u0A83\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABC-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AD0\\u0AE0-\\u0AE3\\u0AE6-\\u0AEF\\u0B01-\\u0B03\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3C-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B56\\u0B57\\u0B5C\\u0B5D\\u0B5F-\\u0B63\\u0B66-\\u0B6F\\u0B71\\u0B82\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD0\\u0BD7\\u0BE6-\\u0BEF\\u0C00-\\u0C03\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C58\\u0C59\\u0C60-\\u0C63\\u0C66-\\u0C6F\\u0C81-\\u0C83\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBC-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CDE\\u0CE0-\\u0CE3\\u0CE6-\\u0CEF\\u0CF1\\u0CF2\\u0D01-\\u0D03\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4E\\u0D57\\u0D60-\\u0D63\\u0D66-\\u0D6F\\u0D7A-\\u0D7F\\u0D82\\u0D83\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DE6-\\u0DEF\\u0DF2\\u0DF3\\u0E01-\\u0E3A\\u0E40-\\u0E4E\\u0E50-\\u0E59\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB9\\u0EBB-\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EC8-\\u0ECD\\u0ED0-\\u0ED9\\u0EDC-\\u0EDF\\u0F00\\u0F18\\u0F19\\u0F20-\\u0F29\\u0F35\\u0F37\\u0F39\\u0F3E-\\u0F47\\u0F49-\\u0F6C\\u0F71-\\u0F84\\u0F86-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u1000-\\u1049\\u1050-\\u109D\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u135D-\\u135F\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1714\\u1720-\\u1734\\u1740-\\u1753\\u1760-\\u176C\\u176E-\\u1770\\u1772\\u1773\\u1780-\\u17D3\\u17D7\\u17DC\\u17DD\\u17E0-\\u17E9\\u180B-\\u180D\\u1810-\\u1819\\u1820-\\u1877\\u1880-\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1920-\\u192B\\u1930-\\u193B\\u1946-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u19D0-\\u19D9\\u1A00-\\u1A1B\\u1A20-\\u1A5E\\u1A60-\\u1A7C\\u1A7F-\\u1A89\\u1A90-\\u1A99\\u1AA7\\u1AB0-\\u1ABD\\u1B00-\\u1B4B\\u1B50-\\u1B59\\u1B6B-\\u1B73\\u1B80-\\u1BF3\\u1C00-\\u1C37\\u1C40-\\u1C49\\u1C4D-\\u1C7D\\u1CD0-\\u1CD2\\u1CD4-\\u1CF6\\u1CF8\\u1CF9\\u1D00-\\u1DF5\\u1DFC-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u200C\\u200D\\u203F\\u2040\\u2054\\u2071\\u207F\\u2090-\\u209C\\u20D0-\\u20DC\\u20E1\\u20E5-\\u20F0\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D7F-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2DE0-\\u2DFF\\u2E2F\\u3005-\\u3007\\u3021-\\u302F\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u3099\\u309A\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA62B\\uA640-\\uA66F\\uA674-\\uA67D\\uA67F-\\uA69D\\uA69F-\\uA6F1\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA78E\\uA790-\\uA7AD\\uA7B0\\uA7B1\\uA7F7-\\uA827\\uA840-\\uA873\\uA880-\\uA8C4\\uA8D0-\\uA8D9\\uA8E0-\\uA8F7\\uA8FB\\uA900-\\uA92D\\uA930-\\uA953\\uA960-\\uA97C\\uA980-\\uA9C0\\uA9CF-\\uA9D9\\uA9E0-\\uA9FE\\uAA00-\\uAA36\\uAA40-\\uAA4D\\uAA50-\\uAA59\\uAA60-\\uAA76\\uAA7A-\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEF\\uAAF2-\\uAAF6\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB5F\\uAB64\\uAB65\\uABC0-\\uABEA\\uABEC\\uABED\\uABF0-\\uABF9\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE00-\\uFE0F\\uFE20-\\uFE2D\\uFE33\\uFE34\\uFE4D-\\uFE4F\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF10-\\uFF19\\uFF21-\\uFF3A\\uFF3F\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]");function g(u,e){if(!u)throw new Error("ASSERT: "+e)}function m(u){return u>=48&&u<=57}function y(u){return"0123456789abcdefABCDEF".indexOf(u)>=0}function x(u){return"01234567".indexOf(u)>=0}function v(u){return 32===u||9===u||11===u||12===u||160===u||u>=5760&&[5760,6158,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279].indexOf(u)>=0}function w(u){return 10===u||13===u||8232===u||8233===u}function b(u){return 36===u||95===u||u>=65&&u<=90||u>=97&&u<=122||92===u||u>=128&&h.test(String.fromCharCode(u))}function k(u){return 36===u||95===u||u>=65&&u<=90||u>=97&&u<=122||u>=48&&u<=57||92===u||u>=128&&d.test(String.fromCharCode(u))}const M={if:1,in:1,do:1,var:1,for:1,new:1,try:1,let:1,this:1,else:1,case:1,void:1,with:1,enum:1,while:1,break:1,catch:1,throw:1,const:1,yield:1,class:1,super:1,return:1,typeof:1,delete:1,switch:1,export:1,import:1,public:1,static:1,default:1,finally:1,extends:1,package:1,private:1,function:1,continue:1,debugger:1,interface:1,protected:1,instanceof:1,implements:1};function U(){for(;s1114111||"}"!==u)&&V({},B,f),e<=65535?String.fromCharCode(e):(t=55296+(e-65536>>10),r=56320+(e-65536&1023),String.fromCharCode(t,r))}function T(){var u,e;for(u=F.charCodeAt(s++),e=String.fromCharCode(u),92===u&&(117!==F.charCodeAt(s)&&V({},B,f),++s,(u=O("u"))&&"\\"!==u&&b(u.charCodeAt(0))||V({},B,f),e=u);s>>="===(r=F.substr(s,4))?{type:7,value:r,start:n,end:s+=4}:">>>"===(t=r.substr(0,3))||"<<="===t||">>="===t?{type:7,value:t,start:n,end:s+=3}:a===(e=t.substr(0,2))[1]&&"+-<>&|".indexOf(a)>=0||"=>"===e?{type:7,value:e,start:n,end:s+=2}:("//"===e&&V({},B,f),"<>=!+-*%&|^/".indexOf(a)>=0?{type:7,value:a,start:n,end:++s}:void V({},B,f))}function I(){var u,e,t;if(g(m((t=F[s]).charCodeAt(0))||"."===t,"Numeric literal must start with a decimal digit or a decimal point"),e=s,u="","."!==t){if(u=F[s++],t=F[s],"0"===u){if("x"===t||"X"===t)return++s,function(u){let e="";for(;s=i)return{type:2,start:s,end:s};const u=F.charCodeAt(s);return b(u)?(e=s,t=92===F.charCodeAt(s)?T():function(){var u,e;for(u=s++;s=0&&s(g(e=0&&V({},D,t),{value:t,literal:e}}(),o=function(u,e){let t=u;e.indexOf("u")>=0&&(t=t.replace(/\\u\{([0-9a-fA-F]+)\}/g,((u,e)=>{if(parseInt(e,16)<=1114111)return"x";V({},D)})).replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,"x"));try{new RegExp(t)}catch(u){V({},D)}try{return new RegExp(u,e)}catch(u){return null}}(n.value,A.value),{literal:n.literal+A.literal,value:o,regex:{pattern:n.value,flags:A.value},start:r,end:s})),j()):$(R())}return t}function uu(){const u=[];if(z("("),!H(")"))for(;s":case"<=":case">=":case"instanceof":case"in":e=7;break;case"<<":case">>":case">>>":e=8;break;case"+":case"-":e=9;break;case"*":case"/":case"%":e=11}return e}function Au(){var u,e;return u=function(){var u,e,t,r,n,A,a,o,F,s;if(u=C,F=ru(),0===(n=nu(r=C)))return F;for(r.prec=n,R(),e=[u,C],A=[F,r,a=ru()];(n=nu(C))>0;){for(;A.length>2&&n<=A[A.length-2].prec;)a=A.pop(),o=A.pop().value,F=A.pop(),e.pop(),t=P(o,F,a),A.push(t);(r=R()).prec=n,A.push(r),e.push(C),t=ru(),A.push(t)}for(t=A[s=A.length-1],e.pop();s>1;)e.pop(),t=P(A[s-1].value,A[s-2],t),s-=2;return t}(),H("?")&&(R(),e=Au(),z(":"),u=function(u,e,t){const r=new a("ConditionalExpression");return r.test=u,r.consequent=e,r.alternate=t,r}(u,e,Au())),u}function au(){const u=Au();if(H(","))throw new Error(p);return u}function ou(u){s=0,i=(F=u).length,C=null,j();const e=au();if(2!==C.type)throw new Error("Unexpect token after expression.");return e}var Fu={NaN:"NaN",E:"Math.E",LN2:"Math.LN2",LN10:"Math.LN10",LOG2E:"Math.LOG2E",LOG10E:"Math.LOG10E",PI:"Math.PI",SQRT1_2:"Math.SQRT1_2",SQRT2:"Math.SQRT2",MIN_VALUE:"Number.MIN_VALUE",MAX_VALUE:"Number.MAX_VALUE"};function su(u){function e(e,t,r){return n=>function(e,t,r,n){let A=u(t[0]);return r&&(A=r+"("+A+")",0===r.lastIndexOf("new ",0)&&(A="("+A+")")),A+"."+e+(n<0?"":0===n?"()":"("+t.slice(1).map(u).join(",")+")")}(e,n,t,r)}const t="new Date",n="String",A="RegExp";return{isNaN:"Number.isNaN",isFinite:"Number.isFinite",abs:"Math.abs",acos:"Math.acos",asin:"Math.asin",atan:"Math.atan",atan2:"Math.atan2",ceil:"Math.ceil",cos:"Math.cos",exp:"Math.exp",floor:"Math.floor",log:"Math.log",max:"Math.max",min:"Math.min",pow:"Math.pow",random:"Math.random",round:"Math.round",sin:"Math.sin",sqrt:"Math.sqrt",tan:"Math.tan",clamp:function(e){e.length<3&&(0,r.vU)("Missing arguments to clamp function."),e.length>3&&(0,r.vU)("Too many arguments to clamp function.");const t=e.map(u);return"Math.max("+t[1]+", Math.min("+t[2]+","+t[0]+"))"},now:"Date.now",utc:"Date.UTC",datetime:t,date:e("getDate",t,0),day:e("getDay",t,0),year:e("getFullYear",t,0),month:e("getMonth",t,0),hours:e("getHours",t,0),minutes:e("getMinutes",t,0),seconds:e("getSeconds",t,0),milliseconds:e("getMilliseconds",t,0),time:e("getTime",t,0),timezoneoffset:e("getTimezoneOffset",t,0),utcdate:e("getUTCDate",t,0),utcday:e("getUTCDay",t,0),utcyear:e("getUTCFullYear",t,0),utcmonth:e("getUTCMonth",t,0),utchours:e("getUTCHours",t,0),utcminutes:e("getUTCMinutes",t,0),utcseconds:e("getUTCSeconds",t,0),utcmilliseconds:e("getUTCMilliseconds",t,0),length:e("length",null,-1),parseFloat:"parseFloat",parseInt:"parseInt",upper:e("toUpperCase",n,0),lower:e("toLowerCase",n,0),substring:e("substring",n),split:e("split",n),trim:e("trim",n,0),regexp:A,test:e("test",A),if:function(e){e.length<3&&(0,r.vU)("Missing arguments to if function."),e.length>3&&(0,r.vU)("Too many arguments to if function.");const t=e.map(u);return"("+t[0]+"?"+t[1]+":"+t[2]+")"}}}function iu(u){const e=(u=u||{}).allowed?(0,r.Rg)(u.allowed):{},t=u.forbidden?(0,r.Rg)(u.forbidden):{},n=u.constants||Fu,A=(u.functions||su)(c),a=u.globalvar,o=u.fieldvar,F=(0,r.mf)(a)?a:u=>`${a}["${u}"]`;let s={},i={},C=0;function c(u){if((0,r.HD)(u))return u;const e=B[u.type];return null==e&&(0,r.vU)("Unsupported type: "+u.type),e(u)}const B={Literal:u=>u.raw,Identifier:u=>{const A=u.name;return C>0?A:(0,r.nr)(t,A)?(0,r.vU)("Illegal identifier: "+A):(0,r.nr)(n,A)?n[A]:(0,r.nr)(e,A)?A:(s[A]=1,F(A))},MemberExpression:u=>{const e=!u.computed,t=c(u.object);e&&(C+=1);const r=c(u.property);return t===o&&(i[function(u){const e=u&&u.length-1;return e&&('"'===u[0]&&'"'===u[e]||"'"===u[0]&&"'"===u[e])?u.slice(1,-1):u}(r)]=1),e&&(C-=1),t+(e?"."+r:"["+r+"]")},CallExpression:u=>{"Identifier"!==u.callee.type&&(0,r.vU)("Illegal callee type: "+u.callee.type);const e=u.callee.name,t=u.arguments,n=(0,r.nr)(A,e)&&A[e];return n||(0,r.vU)("Unrecognized function: "+e),(0,r.mf)(n)?n(t):n+"("+t.map(c).join(",")+")"},ArrayExpression:u=>"["+u.elements.map(c).join(",")+"]",BinaryExpression:u=>"("+c(u.left)+" "+u.operator+" "+c(u.right)+")",UnaryExpression:u=>"("+u.operator+c(u.argument)+")",ConditionalExpression:u=>"("+c(u.test)+"?"+c(u.consequent)+":"+c(u.alternate)+")",LogicalExpression:u=>"("+c(u.left)+u.operator+c(u.right)+")",ObjectExpression:u=>"{"+u.properties.map(c).join(",")+"}",Property:u=>{C+=1;const e=c(u.key);return C-=1,e+":"+c(u.value)}};function D(u){const e={code:c(u),globals:Object.keys(s),fields:Object.keys(i)};return s={},i={},e}return D.functions=A,D.constants=n,D}}}]); +//# sourceMappingURL=61.2808a0d.js.map \ No newline at end of file diff --git a/_static/build/61.2808a0d.js.map b/_static/build/61.2808a0d.js.map new file mode 100644 index 0000000..1c9a171 --- /dev/null +++ b/_static/build/61.2808a0d.js.map @@ -0,0 +1 @@ +{"version":3,"file":"61.2808a0d.js","mappings":"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","sources":["webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/vega-event-selector/build/vega-event-selector.module.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/vega-expression/build/vega-expression.module.js"],"sourcesContent":["const VIEW = 'view',\n LBRACK = '[',\n RBRACK = ']',\n LBRACE = '{',\n RBRACE = '}',\n COLON = ':',\n COMMA = ',',\n NAME = '@',\n GT = '>',\n ILLEGAL = /[[\\]{}]/,\n DEFAULT_MARKS = {\n '*': 1,\n arc: 1,\n area: 1,\n group: 1,\n image: 1,\n line: 1,\n path: 1,\n rect: 1,\n rule: 1,\n shape: 1,\n symbol: 1,\n text: 1,\n trail: 1\n };\nlet DEFAULT_SOURCE, MARKS;\n\n/**\n * Parse an event selector string.\n * Returns an array of event stream definitions.\n */\nfunction eventSelector (selector, source, marks) {\n DEFAULT_SOURCE = source || VIEW;\n MARKS = marks || DEFAULT_MARKS;\n return parseMerge(selector.trim()).map(parseSelector);\n}\nfunction isMarkType(type) {\n return MARKS[type];\n}\nfunction find(s, i, endChar, pushChar, popChar) {\n const n = s.length;\n let count = 0,\n c;\n for (; i < n; ++i) {\n c = s[i];\n if (!count && c === endChar) return i;else if (popChar && popChar.indexOf(c) >= 0) --count;else if (pushChar && pushChar.indexOf(c) >= 0) ++count;\n }\n return i;\n}\nfunction parseMerge(s) {\n const output = [],\n n = s.length;\n let start = 0,\n i = 0;\n while (i < n) {\n i = find(s, i, COMMA, LBRACK + LBRACE, RBRACK + RBRACE);\n output.push(s.substring(start, i).trim());\n start = ++i;\n }\n if (output.length === 0) {\n throw 'Empty event selector: ' + s;\n }\n return output;\n}\nfunction parseSelector(s) {\n return s[0] === '[' ? parseBetween(s) : parseStream(s);\n}\nfunction parseBetween(s) {\n const n = s.length;\n let i = 1,\n b;\n i = find(s, i, RBRACK, LBRACK, RBRACK);\n if (i === n) {\n throw 'Empty between selector: ' + s;\n }\n b = parseMerge(s.substring(1, i));\n if (b.length !== 2) {\n throw 'Between selector must have two elements: ' + s;\n }\n s = s.slice(i + 1).trim();\n if (s[0] !== GT) {\n throw 'Expected \\'>\\' after between selector: ' + s;\n }\n b = b.map(parseSelector);\n const stream = parseSelector(s.slice(1).trim());\n if (stream.between) {\n return {\n between: b,\n stream: stream\n };\n } else {\n stream.between = b;\n }\n return stream;\n}\nfunction parseStream(s) {\n const stream = {\n source: DEFAULT_SOURCE\n },\n source = [];\n let throttle = [0, 0],\n markname = 0,\n start = 0,\n n = s.length,\n i = 0,\n j,\n filter;\n\n // extract throttle from end\n if (s[n - 1] === RBRACE) {\n i = s.lastIndexOf(LBRACE);\n if (i >= 0) {\n try {\n throttle = parseThrottle(s.substring(i + 1, n - 1));\n } catch (e) {\n throw 'Invalid throttle specification: ' + s;\n }\n s = s.slice(0, i).trim();\n n = s.length;\n } else throw 'Unmatched right brace: ' + s;\n i = 0;\n }\n if (!n) throw s;\n\n // set name flag based on first char\n if (s[0] === NAME) markname = ++i;\n\n // extract first part of multi-part stream selector\n j = find(s, i, COLON);\n if (j < n) {\n source.push(s.substring(start, j).trim());\n start = i = ++j;\n }\n\n // extract remaining part of stream selector\n i = find(s, i, LBRACK);\n if (i === n) {\n source.push(s.substring(start, n).trim());\n } else {\n source.push(s.substring(start, i).trim());\n filter = [];\n start = ++i;\n if (start === n) throw 'Unmatched left bracket: ' + s;\n }\n\n // extract filters\n while (i < n) {\n i = find(s, i, RBRACK);\n if (i === n) throw 'Unmatched left bracket: ' + s;\n filter.push(s.substring(start, i).trim());\n if (i < n - 1 && s[++i] !== LBRACK) throw 'Expected left bracket: ' + s;\n start = ++i;\n }\n\n // marshall event stream specification\n if (!(n = source.length) || ILLEGAL.test(source[n - 1])) {\n throw 'Invalid event selector: ' + s;\n }\n if (n > 1) {\n stream.type = source[1];\n if (markname) {\n stream.markname = source[0].slice(1);\n } else if (isMarkType(source[0])) {\n stream.marktype = source[0];\n } else {\n stream.source = source[0];\n }\n } else {\n stream.type = source[0];\n }\n if (stream.type.slice(-1) === '!') {\n stream.consume = true;\n stream.type = stream.type.slice(0, -1);\n }\n if (filter != null) stream.filter = filter;\n if (throttle[0]) stream.throttle = throttle[0];\n if (throttle[1]) stream.debounce = throttle[1];\n return stream;\n}\nfunction parseThrottle(s) {\n const a = s.split(COMMA);\n if (!s.length || a.length > 2) throw s;\n return a.map(_ => {\n const x = +_;\n if (x !== x) throw s;\n return x;\n });\n}\n\nexport { eventSelector as parseSelector };\n","import { error, toSet, isFunction, isString, hasOwnProperty } from 'vega-util';\n\nconst RawCode = 'RawCode';\nconst Literal = 'Literal';\nconst Property = 'Property';\nconst Identifier = 'Identifier';\nconst ArrayExpression = 'ArrayExpression';\nconst BinaryExpression = 'BinaryExpression';\nconst CallExpression = 'CallExpression';\nconst ConditionalExpression = 'ConditionalExpression';\nconst LogicalExpression = 'LogicalExpression';\nconst MemberExpression = 'MemberExpression';\nconst ObjectExpression = 'ObjectExpression';\nconst UnaryExpression = 'UnaryExpression';\nfunction ASTNode(type) {\n this.type = type;\n}\nASTNode.prototype.visit = function (visitor) {\n let c, i, n;\n if (visitor(this)) return 1;\n for (c = children(this), i = 0, n = c.length; i < n; ++i) {\n if (c[i].visit(visitor)) return 1;\n }\n};\nfunction children(node) {\n switch (node.type) {\n case ArrayExpression:\n return node.elements;\n case BinaryExpression:\n case LogicalExpression:\n return [node.left, node.right];\n case CallExpression:\n return [node.callee].concat(node.arguments);\n case ConditionalExpression:\n return [node.test, node.consequent, node.alternate];\n case MemberExpression:\n return [node.object, node.property];\n case ObjectExpression:\n return node.properties;\n case Property:\n return [node.key, node.value];\n case UnaryExpression:\n return [node.argument];\n case Identifier:\n case Literal:\n case RawCode:\n default:\n return [];\n }\n}\n\n/*\n The following expression parser is based on Esprima (http://esprima.org/).\n Original header comment and license for Esprima is included here:\n\n Copyright (C) 2013 Ariya Hidayat \n Copyright (C) 2013 Thaddee Tyl \n Copyright (C) 2013 Mathias Bynens \n Copyright (C) 2012 Ariya Hidayat \n Copyright (C) 2012 Mathias Bynens \n Copyright (C) 2012 Joost-Wim Boekesteijn \n Copyright (C) 2012 Kris Kowal \n Copyright (C) 2012 Yusuke Suzuki \n Copyright (C) 2012 Arpad Borsos \n Copyright (C) 2011 Ariya Hidayat \n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are met:\n\n * Redistributions of source code must retain the above copyright\n notice, this list of conditions and the following disclaimer.\n * Redistributions in binary form must reproduce the above copyright\n notice, this list of conditions and the following disclaimer in the\n documentation and/or other materials provided with the distribution.\n\n THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY\n DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n*/\nvar TokenName, source, index, length, lookahead;\nvar TokenBooleanLiteral = 1,\n TokenEOF = 2,\n TokenIdentifier = 3,\n TokenKeyword = 4,\n TokenNullLiteral = 5,\n TokenNumericLiteral = 6,\n TokenPunctuator = 7,\n TokenStringLiteral = 8,\n TokenRegularExpression = 9;\nTokenName = {};\nTokenName[TokenBooleanLiteral] = 'Boolean';\nTokenName[TokenEOF] = '';\nTokenName[TokenIdentifier] = 'Identifier';\nTokenName[TokenKeyword] = 'Keyword';\nTokenName[TokenNullLiteral] = 'Null';\nTokenName[TokenNumericLiteral] = 'Numeric';\nTokenName[TokenPunctuator] = 'Punctuator';\nTokenName[TokenStringLiteral] = 'String';\nTokenName[TokenRegularExpression] = 'RegularExpression';\nvar SyntaxArrayExpression = 'ArrayExpression',\n SyntaxBinaryExpression = 'BinaryExpression',\n SyntaxCallExpression = 'CallExpression',\n SyntaxConditionalExpression = 'ConditionalExpression',\n SyntaxIdentifier = 'Identifier',\n SyntaxLiteral = 'Literal',\n SyntaxLogicalExpression = 'LogicalExpression',\n SyntaxMemberExpression = 'MemberExpression',\n SyntaxObjectExpression = 'ObjectExpression',\n SyntaxProperty = 'Property',\n SyntaxUnaryExpression = 'UnaryExpression';\n\n// Error messages should be identical to V8.\nvar MessageUnexpectedToken = 'Unexpected token %0',\n MessageUnexpectedNumber = 'Unexpected number',\n MessageUnexpectedString = 'Unexpected string',\n MessageUnexpectedIdentifier = 'Unexpected identifier',\n MessageUnexpectedReserved = 'Unexpected reserved word',\n MessageUnexpectedEOS = 'Unexpected end of input',\n MessageInvalidRegExp = 'Invalid regular expression',\n MessageUnterminatedRegExp = 'Invalid regular expression: missing /',\n MessageStrictOctalLiteral = 'Octal literals are not allowed in strict mode.',\n MessageStrictDuplicateProperty = 'Duplicate data property in object literal not allowed in strict mode';\nvar ILLEGAL = 'ILLEGAL',\n DISABLED = 'Disabled.';\n\n// See also tools/generate-unicode-regex.py.\nvar RegexNonAsciiIdentifierStart = new RegExp('[\\\\xAA\\\\xB5\\\\xBA\\\\xC0-\\\\xD6\\\\xD8-\\\\xF6\\\\xF8-\\\\u02C1\\\\u02C6-\\\\u02D1\\\\u02E0-\\\\u02E4\\\\u02EC\\\\u02EE\\\\u0370-\\\\u0374\\\\u0376\\\\u0377\\\\u037A-\\\\u037D\\\\u037F\\\\u0386\\\\u0388-\\\\u038A\\\\u038C\\\\u038E-\\\\u03A1\\\\u03A3-\\\\u03F5\\\\u03F7-\\\\u0481\\\\u048A-\\\\u052F\\\\u0531-\\\\u0556\\\\u0559\\\\u0561-\\\\u0587\\\\u05D0-\\\\u05EA\\\\u05F0-\\\\u05F2\\\\u0620-\\\\u064A\\\\u066E\\\\u066F\\\\u0671-\\\\u06D3\\\\u06D5\\\\u06E5\\\\u06E6\\\\u06EE\\\\u06EF\\\\u06FA-\\\\u06FC\\\\u06FF\\\\u0710\\\\u0712-\\\\u072F\\\\u074D-\\\\u07A5\\\\u07B1\\\\u07CA-\\\\u07EA\\\\u07F4\\\\u07F5\\\\u07FA\\\\u0800-\\\\u0815\\\\u081A\\\\u0824\\\\u0828\\\\u0840-\\\\u0858\\\\u08A0-\\\\u08B2\\\\u0904-\\\\u0939\\\\u093D\\\\u0950\\\\u0958-\\\\u0961\\\\u0971-\\\\u0980\\\\u0985-\\\\u098C\\\\u098F\\\\u0990\\\\u0993-\\\\u09A8\\\\u09AA-\\\\u09B0\\\\u09B2\\\\u09B6-\\\\u09B9\\\\u09BD\\\\u09CE\\\\u09DC\\\\u09DD\\\\u09DF-\\\\u09E1\\\\u09F0\\\\u09F1\\\\u0A05-\\\\u0A0A\\\\u0A0F\\\\u0A10\\\\u0A13-\\\\u0A28\\\\u0A2A-\\\\u0A30\\\\u0A32\\\\u0A33\\\\u0A35\\\\u0A36\\\\u0A38\\\\u0A39\\\\u0A59-\\\\u0A5C\\\\u0A5E\\\\u0A72-\\\\u0A74\\\\u0A85-\\\\u0A8D\\\\u0A8F-\\\\u0A91\\\\u0A93-\\\\u0AA8\\\\u0AAA-\\\\u0AB0\\\\u0AB2\\\\u0AB3\\\\u0AB5-\\\\u0AB9\\\\u0ABD\\\\u0AD0\\\\u0AE0\\\\u0AE1\\\\u0B05-\\\\u0B0C\\\\u0B0F\\\\u0B10\\\\u0B13-\\\\u0B28\\\\u0B2A-\\\\u0B30\\\\u0B32\\\\u0B33\\\\u0B35-\\\\u0B39\\\\u0B3D\\\\u0B5C\\\\u0B5D\\\\u0B5F-\\\\u0B61\\\\u0B71\\\\u0B83\\\\u0B85-\\\\u0B8A\\\\u0B8E-\\\\u0B90\\\\u0B92-\\\\u0B95\\\\u0B99\\\\u0B9A\\\\u0B9C\\\\u0B9E\\\\u0B9F\\\\u0BA3\\\\u0BA4\\\\u0BA8-\\\\u0BAA\\\\u0BAE-\\\\u0BB9\\\\u0BD0\\\\u0C05-\\\\u0C0C\\\\u0C0E-\\\\u0C10\\\\u0C12-\\\\u0C28\\\\u0C2A-\\\\u0C39\\\\u0C3D\\\\u0C58\\\\u0C59\\\\u0C60\\\\u0C61\\\\u0C85-\\\\u0C8C\\\\u0C8E-\\\\u0C90\\\\u0C92-\\\\u0CA8\\\\u0CAA-\\\\u0CB3\\\\u0CB5-\\\\u0CB9\\\\u0CBD\\\\u0CDE\\\\u0CE0\\\\u0CE1\\\\u0CF1\\\\u0CF2\\\\u0D05-\\\\u0D0C\\\\u0D0E-\\\\u0D10\\\\u0D12-\\\\u0D3A\\\\u0D3D\\\\u0D4E\\\\u0D60\\\\u0D61\\\\u0D7A-\\\\u0D7F\\\\u0D85-\\\\u0D96\\\\u0D9A-\\\\u0DB1\\\\u0DB3-\\\\u0DBB\\\\u0DBD\\\\u0DC0-\\\\u0DC6\\\\u0E01-\\\\u0E30\\\\u0E32\\\\u0E33\\\\u0E40-\\\\u0E46\\\\u0E81\\\\u0E82\\\\u0E84\\\\u0E87\\\\u0E88\\\\u0E8A\\\\u0E8D\\\\u0E94-\\\\u0E97\\\\u0E99-\\\\u0E9F\\\\u0EA1-\\\\u0EA3\\\\u0EA5\\\\u0EA7\\\\u0EAA\\\\u0EAB\\\\u0EAD-\\\\u0EB0\\\\u0EB2\\\\u0EB3\\\\u0EBD\\\\u0EC0-\\\\u0EC4\\\\u0EC6\\\\u0EDC-\\\\u0EDF\\\\u0F00\\\\u0F40-\\\\u0F47\\\\u0F49-\\\\u0F6C\\\\u0F88-\\\\u0F8C\\\\u1000-\\\\u102A\\\\u103F\\\\u1050-\\\\u1055\\\\u105A-\\\\u105D\\\\u1061\\\\u1065\\\\u1066\\\\u106E-\\\\u1070\\\\u1075-\\\\u1081\\\\u108E\\\\u10A0-\\\\u10C5\\\\u10C7\\\\u10CD\\\\u10D0-\\\\u10FA\\\\u10FC-\\\\u1248\\\\u124A-\\\\u124D\\\\u1250-\\\\u1256\\\\u1258\\\\u125A-\\\\u125D\\\\u1260-\\\\u1288\\\\u128A-\\\\u128D\\\\u1290-\\\\u12B0\\\\u12B2-\\\\u12B5\\\\u12B8-\\\\u12BE\\\\u12C0\\\\u12C2-\\\\u12C5\\\\u12C8-\\\\u12D6\\\\u12D8-\\\\u1310\\\\u1312-\\\\u1315\\\\u1318-\\\\u135A\\\\u1380-\\\\u138F\\\\u13A0-\\\\u13F4\\\\u1401-\\\\u166C\\\\u166F-\\\\u167F\\\\u1681-\\\\u169A\\\\u16A0-\\\\u16EA\\\\u16EE-\\\\u16F8\\\\u1700-\\\\u170C\\\\u170E-\\\\u1711\\\\u1720-\\\\u1731\\\\u1740-\\\\u1751\\\\u1760-\\\\u176C\\\\u176E-\\\\u1770\\\\u1780-\\\\u17B3\\\\u17D7\\\\u17DC\\\\u1820-\\\\u1877\\\\u1880-\\\\u18A8\\\\u18AA\\\\u18B0-\\\\u18F5\\\\u1900-\\\\u191E\\\\u1950-\\\\u196D\\\\u1970-\\\\u1974\\\\u1980-\\\\u19AB\\\\u19C1-\\\\u19C7\\\\u1A00-\\\\u1A16\\\\u1A20-\\\\u1A54\\\\u1AA7\\\\u1B05-\\\\u1B33\\\\u1B45-\\\\u1B4B\\\\u1B83-\\\\u1BA0\\\\u1BAE\\\\u1BAF\\\\u1BBA-\\\\u1BE5\\\\u1C00-\\\\u1C23\\\\u1C4D-\\\\u1C4F\\\\u1C5A-\\\\u1C7D\\\\u1CE9-\\\\u1CEC\\\\u1CEE-\\\\u1CF1\\\\u1CF5\\\\u1CF6\\\\u1D00-\\\\u1DBF\\\\u1E00-\\\\u1F15\\\\u1F18-\\\\u1F1D\\\\u1F20-\\\\u1F45\\\\u1F48-\\\\u1F4D\\\\u1F50-\\\\u1F57\\\\u1F59\\\\u1F5B\\\\u1F5D\\\\u1F5F-\\\\u1F7D\\\\u1F80-\\\\u1FB4\\\\u1FB6-\\\\u1FBC\\\\u1FBE\\\\u1FC2-\\\\u1FC4\\\\u1FC6-\\\\u1FCC\\\\u1FD0-\\\\u1FD3\\\\u1FD6-\\\\u1FDB\\\\u1FE0-\\\\u1FEC\\\\u1FF2-\\\\u1FF4\\\\u1FF6-\\\\u1FFC\\\\u2071\\\\u207F\\\\u2090-\\\\u209C\\\\u2102\\\\u2107\\\\u210A-\\\\u2113\\\\u2115\\\\u2119-\\\\u211D\\\\u2124\\\\u2126\\\\u2128\\\\u212A-\\\\u212D\\\\u212F-\\\\u2139\\\\u213C-\\\\u213F\\\\u2145-\\\\u2149\\\\u214E\\\\u2160-\\\\u2188\\\\u2C00-\\\\u2C2E\\\\u2C30-\\\\u2C5E\\\\u2C60-\\\\u2CE4\\\\u2CEB-\\\\u2CEE\\\\u2CF2\\\\u2CF3\\\\u2D00-\\\\u2D25\\\\u2D27\\\\u2D2D\\\\u2D30-\\\\u2D67\\\\u2D6F\\\\u2D80-\\\\u2D96\\\\u2DA0-\\\\u2DA6\\\\u2DA8-\\\\u2DAE\\\\u2DB0-\\\\u2DB6\\\\u2DB8-\\\\u2DBE\\\\u2DC0-\\\\u2DC6\\\\u2DC8-\\\\u2DCE\\\\u2DD0-\\\\u2DD6\\\\u2DD8-\\\\u2DDE\\\\u2E2F\\\\u3005-\\\\u3007\\\\u3021-\\\\u3029\\\\u3031-\\\\u3035\\\\u3038-\\\\u303C\\\\u3041-\\\\u3096\\\\u309D-\\\\u309F\\\\u30A1-\\\\u30FA\\\\u30FC-\\\\u30FF\\\\u3105-\\\\u312D\\\\u3131-\\\\u318E\\\\u31A0-\\\\u31BA\\\\u31F0-\\\\u31FF\\\\u3400-\\\\u4DB5\\\\u4E00-\\\\u9FCC\\\\uA000-\\\\uA48C\\\\uA4D0-\\\\uA4FD\\\\uA500-\\\\uA60C\\\\uA610-\\\\uA61F\\\\uA62A\\\\uA62B\\\\uA640-\\\\uA66E\\\\uA67F-\\\\uA69D\\\\uA6A0-\\\\uA6EF\\\\uA717-\\\\uA71F\\\\uA722-\\\\uA788\\\\uA78B-\\\\uA78E\\\\uA790-\\\\uA7AD\\\\uA7B0\\\\uA7B1\\\\uA7F7-\\\\uA801\\\\uA803-\\\\uA805\\\\uA807-\\\\uA80A\\\\uA80C-\\\\uA822\\\\uA840-\\\\uA873\\\\uA882-\\\\uA8B3\\\\uA8F2-\\\\uA8F7\\\\uA8FB\\\\uA90A-\\\\uA925\\\\uA930-\\\\uA946\\\\uA960-\\\\uA97C\\\\uA984-\\\\uA9B2\\\\uA9CF\\\\uA9E0-\\\\uA9E4\\\\uA9E6-\\\\uA9EF\\\\uA9FA-\\\\uA9FE\\\\uAA00-\\\\uAA28\\\\uAA40-\\\\uAA42\\\\uAA44-\\\\uAA4B\\\\uAA60-\\\\uAA76\\\\uAA7A\\\\uAA7E-\\\\uAAAF\\\\uAAB1\\\\uAAB5\\\\uAAB6\\\\uAAB9-\\\\uAABD\\\\uAAC0\\\\uAAC2\\\\uAADB-\\\\uAADD\\\\uAAE0-\\\\uAAEA\\\\uAAF2-\\\\uAAF4\\\\uAB01-\\\\uAB06\\\\uAB09-\\\\uAB0E\\\\uAB11-\\\\uAB16\\\\uAB20-\\\\uAB26\\\\uAB28-\\\\uAB2E\\\\uAB30-\\\\uAB5A\\\\uAB5C-\\\\uAB5F\\\\uAB64\\\\uAB65\\\\uABC0-\\\\uABE2\\\\uAC00-\\\\uD7A3\\\\uD7B0-\\\\uD7C6\\\\uD7CB-\\\\uD7FB\\\\uF900-\\\\uFA6D\\\\uFA70-\\\\uFAD9\\\\uFB00-\\\\uFB06\\\\uFB13-\\\\uFB17\\\\uFB1D\\\\uFB1F-\\\\uFB28\\\\uFB2A-\\\\uFB36\\\\uFB38-\\\\uFB3C\\\\uFB3E\\\\uFB40\\\\uFB41\\\\uFB43\\\\uFB44\\\\uFB46-\\\\uFBB1\\\\uFBD3-\\\\uFD3D\\\\uFD50-\\\\uFD8F\\\\uFD92-\\\\uFDC7\\\\uFDF0-\\\\uFDFB\\\\uFE70-\\\\uFE74\\\\uFE76-\\\\uFEFC\\\\uFF21-\\\\uFF3A\\\\uFF41-\\\\uFF5A\\\\uFF66-\\\\uFFBE\\\\uFFC2-\\\\uFFC7\\\\uFFCA-\\\\uFFCF\\\\uFFD2-\\\\uFFD7\\\\uFFDA-\\\\uFFDC]'),\n // eslint-disable-next-line no-misleading-character-class\n RegexNonAsciiIdentifierPart = new RegExp('[\\\\xAA\\\\xB5\\\\xBA\\\\xC0-\\\\xD6\\\\xD8-\\\\xF6\\\\xF8-\\\\u02C1\\\\u02C6-\\\\u02D1\\\\u02E0-\\\\u02E4\\\\u02EC\\\\u02EE\\\\u0300-\\\\u0374\\\\u0376\\\\u0377\\\\u037A-\\\\u037D\\\\u037F\\\\u0386\\\\u0388-\\\\u038A\\\\u038C\\\\u038E-\\\\u03A1\\\\u03A3-\\\\u03F5\\\\u03F7-\\\\u0481\\\\u0483-\\\\u0487\\\\u048A-\\\\u052F\\\\u0531-\\\\u0556\\\\u0559\\\\u0561-\\\\u0587\\\\u0591-\\\\u05BD\\\\u05BF\\\\u05C1\\\\u05C2\\\\u05C4\\\\u05C5\\\\u05C7\\\\u05D0-\\\\u05EA\\\\u05F0-\\\\u05F2\\\\u0610-\\\\u061A\\\\u0620-\\\\u0669\\\\u066E-\\\\u06D3\\\\u06D5-\\\\u06DC\\\\u06DF-\\\\u06E8\\\\u06EA-\\\\u06FC\\\\u06FF\\\\u0710-\\\\u074A\\\\u074D-\\\\u07B1\\\\u07C0-\\\\u07F5\\\\u07FA\\\\u0800-\\\\u082D\\\\u0840-\\\\u085B\\\\u08A0-\\\\u08B2\\\\u08E4-\\\\u0963\\\\u0966-\\\\u096F\\\\u0971-\\\\u0983\\\\u0985-\\\\u098C\\\\u098F\\\\u0990\\\\u0993-\\\\u09A8\\\\u09AA-\\\\u09B0\\\\u09B2\\\\u09B6-\\\\u09B9\\\\u09BC-\\\\u09C4\\\\u09C7\\\\u09C8\\\\u09CB-\\\\u09CE\\\\u09D7\\\\u09DC\\\\u09DD\\\\u09DF-\\\\u09E3\\\\u09E6-\\\\u09F1\\\\u0A01-\\\\u0A03\\\\u0A05-\\\\u0A0A\\\\u0A0F\\\\u0A10\\\\u0A13-\\\\u0A28\\\\u0A2A-\\\\u0A30\\\\u0A32\\\\u0A33\\\\u0A35\\\\u0A36\\\\u0A38\\\\u0A39\\\\u0A3C\\\\u0A3E-\\\\u0A42\\\\u0A47\\\\u0A48\\\\u0A4B-\\\\u0A4D\\\\u0A51\\\\u0A59-\\\\u0A5C\\\\u0A5E\\\\u0A66-\\\\u0A75\\\\u0A81-\\\\u0A83\\\\u0A85-\\\\u0A8D\\\\u0A8F-\\\\u0A91\\\\u0A93-\\\\u0AA8\\\\u0AAA-\\\\u0AB0\\\\u0AB2\\\\u0AB3\\\\u0AB5-\\\\u0AB9\\\\u0ABC-\\\\u0AC5\\\\u0AC7-\\\\u0AC9\\\\u0ACB-\\\\u0ACD\\\\u0AD0\\\\u0AE0-\\\\u0AE3\\\\u0AE6-\\\\u0AEF\\\\u0B01-\\\\u0B03\\\\u0B05-\\\\u0B0C\\\\u0B0F\\\\u0B10\\\\u0B13-\\\\u0B28\\\\u0B2A-\\\\u0B30\\\\u0B32\\\\u0B33\\\\u0B35-\\\\u0B39\\\\u0B3C-\\\\u0B44\\\\u0B47\\\\u0B48\\\\u0B4B-\\\\u0B4D\\\\u0B56\\\\u0B57\\\\u0B5C\\\\u0B5D\\\\u0B5F-\\\\u0B63\\\\u0B66-\\\\u0B6F\\\\u0B71\\\\u0B82\\\\u0B83\\\\u0B85-\\\\u0B8A\\\\u0B8E-\\\\u0B90\\\\u0B92-\\\\u0B95\\\\u0B99\\\\u0B9A\\\\u0B9C\\\\u0B9E\\\\u0B9F\\\\u0BA3\\\\u0BA4\\\\u0BA8-\\\\u0BAA\\\\u0BAE-\\\\u0BB9\\\\u0BBE-\\\\u0BC2\\\\u0BC6-\\\\u0BC8\\\\u0BCA-\\\\u0BCD\\\\u0BD0\\\\u0BD7\\\\u0BE6-\\\\u0BEF\\\\u0C00-\\\\u0C03\\\\u0C05-\\\\u0C0C\\\\u0C0E-\\\\u0C10\\\\u0C12-\\\\u0C28\\\\u0C2A-\\\\u0C39\\\\u0C3D-\\\\u0C44\\\\u0C46-\\\\u0C48\\\\u0C4A-\\\\u0C4D\\\\u0C55\\\\u0C56\\\\u0C58\\\\u0C59\\\\u0C60-\\\\u0C63\\\\u0C66-\\\\u0C6F\\\\u0C81-\\\\u0C83\\\\u0C85-\\\\u0C8C\\\\u0C8E-\\\\u0C90\\\\u0C92-\\\\u0CA8\\\\u0CAA-\\\\u0CB3\\\\u0CB5-\\\\u0CB9\\\\u0CBC-\\\\u0CC4\\\\u0CC6-\\\\u0CC8\\\\u0CCA-\\\\u0CCD\\\\u0CD5\\\\u0CD6\\\\u0CDE\\\\u0CE0-\\\\u0CE3\\\\u0CE6-\\\\u0CEF\\\\u0CF1\\\\u0CF2\\\\u0D01-\\\\u0D03\\\\u0D05-\\\\u0D0C\\\\u0D0E-\\\\u0D10\\\\u0D12-\\\\u0D3A\\\\u0D3D-\\\\u0D44\\\\u0D46-\\\\u0D48\\\\u0D4A-\\\\u0D4E\\\\u0D57\\\\u0D60-\\\\u0D63\\\\u0D66-\\\\u0D6F\\\\u0D7A-\\\\u0D7F\\\\u0D82\\\\u0D83\\\\u0D85-\\\\u0D96\\\\u0D9A-\\\\u0DB1\\\\u0DB3-\\\\u0DBB\\\\u0DBD\\\\u0DC0-\\\\u0DC6\\\\u0DCA\\\\u0DCF-\\\\u0DD4\\\\u0DD6\\\\u0DD8-\\\\u0DDF\\\\u0DE6-\\\\u0DEF\\\\u0DF2\\\\u0DF3\\\\u0E01-\\\\u0E3A\\\\u0E40-\\\\u0E4E\\\\u0E50-\\\\u0E59\\\\u0E81\\\\u0E82\\\\u0E84\\\\u0E87\\\\u0E88\\\\u0E8A\\\\u0E8D\\\\u0E94-\\\\u0E97\\\\u0E99-\\\\u0E9F\\\\u0EA1-\\\\u0EA3\\\\u0EA5\\\\u0EA7\\\\u0EAA\\\\u0EAB\\\\u0EAD-\\\\u0EB9\\\\u0EBB-\\\\u0EBD\\\\u0EC0-\\\\u0EC4\\\\u0EC6\\\\u0EC8-\\\\u0ECD\\\\u0ED0-\\\\u0ED9\\\\u0EDC-\\\\u0EDF\\\\u0F00\\\\u0F18\\\\u0F19\\\\u0F20-\\\\u0F29\\\\u0F35\\\\u0F37\\\\u0F39\\\\u0F3E-\\\\u0F47\\\\u0F49-\\\\u0F6C\\\\u0F71-\\\\u0F84\\\\u0F86-\\\\u0F97\\\\u0F99-\\\\u0FBC\\\\u0FC6\\\\u1000-\\\\u1049\\\\u1050-\\\\u109D\\\\u10A0-\\\\u10C5\\\\u10C7\\\\u10CD\\\\u10D0-\\\\u10FA\\\\u10FC-\\\\u1248\\\\u124A-\\\\u124D\\\\u1250-\\\\u1256\\\\u1258\\\\u125A-\\\\u125D\\\\u1260-\\\\u1288\\\\u128A-\\\\u128D\\\\u1290-\\\\u12B0\\\\u12B2-\\\\u12B5\\\\u12B8-\\\\u12BE\\\\u12C0\\\\u12C2-\\\\u12C5\\\\u12C8-\\\\u12D6\\\\u12D8-\\\\u1310\\\\u1312-\\\\u1315\\\\u1318-\\\\u135A\\\\u135D-\\\\u135F\\\\u1380-\\\\u138F\\\\u13A0-\\\\u13F4\\\\u1401-\\\\u166C\\\\u166F-\\\\u167F\\\\u1681-\\\\u169A\\\\u16A0-\\\\u16EA\\\\u16EE-\\\\u16F8\\\\u1700-\\\\u170C\\\\u170E-\\\\u1714\\\\u1720-\\\\u1734\\\\u1740-\\\\u1753\\\\u1760-\\\\u176C\\\\u176E-\\\\u1770\\\\u1772\\\\u1773\\\\u1780-\\\\u17D3\\\\u17D7\\\\u17DC\\\\u17DD\\\\u17E0-\\\\u17E9\\\\u180B-\\\\u180D\\\\u1810-\\\\u1819\\\\u1820-\\\\u1877\\\\u1880-\\\\u18AA\\\\u18B0-\\\\u18F5\\\\u1900-\\\\u191E\\\\u1920-\\\\u192B\\\\u1930-\\\\u193B\\\\u1946-\\\\u196D\\\\u1970-\\\\u1974\\\\u1980-\\\\u19AB\\\\u19B0-\\\\u19C9\\\\u19D0-\\\\u19D9\\\\u1A00-\\\\u1A1B\\\\u1A20-\\\\u1A5E\\\\u1A60-\\\\u1A7C\\\\u1A7F-\\\\u1A89\\\\u1A90-\\\\u1A99\\\\u1AA7\\\\u1AB0-\\\\u1ABD\\\\u1B00-\\\\u1B4B\\\\u1B50-\\\\u1B59\\\\u1B6B-\\\\u1B73\\\\u1B80-\\\\u1BF3\\\\u1C00-\\\\u1C37\\\\u1C40-\\\\u1C49\\\\u1C4D-\\\\u1C7D\\\\u1CD0-\\\\u1CD2\\\\u1CD4-\\\\u1CF6\\\\u1CF8\\\\u1CF9\\\\u1D00-\\\\u1DF5\\\\u1DFC-\\\\u1F15\\\\u1F18-\\\\u1F1D\\\\u1F20-\\\\u1F45\\\\u1F48-\\\\u1F4D\\\\u1F50-\\\\u1F57\\\\u1F59\\\\u1F5B\\\\u1F5D\\\\u1F5F-\\\\u1F7D\\\\u1F80-\\\\u1FB4\\\\u1FB6-\\\\u1FBC\\\\u1FBE\\\\u1FC2-\\\\u1FC4\\\\u1FC6-\\\\u1FCC\\\\u1FD0-\\\\u1FD3\\\\u1FD6-\\\\u1FDB\\\\u1FE0-\\\\u1FEC\\\\u1FF2-\\\\u1FF4\\\\u1FF6-\\\\u1FFC\\\\u200C\\\\u200D\\\\u203F\\\\u2040\\\\u2054\\\\u2071\\\\u207F\\\\u2090-\\\\u209C\\\\u20D0-\\\\u20DC\\\\u20E1\\\\u20E5-\\\\u20F0\\\\u2102\\\\u2107\\\\u210A-\\\\u2113\\\\u2115\\\\u2119-\\\\u211D\\\\u2124\\\\u2126\\\\u2128\\\\u212A-\\\\u212D\\\\u212F-\\\\u2139\\\\u213C-\\\\u213F\\\\u2145-\\\\u2149\\\\u214E\\\\u2160-\\\\u2188\\\\u2C00-\\\\u2C2E\\\\u2C30-\\\\u2C5E\\\\u2C60-\\\\u2CE4\\\\u2CEB-\\\\u2CF3\\\\u2D00-\\\\u2D25\\\\u2D27\\\\u2D2D\\\\u2D30-\\\\u2D67\\\\u2D6F\\\\u2D7F-\\\\u2D96\\\\u2DA0-\\\\u2DA6\\\\u2DA8-\\\\u2DAE\\\\u2DB0-\\\\u2DB6\\\\u2DB8-\\\\u2DBE\\\\u2DC0-\\\\u2DC6\\\\u2DC8-\\\\u2DCE\\\\u2DD0-\\\\u2DD6\\\\u2DD8-\\\\u2DDE\\\\u2DE0-\\\\u2DFF\\\\u2E2F\\\\u3005-\\\\u3007\\\\u3021-\\\\u302F\\\\u3031-\\\\u3035\\\\u3038-\\\\u303C\\\\u3041-\\\\u3096\\\\u3099\\\\u309A\\\\u309D-\\\\u309F\\\\u30A1-\\\\u30FA\\\\u30FC-\\\\u30FF\\\\u3105-\\\\u312D\\\\u3131-\\\\u318E\\\\u31A0-\\\\u31BA\\\\u31F0-\\\\u31FF\\\\u3400-\\\\u4DB5\\\\u4E00-\\\\u9FCC\\\\uA000-\\\\uA48C\\\\uA4D0-\\\\uA4FD\\\\uA500-\\\\uA60C\\\\uA610-\\\\uA62B\\\\uA640-\\\\uA66F\\\\uA674-\\\\uA67D\\\\uA67F-\\\\uA69D\\\\uA69F-\\\\uA6F1\\\\uA717-\\\\uA71F\\\\uA722-\\\\uA788\\\\uA78B-\\\\uA78E\\\\uA790-\\\\uA7AD\\\\uA7B0\\\\uA7B1\\\\uA7F7-\\\\uA827\\\\uA840-\\\\uA873\\\\uA880-\\\\uA8C4\\\\uA8D0-\\\\uA8D9\\\\uA8E0-\\\\uA8F7\\\\uA8FB\\\\uA900-\\\\uA92D\\\\uA930-\\\\uA953\\\\uA960-\\\\uA97C\\\\uA980-\\\\uA9C0\\\\uA9CF-\\\\uA9D9\\\\uA9E0-\\\\uA9FE\\\\uAA00-\\\\uAA36\\\\uAA40-\\\\uAA4D\\\\uAA50-\\\\uAA59\\\\uAA60-\\\\uAA76\\\\uAA7A-\\\\uAAC2\\\\uAADB-\\\\uAADD\\\\uAAE0-\\\\uAAEF\\\\uAAF2-\\\\uAAF6\\\\uAB01-\\\\uAB06\\\\uAB09-\\\\uAB0E\\\\uAB11-\\\\uAB16\\\\uAB20-\\\\uAB26\\\\uAB28-\\\\uAB2E\\\\uAB30-\\\\uAB5A\\\\uAB5C-\\\\uAB5F\\\\uAB64\\\\uAB65\\\\uABC0-\\\\uABEA\\\\uABEC\\\\uABED\\\\uABF0-\\\\uABF9\\\\uAC00-\\\\uD7A3\\\\uD7B0-\\\\uD7C6\\\\uD7CB-\\\\uD7FB\\\\uF900-\\\\uFA6D\\\\uFA70-\\\\uFAD9\\\\uFB00-\\\\uFB06\\\\uFB13-\\\\uFB17\\\\uFB1D-\\\\uFB28\\\\uFB2A-\\\\uFB36\\\\uFB38-\\\\uFB3C\\\\uFB3E\\\\uFB40\\\\uFB41\\\\uFB43\\\\uFB44\\\\uFB46-\\\\uFBB1\\\\uFBD3-\\\\uFD3D\\\\uFD50-\\\\uFD8F\\\\uFD92-\\\\uFDC7\\\\uFDF0-\\\\uFDFB\\\\uFE00-\\\\uFE0F\\\\uFE20-\\\\uFE2D\\\\uFE33\\\\uFE34\\\\uFE4D-\\\\uFE4F\\\\uFE70-\\\\uFE74\\\\uFE76-\\\\uFEFC\\\\uFF10-\\\\uFF19\\\\uFF21-\\\\uFF3A\\\\uFF3F\\\\uFF41-\\\\uFF5A\\\\uFF66-\\\\uFFBE\\\\uFFC2-\\\\uFFC7\\\\uFFCA-\\\\uFFCF\\\\uFFD2-\\\\uFFD7\\\\uFFDA-\\\\uFFDC]');\n\n// Ensure the condition is true, otherwise throw an error.\n// This is only to have a better contract semantic, i.e. another safety net\n// to catch a logic error. The condition shall be fulfilled in normal case.\n// Do NOT use this to enforce a certain condition on any user input.\n\nfunction assert(condition, message) {\n /* istanbul ignore next */\n if (!condition) {\n throw new Error('ASSERT: ' + message);\n }\n}\nfunction isDecimalDigit(ch) {\n return ch >= 0x30 && ch <= 0x39; // 0..9\n}\n\nfunction isHexDigit(ch) {\n return '0123456789abcdefABCDEF'.indexOf(ch) >= 0;\n}\nfunction isOctalDigit(ch) {\n return '01234567'.indexOf(ch) >= 0;\n}\n\n// 7.2 White Space\n\nfunction isWhiteSpace(ch) {\n return ch === 0x20 || ch === 0x09 || ch === 0x0B || ch === 0x0C || ch === 0xA0 || ch >= 0x1680 && [0x1680, 0x180E, 0x2000, 0x2001, 0x2002, 0x2003, 0x2004, 0x2005, 0x2006, 0x2007, 0x2008, 0x2009, 0x200A, 0x202F, 0x205F, 0x3000, 0xFEFF].indexOf(ch) >= 0;\n}\n\n// 7.3 Line Terminators\n\nfunction isLineTerminator(ch) {\n return ch === 0x0A || ch === 0x0D || ch === 0x2028 || ch === 0x2029;\n}\n\n// 7.6 Identifier Names and Identifiers\n\nfunction isIdentifierStart(ch) {\n return ch === 0x24 || ch === 0x5F ||\n // $ (dollar) and _ (underscore)\n ch >= 0x41 && ch <= 0x5A ||\n // A..Z\n ch >= 0x61 && ch <= 0x7A ||\n // a..z\n ch === 0x5C ||\n // \\ (backslash)\n ch >= 0x80 && RegexNonAsciiIdentifierStart.test(String.fromCharCode(ch));\n}\nfunction isIdentifierPart(ch) {\n return ch === 0x24 || ch === 0x5F ||\n // $ (dollar) and _ (underscore)\n ch >= 0x41 && ch <= 0x5A ||\n // A..Z\n ch >= 0x61 && ch <= 0x7A ||\n // a..z\n ch >= 0x30 && ch <= 0x39 ||\n // 0..9\n ch === 0x5C ||\n // \\ (backslash)\n ch >= 0x80 && RegexNonAsciiIdentifierPart.test(String.fromCharCode(ch));\n}\n\n// 7.6.1.1 Keywords\n\nconst keywords = {\n 'if': 1,\n 'in': 1,\n 'do': 1,\n 'var': 1,\n 'for': 1,\n 'new': 1,\n 'try': 1,\n 'let': 1,\n 'this': 1,\n 'else': 1,\n 'case': 1,\n 'void': 1,\n 'with': 1,\n 'enum': 1,\n 'while': 1,\n 'break': 1,\n 'catch': 1,\n 'throw': 1,\n 'const': 1,\n 'yield': 1,\n 'class': 1,\n 'super': 1,\n 'return': 1,\n 'typeof': 1,\n 'delete': 1,\n 'switch': 1,\n 'export': 1,\n 'import': 1,\n 'public': 1,\n 'static': 1,\n 'default': 1,\n 'finally': 1,\n 'extends': 1,\n 'package': 1,\n 'private': 1,\n 'function': 1,\n 'continue': 1,\n 'debugger': 1,\n 'interface': 1,\n 'protected': 1,\n 'instanceof': 1,\n 'implements': 1\n};\nfunction skipComment() {\n while (index < length) {\n const ch = source.charCodeAt(index);\n if (isWhiteSpace(ch) || isLineTerminator(ch)) {\n ++index;\n } else {\n break;\n }\n }\n}\nfunction scanHexEscape(prefix) {\n var i,\n len,\n ch,\n code = 0;\n len = prefix === 'u' ? 4 : 2;\n for (i = 0; i < len; ++i) {\n if (index < length && isHexDigit(source[index])) {\n ch = source[index++];\n code = code * 16 + '0123456789abcdef'.indexOf(ch.toLowerCase());\n } else {\n throwError({}, MessageUnexpectedToken, ILLEGAL);\n }\n }\n return String.fromCharCode(code);\n}\nfunction scanUnicodeCodePointEscape() {\n var ch, code, cu1, cu2;\n ch = source[index];\n code = 0;\n\n // At least, one hex digit is required.\n if (ch === '}') {\n throwError({}, MessageUnexpectedToken, ILLEGAL);\n }\n while (index < length) {\n ch = source[index++];\n if (!isHexDigit(ch)) {\n break;\n }\n code = code * 16 + '0123456789abcdef'.indexOf(ch.toLowerCase());\n }\n if (code > 0x10FFFF || ch !== '}') {\n throwError({}, MessageUnexpectedToken, ILLEGAL);\n }\n\n // UTF-16 Encoding\n if (code <= 0xFFFF) {\n return String.fromCharCode(code);\n }\n cu1 = (code - 0x10000 >> 10) + 0xD800;\n cu2 = (code - 0x10000 & 1023) + 0xDC00;\n return String.fromCharCode(cu1, cu2);\n}\nfunction getEscapedIdentifier() {\n var ch, id;\n ch = source.charCodeAt(index++);\n id = String.fromCharCode(ch);\n\n // '\\u' (U+005C, U+0075) denotes an escaped character.\n if (ch === 0x5C) {\n if (source.charCodeAt(index) !== 0x75) {\n throwError({}, MessageUnexpectedToken, ILLEGAL);\n }\n ++index;\n ch = scanHexEscape('u');\n if (!ch || ch === '\\\\' || !isIdentifierStart(ch.charCodeAt(0))) {\n throwError({}, MessageUnexpectedToken, ILLEGAL);\n }\n id = ch;\n }\n while (index < length) {\n ch = source.charCodeAt(index);\n if (!isIdentifierPart(ch)) {\n break;\n }\n ++index;\n id += String.fromCharCode(ch);\n\n // '\\u' (U+005C, U+0075) denotes an escaped character.\n if (ch === 0x5C) {\n id = id.substr(0, id.length - 1);\n if (source.charCodeAt(index) !== 0x75) {\n throwError({}, MessageUnexpectedToken, ILLEGAL);\n }\n ++index;\n ch = scanHexEscape('u');\n if (!ch || ch === '\\\\' || !isIdentifierPart(ch.charCodeAt(0))) {\n throwError({}, MessageUnexpectedToken, ILLEGAL);\n }\n id += ch;\n }\n }\n return id;\n}\nfunction getIdentifier() {\n var start, ch;\n start = index++;\n while (index < length) {\n ch = source.charCodeAt(index);\n if (ch === 0x5C) {\n // Blackslash (U+005C) marks Unicode escape sequence.\n index = start;\n return getEscapedIdentifier();\n }\n if (isIdentifierPart(ch)) {\n ++index;\n } else {\n break;\n }\n }\n return source.slice(start, index);\n}\nfunction scanIdentifier() {\n var start, id, type;\n start = index;\n\n // Backslash (U+005C) starts an escaped character.\n id = source.charCodeAt(index) === 0x5C ? getEscapedIdentifier() : getIdentifier();\n\n // There is no keyword or literal with only one character.\n // Thus, it must be an identifier.\n if (id.length === 1) {\n type = TokenIdentifier;\n } else if (keywords.hasOwnProperty(id)) {\n // eslint-disable-line no-prototype-builtins\n type = TokenKeyword;\n } else if (id === 'null') {\n type = TokenNullLiteral;\n } else if (id === 'true' || id === 'false') {\n type = TokenBooleanLiteral;\n } else {\n type = TokenIdentifier;\n }\n return {\n type: type,\n value: id,\n start: start,\n end: index\n };\n}\n\n// 7.7 Punctuators\n\nfunction scanPunctuator() {\n var start = index,\n code = source.charCodeAt(index),\n code2,\n ch1 = source[index],\n ch2,\n ch3,\n ch4;\n switch (code) {\n // Check for most common single-character punctuators.\n case 0x2E: // . dot\n case 0x28: // ( open bracket\n case 0x29: // ) close bracket\n case 0x3B: // ; semicolon\n case 0x2C: // , comma\n case 0x7B: // { open curly brace\n case 0x7D: // } close curly brace\n case 0x5B: // [\n case 0x5D: // ]\n case 0x3A: // :\n case 0x3F: // ?\n case 0x7E:\n // ~\n ++index;\n return {\n type: TokenPunctuator,\n value: String.fromCharCode(code),\n start: start,\n end: index\n };\n default:\n code2 = source.charCodeAt(index + 1);\n\n // '=' (U+003D) marks an assignment or comparison operator.\n if (code2 === 0x3D) {\n switch (code) {\n case 0x2B: // +\n case 0x2D: // -\n case 0x2F: // /\n case 0x3C: // <\n case 0x3E: // >\n case 0x5E: // ^\n case 0x7C: // |\n case 0x25: // %\n case 0x26: // &\n case 0x2A:\n // *\n index += 2;\n return {\n type: TokenPunctuator,\n value: String.fromCharCode(code) + String.fromCharCode(code2),\n start: start,\n end: index\n };\n case 0x21: // !\n case 0x3D:\n // =\n index += 2;\n\n // !== and ===\n if (source.charCodeAt(index) === 0x3D) {\n ++index;\n }\n return {\n type: TokenPunctuator,\n value: source.slice(start, index),\n start: start,\n end: index\n };\n }\n }\n }\n\n // 4-character punctuator: >>>=\n\n ch4 = source.substr(index, 4);\n if (ch4 === '>>>=') {\n index += 4;\n return {\n type: TokenPunctuator,\n value: ch4,\n start: start,\n end: index\n };\n }\n\n // 3-character punctuators: === !== >>> <<= >>=\n\n ch3 = ch4.substr(0, 3);\n if (ch3 === '>>>' || ch3 === '<<=' || ch3 === '>>=') {\n index += 3;\n return {\n type: TokenPunctuator,\n value: ch3,\n start: start,\n end: index\n };\n }\n\n // Other 2-character punctuators: ++ -- << >> && ||\n ch2 = ch3.substr(0, 2);\n if (ch1 === ch2[1] && '+-<>&|'.indexOf(ch1) >= 0 || ch2 === '=>') {\n index += 2;\n return {\n type: TokenPunctuator,\n value: ch2,\n start: start,\n end: index\n };\n }\n if (ch2 === '//') {\n throwError({}, MessageUnexpectedToken, ILLEGAL);\n }\n\n // 1-character punctuators: < > = ! + - * % & | ^ /\n\n if ('<>=!+-*%&|^/'.indexOf(ch1) >= 0) {\n ++index;\n return {\n type: TokenPunctuator,\n value: ch1,\n start: start,\n end: index\n };\n }\n throwError({}, MessageUnexpectedToken, ILLEGAL);\n}\n\n// 7.8.3 Numeric Literals\n\nfunction scanHexLiteral(start) {\n let number = '';\n while (index < length) {\n if (!isHexDigit(source[index])) {\n break;\n }\n number += source[index++];\n }\n if (number.length === 0) {\n throwError({}, MessageUnexpectedToken, ILLEGAL);\n }\n if (isIdentifierStart(source.charCodeAt(index))) {\n throwError({}, MessageUnexpectedToken, ILLEGAL);\n }\n return {\n type: TokenNumericLiteral,\n value: parseInt('0x' + number, 16),\n start: start,\n end: index\n };\n}\nfunction scanOctalLiteral(start) {\n let number = '0' + source[index++];\n while (index < length) {\n if (!isOctalDigit(source[index])) {\n break;\n }\n number += source[index++];\n }\n if (isIdentifierStart(source.charCodeAt(index)) || isDecimalDigit(source.charCodeAt(index))) {\n throwError({}, MessageUnexpectedToken, ILLEGAL);\n }\n return {\n type: TokenNumericLiteral,\n value: parseInt(number, 8),\n octal: true,\n start: start,\n end: index\n };\n}\nfunction scanNumericLiteral() {\n var number, start, ch;\n ch = source[index];\n assert(isDecimalDigit(ch.charCodeAt(0)) || ch === '.', 'Numeric literal must start with a decimal digit or a decimal point');\n start = index;\n number = '';\n if (ch !== '.') {\n number = source[index++];\n ch = source[index];\n\n // Hex number starts with '0x'.\n // Octal number starts with '0'.\n if (number === '0') {\n if (ch === 'x' || ch === 'X') {\n ++index;\n return scanHexLiteral(start);\n }\n if (isOctalDigit(ch)) {\n return scanOctalLiteral(start);\n }\n\n // decimal number starts with '0' such as '09' is illegal.\n if (ch && isDecimalDigit(ch.charCodeAt(0))) {\n throwError({}, MessageUnexpectedToken, ILLEGAL);\n }\n }\n while (isDecimalDigit(source.charCodeAt(index))) {\n number += source[index++];\n }\n ch = source[index];\n }\n if (ch === '.') {\n number += source[index++];\n while (isDecimalDigit(source.charCodeAt(index))) {\n number += source[index++];\n }\n ch = source[index];\n }\n if (ch === 'e' || ch === 'E') {\n number += source[index++];\n ch = source[index];\n if (ch === '+' || ch === '-') {\n number += source[index++];\n }\n if (isDecimalDigit(source.charCodeAt(index))) {\n while (isDecimalDigit(source.charCodeAt(index))) {\n number += source[index++];\n }\n } else {\n throwError({}, MessageUnexpectedToken, ILLEGAL);\n }\n }\n if (isIdentifierStart(source.charCodeAt(index))) {\n throwError({}, MessageUnexpectedToken, ILLEGAL);\n }\n return {\n type: TokenNumericLiteral,\n value: parseFloat(number),\n start: start,\n end: index\n };\n}\n\n// 7.8.4 String Literals\n\nfunction scanStringLiteral() {\n var str = '',\n quote,\n start,\n ch,\n code,\n octal = false;\n quote = source[index];\n assert(quote === '\\'' || quote === '\"', 'String literal must starts with a quote');\n start = index;\n ++index;\n while (index < length) {\n ch = source[index++];\n if (ch === quote) {\n quote = '';\n break;\n } else if (ch === '\\\\') {\n ch = source[index++];\n if (!ch || !isLineTerminator(ch.charCodeAt(0))) {\n switch (ch) {\n case 'u':\n case 'x':\n if (source[index] === '{') {\n ++index;\n str += scanUnicodeCodePointEscape();\n } else {\n str += scanHexEscape(ch);\n }\n break;\n case 'n':\n str += '\\n';\n break;\n case 'r':\n str += '\\r';\n break;\n case 't':\n str += '\\t';\n break;\n case 'b':\n str += '\\b';\n break;\n case 'f':\n str += '\\f';\n break;\n case 'v':\n str += '\\x0B';\n break;\n default:\n if (isOctalDigit(ch)) {\n code = '01234567'.indexOf(ch);\n\n // \\0 is not octal escape sequence\n if (code !== 0) {\n octal = true;\n }\n if (index < length && isOctalDigit(source[index])) {\n octal = true;\n code = code * 8 + '01234567'.indexOf(source[index++]);\n\n // 3 digits are only allowed when string starts\n // with 0, 1, 2, 3\n if ('0123'.indexOf(ch) >= 0 && index < length && isOctalDigit(source[index])) {\n code = code * 8 + '01234567'.indexOf(source[index++]);\n }\n }\n str += String.fromCharCode(code);\n } else {\n str += ch;\n }\n break;\n }\n } else {\n if (ch === '\\r' && source[index] === '\\n') {\n ++index;\n }\n }\n } else if (isLineTerminator(ch.charCodeAt(0))) {\n break;\n } else {\n str += ch;\n }\n }\n if (quote !== '') {\n throwError({}, MessageUnexpectedToken, ILLEGAL);\n }\n return {\n type: TokenStringLiteral,\n value: str,\n octal: octal,\n start: start,\n end: index\n };\n}\nfunction testRegExp(pattern, flags) {\n let tmp = pattern;\n if (flags.indexOf('u') >= 0) {\n // Replace each astral symbol and every Unicode code point\n // escape sequence with a single ASCII symbol to avoid throwing on\n // regular expressions that are only valid in combination with the\n // `/u` flag.\n // Note: replacing with the ASCII symbol `x` might cause false\n // negatives in unlikely scenarios. For example, `[\\u{61}-b]` is a\n // perfectly valid pattern that is equivalent to `[a-b]`, but it\n // would be replaced by `[x-b]` which throws an error.\n tmp = tmp.replace(/\\\\u\\{([0-9a-fA-F]+)\\}/g, ($0, $1) => {\n if (parseInt($1, 16) <= 0x10FFFF) {\n return 'x';\n }\n throwError({}, MessageInvalidRegExp);\n }).replace(/[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g, 'x');\n }\n\n // First, detect invalid regular expressions.\n try {\n new RegExp(tmp);\n } catch (e) {\n throwError({}, MessageInvalidRegExp);\n }\n\n // Return a regular expression object for this pattern-flag pair, or\n // `null` in case the current environment doesn't support the flags it\n // uses.\n try {\n return new RegExp(pattern, flags);\n } catch (exception) {\n return null;\n }\n}\nfunction scanRegExpBody() {\n var ch, str, classMarker, terminated, body;\n ch = source[index];\n assert(ch === '/', 'Regular expression literal must start with a slash');\n str = source[index++];\n classMarker = false;\n terminated = false;\n while (index < length) {\n ch = source[index++];\n str += ch;\n if (ch === '\\\\') {\n ch = source[index++];\n // ECMA-262 7.8.5\n if (isLineTerminator(ch.charCodeAt(0))) {\n throwError({}, MessageUnterminatedRegExp);\n }\n str += ch;\n } else if (isLineTerminator(ch.charCodeAt(0))) {\n throwError({}, MessageUnterminatedRegExp);\n } else if (classMarker) {\n if (ch === ']') {\n classMarker = false;\n }\n } else {\n if (ch === '/') {\n terminated = true;\n break;\n } else if (ch === '[') {\n classMarker = true;\n }\n }\n }\n if (!terminated) {\n throwError({}, MessageUnterminatedRegExp);\n }\n\n // Exclude leading and trailing slash.\n body = str.substr(1, str.length - 2);\n return {\n value: body,\n literal: str\n };\n}\nfunction scanRegExpFlags() {\n var ch, str, flags;\n str = '';\n flags = '';\n while (index < length) {\n ch = source[index];\n if (!isIdentifierPart(ch.charCodeAt(0))) {\n break;\n }\n ++index;\n if (ch === '\\\\' && index < length) {\n throwError({}, MessageUnexpectedToken, ILLEGAL);\n } else {\n flags += ch;\n str += ch;\n }\n }\n if (flags.search(/[^gimuy]/g) >= 0) {\n throwError({}, MessageInvalidRegExp, flags);\n }\n return {\n value: flags,\n literal: str\n };\n}\nfunction scanRegExp() {\n var start, body, flags, value;\n lookahead = null;\n skipComment();\n start = index;\n body = scanRegExpBody();\n flags = scanRegExpFlags();\n value = testRegExp(body.value, flags.value);\n return {\n literal: body.literal + flags.literal,\n value: value,\n regex: {\n pattern: body.value,\n flags: flags.value\n },\n start: start,\n end: index\n };\n}\nfunction isIdentifierName(token) {\n return token.type === TokenIdentifier || token.type === TokenKeyword || token.type === TokenBooleanLiteral || token.type === TokenNullLiteral;\n}\nfunction advance() {\n skipComment();\n if (index >= length) {\n return {\n type: TokenEOF,\n start: index,\n end: index\n };\n }\n const ch = source.charCodeAt(index);\n if (isIdentifierStart(ch)) {\n return scanIdentifier();\n }\n\n // Very common: ( and ) and ;\n if (ch === 0x28 || ch === 0x29 || ch === 0x3B) {\n return scanPunctuator();\n }\n\n // String literal starts with single quote (U+0027) or double quote (U+0022).\n if (ch === 0x27 || ch === 0x22) {\n return scanStringLiteral();\n }\n\n // Dot (.) U+002E can also start a floating-point number, hence the need\n // to check the next character.\n if (ch === 0x2E) {\n if (isDecimalDigit(source.charCodeAt(index + 1))) {\n return scanNumericLiteral();\n }\n return scanPunctuator();\n }\n if (isDecimalDigit(ch)) {\n return scanNumericLiteral();\n }\n return scanPunctuator();\n}\nfunction lex() {\n const token = lookahead;\n index = token.end;\n lookahead = advance();\n index = token.end;\n return token;\n}\nfunction peek() {\n const pos = index;\n lookahead = advance();\n index = pos;\n}\nfunction finishArrayExpression(elements) {\n const node = new ASTNode(SyntaxArrayExpression);\n node.elements = elements;\n return node;\n}\nfunction finishBinaryExpression(operator, left, right) {\n const node = new ASTNode(operator === '||' || operator === '&&' ? SyntaxLogicalExpression : SyntaxBinaryExpression);\n node.operator = operator;\n node.left = left;\n node.right = right;\n return node;\n}\nfunction finishCallExpression(callee, args) {\n const node = new ASTNode(SyntaxCallExpression);\n node.callee = callee;\n node.arguments = args;\n return node;\n}\nfunction finishConditionalExpression(test, consequent, alternate) {\n const node = new ASTNode(SyntaxConditionalExpression);\n node.test = test;\n node.consequent = consequent;\n node.alternate = alternate;\n return node;\n}\nfunction finishIdentifier(name) {\n const node = new ASTNode(SyntaxIdentifier);\n node.name = name;\n return node;\n}\nfunction finishLiteral(token) {\n const node = new ASTNode(SyntaxLiteral);\n node.value = token.value;\n node.raw = source.slice(token.start, token.end);\n if (token.regex) {\n if (node.raw === '//') {\n node.raw = '/(?:)/';\n }\n node.regex = token.regex;\n }\n return node;\n}\nfunction finishMemberExpression(accessor, object, property) {\n const node = new ASTNode(SyntaxMemberExpression);\n node.computed = accessor === '[';\n node.object = object;\n node.property = property;\n if (!node.computed) property.member = true;\n return node;\n}\nfunction finishObjectExpression(properties) {\n const node = new ASTNode(SyntaxObjectExpression);\n node.properties = properties;\n return node;\n}\nfunction finishProperty(kind, key, value) {\n const node = new ASTNode(SyntaxProperty);\n node.key = key;\n node.value = value;\n node.kind = kind;\n return node;\n}\nfunction finishUnaryExpression(operator, argument) {\n const node = new ASTNode(SyntaxUnaryExpression);\n node.operator = operator;\n node.argument = argument;\n node.prefix = true;\n return node;\n}\n\n// Throw an exception\n\nfunction throwError(token, messageFormat) {\n var error,\n args = Array.prototype.slice.call(arguments, 2),\n msg = messageFormat.replace(/%(\\d)/g, (whole, index) => {\n assert(index < args.length, 'Message reference must be in range');\n return args[index];\n });\n error = new Error(msg);\n error.index = index;\n error.description = msg;\n throw error;\n}\n\n// Throw an exception because of the token.\n\nfunction throwUnexpected(token) {\n if (token.type === TokenEOF) {\n throwError(token, MessageUnexpectedEOS);\n }\n if (token.type === TokenNumericLiteral) {\n throwError(token, MessageUnexpectedNumber);\n }\n if (token.type === TokenStringLiteral) {\n throwError(token, MessageUnexpectedString);\n }\n if (token.type === TokenIdentifier) {\n throwError(token, MessageUnexpectedIdentifier);\n }\n if (token.type === TokenKeyword) {\n throwError(token, MessageUnexpectedReserved);\n }\n\n // BooleanLiteral, NullLiteral, or Punctuator.\n throwError(token, MessageUnexpectedToken, token.value);\n}\n\n// Expect the next token to match the specified punctuator.\n// If not, an exception will be thrown.\n\nfunction expect(value) {\n const token = lex();\n if (token.type !== TokenPunctuator || token.value !== value) {\n throwUnexpected(token);\n }\n}\n\n// Return true if the next token matches the specified punctuator.\n\nfunction match(value) {\n return lookahead.type === TokenPunctuator && lookahead.value === value;\n}\n\n// Return true if the next token matches the specified keyword\n\nfunction matchKeyword(keyword) {\n return lookahead.type === TokenKeyword && lookahead.value === keyword;\n}\n\n// 11.1.4 Array Initialiser\n\nfunction parseArrayInitialiser() {\n const elements = [];\n index = lookahead.start;\n expect('[');\n while (!match(']')) {\n if (match(',')) {\n lex();\n elements.push(null);\n } else {\n elements.push(parseConditionalExpression());\n if (!match(']')) {\n expect(',');\n }\n }\n }\n lex();\n return finishArrayExpression(elements);\n}\n\n// 11.1.5 Object Initialiser\n\nfunction parseObjectPropertyKey() {\n index = lookahead.start;\n const token = lex();\n\n // Note: This function is called only from parseObjectProperty(), where\n // EOF and Punctuator tokens are already filtered out.\n\n if (token.type === TokenStringLiteral || token.type === TokenNumericLiteral) {\n if (token.octal) {\n throwError(token, MessageStrictOctalLiteral);\n }\n return finishLiteral(token);\n }\n return finishIdentifier(token.value);\n}\nfunction parseObjectProperty() {\n var token, key, id, value;\n index = lookahead.start;\n token = lookahead;\n if (token.type === TokenIdentifier) {\n id = parseObjectPropertyKey();\n expect(':');\n value = parseConditionalExpression();\n return finishProperty('init', id, value);\n }\n if (token.type === TokenEOF || token.type === TokenPunctuator) {\n throwUnexpected(token);\n } else {\n key = parseObjectPropertyKey();\n expect(':');\n value = parseConditionalExpression();\n return finishProperty('init', key, value);\n }\n}\nfunction parseObjectInitialiser() {\n var properties = [],\n property,\n name,\n key,\n map = {},\n toString = String;\n index = lookahead.start;\n expect('{');\n while (!match('}')) {\n property = parseObjectProperty();\n if (property.key.type === SyntaxIdentifier) {\n name = property.key.name;\n } else {\n name = toString(property.key.value);\n }\n key = '$' + name;\n if (Object.prototype.hasOwnProperty.call(map, key)) {\n throwError({}, MessageStrictDuplicateProperty);\n } else {\n map[key] = true;\n }\n properties.push(property);\n if (!match('}')) {\n expect(',');\n }\n }\n expect('}');\n return finishObjectExpression(properties);\n}\n\n// 11.1.6 The Grouping Operator\n\nfunction parseGroupExpression() {\n expect('(');\n const expr = parseExpression();\n expect(')');\n return expr;\n}\n\n// 11.1 Primary Expressions\n\nconst legalKeywords = {\n 'if': 1\n};\nfunction parsePrimaryExpression() {\n var type, token, expr;\n if (match('(')) {\n return parseGroupExpression();\n }\n if (match('[')) {\n return parseArrayInitialiser();\n }\n if (match('{')) {\n return parseObjectInitialiser();\n }\n type = lookahead.type;\n index = lookahead.start;\n if (type === TokenIdentifier || legalKeywords[lookahead.value]) {\n expr = finishIdentifier(lex().value);\n } else if (type === TokenStringLiteral || type === TokenNumericLiteral) {\n if (lookahead.octal) {\n throwError(lookahead, MessageStrictOctalLiteral);\n }\n expr = finishLiteral(lex());\n } else if (type === TokenKeyword) {\n throw new Error(DISABLED);\n } else if (type === TokenBooleanLiteral) {\n token = lex();\n token.value = token.value === 'true';\n expr = finishLiteral(token);\n } else if (type === TokenNullLiteral) {\n token = lex();\n token.value = null;\n expr = finishLiteral(token);\n } else if (match('/') || match('/=')) {\n expr = finishLiteral(scanRegExp());\n peek();\n } else {\n throwUnexpected(lex());\n }\n return expr;\n}\n\n// 11.2 Left-Hand-Side Expressions\n\nfunction parseArguments() {\n const args = [];\n expect('(');\n if (!match(')')) {\n while (index < length) {\n args.push(parseConditionalExpression());\n if (match(')')) {\n break;\n }\n expect(',');\n }\n }\n expect(')');\n return args;\n}\nfunction parseNonComputedProperty() {\n index = lookahead.start;\n const token = lex();\n if (!isIdentifierName(token)) {\n throwUnexpected(token);\n }\n return finishIdentifier(token.value);\n}\nfunction parseNonComputedMember() {\n expect('.');\n return parseNonComputedProperty();\n}\nfunction parseComputedMember() {\n expect('[');\n const expr = parseExpression();\n expect(']');\n return expr;\n}\nfunction parseLeftHandSideExpressionAllowCall() {\n var expr, args, property;\n expr = parsePrimaryExpression();\n for (;;) {\n if (match('.')) {\n property = parseNonComputedMember();\n expr = finishMemberExpression('.', expr, property);\n } else if (match('(')) {\n args = parseArguments();\n expr = finishCallExpression(expr, args);\n } else if (match('[')) {\n property = parseComputedMember();\n expr = finishMemberExpression('[', expr, property);\n } else {\n break;\n }\n }\n return expr;\n}\n\n// 11.3 Postfix Expressions\n\nfunction parsePostfixExpression() {\n const expr = parseLeftHandSideExpressionAllowCall();\n if (lookahead.type === TokenPunctuator) {\n if (match('++') || match('--')) {\n throw new Error(DISABLED);\n }\n }\n return expr;\n}\n\n// 11.4 Unary Operators\n\nfunction parseUnaryExpression() {\n var token, expr;\n if (lookahead.type !== TokenPunctuator && lookahead.type !== TokenKeyword) {\n expr = parsePostfixExpression();\n } else if (match('++') || match('--')) {\n throw new Error(DISABLED);\n } else if (match('+') || match('-') || match('~') || match('!')) {\n token = lex();\n expr = parseUnaryExpression();\n expr = finishUnaryExpression(token.value, expr);\n } else if (matchKeyword('delete') || matchKeyword('void') || matchKeyword('typeof')) {\n throw new Error(DISABLED);\n } else {\n expr = parsePostfixExpression();\n }\n return expr;\n}\nfunction binaryPrecedence(token) {\n let prec = 0;\n if (token.type !== TokenPunctuator && token.type !== TokenKeyword) {\n return 0;\n }\n switch (token.value) {\n case '||':\n prec = 1;\n break;\n case '&&':\n prec = 2;\n break;\n case '|':\n prec = 3;\n break;\n case '^':\n prec = 4;\n break;\n case '&':\n prec = 5;\n break;\n case '==':\n case '!=':\n case '===':\n case '!==':\n prec = 6;\n break;\n case '<':\n case '>':\n case '<=':\n case '>=':\n case 'instanceof':\n case 'in':\n prec = 7;\n break;\n case '<<':\n case '>>':\n case '>>>':\n prec = 8;\n break;\n case '+':\n case '-':\n prec = 9;\n break;\n case '*':\n case '/':\n case '%':\n prec = 11;\n break;\n }\n return prec;\n}\n\n// 11.5 Multiplicative Operators\n// 11.6 Additive Operators\n// 11.7 Bitwise Shift Operators\n// 11.8 Relational Operators\n// 11.9 Equality Operators\n// 11.10 Binary Bitwise Operators\n// 11.11 Binary Logical Operators\n\nfunction parseBinaryExpression() {\n var marker, markers, expr, token, prec, stack, right, operator, left, i;\n marker = lookahead;\n left = parseUnaryExpression();\n token = lookahead;\n prec = binaryPrecedence(token);\n if (prec === 0) {\n return left;\n }\n token.prec = prec;\n lex();\n markers = [marker, lookahead];\n right = parseUnaryExpression();\n stack = [left, token, right];\n while ((prec = binaryPrecedence(lookahead)) > 0) {\n // Reduce: make a binary expression from the three topmost entries.\n while (stack.length > 2 && prec <= stack[stack.length - 2].prec) {\n right = stack.pop();\n operator = stack.pop().value;\n left = stack.pop();\n markers.pop();\n expr = finishBinaryExpression(operator, left, right);\n stack.push(expr);\n }\n\n // Shift.\n token = lex();\n token.prec = prec;\n stack.push(token);\n markers.push(lookahead);\n expr = parseUnaryExpression();\n stack.push(expr);\n }\n\n // Final reduce to clean-up the stack.\n i = stack.length - 1;\n expr = stack[i];\n markers.pop();\n while (i > 1) {\n markers.pop();\n expr = finishBinaryExpression(stack[i - 1].value, stack[i - 2], expr);\n i -= 2;\n }\n return expr;\n}\n\n// 11.12 Conditional Operator\n\nfunction parseConditionalExpression() {\n var expr, consequent, alternate;\n expr = parseBinaryExpression();\n if (match('?')) {\n lex();\n consequent = parseConditionalExpression();\n expect(':');\n alternate = parseConditionalExpression();\n expr = finishConditionalExpression(expr, consequent, alternate);\n }\n return expr;\n}\n\n// 11.14 Comma Operator\n\nfunction parseExpression() {\n const expr = parseConditionalExpression();\n if (match(',')) {\n throw new Error(DISABLED); // no sequence expressions\n }\n\n return expr;\n}\nfunction parser (code) {\n source = code;\n index = 0;\n length = source.length;\n lookahead = null;\n peek();\n const expr = parseExpression();\n if (lookahead.type !== TokenEOF) {\n throw new Error('Unexpect token after expression.');\n }\n return expr;\n}\n\nvar Constants = {\n NaN: 'NaN',\n E: 'Math.E',\n LN2: 'Math.LN2',\n LN10: 'Math.LN10',\n LOG2E: 'Math.LOG2E',\n LOG10E: 'Math.LOG10E',\n PI: 'Math.PI',\n SQRT1_2: 'Math.SQRT1_2',\n SQRT2: 'Math.SQRT2',\n MIN_VALUE: 'Number.MIN_VALUE',\n MAX_VALUE: 'Number.MAX_VALUE'\n};\n\nfunction Functions (codegen) {\n function fncall(name, args, cast, type) {\n let obj = codegen(args[0]);\n if (cast) {\n obj = cast + '(' + obj + ')';\n if (cast.lastIndexOf('new ', 0) === 0) obj = '(' + obj + ')';\n }\n return obj + '.' + name + (type < 0 ? '' : type === 0 ? '()' : '(' + args.slice(1).map(codegen).join(',') + ')');\n }\n function fn(name, cast, type) {\n return args => fncall(name, args, cast, type);\n }\n const DATE = 'new Date',\n STRING = 'String',\n REGEXP = 'RegExp';\n return {\n // MATH functions\n isNaN: 'Number.isNaN',\n isFinite: 'Number.isFinite',\n abs: 'Math.abs',\n acos: 'Math.acos',\n asin: 'Math.asin',\n atan: 'Math.atan',\n atan2: 'Math.atan2',\n ceil: 'Math.ceil',\n cos: 'Math.cos',\n exp: 'Math.exp',\n floor: 'Math.floor',\n log: 'Math.log',\n max: 'Math.max',\n min: 'Math.min',\n pow: 'Math.pow',\n random: 'Math.random',\n round: 'Math.round',\n sin: 'Math.sin',\n sqrt: 'Math.sqrt',\n tan: 'Math.tan',\n clamp: function (args) {\n if (args.length < 3) error('Missing arguments to clamp function.');\n if (args.length > 3) error('Too many arguments to clamp function.');\n const a = args.map(codegen);\n return 'Math.max(' + a[1] + ', Math.min(' + a[2] + ',' + a[0] + '))';\n },\n // DATE functions\n now: 'Date.now',\n utc: 'Date.UTC',\n datetime: DATE,\n date: fn('getDate', DATE, 0),\n day: fn('getDay', DATE, 0),\n year: fn('getFullYear', DATE, 0),\n month: fn('getMonth', DATE, 0),\n hours: fn('getHours', DATE, 0),\n minutes: fn('getMinutes', DATE, 0),\n seconds: fn('getSeconds', DATE, 0),\n milliseconds: fn('getMilliseconds', DATE, 0),\n time: fn('getTime', DATE, 0),\n timezoneoffset: fn('getTimezoneOffset', DATE, 0),\n utcdate: fn('getUTCDate', DATE, 0),\n utcday: fn('getUTCDay', DATE, 0),\n utcyear: fn('getUTCFullYear', DATE, 0),\n utcmonth: fn('getUTCMonth', DATE, 0),\n utchours: fn('getUTCHours', DATE, 0),\n utcminutes: fn('getUTCMinutes', DATE, 0),\n utcseconds: fn('getUTCSeconds', DATE, 0),\n utcmilliseconds: fn('getUTCMilliseconds', DATE, 0),\n // sequence functions\n length: fn('length', null, -1),\n // STRING functions\n parseFloat: 'parseFloat',\n parseInt: 'parseInt',\n upper: fn('toUpperCase', STRING, 0),\n lower: fn('toLowerCase', STRING, 0),\n substring: fn('substring', STRING),\n split: fn('split', STRING),\n trim: fn('trim', STRING, 0),\n // REGEXP functions\n regexp: REGEXP,\n test: fn('test', REGEXP),\n // Control Flow functions\n if: function (args) {\n if (args.length < 3) error('Missing arguments to if function.');\n if (args.length > 3) error('Too many arguments to if function.');\n const a = args.map(codegen);\n return '(' + a[0] + '?' + a[1] + ':' + a[2] + ')';\n }\n };\n}\n\nfunction stripQuotes(s) {\n const n = s && s.length - 1;\n return n && (s[0] === '\"' && s[n] === '\"' || s[0] === '\\'' && s[n] === '\\'') ? s.slice(1, -1) : s;\n}\nfunction codegen (opt) {\n opt = opt || {};\n const allowed = opt.allowed ? toSet(opt.allowed) : {},\n forbidden = opt.forbidden ? toSet(opt.forbidden) : {},\n constants = opt.constants || Constants,\n functions = (opt.functions || Functions)(visit),\n globalvar = opt.globalvar,\n fieldvar = opt.fieldvar,\n outputGlobal = isFunction(globalvar) ? globalvar : id => `${globalvar}[\"${id}\"]`;\n let globals = {},\n fields = {},\n memberDepth = 0;\n function visit(ast) {\n if (isString(ast)) return ast;\n const generator = Generators[ast.type];\n if (generator == null) error('Unsupported type: ' + ast.type);\n return generator(ast);\n }\n const Generators = {\n Literal: n => n.raw,\n Identifier: n => {\n const id = n.name;\n if (memberDepth > 0) {\n return id;\n } else if (hasOwnProperty(forbidden, id)) {\n return error('Illegal identifier: ' + id);\n } else if (hasOwnProperty(constants, id)) {\n return constants[id];\n } else if (hasOwnProperty(allowed, id)) {\n return id;\n } else {\n globals[id] = 1;\n return outputGlobal(id);\n }\n },\n MemberExpression: n => {\n const d = !n.computed,\n o = visit(n.object);\n if (d) memberDepth += 1;\n const p = visit(n.property);\n if (o === fieldvar) {\n // strip quotes to sanitize field name (#1653)\n fields[stripQuotes(p)] = 1;\n }\n if (d) memberDepth -= 1;\n return o + (d ? '.' + p : '[' + p + ']');\n },\n CallExpression: n => {\n if (n.callee.type !== 'Identifier') {\n error('Illegal callee type: ' + n.callee.type);\n }\n const callee = n.callee.name,\n args = n.arguments,\n fn = hasOwnProperty(functions, callee) && functions[callee];\n if (!fn) error('Unrecognized function: ' + callee);\n return isFunction(fn) ? fn(args) : fn + '(' + args.map(visit).join(',') + ')';\n },\n ArrayExpression: n => '[' + n.elements.map(visit).join(',') + ']',\n BinaryExpression: n => '(' + visit(n.left) + ' ' + n.operator + ' ' + visit(n.right) + ')',\n UnaryExpression: n => '(' + n.operator + visit(n.argument) + ')',\n ConditionalExpression: n => '(' + visit(n.test) + '?' + visit(n.consequent) + ':' + visit(n.alternate) + ')',\n LogicalExpression: n => '(' + visit(n.left) + n.operator + visit(n.right) + ')',\n ObjectExpression: n => '{' + n.properties.map(visit).join(',') + '}',\n Property: n => {\n memberDepth += 1;\n const k = visit(n.key);\n memberDepth -= 1;\n return k + ':' + visit(n.value);\n }\n };\n function codegen(ast) {\n const result = {\n code: visit(ast),\n globals: Object.keys(globals),\n fields: Object.keys(fields)\n };\n globals = {};\n fields = {};\n return result;\n }\n codegen.functions = functions;\n codegen.constants = constants;\n return codegen;\n}\n\nexport { ASTNode, ArrayExpression, BinaryExpression, CallExpression, ConditionalExpression, Identifier, Literal, LogicalExpression, MemberExpression, ObjectExpression, Property, RawCode, UnaryExpression, codegen as codegenExpression, Constants as constants, Functions as functions, parser as parseExpression };\n"],"names":["ILLEGAL","DEFAULT_MARKS","arc","area","group","image","line","path","rect","rule","shape","symbol","text","trail","DEFAULT_SOURCE","MARKS","eventSelector","selector","source","marks","parseMerge","trim","map","parseSelector","find","s","i","endChar","pushChar","popChar","n","length","c","count","indexOf","output","start","LBRACK","RBRACK","push","substring","b","slice","stream","between","parseBetween","j","filter","throttle","markname","lastIndexOf","a","split","_","x","parseThrottle","e","test","type","marktype","consume","debounce","parseStream","Literal","CallExpression","ASTNode","this","TokenName","index","lookahead","prototype","visit","visitor","node","elements","left","right","callee","concat","arguments","consequent","alternate","object","property","properties","key","value","argument","children","SyntaxIdentifier","MessageUnexpectedToken","MessageInvalidRegExp","MessageUnterminatedRegExp","MessageStrictOctalLiteral","DISABLED","RegexNonAsciiIdentifierStart","RegExp","RegexNonAsciiIdentifierPart","assert","condition","message","Error","isDecimalDigit","ch","isHexDigit","isOctalDigit","isWhiteSpace","isLineTerminator","isIdentifierStart","String","fromCharCode","isIdentifierPart","keywords","skipComment","charCodeAt","scanHexEscape","prefix","len","code","toLowerCase","throwError","scanUnicodeCodePointEscape","cu1","cu2","getEscapedIdentifier","id","substr","scanPunctuator","code2","ch2","ch3","ch4","ch1","end","scanNumericLiteral","number","parseInt","scanHexLiteral","octal","scanOctalLiteral","parseFloat","advance","getIdentifier","hasOwnProperty","quote","str","scanStringLiteral","lex","token","peek","pos","finishBinaryExpression","operator","finishCallExpression","args","finishIdentifier","name","finishLiteral","raw","regex","finishMemberExpression","accessor","computed","member","finishProperty","kind","messageFormat","error","Array","call","msg","replace","whole","description","throwUnexpected","expect","match","matchKeyword","keyword","parseObjectPropertyKey","parseObjectProperty","parseConditionalExpression","legalKeywords","parsePrimaryExpression","expr","body","flags","parseExpression","parseGroupExpression","finishArrayExpression","parseArrayInitialiser","toString","Object","finishObjectExpression","parseObjectInitialiser","classMarker","terminated","literal","scanRegExpBody","search","scanRegExpFlags","pattern","tmp","$0","$1","exception","testRegExp","parseArguments","parseComputedMember","parsePostfixExpression","isIdentifierName","parseNonComputedProperty","parseLeftHandSideExpressionAllowCall","parseUnaryExpression","finishUnaryExpression","binaryPrecedence","prec","marker","markers","stack","pop","parseBinaryExpression","finishConditionalExpression","parser","Constants","NaN","E","LN2","LN10","LOG2E","LOG10E","PI","SQRT1_2","SQRT2","MIN_VALUE","MAX_VALUE","Functions","codegen","fn","cast","obj","join","fncall","DATE","STRING","REGEXP","isNaN","isFinite","abs","acos","asin","atan","atan2","ceil","cos","exp","floor","log","max","min","pow","random","round","sin","sqrt","tan","clamp","now","utc","datetime","date","day","year","month","hours","minutes","seconds","milliseconds","time","timezoneoffset","utcdate","utcday","utcyear","utcmonth","utchours","utcminutes","utcseconds","utcmilliseconds","upper","lower","regexp","if","opt","allowed","forbidden","constants","functions","globalvar","fieldvar","outputGlobal","globals","fields","memberDepth","ast","generator","Generators","Identifier","MemberExpression","d","o","p","stripQuotes","ArrayExpression","BinaryExpression","UnaryExpression","ConditionalExpression","LogicalExpression","ObjectExpression","Property","k","result","keys"],"sourceRoot":""} \ No newline at end of file diff --git a/_static/build/6136.b8ba2b2.js b/_static/build/6136.b8ba2b2.js new file mode 100644 index 0000000..e03aab9 --- /dev/null +++ b/_static/build/6136.b8ba2b2.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[6136],{46136:(e,t,n)=>{n.r(t),n.d(t,{Commands:()=>S,default:()=>I,tabSpaceStatus:()=>y});var o=n(67504),a=n(2814),r=n(84853),d=n(69041),i=n(84920),c=n(6624),l=n(44761),s=n(49005),u=n(15786),m=n(16725),g=n(4265),f=n(94519),p=n(55941),C=n(59674);const b="notebook:toggle-autoclosing-brackets",v="console:toggle-autoclosing-brackets";var h;!function(e){e.createNew="fileeditor:create-new",e.createNewMarkdown="fileeditor:create-new-markdown-file",e.changeFontSize="fileeditor:change-font-size",e.lineNumbers="fileeditor:toggle-line-numbers",e.lineWrap="fileeditor:toggle-line-wrap",e.changeTabs="fileeditor:change-tabs",e.matchBrackets="fileeditor:toggle-match-brackets",e.autoClosingBrackets="fileeditor:toggle-autoclosing-brackets",e.autoClosingBracketsUniversal="fileeditor:toggle-autoclosing-brackets-universal",e.createConsole="fileeditor:create-console",e.replaceSelection="fileeditor:replace-selection",e.runCode="fileeditor:run-code",e.runAllCode="fileeditor:run-all",e.markdownPreview="fileeditor:markdown-preview",e.undo="fileeditor:undo",e.redo="fileeditor:redo",e.cut="fileeditor:cut",e.copy="fileeditor:copy",e.paste="fileeditor:paste",e.selectAll="fileeditor:select-all"}(h||(h={}));const _="Editor",w=["autoClosingBrackets","codeFolding","cursorBlinkRate","fontFamily","fontSize","insertSpaces","lineHeight","lineNumbers","lineWrap","matchBrackets","readOnly","rulers","showTrailingSpace","tabSize","wordWrapColumn"];function k(e){const t=Object.assign({},e);for(let t of Object.keys(e))w.includes(t)||delete e[t];return t}let x=k(r.CodeEditor.defaultConfig);var S;!function(e){function t(e){return async function(t,n){var o;const a=n||{},r=await e.execute("console:create",{activate:a.activate,name:null===(o=t.context.contentsModel)||void 0===o?void 0:o.name,path:t.context.path,preferredLanguage:t.context.model.defaultKernelLanguage,ref:t.id,insertMode:"split-bottom"});t.context.pathChanged.connect(((e,n)=>{var o;r.session.setPath(n),r.session.setName(null===(o=t.context.contentsModel)||void 0===o?void 0:o.name)}))}}function n(e){e.editor.setOptions(Object.assign({},x))}function o(e,t,n,o){e.addCommand(h.changeFontSize,{execute:e=>{const n=Number(e.delta);if(Number.isNaN(n))return void console.error(`${h.changeFontSize}: delta arg must be a number`);const a=window.getComputedStyle(document.documentElement),r=parseInt(a.getPropertyValue("--jp-code-font-size"),10),d=x.fontSize||r;return x.fontSize=d+n,t.set(o,"editorConfig",x).catch((e=>{console.error(`Failed to set ${o}: ${e.message}`)}))},label:e=>{var t;return(null!==(t=e.delta)&&void 0!==t?t:0)>0?e.isMenu?n.__("Increase Text Editor Font Size"):n.__("Increase Font Size"):e.isMenu?n.__("Decrease Text Editor Font Size"):n.__("Decrease Font Size")}})}function d(e,t,n,o,a){e.addCommand(h.lineNumbers,{execute:()=>(x.lineNumbers=!x.lineNumbers,t.set(o,"editorConfig",x).catch((e=>{console.error(`Failed to set ${o}: ${e.message}`)}))),isEnabled:a,isToggled:()=>x.lineNumbers,label:n.__("Line Numbers")})}function i(e,t,n,o,a){e.addCommand(h.lineWrap,{execute:e=>(x.lineWrap=e.mode||"off",t.set(o,"editorConfig",x).catch((e=>{console.error(`Failed to set ${o}: ${e.message}`)}))),isEnabled:a,isToggled:e=>{const t=e.mode||"off";return x.lineWrap===t},label:n.__("Word Wrap")})}function c(e,t,n,o){e.addCommand(h.changeTabs,{label:e=>{var t;return e.insertSpaces?n._n("Spaces: %1","Spaces: %1",null!==(t=e.size)&&void 0!==t?t:0):n.__("Indent with Tab")},execute:e=>(x.tabSize=e.size||4,x.insertSpaces=!!e.insertSpaces,t.set(o,"editorConfig",x).catch((e=>{console.error(`Failed to set ${o}: ${e.message}`)}))),isToggled:e=>{const t=!!e.insertSpaces,n=e.size||4;return x.insertSpaces===t&&x.tabSize===n}})}function l(e,t,n,o,a){e.addCommand(h.matchBrackets,{execute:()=>(x.matchBrackets=!x.matchBrackets,t.set(o,"editorConfig",x).catch((e=>{console.error(`Failed to set ${o}: ${e.message}`)}))),label:n.__("Match Brackets"),isEnabled:a,isToggled:()=>x.matchBrackets})}function s(e,t,n,o){e.addCommand(h.autoClosingBrackets,{execute:e=>{var n;return x.autoClosingBrackets=!!(null!==(n=e.force)&&void 0!==n?n:!x.autoClosingBrackets),t.set(o,"editorConfig",x).catch((e=>{console.error(`Failed to set ${o}: ${e.message}`)}))},label:n.__("Auto Close Brackets for Text Editor"),isToggled:()=>x.autoClosingBrackets}),e.addCommand(h.autoClosingBracketsUniversal,{execute:()=>{e.isToggled(h.autoClosingBrackets)||e.isToggled(b)||e.isToggled(v)?(e.execute(h.autoClosingBrackets,{force:!1}),e.execute(b,{force:!1}),e.execute(v,{force:!1})):(e.execute(h.autoClosingBrackets,{force:!0}),e.execute(b,{force:!0}),e.execute(v,{force:!0}))},label:n.__("Auto Close Brackets"),isToggled:()=>e.isToggled(h.autoClosingBrackets)||e.isToggled(b)||e.isToggled(v)})}function u(e,t,n,o){e.addCommand(h.replaceSelection,{execute:e=>{var n,o;const a=e.text||"",r=t.currentWidget;r&&(null===(o=(n=r.content.editor).replaceSelection)||void 0===o||o.call(n,a))},isEnabled:o,label:n.__("Replace Selection in Editor")})}function m(e,n,o,a){e.addCommand(h.createConsole,{execute:o=>{const a=n.currentWidget;if(a)return t(e)(a,o)},isEnabled:a,icon:C.consoleIcon,label:o.__("Create Console for Editor")})}function g(e,t,n,o){e.addCommand(h.runCode,{execute:()=>{var n;const o=null===(n=t.currentWidget)||void 0===n?void 0:n.content;if(!o)return;let a="";const r=o.editor,d=o.context.path,i=p.PathExt.extname(d),c=r.getSelection(),{start:l,end:s}=c;let u=l.column!==s.column||l.line!==s.line;if(u){const e=r.getOffsetAt(c.start),t=r.getOffsetAt(c.end);a=r.model.value.text.substring(e,t)}else if(p.MarkdownCodeBlocks.isMarkdown(i)){const{text:e}=r.model.value,t=p.MarkdownCodeBlocks.findMarkdownCodeBlocks(e);for(const e of t)if(e.startLine<=l.line&&l.line<=e.endLine){a=e.code,u=!0;break}}if(!u){a=r.getLine(c.start.line);const e=r.getCursorPosition();if(e.line+1===r.lineCount){const e=r.model.value.text;r.model.value.text=e+"\n"}r.setCursorPosition({line:e.line+1,column:e.column})}return a?e.execute("console:inject",{activate:!1,code:a,path:d}):Promise.resolve(void 0)},isEnabled:o,label:n.__("Run Code")})}function f(e,t,n,o){e.addCommand(h.runAllCode,{execute:()=>{var n;const o=null===(n=t.currentWidget)||void 0===n?void 0:n.content;if(!o)return;let a="";const r=o.editor.model.value.text,d=o.context.path,i=p.PathExt.extname(d);if(p.MarkdownCodeBlocks.isMarkdown(i)){const e=p.MarkdownCodeBlocks.findMarkdownCodeBlocks(r);for(const t of e)a+=t.code}else a=r;return a?e.execute("console:inject",{activate:!1,code:a,path:d}):Promise.resolve(void 0)},isEnabled:o,label:n.__("Run All Code")})}function w(e,t,n){e.addCommand(h.markdownPreview,{execute:()=>{const n=t.currentWidget;if(!n)return;const o=n.context.path;return e.execute("markdownviewer:open",{path:o,options:{mode:"split-right"}})},isVisible:()=>{const e=t.currentWidget;return e&&".md"===p.PathExt.extname(e.context.path)||!1},icon:C.markdownIcon,label:n.__("Show Markdown Preview")})}function S(e,t,n,o){e.addCommand(h.undo,{execute:()=>{var e;const n=null===(e=t.currentWidget)||void 0===e?void 0:e.content;n&&n.editor.undo()},isEnabled:()=>{var e;return!!o()&&!!(null===(e=t.currentWidget)||void 0===e?void 0:e.content)},icon:C.undoIcon.bindprops({stylesheet:"menuItem"}),label:n.__("Undo")})}function T(e,t,n,o){e.addCommand(h.redo,{execute:()=>{var e;const n=null===(e=t.currentWidget)||void 0===e?void 0:e.content;n&&n.editor.redo()},isEnabled:()=>{var e;return!!o()&&!!(null===(e=t.currentWidget)||void 0===e?void 0:e.content)},icon:C.redoIcon.bindprops({stylesheet:"menuItem"}),label:n.__("Redo")})}function y(e,t,n,o){e.addCommand(h.cut,{execute:()=>{var e;const n=null===(e=t.currentWidget)||void 0===e?void 0:e.content;if(!n)return;const o=n.editor,r=N(o);a.Clipboard.copyToSystem(r),o.replaceSelection&&o.replaceSelection("")},isEnabled:()=>{var e;if(!o())return!1;const n=null===(e=t.currentWidget)||void 0===e?void 0:e.content;return!!n&&W(n.editor)},icon:C.cutIcon.bindprops({stylesheet:"menuItem"}),label:n.__("Cut")})}function I(e,t,n,o){e.addCommand(h.copy,{execute:()=>{var e;const n=null===(e=t.currentWidget)||void 0===e?void 0:e.content;if(!n)return;const o=N(n.editor);a.Clipboard.copyToSystem(o)},isEnabled:()=>{var e;if(!o())return!1;const n=null===(e=t.currentWidget)||void 0===e?void 0:e.content;return!!n&&W(n.editor)},icon:C.copyIcon.bindprops({stylesheet:"menuItem"}),label:n.__("Copy")})}function E(e,t,n,o){e.addCommand(h.paste,{execute:async()=>{var e;const n=null===(e=t.currentWidget)||void 0===e?void 0:e.content;if(!n)return;const o=n.editor,a=window.navigator.clipboard,r=await a.readText();r&&o.replaceSelection&&o.replaceSelection(r)},isEnabled:()=>{var e;return Boolean(o()&&(null===(e=t.currentWidget)||void 0===e?void 0:e.content))},icon:C.pasteIcon.bindprops({stylesheet:"menuItem"}),label:n.__("Paste")})}function M(e,t,n,o){e.addCommand(h.selectAll,{execute:()=>{var e;const n=null===(e=t.currentWidget)||void 0===e?void 0:e.content;n&&n.editor.execCommand("selectAll")},isEnabled:()=>{var e;return Boolean(o()&&(null===(e=t.currentWidget)||void 0===e?void 0:e.content))},label:n.__("Select All")})}function W(e){const t=e.getSelection(),{start:n,end:o}=t;return n.column!==o.column||n.line!==o.line}function N(e){const t=e.getSelection(),n=e.getOffsetAt(t.start),o=e.getOffsetAt(t.end);return e.model.value.text.substring(n,o)}async function B(e,t,n="txt"){const o=await e.execute("docmanager:new-untitled",{path:t,type:"file",ext:n});if(null!=o){const t=await e.execute("docmanager:open",{path:o.path,factory:_});return t.isUntitled=!0,t}}function P(e,t,n){e.addCommand(h.createNew,{label:e=>{var t,o;return e.isPalette?null!==(t=e.paletteLabel)&&void 0!==t?t:n.__("New Text File"):null!==(o=e.launcherLabel)&&void 0!==o?o:n.__("Text File")},caption:e=>{var t;return null!==(t=e.caption)&&void 0!==t?t:n.__("Create a new text file")},icon:e=>{var t;return e.isPalette?void 0:C.LabIcon.resolve({icon:null!==(t=e.iconName)&&void 0!==t?t:C.textEditorIcon})},execute:n=>{var o;const a=n.cwd||t.defaultBrowser.model.path;return B(e,a,null!==(o=n.fileExt)&&void 0!==o?o:"txt")}})}function F(e,t,n){e.addCommand(h.createNewMarkdown,{label:e=>e.isPalette?n.__("New Markdown File"):n.__("Markdown File"),caption:n.__("Create a new markdown file"),icon:e=>e.isPalette?void 0:C.markdownIcon,execute:n=>{const o=n.cwd||t.defaultBrowser.model.path;return B(e,o,"md")}})}function L(e,t){e.add({command:h.createNew,category:t.__("Other"),rank:1})}function O(e,t){e.add({command:h.createNewMarkdown,category:t.__("Other"),rank:2})}function R(e,t){const n=t.__("Text Editor"),o=h.changeTabs;e.addItem({command:o,args:{insertSpaces:!1,size:4},category:n});for(const t of[1,2,4,8]){const a={insertSpaces:!0,size:t};e.addItem({command:o,args:a,category:n})}}function A(e,t){const n=t.__("Text Editor");e.addItem({command:h.createNew,args:{isPalette:!0},category:n})}function z(e,t){const n=t.__("Text Editor");e.addItem({command:h.createNewMarkdown,args:{isPalette:!0},category:n})}function j(e,t){const n=t.__("Text Editor"),o=h.changeFontSize;let a={delta:1};e.addItem({command:o,args:a,category:n}),a={delta:-1},e.addItem({command:o,args:a,category:n})}function $(e,t){e.editMenu.undoers.add({tracker:t,undo:e=>{e.content.editor.undo()},redo:e=>{e.content.editor.redo()}})}function U(e,t){e.viewMenu.editorViewers.add({tracker:t,toggleLineNumbers:e=>{const t=!e.content.editor.getOption("lineNumbers");e.content.editor.setOption("lineNumbers",t)},toggleWordWrap:e=>{const t="off"===e.content.editor.getOption("lineWrap")?"on":"off";e.content.editor.setOption("lineWrap",t)},toggleMatchBrackets:e=>{const t=!e.content.editor.getOption("matchBrackets");e.content.editor.setOption("matchBrackets",t)},lineNumbersToggled:e=>e.content.editor.getOption("lineNumbers"),wordWrapToggled:e=>"off"!==e.content.editor.getOption("lineWrap"),matchBracketsToggled:e=>e.content.editor.getOption("matchBrackets")})}function K(e,n,o,a){const r=t(n);e.fileMenu.consoleCreators.add({tracker:o,createConsoleLabel:e=>a.__("Create Console for Editor"),createConsole:r})}function J(e,t,n,o,r,d){e.runMenu.codeRunners.add({tracker:n,runLabel:e=>r.__("Run Code"),runAllLabel:e=>r.__("Run All Code"),restartAndRunAllLabel:e=>r.__("Restart Kernel and Run All Code"),isEnabled:e=>!!o.find((t=>{var n;return(null===(n=t.sessionContext.session)||void 0===n?void 0:n.path)===e.context.path})),run:()=>t.execute(h.runCode),runAll:()=>t.execute(h.runAllCode),restartAndRunAll:e=>{const n=o.find((t=>{var n;return(null===(n=t.sessionContext.session)||void 0===n?void 0:n.path)===e.context.path}));if(n)return(d||a.sessionContextDialogs).restart(n.sessionContext).then((e=>(e&&t.execute(h.runAllCode),e)))}})}e.updateSettings=function(e,t){x=k(Object.assign(Object.assign({},r.CodeEditor.defaultConfig),e.get("editorConfig").composite)),t.notifyCommandChanged()},e.updateTracker=function(e){e.forEach((e=>{n(e.content)}))},e.updateWidget=n,e.addCommands=function(e,t,n,a,r,p,C){o(e,t,n,a),d(e,t,n,a,r),i(e,t,n,a,r),c(e,t,n,a),l(e,t,n,a,r),s(e,t,n,a),u(e,p,n,r),m(e,p,n,r),g(e,p,n,r),f(e,p,n,r),w(e,p,n),P(e,C,n),F(e,C,n),S(e,p,n,r),T(e,p,n,r),y(e,p,n,r),I(e,p,n,r),E(e,p,n,r),M(e,p,n,r)},e.addChangeFontSizeCommand=o,e.addLineNumbersCommand=d,e.addWordWrapCommand=i,e.addChangeTabsCommand=c,e.addMatchBracketsCommand=l,e.addAutoClosingBracketsCommand=s,e.addReplaceSelectionCommand=u,e.addCreateConsoleCommand=m,e.addRunCodeCommand=g,e.addRunAllCodeCommand=f,e.addMarkdownPreviewCommand=w,e.addUndoCommand=S,e.addRedoCommand=T,e.addCutCommand=y,e.addCopyCommand=I,e.addPasteCommand=E,e.addSelectAllCommand=M,e.addCreateNewCommand=P,e.addCreateNewMarkdownCommand=F,e.addLauncherItems=function(e,t){L(e,t),O(e,t)},e.addCreateNewToLauncher=L,e.addCreateNewMarkdownToLauncher=O,e.addKernelLanguageLauncherItems=function(e,t,n){for(let o of n)e.add({command:h.createNew,category:t.__("Other"),rank:3,args:o})},e.addPaletteItems=function(e,t){R(e,t),A(e,t),z(e,t),j(e,t)},e.addChangeTabsCommandsToPalette=R,e.addCreateNewCommandToPalette=A,e.addCreateNewMarkdownCommandToPalette=z,e.addChangeFontSizeCommandsToPalette=j,e.addKernelLanguagePaletteItems=function(e,t,n){const o=t.__("Text Editor");for(let t of n)e.addItem({command:h.createNew,args:Object.assign(Object.assign({},t),{isPalette:!0}),category:o})},e.addMenuItems=function(e,t,n,o,a,r){$(e,n),U(e,n),K(e,t,n,o),a&&J(e,t,n,a,o,r)},e.addKernelLanguageMenuItems=function(e,t){for(let n of t)e.fileMenu.newMenu.addItem({command:h.createNew,args:n,rank:31})},e.addUndoRedoToEditMenu=$,e.addEditorViewerToViewMenu=U,e.addConsoleCreatorToFileMenu=K,e.addCodeRunnersToRunMenu=J}(S||(S={}));const T={activate:function(e,t,n,o,r,d,i,l,s,u,m,g){const f=T.id,p=r.load("jupyterlab");let C;g&&(C=(0,a.createToolbarFactory)(g,o,_,f,r));const b=new c.FileEditorFactory({editorServices:t,factoryOptions:{name:_,fileTypes:["markdown","*"],defaultFor:["markdown","*"],toolbarFactory:C,translator:r}}),{commands:v,restored:h,shell:w}=e,k=new a.WidgetTracker({namespace:"editor"}),x=new Map([["python",[{fileExt:"py",iconName:"ui-components:python",launcherLabel:p.__("Python File"),paletteLabel:p.__("New Python File"),caption:p.__("Create a new Python file")}]],["julia",[{fileExt:"jl",iconName:"ui-components:julia",launcherLabel:p.__("Julia File"),paletteLabel:p.__("New Julia File"),caption:p.__("Create a new Julia file")}]],["R",[{fileExt:"r",iconName:"ui-components:r-kernel",launcherLabel:p.__("R File"),paletteLabel:p.__("New R File"),caption:p.__("Create a new R file")}]]]);return u&&u.restore(k,{command:"docmanager:open",args:e=>({path:e.context.path,factory:_}),name:e=>e.context.path}),Promise.all([o.load(f),h]).then((([e])=>{S.updateSettings(e,v),S.updateTracker(k),e.changed.connect((()=>{S.updateSettings(e,v),S.updateTracker(k)}))})).catch((e=>{console.error(e.message),S.updateTracker(k)})),b.widgetCreated.connect(((e,t)=>{t.context.pathChanged.connect((()=>{k.save(t)})),k.add(t),S.updateWidget(t.content)})),e.docRegistry.addWidgetFactory(b),k.widgetAdded.connect(((e,t)=>{S.updateWidget(t.content)})),S.addCommands(v,o,p,f,(()=>null!==k.currentWidget&&k.currentWidget===w.currentWidget),k,n),l&&S.addLauncherItems(l,p),i&&S.addPaletteItems(i,p),s&&S.addMenuItems(s,v,k,p,d,m),(async()=>{var t,n;const o=e.serviceManager.kernelspecs;await o.ready;let a=new Set;const r=null!==(n=null===(t=o.specs)||void 0===t?void 0:t.kernelspecs)&&void 0!==n?n:{};return Object.keys(r).forEach((e=>{const t=r[e];if(t){const e=x.get(t.language);null==e||e.forEach((e=>a.add(e)))}})),a})().then((e=>{l&&S.addKernelLanguageLauncherItems(l,p,e),i&&S.addKernelLanguagePaletteItems(i,p,e),s&&S.addKernelLanguageMenuItems(s,e)})).catch((e=>{console.error(e.message)})),k},id:"@jupyterlab/fileeditor-extension:plugin",requires:[r.IEditorServices,i.IFileBrowserFactory,u.ISettingRegistry,g.ITranslator],optional:[d.IConsoleTracker,a.ICommandPalette,l.ILauncher,s.IMainMenu,o.ILayoutRestorer,a.ISessionContextDialogs,a.IToolbarWidgetRegistry],provides:c.IEditorTracker,autoStart:!0},y={id:"@jupyterlab/fileeditor-extension:tab-space-status",autoStart:!0,requires:[c.IEditorTracker,u.ISettingRegistry,g.ITranslator],optional:[m.IStatusBar],activate:(e,t,n,o,a)=>{const d=o.load("jupyterlab");if(!a)return;const i=new f.Menu({commands:e.commands}),l="fileeditor:change-tabs",{shell:s}=e,u={insertSpaces:!1,size:4,name:d.__("Indent with Tab")};i.addItem({command:l,args:u});for(const e of[1,2,4,8]){const t={insertSpaces:!0,size:e,name:d._n("Spaces: %1","Spaces: %1",e)};i.addItem({command:l,args:t})}const m=new c.TabSpaceStatus({menu:i,translator:o}),g=e=>{m.model.config=Object.assign(Object.assign({},r.CodeEditor.defaultConfig),e.get("editorConfig").composite)};Promise.all([n.load("@jupyterlab/fileeditor-extension:plugin"),e.restored]).then((([e])=>{g(e),e.changed.connect(g)})),a.registerStatusItem("@jupyterlab/fileeditor-extension:tab-space-status",{item:m,align:"right",rank:1,isActive:()=>!!s.currentWidget&&t.has(s.currentWidget)})}},I=[T,y]}}]); +//# sourceMappingURL=6136.b8ba2b2.js.map \ No newline at end of file diff --git a/_static/build/6136.b8ba2b2.js.map b/_static/build/6136.b8ba2b2.js.map new file mode 100644 index 0000000..4394a25 --- /dev/null +++ b/_static/build/6136.b8ba2b2.js.map @@ -0,0 +1 @@ +{"version":3,"file":"6136.b8ba2b2.js","mappings":"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","sources":["webpack://_JUPYTERLAB.CORE_OUTPUT/../src/commands.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/index.ts"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/_static/build/6141.9831d58.js b/_static/build/6141.9831d58.js new file mode 100644 index 0000000..c85ed70 --- /dev/null +++ b/_static/build/6141.9831d58.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[6141],{86141:(e,t,i)=>{i.r(t),i.d(t,{RenderedIFrame:()=>s,default:()=>o,rendererFactory:()=>d});var r=i(26169),a=i(94519);const n="text/html-sandboxed";class s extends a.Widget{constructor(){super(),this.addClass("jp-IFrameContainer"),this._iframe=document.createElement("iframe"),this.node.appendChild(this._iframe)}async renderModel(e){var t,i;this._iframe.parentNode&&this._iframe.parentNode.removeChild(this._iframe);const a=new r.PromiseDelegate;this._iframe=document.createElement("iframe"),this._iframe.onload=()=>{a.resolve(void 0)},this.node.appendChild(this._iframe),await a.promise;const s=e.data[n];if(!s||!this._iframe.contentWindow)return;const d=e.metadata[n];this._iframe.width=null!==(t=null==d?void 0:d.width)&&void 0!==t?t:"100%",this._iframe.height=null!==(i=null==d?void 0:d.height)&&void 0!==i?i:"400px",this._iframe.contentWindow.document.write(s)}dispose(){this._iframe.remove(),super.dispose()}}const d={safe:!1,mimeTypes:[n],defaultRank:100,createRenderer:e=>new s},o=[{id:"@jupyterlite/iframe-extension:factory",rendererFactory:d,dataType:"string",documentWidgetFactoryOptions:{name:"IFrame",primaryFileType:"IFrame",fileTypes:["IFrame"],defaultFor:["IFrame"]}}]}}]); +//# sourceMappingURL=6141.9831d58.js.map \ No newline at end of file diff --git a/_static/build/6141.9831d58.js.map b/_static/build/6141.9831d58.js.map new file mode 100644 index 0000000..ea8b07f --- /dev/null +++ b/_static/build/6141.9831d58.js.map @@ -0,0 +1 @@ +{"version":3,"file":"6141.9831d58.js","mappings":"sOAYA,MAAMA,EAAY,sBAoBX,MAAMC,UAAuB,EAAAC,OAClCC,cACEC,QACAC,KAAKC,SAAS,sBACdD,KAAKE,QAAUC,SAASC,cAAc,UACtCJ,KAAKK,KAAKC,YAAYN,KAAKE,QAC7B,CAKAK,kBAAkBC,G,QACZR,KAAKE,QAAQO,YACfT,KAAKE,QAAQO,WAAWC,YAAYV,KAAKE,SAG3C,MAAMS,EAAQ,IAAI,EAAAC,gBAClBZ,KAAKE,QAAUC,SAASC,cAAc,UACtCJ,KAAKE,QAAQW,OAAS,KACpBF,EAAMG,aAAQ,EAAO,EAEvBd,KAAKK,KAAKC,YAAYN,KAAKE,eACrBS,EAAMI,QACZ,MAAMC,EAAOR,EAAMQ,KAAKrB,GACxB,IAAKqB,IAAShB,KAAKE,QAAQe,cACzB,OAEF,MAAMC,EAAWV,EAAMU,SAASvB,GAChCK,KAAKE,QAAQiB,MAAuB,QAAf,EAAAD,aAAQ,EAARA,EAAUC,aAAK,QAAI,OACxCnB,KAAKE,QAAQkB,OAAyB,QAAhB,EAAAF,aAAQ,EAARA,EAAUE,cAAM,QAAI,QAC1CpB,KAAKE,QAAQe,cAAcd,SAASkB,MAAML,EAC5C,CAKAM,UACEtB,KAAKE,QAAQqB,SACbxB,MAAMuB,SACR,EAQK,MAAME,EAAgD,CAC3DC,MAAM,EACNC,UAAW,CAAC/B,GACZgC,YAAa,IACbC,eAAiBC,GAAY,IAAIjC,GAiBnC,EAdsE,CACpE,CACEkC,GAAI,wCACJN,kBACAO,SAAU,SACVC,6BAA8B,CAC5BC,KAAM,SACNC,gBAAiB,SACjBC,UAAW,CAAC,UACZC,WAAY,CAAC,Y","sources":["webpack://_JUPYTERLAB.CORE_OUTPUT/../packages/iframe-extension/src/index.ts"],"sourcesContent":["// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n\nimport { IRenderMime } from '@jupyterlab/rendermime-interfaces';\n\nimport { PromiseDelegate } from '@lumino/coreutils';\n\nimport { Widget } from '@lumino/widgets';\n\n/**\n * The MIME type for IFrame.\n */\nconst MIME_TYPE = 'text/html-sandboxed';\n\n/**\n * The interface for the metadata\n */\ninterface IIFrameMetadata {\n /**\n * The suggested width of the IFrame\n */\n width?: string;\n\n /**\n * The suggested height of the IFrame\n */\n height?: string;\n}\n\n/**\n * A class for rendering an IFrame document.\n */\nexport class RenderedIFrame extends Widget implements IRenderMime.IRenderer {\n constructor() {\n super();\n this.addClass('jp-IFrameContainer');\n this._iframe = document.createElement('iframe');\n this.node.appendChild(this._iframe);\n }\n\n /**\n * Render the IFrame into this widget's node.\n */\n async renderModel(model: IRenderMime.IMimeModel): Promise {\n if (this._iframe.parentNode) {\n this._iframe.parentNode.removeChild(this._iframe);\n }\n\n const ready = new PromiseDelegate();\n this._iframe = document.createElement('iframe');\n this._iframe.onload = () => {\n ready.resolve(void 0);\n };\n this.node.appendChild(this._iframe);\n await ready.promise;\n const data = model.data[MIME_TYPE] as string | undefined;\n if (!data || !this._iframe.contentWindow) {\n return;\n }\n const metadata = model.metadata[MIME_TYPE] as IIFrameMetadata | undefined;\n this._iframe.width = metadata?.width ?? '100%';\n this._iframe.height = metadata?.height ?? '400px';\n this._iframe.contentWindow.document.write(data);\n }\n\n /**\n * Dispose of the resources held by the iframe widget.\n */\n dispose(): void {\n this._iframe.remove();\n super.dispose();\n }\n\n private _iframe: HTMLIFrameElement;\n}\n\n/**\n * A mime renderer factory for IFrame data.\n */\nexport const rendererFactory: IRenderMime.IRendererFactory = {\n safe: false,\n mimeTypes: [MIME_TYPE],\n defaultRank: 100,\n createRenderer: (options) => new RenderedIFrame(),\n};\n\nconst extensions: IRenderMime.IExtension | IRenderMime.IExtension[] = [\n {\n id: '@jupyterlite/iframe-extension:factory',\n rendererFactory,\n dataType: 'string',\n documentWidgetFactoryOptions: {\n name: 'IFrame',\n primaryFileType: 'IFrame',\n fileTypes: ['IFrame'],\n defaultFor: ['IFrame'],\n },\n },\n];\n\nexport default extensions;\n"],"names":["MIME_TYPE","RenderedIFrame","Widget","constructor","super","this","addClass","_iframe","document","createElement","node","appendChild","async","model","parentNode","removeChild","ready","PromiseDelegate","onload","resolve","promise","data","contentWindow","metadata","width","height","write","dispose","remove","rendererFactory","safe","mimeTypes","defaultRank","createRenderer","options","id","dataType","documentWidgetFactoryOptions","name","primaryFileType","fileTypes","defaultFor"],"sourceRoot":""} \ No newline at end of file diff --git a/_static/build/6475.7ee8de7.js b/_static/build/6475.7ee8de7.js new file mode 100644 index 0000000..0fa6de5 --- /dev/null +++ b/_static/build/6475.7ee8de7.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[6475,8370],{8370:(e,t,o)=>{o.r(t),o.d(t,{default:()=>g});var r=o(67504),n=o(2814),a=o(69041),i=o(4265),s=o(59674),c=o(65819),d=o(50027),l=o(94519);const u="jupyterlite",p={id:"@jupyterlite/console-application:buttons",autoStart:!0,requires:[i.ITranslator],optional:[a.IConsoleTracker],activate:(e,t,o)=>{if(!o)return;const{commands:r}=e,a=t.load(u),i="repl:run";r.addCommand(i,{caption:a.__("Run"),icon:s.runIcon,execute:()=>r.execute("console:run-forced")});const c=new n.CommandToolbarButton({commands:r,id:i}),p="repl:restart";r.addCommand(p,{caption:a.__("Restart"),icon:s.refreshIcon,execute:()=>r.execute("console:restart-kernel")});const m=new n.CommandToolbarButton({commands:r,id:p}),h="repl:clear";r.addCommand(h,{caption:a.__("Clear"),icon:s.clearIcon,execute:()=>r.execute("console:clear")});const w=new n.CommandToolbarButton({commands:r,id:h});o.widgetAdded.connect(((e,t)=>{const{toolbar:o}=t;t.toolbar.addItem("run",c),t.toolbar.addItem("restart",m),t.toolbar.addItem("clear",w),o.addItem("spacer",n.Toolbar.createSpacerItem());const r=document.createElement("a");r.title=a.__("Powered by JupyterLite"),r.href="/jupyterlite/jupyterlite",r.target="_blank",r.rel="noopener noreferrer";const i=new l.Widget({node:r});d.liteIcon.element({container:r,elementPosition:"center",margin:"2px 2px 2px 8px",height:"auto",width:"16px"}),i.addClass("jp-PoweredBy"),o.insertAfter("spacer","powered-by",i)}))}},m={id:"@jupyterlite/repl-extension:console",autoStart:!0,optional:[a.IConsoleTracker,n.IThemeManager],activate:(e,t,o)=>{var r;if(!t)return;const{commands:n,serviceManager:a,started:i}=e,s=window.location.search,c=new URLSearchParams(s),d=c.getAll("code"),l=c.get("kernel")||void 0,u=null===(r=c.get("theme"))||void 0===r?void 0:r.trim(),p=c.get("toolbar");if(Promise.all([i,a.ready]).then((async()=>{n.execute("console:create",{kernelPreference:{name:l}})})),u&&o){const e=decodeURIComponent(u);o.setTheme(e)}t.widgetAdded.connect((async(e,t)=>{const{console:o}=t;p||t.toolbar.dispose(),d&&(await o.sessionContext.ready,d.forEach((e=>o.inject(e))))}))}},h={id:"@jupyterlite/repl-extension:status",autoStart:!0,provides:r.ILabStatus,requires:[i.ITranslator],activate:(e,t)=>{if(!(e instanceof c.SingleWidgetApp)){const e=t.load(u);throw new Error(e.__("%1 must be activated in SingleWidgetApp.",h.id))}return e.status}},w={id:"@jupyterlite/repl-extension:paths",autoStart:!0,provides:r.JupyterFrontEnd.IPaths,activate:e=>{if(!(e instanceof c.SingleWidgetApp))throw new Error(`${w.id} must be activated in SingleWidgetApp.`);return e.paths}},b={id:"@jupyterlite/repl-extension:router",autoStart:!0,provides:r.IRouter,requires:[r.JupyterFrontEnd.IPaths],activate:(e,t)=>{const{commands:o}=e,n=t.urls.base,a=new r.Router({base:n,commands:o});return e.started.then((()=>{a.route(),window.addEventListener("popstate",(()=>{a.route()}))})),a}},g=[p,m,w,b,h]}}]); +//# sourceMappingURL=6475.7ee8de7.js.map \ No newline at end of file diff --git a/_static/build/6475.7ee8de7.js.map b/_static/build/6475.7ee8de7.js.map new file mode 100644 index 0000000..e5c8f66 --- /dev/null +++ b/_static/build/6475.7ee8de7.js.map @@ -0,0 +1 @@ +{"version":3,"file":"6475.7ee8de7.js","mappings":"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","sources":["webpack://_JUPYTERLAB.CORE_OUTPUT/../packages/repl-extension/src/index.ts"],"sourcesContent":["// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n\nimport {\n ILabStatus,\n IRouter,\n JupyterFrontEndPlugin,\n JupyterFrontEnd,\n Router,\n} from '@jupyterlab/application';\n\nimport { CommandToolbarButton, IThemeManager, Toolbar } from '@jupyterlab/apputils';\n\nimport { IConsoleTracker } from '@jupyterlab/console';\n\nimport { ITranslator } from '@jupyterlab/translation';\n\nimport { clearIcon, refreshIcon, runIcon } from '@jupyterlab/ui-components';\n\nimport { SingleWidgetApp } from '@jupyterlite/application';\n\nimport { liteIcon } from '@jupyterlite/ui-components';\n\nimport { Widget } from '@lumino/widgets';\n\n/**\n * The name of the translation bundle for internationalized strings.\n */\nconst I18N_BUNDLE = 'jupyterlite';\n\n/**\n * A plugin to add buttons to the console toolbar.\n */\nconst buttons: JupyterFrontEndPlugin = {\n id: '@jupyterlite/console-application:buttons',\n autoStart: true,\n requires: [ITranslator],\n optional: [IConsoleTracker],\n activate: (\n app: JupyterFrontEnd,\n translator: ITranslator,\n tracker: IConsoleTracker | null\n ) => {\n if (!tracker) {\n return;\n }\n\n const { commands } = app;\n const trans = translator.load(I18N_BUNDLE);\n\n // wrapper commands to be able to override the icon\n const runCommand = 'repl:run';\n commands.addCommand(runCommand, {\n caption: trans.__('Run'),\n icon: runIcon,\n execute: () => {\n return commands.execute('console:run-forced');\n },\n });\n\n const runButton = new CommandToolbarButton({\n commands,\n id: runCommand,\n });\n\n const restartCommand = 'repl:restart';\n commands.addCommand(restartCommand, {\n caption: trans.__('Restart'),\n icon: refreshIcon,\n execute: () => {\n return commands.execute('console:restart-kernel');\n },\n });\n\n const restartButton = new CommandToolbarButton({\n commands,\n id: restartCommand,\n });\n\n const clearCommand = 'repl:clear';\n commands.addCommand(clearCommand, {\n caption: trans.__('Clear'),\n icon: clearIcon,\n execute: () => {\n return commands.execute('console:clear');\n },\n });\n\n const clearButton = new CommandToolbarButton({\n commands,\n id: clearCommand,\n });\n\n tracker.widgetAdded.connect((_, console) => {\n const { toolbar } = console;\n\n console.toolbar.addItem('run', runButton);\n console.toolbar.addItem('restart', restartButton);\n console.toolbar.addItem('clear', clearButton);\n\n toolbar.addItem('spacer', Toolbar.createSpacerItem());\n\n const node = document.createElement('a');\n node.title = trans.__('Powered by JupyterLite');\n node.href = 'https://github.com/jupyterlite/jupyterlite';\n node.target = '_blank';\n node.rel = 'noopener noreferrer';\n const poweredBy = new Widget({ node });\n liteIcon.element({\n container: node,\n elementPosition: 'center',\n margin: '2px 2px 2px 8px',\n height: 'auto',\n width: '16px',\n });\n\n poweredBy.addClass('jp-PoweredBy');\n toolbar.insertAfter('spacer', 'powered-by', poweredBy);\n });\n },\n};\n\n/**\n * A plugin to open a code console and\n * parse custom parameters from the query string arguments.\n */\nconst consolePlugin: JupyterFrontEndPlugin = {\n id: '@jupyterlite/repl-extension:console',\n autoStart: true,\n optional: [IConsoleTracker, IThemeManager],\n activate: (\n app: JupyterFrontEnd,\n tracker: IConsoleTracker | null,\n themeManager: IThemeManager | null\n ) => {\n if (!tracker) {\n return;\n }\n const { commands, serviceManager, started } = app;\n\n const search = window.location.search;\n const urlParams = new URLSearchParams(search);\n const code = urlParams.getAll('code');\n const kernel = urlParams.get('kernel') || undefined;\n const theme = urlParams.get('theme')?.trim();\n const toolbar = urlParams.get('toolbar');\n\n Promise.all([started, serviceManager.ready]).then(async () => {\n commands.execute('console:create', { kernelPreference: { name: kernel } });\n });\n\n if (theme && themeManager) {\n const themeName = decodeURIComponent(theme);\n themeManager.setTheme(themeName);\n }\n\n tracker.widgetAdded.connect(async (_, widget) => {\n const { console } = widget;\n\n if (!toolbar) {\n // hide the toolbar by default if not specified\n widget.toolbar.dispose();\n }\n\n if (code) {\n await console.sessionContext.ready;\n code.forEach((line) => console.inject(line));\n }\n });\n },\n};\n\n/**\n * The default JupyterLab application status provider.\n */\nconst status: JupyterFrontEndPlugin = {\n id: '@jupyterlite/repl-extension:status',\n autoStart: true,\n provides: ILabStatus,\n requires: [ITranslator],\n activate: (app: JupyterFrontEnd, translator: ITranslator) => {\n if (!(app instanceof SingleWidgetApp)) {\n const trans = translator.load(I18N_BUNDLE);\n throw new Error(trans.__('%1 must be activated in SingleWidgetApp.', status.id));\n }\n return app.status;\n },\n};\n\n/**\n * The default paths for a single widget app.\n */\nconst paths: JupyterFrontEndPlugin = {\n id: '@jupyterlite/repl-extension:paths',\n autoStart: true,\n provides: JupyterFrontEnd.IPaths,\n activate: (app: JupyterFrontEnd): JupyterFrontEnd.IPaths => {\n if (!(app instanceof SingleWidgetApp)) {\n throw new Error(`${paths.id} must be activated in SingleWidgetApp.`);\n }\n return app.paths;\n },\n};\n\n/**\n * The default URL router provider.\n */\nconst router: JupyterFrontEndPlugin = {\n id: '@jupyterlite/repl-extension:router',\n autoStart: true,\n provides: IRouter,\n requires: [JupyterFrontEnd.IPaths],\n activate: (app: JupyterFrontEnd, paths: JupyterFrontEnd.IPaths) => {\n const { commands } = app;\n const base = paths.urls.base;\n const router = new Router({ base, commands });\n void app.started.then(() => {\n // Route the very first request on load.\n void router.route();\n\n // Route all pop state events.\n window.addEventListener('popstate', () => {\n void router.route();\n });\n });\n return router;\n },\n};\n\nconst plugins: JupyterFrontEndPlugin[] = [\n buttons,\n consolePlugin,\n paths,\n router,\n status,\n];\n\nexport default plugins;\n"],"names":["I18N_BUNDLE","buttons","id","autoStart","requires","ITranslator","optional","IConsoleTracker","activate","app","translator","tracker","commands","trans","load","runCommand","addCommand","caption","__","icon","runIcon","execute","runButton","CommandToolbarButton","restartCommand","refreshIcon","restartButton","clearCommand","clearIcon","clearButton","widgetAdded","connect","_","console","toolbar","addItem","Toolbar","node","document","createElement","title","href","target","rel","poweredBy","Widget","liteIcon","container","elementPosition","margin","height","width","addClass","insertAfter","consolePlugin","IThemeManager","themeManager","serviceManager","started","search","window","location","urlParams","URLSearchParams","code","getAll","kernel","get","undefined","theme","trim","Promise","all","ready","then","async","kernelPreference","name","themeName","decodeURIComponent","setTheme","widget","dispose","sessionContext","forEach","line","inject","status","provides","ILabStatus","SingleWidgetApp","Error","paths","JupyterFrontEnd","router","IRouter","base","urls","Router","route","addEventListener"],"sourceRoot":""} \ No newline at end of file diff --git a/_static/build/6493.d796aa5.js b/_static/build/6493.d796aa5.js new file mode 100644 index 0000000..8892736 --- /dev/null +++ b/_static/build/6493.d796aa5.js @@ -0,0 +1,2 @@ +(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[6493],{49160:(e,t,s)=>{var o={"./3024-day.css":[97380,7380],"./3024-night.css":[60237,237],"./abbott.css":[64569,4569],"./abcdef.css":[97858,7858],"./ambiance-mobile.css":[74690,4690],"./ambiance.css":[27334,7334,1483],"./ayu-dark.css":[5213,5213],"./ayu-mirage.css":[27692,7692],"./base16-dark.css":[28427,8427],"./base16-light.css":[59621,9621],"./bespin.css":[60451,451],"./blackboard.css":[20554,554],"./cobalt.css":[15227,5227],"./colorforth.css":[87359,7359],"./darcula.css":[91320,1320],"./dracula.css":[9156,9156],"./duotone-dark.css":[87509,7509],"./duotone-light.css":[29647,9647],"./eclipse.css":[16612,6612],"./elegant.css":[30489,489],"./erlang-dark.css":[20406,406],"./gruvbox-dark.css":[42834,2834],"./hopscotch.css":[8028,8028],"./icecoder.css":[4262,4262],"./idea.css":[4207,4207],"./isotope.css":[82359,2359],"./lesser-dark.css":[37808,7808],"./liquibyte.css":[60582,582],"./lucario.css":[36870,6870],"./material-darker.css":[89196,9196],"./material-ocean.css":[26576,6576],"./material-palenight.css":[24182,4182],"./material.css":[83051,3051],"./mbo.css":[2303,2303],"./mdn-like.css":[66664,6664],"./midnight.css":[92956,2956],"./monokai.css":[14750,4750],"./moxer.css":[63970,3970],"./neat.css":[52118,2118],"./neo.css":[38412,8412],"./night.css":[53037,3037],"./nord.css":[51989,1989],"./oceanic-next.css":[29077,9077],"./panda-syntax.css":[10330,330],"./paraiso-dark.css":[42169,2169],"./paraiso-light.css":[5823,5823],"./pastel-on-dark.css":[76952,6952],"./railscasts.css":[63004,3004],"./rubyblue.css":[92351,2351],"./seti.css":[9602,9602],"./shadowfox.css":[44749,4749],"./solarized.css":[70217,217],"./ssms.css":[45153,5153],"./the-matrix.css":[20160,160],"./tomorrow-night-bright.css":[45710,5710],"./tomorrow-night-eighties.css":[71272,1272],"./ttcn.css":[65489,5489],"./twilight.css":[68976,8976],"./vibrant-ink.css":[51261,1261],"./xq-dark.css":[40400,400],"./xq-light.css":[53546,3546],"./yeti.css":[12629,2629],"./yonce.css":[44018,4018],"./zenburn.css":[84206,4206]};function n(e){if(!s.o(o,e))return Promise.resolve().then((()=>{var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}));var t=o[e],n=t[0];return Promise.all(t.slice(1).map(s.e)).then((()=>s(n)))}n.keys=()=>Object.keys(o),n.id=49160,e.exports=n},66493:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>b,editorSyntaxStatus:()=>v});var o,n=s(67504),r=s(84853),i=s(23059),c=s(6624),a=s(49005),d=s(15786),l=s(16725),m=s(4265),u=s(41981),g=s.n(u);!function(e){e.changeKeyMap="codemirror:change-keymap",e.changeTheme="codemirror:change-theme",e.changeMode="codemirror:change-mode",e.find="codemirror:find",e.goToLine="codemirror:go-to-line"}(o||(o={}));const h={id:"@jupyterlab/codemirror-extension:codemirror",provides:i.ICodeMirror,activate:function(e){return new k}},p={id:"@jupyterlab/codemirror-extension:services",provides:r.IEditorServices,activate:function(e){return g().prototype.save=()=>{e.commands.execute("docmanager:save")},i.editorServices}},y={id:"@jupyterlab/codemirror-extension:commands",requires:[c.IEditorTracker,d.ISettingRegistry,m.ITranslator,i.ICodeMirror],optional:[a.IMainMenu],activate:function(e,t,n,r,c,a){var d;const l=r.load("jupyterlab"),{commands:m,restored:u}=e;let{theme:g,keyMap:h,scrollPastEnd:p,styleActiveLine:y,styleSelectedText:v,selectionPointer:b,lineWiseCopyCut:k}=i.CodeMirrorEditor.defaultConfig;async function x(e){var t,o,n,r,i;if(h=e.get("keyMap").composite||h,"vim"===h&&await c.ensureVimKeymap(),g=e.get("theme").composite||g,"jupyter"!==g&&"default"!==g){const e="solarized light"===g||"solarized dark"===g?"solarized":g;await s(49160)(`./${e}.css`)}p=null!==(t=e.get("scrollPastEnd").composite)&&void 0!==t?t:p,y=null!==(o=e.get("styleActiveLine").composite)&&void 0!==o?o:y,v=null!==(n=e.get("styleSelectedText").composite)&&void 0!==n?n:v,b=null!==(r=e.get("selectionPointer").composite)&&void 0!==r?r:b,k=null!==(i=e.get("lineWiseCopyCut").composite)&&void 0!==i?i:k}function C(){const e={keyMap:h,theme:g,scrollPastEnd:p,styleActiveLine:y,styleSelectedText:v,selectionPointer:b,lineWiseCopyCut:k};t.forEach((t=>{t.content.editor instanceof i.CodeMirrorEditor&&t.content.editor.setOptions(e)}))}function M(){return null!==t.currentWidget&&t.currentWidget===e.shell.currentWidget}if(Promise.all([n.load(f),u]).then((async([e])=>{await x(e),C(),e.changed.connect((async()=>{await x(e),C()}))})).catch((e=>{console.error(e.message),C()})),t.widgetAdded.connect(((e,t)=>{const s={keyMap:h,theme:g,scrollPastEnd:p,styleActiveLine:y,styleSelectedText:v,selectionPointer:b,lineWiseCopyCut:k};t.content.editor instanceof i.CodeMirrorEditor&&t.content.editor.setOptions(s)})),m.addCommand(o.changeTheme,{label:e=>{var t;return"default"===e.theme?l.__("codemirror"):l.__(null!==(t=e.theme)&&void 0!==t?t:g)},execute:e=>{var t;const s="theme",o=g=null!==(t=e.theme)&&void 0!==t?t:g;return n.set(f,s,o).catch((e=>{console.error(`Failed to set ${f}:${s} - ${e.message}`)}))},isToggled:e=>e.theme===g}),m.addCommand(o.changeKeyMap,{label:e=>{var t;const s=null!==(t=e.keyMap)&&void 0!==t?t:h;return"sublime"===s?l.__("Sublime Text"):l.__(s)},execute:e=>{var t;const s="keyMap",o=h=null!==(t=e.keyMap)&&void 0!==t?t:h;return n.set(f,s,o).catch((e=>{console.error(`Failed to set ${f}:${s} - ${e.message}`)}))},isToggled:e=>e.keyMap===h}),m.addCommand(o.find,{label:l.__("Find…"),execute:()=>{const e=t.currentWidget;e&&e.content.editor.execCommand("find")},isEnabled:M}),m.addCommand(o.goToLine,{label:l.__("Go to Line…"),execute:e=>{const s=t.currentWidget;if(!s)return;const o=e.line,n=e.column,r=s.content.editor;void 0!==o||void 0!==n?r.setCursorPosition({line:(null!=o?o:1)-1,column:(null!=n?n:1)-1}):r.execCommand("jumpToLine"),r.focus()},isEnabled:M}),m.addCommand(o.changeMode,{label:e=>e.name,execute:e=>{const s=e.name,o=t.currentWidget;if(s&&o){const e=i.Mode.findByName(s);e&&(o.content.model.mimeType=e.mime)}},isEnabled:M,isToggled:e=>{const s=t.currentWidget;if(!s)return!1;const o=s.content.model.mimeType,n=i.Mode.findByMIME(o),r=n&&n.name;return e.name===r}}),a){const e=null===(d=a.viewMenu.items.find((e=>{var t;return"submenu"===e.type&&"jp-mainmenu-view-codemirror-theme"===(null===(t=e.submenu)||void 0===t?void 0:t.id)})))||void 0===d?void 0:d.submenu;e&&i.Mode.getModeInfo().sort(((e,t)=>{const s=e.name||"",o=t.name||"";return s.localeCompare(o)})).forEach((t=>{0!==t.mode.indexOf("brainf")&&e.addItem({command:o.changeMode,args:Object.assign({},t)})})),a.editMenu.goToLiners.add({tracker:t,goToLine:e=>{e.content.editor.execCommand("jumpToLine")}})}},autoStart:!0},v={id:"@jupyterlab/codemirror-extension:editor-syntax-status",autoStart:!0,requires:[c.IEditorTracker,n.ILabShell,m.ITranslator],optional:[l.IStatusBar],activate:(e,t,s,o,n)=>{if(!n)return;const r=new i.EditorSyntaxStatus({commands:e.commands,translator:o});s.currentChanged.connect((()=>{const e=s.currentWidget;e&&t.has(e)&&r.model&&(r.model.editor=e.content.editor)})),n.registerStatusItem("@jupyterlab/codemirror-extension:editor-syntax-status",{item:r,align:"left",rank:0,isActive:()=>!!s.currentWidget&&!!t.currentWidget&&s.currentWidget===t.currentWidget})}},b=[y,p,v,h],f=y.id;class k{get CodeMirror(){return g()}async ensureVimKeymap(){"Vim"in g()||await Promise.all([s.e(5747),s.e(8373),s.e(3413)]).then(s.t.bind(s,83413,23))}}}}]); +//# sourceMappingURL=6493.d796aa5.js.map \ No newline at end of file diff --git a/_static/build/6493.d796aa5.js.map b/_static/build/6493.d796aa5.js.map new file mode 100644 index 0000000..a63445f --- /dev/null +++ b/_static/build/6493.d796aa5.js.map @@ -0,0 +1 @@ +{"version":3,"file":"6493.d796aa5.js","mappings":"sHAAA,IAAIA,EAAM,CACT,iBAAkB,CACjB,MACA,MAED,mBAAoB,CACnB,MACA,KAED,eAAgB,CACf,MACA,MAED,eAAgB,CACf,MACA,MAED,wBAAyB,CACxB,MACA,MAED,iBAAkB,CACjB,MACA,KACA,MAED,iBAAkB,CACjB,KACA,MAED,mBAAoB,CACnB,MACA,MAED,oBAAqB,CACpB,MACA,MAED,qBAAsB,CACrB,MACA,MAED,eAAgB,CACf,MACA,KAED,mBAAoB,CACnB,MACA,KAED,eAAgB,CACf,MACA,MAED,mBAAoB,CACnB,MACA,MAED,gBAAiB,CAChB,MACA,MAED,gBAAiB,CAChB,KACA,MAED,qBAAsB,CACrB,MACA,MAED,sBAAuB,CACtB,MACA,MAED,gBAAiB,CAChB,MACA,MAED,gBAAiB,CAChB,MACA,KAED,oBAAqB,CACpB,MACA,KAED,qBAAsB,CACrB,MACA,MAED,kBAAmB,CAClB,KACA,MAED,iBAAkB,CACjB,KACA,MAED,aAAc,CACb,KACA,MAED,gBAAiB,CAChB,MACA,MAED,oBAAqB,CACpB,MACA,MAED,kBAAmB,CAClB,MACA,KAED,gBAAiB,CAChB,MACA,MAED,wBAAyB,CACxB,MACA,MAED,uBAAwB,CACvB,MACA,MAED,2BAA4B,CAC3B,MACA,MAED,iBAAkB,CACjB,MACA,MAED,YAAa,CACZ,KACA,MAED,iBAAkB,CACjB,MACA,MAED,iBAAkB,CACjB,MACA,MAED,gBAAiB,CAChB,MACA,MAED,cAAe,CACd,MACA,MAED,aAAc,CACb,MACA,MAED,YAAa,CACZ,MACA,MAED,cAAe,CACd,MACA,MAED,aAAc,CACb,MACA,MAED,qBAAsB,CACrB,MACA,MAED,qBAAsB,CACrB,MACA,KAED,qBAAsB,CACrB,MACA,MAED,sBAAuB,CACtB,KACA,MAED,uBAAwB,CACvB,MACA,MAED,mBAAoB,CACnB,MACA,MAED,iBAAkB,CACjB,MACA,MAED,aAAc,CACb,KACA,MAED,kBAAmB,CAClB,MACA,MAED,kBAAmB,CAClB,MACA,KAED,aAAc,CACb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","sources":["webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/theme/ lazy ^\\.\\/.*\\.css$ namespace object","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/index.ts"],"sourcesContent":["var map = {\n\t\"./3024-day.css\": [\n\t\t97380,\n\t\t7380\n\t],\n\t\"./3024-night.css\": [\n\t\t60237,\n\t\t237\n\t],\n\t\"./abbott.css\": [\n\t\t64569,\n\t\t4569\n\t],\n\t\"./abcdef.css\": [\n\t\t97858,\n\t\t7858\n\t],\n\t\"./ambiance-mobile.css\": [\n\t\t74690,\n\t\t4690\n\t],\n\t\"./ambiance.css\": [\n\t\t27334,\n\t\t7334,\n\t\t1483\n\t],\n\t\"./ayu-dark.css\": [\n\t\t5213,\n\t\t5213\n\t],\n\t\"./ayu-mirage.css\": [\n\t\t27692,\n\t\t7692\n\t],\n\t\"./base16-dark.css\": [\n\t\t28427,\n\t\t8427\n\t],\n\t\"./base16-light.css\": [\n\t\t59621,\n\t\t9621\n\t],\n\t\"./bespin.css\": [\n\t\t60451,\n\t\t451\n\t],\n\t\"./blackboard.css\": [\n\t\t20554,\n\t\t554\n\t],\n\t\"./cobalt.css\": [\n\t\t15227,\n\t\t5227\n\t],\n\t\"./colorforth.css\": [\n\t\t87359,\n\t\t7359\n\t],\n\t\"./darcula.css\": [\n\t\t91320,\n\t\t1320\n\t],\n\t\"./dracula.css\": [\n\t\t9156,\n\t\t9156\n\t],\n\t\"./duotone-dark.css\": [\n\t\t87509,\n\t\t7509\n\t],\n\t\"./duotone-light.css\": [\n\t\t29647,\n\t\t9647\n\t],\n\t\"./eclipse.css\": [\n\t\t16612,\n\t\t6612\n\t],\n\t\"./elegant.css\": [\n\t\t30489,\n\t\t489\n\t],\n\t\"./erlang-dark.css\": [\n\t\t20406,\n\t\t406\n\t],\n\t\"./gruvbox-dark.css\": [\n\t\t42834,\n\t\t2834\n\t],\n\t\"./hopscotch.css\": [\n\t\t8028,\n\t\t8028\n\t],\n\t\"./icecoder.css\": [\n\t\t4262,\n\t\t4262\n\t],\n\t\"./idea.css\": [\n\t\t4207,\n\t\t4207\n\t],\n\t\"./isotope.css\": [\n\t\t82359,\n\t\t2359\n\t],\n\t\"./lesser-dark.css\": [\n\t\t37808,\n\t\t7808\n\t],\n\t\"./liquibyte.css\": [\n\t\t60582,\n\t\t582\n\t],\n\t\"./lucario.css\": [\n\t\t36870,\n\t\t6870\n\t],\n\t\"./material-darker.css\": [\n\t\t89196,\n\t\t9196\n\t],\n\t\"./material-ocean.css\": [\n\t\t26576,\n\t\t6576\n\t],\n\t\"./material-palenight.css\": [\n\t\t24182,\n\t\t4182\n\t],\n\t\"./material.css\": [\n\t\t83051,\n\t\t3051\n\t],\n\t\"./mbo.css\": [\n\t\t2303,\n\t\t2303\n\t],\n\t\"./mdn-like.css\": [\n\t\t66664,\n\t\t6664\n\t],\n\t\"./midnight.css\": [\n\t\t92956,\n\t\t2956\n\t],\n\t\"./monokai.css\": [\n\t\t14750,\n\t\t4750\n\t],\n\t\"./moxer.css\": [\n\t\t63970,\n\t\t3970\n\t],\n\t\"./neat.css\": [\n\t\t52118,\n\t\t2118\n\t],\n\t\"./neo.css\": [\n\t\t38412,\n\t\t8412\n\t],\n\t\"./night.css\": [\n\t\t53037,\n\t\t3037\n\t],\n\t\"./nord.css\": [\n\t\t51989,\n\t\t1989\n\t],\n\t\"./oceanic-next.css\": [\n\t\t29077,\n\t\t9077\n\t],\n\t\"./panda-syntax.css\": [\n\t\t10330,\n\t\t330\n\t],\n\t\"./paraiso-dark.css\": [\n\t\t42169,\n\t\t2169\n\t],\n\t\"./paraiso-light.css\": [\n\t\t5823,\n\t\t5823\n\t],\n\t\"./pastel-on-dark.css\": [\n\t\t76952,\n\t\t6952\n\t],\n\t\"./railscasts.css\": [\n\t\t63004,\n\t\t3004\n\t],\n\t\"./rubyblue.css\": [\n\t\t92351,\n\t\t2351\n\t],\n\t\"./seti.css\": [\n\t\t9602,\n\t\t9602\n\t],\n\t\"./shadowfox.css\": [\n\t\t44749,\n\t\t4749\n\t],\n\t\"./solarized.css\": [\n\t\t70217,\n\t\t217\n\t],\n\t\"./ssms.css\": [\n\t\t45153,\n\t\t5153\n\t],\n\t\"./the-matrix.css\": [\n\t\t20160,\n\t\t160\n\t],\n\t\"./tomorrow-night-bright.css\": [\n\t\t45710,\n\t\t5710\n\t],\n\t\"./tomorrow-night-eighties.css\": [\n\t\t71272,\n\t\t1272\n\t],\n\t\"./ttcn.css\": [\n\t\t65489,\n\t\t5489\n\t],\n\t\"./twilight.css\": [\n\t\t68976,\n\t\t8976\n\t],\n\t\"./vibrant-ink.css\": [\n\t\t51261,\n\t\t1261\n\t],\n\t\"./xq-dark.css\": [\n\t\t40400,\n\t\t400\n\t],\n\t\"./xq-light.css\": [\n\t\t53546,\n\t\t3546\n\t],\n\t\"./yeti.css\": [\n\t\t12629,\n\t\t2629\n\t],\n\t\"./yonce.css\": [\n\t\t44018,\n\t\t4018\n\t],\n\t\"./zenburn.css\": [\n\t\t84206,\n\t\t4206\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(() => {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn Promise.all(ids.slice(1).map(__webpack_require__.e)).then(() => {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = () => (Object.keys(map));\nwebpackAsyncContext.id = 49160;\nmodule.exports = webpackAsyncContext;"],"names":["map","webpackAsyncContext","req","__webpack_require__","o","Promise","resolve","then","e","Error","code","ids","id","all","slice","keys","Object","module","exports"],"sourceRoot":""} \ No newline at end of file diff --git a/_static/build/6556.b3d9293.js b/_static/build/6556.b3d9293.js new file mode 100644 index 0000000..77b9af8 --- /dev/null +++ b/_static/build/6556.b3d9293.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[6556,783],{36556:(e,t,i)=>{i.r(t),i.d(t,{IRetroShell:()=>u,RetroApp:()=>f,RetroShell:()=>c});var n=i(67504),s=i(61280),a=i(69207),r=i(55941),o=i(61313),d=i(43892),g=i(26169),p=i(14064),l=i(70942),h=i(94519);const u=new g.Token("@retrolab/application:IRetroShell");class c extends h.Widget{constructor(){super(),this._currentChanged=new l.Signal(this),this.id="main";const e=new h.BoxLayout;this._topHandler=new m.PanelHandler,this._menuHandler=new m.PanelHandler,this._main=new h.Panel,this._topHandler.panel.id="top-panel",this._menuHandler.panel.id="menu-panel",this._main.id="main-panel";const t=this._topWrapper=new h.Panel;t.id="top-panel-wrapper",t.addWidget(this._topHandler.panel);const i=this._menuWrapper=new h.Panel;i.id="menu-panel-wrapper",i.addWidget(this._menuHandler.panel),h.BoxLayout.setStretch(t,0),h.BoxLayout.setStretch(i,0),h.BoxLayout.setStretch(this._main,1),this._spacer=new h.Widget,this._spacer.id="spacer-widget",e.spacing=0,e.addWidget(t),e.addWidget(i),e.addWidget(this._spacer),e.addWidget(this._main),this.layout=e}get currentChanged(){return this._currentChanged}get currentWidget(){var e;return null!==(e=this._main.widgets[0])&&void 0!==e?e:null}get top(){return this._topWrapper}get menu(){return this._menuWrapper}activateById(e){const t=(0,d.find)(this.widgets("main"),(t=>t.id===e));t&&t.activate()}add(e,t,i){var n;const s=null!==(n=null==i?void 0:i.rank)&&void 0!==n?n:900;if("top"===t)return this._topHandler.addWidget(e,s);if("menu"===t)return this._menuHandler.addWidget(e,s);if("main"===t||void 0===t){if(this._main.widgets.length>0)return;this._main.addWidget(e),this._main.update(),this._currentChanged.emit(void 0)}}collapseTop(){this._topWrapper.setHidden(!0),this._spacer.setHidden(!0)}expandTop(){this._topWrapper.setHidden(!1),this._spacer.setHidden(!1)}widgets(e){switch(null!=e?e:"main"){case"top":return(0,d.iter)(this._topHandler.panel.widgets);case"menu":return(0,d.iter)(this._menuHandler.panel.widgets);case"main":return(0,d.iter)(this._main.widgets);default:throw new Error(`Invalid area: ${e}`)}}}var m,_;!function(e){e.itemCmp=function(e,t){return e.rank-t.rank},e.PanelHandler=class{constructor(){this._panelChildHook=(e,t)=>{switch(t.type){case"child-added":{const e=t.child;if(this._items.find((t=>t.widget===e)))break;const i=this._items[this._items.length-1].rank;this._items.push({widget:e,rank:i})}break;case"child-removed":{const e=t.child;d.ArrayExt.removeFirstWhere(this._items,(t=>t.widget===e))}}return!0},this._items=new Array,this._panel=new h.Panel,p.MessageLoop.installMessageHook(this._panel,this._panelChildHook)}get panel(){return this._panel}addWidget(t,i){t.parent=null;const n={widget:t,rank:i},s=d.ArrayExt.upperBound(this._items,n,e.itemCmp);d.ArrayExt.insert(this._items,s,n),this._panel.insertWidget(s,t)}}}(m||(m={}));class f extends n.JupyterFrontEnd{constructor(e={shell:new c}){var t,i;if(super(Object.assign(Object.assign({},e),{shell:null!==(t=e.shell)&&void 0!==t?t:new c})),this.name="RetroLab",this.namespace=this.name,this.status=new a.J(this),this.version=null!==(i=r.PageConfig.getOption("appVersion"))&&void 0!==i?i:"unknown",this._formatter=new o.Throttler((()=>{_.setFormat(this)}),250),e.mimeExtensions)for(const t of(0,s.as)(e.mimeExtensions))this.registerPlugin(t);this.restored.then((()=>this._formatter.invoke()))}get paths(){return{urls:{base:r.PageConfig.getOption("baseUrl"),notFound:r.PageConfig.getOption("notFoundUrl"),app:r.PageConfig.getOption("appUrl"),static:r.PageConfig.getOption("staticUrl"),settings:r.PageConfig.getOption("settingsUrl"),themes:r.PageConfig.getOption("themesUrl"),doc:r.PageConfig.getOption("docUrl"),translations:r.PageConfig.getOption("translationsApiUrl"),hubHost:r.PageConfig.getOption("hubHost")||void 0,hubPrefix:r.PageConfig.getOption("hubPrefix")||void 0,hubUser:r.PageConfig.getOption("hubUser")||void 0,hubServerName:r.PageConfig.getOption("hubServerName")||void 0},directories:{appSettings:r.PageConfig.getOption("appSettingsDir"),schemas:r.PageConfig.getOption("schemasDir"),static:r.PageConfig.getOption("staticDir"),templates:r.PageConfig.getOption("templatesDir"),themes:r.PageConfig.getOption("themesDir"),userSettings:r.PageConfig.getOption("userSettingsDir"),serverRoot:r.PageConfig.getOption("serverRoot"),workspaces:r.PageConfig.getOption("workspacesDir")}}}handleEvent(e){super.handleEvent(e),"resize"===e.type&&this._formatter.invoke()}registerPluginModule(e){let t=e.default;Object.prototype.hasOwnProperty.call(e,"__esModule")||(t=e),Array.isArray(t)||(t=[t]),t.forEach((e=>{try{this.registerPlugin(e)}catch(e){console.error(e)}}))}registerPluginModules(e){e.forEach((e=>{this.registerPluginModule(e)}))}}!function(e){e.setFormat=function(e){e.format=window.matchMedia("only screen and (max-width: 760px)").matches?"mobile":"desktop"}}(_||(_={}))}}]); +//# sourceMappingURL=6556.b3d9293.js.map \ No newline at end of file diff --git a/_static/build/6556.b3d9293.js.map b/_static/build/6556.b3d9293.js.map new file mode 100644 index 0000000..efa7b66 --- /dev/null +++ b/_static/build/6556.b3d9293.js.map @@ -0,0 +1 @@ +{"version":3,"file":"6556.b3d9293.js","mappings":"2TAUO,MAAMA,EAAc,IAAI,EAAAC,MAAM,qCAQ9B,MAAMC,UAAmB,EAAAC,OAC5BC,cACIC,QACAC,KAAKC,gBAAkB,IAAI,EAAAC,OAAOF,MAClCA,KAAKG,GAAK,OACV,MAAMC,EAAa,IAAI,EAAAC,UACvBL,KAAKM,YAAc,IAAIC,EAAQC,aAC/BR,KAAKS,aAAe,IAAIF,EAAQC,aAChCR,KAAKU,MAAQ,IAAI,EAAAC,MACjBX,KAAKM,YAAYM,MAAMT,GAAK,YAC5BH,KAAKS,aAAaG,MAAMT,GAAK,aAC7BH,KAAKU,MAAMP,GAAK,aAEhB,MAAMU,EAAcb,KAAKc,YAAc,IAAI,EAAAH,MAC3CE,EAAWV,GAAK,oBAChBU,EAAWE,UAAUf,KAAKM,YAAYM,OACtC,MAAMI,EAAehB,KAAKiB,aAAe,IAAI,EAAAN,MAC7CK,EAAYb,GAAK,qBACjBa,EAAYD,UAAUf,KAAKS,aAAaG,OACxC,EAAAP,UAAA,WAAqBQ,EAAY,GACjC,EAAAR,UAAA,WAAqBW,EAAa,GAClC,EAAAX,UAAA,WAAqBL,KAAKU,MAAO,GACjCV,KAAKkB,QAAU,IAAI,EAAArB,OACnBG,KAAKkB,QAAQf,GAAK,gBAClBC,EAAWe,QAAU,EACrBf,EAAWW,UAAUF,GACrBT,EAAWW,UAAUC,GACrBZ,EAAWW,UAAUf,KAAKkB,SAC1Bd,EAAWW,UAAUf,KAAKU,OAC1BV,KAAKoB,OAAShB,CAClB,CAIIiB,qBACA,OAAOrB,KAAKC,eAChB,CAIIqB,oBACA,IAAIC,EACJ,OAAwC,QAAhCA,EAAKvB,KAAKU,MAAMc,QAAQ,UAAuB,IAAPD,EAAgBA,EAAK,IACzE,CAIIE,UACA,OAAOzB,KAAKc,WAChB,CAIIY,WACA,OAAO1B,KAAKiB,YAChB,CAIAU,aAAaxB,GACT,MAAMyB,GAAS,IAAAC,MAAK7B,KAAKwB,QAAQ,SAASM,GAAKA,EAAE3B,KAAOA,IACpDyB,GACAA,EAAOG,UAEf,CAYAC,IAAIJ,EAAQK,EAAMC,GACd,IAAIX,EACJ,MAAMY,EAAiF,QAAzEZ,EAAKW,aAAyC,EAASA,EAAQC,YAAyB,IAAPZ,EAAgBA,EAlFlG,IAmFb,GAAa,QAATU,EACA,OAAOjC,KAAKM,YAAYS,UAAUa,EAAQO,GAE9C,GAAa,SAATF,EACA,OAAOjC,KAAKS,aAAaM,UAAUa,EAAQO,GAE/C,GAAa,SAATF,QAA4BG,IAATH,EAAoB,CACvC,GAAIjC,KAAKU,MAAMc,QAAQa,OAAS,EAE5B,OAEJrC,KAAKU,MAAMK,UAAUa,GACrB5B,KAAKU,MAAM4B,SACXtC,KAAKC,gBAAgBsC,UAAK,EAC9B,CACJ,CAIAC,cACIxC,KAAKc,YAAY2B,WAAU,GAC3BzC,KAAKkB,QAAQuB,WAAU,EAC3B,CAIAC,YACI1C,KAAKc,YAAY2B,WAAU,GAC3BzC,KAAKkB,QAAQuB,WAAU,EAC3B,CAMAjB,QAAQS,GACJ,OAAQA,QAAmCA,EAAO,QAC9C,IAAK,MACD,OAAO,IAAAU,MAAK3C,KAAKM,YAAYM,MAAMY,SACvC,IAAK,OACD,OAAO,IAAAmB,MAAK3C,KAAKS,aAAaG,MAAMY,SACxC,IAAK,OACD,OAAO,IAAAmB,MAAK3C,KAAKU,MAAMc,SAC3B,QACI,MAAM,IAAIoB,MAAM,iBAAiBX,KAE7C,EAKJ,IAAI1B,ECvBA,GDwBJ,SAAWA,GAOPA,EAAQsC,QAHR,SAAiBC,EAAOC,GACpB,OAAOD,EAAMX,KAAOY,EAAOZ,IAC/B,EA0DA5B,EAAQC,aArDR,MACIV,cAIIE,KAAKgD,gBAAkB,CAACC,EAASC,KAC7B,OAAQA,EAAIC,MACR,IAAK,cACD,CACI,MAAMvB,EAASsB,EAAIE,MAEnB,GAAIpD,KAAKqD,OAAOxB,MAAKyB,GAAKA,EAAE1B,SAAWA,IACnC,MAGJ,MAAMO,EAAOnC,KAAKqD,OAAOrD,KAAKqD,OAAOhB,OAAS,GAAGF,KACjDnC,KAAKqD,OAAOE,KAAK,CAAE3B,SAAQO,QAC/B,CACA,MACJ,IAAK,gBACD,CACI,MAAMP,EAASsB,EAAIE,MACnB,EAAAI,SAAA,iBAA0BxD,KAAKqD,QAAQC,GAAKA,EAAE1B,SAAWA,GAC7D,EAKR,OAAO,CAAI,EAEf5B,KAAKqD,OAAS,IAAII,MAClBzD,KAAK0D,OAAS,IAAI,EAAA/C,MAClB,EAAAgD,YAAA,mBAA+B3D,KAAK0D,OAAQ1D,KAAKgD,gBACrD,CAIIpC,YACA,OAAOZ,KAAK0D,MAChB,CAMA3C,UAAUa,EAAQO,GACdP,EAAOgC,OAAS,KAChB,MAAMC,EAAO,CAAEjC,SAAQO,QACjB2B,EAAQ,EAAAN,SAAA,WAAoBxD,KAAKqD,OAAQQ,EAAMtD,EAAQsC,SAC7D,EAAAW,SAAA,OAAgBxD,KAAKqD,OAAQS,EAAOD,GACpC7D,KAAK0D,OAAOK,aAAaD,EAAOlC,EACpC,EAGP,CAjED,CAiEGrB,IAAYA,EAAU,CAAC,IC3MnB,MAAMyD,UAAiB,EAAAC,gBAM1BnE,YAAYoC,EAAU,CAAEgC,MAAO,IAAItE,IAC/B,IAAI2B,EAAI4C,EAqBR,GApBApE,MAAMqE,OAAOC,OAAOD,OAAOC,OAAO,CAAC,EAAGnC,GAAU,CAAEgC,MAAgC,QAAxB3C,EAAKW,EAAQgC,aAA0B,IAAP3C,EAAgBA,EAAK,IAAI3B,KAInHI,KAAKsE,KAAO,WAIZtE,KAAKuE,UAAYvE,KAAKsE,KAItBtE,KAAKwE,OAAS,IAAI,IAAUxE,MAI5BA,KAAKyE,QAAwD,QAA7CN,EAAK,EAAAO,WAAA,UAAqB,qBAAkC,IAAPP,EAAgBA,EAAK,UAC1FnE,KAAK2E,WAAa,IAAI,EAAAC,WAAU,KAC5B,EAAQC,UAAU7E,KAAK,GACxB,KACCkC,EAAQ4C,eACR,IAAK,MAAMC,KAAU,QAAwB7C,EAAQ4C,gBACjD9E,KAAKgF,eAAeD,GAG5B/E,KAAKiF,SAASC,MAAK,IAAMlF,KAAK2E,WAAWQ,UAC7C,CAIIC,YACA,MAAO,CACHC,KAAM,CACFC,KAAM,EAAAZ,WAAA,UAAqB,WAC3Ba,SAAU,EAAAb,WAAA,UAAqB,eAC/Bc,IAAK,EAAAd,WAAA,UAAqB,UAC1Be,OAAQ,EAAAf,WAAA,UAAqB,aAC7BgB,SAAU,EAAAhB,WAAA,UAAqB,eAC/BiB,OAAQ,EAAAjB,WAAA,UAAqB,aAC7BkB,IAAK,EAAAlB,WAAA,UAAqB,UAC1BmB,aAAc,EAAAnB,WAAA,UAAqB,sBACnCoB,QAAS,EAAApB,WAAA,UAAqB,iBAActC,EAC5C2D,UAAW,EAAArB,WAAA,UAAqB,mBAAgBtC,EAChD4D,QAAS,EAAAtB,WAAA,UAAqB,iBAActC,EAC5C6D,cAAe,EAAAvB,WAAA,UAAqB,uBAAoBtC,GAE5D8D,YAAa,CACTC,YAAa,EAAAzB,WAAA,UAAqB,kBAClC0B,QAAS,EAAA1B,WAAA,UAAqB,cAC9Be,OAAQ,EAAAf,WAAA,UAAqB,aAC7B2B,UAAW,EAAA3B,WAAA,UAAqB,gBAChCiB,OAAQ,EAAAjB,WAAA,UAAqB,aAC7B4B,aAAc,EAAA5B,WAAA,UAAqB,mBACnC6B,WAAY,EAAA7B,WAAA,UAAqB,cACjC8B,WAAY,EAAA9B,WAAA,UAAqB,kBAG7C,CAMA+B,YAAYC,GACR3G,MAAM0G,YAAYC,GACC,WAAfA,EAAMvD,MACDnD,KAAK2E,WAAWQ,QAE7B,CAMAwB,qBAAqBC,GACjB,IAAIC,EAAOD,EAAIE,QAEV1C,OAAO2C,UAAUC,eAAeC,KAAKL,EAAK,gBAC3CC,EAAOD,GAENnD,MAAMyD,QAAQL,KACfA,EAAO,CAACA,IAEZA,EAAKM,SAAQtD,IACT,IACI7D,KAAKgF,eAAenB,EAIxB,CAFA,MAAOuD,GACHC,QAAQD,MAAMA,EAClB,IAER,CAMAE,sBAAsBC,GAClBA,EAAKJ,SAAQP,IACT5G,KAAK2G,qBAAqBC,EAAI,GAEtC,GAMJ,SAAWrG,GAaPA,EAAQsE,UAHR,SAAmBW,GACfA,EAAIgC,OAASC,OAAOC,WAPH,sCAO4BC,QAAU,SAAW,SACtE,CAEH,CAdD,CAcG,IAAY,EAAU,CAAC,G","sources":["webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@retrolab/application/lib/shell.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@retrolab/application/lib/app.js"],"sourcesContent":["// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\nimport { ArrayExt, find, iter } from '@lumino/algorithm';\nimport { Token } from '@lumino/coreutils';\nimport { MessageLoop } from '@lumino/messaging';\nimport { Signal } from '@lumino/signaling';\nimport { Panel, Widget, BoxLayout } from '@lumino/widgets';\n/**\n * The RetroLab application shell token.\n */\nexport const IRetroShell = new Token('@retrolab/application:IRetroShell');\n/**\n * The default rank for ranked panels.\n */\nconst DEFAULT_RANK = 900;\n/**\n * The application shell.\n */\nexport class RetroShell extends Widget {\n constructor() {\n super();\n this._currentChanged = new Signal(this);\n this.id = 'main';\n const rootLayout = new BoxLayout();\n this._topHandler = new Private.PanelHandler();\n this._menuHandler = new Private.PanelHandler();\n this._main = new Panel();\n this._topHandler.panel.id = 'top-panel';\n this._menuHandler.panel.id = 'menu-panel';\n this._main.id = 'main-panel';\n // create wrappers around the top and menu areas\n const topWrapper = (this._topWrapper = new Panel());\n topWrapper.id = 'top-panel-wrapper';\n topWrapper.addWidget(this._topHandler.panel);\n const menuWrapper = (this._menuWrapper = new Panel());\n menuWrapper.id = 'menu-panel-wrapper';\n menuWrapper.addWidget(this._menuHandler.panel);\n BoxLayout.setStretch(topWrapper, 0);\n BoxLayout.setStretch(menuWrapper, 0);\n BoxLayout.setStretch(this._main, 1);\n this._spacer = new Widget();\n this._spacer.id = 'spacer-widget';\n rootLayout.spacing = 0;\n rootLayout.addWidget(topWrapper);\n rootLayout.addWidget(menuWrapper);\n rootLayout.addWidget(this._spacer);\n rootLayout.addWidget(this._main);\n this.layout = rootLayout;\n }\n /**\n * A signal emitted when the current widget changes.\n */\n get currentChanged() {\n return this._currentChanged;\n }\n /**\n * The current widget in the shell's main area.\n */\n get currentWidget() {\n var _a;\n return (_a = this._main.widgets[0]) !== null && _a !== void 0 ? _a : null;\n }\n /**\n * Get the top area wrapper panel\n */\n get top() {\n return this._topWrapper;\n }\n /**\n * Get the menu area wrapper panel\n */\n get menu() {\n return this._menuWrapper;\n }\n /**\n * Activate a widget in its area.\n */\n activateById(id) {\n const widget = find(this.widgets('main'), w => w.id === id);\n if (widget) {\n widget.activate();\n }\n }\n /**\n * Add a widget to the application shell.\n *\n * @param widget - The widget being added.\n *\n * @param area - Optional region in the shell into which the widget should\n * be added.\n *\n * @param options - Optional open options.\n *\n */\n add(widget, area, options) {\n var _a;\n const rank = (_a = options === null || options === void 0 ? void 0 : options.rank) !== null && _a !== void 0 ? _a : DEFAULT_RANK;\n if (area === 'top') {\n return this._topHandler.addWidget(widget, rank);\n }\n if (area === 'menu') {\n return this._menuHandler.addWidget(widget, rank);\n }\n if (area === 'main' || area === undefined) {\n if (this._main.widgets.length > 0) {\n // do not add the widget if there is already one\n return;\n }\n this._main.addWidget(widget);\n this._main.update();\n this._currentChanged.emit(void 0);\n }\n }\n /**\n * Collapse the top area and the spacer to make the view more compact.\n */\n collapseTop() {\n this._topWrapper.setHidden(true);\n this._spacer.setHidden(true);\n }\n /**\n * Expand the top area to show the header and the spacer.\n */\n expandTop() {\n this._topWrapper.setHidden(false);\n this._spacer.setHidden(false);\n }\n /**\n * Return the list of widgets for the given area.\n *\n * @param area The area\n */\n widgets(area) {\n switch (area !== null && area !== void 0 ? area : 'main') {\n case 'top':\n return iter(this._topHandler.panel.widgets);\n case 'menu':\n return iter(this._menuHandler.panel.widgets);\n case 'main':\n return iter(this._main.widgets);\n default:\n throw new Error(`Invalid area: ${area}`);\n }\n }\n}\n/**\n * A namespace for private module data.\n */\nvar Private;\n(function (Private) {\n /**\n * A less-than comparison function for side bar rank items.\n */\n function itemCmp(first, second) {\n return first.rank - second.rank;\n }\n Private.itemCmp = itemCmp;\n /**\n * A class which manages a panel and sorts its widgets by rank.\n */\n class PanelHandler {\n constructor() {\n /**\n * A message hook for child add/remove messages on the main area dock panel.\n */\n this._panelChildHook = (handler, msg) => {\n switch (msg.type) {\n case 'child-added':\n {\n const widget = msg.child;\n // If we already know about this widget, we're done\n if (this._items.find(v => v.widget === widget)) {\n break;\n }\n // Otherwise, add to the end by default\n const rank = this._items[this._items.length - 1].rank;\n this._items.push({ widget, rank });\n }\n break;\n case 'child-removed':\n {\n const widget = msg.child;\n ArrayExt.removeFirstWhere(this._items, v => v.widget === widget);\n }\n break;\n default:\n break;\n }\n return true;\n };\n this._items = new Array();\n this._panel = new Panel();\n MessageLoop.installMessageHook(this._panel, this._panelChildHook);\n }\n /**\n * Get the panel managed by the handler.\n */\n get panel() {\n return this._panel;\n }\n /**\n * Add a widget to the panel.\n *\n * If the widget is already added, it will be moved.\n */\n addWidget(widget, rank) {\n widget.parent = null;\n const item = { widget, rank };\n const index = ArrayExt.upperBound(this._items, item, Private.itemCmp);\n ArrayExt.insert(this._items, index, item);\n this._panel.insertWidget(index, widget);\n }\n }\n Private.PanelHandler = PanelHandler;\n})(Private || (Private = {}));\n","// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\nimport { JupyterFrontEnd } from '@jupyterlab/application';\nimport { createRendermimePlugins } from '@jupyterlab/application/lib/mimerenderers';\nimport { LabStatus } from '@jupyterlab/application/lib/status';\nimport { PageConfig } from '@jupyterlab/coreutils';\nimport { Throttler } from '@lumino/polling';\nimport { RetroShell } from './shell';\n/**\n * App is the main application class. It is instantiated once and shared.\n */\nexport class RetroApp extends JupyterFrontEnd {\n /**\n * Construct a new RetroApp object.\n *\n * @param options The instantiation options for an application.\n */\n constructor(options = { shell: new RetroShell() }) {\n var _a, _b;\n super(Object.assign(Object.assign({}, options), { shell: (_a = options.shell) !== null && _a !== void 0 ? _a : new RetroShell() }));\n /**\n * The name of the application.\n */\n this.name = 'RetroLab';\n /**\n * A namespace/prefix plugins may use to denote their provenance.\n */\n this.namespace = this.name;\n /**\n * The application busy and dirty status signals and flags.\n */\n this.status = new LabStatus(this);\n /**\n * The version of the application.\n */\n this.version = (_b = PageConfig.getOption('appVersion')) !== null && _b !== void 0 ? _b : 'unknown';\n this._formatter = new Throttler(() => {\n Private.setFormat(this);\n }, 250);\n if (options.mimeExtensions) {\n for (const plugin of createRendermimePlugins(options.mimeExtensions)) {\n this.registerPlugin(plugin);\n }\n }\n this.restored.then(() => this._formatter.invoke());\n }\n /**\n * The JupyterLab application paths dictionary.\n */\n get paths() {\n return {\n urls: {\n base: PageConfig.getOption('baseUrl'),\n notFound: PageConfig.getOption('notFoundUrl'),\n app: PageConfig.getOption('appUrl'),\n static: PageConfig.getOption('staticUrl'),\n settings: PageConfig.getOption('settingsUrl'),\n themes: PageConfig.getOption('themesUrl'),\n doc: PageConfig.getOption('docUrl'),\n translations: PageConfig.getOption('translationsApiUrl'),\n hubHost: PageConfig.getOption('hubHost') || undefined,\n hubPrefix: PageConfig.getOption('hubPrefix') || undefined,\n hubUser: PageConfig.getOption('hubUser') || undefined,\n hubServerName: PageConfig.getOption('hubServerName') || undefined\n },\n directories: {\n appSettings: PageConfig.getOption('appSettingsDir'),\n schemas: PageConfig.getOption('schemasDir'),\n static: PageConfig.getOption('staticDir'),\n templates: PageConfig.getOption('templatesDir'),\n themes: PageConfig.getOption('themesDir'),\n userSettings: PageConfig.getOption('userSettingsDir'),\n serverRoot: PageConfig.getOption('serverRoot'),\n workspaces: PageConfig.getOption('workspacesDir')\n }\n };\n }\n /**\n * Handle the DOM events for the application.\n *\n * @param event - The DOM event sent to the application.\n */\n handleEvent(event) {\n super.handleEvent(event);\n if (event.type === 'resize') {\n void this._formatter.invoke();\n }\n }\n /**\n * Register plugins from a plugin module.\n *\n * @param mod - The plugin module to register.\n */\n registerPluginModule(mod) {\n let data = mod.default;\n // Handle commonjs exports.\n if (!Object.prototype.hasOwnProperty.call(mod, '__esModule')) {\n data = mod;\n }\n if (!Array.isArray(data)) {\n data = [data];\n }\n data.forEach(item => {\n try {\n this.registerPlugin(item);\n }\n catch (error) {\n console.error(error);\n }\n });\n }\n /**\n * Register the plugins from multiple plugin modules.\n *\n * @param mods - The plugin modules to register.\n */\n registerPluginModules(mods) {\n mods.forEach(mod => {\n this.registerPluginModule(mod);\n });\n }\n}\n/**\n * A namespace for module-private functionality.\n */\nvar Private;\n(function (Private) {\n /**\n * Media query for mobile devices.\n */\n const MOBILE_QUERY = 'only screen and (max-width: 760px)';\n /**\n * Sets the `format` of a Jupyter front-end application.\n *\n * @param app The front-end application whose format is set.\n */\n function setFormat(app) {\n app.format = window.matchMedia(MOBILE_QUERY).matches ? 'mobile' : 'desktop';\n }\n Private.setFormat = setFormat;\n})(Private || (Private = {}));\n"],"names":["IRetroShell","Token","RetroShell","Widget","constructor","super","this","_currentChanged","Signal","id","rootLayout","BoxLayout","_topHandler","Private","PanelHandler","_menuHandler","_main","Panel","panel","topWrapper","_topWrapper","addWidget","menuWrapper","_menuWrapper","_spacer","spacing","layout","currentChanged","currentWidget","_a","widgets","top","menu","activateById","widget","find","w","activate","add","area","options","rank","undefined","length","update","emit","collapseTop","setHidden","expandTop","iter","Error","itemCmp","first","second","_panelChildHook","handler","msg","type","child","_items","v","push","ArrayExt","Array","_panel","MessageLoop","parent","item","index","insertWidget","RetroApp","JupyterFrontEnd","shell","_b","Object","assign","name","namespace","status","version","PageConfig","_formatter","Throttler","setFormat","mimeExtensions","plugin","registerPlugin","restored","then","invoke","paths","urls","base","notFound","app","static","settings","themes","doc","translations","hubHost","hubPrefix","hubUser","hubServerName","directories","appSettings","schemas","templates","userSettings","serverRoot","workspaces","handleEvent","event","registerPluginModule","mod","data","default","prototype","hasOwnProperty","call","isArray","forEach","error","console","registerPluginModules","mods","format","window","matchMedia","matches"],"sourceRoot":""} \ No newline at end of file diff --git a/_static/build/6571.2c8884e.js b/_static/build/6571.2c8884e.js new file mode 100644 index 0000000..eafc4ab --- /dev/null +++ b/_static/build/6571.2c8884e.js @@ -0,0 +1,2 @@ +(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[6571],{77608:(e,t,r)=>{"use strict";r.d(t,{$m:()=>i,Dp:()=>s,Z$:()=>n,kJ:()=>c,s7:()=>o});const n=e=>e[e.length-1],o=(e,t)=>{for(let r=0;r{return e.length===t.length&&(r=(e,r)=>e===t[r],e.every(r));var r},c=Array.isArray},96571:(e,t,r)=>{"use strict";r.d(t,{jS:()=>p,jU:()=>l,UG:()=>u,hH:()=>m});var n=r(31234),o=r(1011);var s=r(99622),i=r(12904),c=r(18533);const u=c.release&&/node|io\.js/.test(c.release.name),l="undefined"!=typeof window&&!u;let a;"undefined"!=typeof navigator&&/Mac/.test(navigator.platform);const f=[],h=()=>{if(void 0===a)if(u){a=n.Ue();const e=c.argv;let t=null;for(let r=0;r{if(0!==e.length){const[t,r]=e.split("=");a.set(`--${o.NF(t,"-")}`,r),a.set(`-${o.NF(t,"-")}`,r)}}))):a=n.Ue();return a},d=e=>h().has(e),p=(e,t)=>h().get(e)||t,g=e=>{return void 0===(t=u?{}[e.toUpperCase()]:s.X.getItem(e))?null:t;var t};d("--"+"production")||g("production");const y=u&&i.gB({}.FORCE_COLOR,["true","1","2"]),m=!d("no-colors")&&(!u||c.stdout.isTTY||y)&&(!u||d("color")||y||null!==g("COLORTERM")||(g("TERM")||"").includes("color"))},12904:(e,t,r)=>{"use strict";r.d(t,{Hi:()=>c,PP:()=>s,UV:()=>i,gB:()=>u});var n=r(77608),o=r(41042);const s=(e,t,r=0)=>{try{for(;re===t||null!=e&&null!=t&&e.constructor===t.constructor&&(e instanceof Array&&n.$m(e,t)||"object"==typeof e&&o.$m(e,t)),c=(e,t)=>{if(null==e||null==t)return((e,t)=>e===t)(e,t);if(e.constructor!==t.constructor)return!1;if(e===t)return!0;switch(e.constructor){case ArrayBuffer:e=new Uint8Array(e),t=new Uint8Array(t);case Uint8Array:if(e.byteLength!==t.byteLength)return!1;for(let r=0;rt.includes(e)},31234:(e,t,r)=>{"use strict";r.d(t,{JG:()=>o,UI:()=>i,Ue:()=>n,Yj:()=>c,Yu:()=>s});const n=()=>new Map,o=e=>{const t=n();return e.forEach(((e,r)=>{t.set(r,e)})),t},s=(e,t,r)=>{let n=e.get(t);return void 0===n&&e.set(t,n=r()),n},i=(e,t)=>{const r=[];for(const[n,o]of e)r.push(t(o,n));return r},c=(e,t)=>{for(const[r,n]of e)if(t(n,r))return!0;return!1}},41042:(e,t,r)=>{"use strict";r.d(t,{$m:()=>c,UI:()=>o,kE:()=>s,l$:()=>i}),Object.assign;const n=Object.keys,o=(e,t)=>{const r=[];for(const n in e)r.push(t(e[n],n));return r},s=e=>n(e).length,i=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),c=(e,t)=>e===t||s(e)===s(t)&&((e,t)=>{for(const r in e)if(!t(e[r],r))return!1;return!0})(e,((e,r)=>(void 0!==e||i(t,r))&&t[r]===e))},99622:(e,t,r)=>{"use strict";r.d(t,{X:()=>s,z:()=>i});let n=new class{constructor(){this.map=new Map}setItem(e,t){this.map.set(e,t)}getItem(e){return this.map.get(e)}},o=!0;try{"undefined"!=typeof localStorage&&(n=localStorage,o=!1)}catch(e){}const s=n,i=e=>o||addEventListener("storage",e)},1011:(e,t,r)=>{"use strict";r.d(t,{CO:()=>l,IK:()=>n,NF:()=>i,YZ:()=>c,lz:()=>u});const n=String.fromCharCode,o=(String.fromCodePoint,/^\s*/g),s=/([A-Z])/g,i=(e,t)=>(e=>e.replace(o,""))(e.replace(s,(e=>`${t}${(e=>e.toLowerCase())(e)}`))),c="undefined"!=typeof TextEncoder?new TextEncoder:null,u=c?e=>c.encode(e):e=>{const t=unescape(encodeURIComponent(e)),r=t.length,n=new Uint8Array(r);for(let e=0;e{var t,r,n=e.exports={};function o(){throw new Error("setTimeout has not been defined")}function s(){throw new Error("clearTimeout has not been defined")}function i(e){if(t===setTimeout)return setTimeout(e,0);if((t===o||!t)&&setTimeout)return t=setTimeout,setTimeout(e,0);try{return t(e,0)}catch(r){try{return t.call(null,e,0)}catch(r){return t.call(this,e,0)}}}!function(){try{t="function"==typeof setTimeout?setTimeout:o}catch(e){t=o}try{r="function"==typeof clearTimeout?clearTimeout:s}catch(e){r=s}}();var c,u=[],l=!1,a=-1;function f(){l&&c&&(l=!1,c.length?u=c.concat(u):a=-1,u.length&&h())}function h(){if(!l){var e=i(f);l=!0;for(var t=u.length;t;){for(c=u,u=[];++a1)for(var r=1;r} arr\n * @return {L}\n */\nexport const last = arr => arr[arr.length - 1]\n\n/**\n * @template C\n * @return {Array}\n */\nexport const create = () => /** @type {Array} */ ([])\n\n/**\n * @template D\n * @param {Array} a\n * @return {Array}\n */\nexport const copy = a => /** @type {Array} */ (a.slice())\n\n/**\n * Append elements from src to dest\n *\n * @template M\n * @param {Array} dest\n * @param {Array} src\n */\nexport const appendTo = (dest, src) => {\n for (let i = 0; i < src.length; i++) {\n dest.push(src[i])\n }\n}\n\n/**\n * Transforms something array-like to an actual Array.\n *\n * @function\n * @template T\n * @param {ArrayLike|Iterable} arraylike\n * @return {T}\n */\nexport const from = Array.from\n\n/**\n * True iff condition holds on every element in the Array.\n *\n * @function\n * @template ITEM\n *\n * @param {Array} arr\n * @param {function(ITEM, number, Array):boolean} f\n * @return {boolean}\n */\nexport const every = (arr, f) => arr.every(f)\n\n/**\n * True iff condition holds on some element in the Array.\n *\n * @function\n * @template S\n * @param {Array} arr\n * @param {function(S, number, Array):boolean} f\n * @return {boolean}\n */\nexport const some = (arr, f) => arr.some(f)\n\n/**\n * @template ELEM\n *\n * @param {Array} a\n * @param {Array} b\n * @return {boolean}\n */\nexport const equalFlat = (a, b) => a.length === b.length && every(a, (item, index) => item === b[index])\n\n/**\n * @template ELEM\n * @param {Array>} arr\n * @return {Array}\n */\nexport const flatten = arr => arr.reduce((acc, val) => acc.concat(val), [])\n\nexport const isArray = Array.isArray\n","/**\n * Isomorphic module to work access the environment (query params, env variables).\n *\n * @module map\n */\n\nimport * as map from './map.js'\nimport * as string from './string.js'\nimport * as conditions from './conditions.js'\nimport * as storage from './storage.js'\nimport * as f from './function.js'\n\n/* istanbul ignore next */\n// @ts-ignore\nexport const isNode = typeof process !== 'undefined' && process.release &&\n /node|io\\.js/.test(process.release.name)\n/* istanbul ignore next */\nexport const isBrowser = typeof window !== 'undefined' && !isNode\n/* istanbul ignore next */\nexport const isMac = typeof navigator !== 'undefined'\n ? /Mac/.test(navigator.platform)\n : false\n\n/**\n * @type {Map}\n */\nlet params\nconst args = []\n\n/* istanbul ignore next */\nconst computeParams = () => {\n if (params === undefined) {\n if (isNode) {\n params = map.create()\n const pargs = process.argv\n let currParamName = null\n /* istanbul ignore next */\n for (let i = 0; i < pargs.length; i++) {\n const parg = pargs[i]\n if (parg[0] === '-') {\n if (currParamName !== null) {\n params.set(currParamName, '')\n }\n currParamName = parg\n } else {\n if (currParamName !== null) {\n params.set(currParamName, parg)\n currParamName = null\n } else {\n args.push(parg)\n }\n }\n }\n if (currParamName !== null) {\n params.set(currParamName, '')\n }\n // in ReactNative for example this would not be true (unless connected to the Remote Debugger)\n } else if (typeof location === 'object') {\n params = map.create(); // eslint-disable-next-line no-undef\n (location.search || '?').slice(1).split('&').forEach((kv) => {\n if (kv.length !== 0) {\n const [key, value] = kv.split('=')\n params.set(`--${string.fromCamelCase(key, '-')}`, value)\n params.set(`-${string.fromCamelCase(key, '-')}`, value)\n }\n })\n } else {\n params = map.create()\n }\n }\n return params\n}\n\n/**\n * @param {string} name\n * @return {boolean}\n */\n/* istanbul ignore next */\nexport const hasParam = (name) => computeParams().has(name)\n\n/**\n * @param {string} name\n * @param {string} defaultVal\n * @return {string}\n */\n/* istanbul ignore next */\nexport const getParam = (name, defaultVal) =>\n computeParams().get(name) || defaultVal\n// export const getArgs = name => computeParams() && args\n\n/**\n * @param {string} name\n * @return {string|null}\n */\n/* istanbul ignore next */\nexport const getVariable = (name) =>\n isNode\n ? conditions.undefinedToNull(process.env[name.toUpperCase()])\n : conditions.undefinedToNull(storage.varStorage.getItem(name))\n\n/**\n * @param {string} name\n * @return {string|null}\n */\nexport const getConf = (name) =>\n computeParams().get('--' + name) || getVariable(name)\n\n/**\n * @param {string} name\n * @return {boolean}\n */\n/* istanbul ignore next */\nexport const hasConf = (name) =>\n hasParam('--' + name) || getVariable(name) !== null\n\n/* istanbul ignore next */\nexport const production = hasConf('production')\n\n/* istanbul ignore next */\nconst forceColor = isNode &&\n f.isOneOf(process.env.FORCE_COLOR, ['true', '1', '2'])\n\n/* istanbul ignore next */\nexport const supportsColor = !hasParam('no-colors') &&\n (!isNode || process.stdout.isTTY || forceColor) && (\n !isNode || hasParam('color') || forceColor ||\n getVariable('COLORTERM') !== null ||\n (getVariable('TERM') || '').includes('color')\n)\n","/**\n * Often used conditions.\n *\n * @module conditions\n */\n\n/**\n * @template T\n * @param {T|null|undefined} v\n * @return {T|null}\n */\n/* istanbul ignore next */\nexport const undefinedToNull = v => v === undefined ? null : v\n","/**\n * Common functions and function call helpers.\n *\n * @module function\n */\n\nimport * as array from './array.js'\nimport * as object from './object.js'\n\n/**\n * Calls all functions in `fs` with args. Only throws after all functions were called.\n *\n * @param {Array} fs\n * @param {Array} args\n */\nexport const callAll = (fs, args, i = 0) => {\n try {\n for (; i < fs.length; i++) {\n fs[i](...args)\n }\n } finally {\n if (i < fs.length) {\n callAll(fs, args, i + 1)\n }\n }\n}\n\nexport const nop = () => {}\n\n/**\n * @template T\n * @param {function():T} f\n * @return {T}\n */\nexport const apply = f => f()\n\n/**\n * @template A\n *\n * @param {A} a\n * @return {A}\n */\nexport const id = a => a\n\n/**\n * @template T\n *\n * @param {T} a\n * @param {T} b\n * @return {boolean}\n */\nexport const equalityStrict = (a, b) => a === b\n\n/**\n * @template T\n *\n * @param {Array|object} a\n * @param {Array|object} b\n * @return {boolean}\n */\nexport const equalityFlat = (a, b) => a === b || (a != null && b != null && a.constructor === b.constructor && ((a instanceof Array && array.equalFlat(a, /** @type {Array} */ (b))) || (typeof a === 'object' && object.equalFlat(a, b))))\n\n/**\n * @param {any} a\n * @param {any} b\n * @return {boolean}\n */\nexport const equalityDeep = (a, b) => {\n if (a == null || b == null) {\n return equalityStrict(a, b)\n }\n if (a.constructor !== b.constructor) {\n return false\n }\n if (a === b) {\n return true\n }\n switch (a.constructor) {\n case ArrayBuffer:\n a = new Uint8Array(a)\n b = new Uint8Array(b)\n // eslint-disable-next-line no-fallthrough\n case Uint8Array: {\n if (a.byteLength !== b.byteLength) {\n return false\n }\n for (let i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) {\n return false\n }\n }\n break\n }\n case Set: {\n if (a.size !== b.size) {\n return false\n }\n for (const value of a) {\n if (!b.has(value)) {\n return false\n }\n }\n break\n }\n case Map: {\n if (a.size !== b.size) {\n return false\n }\n for (const key of a.keys()) {\n if (!b.has(key) || !equalityDeep(a.get(key), b.get(key))) {\n return false\n }\n }\n break\n }\n case Object:\n if (object.length(a) !== object.length(b)) {\n return false\n }\n for (const key in a) {\n if (!object.hasProperty(a, key) || !equalityDeep(a[key], b[key])) {\n return false\n }\n }\n break\n case Array:\n if (a.length !== b.length) {\n return false\n }\n for (let i = 0; i < a.length; i++) {\n if (!equalityDeep(a[i], b[i])) {\n return false\n }\n }\n break\n default:\n return false\n }\n return true\n}\n\n/**\n * @template V\n * @template {V} OPTS\n *\n * @param {V} value\n * @param {Array} options\n */\n// @ts-ignore\nexport const isOneOf = (value, options) => options.includes(value)\n","/**\n * Utility module to work with key-value stores.\n *\n * @module map\n */\n\n/**\n * Creates a new Map instance.\n *\n * @function\n * @return {Map}\n *\n * @function\n */\nexport const create = () => new Map()\n\n/**\n * Copy a Map object into a fresh Map object.\n *\n * @function\n * @template X,Y\n * @param {Map} m\n * @return {Map}\n */\nexport const copy = m => {\n const r = create()\n m.forEach((v, k) => { r.set(k, v) })\n return r\n}\n\n/**\n * Get map property. Create T if property is undefined and set T on map.\n *\n * ```js\n * const listeners = map.setIfUndefined(events, 'eventName', set.create)\n * listeners.add(listener)\n * ```\n *\n * @function\n * @template T,K\n * @param {Map} map\n * @param {K} key\n * @param {function():T} createT\n * @return {T}\n */\nexport const setIfUndefined = (map, key, createT) => {\n let set = map.get(key)\n if (set === undefined) {\n map.set(key, set = createT())\n }\n return set\n}\n\n/**\n * Creates an Array and populates it with the content of all key-value pairs using the `f(value, key)` function.\n *\n * @function\n * @template K\n * @template V\n * @template R\n * @param {Map} m\n * @param {function(V,K):R} f\n * @return {Array}\n */\nexport const map = (m, f) => {\n const res = []\n for (const [key, value] of m) {\n res.push(f(value, key))\n }\n return res\n}\n\n/**\n * Tests whether any key-value pairs pass the test implemented by `f(value, key)`.\n *\n * @todo should rename to some - similarly to Array.some\n *\n * @function\n * @template K\n * @template V\n * @param {Map} m\n * @param {function(V,K):boolean} f\n * @return {boolean}\n */\nexport const any = (m, f) => {\n for (const [key, value] of m) {\n if (f(value, key)) {\n return true\n }\n }\n return false\n}\n\n/**\n * Tests whether all key-value pairs pass the test implemented by `f(value, key)`.\n *\n * @function\n * @template K\n * @template V\n * @param {Map} m\n * @param {function(V,K):boolean} f\n * @return {boolean}\n */\nexport const all = (m, f) => {\n for (const [key, value] of m) {\n if (!f(value, key)) {\n return false\n }\n }\n return true\n}\n","/**\n * Utility functions for working with EcmaScript objects.\n *\n * @module object\n */\n\n/**\n * @return {Object} obj\n */\nexport const create = () => Object.create(null)\n\n/**\n * Object.assign\n */\nexport const assign = Object.assign\n\n/**\n * @param {Object} obj\n */\nexport const keys = Object.keys\n\n/**\n * @param {Object} obj\n * @param {function(any,string):any} f\n */\nexport const forEach = (obj, f) => {\n for (const key in obj) {\n f(obj[key], key)\n }\n}\n\n/**\n * @template R\n * @param {Object} obj\n * @param {function(any,string):R} f\n * @return {Array}\n */\nexport const map = (obj, f) => {\n const results = []\n for (const key in obj) {\n results.push(f(obj[key], key))\n }\n return results\n}\n\n/**\n * @param {Object} obj\n * @return {number}\n */\nexport const length = obj => keys(obj).length\n\n/**\n * @param {Object} obj\n * @param {function(any,string):boolean} f\n * @return {boolean}\n */\nexport const some = (obj, f) => {\n for (const key in obj) {\n if (f(obj[key], key)) {\n return true\n }\n }\n return false\n}\n\n/**\n * @param {Object} obj\n * @param {function(any,string):boolean} f\n * @return {boolean}\n */\nexport const every = (obj, f) => {\n for (const key in obj) {\n if (!f(obj[key], key)) {\n return false\n }\n }\n return true\n}\n\n/**\n * Calls `Object.prototype.hasOwnProperty`.\n *\n * @param {any} obj\n * @param {string|symbol} key\n * @return {boolean}\n */\nexport const hasProperty = (obj, key) => Object.prototype.hasOwnProperty.call(obj, key)\n\n/**\n * @param {Object} a\n * @param {Object} b\n * @return {boolean}\n */\nexport const equalFlat = (a, b) => a === b || (length(a) === length(b) && every(a, (val, key) => (val !== undefined || hasProperty(b, key)) && b[key] === val))\n","/* global localStorage, addEventListener */\n\n/**\n * Isomorphic variable storage.\n *\n * Uses LocalStorage in the browser and falls back to in-memory storage.\n *\n * @module storage\n */\n\n/* istanbul ignore next */\nclass VarStoragePolyfill {\n constructor () {\n this.map = new Map()\n }\n\n /**\n * @param {string} key\n * @param {any} newValue\n */\n setItem (key, newValue) {\n this.map.set(key, newValue)\n }\n\n /**\n * @param {string} key\n */\n getItem (key) {\n return this.map.get(key)\n }\n}\n\n/* istanbul ignore next */\n/**\n * @type {any}\n */\nlet _localStorage = new VarStoragePolyfill()\nlet usePolyfill = true\n\ntry {\n // if the same-origin rule is violated, accessing localStorage might thrown an error\n /* istanbul ignore next */\n if (typeof localStorage !== 'undefined') {\n _localStorage = localStorage\n usePolyfill = false\n }\n} catch (e) { }\n\n/* istanbul ignore next */\n/**\n * This is basically localStorage in browser, or a polyfill in nodejs\n */\nexport const varStorage = _localStorage\n\n/* istanbul ignore next */\n/**\n * A polyfill for `addEventListener('storage', event => {..})` that does nothing if the polyfill is being used.\n *\n * @param {function({ key: string, newValue: string, oldValue: string }): void} eventHandler\n * @function\n */\nexport const onChange = eventHandler => usePolyfill || addEventListener('storage', /** @type {any} */ (eventHandler))\n","/**\n * Utility module to work with strings.\n *\n * @module string\n */\n\nexport const fromCharCode = String.fromCharCode\nexport const fromCodePoint = String.fromCodePoint\n\n/**\n * @param {string} s\n * @return {string}\n */\nconst toLowerCase = s => s.toLowerCase()\n\nconst trimLeftRegex = /^\\s*/g\n\n/**\n * @param {string} s\n * @return {string}\n */\nexport const trimLeft = s => s.replace(trimLeftRegex, '')\n\nconst fromCamelCaseRegex = /([A-Z])/g\n\n/**\n * @param {string} s\n * @param {string} separator\n * @return {string}\n */\nexport const fromCamelCase = (s, separator) => trimLeft(s.replace(fromCamelCaseRegex, match => `${separator}${toLowerCase(match)}`))\n\n/**\n * Compute the utf8ByteLength\n * @param {string} str\n * @return {number}\n */\nexport const utf8ByteLength = str => unescape(encodeURIComponent(str)).length\n\n/**\n * @param {string} str\n * @return {Uint8Array}\n */\nexport const _encodeUtf8Polyfill = str => {\n const encodedString = unescape(encodeURIComponent(str))\n const len = encodedString.length\n const buf = new Uint8Array(len)\n for (let i = 0; i < len; i++) {\n buf[i] = /** @type {number} */ (encodedString.codePointAt(i))\n }\n return buf\n}\n\n/* istanbul ignore next */\nexport const utf8TextEncoder = /** @type {TextEncoder} */ (typeof TextEncoder !== 'undefined' ? new TextEncoder() : null)\n\n/**\n * @param {string} str\n * @return {Uint8Array}\n */\nexport const _encodeUtf8Native = str => utf8TextEncoder.encode(str)\n\n/**\n * @param {string} str\n * @return {Uint8Array}\n */\n/* istanbul ignore next */\nexport const encodeUtf8 = utf8TextEncoder ? _encodeUtf8Native : _encodeUtf8Polyfill\n\n/**\n * @param {Uint8Array} buf\n * @return {string}\n */\nexport const _decodeUtf8Polyfill = buf => {\n let remainingLen = buf.length\n let encodedString = ''\n let bufPos = 0\n while (remainingLen > 0) {\n const nextLen = remainingLen < 10000 ? remainingLen : 10000\n const bytes = buf.subarray(bufPos, bufPos + nextLen)\n bufPos += nextLen\n // Starting with ES5.1 we can supply a generic array-like object as arguments\n encodedString += String.fromCodePoint.apply(null, /** @type {any} */ (bytes))\n remainingLen -= nextLen\n }\n return decodeURIComponent(escape(encodedString))\n}\n\n/* istanbul ignore next */\nexport let utf8TextDecoder = typeof TextDecoder === 'undefined' ? null : new TextDecoder('utf-8', { fatal: true, ignoreBOM: true })\n\n/* istanbul ignore next */\nif (utf8TextDecoder && utf8TextDecoder.decode(new Uint8Array()).length === 1) {\n // Safari doesn't handle BOM correctly.\n // This fixes a bug in Safari 13.0.5 where it produces a BOM the first time it is called.\n // utf8TextDecoder.decode(new Uint8Array()).length === 1 on the first call and\n // utf8TextDecoder.decode(new Uint8Array()).length === 1 on the second call\n // Another issue is that from then on no BOM chars are recognized anymore\n /* istanbul ignore next */\n utf8TextDecoder = null\n}\n\n/**\n * @param {Uint8Array} buf\n * @return {string}\n */\nexport const _decodeUtf8Native = buf => /** @type {TextDecoder} */ (utf8TextDecoder).decode(buf)\n\n/**\n * @param {Uint8Array} buf\n * @return {string}\n */\n/* istanbul ignore next */\nexport const decodeUtf8 = utf8TextDecoder ? _decodeUtf8Native : _decodeUtf8Polyfill\n\n/**\n * @param {string} str The initial string\n * @param {number} index Starting position\n * @param {number} remove Number of characters to remove\n * @param {string} insert New content to insert\n */\nexport const splice = (str, index, remove, insert = '') => str.slice(0, index) + insert + str.slice(index + remove)\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n"],"names":["last","arr","length","appendTo","dest","src","i","push","from","Array","equalFlat","a","b","f","item","index","every","isArray","isNode","process","release","test","name","isBrowser","window","params","navigator","platform","args","computeParams","undefined","map","pargs","argv","currParamName","parg","set","location","search","slice","split","forEach","kv","key","value","string","hasParam","has","getParam","defaultVal","get","getVariable","v","toUpperCase","storage","forceColor","FORCE_COLOR","supportsColor","stdout","isTTY","includes","callAll","fs","equalityFlat","constructor","equalityDeep","equalityStrict","ArrayBuffer","Uint8Array","byteLength","Set","size","Map","keys","Object","isOneOf","options","create","copy","m","r","k","setIfUndefined","createT","res","any","assign","obj","results","hasProperty","prototype","hasOwnProperty","call","val","_localStorage","this","setItem","newValue","getItem","usePolyfill","localStorage","e","varStorage","onChange","eventHandler","addEventListener","fromCharCode","String","trimLeftRegex","fromCodePoint","fromCamelCaseRegex","fromCamelCase","s","separator","replace","trimLeft","match","toLowerCase","utf8TextEncoder","TextEncoder","encodeUtf8","str","encode","encodedString","unescape","encodeURIComponent","len","buf","codePointAt","utf8TextDecoder","TextDecoder","fatal","ignoreBOM","decode","cachedSetTimeout","cachedClearTimeout","module","exports","defaultSetTimout","Error","defaultClearTimeout","runTimeout","fun","setTimeout","clearTimeout","currentQueue","queue","draining","queueIndex","cleanUpNextTick","concat","drainQueue","timeout","run","marker","runClearTimeout","Item","array","noop","nextTick","arguments","apply","title","browser","env","version","versions","on","addListener","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","binding","cwd","chdir","dir","umask"],"sourceRoot":""} \ No newline at end of file diff --git a/_static/build/6576.3ea568e.js b/_static/build/6576.3ea568e.js new file mode 100644 index 0000000..6477bfd --- /dev/null +++ b/_static/build/6576.3ea568e.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[6576],{92138:(n,e,r)=>{r.d(e,{Z:()=>i});var o=r(34663),a=r.n(o),c=r(7638),t=r.n(c)()(a());t.push([n.id,"/*\n Name: material\n Author: Mattia Astorino (http://github.com/equinusocio)\n Website: https://material-theme.site/\n*/\n\n.cm-s-material-ocean.CodeMirror {\n background-color: #0F111A;\n color: #8F93A2;\n}\n\n.cm-s-material-ocean .CodeMirror-gutters {\n background: #0F111A;\n color: #464B5D;\n border: none;\n}\n\n.cm-s-material-ocean .CodeMirror-guttermarker,\n.cm-s-material-ocean .CodeMirror-guttermarker-subtle,\n.cm-s-material-ocean .CodeMirror-linenumber {\n color: #464B5D;\n}\n\n.cm-s-material-ocean .CodeMirror-cursor {\n border-left: 1px solid #FFCC00;\n}\n\n.cm-s-material-ocean div.CodeMirror-selected {\n background: rgba(113, 124, 180, 0.2);\n}\n\n.cm-s-material-ocean.CodeMirror-focused div.CodeMirror-selected {\n background: rgba(113, 124, 180, 0.2);\n}\n\n.cm-s-material-ocean .CodeMirror-line::selection,\n.cm-s-material-ocean .CodeMirror-line>span::selection,\n.cm-s-material-ocean .CodeMirror-line>span>span::selection {\n background: rgba(128, 203, 196, 0.2);\n}\n\n.cm-s-material-ocean .CodeMirror-line::-moz-selection,\n.cm-s-material-ocean .CodeMirror-line>span::-moz-selection,\n.cm-s-material-ocean .CodeMirror-line>span>span::-moz-selection {\n background: rgba(128, 203, 196, 0.2);\n}\n\n.cm-s-material-ocean .CodeMirror-activeline-background {\n background: rgba(0, 0, 0, 0.5);\n}\n\n.cm-s-material-ocean .cm-keyword {\n color: #C792EA;\n}\n\n.cm-s-material-ocean .cm-operator {\n color: #89DDFF;\n}\n\n.cm-s-material-ocean .cm-variable-2 {\n color: #EEFFFF;\n}\n\n.cm-s-material-ocean .cm-variable-3,\n.cm-s-material-ocean .cm-type {\n color: #f07178;\n}\n\n.cm-s-material-ocean .cm-builtin {\n color: #FFCB6B;\n}\n\n.cm-s-material-ocean .cm-atom {\n color: #F78C6C;\n}\n\n.cm-s-material-ocean .cm-number {\n color: #FF5370;\n}\n\n.cm-s-material-ocean .cm-def {\n color: #82AAFF;\n}\n\n.cm-s-material-ocean .cm-string {\n color: #C3E88D;\n}\n\n.cm-s-material-ocean .cm-string-2 {\n color: #f07178;\n}\n\n.cm-s-material-ocean .cm-comment {\n color: #464B5D;\n}\n\n.cm-s-material-ocean .cm-variable {\n color: #f07178;\n}\n\n.cm-s-material-ocean .cm-tag {\n color: #FF5370;\n}\n\n.cm-s-material-ocean .cm-meta {\n color: #FFCB6B;\n}\n\n.cm-s-material-ocean .cm-attribute {\n color: #C792EA;\n}\n\n.cm-s-material-ocean .cm-property {\n color: #C792EA;\n}\n\n.cm-s-material-ocean .cm-qualifier {\n color: #DECB6B;\n}\n\n.cm-s-material-ocean .cm-variable-3,\n.cm-s-material-ocean .cm-type {\n color: #DECB6B;\n}\n\n\n.cm-s-material-ocean .cm-error {\n color: rgba(255, 255, 255, 1.0);\n background-color: #FF5370;\n}\n\n.cm-s-material-ocean .CodeMirror-matchingbracket {\n text-decoration: underline;\n color: white !important;\n}","",{version:3,sources:["webpack://./../node_modules/codemirror/theme/material-ocean.css"],names:[],mappings:"AAAA;;;;CAIC;;AAED;EACE,yBAAyB;EACzB,cAAc;AAChB;;AAEA;EACE,mBAAmB;EACnB,cAAc;EACd,YAAY;AACd;;AAEA;;;EAGE,cAAc;AAChB;;AAEA;EACE,8BAA8B;AAChC;;AAEA;EACE,oCAAoC;AACtC;;AAEA;EACE,oCAAoC;AACtC;;AAEA;;;EAGE,oCAAoC;AACtC;;AAEA;;;EAGE,oCAAoC;AACtC;;AAEA;EACE,8BAA8B;AAChC;;AAEA;EACE,cAAc;AAChB;;AAEA;EACE,cAAc;AAChB;;AAEA;EACE,cAAc;AAChB;;AAEA;;EAEE,cAAc;AAChB;;AAEA;EACE,cAAc;AAChB;;AAEA;EACE,cAAc;AAChB;;AAEA;EACE,cAAc;AAChB;;AAEA;EACE,cAAc;AAChB;;AAEA;EACE,cAAc;AAChB;;AAEA;EACE,cAAc;AAChB;;AAEA;EACE,cAAc;AAChB;;AAEA;EACE,cAAc;AAChB;;AAEA;EACE,cAAc;AAChB;;AAEA;EACE,cAAc;AAChB;;AAEA;EACE,cAAc;AAChB;;AAEA;EACE,cAAc;AAChB;;AAEA;EACE,cAAc;AAChB;;AAEA;;EAEE,cAAc;AAChB;;;AAGA;EACE,+BAA+B;EAC/B,yBAAyB;AAC3B;;AAEA;EACE,0BAA0B;EAC1B,uBAAuB;AACzB",sourcesContent:["/*\n Name: material\n Author: Mattia Astorino (http://github.com/equinusocio)\n Website: https://material-theme.site/\n*/\n\n.cm-s-material-ocean.CodeMirror {\n background-color: #0F111A;\n color: #8F93A2;\n}\n\n.cm-s-material-ocean .CodeMirror-gutters {\n background: #0F111A;\n color: #464B5D;\n border: none;\n}\n\n.cm-s-material-ocean .CodeMirror-guttermarker,\n.cm-s-material-ocean .CodeMirror-guttermarker-subtle,\n.cm-s-material-ocean .CodeMirror-linenumber {\n color: #464B5D;\n}\n\n.cm-s-material-ocean .CodeMirror-cursor {\n border-left: 1px solid #FFCC00;\n}\n\n.cm-s-material-ocean div.CodeMirror-selected {\n background: rgba(113, 124, 180, 0.2);\n}\n\n.cm-s-material-ocean.CodeMirror-focused div.CodeMirror-selected {\n background: rgba(113, 124, 180, 0.2);\n}\n\n.cm-s-material-ocean .CodeMirror-line::selection,\n.cm-s-material-ocean .CodeMirror-line>span::selection,\n.cm-s-material-ocean .CodeMirror-line>span>span::selection {\n background: rgba(128, 203, 196, 0.2);\n}\n\n.cm-s-material-ocean .CodeMirror-line::-moz-selection,\n.cm-s-material-ocean .CodeMirror-line>span::-moz-selection,\n.cm-s-material-ocean .CodeMirror-line>span>span::-moz-selection {\n background: rgba(128, 203, 196, 0.2);\n}\n\n.cm-s-material-ocean .CodeMirror-activeline-background {\n background: rgba(0, 0, 0, 0.5);\n}\n\n.cm-s-material-ocean .cm-keyword {\n color: #C792EA;\n}\n\n.cm-s-material-ocean .cm-operator {\n color: #89DDFF;\n}\n\n.cm-s-material-ocean .cm-variable-2 {\n color: #EEFFFF;\n}\n\n.cm-s-material-ocean .cm-variable-3,\n.cm-s-material-ocean .cm-type {\n color: #f07178;\n}\n\n.cm-s-material-ocean .cm-builtin {\n color: #FFCB6B;\n}\n\n.cm-s-material-ocean .cm-atom {\n color: #F78C6C;\n}\n\n.cm-s-material-ocean .cm-number {\n color: #FF5370;\n}\n\n.cm-s-material-ocean .cm-def {\n color: #82AAFF;\n}\n\n.cm-s-material-ocean .cm-string {\n color: #C3E88D;\n}\n\n.cm-s-material-ocean .cm-string-2 {\n color: #f07178;\n}\n\n.cm-s-material-ocean .cm-comment {\n color: #464B5D;\n}\n\n.cm-s-material-ocean .cm-variable {\n color: #f07178;\n}\n\n.cm-s-material-ocean .cm-tag {\n color: #FF5370;\n}\n\n.cm-s-material-ocean .cm-meta {\n color: #FFCB6B;\n}\n\n.cm-s-material-ocean .cm-attribute {\n color: #C792EA;\n}\n\n.cm-s-material-ocean .cm-property {\n color: #C792EA;\n}\n\n.cm-s-material-ocean .cm-qualifier {\n color: #DECB6B;\n}\n\n.cm-s-material-ocean .cm-variable-3,\n.cm-s-material-ocean .cm-type {\n color: #DECB6B;\n}\n\n\n.cm-s-material-ocean .cm-error {\n color: rgba(255, 255, 255, 1.0);\n background-color: #FF5370;\n}\n\n.cm-s-material-ocean .CodeMirror-matchingbracket {\n text-decoration: underline;\n color: white !important;\n}"],sourceRoot:""}]);const i=t},7638:n=>{n.exports=function(n){var e=[];return e.toString=function(){return this.map((function(e){var r="",o=void 0!==e[5];return e[4]&&(r+="@supports (".concat(e[4],") {")),e[2]&&(r+="@media ".concat(e[2]," {")),o&&(r+="@layer".concat(e[5].length>0?" ".concat(e[5]):""," {")),r+=n(e),o&&(r+="}"),e[2]&&(r+="}"),e[4]&&(r+="}"),r})).join("")},e.i=function(n,r,o,a,c){"string"==typeof n&&(n=[[null,n,void 0]]);var t={};if(o)for(var i=0;i0?" ".concat(l[5]):""," {").concat(l[1],"}")),l[5]=c),r&&(l[2]?(l[1]="@media ".concat(l[2]," {").concat(l[1],"}"),l[2]=r):l[2]=r),a&&(l[4]?(l[1]="@supports (".concat(l[4],") {").concat(l[1],"}"),l[4]=a):l[4]="".concat(a)),e.push(l))}},e}},34663:n=>{n.exports=function(n){var e=n[1],r=n[3];if(!r)return e;if("function"==typeof btoa){var o=btoa(unescape(encodeURIComponent(JSON.stringify(r)))),a="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(o),c="/*# ".concat(a," */"),t=r.sources.map((function(n){return"/*# sourceURL=".concat(r.sourceRoot||"").concat(n," */")}));return[e].concat(t).concat([c]).join("\n")}return[e].join("\n")}},26576:(n,e,r)=>{r.r(e),r.d(e,{default:()=>f});var o=r(1892),a=r.n(o),c=r(95760),t=r.n(c),i=r(38311),A=r.n(i),m=r(58192),l=r.n(m),s=r(38060),u=r.n(s),C=r(54865),d=r.n(C),E=r(92138),p={};p.styleTagTransform=d(),p.setAttributes=l(),p.insert=A().bind(null,"head"),p.domAPI=t(),p.insertStyleElement=u(),a()(E.Z,p);const f=E.Z&&E.Z.locals?E.Z.locals:void 0},1892:n=>{var e=[];function r(n){for(var r=-1,o=0;o{var e={};n.exports=function(n,r){var o=function(n){if(void 0===e[n]){var r=document.querySelector(n);if(window.HTMLIFrameElement&&r instanceof window.HTMLIFrameElement)try{r=r.contentDocument.head}catch(n){r=null}e[n]=r}return e[n]}(n);if(!o)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");o.appendChild(r)}},38060:n=>{n.exports=function(n){var e=document.createElement("style");return n.setAttributes(e,n.attributes),n.insert(e,n.options),e}},58192:(n,e,r)=>{n.exports=function(n){var e=r.nc;e&&n.setAttribute("nonce",e)}},95760:n=>{n.exports=function(n){var e=n.insertStyleElement(n);return{update:function(r){!function(n,e,r){var o="";r.supports&&(o+="@supports (".concat(r.supports,") {")),r.media&&(o+="@media ".concat(r.media," {"));var a=void 0!==r.layer;a&&(o+="@layer".concat(r.layer.length>0?" ".concat(r.layer):""," {")),o+=r.css,a&&(o+="}"),r.media&&(o+="}"),r.supports&&(o+="}");var c=r.sourceMap;c&&"undefined"!=typeof btoa&&(o+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(c))))," */")),e.styleTagTransform(o,n,e.options)}(e,n,r)},remove:function(){!function(n){if(null===n.parentNode)return!1;n.parentNode.removeChild(n)}(e)}}}},54865:n=>{n.exports=function(n,e){if(e.styleSheet)e.styleSheet.cssText=n;else{for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(n))}}}}]); +//# sourceMappingURL=6576.3ea568e.js.map \ No newline at end of file diff --git a/_static/build/6576.3ea568e.js.map b/_static/build/6576.3ea568e.js.map new file mode 100644 index 0000000..4aa640f --- /dev/null +++ b/_static/build/6576.3ea568e.js.map @@ -0,0 +1 @@ +{"version":3,"file":"6576.3ea568e.js","mappings":"sLAGIA,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACC,EAAOC,GAAI,ypFAA0pF,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,mEAAmE,MAAQ,GAAG,SAAW,muBAAmuB,eAAiB,CAAC,0pFAA0pF,WAAa,MAEntM,S,WCDAD,EAAOE,QAAU,SAAUC,GACzB,IAAIC,EAAO,GA4EX,OAzEAA,EAAKC,SAAW,WACd,OAAOC,KAAKC,KAAI,SAAUC,GACxB,IAAIC,EAAU,GACVC,OAA+B,IAAZF,EAAK,GAoB5B,OAnBIA,EAAK,KACPC,GAAW,cAAcE,OAAOH,EAAK,GAAI,QAEvCA,EAAK,KACPC,GAAW,UAAUE,OAAOH,EAAK,GAAI,OAEnCE,IACFD,GAAW,SAASE,OAAOH,EAAK,GAAGI,OAAS,EAAI,IAAID,OAAOH,EAAK,IAAM,GAAI,OAE5EC,GAAWN,EAAuBK,GAC9BE,IACFD,GAAW,KAETD,EAAK,KACPC,GAAW,KAETD,EAAK,KACPC,GAAW,KAENA,CACT,IAAGI,KAAK,GACV,EAGAT,EAAKU,EAAI,SAAWC,EAASC,EAAOC,EAAQC,EAAUC,GAC7B,iBAAZJ,IACTA,EAAU,CAAC,CAAC,KAAMA,OAASK,KAE7B,IAAIC,EAAyB,CAAC,EAC9B,GAAIJ,EACF,IAAK,IAAIK,EAAI,EAAGA,EAAIhB,KAAKM,OAAQU,IAAK,CACpC,IAAIrB,EAAKK,KAAKgB,GAAG,GACP,MAANrB,IACFoB,EAAuBpB,IAAM,EAEjC,CAEF,IAAK,IAAIsB,EAAK,EAAGA,EAAKR,EAAQH,OAAQW,IAAM,CAC1C,IAAIf,EAAO,GAAGG,OAAOI,EAAQQ,IACzBN,GAAUI,EAAuBb,EAAK,WAGrB,IAAVW,SACc,IAAZX,EAAK,KAGdA,EAAK,GAAK,SAASG,OAAOH,EAAK,GAAGI,OAAS,EAAI,IAAID,OAAOH,EAAK,IAAM,GAAI,MAAMG,OAAOH,EAAK,GAAI,MAF/FA,EAAK,GAAKW,GAMVH,IACGR,EAAK,IAGRA,EAAK,GAAK,UAAUG,OAAOH,EAAK,GAAI,MAAMG,OAAOH,EAAK,GAAI,KAC1DA,EAAK,GAAKQ,GAHVR,EAAK,GAAKQ,GAMVE,IACGV,EAAK,IAGRA,EAAK,GAAK,cAAcG,OAAOH,EAAK,GAAI,OAAOG,OAAOH,EAAK,GAAI,KAC/DA,EAAK,GAAKU,GAHVV,EAAK,GAAK,GAAGG,OAAOO,IAMxBd,EAAKL,KAAKS,GACZ,CACF,EACOJ,CACT,C,YClFAJ,EAAOE,QAAU,SAAUM,GACzB,IAAIC,EAAUD,EAAK,GACfgB,EAAahB,EAAK,GACtB,IAAKgB,EACH,OAAOf,EAET,GAAoB,mBAATgB,KAAqB,CAC9B,IAAIC,EAASD,KAAKE,SAASC,mBAAmBC,KAAKC,UAAUN,MACzDO,EAAO,+DAA+DpB,OAAOe,GAC7EM,EAAgB,OAAOrB,OAAOoB,EAAM,OACpCE,EAAaT,EAAWU,QAAQ3B,KAAI,SAAU4B,GAChD,MAAO,iBAAiBxB,OAAOa,EAAWY,YAAc,IAAIzB,OAAOwB,EAAQ,MAC7E,IACA,MAAO,CAAC1B,GAASE,OAAOsB,GAAYtB,OAAO,CAACqB,IAAgBnB,KAAK,KACnE,CACA,MAAO,CAACJ,GAASI,KAAK,KACxB,C,sLCPIwB,EAAU,CAAC,EAEfA,EAAQC,kBAAoB,IAC5BD,EAAQE,cAAgB,IAElBF,EAAQG,OAAS,SAAc,KAAM,QAE3CH,EAAQI,OAAS,IACjBJ,EAAQK,mBAAqB,IAEhB,IAAI,IAASL,GAKnB,QAAe,KAAW,WAAiB,gBAAiBjB,C,WCxBnE,IAAIuB,EAAc,GAElB,SAASC,EAAqBC,GAG5B,IAFA,IAAIC,GAAU,EAELhC,EAAI,EAAGA,EAAI6B,EAAY/B,OAAQE,IACtC,GAAI6B,EAAY7B,GAAG+B,aAAeA,EAAY,CAC5CC,EAAShC,EACT,KACF,CAGF,OAAOgC,CACT,CAEA,SAASC,EAAa3C,EAAMiC,GAI1B,IAHA,IAAIW,EAAa,CAAC,EACdC,EAAc,GAETnC,EAAI,EAAGA,EAAIV,EAAKQ,OAAQE,IAAK,CACpC,IAAIN,EAAOJ,EAAKU,GACZb,EAAKoC,EAAQa,KAAO1C,EAAK,GAAK6B,EAAQa,KAAO1C,EAAK,GAClD2C,EAAQH,EAAW/C,IAAO,EAC1B4C,EAAa,GAAGlC,OAAOV,EAAI,KAAKU,OAAOwC,GAC3CH,EAAW/C,GAAMkD,EAAQ,EACzB,IAAIC,EAAoBR,EAAqBC,GACzCQ,EAAM,CACRC,IAAK9C,EAAK,GACVQ,MAAOR,EAAK,GACZ+C,UAAW/C,EAAK,GAChBU,SAAUV,EAAK,GACfW,MAAOX,EAAK,IAGd,IAA2B,IAAvB4C,EACFT,EAAYS,GAAmBI,aAC/Bb,EAAYS,GAAmBK,QAAQJ,OAClC,CACL,IAAII,EAAUC,EAAgBL,EAAKhB,GACnCA,EAAQsB,QAAU7C,EAClB6B,EAAYiB,OAAO9C,EAAG,EAAG,CACvB+B,WAAYA,EACZY,QAASA,EACTD,WAAY,GAEhB,CAEAP,EAAYlD,KAAK8C,EACnB,CAEA,OAAOI,CACT,CAEA,SAASS,EAAgBL,EAAKhB,GAC5B,IAAIwB,EAAMxB,EAAQI,OAAOJ,GAezB,OAdAwB,EAAIC,OAAOT,GAEG,SAAiBU,GAC7B,GAAIA,EAAQ,CACV,GAAIA,EAAOT,MAAQD,EAAIC,KAAOS,EAAO/C,QAAUqC,EAAIrC,OAAS+C,EAAOR,YAAcF,EAAIE,WAAaQ,EAAO7C,WAAamC,EAAInC,UAAY6C,EAAO5C,QAAUkC,EAAIlC,MACzJ,OAGF0C,EAAIC,OAAOT,EAAMU,EACnB,MACEF,EAAIG,QAER,CAGF,CAEAhE,EAAOE,QAAU,SAAUE,EAAMiC,GAG/B,IAAI4B,EAAkBlB,EADtB3C,EAAOA,GAAQ,GADfiC,EAAUA,GAAW,CAAC,GAGtB,OAAO,SAAgB6B,GACrBA,EAAUA,GAAW,GAErB,IAAK,IAAIpD,EAAI,EAAGA,EAAImD,EAAgBrD,OAAQE,IAAK,CAC/C,IACIqD,EAAQvB,EADKqB,EAAgBnD,IAEjC6B,EAAYwB,GAAOX,YACrB,CAIA,IAFA,IAAIY,EAAqBrB,EAAamB,EAAS7B,GAEtCgC,EAAK,EAAGA,EAAKJ,EAAgBrD,OAAQyD,IAAM,CAClD,IAEIC,EAAS1B,EAFKqB,EAAgBI,IAIK,IAAnC1B,EAAY2B,GAAQd,aACtBb,EAAY2B,GAAQb,UAEpBd,EAAYiB,OAAOU,EAAQ,GAE/B,CAEAL,EAAkBG,CACpB,CACF,C,YCrGA,IAAIG,EAAO,CAAC,EAoCZvE,EAAOE,QAVP,SAA0BsC,EAAQgC,GAChC,IAAIC,EAxBN,SAAmBA,GACjB,QAA4B,IAAjBF,EAAKE,GAAyB,CACvC,IAAIC,EAAcC,SAASC,cAAcH,GAEzC,GAAII,OAAOC,mBAAqBJ,aAAuBG,OAAOC,kBAC5D,IAGEJ,EAAcA,EAAYK,gBAAgBC,IAI5C,CAHE,MAAOC,GAEPP,EAAc,IAChB,CAGFH,EAAKE,GAAUC,CACjB,CAEA,OAAOH,EAAKE,EACd,CAKeS,CAAU1C,GAEvB,IAAKiC,EACH,MAAM,IAAIU,MAAM,2GAGlBV,EAAOW,YAAYZ,EACrB,C,YC1BAxE,EAAOE,QAPP,SAA4BmC,GAC1B,IAAIgD,EAAUV,SAASW,cAAc,SAGrC,OAFAjD,EAAQE,cAAc8C,EAAShD,EAAQkD,YACvClD,EAAQG,OAAO6C,EAAShD,EAAQA,SACzBgD,CACT,C,kBCGArF,EAAOE,QARP,SAAwCsF,GACtC,IAAIC,EAAmD,KAEnDA,GACFD,EAAaE,aAAa,QAASD,EAEvC,C,YC4DAzF,EAAOE,QAZP,SAAgBmC,GACd,IAAImD,EAAenD,EAAQK,mBAAmBL,GAC9C,MAAO,CACLyB,OAAQ,SAAgBT,IAzD5B,SAAemC,EAAcnD,EAASgB,GACpC,IAAIC,EAAM,GAEND,EAAInC,WACNoC,GAAO,cAAc3C,OAAO0C,EAAInC,SAAU,QAGxCmC,EAAIrC,QACNsC,GAAO,UAAU3C,OAAO0C,EAAIrC,MAAO,OAGrC,IAAIN,OAAiC,IAAd2C,EAAIlC,MAEvBT,IACF4C,GAAO,SAAS3C,OAAO0C,EAAIlC,MAAMP,OAAS,EAAI,IAAID,OAAO0C,EAAIlC,OAAS,GAAI,OAG5EmC,GAAOD,EAAIC,IAEP5C,IACF4C,GAAO,KAGLD,EAAIrC,QACNsC,GAAO,KAGLD,EAAInC,WACNoC,GAAO,KAGT,IAAIC,EAAYF,EAAIE,UAEhBA,GAA6B,oBAAT9B,OACtB6B,GAAO,uDAAuD3C,OAAOc,KAAKE,SAASC,mBAAmBC,KAAKC,UAAUyB,MAAe,QAMtIlB,EAAQC,kBAAkBgB,EAAKkC,EAAcnD,EAAQA,QACvD,CAiBMsD,CAAMH,EAAcnD,EAASgB,EAC/B,EACAW,OAAQ,YAjBZ,SAA4BwB,GAE1B,GAAgC,OAA5BA,EAAaI,WACf,OAAO,EAGTJ,EAAaI,WAAWC,YAAYL,EACtC,CAWMM,CAAmBN,EACrB,EAEJ,C,YCpDAxF,EAAOE,QAZP,SAA2BoD,EAAKkC,GAC9B,GAAIA,EAAaO,WACfP,EAAaO,WAAWC,QAAU1C,MAC7B,CACL,KAAOkC,EAAaS,YAClBT,EAAaK,YAAYL,EAAaS,YAGxCT,EAAaJ,YAAYT,SAASuB,eAAe5C,GACnD,CACF,C","sources":["webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/theme/material-ocean.css","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/css-loader/dist/runtime/api.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/css-loader/dist/runtime/sourceMaps.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/theme/material-ocean.css?99f6","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/insertBySelector.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/insertStyleElement.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/styleDomAPI.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/styleTagTransform.js"],"sourcesContent":["// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"/*\\n Name: material\\n Author: Mattia Astorino (http://github.com/equinusocio)\\n Website: https://material-theme.site/\\n*/\\n\\n.cm-s-material-ocean.CodeMirror {\\n background-color: #0F111A;\\n color: #8F93A2;\\n}\\n\\n.cm-s-material-ocean .CodeMirror-gutters {\\n background: #0F111A;\\n color: #464B5D;\\n border: none;\\n}\\n\\n.cm-s-material-ocean .CodeMirror-guttermarker,\\n.cm-s-material-ocean .CodeMirror-guttermarker-subtle,\\n.cm-s-material-ocean .CodeMirror-linenumber {\\n color: #464B5D;\\n}\\n\\n.cm-s-material-ocean .CodeMirror-cursor {\\n border-left: 1px solid #FFCC00;\\n}\\n\\n.cm-s-material-ocean div.CodeMirror-selected {\\n background: rgba(113, 124, 180, 0.2);\\n}\\n\\n.cm-s-material-ocean.CodeMirror-focused div.CodeMirror-selected {\\n background: rgba(113, 124, 180, 0.2);\\n}\\n\\n.cm-s-material-ocean .CodeMirror-line::selection,\\n.cm-s-material-ocean .CodeMirror-line>span::selection,\\n.cm-s-material-ocean .CodeMirror-line>span>span::selection {\\n background: rgba(128, 203, 196, 0.2);\\n}\\n\\n.cm-s-material-ocean .CodeMirror-line::-moz-selection,\\n.cm-s-material-ocean .CodeMirror-line>span::-moz-selection,\\n.cm-s-material-ocean .CodeMirror-line>span>span::-moz-selection {\\n background: rgba(128, 203, 196, 0.2);\\n}\\n\\n.cm-s-material-ocean .CodeMirror-activeline-background {\\n background: rgba(0, 0, 0, 0.5);\\n}\\n\\n.cm-s-material-ocean .cm-keyword {\\n color: #C792EA;\\n}\\n\\n.cm-s-material-ocean .cm-operator {\\n color: #89DDFF;\\n}\\n\\n.cm-s-material-ocean .cm-variable-2 {\\n color: #EEFFFF;\\n}\\n\\n.cm-s-material-ocean .cm-variable-3,\\n.cm-s-material-ocean .cm-type {\\n color: #f07178;\\n}\\n\\n.cm-s-material-ocean .cm-builtin {\\n color: #FFCB6B;\\n}\\n\\n.cm-s-material-ocean .cm-atom {\\n color: #F78C6C;\\n}\\n\\n.cm-s-material-ocean .cm-number {\\n color: #FF5370;\\n}\\n\\n.cm-s-material-ocean .cm-def {\\n color: #82AAFF;\\n}\\n\\n.cm-s-material-ocean .cm-string {\\n color: #C3E88D;\\n}\\n\\n.cm-s-material-ocean .cm-string-2 {\\n color: #f07178;\\n}\\n\\n.cm-s-material-ocean .cm-comment {\\n color: #464B5D;\\n}\\n\\n.cm-s-material-ocean .cm-variable {\\n color: #f07178;\\n}\\n\\n.cm-s-material-ocean .cm-tag {\\n color: #FF5370;\\n}\\n\\n.cm-s-material-ocean .cm-meta {\\n color: #FFCB6B;\\n}\\n\\n.cm-s-material-ocean .cm-attribute {\\n color: #C792EA;\\n}\\n\\n.cm-s-material-ocean .cm-property {\\n color: #C792EA;\\n}\\n\\n.cm-s-material-ocean .cm-qualifier {\\n color: #DECB6B;\\n}\\n\\n.cm-s-material-ocean .cm-variable-3,\\n.cm-s-material-ocean .cm-type {\\n color: #DECB6B;\\n}\\n\\n\\n.cm-s-material-ocean .cm-error {\\n color: rgba(255, 255, 255, 1.0);\\n background-color: #FF5370;\\n}\\n\\n.cm-s-material-ocean .CodeMirror-matchingbracket {\\n text-decoration: underline;\\n color: white !important;\\n}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../node_modules/codemirror/theme/material-ocean.css\"],\"names\":[],\"mappings\":\"AAAA;;;;CAIC;;AAED;EACE,yBAAyB;EACzB,cAAc;AAChB;;AAEA;EACE,mBAAmB;EACnB,cAAc;EACd,YAAY;AACd;;AAEA;;;EAGE,cAAc;AAChB;;AAEA;EACE,8BAA8B;AAChC;;AAEA;EACE,oCAAoC;AACtC;;AAEA;EACE,oCAAoC;AACtC;;AAEA;;;EAGE,oCAAoC;AACtC;;AAEA;;;EAGE,oCAAoC;AACtC;;AAEA;EACE,8BAA8B;AAChC;;AAEA;EACE,cAAc;AAChB;;AAEA;EACE,cAAc;AAChB;;AAEA;EACE,cAAc;AAChB;;AAEA;;EAEE,cAAc;AAChB;;AAEA;EACE,cAAc;AAChB;;AAEA;EACE,cAAc;AAChB;;AAEA;EACE,cAAc;AAChB;;AAEA;EACE,cAAc;AAChB;;AAEA;EACE,cAAc;AAChB;;AAEA;EACE,cAAc;AAChB;;AAEA;EACE,cAAc;AAChB;;AAEA;EACE,cAAc;AAChB;;AAEA;EACE,cAAc;AAChB;;AAEA;EACE,cAAc;AAChB;;AAEA;EACE,cAAc;AAChB;;AAEA;EACE,cAAc;AAChB;;AAEA;EACE,cAAc;AAChB;;AAEA;;EAEE,cAAc;AAChB;;;AAGA;EACE,+BAA+B;EAC/B,yBAAyB;AAC3B;;AAEA;EACE,0BAA0B;EAC1B,uBAAuB;AACzB\",\"sourcesContent\":[\"/*\\n Name: material\\n Author: Mattia Astorino (http://github.com/equinusocio)\\n Website: https://material-theme.site/\\n*/\\n\\n.cm-s-material-ocean.CodeMirror {\\n background-color: #0F111A;\\n color: #8F93A2;\\n}\\n\\n.cm-s-material-ocean .CodeMirror-gutters {\\n background: #0F111A;\\n color: #464B5D;\\n border: none;\\n}\\n\\n.cm-s-material-ocean .CodeMirror-guttermarker,\\n.cm-s-material-ocean .CodeMirror-guttermarker-subtle,\\n.cm-s-material-ocean .CodeMirror-linenumber {\\n color: #464B5D;\\n}\\n\\n.cm-s-material-ocean .CodeMirror-cursor {\\n border-left: 1px solid #FFCC00;\\n}\\n\\n.cm-s-material-ocean div.CodeMirror-selected {\\n background: rgba(113, 124, 180, 0.2);\\n}\\n\\n.cm-s-material-ocean.CodeMirror-focused div.CodeMirror-selected {\\n background: rgba(113, 124, 180, 0.2);\\n}\\n\\n.cm-s-material-ocean .CodeMirror-line::selection,\\n.cm-s-material-ocean .CodeMirror-line>span::selection,\\n.cm-s-material-ocean .CodeMirror-line>span>span::selection {\\n background: rgba(128, 203, 196, 0.2);\\n}\\n\\n.cm-s-material-ocean .CodeMirror-line::-moz-selection,\\n.cm-s-material-ocean .CodeMirror-line>span::-moz-selection,\\n.cm-s-material-ocean .CodeMirror-line>span>span::-moz-selection {\\n background: rgba(128, 203, 196, 0.2);\\n}\\n\\n.cm-s-material-ocean .CodeMirror-activeline-background {\\n background: rgba(0, 0, 0, 0.5);\\n}\\n\\n.cm-s-material-ocean .cm-keyword {\\n color: #C792EA;\\n}\\n\\n.cm-s-material-ocean .cm-operator {\\n color: #89DDFF;\\n}\\n\\n.cm-s-material-ocean .cm-variable-2 {\\n color: #EEFFFF;\\n}\\n\\n.cm-s-material-ocean .cm-variable-3,\\n.cm-s-material-ocean .cm-type {\\n color: #f07178;\\n}\\n\\n.cm-s-material-ocean .cm-builtin {\\n color: #FFCB6B;\\n}\\n\\n.cm-s-material-ocean .cm-atom {\\n color: #F78C6C;\\n}\\n\\n.cm-s-material-ocean .cm-number {\\n color: #FF5370;\\n}\\n\\n.cm-s-material-ocean .cm-def {\\n color: #82AAFF;\\n}\\n\\n.cm-s-material-ocean .cm-string {\\n color: #C3E88D;\\n}\\n\\n.cm-s-material-ocean .cm-string-2 {\\n color: #f07178;\\n}\\n\\n.cm-s-material-ocean .cm-comment {\\n color: #464B5D;\\n}\\n\\n.cm-s-material-ocean .cm-variable {\\n color: #f07178;\\n}\\n\\n.cm-s-material-ocean .cm-tag {\\n color: #FF5370;\\n}\\n\\n.cm-s-material-ocean .cm-meta {\\n color: #FFCB6B;\\n}\\n\\n.cm-s-material-ocean .cm-attribute {\\n color: #C792EA;\\n}\\n\\n.cm-s-material-ocean .cm-property {\\n color: #C792EA;\\n}\\n\\n.cm-s-material-ocean .cm-qualifier {\\n color: #DECB6B;\\n}\\n\\n.cm-s-material-ocean .cm-variable-3,\\n.cm-s-material-ocean .cm-type {\\n color: #DECB6B;\\n}\\n\\n\\n.cm-s-material-ocean .cm-error {\\n color: rgba(255, 255, 255, 1.0);\\n background-color: #FF5370;\\n}\\n\\n.cm-s-material-ocean .CodeMirror-matchingbracket {\\n text-decoration: underline;\\n color: white !important;\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\nmodule.exports = function (cssWithMappingToString) {\n var list = [];\n\n // return the list of modules as css string\n list.toString = function toString() {\n return this.map(function (item) {\n var content = \"\";\n var needLayer = typeof item[5] !== \"undefined\";\n if (item[4]) {\n content += \"@supports (\".concat(item[4], \") {\");\n }\n if (item[2]) {\n content += \"@media \".concat(item[2], \" {\");\n }\n if (needLayer) {\n content += \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\");\n }\n content += cssWithMappingToString(item);\n if (needLayer) {\n content += \"}\";\n }\n if (item[2]) {\n content += \"}\";\n }\n if (item[4]) {\n content += \"}\";\n }\n return content;\n }).join(\"\");\n };\n\n // import a list of modules into the list\n list.i = function i(modules, media, dedupe, supports, layer) {\n if (typeof modules === \"string\") {\n modules = [[null, modules, undefined]];\n }\n var alreadyImportedModules = {};\n if (dedupe) {\n for (var k = 0; k < this.length; k++) {\n var id = this[k][0];\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n for (var _k = 0; _k < modules.length; _k++) {\n var item = [].concat(modules[_k]);\n if (dedupe && alreadyImportedModules[item[0]]) {\n continue;\n }\n if (typeof layer !== \"undefined\") {\n if (typeof item[5] === \"undefined\") {\n item[5] = layer;\n } else {\n item[1] = \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\").concat(item[1], \"}\");\n item[5] = layer;\n }\n }\n if (media) {\n if (!item[2]) {\n item[2] = media;\n } else {\n item[1] = \"@media \".concat(item[2], \" {\").concat(item[1], \"}\");\n item[2] = media;\n }\n }\n if (supports) {\n if (!item[4]) {\n item[4] = \"\".concat(supports);\n } else {\n item[1] = \"@supports (\".concat(item[4], \") {\").concat(item[1], \"}\");\n item[4] = supports;\n }\n }\n list.push(item);\n }\n };\n return list;\n};","\"use strict\";\n\nmodule.exports = function (item) {\n var content = item[1];\n var cssMapping = item[3];\n if (!cssMapping) {\n return content;\n }\n if (typeof btoa === \"function\") {\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(cssMapping))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n var sourceMapping = \"/*# \".concat(data, \" */\");\n var sourceURLs = cssMapping.sources.map(function (source) {\n return \"/*# sourceURL=\".concat(cssMapping.sourceRoot || \"\").concat(source, \" */\");\n });\n return [content].concat(sourceURLs).concat([sourceMapping]).join(\"\\n\");\n }\n return [content].join(\"\\n\");\n};","\n import API from \"!../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../css-loader/dist/cjs.js!./material-ocean.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../css-loader/dist/cjs.js!./material-ocean.css\";\n export default content && content.locals ? content.locals : undefined;\n","\"use strict\";\n\nvar stylesInDOM = [];\n\nfunction getIndexByIdentifier(identifier) {\n var result = -1;\n\n for (var i = 0; i < stylesInDOM.length; i++) {\n if (stylesInDOM[i].identifier === identifier) {\n result = i;\n break;\n }\n }\n\n return result;\n}\n\nfunction modulesToDom(list, options) {\n var idCountMap = {};\n var identifiers = [];\n\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var count = idCountMap[id] || 0;\n var identifier = \"\".concat(id, \" \").concat(count);\n idCountMap[id] = count + 1;\n var indexByIdentifier = getIndexByIdentifier(identifier);\n var obj = {\n css: item[1],\n media: item[2],\n sourceMap: item[3],\n supports: item[4],\n layer: item[5]\n };\n\n if (indexByIdentifier !== -1) {\n stylesInDOM[indexByIdentifier].references++;\n stylesInDOM[indexByIdentifier].updater(obj);\n } else {\n var updater = addElementStyle(obj, options);\n options.byIndex = i;\n stylesInDOM.splice(i, 0, {\n identifier: identifier,\n updater: updater,\n references: 1\n });\n }\n\n identifiers.push(identifier);\n }\n\n return identifiers;\n}\n\nfunction addElementStyle(obj, options) {\n var api = options.domAPI(options);\n api.update(obj);\n\n var updater = function updater(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap && newObj.supports === obj.supports && newObj.layer === obj.layer) {\n return;\n }\n\n api.update(obj = newObj);\n } else {\n api.remove();\n }\n };\n\n return updater;\n}\n\nmodule.exports = function (list, options) {\n options = options || {};\n list = list || [];\n var lastIdentifiers = modulesToDom(list, options);\n return function update(newList) {\n newList = newList || [];\n\n for (var i = 0; i < lastIdentifiers.length; i++) {\n var identifier = lastIdentifiers[i];\n var index = getIndexByIdentifier(identifier);\n stylesInDOM[index].references--;\n }\n\n var newLastIdentifiers = modulesToDom(newList, options);\n\n for (var _i = 0; _i < lastIdentifiers.length; _i++) {\n var _identifier = lastIdentifiers[_i];\n\n var _index = getIndexByIdentifier(_identifier);\n\n if (stylesInDOM[_index].references === 0) {\n stylesInDOM[_index].updater();\n\n stylesInDOM.splice(_index, 1);\n }\n }\n\n lastIdentifiers = newLastIdentifiers;\n };\n};","\"use strict\";\n\nvar memo = {};\n/* istanbul ignore next */\n\nfunction getTarget(target) {\n if (typeof memo[target] === \"undefined\") {\n var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself\n\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n\n memo[target] = styleTarget;\n }\n\n return memo[target];\n}\n/* istanbul ignore next */\n\n\nfunction insertBySelector(insert, style) {\n var target = getTarget(insert);\n\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n\n target.appendChild(style);\n}\n\nmodule.exports = insertBySelector;","\"use strict\";\n\n/* istanbul ignore next */\nfunction insertStyleElement(options) {\n var element = document.createElement(\"style\");\n options.setAttributes(element, options.attributes);\n options.insert(element, options.options);\n return element;\n}\n\nmodule.exports = insertStyleElement;","\"use strict\";\n\n/* istanbul ignore next */\nfunction setAttributesWithoutAttributes(styleElement) {\n var nonce = typeof __webpack_nonce__ !== \"undefined\" ? __webpack_nonce__ : null;\n\n if (nonce) {\n styleElement.setAttribute(\"nonce\", nonce);\n }\n}\n\nmodule.exports = setAttributesWithoutAttributes;","\"use strict\";\n\n/* istanbul ignore next */\nfunction apply(styleElement, options, obj) {\n var css = \"\";\n\n if (obj.supports) {\n css += \"@supports (\".concat(obj.supports, \") {\");\n }\n\n if (obj.media) {\n css += \"@media \".concat(obj.media, \" {\");\n }\n\n var needLayer = typeof obj.layer !== \"undefined\";\n\n if (needLayer) {\n css += \"@layer\".concat(obj.layer.length > 0 ? \" \".concat(obj.layer) : \"\", \" {\");\n }\n\n css += obj.css;\n\n if (needLayer) {\n css += \"}\";\n }\n\n if (obj.media) {\n css += \"}\";\n }\n\n if (obj.supports) {\n css += \"}\";\n }\n\n var sourceMap = obj.sourceMap;\n\n if (sourceMap && typeof btoa !== \"undefined\") {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n } // For old IE\n\n /* istanbul ignore if */\n\n\n options.styleTagTransform(css, styleElement, options.options);\n}\n\nfunction removeStyleElement(styleElement) {\n // istanbul ignore if\n if (styleElement.parentNode === null) {\n return false;\n }\n\n styleElement.parentNode.removeChild(styleElement);\n}\n/* istanbul ignore next */\n\n\nfunction domAPI(options) {\n var styleElement = options.insertStyleElement(options);\n return {\n update: function update(obj) {\n apply(styleElement, options, obj);\n },\n remove: function remove() {\n removeStyleElement(styleElement);\n }\n };\n}\n\nmodule.exports = domAPI;","\"use strict\";\n\n/* istanbul ignore next */\nfunction styleTagTransform(css, styleElement) {\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = css;\n } else {\n while (styleElement.firstChild) {\n styleElement.removeChild(styleElement.firstChild);\n }\n\n styleElement.appendChild(document.createTextNode(css));\n }\n}\n\nmodule.exports = styleTagTransform;"],"names":["___CSS_LOADER_EXPORT___","push","module","id","exports","cssWithMappingToString","list","toString","this","map","item","content","needLayer","concat","length","join","i","modules","media","dedupe","supports","layer","undefined","alreadyImportedModules","k","_k","cssMapping","btoa","base64","unescape","encodeURIComponent","JSON","stringify","data","sourceMapping","sourceURLs","sources","source","sourceRoot","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","stylesInDOM","getIndexByIdentifier","identifier","result","modulesToDom","idCountMap","identifiers","base","count","indexByIdentifier","obj","css","sourceMap","references","updater","addElementStyle","byIndex","splice","api","update","newObj","remove","lastIdentifiers","newList","index","newLastIdentifiers","_i","_index","memo","style","target","styleTarget","document","querySelector","window","HTMLIFrameElement","contentDocument","head","e","getTarget","Error","appendChild","element","createElement","attributes","styleElement","nonce","setAttribute","apply","parentNode","removeChild","removeStyleElement","styleSheet","cssText","firstChild","createTextNode"],"sourceRoot":""} \ No newline at end of file diff --git a/_static/build/6591.94ed352.js b/_static/build/6591.94ed352.js new file mode 100644 index 0000000..ec55e93 --- /dev/null +++ b/_static/build/6591.94ed352.js @@ -0,0 +1,2 @@ +(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[6591],{5179:(e,t,s)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.BaseManager=void 0;const n=s(70942),i=s(59566);t.BaseManager=class{constructor(e){var t;this._isDisposed=!1,this._disposed=new n.Signal(this),this.serverSettings=null!==(t=e.serverSettings)&&void 0!==t?t:i.ServerConnection.makeSettings()}get disposed(){return this._disposed}get isDisposed(){return this._isDisposed}dispose(){this.isDisposed||(this._disposed.emit(void 0),n.Signal.clearData(this))}}},75334:(e,t,s)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.BuildManager=void 0;const n=s(55941),i=s(59566);t.BuildManager=class{constructor(e={}){var t;this._url="",this.serverSettings=null!==(t=e.serverSettings)&&void 0!==t?t:i.ServerConnection.makeSettings();const{baseUrl:s,appUrl:r}=this.serverSettings;this._url=n.URLExt.join(s,r,"api/build")}get isAvailable(){return"true"===n.PageConfig.getOption("buildAvailable").toLowerCase()}get shouldCheck(){return"true"===n.PageConfig.getOption("buildCheck").toLowerCase()}getStatus(){const{_url:e,serverSettings:t}=this;return i.ServerConnection.makeRequest(e,{},t).then((e=>{if(200!==e.status)throw new i.ServerConnection.ResponseError(e);return e.json()})).then((e=>{if("string"!=typeof e.status)throw new Error("Invalid data");if("string"!=typeof e.message)throw new Error("Invalid data");return e}))}build(){const{_url:e,serverSettings:t}=this;return i.ServerConnection.makeRequest(e,{method:"POST"},t).then((e=>{if(400===e.status)throw new i.ServerConnection.ResponseError(e,"Build aborted");if(200!==e.status){const t=`Build failed with ${e.status}.\n\n If you are experiencing the build failure after installing an extension (or trying to include previously installed extension after updating JupyterLab) please check the extension repository for new installation instructions as many extensions migrated to the prebuilt extensions system which no longer requires rebuilding JupyterLab (but uses a different installation procedure, typically involving a package manager such as 'pip' or 'conda').\n\n If you specifically intended to install a source extension, please run 'jupyter lab build' on the server for full output.`;throw new i.ServerConnection.ResponseError(e,t)}}))}cancel(){const{_url:e,serverSettings:t}=this;return i.ServerConnection.makeRequest(e,{method:"DELETE"},t).then((e=>{if(204!==e.status)throw new i.ServerConnection.ResponseError(e)}))}}},32756:(e,t,s)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ConfigWithDefaults=t.ConfigSection=void 0;const n=s(55941),i=s(76591);(t.ConfigSection||(t.ConfigSection={})).create=function(e){const t=new r(e);return t.load().then((()=>t))};class r{constructor(e){var t;this._url="unknown";const s=this.serverSettings=null!==(t=e.serverSettings)&&void 0!==t?t:i.ServerConnection.makeSettings();this._url=n.URLExt.join(s.baseUrl,"api/config",encodeURIComponent(e.name))}get data(){return this._data}async load(){const e=await i.ServerConnection.makeRequest(this._url,{},this.serverSettings);if(200!==e.status)throw await i.ServerConnection.ResponseError.create(e);this._data=await e.json()}async update(e){this._data=Object.assign(Object.assign({},this._data),e);const t={method:"PATCH",body:JSON.stringify(e)},s=await i.ServerConnection.makeRequest(this._url,t,this.serverSettings);if(200!==s.status)throw await i.ServerConnection.ResponseError.create(s);return this._data=await s.json(),this._data}}t.ConfigWithDefaults=class{constructor(e){var t,s;this._className="",this._section=e.section,this._defaults=null!==(t=e.defaults)&&void 0!==t?t:{},this._className=null!==(s=e.className)&&void 0!==s?s:""}get(e){const t=this._classData();return e in t?t[e]:this._defaults[e]}set(e,t){const s={};if(s[e]=t,this._className){const e={};return e[this._className]=s,this._section.update(e)}return this._section.update(s)}_classData(){const e=this._section.data;return this._className&&this._className in e?e[this._className]:e}}},4851:function(e,t,s){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,s,n){void 0===n&&(n=s),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[s]}})}:function(e,t,s,n){void 0===n&&(n=s),e[n]=t[s]}),i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),r=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var s in e)"default"!==s&&Object.prototype.hasOwnProperty.call(e,s)&&n(t,e,s);return i(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.Drive=t.ContentsManager=t.Contents=void 0;const o=s(55941),a=s(43892),c=s(70942),l=s(76591),h=r(s(8618));var d,u;(u=t.Contents||(t.Contents={})).validateContentsModel=function(e){h.validateContentsModel(e)},u.validateCheckpointModel=function(e){h.validateCheckpointModel(e)},t.ContentsManager=class{constructor(e={}){var t,s;this._isDisposed=!1,this._additionalDrives=new Map,this._fileChanged=new c.Signal(this);const n=this.serverSettings=null!==(t=e.serverSettings)&&void 0!==t?t:l.ServerConnection.makeSettings();this._defaultDrive=null!==(s=e.defaultDrive)&&void 0!==s?s:new _({serverSettings:n}),this._defaultDrive.fileChanged.connect(this._onFileChanged,this)}get fileChanged(){return this._fileChanged}get isDisposed(){return this._isDisposed}dispose(){this.isDisposed||(this._isDisposed=!0,c.Signal.clearData(this))}addDrive(e){this._additionalDrives.set(e.name,e),e.fileChanged.connect(this._onFileChanged,this)}getModelDBFactory(e){var t;const[s]=this._driveForPath(e);return null!==(t=null==s?void 0:s.modelDBFactory)&&void 0!==t?t:null}localPath(e){const t=e.split("/"),s=t[0].split(":");return 1!==s.length&&this._additionalDrives.has(s[0])?o.PathExt.join(s.slice(1).join(":"),...t.slice(1)):o.PathExt.removeSlash(e)}normalize(e){const t=e.split(":");return 1===t.length?o.PathExt.normalize(e):`${t[0]}:${o.PathExt.normalize(t.slice(1).join(":"))}`}resolvePath(e,t){const s=this.driveName(e),n=this.localPath(e),i=o.PathExt.resolve("/",n,t);return s?`${s}:${i}`:i}driveName(e){const t=e.split("/")[0].split(":");return 1===t.length?"":this._additionalDrives.has(t[0])?t[0]:""}get(e,t){const[s,n]=this._driveForPath(e);return s.get(n,t).then((e=>{const t=[];return"directory"===e.type&&e.content?(a.each(e.content,(e=>{t.push(Object.assign(Object.assign({},e),{path:this._toGlobalPath(s,e.path)}))})),Object.assign(Object.assign({},e),{path:this._toGlobalPath(s,n),content:t})):Object.assign(Object.assign({},e),{path:this._toGlobalPath(s,n)})}))}getDownloadUrl(e){const[t,s]=this._driveForPath(e);return t.getDownloadUrl(s)}newUntitled(e={}){if(e.path){const t=this.normalize(e.path),[s,n]=this._driveForPath(t);return s.newUntitled(Object.assign(Object.assign({},e),{path:n})).then((e=>Object.assign(Object.assign({},e),{path:o.PathExt.join(t,e.name)})))}return this._defaultDrive.newUntitled(e)}delete(e){const[t,s]=this._driveForPath(e);return t.delete(s)}rename(e,t){const[s,n]=this._driveForPath(e),[i,r]=this._driveForPath(t);if(s!==i)throw Error("ContentsManager: renaming files must occur within a Drive");return s.rename(n,r).then((e=>Object.assign(Object.assign({},e),{path:this._toGlobalPath(s,r)})))}save(e,t={}){const s=this.normalize(e),[n,i]=this._driveForPath(e);return n.save(i,Object.assign(Object.assign({},t),{path:i})).then((e=>Object.assign(Object.assign({},e),{path:s})))}copy(e,t){const[s,n]=this._driveForPath(e),[i,r]=this._driveForPath(t);if(s===i)return s.copy(n,r).then((e=>Object.assign(Object.assign({},e),{path:this._toGlobalPath(s,e.path)})));throw Error("Copying files between drives is not currently implemented")}createCheckpoint(e){const[t,s]=this._driveForPath(e);return t.createCheckpoint(s)}listCheckpoints(e){const[t,s]=this._driveForPath(e);return t.listCheckpoints(s)}restoreCheckpoint(e,t){const[s,n]=this._driveForPath(e);return s.restoreCheckpoint(n,t)}deleteCheckpoint(e,t){const[s,n]=this._driveForPath(e);return s.deleteCheckpoint(n,t)}_toGlobalPath(e,t){return e===this._defaultDrive?o.PathExt.removeSlash(t):`${e.name}:${o.PathExt.removeSlash(t)}`}_driveForPath(e){const t=this.driveName(e),s=this.localPath(e);return t?[this._additionalDrives.get(t),s]:[this._defaultDrive,s]}_onFileChanged(e,t){var s,n;if(e===this._defaultDrive)this._fileChanged.emit(t);else{let i=null,r=null;(null===(s=t.newValue)||void 0===s?void 0:s.path)&&(i=Object.assign(Object.assign({},t.newValue),{path:this._toGlobalPath(e,t.newValue.path)})),(null===(n=t.oldValue)||void 0===n?void 0:n.path)&&(r=Object.assign(Object.assign({},t.oldValue),{path:this._toGlobalPath(e,t.oldValue.path)})),this._fileChanged.emit({type:t.type,newValue:i,oldValue:r})}}};class _{constructor(e={}){var t,s,n;this._isDisposed=!1,this._fileChanged=new c.Signal(this),this.name=null!==(t=e.name)&&void 0!==t?t:"Default",this._apiEndpoint=null!==(s=e.apiEndpoint)&&void 0!==s?s:"api/contents",this.serverSettings=null!==(n=e.serverSettings)&&void 0!==n?n:l.ServerConnection.makeSettings()}get fileChanged(){return this._fileChanged}get isDisposed(){return this._isDisposed}dispose(){this.isDisposed||(this._isDisposed=!0,c.Signal.clearData(this))}async get(e,t){let s=this._getUrl(e);if(t){"notebook"===t.type&&delete t.format;const e=t.content?"1":"0",n=Object.assign(Object.assign({},t),{content:e});s+=o.URLExt.objectToQueryString(n)}const n=this.serverSettings,i=await l.ServerConnection.makeRequest(s,{},n);if(200!==i.status)throw await l.ServerConnection.ResponseError.create(i);const r=await i.json();return h.validateContentsModel(r),r}getDownloadUrl(e){const t=this.serverSettings.baseUrl;let s=o.URLExt.join(t,"files",o.URLExt.encodeParts(e));const n=document.cookie.match("\\b_xsrf=([^;]*)\\b");if(n){const e=new URL(s);e.searchParams.append("_xsrf",n[1]),s=e.toString()}return Promise.resolve(s)}async newUntitled(e={}){var t;let s="{}";e&&(e.ext&&(e.ext=d.normalizeExtension(e.ext)),s=JSON.stringify(e));const n=this.serverSettings,i=this._getUrl(null!==(t=e.path)&&void 0!==t?t:""),r={method:"POST",body:s},o=await l.ServerConnection.makeRequest(i,r,n);if(201!==o.status)throw await l.ServerConnection.ResponseError.create(o);const a=await o.json();return h.validateContentsModel(a),this._fileChanged.emit({type:"new",oldValue:null,newValue:a}),a}async delete(e){const t=this._getUrl(e),s=this.serverSettings,n=await l.ServerConnection.makeRequest(t,{method:"DELETE"},s);if(204!==n.status)throw await l.ServerConnection.ResponseError.create(n);this._fileChanged.emit({type:"delete",oldValue:{path:e},newValue:null})}async rename(e,t){const s=this.serverSettings,n=this._getUrl(e),i={method:"PATCH",body:JSON.stringify({path:t})},r=await l.ServerConnection.makeRequest(n,i,s);if(200!==r.status)throw await l.ServerConnection.ResponseError.create(r);const o=await r.json();return h.validateContentsModel(o),this._fileChanged.emit({type:"rename",oldValue:{path:e},newValue:o}),o}async save(e,t={}){const s=this.serverSettings,n=this._getUrl(e),i={method:"PUT",body:JSON.stringify(t)},r=await l.ServerConnection.makeRequest(n,i,s);if(200!==r.status&&201!==r.status)throw await l.ServerConnection.ResponseError.create(r);const o=await r.json();return h.validateContentsModel(o),this._fileChanged.emit({type:"save",oldValue:null,newValue:o}),o}async copy(e,t){const s=this.serverSettings,n=this._getUrl(t),i={method:"POST",body:JSON.stringify({copy_from:e})},r=await l.ServerConnection.makeRequest(n,i,s);if(201!==r.status)throw await l.ServerConnection.ResponseError.create(r);const o=await r.json();return h.validateContentsModel(o),this._fileChanged.emit({type:"new",oldValue:null,newValue:o}),o}async createCheckpoint(e){const t=this._getUrl(e,"checkpoints"),s=await l.ServerConnection.makeRequest(t,{method:"POST"},this.serverSettings);if(201!==s.status)throw await l.ServerConnection.ResponseError.create(s);const n=await s.json();return h.validateCheckpointModel(n),n}async listCheckpoints(e){const t=this._getUrl(e,"checkpoints"),s=await l.ServerConnection.makeRequest(t,{},this.serverSettings);if(200!==s.status)throw await l.ServerConnection.ResponseError.create(s);const n=await s.json();if(!Array.isArray(n))throw new Error("Invalid Checkpoint list");for(let e=0;eo.URLExt.encodeParts(e))),s=this.serverSettings.baseUrl;return o.URLExt.join(s,this._apiEndpoint,...t)}}t.Drive=_,function(e){e.normalizeExtension=function(e){return e.length>0&&0!==e.indexOf(".")&&(e=`.${e}`),e}}(d||(d={}))},8618:(e,t,s)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.validateCheckpointModel=t.validateContentsModel=void 0;const n=s(74284);t.validateContentsModel=function(e){n.validateProperty(e,"name","string"),n.validateProperty(e,"path","string"),n.validateProperty(e,"type","string"),n.validateProperty(e,"created","string"),n.validateProperty(e,"last_modified","string"),n.validateProperty(e,"mimetype","object"),n.validateProperty(e,"content","object"),n.validateProperty(e,"format","object")},t.validateCheckpointModel=function(e){n.validateProperty(e,"id","string"),n.validateProperty(e,"last_modified","string")}},76591:function(e,t,s){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,s,n){void 0===n&&(n=s),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[s]}})}:function(e,t,s,n){void 0===n&&(n=s),e[n]=t[s]}),i=this&&this.__exportStar||function(e,t){for(var s in e)"default"===s||Object.prototype.hasOwnProperty.call(t,s)||n(t,e,s)};Object.defineProperty(t,"__esModule",{value:!0}),i(s(32756),t),i(s(4851),t),i(s(61613),t),i(s(21941),t),i(s(40944),t),i(s(59566),t),i(s(38542),t),i(s(36090),t),i(s(94629),t),i(s(3713),t),i(s(37017),t)},59917:function(e,t,s){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,s,n){void 0===n&&(n=s),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[s]}})}:function(e,t,s,n){void 0===n&&(n=s),e[n]=t[s]}),i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),r=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var s in e)"default"!==s&&Object.prototype.hasOwnProperty.call(e,s)&&n(t,e,s);return i(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.CommHandler=void 0;const o=s(43231),a=r(s(60433));class c extends o.DisposableDelegate{constructor(e,t,s,n){super(n),this._target="",this._id="",this._id=t,this._target=e,this._kernel=s}get commId(){return this._id}get targetName(){return this._target}get onClose(){return this._onClose}set onClose(e){this._onClose=e}get onMsg(){return this._onMsg}set onMsg(e){this._onMsg=e}open(e,t,s=[]){if(this.isDisposed||this._kernel.isDisposed)throw new Error("Cannot open");const n=a.createMessage({msgType:"comm_open",channel:"shell",username:this._kernel.username,session:this._kernel.clientId,content:{comm_id:this._id,target_name:this._target,data:null!=e?e:{}},metadata:t,buffers:s});return this._kernel.sendShellMessage(n,!1,!0)}send(e,t,s=[],n=!0){if(this.isDisposed||this._kernel.isDisposed)throw new Error("Cannot send");const i=a.createMessage({msgType:"comm_msg",channel:"shell",username:this._kernel.username,session:this._kernel.clientId,content:{comm_id:this._id,data:e},metadata:t,buffers:s});return this._kernel.sendShellMessage(i,!1,n)}close(e,t,s=[]){if(this.isDisposed||this._kernel.isDisposed)throw new Error("Cannot close");const n=a.createMessage({msgType:"comm_close",channel:"shell",username:this._kernel.username,session:this._kernel.clientId,content:{comm_id:this._id,data:null!=e?e:{}},metadata:t,buffers:s}),i=this._kernel.sendShellMessage(n,!1,!0),r=this._onClose;return r&&r(a.createMessage({msgType:"comm_close",channel:"iopub",username:this._kernel.username,session:this._kernel.clientId,content:{comm_id:this._id,data:null!=e?e:{}},metadata:t,buffers:s})),this.dispose(),i}}t.CommHandler=c},87269:function(e,t,s){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,s,n){void 0===n&&(n=s),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[s]}})}:function(e,t,s,n){void 0===n&&(n=s),e[n]=t[s]}),i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),r=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var s in e)"default"!==s&&Object.prototype.hasOwnProperty.call(e,s)&&n(t,e,s);return i(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.KernelConnection=void 0;const o=s(55941),a=s(26169),c=s(70942),l=s(76591),h=s(59917),d=r(s(60433)),u=s(17032),_=r(s(79697)),g=r(s(76799)),p=s(21941),m=r(s(36117)),f="_RESTARTING_";class v{constructor(e){var t,s,n,i;this._createSocket=()=>{this._errorIfDisposed(),this._clearSocket(),this._updateConnectionStatus("connecting");const e=this.serverSettings,t=o.URLExt.join(e.wsUrl,m.KERNEL_SERVICE_URL,encodeURIComponent(this._id)),s=t.replace(/^((?:\w+:)?\/\/)(?:[^@\/]+@)/,"$1");console.debug(`Starting WebSocket: ${s}`);let n=o.URLExt.join(t,"channels?session_id="+encodeURIComponent(this._clientId));const i=e.token;e.appendToken&&""!==i&&(n+=`&token=${encodeURIComponent(i)}`),this._ws=new e.WebSocket(n),this._ws.binaryType="arraybuffer";let r=!1;const a=async t=>{var s,n;if(!this._isDisposed){this._reason="",this._model=void 0;try{const s=await m.getKernelModel(this._id,e);this._model=s,"dead"===(null==s?void 0:s.execution_state)?this._updateStatus("dead"):this._onWSClose(t)}catch(e){if(e instanceof l.ServerConnection.NetworkError||503===(null===(s=e.response)||void 0===s?void 0:s.status)||424===(null===(n=e.response)||void 0===n?void 0:n.status)){const e=1e3*w.getRandomIntInclusive(10,30);setTimeout(a,e,t)}else this._reason="Kernel died unexpectedly",this._updateStatus("dead")}}},c=async e=>{r||(r=!0,await a(e))};this._ws.onmessage=this._onWSMessage,this._ws.onopen=this._onWSOpen,this._ws.onclose=c,this._ws.onerror=c},this._onWSOpen=e=>{this._ws.onclose=this._onWSClose,this._ws.onerror=this._onWSClose,this._updateConnectionStatus("connected")},this._onWSMessage=e=>{let t;try{t=_.deserialize(e.data),g.validateMessage(t)}catch(e){throw e.message=`Kernel message validation error: ${e.message}`,e}this._kernelSession=t.header.session,this._msgChain=this._msgChain.then((()=>this._handleMessage(t))).catch((e=>{e.message.startsWith("Canceled future for ")&&console.error(e)})),this._anyMessage.emit({msg:t,direction:"recv"})},this._onWSClose=e=>{this.isDisposed||this._reconnect()},this._id="",this._name="",this._status="unknown",this._connectionStatus="connecting",this._kernelSession="",this._isDisposed=!1,this._ws=null,this._username="",this._reconnectLimit=7,this._reconnectAttempt=0,this._reconnectTimeout=null,this._futures=new Map,this._comms=new Map,this._targetRegistry=Object.create(null),this._info=new a.PromiseDelegate,this._pendingMessages=[],this._statusChanged=new c.Signal(this),this._connectionStatusChanged=new c.Signal(this),this._disposed=new c.Signal(this),this._iopubMessage=new c.Signal(this),this._anyMessage=new c.Signal(this),this._pendingInput=new c.Signal(this),this._unhandledMessage=new c.Signal(this),this._displayIdToParentIds=new Map,this._msgIdToDisplayIds=new Map,this._msgChain=Promise.resolve(),this._hasPendingInput=!1,this._reason="",this._noOp=()=>{},this._name=e.model.name,this._id=e.model.id,this.serverSettings=null!==(t=e.serverSettings)&&void 0!==t?t:l.ServerConnection.makeSettings(),this._clientId=null!==(s=e.clientId)&&void 0!==s?s:a.UUID.uuid4(),this._username=null!==(n=e.username)&&void 0!==n?n:"",this.handleComms=null===(i=e.handleComms)||void 0===i||i,this._createSocket()}get disposed(){return this._disposed}get statusChanged(){return this._statusChanged}get connectionStatusChanged(){return this._connectionStatusChanged}get iopubMessage(){return this._iopubMessage}get unhandledMessage(){return this._unhandledMessage}get model(){return this._model||{id:this.id,name:this.name,reason:this._reason}}get anyMessage(){return this._anyMessage}get pendingInput(){return this._pendingInput}get id(){return this._id}get name(){return this._name}get username(){return this._username}get clientId(){return this._clientId}get status(){return this._status}get connectionStatus(){return this._connectionStatus}get isDisposed(){return this._isDisposed}get info(){return this._info.promise}get spec(){return this._specPromise||(this._specPromise=p.KernelSpecAPI.getSpecs(this.serverSettings).then((e=>e.kernelspecs[this._name]))),this._specPromise}clone(e={}){return new v(Object.assign({model:this.model,username:this.username,serverSettings:this.serverSettings,handleComms:!1},e))}dispose(){this.isDisposed||(this._isDisposed=!0,this._disposed.emit(),this._updateConnectionStatus("disconnected"),this._clearKernelState(),this._pendingMessages=[],this._clearSocket(),c.Signal.clearData(this))}sendShellMessage(e,t=!1,s=!0){return this._sendKernelShellControl(u.KernelShellFutureHandler,e,t,s)}sendControlMessage(e,t=!1,s=!0){return this._sendKernelShellControl(u.KernelControlFutureHandler,e,t,s)}_sendKernelShellControl(e,t,s=!1,n=!0){this._sendMessage(t),this._anyMessage.emit({msg:t,direction:"send"});const i=new e((()=>{const e=t.header.msg_id;this._futures.delete(e);const s=this._msgIdToDisplayIds.get(e);s&&(s.forEach((t=>{const s=this._displayIdToParentIds.get(t);if(s){const n=s.indexOf(e);if(-1===n)return;1===s.length?this._displayIdToParentIds.delete(t):(s.splice(n,1),this._displayIdToParentIds.set(t,s))}})),this._msgIdToDisplayIds.delete(e))}),t,s,n,this);return this._futures.set(t.header.msg_id,i),i}_sendMessage(e,t=!0){if("dead"===this.status)throw new Error("Kernel is dead");if((""===this._kernelSession||this._kernelSession===f)&&d.isInfoRequestMsg(e)){if("connected"===this.connectionStatus)return void this._ws.send(_.serialize(e));throw new Error("Could not send message: status is not connected")}if(t&&this._pendingMessages.length>0)this._pendingMessages.push(e);else if("connected"===this.connectionStatus&&this._kernelSession!==f)this._ws.send(_.serialize(e));else{if(!t)throw new Error("Could not send message");this._pendingMessages.push(e)}}async interrupt(){if(this.hasPendingInput=!1,"dead"===this.status)throw new Error("Kernel is dead");return m.interruptKernel(this.id,this.serverSettings)}async restart(){if("dead"===this.status)throw new Error("Kernel is dead");this._updateStatus("restarting"),this._clearKernelState(),this._kernelSession=f,await m.restartKernel(this.id,this.serverSettings),await this.reconnect(),this.hasPendingInput=!1}reconnect(){this._errorIfDisposed();const e=new a.PromiseDelegate,t=(s,n)=>{"connected"===n?(e.resolve(),this.connectionStatusChanged.disconnect(t,this)):"disconnected"===n&&(e.reject(new Error("Kernel connection disconnected")),this.connectionStatusChanged.disconnect(t,this))};return this.connectionStatusChanged.connect(t,this),this._reconnectAttempt=0,this._reconnect(),e.promise}async shutdown(){"dead"!==this.status&&await m.shutdownKernel(this.id,this.serverSettings),this.handleShutdown()}handleShutdown(){this._updateStatus("dead"),this.dispose()}async requestKernelInfo(){const e=d.createMessage({msgType:"kernel_info_request",channel:"shell",username:this._username,session:this._clientId,content:{}});let t;try{t=await w.handleShellMessage(this,e)}catch(e){if(this.isDisposed)return;throw e}if(this._errorIfDisposed(),t)return void 0===t.content.status&&(t.content.status="ok"),"ok"!==t.content.status?(this._info.reject("Kernel info reply errored"),t):(this._info.resolve(t.content),this._kernelSession=t.header.session,t)}requestComplete(e){const t=d.createMessage({msgType:"complete_request",channel:"shell",username:this._username,session:this._clientId,content:e});return w.handleShellMessage(this,t)}requestInspect(e){const t=d.createMessage({msgType:"inspect_request",channel:"shell",username:this._username,session:this._clientId,content:e});return w.handleShellMessage(this,t)}requestHistory(e){const t=d.createMessage({msgType:"history_request",channel:"shell",username:this._username,session:this._clientId,content:e});return w.handleShellMessage(this,t)}requestExecute(e,t=!0,s){const n=d.createMessage({msgType:"execute_request",channel:"shell",username:this._username,session:this._clientId,content:Object.assign(Object.assign({},{silent:!1,store_history:!0,user_expressions:{},allow_stdin:!0,stop_on_error:!1}),e),metadata:s});return this.sendShellMessage(n,!0,t)}requestDebug(e,t=!0){const s=d.createMessage({msgType:"debug_request",channel:"control",username:this._username,session:this._clientId,content:e});return this.sendControlMessage(s,!0,t)}requestIsComplete(e){const t=d.createMessage({msgType:"is_complete_request",channel:"shell",username:this._username,session:this._clientId,content:e});return w.handleShellMessage(this,t)}requestCommInfo(e){const t=d.createMessage({msgType:"comm_info_request",channel:"shell",username:this._username,session:this._clientId,content:e});return w.handleShellMessage(this,t)}sendInputReply(e,t){const s=d.createMessage({msgType:"input_reply",channel:"stdin",username:this._username,session:this._clientId,content:e});t&&(s.parent_header=t),this._sendMessage(s),this._anyMessage.emit({msg:s,direction:"send"}),this.hasPendingInput=!1}createComm(e,t=a.UUID.uuid4()){if(!this.handleComms)throw new Error("Comms are disabled on this kernel connection");if(this._comms.has(t))throw new Error("Comm is already created");const s=new h.CommHandler(e,t,this,(()=>{this._unregisterComm(t)}));return this._comms.set(t,s),s}hasComm(e){return this._comms.has(e)}registerCommTarget(e,t){this.handleComms&&(this._targetRegistry[e]=t)}removeCommTarget(e,t){this.handleComms&&(this.isDisposed||this._targetRegistry[e]!==t||delete this._targetRegistry[e])}registerMessageHook(e,t){var s;const n=null===(s=this._futures)||void 0===s?void 0:s.get(e);n&&n.registerMessageHook(t)}removeMessageHook(e,t){var s;const n=null===(s=this._futures)||void 0===s?void 0:s.get(e);n&&n.removeMessageHook(t)}removeInputGuard(){this.hasPendingInput=!1}async _handleDisplayId(e,t){var s,n;const i=t.parent_header.msg_id;let r=this._displayIdToParentIds.get(e);if(r){const e={header:a.JSONExt.deepCopy(t.header),parent_header:a.JSONExt.deepCopy(t.parent_header),metadata:a.JSONExt.deepCopy(t.metadata),content:a.JSONExt.deepCopy(t.content),channel:t.channel,buffers:t.buffers?t.buffers.slice():[]};e.header.msg_type="update_display_data",await Promise.all(r.map((async t=>{const s=this._futures&&this._futures.get(t);s&&await s.handleMsg(e)})))}if("update_display_data"===t.header.msg_type)return!0;r=null!==(s=this._displayIdToParentIds.get(e))&&void 0!==s?s:[],-1===r.indexOf(i)&&r.push(i),this._displayIdToParentIds.set(e,r);const o=null!==(n=this._msgIdToDisplayIds.get(i))&&void 0!==n?n:[];return-1===o.indexOf(i)&&o.push(i),this._msgIdToDisplayIds.set(i,o),!1}_clearSocket(){null!==this._ws&&(this._ws.onopen=this._noOp,this._ws.onclose=this._noOp,this._ws.onerror=this._noOp,this._ws.onmessage=this._noOp,this._ws.close(),this._ws=null)}_updateStatus(e){this._status!==e&&"dead"!==this._status&&(this._status=e,w.logKernelStatus(this),this._statusChanged.emit(e),"dead"===e&&this.dispose())}_sendPending(){for(;"connected"===this.connectionStatus&&this._kernelSession!==f&&this._pendingMessages.length>0;)this._sendMessage(this._pendingMessages[0],!1),this._pendingMessages.shift()}_clearKernelState(){this._kernelSession="",this._pendingMessages=[],this._futures.forEach((e=>{e.dispose()})),this._comms.forEach((e=>{e.dispose()})),this._msgChain=Promise.resolve(),this._futures=new Map,this._comms=new Map,this._displayIdToParentIds.clear(),this._msgIdToDisplayIds.clear()}_assertCurrentMessage(e){if(this._errorIfDisposed(),e.header.session!==this._kernelSession)throw new Error(`Canceling handling of old message: ${e.header.msg_type}`)}async _handleCommOpen(e){this._assertCurrentMessage(e);const t=e.content,s=new h.CommHandler(t.target_name,t.comm_id,this,(()=>{this._unregisterComm(t.comm_id)}));this._comms.set(t.comm_id,s);try{const n=await w.loadObject(t.target_name,t.target_module,this._targetRegistry);await n(s,e)}catch(e){throw s.close(),console.error("Exception opening new comm"),e}}async _handleCommClose(e){this._assertCurrentMessage(e);const t=e.content,s=this._comms.get(t.comm_id);if(!s)return void console.error("Comm not found for comm id "+t.comm_id);this._unregisterComm(s.commId);const n=s.onClose;n&&await n(e),s.dispose()}async _handleCommMsg(e){this._assertCurrentMessage(e);const t=e.content,s=this._comms.get(t.comm_id);if(!s)return;const n=s.onMsg;n&&await n(e)}_unregisterComm(e){this._comms.delete(e)}_updateConnectionStatus(e){if(this._connectionStatus!==e){if(this._connectionStatus=e,"connecting"!==e&&(this._reconnectAttempt=0,clearTimeout(this._reconnectTimeout)),"dead"!==this.status)if("connected"===e){let e=this._kernelSession===f,t=this.requestKernelInfo(),s=!1,n=()=>{s||(s=!0,e&&this._kernelSession===f&&(this._kernelSession=""),clearTimeout(i),this._pendingMessages.length>0&&this._sendPending())};t.then(n);let i=setTimeout(n,3e3)}else this._updateStatus("unknown");this._connectionStatusChanged.emit(e)}}async _handleMessage(e){var t,s;let n=!1;if(e.parent_header&&"iopub"===e.channel&&(d.isDisplayDataMsg(e)||d.isUpdateDisplayDataMsg(e)||d.isExecuteResultMsg(e))){const s=(null!==(t=e.content.transient)&&void 0!==t?t:{}).display_id;s&&(n=await this._handleDisplayId(s,e),this._assertCurrentMessage(e))}if(!n&&e.parent_header){const t=e.parent_header,n=null===(s=this._futures)||void 0===s?void 0:s.get(t.msg_id);if(n)await n.handleMsg(e),this._assertCurrentMessage(e);else{const s=t.session===this.clientId;"iopub"!==e.channel&&s&&this._unhandledMessage.emit(e)}}if("iopub"===e.channel){switch(e.header.msg_type){case"status":{const t=e.content.execution_state;"restarting"===t&&Promise.resolve().then((async()=>{this._updateStatus("autorestarting"),this._clearKernelState(),await this.reconnect()})),this._updateStatus(t);break}case"comm_open":this.handleComms&&await this._handleCommOpen(e);break;case"comm_msg":this.handleComms&&await this._handleCommMsg(e);break;case"comm_close":this.handleComms&&await this._handleCommClose(e)}this.isDisposed||(this._assertCurrentMessage(e),this._iopubMessage.emit(e))}}_reconnect(){if(this._errorIfDisposed(),clearTimeout(this._reconnectTimeout),this._reconnectAttempt{if(t){if("undefined"==typeof requirejs)throw new Error("requirejs not found");requirejs([t],(s=>{void 0===s[e]?i(new Error(`Object '${e}' not found in module '${t}'`)):n(s[e])}),i)}else(null==s?void 0:s[e])?n(s[e]):i(new Error(`Object '${e}' not found in registry`))}))},e.getRandomIntInclusive=function(e,t){return e=Math.ceil(e),t=Math.floor(t),Math.floor(Math.random()*(t-e+1))+e}}(w||(w={}))},17032:function(e,t,s){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,s,n){void 0===n&&(n=s),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[s]}})}:function(e,t,s,n){void 0===n&&(n=s),e[n]=t[s]}),i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),r=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var s in e)"default"!==s&&Object.prototype.hasOwnProperty.call(e,s)&&n(t,e,s);return i(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.KernelShellFutureHandler=t.KernelControlFutureHandler=t.KernelFutureHandler=void 0;const o=s(26169),a=s(43231),c=r(s(60433));class l extends a.DisposableDelegate{constructor(e,t,s,n,i){super(e),this._status=0,this._stdin=h.noOp,this._iopub=h.noOp,this._reply=h.noOp,this._done=new o.PromiseDelegate,this._hooks=new h.HookList,this._disposeOnDone=!0,this._msg=t,s||this._setFlag(h.KernelFutureFlag.GotReply),this._disposeOnDone=n,this._kernel=i}get msg(){return this._msg}get done(){return this._done.promise}get onReply(){return this._reply}set onReply(e){this._reply=e}get onIOPub(){return this._iopub}set onIOPub(e){this._iopub=e}get onStdin(){return this._stdin}set onStdin(e){this._stdin=e}registerMessageHook(e){if(this.isDisposed)throw new Error("Kernel future is disposed");this._hooks.add(e)}removeMessageHook(e){this.isDisposed||this._hooks.remove(e)}sendInputReply(e,t){this._kernel.sendInputReply(e,t)}dispose(){this._stdin=h.noOp,this._iopub=h.noOp,this._reply=h.noOp,this._hooks=null,this._testFlag(h.KernelFutureFlag.IsDone)||(this._done.promise.catch((()=>{})),this._done.reject(new Error(`Canceled future for ${this.msg.header.msg_type} message before replies were done`))),super.dispose()}async handleMsg(e){switch(e.channel){case"control":case"shell":e.channel===this.msg.channel&&e.parent_header.msg_id===this.msg.header.msg_id&&await this._handleReply(e);break;case"stdin":await this._handleStdin(e);break;case"iopub":await this._handleIOPub(e)}}async _handleReply(e){const t=this._reply;t&&await t(e),this._replyMsg=e,this._setFlag(h.KernelFutureFlag.GotReply),this._testFlag(h.KernelFutureFlag.GotIdle)&&this._handleDone()}async _handleStdin(e){this._kernel.hasPendingInput=!0;const t=this._stdin;t&&await t(e)}async _handleIOPub(e){const t=await this._hooks.process(e),s=this._iopub;t&&s&&await s(e),c.isStatusMsg(e)&&"idle"===e.content.execution_state&&(this._setFlag(h.KernelFutureFlag.GotIdle),this._testFlag(h.KernelFutureFlag.GotReply)&&this._handleDone())}_handleDone(){this._testFlag(h.KernelFutureFlag.IsDone)||(this._setFlag(h.KernelFutureFlag.IsDone),this._done.resolve(this._replyMsg),this._disposeOnDone&&this.dispose())}_testFlag(e){return 0!=(this._status&e)}_setFlag(e){this._status|=e}}var h;t.KernelFutureHandler=l,t.KernelControlFutureHandler=class extends l{},t.KernelShellFutureHandler=class extends l{},function(e){e.noOp=()=>{};const t="function"==typeof requestAnimationFrame?requestAnimationFrame:setImmediate;let s;e.HookList=class{constructor(){this._hooks=[]}add(e){this.remove(e),this._hooks.push(e)}remove(e){const t=this._hooks.indexOf(e);t>=0&&(this._hooks[t]=null,this._scheduleCompact())}async process(e){await this._processing;const t=new o.PromiseDelegate;let s;this._processing=t.promise;for(let n=this._hooks.length-1;n>=0;n--){const i=this._hooks[n];if(null!==i){try{s=await i(e)}catch(e){s=!0,console.error(e)}if(!1===s)return t.resolve(void 0),!1}}return t.resolve(void 0),!0}_scheduleCompact(){this._compactScheduled||(this._compactScheduled=!0,t((()=>{this._processing=this._processing.then((()=>{this._compactScheduled=!1,this._compact()}))})))}_compact(){let e=0;for(let t=0,s=this._hooks.length;t{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},55780:(e,t,s)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.KernelManager=void 0;const n=s(43892),i=s(61313),r=s(70942),o=s(76591),a=s(5179),c=s(36117),l=s(87269);class h extends a.BaseManager{constructor(e={}){var t;super(e),this._isReady=!1,this._kernelConnections=new Set,this._models=new Map,this._runningChanged=new r.Signal(this),this._connectionFailure=new r.Signal(this),this._pollModels=new i.Poll({auto:!1,factory:()=>this.requestRunning(),frequency:{interval:1e4,backoff:!0,max:3e5},name:"@jupyterlab/services:KernelManager#models",standby:null!==(t=e.standby)&&void 0!==t?t:"when-hidden"}),this._ready=(async()=>{await this._pollModels.start(),await this._pollModels.tick,this._isReady=!0})()}get isReady(){return this._isReady}get ready(){return this._ready}get runningChanged(){return this._runningChanged}get connectionFailure(){return this._connectionFailure}dispose(){this.isDisposed||(this._models.clear(),this._kernelConnections.forEach((e=>e.dispose())),this._pollModels.dispose(),super.dispose())}connectTo(e){var t;const{id:s}=e.model;let n=null===(t=e.handleComms)||void 0===t||t;if(void 0===e.handleComms)for(const e of this._kernelConnections)if(e.id===s&&e.handleComms){n=!1;break}const i=new l.KernelConnection(Object.assign(Object.assign({handleComms:n},e),{serverSettings:this.serverSettings}));return this._onStarted(i),this._models.has(s)||this.refreshRunning().catch((()=>{})),i}running(){return n.iter([...this._models.values()])}async refreshRunning(){await this._pollModels.refresh(),await this._pollModels.tick}async startNew(e={},t={}){const s=await c.startNew(e,this.serverSettings);return this.connectTo(Object.assign(Object.assign({},t),{model:s}))}async shutdown(e){await c.shutdownKernel(e,this.serverSettings),await this.refreshRunning()}async shutdownAll(){await this.refreshRunning(),await Promise.all([...this._models.keys()].map((e=>c.shutdownKernel(e,this.serverSettings)))),await this.refreshRunning()}async findById(e){return this._models.has(e)||await this.refreshRunning(),this._models.get(e)}async requestRunning(){var e,t;let s;try{s=await c.listRunning(this.serverSettings)}catch(s){throw(s instanceof o.ServerConnection.NetworkError||503===(null===(e=s.response)||void 0===e?void 0:e.status)||424===(null===(t=s.response)||void 0===t?void 0:t.status))&&this._connectionFailure.emit(s),s}this.isDisposed||this._models.size===s.length&&n.every(s,(e=>{const t=this._models.get(e.id);return!!t&&t.name===e.name}))||(this._models=new Map(s.map((e=>[e.id,e]))),this._kernelConnections.forEach((e=>{this._models.has(e.id)||e.handleShutdown()})),this._runningChanged.emit(s))}_onStarted(e){this._kernelConnections.add(e),e.statusChanged.connect(this._onStatusChanged,this),e.disposed.connect(this._onDisposed,this)}_onDisposed(e){this._kernelConnections.delete(e),this.refreshRunning().catch((()=>{}))}_onStatusChanged(e,t){"dead"===t&&this.refreshRunning().catch((()=>{}))}}t.KernelManager=h},60433:(e,t,s)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isInputReplyMsg=t.isInputRequestMsg=t.isDebugReplyMsg=t.isDebugRequestMsg=t.isExecuteReplyMsg=t.isInfoRequestMsg=t.isCommMsgMsg=t.isCommCloseMsg=t.isCommOpenMsg=t.isDebugEventMsg=t.isClearOutputMsg=t.isStatusMsg=t.isErrorMsg=t.isExecuteResultMsg=t.isExecuteInputMsg=t.isUpdateDisplayDataMsg=t.isDisplayDataMsg=t.isStreamMsg=t.createMessage=void 0;const n=s(26169);t.createMessage=function(e){var t,s,i,r,o;return{buffers:null!==(t=e.buffers)&&void 0!==t?t:[],channel:e.channel,content:e.content,header:{date:(new Date).toISOString(),msg_id:null!==(s=e.msgId)&&void 0!==s?s:n.UUID.uuid4(),msg_type:e.msgType,session:e.session,username:null!==(i=e.username)&&void 0!==i?i:"",version:"5.2"},metadata:null!==(r=e.metadata)&&void 0!==r?r:{},parent_header:null!==(o=e.parentHeader)&&void 0!==o?o:{}}},t.isStreamMsg=function(e){return"stream"===e.header.msg_type},t.isDisplayDataMsg=function(e){return"display_data"===e.header.msg_type},t.isUpdateDisplayDataMsg=function(e){return"update_display_data"===e.header.msg_type},t.isExecuteInputMsg=function(e){return"execute_input"===e.header.msg_type},t.isExecuteResultMsg=function(e){return"execute_result"===e.header.msg_type},t.isErrorMsg=function(e){return"error"===e.header.msg_type},t.isStatusMsg=function(e){return"status"===e.header.msg_type},t.isClearOutputMsg=function(e){return"clear_output"===e.header.msg_type},t.isDebugEventMsg=function(e){return"debug_event"===e.header.msg_type},t.isCommOpenMsg=function(e){return"comm_open"===e.header.msg_type},t.isCommCloseMsg=function(e){return"comm_close"===e.header.msg_type},t.isCommMsgMsg=function(e){return"comm_msg"===e.header.msg_type},t.isInfoRequestMsg=function(e){return"kernel_info_request"===e.header.msg_type},t.isExecuteReplyMsg=function(e){return"execute_reply"===e.header.msg_type},t.isDebugRequestMsg=function(e){return"debug_request"===e.header.msg_type},t.isDebugReplyMsg=function(e){return"debug_reply"===e.header.msg_type},t.isInputRequestMsg=function(e){return"input_request"===e.header.msg_type},t.isInputReplyMsg=function(e){return"input_reply"===e.header.msg_type}},36117:(e,t,s)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getKernelModel=t.shutdownKernel=t.interruptKernel=t.restartKernel=t.startNew=t.listRunning=t.KERNEL_SERVICE_URL=void 0;const n=s(59566),i=s(55941),r=s(76799);t.KERNEL_SERVICE_URL="api/kernels",t.listRunning=async function(e=n.ServerConnection.makeSettings()){const s=i.URLExt.join(e.baseUrl,t.KERNEL_SERVICE_URL),o=await n.ServerConnection.makeRequest(s,{},e);if(200!==o.status)throw await n.ServerConnection.ResponseError.create(o);const a=await o.json();return r.validateModels(a),a},t.startNew=async function(e={},s=n.ServerConnection.makeSettings()){const o=i.URLExt.join(s.baseUrl,t.KERNEL_SERVICE_URL),a={method:"POST",body:JSON.stringify(e)},c=await n.ServerConnection.makeRequest(o,a,s);if(201!==c.status)throw await n.ServerConnection.ResponseError.create(c);const l=await c.json();return r.validateModel(l),l},t.restartKernel=async function(e,s=n.ServerConnection.makeSettings()){const o=i.URLExt.join(s.baseUrl,t.KERNEL_SERVICE_URL,encodeURIComponent(e),"restart"),a=await n.ServerConnection.makeRequest(o,{method:"POST"},s);if(200!==a.status)throw await n.ServerConnection.ResponseError.create(a);const c=await a.json();r.validateModel(c)},t.interruptKernel=async function(e,s=n.ServerConnection.makeSettings()){const r=i.URLExt.join(s.baseUrl,t.KERNEL_SERVICE_URL,encodeURIComponent(e),"interrupt"),o=await n.ServerConnection.makeRequest(r,{method:"POST"},s);if(204!==o.status)throw await n.ServerConnection.ResponseError.create(o)},t.shutdownKernel=async function(e,s=n.ServerConnection.makeSettings()){const r=i.URLExt.join(s.baseUrl,t.KERNEL_SERVICE_URL,encodeURIComponent(e)),o=await n.ServerConnection.makeRequest(r,{method:"DELETE"},s);if(404===o.status){const t=`The kernel "${e}" does not exist on the server`;console.warn(t)}else if(204!==o.status)throw await n.ServerConnection.ResponseError.create(o)},t.getKernelModel=async function(e,s=n.ServerConnection.makeSettings()){const o=i.URLExt.join(s.baseUrl,t.KERNEL_SERVICE_URL,encodeURIComponent(e)),a=await n.ServerConnection.makeRequest(o,{},s);if(404===a.status)return;if(200!==a.status)throw await n.ServerConnection.ResponseError.create(a);const c=await a.json();return r.validateModel(c),c}},79697:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.serialize=t.deserialize=void 0,t.deserialize=function(e){let t;return t="string"==typeof e?JSON.parse(e):function(e){const t=new DataView(e),s=t.getUint32(0),n=[];if(s<2)throw new Error("Invalid incoming Kernel Message");for(let e=1;e<=s;e++)n.push(t.getUint32(4*e));const i=new Uint8Array(e.slice(n[0],n[1])),r=JSON.parse(new TextDecoder("utf8").decode(i));r.buffers=[];for(let t=1;t{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.validateModels=t.validateModel=t.validateMessage=void 0;const n=s(74284),i=["username","version","session","msg_id","msg_type"],r={stream:{name:"string",text:"string"},display_data:{data:"object",metadata:"object"},execute_input:{code:"string",execution_count:"number"},execute_result:{execution_count:"number",data:"object",metadata:"object"},error:{ename:"string",evalue:"string",traceback:"object"},status:{execution_state:["string",["starting","idle","busy","restarting","dead"]]},clear_output:{wait:"boolean"},comm_open:{comm_id:"string",target_name:"string",data:"object"},comm_msg:{comm_id:"string",data:"object"},comm_close:{comm_id:"string"},shutdown_reply:{restart:"boolean"}};function o(e){n.validateProperty(e,"name","string"),n.validateProperty(e,"id","string")}t.validateMessage=function(e){n.validateProperty(e,"metadata","object"),n.validateProperty(e,"content","object"),n.validateProperty(e,"channel","string"),function(e){for(let t=0;to(e)))}},21941:function(e,t,s){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,s,n){void 0===n&&(n=s),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[s]}})}:function(e,t,s,n){void 0===n&&(n=s),e[n]=t[s]}),i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),r=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var s in e)"default"!==s&&Object.prototype.hasOwnProperty.call(e,s)&&n(t,e,s);return i(t,e),t},o=this&&this.__exportStar||function(e,t){for(var s in e)"default"===s||Object.prototype.hasOwnProperty.call(t,s)||n(t,e,s)};Object.defineProperty(t,"__esModule",{value:!0}),t.KernelSpecAPI=t.KernelSpec=void 0;const a=r(s(65132));t.KernelSpec=a;const c=r(s(76735));t.KernelSpecAPI=c,o(s(48750),t)},65132:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},48750:function(e,t,s){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,s,n){void 0===n&&(n=s),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[s]}})}:function(e,t,s,n){void 0===n&&(n=s),e[n]=t[s]}),i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),r=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var s in e)"default"!==s&&Object.prototype.hasOwnProperty.call(e,s)&&n(t,e,s);return i(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.KernelSpecManager=void 0;const o=s(26169),a=s(61313),c=s(70942),l=r(s(76735)),h=s(5179);class d extends h.BaseManager{constructor(e={}){var t;super(e),this._isReady=!1,this._connectionFailure=new c.Signal(this),this._specs=null,this._specsChanged=new c.Signal(this),this._ready=Promise.all([this.requestSpecs()]).then((e=>{})).catch((e=>{})).then((()=>{this.isDisposed||(this._isReady=!0)})),this._pollSpecs=new a.Poll({auto:!1,factory:()=>this.requestSpecs(),frequency:{interval:61e3,backoff:!0,max:3e5},name:"@jupyterlab/services:KernelSpecManager#specs",standby:null!==(t=e.standby)&&void 0!==t?t:"when-hidden"}),this.ready.then((()=>{this._pollSpecs.start()}))}get isReady(){return this._isReady}get ready(){return this._ready}get specs(){return this._specs}get specsChanged(){return this._specsChanged}get connectionFailure(){return this._connectionFailure}dispose(){this._pollSpecs.dispose(),super.dispose()}async refreshSpecs(){await this._pollSpecs.refresh(),await this._pollSpecs.tick}async requestSpecs(){const e=await l.getSpecs(this.serverSettings);this.isDisposed||o.JSONExt.deepEqual(e,this._specs)||(this._specs=e,this._specsChanged.emit(e))}}t.KernelSpecManager=d},76735:(e,t,s)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getSpecs=void 0;const n=s(59566),i=s(88872),r=s(55941);t.getSpecs=async function(e=n.ServerConnection.makeSettings()){const t=r.URLExt.join(e.baseUrl,"api/kernelspecs"),s=await n.ServerConnection.makeRequest(t,{},e);if(200!==s.status)throw await n.ServerConnection.ResponseError.create(s);const o=await s.json();return i.validateSpecModels(o)}},88872:(e,t,s)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.validateSpecModels=t.validateSpecModel=void 0;const n=s(74284);function i(e){const t=e.spec;if(!t)throw new Error("Invalid kernel spec");n.validateProperty(e,"name","string"),n.validateProperty(e,"resources","object"),n.validateProperty(t,"language","string"),n.validateProperty(t,"display_name","string"),n.validateProperty(t,"argv","array");let s=null;t.hasOwnProperty("metadata")&&(n.validateProperty(t,"metadata","object"),s=t.metadata);let i=null;return t.hasOwnProperty("env")&&(n.validateProperty(t,"env","object"),i=t.env),{name:e.name,resources:e.resources,language:t.language,display_name:t.display_name,argv:t.argv,metadata:s,env:i}}t.validateSpecModel=i,t.validateSpecModels=function(e){if(!e.hasOwnProperty("kernelspecs"))throw new Error("No kernelspecs found");let t=Object.keys(e.kernelspecs);const s=Object.create(null);let n=e.default;for(let n=0;n{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ServiceManager=void 0;const n=s(70942),i=s(75334),r=s(37017),o=s(4851),a=s(21941),c=s(38542),l=s(36090),h=s(94629),d=s(59566),u=s(3713),_=s(61613);t.ServiceManager=class{constructor(e={}){var t,s;this._isDisposed=!1,this._connectionFailure=new n.Signal(this),this._isReady=!1;const g=e.defaultDrive,p=null!==(t=e.serverSettings)&&void 0!==t?t:d.ServerConnection.makeSettings(),m={defaultDrive:g,serverSettings:p,standby:null!==(s=e.standby)&&void 0!==s?s:"when-hidden"},f=new _.KernelManager(m);this.serverSettings=p,this.contents=new o.ContentsManager(m),this.sessions=new c.SessionManager(Object.assign(Object.assign({},m),{kernelManager:f})),this.settings=new l.SettingManager(m),this.terminals=new h.TerminalManager(m),this.builder=new i.BuildManager(m),this.workspaces=new u.WorkspaceManager(m),this.nbconvert=new r.NbConvertManager(m),this.kernelspecs=new a.KernelSpecManager(m),this.kernelspecs.connectionFailure.connect(this._onConnectionFailure,this),this.sessions.connectionFailure.connect(this._onConnectionFailure,this),this.terminals.connectionFailure.connect(this._onConnectionFailure,this);const v=[this.sessions.ready,this.kernelspecs.ready];this.terminals.isAvailable()&&v.push(this.terminals.ready),this._readyPromise=Promise.all(v).then((()=>{this._isReady=!0}))}get connectionFailure(){return this._connectionFailure}get isDisposed(){return this._isDisposed}dispose(){this.isDisposed||(this._isDisposed=!0,n.Signal.clearData(this),this.contents.dispose(),this.sessions.dispose(),this.terminals.dispose())}get isReady(){return this._isReady}get ready(){return this._readyPromise}_onConnectionFailure(e,t){this._connectionFailure.emit(t)}}},37017:(e,t,s)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NbConvertManager=void 0;const n=s(55941),i=s(59566);t.NbConvertManager=class{constructor(e={}){var t;this.serverSettings=null!==(t=e.serverSettings)&&void 0!==t?t:i.ServerConnection.makeSettings()}async getExportFormats(){const e=this.serverSettings.baseUrl,t=n.URLExt.join(e,"api/nbconvert"),{serverSettings:s}=this,r=await i.ServerConnection.makeRequest(t,{},s);if(200!==r.status)throw await i.ServerConnection.ResponseError.create(r);const o=await r.json(),a={};return Object.keys(o).forEach((function(e){const t=o[e].output_mimetype;a[e]={output_mimetype:t}})),a}}},59566:(e,t,s)=>{"use strict";var n,i,r,o=s(18533);Object.defineProperty(t,"__esModule",{value:!0}),t.ServerConnection=void 0;const a=s(55941);let c,l,h,d;if("undefined"==typeof window){const e=s(88741);c=null!==(n=s.g.fetch)&&void 0!==n?n:e,h=null!==(i=s.g.Request)&&void 0!==i?i:e.Request,l=null!==(r=s.g.Headers)&&void 0!==r?r:e.Headers,d=s(80396)}else c=fetch,h=Request,l=Headers,d=WebSocket;var u,_;!function(e){e.makeSettings=function(e){return _.makeSettings(e)},e.makeRequest=function(e,t,s){return _.handleRequest(e,t,s)};class t extends Error{constructor(e,t=`Invalid response: ${e.status} ${e.statusText}`,s=""){super(t),this.response=e,this.traceback=s}static async create(e){try{const s=await e.json();return s.traceback&&console.error(s.traceback),s.message?new t(e,s.message):new t(e)}catch(s){return console.debug(s),new t(e)}}}e.ResponseError=t;class s extends TypeError{constructor(e){super(e.message),this.stack=e.stack}}e.NetworkError=s}(u=t.ServerConnection||(t.ServerConnection={})),function(e){e.makeSettings=function(e={}){var t;const s=a.PageConfig.getBaseUrl(),n=a.PageConfig.getWsUrl(),i=a.URLExt.normalize(e.baseUrl)||s;let r=e.wsUrl;return r||i!==s||(r=n),r||0!==i.indexOf("http")||(r="ws"+i.slice(4)),r=null!=r?r:n,Object.assign(Object.assign({init:{cache:"no-store",credentials:"same-origin"},fetch:c,Headers:l,Request:h,WebSocket:d,token:a.PageConfig.getToken(),appUrl:a.PageConfig.getOption("appUrl"),appendToken:"undefined"==typeof window||void 0!==(null===(t=void 0===o?void 0:{})||void 0===t?void 0:t.JEST_WORKER_ID)||a.URLExt.getHostName(s)!==a.URLExt.getHostName(r)},e),{baseUrl:i,wsUrl:r})},e.handleRequest=function(e,t,s){var n;if(0!==e.indexOf(s.baseUrl))throw new Error("Can only be used for notebook server requests");"no-store"===(null!==(n=t.cache)&&void 0!==n?n:s.init.cache)&&(e+=(/\?/.test(e)?"&":"?")+(new Date).getTime());const i=new s.Request(e,Object.assign(Object.assign({},s.init),t));let r=!1;if(s.token&&(r=!0,i.headers.append("Authorization",`token ${s.token}`)),"undefined"!=typeof document&&(null===document||void 0===document?void 0:document.cookie)){const e=function(e){const t=document.cookie.match("\\b_xsrf=([^;]*)\\b");return null==t?void 0:t[1]}();void 0!==e&&(r=!0,i.headers.append("X-XSRFToken",e))}return!i.headers.has("Content-Type")&&r&&i.headers.set("Content-Type","application/json"),s.fetch.call(null,i).catch((e=>{throw new u.NetworkError(e)}))}}(_||(_={}))},12361:(e,t,s)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SessionConnection=void 0;const n=s(70942),i=s(76591),r=s(967),o=s(26169);t.SessionConnection=class{constructor(e){var t,s,r,a;this._id="",this._path="",this._name="",this._type="",this._kernel=null,this._isDisposed=!1,this._disposed=new n.Signal(this),this._kernelChanged=new n.Signal(this),this._statusChanged=new n.Signal(this),this._connectionStatusChanged=new n.Signal(this),this._pendingInput=new n.Signal(this),this._iopubMessage=new n.Signal(this),this._unhandledMessage=new n.Signal(this),this._anyMessage=new n.Signal(this),this._propertyChanged=new n.Signal(this),this._id=e.model.id,this._name=e.model.name,this._path=e.model.path,this._type=e.model.type,this._username=null!==(t=e.username)&&void 0!==t?t:"",this._clientId=null!==(s=e.clientId)&&void 0!==s?s:o.UUID.uuid4(),this._connectToKernel=e.connectToKernel,this._kernelConnectionOptions=null!==(r=e.kernelConnectionOptions)&&void 0!==r?r:{},this.serverSettings=null!==(a=e.serverSettings)&&void 0!==a?a:i.ServerConnection.makeSettings(),this.setupKernel(e.model.kernel)}get disposed(){return this._disposed}get kernelChanged(){return this._kernelChanged}get statusChanged(){return this._statusChanged}get connectionStatusChanged(){return this._connectionStatusChanged}get pendingInput(){return this._pendingInput}get iopubMessage(){return this._iopubMessage}get unhandledMessage(){return this._unhandledMessage}get anyMessage(){return this._anyMessage}get propertyChanged(){return this._propertyChanged}get id(){return this._id}get kernel(){return this._kernel}get path(){return this._path}get type(){return this._type}get name(){return this._name}get model(){return{id:this.id,kernel:this.kernel&&{id:this.kernel.id,name:this.kernel.name},path:this._path,type:this._type,name:this._name}}get isDisposed(){return this._isDisposed}update(e){const t=this.model;if(this._path=e.path,this._name=e.name,this._type=e.type,null===this._kernel&&null!==e.kernel||null!==this._kernel&&null===e.kernel||null!==this._kernel&&null!==e.kernel&&this._kernel.id!==e.kernel.id){null!==this._kernel&&this._kernel.dispose();const t=this._kernel||null;this.setupKernel(e.kernel);const s=this._kernel||null;this._kernelChanged.emit({name:"kernel",oldValue:t,newValue:s})}this._handleModelChange(t)}dispose(){if(!this.isDisposed){if(this._isDisposed=!0,this._disposed.emit(),this._kernel){this._kernel.dispose();const e=this._kernel;this._kernel=null;const t=this._kernel;this._kernelChanged.emit({name:"kernel",oldValue:e,newValue:t})}n.Signal.clearData(this)}}async setPath(e){if(this.isDisposed)throw new Error("Session is disposed");await this._patch({path:e})}async setName(e){if(this.isDisposed)throw new Error("Session is disposed");await this._patch({name:e})}async setType(e){if(this.isDisposed)throw new Error("Session is disposed");await this._patch({type:e})}async changeKernel(e){if(this.isDisposed)throw new Error("Session is disposed");return await this._patch({kernel:e}),this.kernel}async shutdown(){if(this.isDisposed)throw new Error("Session is disposed");await r.shutdownSession(this.id,this.serverSettings),this.dispose()}setupKernel(e){if(null===e)return void(this._kernel=null);const t=this._connectToKernel(Object.assign(Object.assign({},this._kernelConnectionOptions),{model:e,username:this._username,clientId:this._clientId,serverSettings:this.serverSettings}));this._kernel=t,t.statusChanged.connect(this.onKernelStatus,this),t.connectionStatusChanged.connect(this.onKernelConnectionStatus,this),t.pendingInput.connect(this.onPendingInput,this),t.unhandledMessage.connect(this.onUnhandledMessage,this),t.iopubMessage.connect(this.onIOPubMessage,this),t.anyMessage.connect(this.onAnyMessage,this)}onKernelStatus(e,t){this._statusChanged.emit(t)}onKernelConnectionStatus(e,t){this._connectionStatusChanged.emit(t)}onPendingInput(e,t){this._pendingInput.emit(t)}onIOPubMessage(e,t){this._iopubMessage.emit(t)}onUnhandledMessage(e,t){this._unhandledMessage.emit(t)}onAnyMessage(e,t){this._anyMessage.emit(t)}async _patch(e){const t=await r.updateSession(Object.assign(Object.assign({},e),{id:this._id}),this.serverSettings);return this.update(t),t}_handleModelChange(e){e.name!==this._name&&this._propertyChanged.emit("name"),e.type!==this._type&&this._propertyChanged.emit("type"),e.path!==this._path&&this._propertyChanged.emit("path")}}},38542:function(e,t,s){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,s,n){void 0===n&&(n=s),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[s]}})}:function(e,t,s,n){void 0===n&&(n=s),e[n]=t[s]}),i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),r=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var s in e)"default"!==s&&Object.prototype.hasOwnProperty.call(e,s)&&n(t,e,s);return i(t,e),t},o=this&&this.__exportStar||function(e,t){for(var s in e)"default"===s||Object.prototype.hasOwnProperty.call(t,s)||n(t,e,s)};Object.defineProperty(t,"__esModule",{value:!0}),t.SessionAPI=t.Session=void 0;const a=r(s(34061));t.Session=a;const c=r(s(967));t.SessionAPI=c,o(s(97953),t)},97953:(e,t,s)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SessionManager=void 0;const n=s(43892),i=s(61313),r=s(70942),o=s(59566),a=s(5179),c=s(12361),l=s(967);class h extends a.BaseManager{constructor(e){var t;super(e),this._isReady=!1,this._sessionConnections=new Set,this._models=new Map,this._runningChanged=new r.Signal(this),this._connectionFailure=new r.Signal(this),this._connectToKernel=e=>this._kernelManager.connectTo(e),this._kernelManager=e.kernelManager,this._pollModels=new i.Poll({auto:!1,factory:()=>this.requestRunning(),frequency:{interval:1e4,backoff:!0,max:3e5},name:"@jupyterlab/services:SessionManager#models",standby:null!==(t=e.standby)&&void 0!==t?t:"when-hidden"}),this._ready=(async()=>{await this._pollModels.start(),await this._pollModels.tick,await this._kernelManager.ready,this._isReady=!0})()}get isReady(){return this._isReady}get ready(){return this._ready}get runningChanged(){return this._runningChanged}get connectionFailure(){return this._connectionFailure}dispose(){this.isDisposed||(this._models.clear(),this._sessionConnections.forEach((e=>e.dispose())),this._pollModels.dispose(),super.dispose())}connectTo(e){const t=new c.SessionConnection(Object.assign(Object.assign({},e),{connectToKernel:this._connectToKernel,serverSettings:this.serverSettings}));return this._onStarted(t),this._models.has(e.model.id)||this.refreshRunning().catch((()=>{})),t}running(){return n.iter([...this._models.values()])}async refreshRunning(){await this._pollModels.refresh(),await this._pollModels.tick}async startNew(e,t={}){const s=await l.startSession(e,this.serverSettings);return await this.refreshRunning(),this.connectTo(Object.assign(Object.assign({},t),{model:s}))}async shutdown(e){await l.shutdownSession(e,this.serverSettings),await this.refreshRunning()}async shutdownAll(){await this.refreshRunning(),await Promise.all([...this._models.keys()].map((e=>l.shutdownSession(e,this.serverSettings)))),await this.refreshRunning()}async stopIfNeeded(e){try{const t=(await l.listRunning(this.serverSettings)).filter((t=>t.path===e));if(1===t.length){const e=t[0].id;await this.shutdown(e)}}catch(e){}}async findById(e){return this._models.has(e)||await this.refreshRunning(),this._models.get(e)}async findByPath(e){for(const t of this._models.values())if(t.path===e)return t;await this.refreshRunning();for(const t of this._models.values())if(t.path===e)return t}async requestRunning(){var e,t;let s;try{s=await l.listRunning(this.serverSettings)}catch(s){throw(s instanceof o.ServerConnection.NetworkError||503===(null===(e=s.response)||void 0===e?void 0:e.status)||424===(null===(t=s.response)||void 0===t?void 0:t.status))&&this._connectionFailure.emit(s),s}this.isDisposed||this._models.size===s.length&&n.every(s,(e=>{var t,s,n,i;const r=this._models.get(e.id);return!!r&&(null===(t=r.kernel)||void 0===t?void 0:t.id)===(null===(s=e.kernel)||void 0===s?void 0:s.id)&&(null===(n=r.kernel)||void 0===n?void 0:n.name)===(null===(i=e.kernel)||void 0===i?void 0:i.name)&&r.name===e.name&&r.path===e.path&&r.type===e.type}))||(this._models=new Map(s.map((e=>[e.id,e]))),this._sessionConnections.forEach((e=>{this._models.has(e.id)?e.update(this._models.get(e.id)):e.dispose()})),this._runningChanged.emit(s))}_onStarted(e){this._sessionConnections.add(e),e.disposed.connect(this._onDisposed,this),e.propertyChanged.connect(this._onChanged,this),e.kernelChanged.connect(this._onChanged,this)}_onDisposed(e){this._sessionConnections.delete(e),this.refreshRunning().catch((()=>{}))}_onChanged(){this.refreshRunning().catch((()=>{}))}}t.SessionManager=h},967:(e,t,s)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.updateSession=t.startSession=t.getSessionModel=t.shutdownSession=t.getSessionUrl=t.listRunning=t.SESSION_SERVICE_URL=void 0;const n=s(59566),i=s(55941),r=s(85833);function o(e,s){return i.URLExt.join(e,t.SESSION_SERVICE_URL,s)}t.SESSION_SERVICE_URL="api/sessions",t.listRunning=async function(e=n.ServerConnection.makeSettings()){const s=i.URLExt.join(e.baseUrl,t.SESSION_SERVICE_URL),o=await n.ServerConnection.makeRequest(s,{},e);if(200!==o.status)throw await n.ServerConnection.ResponseError.create(o);const a=await o.json();if(!Array.isArray(a))throw new Error("Invalid Session list");return a.forEach((e=>{r.updateLegacySessionModel(e),r.validateModel(e)})),a},t.getSessionUrl=o,t.shutdownSession=async function(e,t=n.ServerConnection.makeSettings()){var s;const i=o(t.baseUrl,e),r=await n.ServerConnection.makeRequest(i,{method:"DELETE"},t);if(404===r.status){const t=null!==(s=(await r.json()).message)&&void 0!==s?s:`The session "${e}"" does not exist on the server`;console.warn(t)}else{if(410===r.status)throw new n.ServerConnection.ResponseError(r,"The kernel was deleted but the session was not");if(204!==r.status)throw await n.ServerConnection.ResponseError.create(r)}},t.getSessionModel=async function(e,t=n.ServerConnection.makeSettings()){const s=o(t.baseUrl,e),i=await n.ServerConnection.makeRequest(s,{},t);if(200!==i.status)throw await n.ServerConnection.ResponseError.create(i);const a=await i.json();return r.updateLegacySessionModel(a),r.validateModel(a),a},t.startSession=async function(e,s=n.ServerConnection.makeSettings()){const o=i.URLExt.join(s.baseUrl,t.SESSION_SERVICE_URL),a={method:"POST",body:JSON.stringify(e)},c=await n.ServerConnection.makeRequest(o,a,s);if(201!==c.status)throw await n.ServerConnection.ResponseError.create(c);const l=await c.json();return r.updateLegacySessionModel(l),r.validateModel(l),l},t.updateSession=async function(e,t=n.ServerConnection.makeSettings()){const s=o(t.baseUrl,e.id),i={method:"PATCH",body:JSON.stringify(e)},a=await n.ServerConnection.makeRequest(s,i,t);if(200!==a.status)throw await n.ServerConnection.ResponseError.create(a);const c=await a.json();return r.updateLegacySessionModel(c),r.validateModel(c),c}},34061:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},85833:(e,t,s)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.validateModels=t.updateLegacySessionModel=t.validateModel=void 0;const n=s(76799),i=s(74284);function r(e){i.validateProperty(e,"id","string"),i.validateProperty(e,"type","string"),i.validateProperty(e,"name","string"),i.validateProperty(e,"path","string"),i.validateProperty(e,"kernel","object"),n.validateModel(e.kernel)}t.validateModel=r,t.updateLegacySessionModel=function(e){void 0===e.path&&void 0!==e.notebook&&(e.path=e.notebook.path,e.type="notebook",e.name="")},t.validateModels=function(e){if(!Array.isArray(e))throw new Error("Invalid session list");e.forEach((e=>r(e)))}},36090:(e,t,s)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SettingManager=void 0;const n=s(55941),i=s(63050),r=s(59566);class o extends i.DataConnector{constructor(e={}){var t;super(),this.serverSettings=null!==(t=e.serverSettings)&&void 0!==t?t:r.ServerConnection.makeSettings()}async fetch(e){if(!e)throw new Error("Plugin `id` parameter is required for settings fetch.");const{serverSettings:t}=this,{baseUrl:s,appUrl:n}=t,{makeRequest:i,ResponseError:o}=r.ServerConnection,c=s+n,l=a.url(c,e),h=await i(l,{},t);if(200!==h.status)throw await o.create(h);return h.json()}async list(){var e,t;const{serverSettings:s}=this,{baseUrl:n,appUrl:i}=s,{makeRequest:o,ResponseError:c}=r.ServerConnection,l=n+i,h=a.url(l,""),d=await o(h,{},s);if(200!==d.status)throw new c(d);const u=await d.json(),_=null!==(t=null===(e=null==u?void 0:u.settings)||void 0===e?void 0:e.map((e=>(e.data={composite:{},user:{}},e))))&&void 0!==t?t:[];return{ids:_.map((e=>e.id)),values:_}}async save(e,t){const{serverSettings:s}=this,{baseUrl:n,appUrl:i}=s,{makeRequest:o,ResponseError:c}=r.ServerConnection,l=n+i,h=a.url(l,e),d={body:JSON.stringify({raw:t}),method:"PUT"},u=await o(h,d,s);if(204!==u.status)throw new c(u)}}var a;t.SettingManager=o,function(e){e.url=function(e,t){return n.URLExt.join(e,"api/settings",t)}}(a||(a={}))},80396:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=WebSocket},17964:(e,t,s)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.TerminalConnection=void 0;const n=s(55941),i=s(26169),r=s(70942),o=s(76591),a=s(43396);class c{constructor(e){var t;this._createSocket=()=>{this._errorIfDisposed(),this._clearSocket(),this._updateConnectionStatus("connecting");const e=this._name,t=this.serverSettings;let s=n.URLExt.join(t.wsUrl,"terminals","websocket",encodeURIComponent(e));const i=t.token;t.appendToken&&""!==i&&(s+=`?token=${encodeURIComponent(i)}`),this._ws=new t.WebSocket(s),this._ws.onmessage=this._onWSMessage,this._ws.onclose=this._onWSClose,this._ws.onerror=this._onWSClose},this._onWSMessage=e=>{if(this._isDisposed)return;const t=JSON.parse(e.data);"disconnect"===t[0]&&this.dispose(),"connecting"!==this._connectionStatus?this._messageReceived.emit({type:t[0],content:t.slice(1)}):"setup"===t[0]&&this._updateConnectionStatus("connected")},this._onWSClose=e=>{console.warn(`Terminal websocket closed: ${e.code}`),this.isDisposed||this._reconnect()},this._connectionStatus="connecting",this._connectionStatusChanged=new r.Signal(this),this._isDisposed=!1,this._disposed=new r.Signal(this),this._messageReceived=new r.Signal(this),this._reconnectTimeout=null,this._ws=null,this._noOp=()=>{},this._reconnectLimit=7,this._reconnectAttempt=0,this._pendingMessages=[],this._name=e.model.name,this.serverSettings=null!==(t=e.serverSettings)&&void 0!==t?t:o.ServerConnection.makeSettings(),this._createSocket()}get disposed(){return this._disposed}get messageReceived(){return this._messageReceived}get name(){return this._name}get model(){return{name:this._name}}get isDisposed(){return this._isDisposed}dispose(){this._isDisposed||(this._isDisposed=!0,this._disposed.emit(),this._updateConnectionStatus("disconnected"),this._clearSocket(),r.Signal.clearData(this))}send(e){this._sendMessage(e)}_sendMessage(e,t=!0){if(!this._isDisposed&&e.content)if("connected"===this.connectionStatus&&this._ws){const t=[e.type,...e.content];this._ws.send(JSON.stringify(t))}else{if(!t)throw new Error(`Could not send message: ${JSON.stringify(e)}`);this._pendingMessages.push(e)}}_sendPending(){for(;"connected"===this.connectionStatus&&this._pendingMessages.length>0;)this._sendMessage(this._pendingMessages[0],!1),this._pendingMessages.shift()}reconnect(){this._errorIfDisposed();const e=new i.PromiseDelegate,t=(s,n)=>{"connected"===n?(e.resolve(),this.connectionStatusChanged.disconnect(t,this)):"disconnected"===n&&(e.reject(new Error("Terminal connection disconnected")),this.connectionStatusChanged.disconnect(t,this))};return this.connectionStatusChanged.connect(t,this),this._reconnectAttempt=0,this._reconnect(),e.promise}_reconnect(){if(this._errorIfDisposed(),clearTimeout(this._reconnectTimeout),this._reconnectAttempt{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.TerminalManager=void 0;const n=s(43892),i=s(61313),r=s(70942),o=s(76591),a=s(5179),c=s(43396),l=s(17964);class h extends a.BaseManager{constructor(e={}){var t;if(super(e),this._isReady=!1,this._names=[],this._terminalConnections=new Set,this._runningChanged=new r.Signal(this),this._connectionFailure=new r.Signal(this),!this.isAvailable())return this._ready=Promise.reject("Terminals unavailable"),void this._ready.catch((e=>{}));this._pollModels=new i.Poll({auto:!1,factory:()=>this.requestRunning(),frequency:{interval:1e4,backoff:!0,max:3e5},name:"@jupyterlab/services:TerminalManager#models",standby:null!==(t=e.standby)&&void 0!==t?t:"when-hidden"}),this._ready=(async()=>{await this._pollModels.start(),await this._pollModels.tick,this._isReady=!0})()}get isReady(){return this._isReady}get ready(){return this._ready}get runningChanged(){return this._runningChanged}get connectionFailure(){return this._connectionFailure}dispose(){this.isDisposed||(this._names.length=0,this._terminalConnections.forEach((e=>e.dispose())),this._pollModels.dispose(),super.dispose())}isAvailable(){return c.isAvailable()}connectTo(e){const t=new l.TerminalConnection(Object.assign(Object.assign({},e),{serverSettings:this.serverSettings}));return this._onStarted(t),this._names.includes(e.model.name)||this.refreshRunning().catch((()=>{})),t}running(){return n.iter(this._models)}async refreshRunning(){await this._pollModels.refresh(),await this._pollModels.tick}async startNew(e){const t=await c.startNew(this.serverSettings,null==e?void 0:e.name,null==e?void 0:e.cwd);return await this.refreshRunning(),this.connectTo({model:t})}async shutdown(e){await c.shutdownTerminal(e,this.serverSettings),await this.refreshRunning()}async shutdownAll(){await this.refreshRunning(),await Promise.all(this._names.map((e=>c.shutdownTerminal(e,this.serverSettings)))),await this.refreshRunning()}async requestRunning(){var e,t;let s;try{s=await c.listRunning(this.serverSettings)}catch(s){throw(s instanceof o.ServerConnection.NetworkError||503===(null===(e=s.response)||void 0===e?void 0:e.status)||424===(null===(t=s.response)||void 0===t?void 0:t.status))&&this._connectionFailure.emit(s),s}if(this.isDisposed)return;const n=s.map((({name:e})=>e)).sort();n!==this._names&&(this._names=n,this._terminalConnections.forEach((e=>{n.includes(e.name)||e.dispose()})),this._runningChanged.emit(this._models))}_onStarted(e){this._terminalConnections.add(e),e.disposed.connect(this._onDisposed,this)}_onDisposed(e){this._terminalConnections.delete(e),this.refreshRunning().catch((()=>{}))}get _models(){return this._names.map((e=>({name:e})))}}t.TerminalManager=h},43396:(e,t,s)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.shutdownTerminal=t.listRunning=t.startNew=t.isAvailable=t.TERMINAL_SERVICE_URL=void 0;const n=s(55941),i=s(59566);function r(){return"true"===String(n.PageConfig.getOption("terminalsAvailable")).toLowerCase()}var o;t.TERMINAL_SERVICE_URL="api/terminals",t.isAvailable=r,t.startNew=async function(e=i.ServerConnection.makeSettings(),s,r){o.errorIfNotAvailable();const a=n.URLExt.join(e.baseUrl,t.TERMINAL_SERVICE_URL),c={method:"POST",body:JSON.stringify({name:s,cwd:r})},l=await i.ServerConnection.makeRequest(a,c,e);if(200!==l.status)throw await i.ServerConnection.ResponseError.create(l);return await l.json()},t.listRunning=async function(e=i.ServerConnection.makeSettings()){o.errorIfNotAvailable();const s=n.URLExt.join(e.baseUrl,t.TERMINAL_SERVICE_URL),r=await i.ServerConnection.makeRequest(s,{},e);if(200!==r.status)throw await i.ServerConnection.ResponseError.create(r);const a=await r.json();if(!Array.isArray(a))throw new Error("Invalid terminal list");return a},t.shutdownTerminal=async function(e,s=i.ServerConnection.makeSettings()){var r;o.errorIfNotAvailable();const a=n.URLExt.join(s.baseUrl,t.TERMINAL_SERVICE_URL,e),c=await i.ServerConnection.makeRequest(a,{method:"DELETE"},s);if(404===c.status){const t=null!==(r=(await c.json()).message)&&void 0!==r?r:`The terminal session "${e}"" does not exist on the server`;console.warn(t)}else if(204!==c.status)throw await i.ServerConnection.ResponseError.create(c)},function(e){e.errorIfNotAvailable=function(){if(!r())throw new Error("Terminals Unavailable")}}(o||(o={}))},83522:(e,t,s)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isAvailable=void 0;const n=s(43396);Object.defineProperty(t,"isAvailable",{enumerable:!0,get:function(){return n.isAvailable}})},74284:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.validateProperty=void 0,t.validateProperty=function(e,t,s,n=[]){if(!e.hasOwnProperty(t))throw Error(`Missing property '${t}'`);const i=e[t];if(void 0!==s){let e=!0;switch(s){case"array":e=Array.isArray(i);break;case"object":e=void 0!==i;break;default:e=typeof i===s}if(!e)throw new Error(`Property '${t}' is not of type '${s}'`);if(n.length>0){let e=!0;switch(s){case"string":case"number":case"boolean":e=n.includes(i);break;default:e=n.findIndex((e=>e===i))>=0}if(!e)throw new Error(`Property '${t}' is not one of the valid values ${JSON.stringify(n)}`)}}}},3713:(e,t,s)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.WorkspaceManager=void 0;const n=s(55941),i=s(63050),r=s(59566);class o extends i.DataConnector{constructor(e={}){var t;super(),this.serverSettings=null!==(t=e.serverSettings)&&void 0!==t?t:r.ServerConnection.makeSettings()}async fetch(e){const{serverSettings:t}=this,{baseUrl:s,appUrl:n}=t,{makeRequest:i,ResponseError:o}=r.ServerConnection,c=s+n,l=a.url(c,e),h=await i(l,{},t);if(200!==h.status)throw await o.create(h);return h.json()}async list(){const{serverSettings:e}=this,{baseUrl:t,appUrl:s}=e,{makeRequest:n,ResponseError:i}=r.ServerConnection,o=t+s,c=a.url(o,""),l=await n(c,{},e);if(200!==l.status)throw await i.create(l);return(await l.json()).workspaces}async remove(e){const{serverSettings:t}=this,{baseUrl:s,appUrl:n}=t,{makeRequest:i,ResponseError:o}=r.ServerConnection,c=s+n,l=a.url(c,e),h=await i(l,{method:"DELETE"},t);if(204!==h.status)throw await o.create(h)}async save(e,t){const{serverSettings:s}=this,{baseUrl:n,appUrl:i}=s,{makeRequest:o,ResponseError:c}=r.ServerConnection,l=n+i,h=a.url(l,e),d={body:JSON.stringify(t),method:"PUT"},u=await o(h,d,s);if(204!==u.status)throw await c.create(u)}}var a;t.WorkspaceManager=o,function(e){e.url=function(e,t){return n.URLExt.join(e,"api/workspaces",t)}}(a||(a={}))},18533:e=>{var t,s,n=e.exports={};function i(){throw new Error("setTimeout has not been defined")}function r(){throw new Error("clearTimeout has not been defined")}function o(e){if(t===setTimeout)return setTimeout(e,0);if((t===i||!t)&&setTimeout)return t=setTimeout,setTimeout(e,0);try{return t(e,0)}catch(s){try{return t.call(null,e,0)}catch(s){return t.call(this,e,0)}}}!function(){try{t="function"==typeof setTimeout?setTimeout:i}catch(e){t=i}try{s="function"==typeof clearTimeout?clearTimeout:r}catch(e){s=r}}();var a,c=[],l=!1,h=-1;function d(){l&&a&&(l=!1,a.length?c=a.concat(c):h=-1,c.length&&u())}function u(){if(!l){var e=o(d);l=!0;for(var t=c.length;t;){for(a=c,c=[];++h1)for(var s=1;s 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n"],"names":["cachedSetTimeout","cachedClearTimeout","process","module","exports","defaultSetTimout","Error","defaultClearTimeout","runTimeout","fun","setTimeout","e","call","this","clearTimeout","currentQueue","queue","draining","queueIndex","cleanUpNextTick","length","concat","drainQueue","timeout","len","run","marker","runClearTimeout","Item","array","noop","nextTick","args","Array","arguments","i","push","prototype","apply","title","browser","env","argv","version","versions","on","addListener","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","name","binding","cwd","chdir","dir","umask"],"sourceRoot":""} \ No newline at end of file diff --git a/_static/build/6612.1632879.js b/_static/build/6612.1632879.js new file mode 100644 index 0000000..cfd9321 --- /dev/null +++ b/_static/build/6612.1632879.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[6612],{11452:(e,c,n)=>{n.d(c,{Z:()=>a});var o=n(34663),r=n.n(o),s=n(7638),t=n.n(s)()(r());t.push([e.id,".cm-s-eclipse span.cm-meta { color: #FF1717; }\n.cm-s-eclipse span.cm-keyword { line-height: 1em; font-weight: bold; color: #7F0055; }\n.cm-s-eclipse span.cm-atom { color: #219; }\n.cm-s-eclipse span.cm-number { color: #164; }\n.cm-s-eclipse span.cm-def { color: #00f; }\n.cm-s-eclipse span.cm-variable { color: black; }\n.cm-s-eclipse span.cm-variable-2 { color: #0000C0; }\n.cm-s-eclipse span.cm-variable-3, .cm-s-eclipse span.cm-type { color: #0000C0; }\n.cm-s-eclipse span.cm-property { color: black; }\n.cm-s-eclipse span.cm-operator { color: black; }\n.cm-s-eclipse span.cm-comment { color: #3F7F5F; }\n.cm-s-eclipse span.cm-string { color: #2A00FF; }\n.cm-s-eclipse span.cm-string-2 { color: #f50; }\n.cm-s-eclipse span.cm-qualifier { color: #555; }\n.cm-s-eclipse span.cm-builtin { color: #30a; }\n.cm-s-eclipse span.cm-bracket { color: #cc7; }\n.cm-s-eclipse span.cm-tag { color: #170; }\n.cm-s-eclipse span.cm-attribute { color: #00c; }\n.cm-s-eclipse span.cm-link { color: #219; }\n.cm-s-eclipse span.cm-error { color: #f00; }\n\n.cm-s-eclipse .CodeMirror-activeline-background { background: #e8f2ff; }\n.cm-s-eclipse .CodeMirror-matchingbracket { outline:1px solid grey; color:black !important; }\n","",{version:3,sources:["webpack://./../node_modules/codemirror/theme/eclipse.css"],names:[],mappings:"AAAA,6BAA6B,cAAc,EAAE;AAC7C,gCAAgC,gBAAgB,EAAE,iBAAiB,EAAE,cAAc,EAAE;AACrF,6BAA6B,WAAW,EAAE;AAC1C,+BAA+B,WAAW,EAAE;AAC5C,4BAA4B,WAAW,EAAE;AACzC,iCAAiC,YAAY,EAAE;AAC/C,mCAAmC,cAAc,EAAE;AACnD,+DAA+D,cAAc,EAAE;AAC/E,iCAAiC,YAAY,EAAE;AAC/C,iCAAiC,YAAY,EAAE;AAC/C,gCAAgC,cAAc,EAAE;AAChD,+BAA+B,cAAc,EAAE;AAC/C,iCAAiC,WAAW,EAAE;AAC9C,kCAAkC,WAAW,EAAE;AAC/C,gCAAgC,WAAW,EAAE;AAC7C,gCAAgC,WAAW,EAAE;AAC7C,4BAA4B,WAAW,EAAE;AACzC,kCAAkC,WAAW,EAAE;AAC/C,6BAA6B,WAAW,EAAE;AAC1C,8BAA8B,WAAW,EAAE;;AAE3C,kDAAkD,mBAAmB,EAAE;AACvE,4CAA4C,sBAAsB,EAAE,sBAAsB,EAAE",sourcesContent:[".cm-s-eclipse span.cm-meta { color: #FF1717; }\n.cm-s-eclipse span.cm-keyword { line-height: 1em; font-weight: bold; color: #7F0055; }\n.cm-s-eclipse span.cm-atom { color: #219; }\n.cm-s-eclipse span.cm-number { color: #164; }\n.cm-s-eclipse span.cm-def { color: #00f; }\n.cm-s-eclipse span.cm-variable { color: black; }\n.cm-s-eclipse span.cm-variable-2 { color: #0000C0; }\n.cm-s-eclipse span.cm-variable-3, .cm-s-eclipse span.cm-type { color: #0000C0; }\n.cm-s-eclipse span.cm-property { color: black; }\n.cm-s-eclipse span.cm-operator { color: black; }\n.cm-s-eclipse span.cm-comment { color: #3F7F5F; }\n.cm-s-eclipse span.cm-string { color: #2A00FF; }\n.cm-s-eclipse span.cm-string-2 { color: #f50; }\n.cm-s-eclipse span.cm-qualifier { color: #555; }\n.cm-s-eclipse span.cm-builtin { color: #30a; }\n.cm-s-eclipse span.cm-bracket { color: #cc7; }\n.cm-s-eclipse span.cm-tag { color: #170; }\n.cm-s-eclipse span.cm-attribute { color: #00c; }\n.cm-s-eclipse span.cm-link { color: #219; }\n.cm-s-eclipse span.cm-error { color: #f00; }\n\n.cm-s-eclipse .CodeMirror-activeline-background { background: #e8f2ff; }\n.cm-s-eclipse .CodeMirror-matchingbracket { outline:1px solid grey; color:black !important; }\n"],sourceRoot:""}]);const a=t},7638:e=>{e.exports=function(e){var c=[];return c.toString=function(){return this.map((function(c){var n="",o=void 0!==c[5];return c[4]&&(n+="@supports (".concat(c[4],") {")),c[2]&&(n+="@media ".concat(c[2]," {")),o&&(n+="@layer".concat(c[5].length>0?" ".concat(c[5]):""," {")),n+=e(c),o&&(n+="}"),c[2]&&(n+="}"),c[4]&&(n+="}"),n})).join("")},c.i=function(e,n,o,r,s){"string"==typeof e&&(e=[[null,e,void 0]]);var t={};if(o)for(var a=0;a0?" ".concat(l[5]):""," {").concat(l[1],"}")),l[5]=s),n&&(l[2]?(l[1]="@media ".concat(l[2]," {").concat(l[1],"}"),l[2]=n):l[2]=n),r&&(l[4]?(l[1]="@supports (".concat(l[4],") {").concat(l[1],"}"),l[4]=r):l[4]="".concat(r)),c.push(l))}},c}},34663:e=>{e.exports=function(e){var c=e[1],n=e[3];if(!n)return c;if("function"==typeof btoa){var o=btoa(unescape(encodeURIComponent(JSON.stringify(n)))),r="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(o),s="/*# ".concat(r," */"),t=n.sources.map((function(e){return"/*# sourceURL=".concat(n.sourceRoot||"").concat(e," */")}));return[c].concat(t).concat([s]).join("\n")}return[c].join("\n")}},16612:(e,c,n)=>{n.r(c),n.d(c,{default:()=>E});var o=n(1892),r=n.n(o),s=n(95760),t=n.n(s),a=n(38311),i=n.n(a),A=n(58192),l=n.n(A),p=n(38060),m=n.n(p),u=n(54865),f=n.n(u),C=n(11452),d={};d.styleTagTransform=f(),d.setAttributes=l(),d.insert=i().bind(null,"head"),d.domAPI=t(),d.insertStyleElement=m(),r()(C.Z,d);const E=C.Z&&C.Z.locals?C.Z.locals:void 0},1892:e=>{var c=[];function n(e){for(var n=-1,o=0;o{var c={};e.exports=function(e,n){var o=function(e){if(void 0===c[e]){var n=document.querySelector(e);if(window.HTMLIFrameElement&&n instanceof window.HTMLIFrameElement)try{n=n.contentDocument.head}catch(e){n=null}c[e]=n}return c[e]}(e);if(!o)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");o.appendChild(n)}},38060:e=>{e.exports=function(e){var c=document.createElement("style");return e.setAttributes(c,e.attributes),e.insert(c,e.options),c}},58192:(e,c,n)=>{e.exports=function(e){var c=n.nc;c&&e.setAttribute("nonce",c)}},95760:e=>{e.exports=function(e){var c=e.insertStyleElement(e);return{update:function(n){!function(e,c,n){var o="";n.supports&&(o+="@supports (".concat(n.supports,") {")),n.media&&(o+="@media ".concat(n.media," {"));var r=void 0!==n.layer;r&&(o+="@layer".concat(n.layer.length>0?" ".concat(n.layer):""," {")),o+=n.css,r&&(o+="}"),n.media&&(o+="}"),n.supports&&(o+="}");var s=n.sourceMap;s&&"undefined"!=typeof btoa&&(o+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(s))))," */")),c.styleTagTransform(o,e,c.options)}(c,e,n)},remove:function(){!function(e){if(null===e.parentNode)return!1;e.parentNode.removeChild(e)}(c)}}}},54865:e=>{e.exports=function(e,c){if(c.styleSheet)c.styleSheet.cssText=e;else{for(;c.firstChild;)c.removeChild(c.firstChild);c.appendChild(document.createTextNode(e))}}}}]); +//# sourceMappingURL=6612.1632879.js.map \ No newline at end of file diff --git a/_static/build/6612.1632879.js.map b/_static/build/6612.1632879.js.map new file mode 100644 index 0000000..b0c986f --- /dev/null +++ b/_static/build/6612.1632879.js.map @@ -0,0 +1 @@ +{"version":3,"file":"6612.1632879.js","mappings":"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","sources":["webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/theme/eclipse.css","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/css-loader/dist/runtime/api.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/css-loader/dist/runtime/sourceMaps.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/theme/eclipse.css?d8f2","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/insertBySelector.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/insertStyleElement.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/styleDomAPI.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/styleTagTransform.js"],"sourcesContent":["// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".cm-s-eclipse span.cm-meta { color: #FF1717; }\\n.cm-s-eclipse span.cm-keyword { line-height: 1em; font-weight: bold; color: #7F0055; }\\n.cm-s-eclipse span.cm-atom { color: #219; }\\n.cm-s-eclipse span.cm-number { color: #164; }\\n.cm-s-eclipse span.cm-def { color: #00f; }\\n.cm-s-eclipse span.cm-variable { color: black; }\\n.cm-s-eclipse span.cm-variable-2 { color: #0000C0; }\\n.cm-s-eclipse span.cm-variable-3, .cm-s-eclipse span.cm-type { color: #0000C0; }\\n.cm-s-eclipse span.cm-property { color: black; }\\n.cm-s-eclipse span.cm-operator { color: black; }\\n.cm-s-eclipse span.cm-comment { color: #3F7F5F; }\\n.cm-s-eclipse span.cm-string { color: #2A00FF; }\\n.cm-s-eclipse span.cm-string-2 { color: #f50; }\\n.cm-s-eclipse span.cm-qualifier { color: #555; }\\n.cm-s-eclipse span.cm-builtin { color: #30a; }\\n.cm-s-eclipse span.cm-bracket { color: #cc7; }\\n.cm-s-eclipse span.cm-tag { color: #170; }\\n.cm-s-eclipse span.cm-attribute { color: #00c; }\\n.cm-s-eclipse span.cm-link { color: #219; }\\n.cm-s-eclipse span.cm-error { color: #f00; }\\n\\n.cm-s-eclipse .CodeMirror-activeline-background { background: #e8f2ff; }\\n.cm-s-eclipse .CodeMirror-matchingbracket { outline:1px solid grey; color:black !important; }\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./../node_modules/codemirror/theme/eclipse.css\"],\"names\":[],\"mappings\":\"AAAA,6BAA6B,cAAc,EAAE;AAC7C,gCAAgC,gBAAgB,EAAE,iBAAiB,EAAE,cAAc,EAAE;AACrF,6BAA6B,WAAW,EAAE;AAC1C,+BAA+B,WAAW,EAAE;AAC5C,4BAA4B,WAAW,EAAE;AACzC,iCAAiC,YAAY,EAAE;AAC/C,mCAAmC,cAAc,EAAE;AACnD,+DAA+D,cAAc,EAAE;AAC/E,iCAAiC,YAAY,EAAE;AAC/C,iCAAiC,YAAY,EAAE;AAC/C,gCAAgC,cAAc,EAAE;AAChD,+BAA+B,cAAc,EAAE;AAC/C,iCAAiC,WAAW,EAAE;AAC9C,kCAAkC,WAAW,EAAE;AAC/C,gCAAgC,WAAW,EAAE;AAC7C,gCAAgC,WAAW,EAAE;AAC7C,4BAA4B,WAAW,EAAE;AACzC,kCAAkC,WAAW,EAAE;AAC/C,6BAA6B,WAAW,EAAE;AAC1C,8BAA8B,WAAW,EAAE;;AAE3C,kDAAkD,mBAAmB,EAAE;AACvE,4CAA4C,sBAAsB,EAAE,sBAAsB,EAAE\",\"sourcesContent\":[\".cm-s-eclipse span.cm-meta { color: #FF1717; }\\n.cm-s-eclipse span.cm-keyword { line-height: 1em; font-weight: bold; color: #7F0055; }\\n.cm-s-eclipse span.cm-atom { color: #219; }\\n.cm-s-eclipse span.cm-number { color: #164; }\\n.cm-s-eclipse span.cm-def { color: #00f; }\\n.cm-s-eclipse span.cm-variable { color: black; }\\n.cm-s-eclipse span.cm-variable-2 { color: #0000C0; }\\n.cm-s-eclipse span.cm-variable-3, .cm-s-eclipse span.cm-type { color: #0000C0; }\\n.cm-s-eclipse span.cm-property { color: black; }\\n.cm-s-eclipse span.cm-operator { color: black; }\\n.cm-s-eclipse span.cm-comment { color: #3F7F5F; }\\n.cm-s-eclipse span.cm-string { color: #2A00FF; }\\n.cm-s-eclipse span.cm-string-2 { color: #f50; }\\n.cm-s-eclipse span.cm-qualifier { color: #555; }\\n.cm-s-eclipse span.cm-builtin { color: #30a; }\\n.cm-s-eclipse span.cm-bracket { color: #cc7; }\\n.cm-s-eclipse span.cm-tag { color: #170; }\\n.cm-s-eclipse span.cm-attribute { color: #00c; }\\n.cm-s-eclipse span.cm-link { color: #219; }\\n.cm-s-eclipse span.cm-error { color: #f00; }\\n\\n.cm-s-eclipse .CodeMirror-activeline-background { background: #e8f2ff; }\\n.cm-s-eclipse .CodeMirror-matchingbracket { outline:1px solid grey; color:black !important; }\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\nmodule.exports = function (cssWithMappingToString) {\n var list = [];\n\n // return the list of modules as css string\n list.toString = function toString() {\n return this.map(function (item) {\n var content = \"\";\n var needLayer = typeof item[5] !== \"undefined\";\n if (item[4]) {\n content += \"@supports (\".concat(item[4], \") {\");\n }\n if (item[2]) {\n content += \"@media \".concat(item[2], \" {\");\n }\n if (needLayer) {\n content += \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\");\n }\n content += cssWithMappingToString(item);\n if (needLayer) {\n content += \"}\";\n }\n if (item[2]) {\n content += \"}\";\n }\n if (item[4]) {\n content += \"}\";\n }\n return content;\n }).join(\"\");\n };\n\n // import a list of modules into the list\n list.i = function i(modules, media, dedupe, supports, layer) {\n if (typeof modules === \"string\") {\n modules = [[null, modules, undefined]];\n }\n var alreadyImportedModules = {};\n if (dedupe) {\n for (var k = 0; k < this.length; k++) {\n var id = this[k][0];\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n for (var _k = 0; _k < modules.length; _k++) {\n var item = [].concat(modules[_k]);\n if (dedupe && alreadyImportedModules[item[0]]) {\n continue;\n }\n if (typeof layer !== \"undefined\") {\n if (typeof item[5] === \"undefined\") {\n item[5] = layer;\n } else {\n item[1] = \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\").concat(item[1], \"}\");\n item[5] = layer;\n }\n }\n if (media) {\n if (!item[2]) {\n item[2] = media;\n } else {\n item[1] = \"@media \".concat(item[2], \" {\").concat(item[1], \"}\");\n item[2] = media;\n }\n }\n if (supports) {\n if (!item[4]) {\n item[4] = \"\".concat(supports);\n } else {\n item[1] = \"@supports (\".concat(item[4], \") {\").concat(item[1], \"}\");\n item[4] = supports;\n }\n }\n list.push(item);\n }\n };\n return list;\n};","\"use strict\";\n\nmodule.exports = function (item) {\n var content = item[1];\n var cssMapping = item[3];\n if (!cssMapping) {\n return content;\n }\n if (typeof btoa === \"function\") {\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(cssMapping))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n var sourceMapping = \"/*# \".concat(data, \" */\");\n var sourceURLs = cssMapping.sources.map(function (source) {\n return \"/*# sourceURL=\".concat(cssMapping.sourceRoot || \"\").concat(source, \" */\");\n });\n return [content].concat(sourceURLs).concat([sourceMapping]).join(\"\\n\");\n }\n return [content].join(\"\\n\");\n};","\n import API from \"!../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../css-loader/dist/cjs.js!./eclipse.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../css-loader/dist/cjs.js!./eclipse.css\";\n export default content && content.locals ? content.locals : undefined;\n","\"use strict\";\n\nvar stylesInDOM = [];\n\nfunction getIndexByIdentifier(identifier) {\n var result = -1;\n\n for (var i = 0; i < stylesInDOM.length; i++) {\n if (stylesInDOM[i].identifier === identifier) {\n result = i;\n break;\n }\n }\n\n return result;\n}\n\nfunction modulesToDom(list, options) {\n var idCountMap = {};\n var identifiers = [];\n\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var count = idCountMap[id] || 0;\n var identifier = \"\".concat(id, \" \").concat(count);\n idCountMap[id] = count + 1;\n var indexByIdentifier = getIndexByIdentifier(identifier);\n var obj = {\n css: item[1],\n media: item[2],\n sourceMap: item[3],\n supports: item[4],\n layer: item[5]\n };\n\n if (indexByIdentifier !== -1) {\n stylesInDOM[indexByIdentifier].references++;\n stylesInDOM[indexByIdentifier].updater(obj);\n } else {\n var updater = addElementStyle(obj, options);\n options.byIndex = i;\n stylesInDOM.splice(i, 0, {\n identifier: identifier,\n updater: updater,\n references: 1\n });\n }\n\n identifiers.push(identifier);\n }\n\n return identifiers;\n}\n\nfunction addElementStyle(obj, options) {\n var api = options.domAPI(options);\n api.update(obj);\n\n var updater = function updater(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap && newObj.supports === obj.supports && newObj.layer === obj.layer) {\n return;\n }\n\n api.update(obj = newObj);\n } else {\n api.remove();\n }\n };\n\n return updater;\n}\n\nmodule.exports = function (list, options) {\n options = options || {};\n list = list || [];\n var lastIdentifiers = modulesToDom(list, options);\n return function update(newList) {\n newList = newList || [];\n\n for (var i = 0; i < lastIdentifiers.length; i++) {\n var identifier = lastIdentifiers[i];\n var index = getIndexByIdentifier(identifier);\n stylesInDOM[index].references--;\n }\n\n var newLastIdentifiers = modulesToDom(newList, options);\n\n for (var _i = 0; _i < lastIdentifiers.length; _i++) {\n var _identifier = lastIdentifiers[_i];\n\n var _index = getIndexByIdentifier(_identifier);\n\n if (stylesInDOM[_index].references === 0) {\n stylesInDOM[_index].updater();\n\n stylesInDOM.splice(_index, 1);\n }\n }\n\n lastIdentifiers = newLastIdentifiers;\n };\n};","\"use strict\";\n\nvar memo = {};\n/* istanbul ignore next */\n\nfunction getTarget(target) {\n if (typeof memo[target] === \"undefined\") {\n var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself\n\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n\n memo[target] = styleTarget;\n }\n\n return memo[target];\n}\n/* istanbul ignore next */\n\n\nfunction insertBySelector(insert, style) {\n var target = getTarget(insert);\n\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n\n target.appendChild(style);\n}\n\nmodule.exports = insertBySelector;","\"use strict\";\n\n/* istanbul ignore next */\nfunction insertStyleElement(options) {\n var element = document.createElement(\"style\");\n options.setAttributes(element, options.attributes);\n options.insert(element, options.options);\n return element;\n}\n\nmodule.exports = insertStyleElement;","\"use strict\";\n\n/* istanbul ignore next */\nfunction setAttributesWithoutAttributes(styleElement) {\n var nonce = typeof __webpack_nonce__ !== \"undefined\" ? __webpack_nonce__ : null;\n\n if (nonce) {\n styleElement.setAttribute(\"nonce\", nonce);\n }\n}\n\nmodule.exports = setAttributesWithoutAttributes;","\"use strict\";\n\n/* istanbul ignore next */\nfunction apply(styleElement, options, obj) {\n var css = \"\";\n\n if (obj.supports) {\n css += \"@supports (\".concat(obj.supports, \") {\");\n }\n\n if (obj.media) {\n css += \"@media \".concat(obj.media, \" {\");\n }\n\n var needLayer = typeof obj.layer !== \"undefined\";\n\n if (needLayer) {\n css += \"@layer\".concat(obj.layer.length > 0 ? \" \".concat(obj.layer) : \"\", \" {\");\n }\n\n css += obj.css;\n\n if (needLayer) {\n css += \"}\";\n }\n\n if (obj.media) {\n css += \"}\";\n }\n\n if (obj.supports) {\n css += \"}\";\n }\n\n var sourceMap = obj.sourceMap;\n\n if (sourceMap && typeof btoa !== \"undefined\") {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n } // For old IE\n\n /* istanbul ignore if */\n\n\n options.styleTagTransform(css, styleElement, options.options);\n}\n\nfunction removeStyleElement(styleElement) {\n // istanbul ignore if\n if (styleElement.parentNode === null) {\n return false;\n }\n\n styleElement.parentNode.removeChild(styleElement);\n}\n/* istanbul ignore next */\n\n\nfunction domAPI(options) {\n var styleElement = options.insertStyleElement(options);\n return {\n update: function update(obj) {\n apply(styleElement, options, obj);\n },\n remove: function remove() {\n removeStyleElement(styleElement);\n }\n };\n}\n\nmodule.exports = domAPI;","\"use strict\";\n\n/* istanbul ignore next */\nfunction styleTagTransform(css, styleElement) {\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = css;\n } else {\n while (styleElement.firstChild) {\n styleElement.removeChild(styleElement.firstChild);\n }\n\n styleElement.appendChild(document.createTextNode(css));\n }\n}\n\nmodule.exports = styleTagTransform;"],"names":["___CSS_LOADER_EXPORT___","push","module","id","exports","cssWithMappingToString","list","toString","this","map","item","content","needLayer","concat","length","join","i","modules","media","dedupe","supports","layer","undefined","alreadyImportedModules","k","_k","cssMapping","btoa","base64","unescape","encodeURIComponent","JSON","stringify","data","sourceMapping","sourceURLs","sources","source","sourceRoot","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","stylesInDOM","getIndexByIdentifier","identifier","result","modulesToDom","idCountMap","identifiers","base","count","indexByIdentifier","obj","css","sourceMap","references","updater","addElementStyle","byIndex","splice","api","update","newObj","remove","lastIdentifiers","newList","index","newLastIdentifiers","_i","_index","memo","style","target","styleTarget","document","querySelector","window","HTMLIFrameElement","contentDocument","head","e","getTarget","Error","appendChild","element","createElement","attributes","styleElement","nonce","setAttribute","apply","parentNode","removeChild","removeStyleElement","styleSheet","cssText","firstChild","createTextNode"],"sourceRoot":""} \ No newline at end of file diff --git a/_static/build/6623.ae3b3cc.js b/_static/build/6623.ae3b3cc.js new file mode 100644 index 0000000..fba1df8 --- /dev/null +++ b/_static/build/6623.ae3b3cc.js @@ -0,0 +1,3 @@ +/*! For license information please see 6623.ae3b3cc.js.LICENSE.txt */ +(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[6623],{11771:e=>{e.exports={0:65533,128:8364,130:8218,131:402,132:8222,133:8230,134:8224,135:8225,136:710,137:8240,138:352,139:8249,140:338,142:381,145:8216,146:8217,147:8220,148:8221,149:8226,150:8211,151:8212,152:732,153:8482,154:353,155:8250,156:339,158:382,159:376}},98253:e=>{e.exports={Aacute:"Á",aacute:"á",Abreve:"Ă",abreve:"ă",ac:"∾",acd:"∿",acE:"∾̳",Acirc:"Â",acirc:"â",acute:"´",Acy:"А",acy:"а",AElig:"Æ",aelig:"æ",af:"⁡",Afr:"𝔄",afr:"𝔞",Agrave:"À",agrave:"à",alefsym:"ℵ",aleph:"ℵ",Alpha:"Α",alpha:"α",Amacr:"Ā",amacr:"ā",amalg:"⨿",amp:"&",AMP:"&",andand:"⩕",And:"⩓",and:"∧",andd:"⩜",andslope:"⩘",andv:"⩚",ang:"∠",ange:"⦤",angle:"∠",angmsdaa:"⦨",angmsdab:"⦩",angmsdac:"⦪",angmsdad:"⦫",angmsdae:"⦬",angmsdaf:"⦭",angmsdag:"⦮",angmsdah:"⦯",angmsd:"∡",angrt:"∟",angrtvb:"⊾",angrtvbd:"⦝",angsph:"∢",angst:"Å",angzarr:"⍼",Aogon:"Ą",aogon:"ą",Aopf:"𝔸",aopf:"𝕒",apacir:"⩯",ap:"≈",apE:"⩰",ape:"≊",apid:"≋",apos:"'",ApplyFunction:"⁡",approx:"≈",approxeq:"≊",Aring:"Å",aring:"å",Ascr:"𝒜",ascr:"𝒶",Assign:"≔",ast:"*",asymp:"≈",asympeq:"≍",Atilde:"Ã",atilde:"ã",Auml:"Ä",auml:"ä",awconint:"∳",awint:"⨑",backcong:"≌",backepsilon:"϶",backprime:"‵",backsim:"∽",backsimeq:"⋍",Backslash:"∖",Barv:"⫧",barvee:"⊽",barwed:"⌅",Barwed:"⌆",barwedge:"⌅",bbrk:"⎵",bbrktbrk:"⎶",bcong:"≌",Bcy:"Б",bcy:"б",bdquo:"„",becaus:"∵",because:"∵",Because:"∵",bemptyv:"⦰",bepsi:"϶",bernou:"ℬ",Bernoullis:"ℬ",Beta:"Β",beta:"β",beth:"ℶ",between:"≬",Bfr:"𝔅",bfr:"𝔟",bigcap:"⋂",bigcirc:"◯",bigcup:"⋃",bigodot:"⨀",bigoplus:"⨁",bigotimes:"⨂",bigsqcup:"⨆",bigstar:"★",bigtriangledown:"▽",bigtriangleup:"△",biguplus:"⨄",bigvee:"⋁",bigwedge:"⋀",bkarow:"⤍",blacklozenge:"⧫",blacksquare:"▪",blacktriangle:"▴",blacktriangledown:"▾",blacktriangleleft:"◂",blacktriangleright:"▸",blank:"␣",blk12:"▒",blk14:"░",blk34:"▓",block:"█",bne:"=⃥",bnequiv:"≡⃥",bNot:"⫭",bnot:"⌐",Bopf:"𝔹",bopf:"𝕓",bot:"⊥",bottom:"⊥",bowtie:"⋈",boxbox:"⧉",boxdl:"┐",boxdL:"╕",boxDl:"╖",boxDL:"╗",boxdr:"┌",boxdR:"╒",boxDr:"╓",boxDR:"╔",boxh:"─",boxH:"═",boxhd:"┬",boxHd:"╤",boxhD:"╥",boxHD:"╦",boxhu:"┴",boxHu:"╧",boxhU:"╨",boxHU:"╩",boxminus:"⊟",boxplus:"⊞",boxtimes:"⊠",boxul:"┘",boxuL:"╛",boxUl:"╜",boxUL:"╝",boxur:"└",boxuR:"╘",boxUr:"╙",boxUR:"╚",boxv:"│",boxV:"║",boxvh:"┼",boxvH:"╪",boxVh:"╫",boxVH:"╬",boxvl:"┤",boxvL:"╡",boxVl:"╢",boxVL:"╣",boxvr:"├",boxvR:"╞",boxVr:"╟",boxVR:"╠",bprime:"‵",breve:"˘",Breve:"˘",brvbar:"¦",bscr:"𝒷",Bscr:"ℬ",bsemi:"⁏",bsim:"∽",bsime:"⋍",bsolb:"⧅",bsol:"\\",bsolhsub:"⟈",bull:"•",bullet:"•",bump:"≎",bumpE:"⪮",bumpe:"≏",Bumpeq:"≎",bumpeq:"≏",Cacute:"Ć",cacute:"ć",capand:"⩄",capbrcup:"⩉",capcap:"⩋",cap:"∩",Cap:"⋒",capcup:"⩇",capdot:"⩀",CapitalDifferentialD:"ⅅ",caps:"∩︀",caret:"⁁",caron:"ˇ",Cayleys:"ℭ",ccaps:"⩍",Ccaron:"Č",ccaron:"č",Ccedil:"Ç",ccedil:"ç",Ccirc:"Ĉ",ccirc:"ĉ",Cconint:"∰",ccups:"⩌",ccupssm:"⩐",Cdot:"Ċ",cdot:"ċ",cedil:"¸",Cedilla:"¸",cemptyv:"⦲",cent:"¢",centerdot:"·",CenterDot:"·",cfr:"𝔠",Cfr:"ℭ",CHcy:"Ч",chcy:"ч",check:"✓",checkmark:"✓",Chi:"Χ",chi:"χ",circ:"ˆ",circeq:"≗",circlearrowleft:"↺",circlearrowright:"↻",circledast:"⊛",circledcirc:"⊚",circleddash:"⊝",CircleDot:"⊙",circledR:"®",circledS:"Ⓢ",CircleMinus:"⊖",CirclePlus:"⊕",CircleTimes:"⊗",cir:"○",cirE:"⧃",cire:"≗",cirfnint:"⨐",cirmid:"⫯",cirscir:"⧂",ClockwiseContourIntegral:"∲",CloseCurlyDoubleQuote:"”",CloseCurlyQuote:"’",clubs:"♣",clubsuit:"♣",colon:":",Colon:"∷",Colone:"⩴",colone:"≔",coloneq:"≔",comma:",",commat:"@",comp:"∁",compfn:"∘",complement:"∁",complexes:"ℂ",cong:"≅",congdot:"⩭",Congruent:"≡",conint:"∮",Conint:"∯",ContourIntegral:"∮",copf:"𝕔",Copf:"ℂ",coprod:"∐",Coproduct:"∐",copy:"©",COPY:"©",copysr:"℗",CounterClockwiseContourIntegral:"∳",crarr:"↵",cross:"✗",Cross:"⨯",Cscr:"𝒞",cscr:"𝒸",csub:"⫏",csube:"⫑",csup:"⫐",csupe:"⫒",ctdot:"⋯",cudarrl:"⤸",cudarrr:"⤵",cuepr:"⋞",cuesc:"⋟",cularr:"↶",cularrp:"⤽",cupbrcap:"⩈",cupcap:"⩆",CupCap:"≍",cup:"∪",Cup:"⋓",cupcup:"⩊",cupdot:"⊍",cupor:"⩅",cups:"∪︀",curarr:"↷",curarrm:"⤼",curlyeqprec:"⋞",curlyeqsucc:"⋟",curlyvee:"⋎",curlywedge:"⋏",curren:"¤",curvearrowleft:"↶",curvearrowright:"↷",cuvee:"⋎",cuwed:"⋏",cwconint:"∲",cwint:"∱",cylcty:"⌭",dagger:"†",Dagger:"‡",daleth:"ℸ",darr:"↓",Darr:"↡",dArr:"⇓",dash:"‐",Dashv:"⫤",dashv:"⊣",dbkarow:"⤏",dblac:"˝",Dcaron:"Ď",dcaron:"ď",Dcy:"Д",dcy:"д",ddagger:"‡",ddarr:"⇊",DD:"ⅅ",dd:"ⅆ",DDotrahd:"⤑",ddotseq:"⩷",deg:"°",Del:"∇",Delta:"Δ",delta:"δ",demptyv:"⦱",dfisht:"⥿",Dfr:"𝔇",dfr:"𝔡",dHar:"⥥",dharl:"⇃",dharr:"⇂",DiacriticalAcute:"´",DiacriticalDot:"˙",DiacriticalDoubleAcute:"˝",DiacriticalGrave:"`",DiacriticalTilde:"˜",diam:"⋄",diamond:"⋄",Diamond:"⋄",diamondsuit:"♦",diams:"♦",die:"¨",DifferentialD:"ⅆ",digamma:"ϝ",disin:"⋲",div:"÷",divide:"÷",divideontimes:"⋇",divonx:"⋇",DJcy:"Ђ",djcy:"ђ",dlcorn:"⌞",dlcrop:"⌍",dollar:"$",Dopf:"𝔻",dopf:"𝕕",Dot:"¨",dot:"˙",DotDot:"⃜",doteq:"≐",doteqdot:"≑",DotEqual:"≐",dotminus:"∸",dotplus:"∔",dotsquare:"⊡",doublebarwedge:"⌆",DoubleContourIntegral:"∯",DoubleDot:"¨",DoubleDownArrow:"⇓",DoubleLeftArrow:"⇐",DoubleLeftRightArrow:"⇔",DoubleLeftTee:"⫤",DoubleLongLeftArrow:"⟸",DoubleLongLeftRightArrow:"⟺",DoubleLongRightArrow:"⟹",DoubleRightArrow:"⇒",DoubleRightTee:"⊨",DoubleUpArrow:"⇑",DoubleUpDownArrow:"⇕",DoubleVerticalBar:"∥",DownArrowBar:"⤓",downarrow:"↓",DownArrow:"↓",Downarrow:"⇓",DownArrowUpArrow:"⇵",DownBreve:"̑",downdownarrows:"⇊",downharpoonleft:"⇃",downharpoonright:"⇂",DownLeftRightVector:"⥐",DownLeftTeeVector:"⥞",DownLeftVectorBar:"⥖",DownLeftVector:"↽",DownRightTeeVector:"⥟",DownRightVectorBar:"⥗",DownRightVector:"⇁",DownTeeArrow:"↧",DownTee:"⊤",drbkarow:"⤐",drcorn:"⌟",drcrop:"⌌",Dscr:"𝒟",dscr:"𝒹",DScy:"Ѕ",dscy:"ѕ",dsol:"⧶",Dstrok:"Đ",dstrok:"đ",dtdot:"⋱",dtri:"▿",dtrif:"▾",duarr:"⇵",duhar:"⥯",dwangle:"⦦",DZcy:"Џ",dzcy:"џ",dzigrarr:"⟿",Eacute:"É",eacute:"é",easter:"⩮",Ecaron:"Ě",ecaron:"ě",Ecirc:"Ê",ecirc:"ê",ecir:"≖",ecolon:"≕",Ecy:"Э",ecy:"э",eDDot:"⩷",Edot:"Ė",edot:"ė",eDot:"≑",ee:"ⅇ",efDot:"≒",Efr:"𝔈",efr:"𝔢",eg:"⪚",Egrave:"È",egrave:"è",egs:"⪖",egsdot:"⪘",el:"⪙",Element:"∈",elinters:"⏧",ell:"ℓ",els:"⪕",elsdot:"⪗",Emacr:"Ē",emacr:"ē",empty:"∅",emptyset:"∅",EmptySmallSquare:"◻",emptyv:"∅",EmptyVerySmallSquare:"▫",emsp13:" ",emsp14:" ",emsp:" ",ENG:"Ŋ",eng:"ŋ",ensp:" ",Eogon:"Ę",eogon:"ę",Eopf:"𝔼",eopf:"𝕖",epar:"⋕",eparsl:"⧣",eplus:"⩱",epsi:"ε",Epsilon:"Ε",epsilon:"ε",epsiv:"ϵ",eqcirc:"≖",eqcolon:"≕",eqsim:"≂",eqslantgtr:"⪖",eqslantless:"⪕",Equal:"⩵",equals:"=",EqualTilde:"≂",equest:"≟",Equilibrium:"⇌",equiv:"≡",equivDD:"⩸",eqvparsl:"⧥",erarr:"⥱",erDot:"≓",escr:"ℯ",Escr:"ℰ",esdot:"≐",Esim:"⩳",esim:"≂",Eta:"Η",eta:"η",ETH:"Ð",eth:"ð",Euml:"Ë",euml:"ë",euro:"€",excl:"!",exist:"∃",Exists:"∃",expectation:"ℰ",exponentiale:"ⅇ",ExponentialE:"ⅇ",fallingdotseq:"≒",Fcy:"Ф",fcy:"ф",female:"♀",ffilig:"ffi",fflig:"ff",ffllig:"ffl",Ffr:"𝔉",ffr:"𝔣",filig:"fi",FilledSmallSquare:"◼",FilledVerySmallSquare:"▪",fjlig:"fj",flat:"♭",fllig:"fl",fltns:"▱",fnof:"ƒ",Fopf:"𝔽",fopf:"𝕗",forall:"∀",ForAll:"∀",fork:"⋔",forkv:"⫙",Fouriertrf:"ℱ",fpartint:"⨍",frac12:"½",frac13:"⅓",frac14:"¼",frac15:"⅕",frac16:"⅙",frac18:"⅛",frac23:"⅔",frac25:"⅖",frac34:"¾",frac35:"⅗",frac38:"⅜",frac45:"⅘",frac56:"⅚",frac58:"⅝",frac78:"⅞",frasl:"⁄",frown:"⌢",fscr:"𝒻",Fscr:"ℱ",gacute:"ǵ",Gamma:"Γ",gamma:"γ",Gammad:"Ϝ",gammad:"ϝ",gap:"⪆",Gbreve:"Ğ",gbreve:"ğ",Gcedil:"Ģ",Gcirc:"Ĝ",gcirc:"ĝ",Gcy:"Г",gcy:"г",Gdot:"Ġ",gdot:"ġ",ge:"≥",gE:"≧",gEl:"⪌",gel:"⋛",geq:"≥",geqq:"≧",geqslant:"⩾",gescc:"⪩",ges:"⩾",gesdot:"⪀",gesdoto:"⪂",gesdotol:"⪄",gesl:"⋛︀",gesles:"⪔",Gfr:"𝔊",gfr:"𝔤",gg:"≫",Gg:"⋙",ggg:"⋙",gimel:"ℷ",GJcy:"Ѓ",gjcy:"ѓ",gla:"⪥",gl:"≷",glE:"⪒",glj:"⪤",gnap:"⪊",gnapprox:"⪊",gne:"⪈",gnE:"≩",gneq:"⪈",gneqq:"≩",gnsim:"⋧",Gopf:"𝔾",gopf:"𝕘",grave:"`",GreaterEqual:"≥",GreaterEqualLess:"⋛",GreaterFullEqual:"≧",GreaterGreater:"⪢",GreaterLess:"≷",GreaterSlantEqual:"⩾",GreaterTilde:"≳",Gscr:"𝒢",gscr:"ℊ",gsim:"≳",gsime:"⪎",gsiml:"⪐",gtcc:"⪧",gtcir:"⩺",gt:">",GT:">",Gt:"≫",gtdot:"⋗",gtlPar:"⦕",gtquest:"⩼",gtrapprox:"⪆",gtrarr:"⥸",gtrdot:"⋗",gtreqless:"⋛",gtreqqless:"⪌",gtrless:"≷",gtrsim:"≳",gvertneqq:"≩︀",gvnE:"≩︀",Hacek:"ˇ",hairsp:" ",half:"½",hamilt:"ℋ",HARDcy:"Ъ",hardcy:"ъ",harrcir:"⥈",harr:"↔",hArr:"⇔",harrw:"↭",Hat:"^",hbar:"ℏ",Hcirc:"Ĥ",hcirc:"ĥ",hearts:"♥",heartsuit:"♥",hellip:"…",hercon:"⊹",hfr:"𝔥",Hfr:"ℌ",HilbertSpace:"ℋ",hksearow:"⤥",hkswarow:"⤦",hoarr:"⇿",homtht:"∻",hookleftarrow:"↩",hookrightarrow:"↪",hopf:"𝕙",Hopf:"ℍ",horbar:"―",HorizontalLine:"─",hscr:"𝒽",Hscr:"ℋ",hslash:"ℏ",Hstrok:"Ħ",hstrok:"ħ",HumpDownHump:"≎",HumpEqual:"≏",hybull:"⁃",hyphen:"‐",Iacute:"Í",iacute:"í",ic:"⁣",Icirc:"Î",icirc:"î",Icy:"И",icy:"и",Idot:"İ",IEcy:"Е",iecy:"е",iexcl:"¡",iff:"⇔",ifr:"𝔦",Ifr:"ℑ",Igrave:"Ì",igrave:"ì",ii:"ⅈ",iiiint:"⨌",iiint:"∭",iinfin:"⧜",iiota:"℩",IJlig:"IJ",ijlig:"ij",Imacr:"Ī",imacr:"ī",image:"ℑ",ImaginaryI:"ⅈ",imagline:"ℐ",imagpart:"ℑ",imath:"ı",Im:"ℑ",imof:"⊷",imped:"Ƶ",Implies:"⇒",incare:"℅",in:"∈",infin:"∞",infintie:"⧝",inodot:"ı",intcal:"⊺",int:"∫",Int:"∬",integers:"ℤ",Integral:"∫",intercal:"⊺",Intersection:"⋂",intlarhk:"⨗",intprod:"⨼",InvisibleComma:"⁣",InvisibleTimes:"⁢",IOcy:"Ё",iocy:"ё",Iogon:"Į",iogon:"į",Iopf:"𝕀",iopf:"𝕚",Iota:"Ι",iota:"ι",iprod:"⨼",iquest:"¿",iscr:"𝒾",Iscr:"ℐ",isin:"∈",isindot:"⋵",isinE:"⋹",isins:"⋴",isinsv:"⋳",isinv:"∈",it:"⁢",Itilde:"Ĩ",itilde:"ĩ",Iukcy:"І",iukcy:"і",Iuml:"Ï",iuml:"ï",Jcirc:"Ĵ",jcirc:"ĵ",Jcy:"Й",jcy:"й",Jfr:"𝔍",jfr:"𝔧",jmath:"ȷ",Jopf:"𝕁",jopf:"𝕛",Jscr:"𝒥",jscr:"𝒿",Jsercy:"Ј",jsercy:"ј",Jukcy:"Є",jukcy:"є",Kappa:"Κ",kappa:"κ",kappav:"ϰ",Kcedil:"Ķ",kcedil:"ķ",Kcy:"К",kcy:"к",Kfr:"𝔎",kfr:"𝔨",kgreen:"ĸ",KHcy:"Х",khcy:"х",KJcy:"Ќ",kjcy:"ќ",Kopf:"𝕂",kopf:"𝕜",Kscr:"𝒦",kscr:"𝓀",lAarr:"⇚",Lacute:"Ĺ",lacute:"ĺ",laemptyv:"⦴",lagran:"ℒ",Lambda:"Λ",lambda:"λ",lang:"⟨",Lang:"⟪",langd:"⦑",langle:"⟨",lap:"⪅",Laplacetrf:"ℒ",laquo:"«",larrb:"⇤",larrbfs:"⤟",larr:"←",Larr:"↞",lArr:"⇐",larrfs:"⤝",larrhk:"↩",larrlp:"↫",larrpl:"⤹",larrsim:"⥳",larrtl:"↢",latail:"⤙",lAtail:"⤛",lat:"⪫",late:"⪭",lates:"⪭︀",lbarr:"⤌",lBarr:"⤎",lbbrk:"❲",lbrace:"{",lbrack:"[",lbrke:"⦋",lbrksld:"⦏",lbrkslu:"⦍",Lcaron:"Ľ",lcaron:"ľ",Lcedil:"Ļ",lcedil:"ļ",lceil:"⌈",lcub:"{",Lcy:"Л",lcy:"л",ldca:"⤶",ldquo:"“",ldquor:"„",ldrdhar:"⥧",ldrushar:"⥋",ldsh:"↲",le:"≤",lE:"≦",LeftAngleBracket:"⟨",LeftArrowBar:"⇤",leftarrow:"←",LeftArrow:"←",Leftarrow:"⇐",LeftArrowRightArrow:"⇆",leftarrowtail:"↢",LeftCeiling:"⌈",LeftDoubleBracket:"⟦",LeftDownTeeVector:"⥡",LeftDownVectorBar:"⥙",LeftDownVector:"⇃",LeftFloor:"⌊",leftharpoondown:"↽",leftharpoonup:"↼",leftleftarrows:"⇇",leftrightarrow:"↔",LeftRightArrow:"↔",Leftrightarrow:"⇔",leftrightarrows:"⇆",leftrightharpoons:"⇋",leftrightsquigarrow:"↭",LeftRightVector:"⥎",LeftTeeArrow:"↤",LeftTee:"⊣",LeftTeeVector:"⥚",leftthreetimes:"⋋",LeftTriangleBar:"⧏",LeftTriangle:"⊲",LeftTriangleEqual:"⊴",LeftUpDownVector:"⥑",LeftUpTeeVector:"⥠",LeftUpVectorBar:"⥘",LeftUpVector:"↿",LeftVectorBar:"⥒",LeftVector:"↼",lEg:"⪋",leg:"⋚",leq:"≤",leqq:"≦",leqslant:"⩽",lescc:"⪨",les:"⩽",lesdot:"⩿",lesdoto:"⪁",lesdotor:"⪃",lesg:"⋚︀",lesges:"⪓",lessapprox:"⪅",lessdot:"⋖",lesseqgtr:"⋚",lesseqqgtr:"⪋",LessEqualGreater:"⋚",LessFullEqual:"≦",LessGreater:"≶",lessgtr:"≶",LessLess:"⪡",lesssim:"≲",LessSlantEqual:"⩽",LessTilde:"≲",lfisht:"⥼",lfloor:"⌊",Lfr:"𝔏",lfr:"𝔩",lg:"≶",lgE:"⪑",lHar:"⥢",lhard:"↽",lharu:"↼",lharul:"⥪",lhblk:"▄",LJcy:"Љ",ljcy:"љ",llarr:"⇇",ll:"≪",Ll:"⋘",llcorner:"⌞",Lleftarrow:"⇚",llhard:"⥫",lltri:"◺",Lmidot:"Ŀ",lmidot:"ŀ",lmoustache:"⎰",lmoust:"⎰",lnap:"⪉",lnapprox:"⪉",lne:"⪇",lnE:"≨",lneq:"⪇",lneqq:"≨",lnsim:"⋦",loang:"⟬",loarr:"⇽",lobrk:"⟦",longleftarrow:"⟵",LongLeftArrow:"⟵",Longleftarrow:"⟸",longleftrightarrow:"⟷",LongLeftRightArrow:"⟷",Longleftrightarrow:"⟺",longmapsto:"⟼",longrightarrow:"⟶",LongRightArrow:"⟶",Longrightarrow:"⟹",looparrowleft:"↫",looparrowright:"↬",lopar:"⦅",Lopf:"𝕃",lopf:"𝕝",loplus:"⨭",lotimes:"⨴",lowast:"∗",lowbar:"_",LowerLeftArrow:"↙",LowerRightArrow:"↘",loz:"◊",lozenge:"◊",lozf:"⧫",lpar:"(",lparlt:"⦓",lrarr:"⇆",lrcorner:"⌟",lrhar:"⇋",lrhard:"⥭",lrm:"‎",lrtri:"⊿",lsaquo:"‹",lscr:"𝓁",Lscr:"ℒ",lsh:"↰",Lsh:"↰",lsim:"≲",lsime:"⪍",lsimg:"⪏",lsqb:"[",lsquo:"‘",lsquor:"‚",Lstrok:"Ł",lstrok:"ł",ltcc:"⪦",ltcir:"⩹",lt:"<",LT:"<",Lt:"≪",ltdot:"⋖",lthree:"⋋",ltimes:"⋉",ltlarr:"⥶",ltquest:"⩻",ltri:"◃",ltrie:"⊴",ltrif:"◂",ltrPar:"⦖",lurdshar:"⥊",luruhar:"⥦",lvertneqq:"≨︀",lvnE:"≨︀",macr:"¯",male:"♂",malt:"✠",maltese:"✠",Map:"⤅",map:"↦",mapsto:"↦",mapstodown:"↧",mapstoleft:"↤",mapstoup:"↥",marker:"▮",mcomma:"⨩",Mcy:"М",mcy:"м",mdash:"—",mDDot:"∺",measuredangle:"∡",MediumSpace:" ",Mellintrf:"ℳ",Mfr:"𝔐",mfr:"𝔪",mho:"℧",micro:"µ",midast:"*",midcir:"⫰",mid:"∣",middot:"·",minusb:"⊟",minus:"−",minusd:"∸",minusdu:"⨪",MinusPlus:"∓",mlcp:"⫛",mldr:"…",mnplus:"∓",models:"⊧",Mopf:"𝕄",mopf:"𝕞",mp:"∓",mscr:"𝓂",Mscr:"ℳ",mstpos:"∾",Mu:"Μ",mu:"μ",multimap:"⊸",mumap:"⊸",nabla:"∇",Nacute:"Ń",nacute:"ń",nang:"∠⃒",nap:"≉",napE:"⩰̸",napid:"≋̸",napos:"ʼn",napprox:"≉",natural:"♮",naturals:"ℕ",natur:"♮",nbsp:" ",nbump:"≎̸",nbumpe:"≏̸",ncap:"⩃",Ncaron:"Ň",ncaron:"ň",Ncedil:"Ņ",ncedil:"ņ",ncong:"≇",ncongdot:"⩭̸",ncup:"⩂",Ncy:"Н",ncy:"н",ndash:"–",nearhk:"⤤",nearr:"↗",neArr:"⇗",nearrow:"↗",ne:"≠",nedot:"≐̸",NegativeMediumSpace:"​",NegativeThickSpace:"​",NegativeThinSpace:"​",NegativeVeryThinSpace:"​",nequiv:"≢",nesear:"⤨",nesim:"≂̸",NestedGreaterGreater:"≫",NestedLessLess:"≪",NewLine:"\n",nexist:"∄",nexists:"∄",Nfr:"𝔑",nfr:"𝔫",ngE:"≧̸",nge:"≱",ngeq:"≱",ngeqq:"≧̸",ngeqslant:"⩾̸",nges:"⩾̸",nGg:"⋙̸",ngsim:"≵",nGt:"≫⃒",ngt:"≯",ngtr:"≯",nGtv:"≫̸",nharr:"↮",nhArr:"⇎",nhpar:"⫲",ni:"∋",nis:"⋼",nisd:"⋺",niv:"∋",NJcy:"Њ",njcy:"њ",nlarr:"↚",nlArr:"⇍",nldr:"‥",nlE:"≦̸",nle:"≰",nleftarrow:"↚",nLeftarrow:"⇍",nleftrightarrow:"↮",nLeftrightarrow:"⇎",nleq:"≰",nleqq:"≦̸",nleqslant:"⩽̸",nles:"⩽̸",nless:"≮",nLl:"⋘̸",nlsim:"≴",nLt:"≪⃒",nlt:"≮",nltri:"⋪",nltrie:"⋬",nLtv:"≪̸",nmid:"∤",NoBreak:"⁠",NonBreakingSpace:" ",nopf:"𝕟",Nopf:"ℕ",Not:"⫬",not:"¬",NotCongruent:"≢",NotCupCap:"≭",NotDoubleVerticalBar:"∦",NotElement:"∉",NotEqual:"≠",NotEqualTilde:"≂̸",NotExists:"∄",NotGreater:"≯",NotGreaterEqual:"≱",NotGreaterFullEqual:"≧̸",NotGreaterGreater:"≫̸",NotGreaterLess:"≹",NotGreaterSlantEqual:"⩾̸",NotGreaterTilde:"≵",NotHumpDownHump:"≎̸",NotHumpEqual:"≏̸",notin:"∉",notindot:"⋵̸",notinE:"⋹̸",notinva:"∉",notinvb:"⋷",notinvc:"⋶",NotLeftTriangleBar:"⧏̸",NotLeftTriangle:"⋪",NotLeftTriangleEqual:"⋬",NotLess:"≮",NotLessEqual:"≰",NotLessGreater:"≸",NotLessLess:"≪̸",NotLessSlantEqual:"⩽̸",NotLessTilde:"≴",NotNestedGreaterGreater:"⪢̸",NotNestedLessLess:"⪡̸",notni:"∌",notniva:"∌",notnivb:"⋾",notnivc:"⋽",NotPrecedes:"⊀",NotPrecedesEqual:"⪯̸",NotPrecedesSlantEqual:"⋠",NotReverseElement:"∌",NotRightTriangleBar:"⧐̸",NotRightTriangle:"⋫",NotRightTriangleEqual:"⋭",NotSquareSubset:"⊏̸",NotSquareSubsetEqual:"⋢",NotSquareSuperset:"⊐̸",NotSquareSupersetEqual:"⋣",NotSubset:"⊂⃒",NotSubsetEqual:"⊈",NotSucceeds:"⊁",NotSucceedsEqual:"⪰̸",NotSucceedsSlantEqual:"⋡",NotSucceedsTilde:"≿̸",NotSuperset:"⊃⃒",NotSupersetEqual:"⊉",NotTilde:"≁",NotTildeEqual:"≄",NotTildeFullEqual:"≇",NotTildeTilde:"≉",NotVerticalBar:"∤",nparallel:"∦",npar:"∦",nparsl:"⫽⃥",npart:"∂̸",npolint:"⨔",npr:"⊀",nprcue:"⋠",nprec:"⊀",npreceq:"⪯̸",npre:"⪯̸",nrarrc:"⤳̸",nrarr:"↛",nrArr:"⇏",nrarrw:"↝̸",nrightarrow:"↛",nRightarrow:"⇏",nrtri:"⋫",nrtrie:"⋭",nsc:"⊁",nsccue:"⋡",nsce:"⪰̸",Nscr:"𝒩",nscr:"𝓃",nshortmid:"∤",nshortparallel:"∦",nsim:"≁",nsime:"≄",nsimeq:"≄",nsmid:"∤",nspar:"∦",nsqsube:"⋢",nsqsupe:"⋣",nsub:"⊄",nsubE:"⫅̸",nsube:"⊈",nsubset:"⊂⃒",nsubseteq:"⊈",nsubseteqq:"⫅̸",nsucc:"⊁",nsucceq:"⪰̸",nsup:"⊅",nsupE:"⫆̸",nsupe:"⊉",nsupset:"⊃⃒",nsupseteq:"⊉",nsupseteqq:"⫆̸",ntgl:"≹",Ntilde:"Ñ",ntilde:"ñ",ntlg:"≸",ntriangleleft:"⋪",ntrianglelefteq:"⋬",ntriangleright:"⋫",ntrianglerighteq:"⋭",Nu:"Ν",nu:"ν",num:"#",numero:"№",numsp:" ",nvap:"≍⃒",nvdash:"⊬",nvDash:"⊭",nVdash:"⊮",nVDash:"⊯",nvge:"≥⃒",nvgt:">⃒",nvHarr:"⤄",nvinfin:"⧞",nvlArr:"⤂",nvle:"≤⃒",nvlt:"<⃒",nvltrie:"⊴⃒",nvrArr:"⤃",nvrtrie:"⊵⃒",nvsim:"∼⃒",nwarhk:"⤣",nwarr:"↖",nwArr:"⇖",nwarrow:"↖",nwnear:"⤧",Oacute:"Ó",oacute:"ó",oast:"⊛",Ocirc:"Ô",ocirc:"ô",ocir:"⊚",Ocy:"О",ocy:"о",odash:"⊝",Odblac:"Ő",odblac:"ő",odiv:"⨸",odot:"⊙",odsold:"⦼",OElig:"Œ",oelig:"œ",ofcir:"⦿",Ofr:"𝔒",ofr:"𝔬",ogon:"˛",Ograve:"Ò",ograve:"ò",ogt:"⧁",ohbar:"⦵",ohm:"Ω",oint:"∮",olarr:"↺",olcir:"⦾",olcross:"⦻",oline:"‾",olt:"⧀",Omacr:"Ō",omacr:"ō",Omega:"Ω",omega:"ω",Omicron:"Ο",omicron:"ο",omid:"⦶",ominus:"⊖",Oopf:"𝕆",oopf:"𝕠",opar:"⦷",OpenCurlyDoubleQuote:"“",OpenCurlyQuote:"‘",operp:"⦹",oplus:"⊕",orarr:"↻",Or:"⩔",or:"∨",ord:"⩝",order:"ℴ",orderof:"ℴ",ordf:"ª",ordm:"º",origof:"⊶",oror:"⩖",orslope:"⩗",orv:"⩛",oS:"Ⓢ",Oscr:"𝒪",oscr:"ℴ",Oslash:"Ø",oslash:"ø",osol:"⊘",Otilde:"Õ",otilde:"õ",otimesas:"⨶",Otimes:"⨷",otimes:"⊗",Ouml:"Ö",ouml:"ö",ovbar:"⌽",OverBar:"‾",OverBrace:"⏞",OverBracket:"⎴",OverParenthesis:"⏜",para:"¶",parallel:"∥",par:"∥",parsim:"⫳",parsl:"⫽",part:"∂",PartialD:"∂",Pcy:"П",pcy:"п",percnt:"%",period:".",permil:"‰",perp:"⊥",pertenk:"‱",Pfr:"𝔓",pfr:"𝔭",Phi:"Φ",phi:"φ",phiv:"ϕ",phmmat:"ℳ",phone:"☎",Pi:"Π",pi:"π",pitchfork:"⋔",piv:"ϖ",planck:"ℏ",planckh:"ℎ",plankv:"ℏ",plusacir:"⨣",plusb:"⊞",pluscir:"⨢",plus:"+",plusdo:"∔",plusdu:"⨥",pluse:"⩲",PlusMinus:"±",plusmn:"±",plussim:"⨦",plustwo:"⨧",pm:"±",Poincareplane:"ℌ",pointint:"⨕",popf:"𝕡",Popf:"ℙ",pound:"£",prap:"⪷",Pr:"⪻",pr:"≺",prcue:"≼",precapprox:"⪷",prec:"≺",preccurlyeq:"≼",Precedes:"≺",PrecedesEqual:"⪯",PrecedesSlantEqual:"≼",PrecedesTilde:"≾",preceq:"⪯",precnapprox:"⪹",precneqq:"⪵",precnsim:"⋨",pre:"⪯",prE:"⪳",precsim:"≾",prime:"′",Prime:"″",primes:"ℙ",prnap:"⪹",prnE:"⪵",prnsim:"⋨",prod:"∏",Product:"∏",profalar:"⌮",profline:"⌒",profsurf:"⌓",prop:"∝",Proportional:"∝",Proportion:"∷",propto:"∝",prsim:"≾",prurel:"⊰",Pscr:"𝒫",pscr:"𝓅",Psi:"Ψ",psi:"ψ",puncsp:" ",Qfr:"𝔔",qfr:"𝔮",qint:"⨌",qopf:"𝕢",Qopf:"ℚ",qprime:"⁗",Qscr:"𝒬",qscr:"𝓆",quaternions:"ℍ",quatint:"⨖",quest:"?",questeq:"≟",quot:'"',QUOT:'"',rAarr:"⇛",race:"∽̱",Racute:"Ŕ",racute:"ŕ",radic:"√",raemptyv:"⦳",rang:"⟩",Rang:"⟫",rangd:"⦒",range:"⦥",rangle:"⟩",raquo:"»",rarrap:"⥵",rarrb:"⇥",rarrbfs:"⤠",rarrc:"⤳",rarr:"→",Rarr:"↠",rArr:"⇒",rarrfs:"⤞",rarrhk:"↪",rarrlp:"↬",rarrpl:"⥅",rarrsim:"⥴",Rarrtl:"⤖",rarrtl:"↣",rarrw:"↝",ratail:"⤚",rAtail:"⤜",ratio:"∶",rationals:"ℚ",rbarr:"⤍",rBarr:"⤏",RBarr:"⤐",rbbrk:"❳",rbrace:"}",rbrack:"]",rbrke:"⦌",rbrksld:"⦎",rbrkslu:"⦐",Rcaron:"Ř",rcaron:"ř",Rcedil:"Ŗ",rcedil:"ŗ",rceil:"⌉",rcub:"}",Rcy:"Р",rcy:"р",rdca:"⤷",rdldhar:"⥩",rdquo:"”",rdquor:"”",rdsh:"↳",real:"ℜ",realine:"ℛ",realpart:"ℜ",reals:"ℝ",Re:"ℜ",rect:"▭",reg:"®",REG:"®",ReverseElement:"∋",ReverseEquilibrium:"⇋",ReverseUpEquilibrium:"⥯",rfisht:"⥽",rfloor:"⌋",rfr:"𝔯",Rfr:"ℜ",rHar:"⥤",rhard:"⇁",rharu:"⇀",rharul:"⥬",Rho:"Ρ",rho:"ρ",rhov:"ϱ",RightAngleBracket:"⟩",RightArrowBar:"⇥",rightarrow:"→",RightArrow:"→",Rightarrow:"⇒",RightArrowLeftArrow:"⇄",rightarrowtail:"↣",RightCeiling:"⌉",RightDoubleBracket:"⟧",RightDownTeeVector:"⥝",RightDownVectorBar:"⥕",RightDownVector:"⇂",RightFloor:"⌋",rightharpoondown:"⇁",rightharpoonup:"⇀",rightleftarrows:"⇄",rightleftharpoons:"⇌",rightrightarrows:"⇉",rightsquigarrow:"↝",RightTeeArrow:"↦",RightTee:"⊢",RightTeeVector:"⥛",rightthreetimes:"⋌",RightTriangleBar:"⧐",RightTriangle:"⊳",RightTriangleEqual:"⊵",RightUpDownVector:"⥏",RightUpTeeVector:"⥜",RightUpVectorBar:"⥔",RightUpVector:"↾",RightVectorBar:"⥓",RightVector:"⇀",ring:"˚",risingdotseq:"≓",rlarr:"⇄",rlhar:"⇌",rlm:"‏",rmoustache:"⎱",rmoust:"⎱",rnmid:"⫮",roang:"⟭",roarr:"⇾",robrk:"⟧",ropar:"⦆",ropf:"𝕣",Ropf:"ℝ",roplus:"⨮",rotimes:"⨵",RoundImplies:"⥰",rpar:")",rpargt:"⦔",rppolint:"⨒",rrarr:"⇉",Rrightarrow:"⇛",rsaquo:"›",rscr:"𝓇",Rscr:"ℛ",rsh:"↱",Rsh:"↱",rsqb:"]",rsquo:"’",rsquor:"’",rthree:"⋌",rtimes:"⋊",rtri:"▹",rtrie:"⊵",rtrif:"▸",rtriltri:"⧎",RuleDelayed:"⧴",ruluhar:"⥨",rx:"℞",Sacute:"Ś",sacute:"ś",sbquo:"‚",scap:"⪸",Scaron:"Š",scaron:"š",Sc:"⪼",sc:"≻",sccue:"≽",sce:"⪰",scE:"⪴",Scedil:"Ş",scedil:"ş",Scirc:"Ŝ",scirc:"ŝ",scnap:"⪺",scnE:"⪶",scnsim:"⋩",scpolint:"⨓",scsim:"≿",Scy:"С",scy:"с",sdotb:"⊡",sdot:"⋅",sdote:"⩦",searhk:"⤥",searr:"↘",seArr:"⇘",searrow:"↘",sect:"§",semi:";",seswar:"⤩",setminus:"∖",setmn:"∖",sext:"✶",Sfr:"𝔖",sfr:"𝔰",sfrown:"⌢",sharp:"♯",SHCHcy:"Щ",shchcy:"щ",SHcy:"Ш",shcy:"ш",ShortDownArrow:"↓",ShortLeftArrow:"←",shortmid:"∣",shortparallel:"∥",ShortRightArrow:"→",ShortUpArrow:"↑",shy:"­",Sigma:"Σ",sigma:"σ",sigmaf:"ς",sigmav:"ς",sim:"∼",simdot:"⩪",sime:"≃",simeq:"≃",simg:"⪞",simgE:"⪠",siml:"⪝",simlE:"⪟",simne:"≆",simplus:"⨤",simrarr:"⥲",slarr:"←",SmallCircle:"∘",smallsetminus:"∖",smashp:"⨳",smeparsl:"⧤",smid:"∣",smile:"⌣",smt:"⪪",smte:"⪬",smtes:"⪬︀",SOFTcy:"Ь",softcy:"ь",solbar:"⌿",solb:"⧄",sol:"/",Sopf:"𝕊",sopf:"𝕤",spades:"♠",spadesuit:"♠",spar:"∥",sqcap:"⊓",sqcaps:"⊓︀",sqcup:"⊔",sqcups:"⊔︀",Sqrt:"√",sqsub:"⊏",sqsube:"⊑",sqsubset:"⊏",sqsubseteq:"⊑",sqsup:"⊐",sqsupe:"⊒",sqsupset:"⊐",sqsupseteq:"⊒",square:"□",Square:"□",SquareIntersection:"⊓",SquareSubset:"⊏",SquareSubsetEqual:"⊑",SquareSuperset:"⊐",SquareSupersetEqual:"⊒",SquareUnion:"⊔",squarf:"▪",squ:"□",squf:"▪",srarr:"→",Sscr:"𝒮",sscr:"𝓈",ssetmn:"∖",ssmile:"⌣",sstarf:"⋆",Star:"⋆",star:"☆",starf:"★",straightepsilon:"ϵ",straightphi:"ϕ",strns:"¯",sub:"⊂",Sub:"⋐",subdot:"⪽",subE:"⫅",sube:"⊆",subedot:"⫃",submult:"⫁",subnE:"⫋",subne:"⊊",subplus:"⪿",subrarr:"⥹",subset:"⊂",Subset:"⋐",subseteq:"⊆",subseteqq:"⫅",SubsetEqual:"⊆",subsetneq:"⊊",subsetneqq:"⫋",subsim:"⫇",subsub:"⫕",subsup:"⫓",succapprox:"⪸",succ:"≻",succcurlyeq:"≽",Succeeds:"≻",SucceedsEqual:"⪰",SucceedsSlantEqual:"≽",SucceedsTilde:"≿",succeq:"⪰",succnapprox:"⪺",succneqq:"⪶",succnsim:"⋩",succsim:"≿",SuchThat:"∋",sum:"∑",Sum:"∑",sung:"♪",sup1:"¹",sup2:"²",sup3:"³",sup:"⊃",Sup:"⋑",supdot:"⪾",supdsub:"⫘",supE:"⫆",supe:"⊇",supedot:"⫄",Superset:"⊃",SupersetEqual:"⊇",suphsol:"⟉",suphsub:"⫗",suplarr:"⥻",supmult:"⫂",supnE:"⫌",supne:"⊋",supplus:"⫀",supset:"⊃",Supset:"⋑",supseteq:"⊇",supseteqq:"⫆",supsetneq:"⊋",supsetneqq:"⫌",supsim:"⫈",supsub:"⫔",supsup:"⫖",swarhk:"⤦",swarr:"↙",swArr:"⇙",swarrow:"↙",swnwar:"⤪",szlig:"ß",Tab:"\t",target:"⌖",Tau:"Τ",tau:"τ",tbrk:"⎴",Tcaron:"Ť",tcaron:"ť",Tcedil:"Ţ",tcedil:"ţ",Tcy:"Т",tcy:"т",tdot:"⃛",telrec:"⌕",Tfr:"𝔗",tfr:"𝔱",there4:"∴",therefore:"∴",Therefore:"∴",Theta:"Θ",theta:"θ",thetasym:"ϑ",thetav:"ϑ",thickapprox:"≈",thicksim:"∼",ThickSpace:"  ",ThinSpace:" ",thinsp:" ",thkap:"≈",thksim:"∼",THORN:"Þ",thorn:"þ",tilde:"˜",Tilde:"∼",TildeEqual:"≃",TildeFullEqual:"≅",TildeTilde:"≈",timesbar:"⨱",timesb:"⊠",times:"×",timesd:"⨰",tint:"∭",toea:"⤨",topbot:"⌶",topcir:"⫱",top:"⊤",Topf:"𝕋",topf:"𝕥",topfork:"⫚",tosa:"⤩",tprime:"‴",trade:"™",TRADE:"™",triangle:"▵",triangledown:"▿",triangleleft:"◃",trianglelefteq:"⊴",triangleq:"≜",triangleright:"▹",trianglerighteq:"⊵",tridot:"◬",trie:"≜",triminus:"⨺",TripleDot:"⃛",triplus:"⨹",trisb:"⧍",tritime:"⨻",trpezium:"⏢",Tscr:"𝒯",tscr:"𝓉",TScy:"Ц",tscy:"ц",TSHcy:"Ћ",tshcy:"ћ",Tstrok:"Ŧ",tstrok:"ŧ",twixt:"≬",twoheadleftarrow:"↞",twoheadrightarrow:"↠",Uacute:"Ú",uacute:"ú",uarr:"↑",Uarr:"↟",uArr:"⇑",Uarrocir:"⥉",Ubrcy:"Ў",ubrcy:"ў",Ubreve:"Ŭ",ubreve:"ŭ",Ucirc:"Û",ucirc:"û",Ucy:"У",ucy:"у",udarr:"⇅",Udblac:"Ű",udblac:"ű",udhar:"⥮",ufisht:"⥾",Ufr:"𝔘",ufr:"𝔲",Ugrave:"Ù",ugrave:"ù",uHar:"⥣",uharl:"↿",uharr:"↾",uhblk:"▀",ulcorn:"⌜",ulcorner:"⌜",ulcrop:"⌏",ultri:"◸",Umacr:"Ū",umacr:"ū",uml:"¨",UnderBar:"_",UnderBrace:"⏟",UnderBracket:"⎵",UnderParenthesis:"⏝",Union:"⋃",UnionPlus:"⊎",Uogon:"Ų",uogon:"ų",Uopf:"𝕌",uopf:"𝕦",UpArrowBar:"⤒",uparrow:"↑",UpArrow:"↑",Uparrow:"⇑",UpArrowDownArrow:"⇅",updownarrow:"↕",UpDownArrow:"↕",Updownarrow:"⇕",UpEquilibrium:"⥮",upharpoonleft:"↿",upharpoonright:"↾",uplus:"⊎",UpperLeftArrow:"↖",UpperRightArrow:"↗",upsi:"υ",Upsi:"ϒ",upsih:"ϒ",Upsilon:"Υ",upsilon:"υ",UpTeeArrow:"↥",UpTee:"⊥",upuparrows:"⇈",urcorn:"⌝",urcorner:"⌝",urcrop:"⌎",Uring:"Ů",uring:"ů",urtri:"◹",Uscr:"𝒰",uscr:"𝓊",utdot:"⋰",Utilde:"Ũ",utilde:"ũ",utri:"▵",utrif:"▴",uuarr:"⇈",Uuml:"Ü",uuml:"ü",uwangle:"⦧",vangrt:"⦜",varepsilon:"ϵ",varkappa:"ϰ",varnothing:"∅",varphi:"ϕ",varpi:"ϖ",varpropto:"∝",varr:"↕",vArr:"⇕",varrho:"ϱ",varsigma:"ς",varsubsetneq:"⊊︀",varsubsetneqq:"⫋︀",varsupsetneq:"⊋︀",varsupsetneqq:"⫌︀",vartheta:"ϑ",vartriangleleft:"⊲",vartriangleright:"⊳",vBar:"⫨",Vbar:"⫫",vBarv:"⫩",Vcy:"В",vcy:"в",vdash:"⊢",vDash:"⊨",Vdash:"⊩",VDash:"⊫",Vdashl:"⫦",veebar:"⊻",vee:"∨",Vee:"⋁",veeeq:"≚",vellip:"⋮",verbar:"|",Verbar:"‖",vert:"|",Vert:"‖",VerticalBar:"∣",VerticalLine:"|",VerticalSeparator:"❘",VerticalTilde:"≀",VeryThinSpace:" ",Vfr:"𝔙",vfr:"𝔳",vltri:"⊲",vnsub:"⊂⃒",vnsup:"⊃⃒",Vopf:"𝕍",vopf:"𝕧",vprop:"∝",vrtri:"⊳",Vscr:"𝒱",vscr:"𝓋",vsubnE:"⫋︀",vsubne:"⊊︀",vsupnE:"⫌︀",vsupne:"⊋︀",Vvdash:"⊪",vzigzag:"⦚",Wcirc:"Ŵ",wcirc:"ŵ",wedbar:"⩟",wedge:"∧",Wedge:"⋀",wedgeq:"≙",weierp:"℘",Wfr:"𝔚",wfr:"𝔴",Wopf:"𝕎",wopf:"𝕨",wp:"℘",wr:"≀",wreath:"≀",Wscr:"𝒲",wscr:"𝓌",xcap:"⋂",xcirc:"◯",xcup:"⋃",xdtri:"▽",Xfr:"𝔛",xfr:"𝔵",xharr:"⟷",xhArr:"⟺",Xi:"Ξ",xi:"ξ",xlarr:"⟵",xlArr:"⟸",xmap:"⟼",xnis:"⋻",xodot:"⨀",Xopf:"𝕏",xopf:"𝕩",xoplus:"⨁",xotime:"⨂",xrarr:"⟶",xrArr:"⟹",Xscr:"𝒳",xscr:"𝓍",xsqcup:"⨆",xuplus:"⨄",xutri:"△",xvee:"⋁",xwedge:"⋀",Yacute:"Ý",yacute:"ý",YAcy:"Я",yacy:"я",Ycirc:"Ŷ",ycirc:"ŷ",Ycy:"Ы",ycy:"ы",yen:"¥",Yfr:"𝔜",yfr:"𝔶",YIcy:"Ї",yicy:"ї",Yopf:"𝕐",yopf:"𝕪",Yscr:"𝒴",yscr:"𝓎",YUcy:"Ю",yucy:"ю",yuml:"ÿ",Yuml:"Ÿ",Zacute:"Ź",zacute:"ź",Zcaron:"Ž",zcaron:"ž",Zcy:"З",zcy:"з",Zdot:"Ż",zdot:"ż",zeetrf:"ℨ",ZeroWidthSpace:"​",Zeta:"Ζ",zeta:"ζ",zfr:"𝔷",Zfr:"ℨ",ZHcy:"Ж",zhcy:"ж",zigrarr:"⇝",zopf:"𝕫",Zopf:"ℤ",Zscr:"𝒵",zscr:"𝓏",zwj:"‍",zwnj:"‌"}},28536:e=>{e.exports={Aacute:"Á",aacute:"á",Acirc:"Â",acirc:"â",acute:"´",AElig:"Æ",aelig:"æ",Agrave:"À",agrave:"à",amp:"&",AMP:"&",Aring:"Å",aring:"å",Atilde:"Ã",atilde:"ã",Auml:"Ä",auml:"ä",brvbar:"¦",Ccedil:"Ç",ccedil:"ç",cedil:"¸",cent:"¢",copy:"©",COPY:"©",curren:"¤",deg:"°",divide:"÷",Eacute:"É",eacute:"é",Ecirc:"Ê",ecirc:"ê",Egrave:"È",egrave:"è",ETH:"Ð",eth:"ð",Euml:"Ë",euml:"ë",frac12:"½",frac14:"¼",frac34:"¾",gt:">",GT:">",Iacute:"Í",iacute:"í",Icirc:"Î",icirc:"î",iexcl:"¡",Igrave:"Ì",igrave:"ì",iquest:"¿",Iuml:"Ï",iuml:"ï",laquo:"«",lt:"<",LT:"<",macr:"¯",micro:"µ",middot:"·",nbsp:" ",not:"¬",Ntilde:"Ñ",ntilde:"ñ",Oacute:"Ó",oacute:"ó",Ocirc:"Ô",ocirc:"ô",Ograve:"Ò",ograve:"ò",ordf:"ª",ordm:"º",Oslash:"Ø",oslash:"ø",Otilde:"Õ",otilde:"õ",Ouml:"Ö",ouml:"ö",para:"¶",plusmn:"±",pound:"£",quot:'"',QUOT:'"',raquo:"»",reg:"®",REG:"®",sect:"§",shy:"­",sup1:"¹",sup2:"²",sup3:"³",szlig:"ß",THORN:"Þ",thorn:"þ",times:"×",Uacute:"Ú",uacute:"ú",Ucirc:"Û",ucirc:"û",Ugrave:"Ù",ugrave:"ù",uml:"¨",Uuml:"Ü",uuml:"ü",Yacute:"Ý",yacute:"ý",yen:"¥",yuml:"ÿ"}},71849:e=>{e.exports={amp:"&",apos:"'",gt:">",lt:"<",quot:'"'}},96623:(e,t,n)=>{"use strict";n.r(t),n.d(t,{Clipboard:()=>r,Collapse:()=>c,CommandLinker:()=>h,CommandToolbarButton:()=>fe,CommandToolbarButtonComponent:()=>he,DOMUtils:()=>I,Dialog:()=>R,FilenameSearcher:()=>Ae,FilterBox:()=>Oe,HoverBox:()=>B,ICommandPalette:()=>p,IFrame:()=>q,ISanitizer:()=>Be,ISessionContextDialogs:()=>Ne,ISplashScreen:()=>Pe,IThemeManager:()=>Le,IToolbarWidgetRegistry:()=>Me,IWindowResolver:()=>We,InputDialog:()=>j,MainAreaWidget:()=>_e,MenuFactory:()=>ye,ModalCommandPalette:()=>g,Printing:()=>G,ReactWidget:()=>x,ReactiveToolbar:()=>le,Sanitizer:()=>Se,SessionContext:()=>Q,Spinner:()=>Y,Styling:()=>m,ThemeManager:()=>Ie,Toolbar:()=>ae,ToolbarButton:()=>de,ToolbarButtonComponent:()=>ce,ToolbarWidgetRegistry:()=>He,UseSignal:()=>T,VDomModel:()=>E,VDomRenderer:()=>S,WidgetTracker:()=>A,WindowResolver:()=>Ge,addCommandToolbarButtonClass:()=>pe,addToolbarButtonClass:()=>ue,createDefaultFactory:()=>ze,createToolbarFactory:()=>Fe,defaultSanitizer:()=>Te,fuzzySearch:()=>Ee,sessionContextDialogs:()=>ee,setToolbar:()=>Ue,showDialog:()=>P,showErrorMessage:()=>D,translateKernelStatuses:()=>ne,updateFilterFunction:()=>ke});var r,i,s=n(26169);!function(e){function t(e,t="copy"){let n=window.getSelection();const r=[];for(let e=0,t=(null==n?void 0:n.rangeCount)||0;e{const i=t.clipboardData||window.clipboardData;"string"==typeof e?i.setData("text",e):e.types().map((t=>{i.setData(t,e.getData(t))})),t.preventDefault(),n.removeEventListener("copy",r)};n.addEventListener("copy",r),t(n)},e.generateEvent=t}(r||(r={})),function(e){e.instance=new s.MimeData}(i||(i={}));var o=n(59674),a=n(70942),l=n(94519);class c extends l.Widget{constructor(e){super(e),this._collapseChanged=new a.Signal(this);const{widget:t,collapsed:n=!0}=e;this.addClass("jp-Collapse"),this._header=new l.Widget,this._header.addClass("jp-Collapse-header"),this._content=new l.Panel,this._content.addClass("jp-Collapse-contents");const r=new l.PanelLayout;this.layout=r,r.addWidget(this._header),r.addWidget(this._content),this.widget=t,this.collapsed=n}get widget(){return this._widget}set widget(e){const t=this._widget;t&&(t.title.changed.disconnect(this._onTitleChanged,this),t.parent=null),this._widget=e,e.title.changed.connect(this._onTitleChanged,this),this._onTitleChanged(e.title),this._content.addWidget(e)}get collapsed(){return this._collapsed}set collapsed(e){e!==this._collapsed&&(e?this._collapse():this._uncollapse())}get collapseChanged(){return this._collapseChanged}toggle(){this.collapsed=!this.collapsed}dispose(){this.isDisposed||(this._header=null,this._widget=null,this._content=null,super.dispose())}handleEvent(e){"click"===e.type&&this._evtClick(e)}onAfterAttach(e){this._header.node.addEventListener("click",this)}onBeforeDetach(e){this._header.node.removeEventListener("click",this)}_collapse(){this._collapsed=!0,this._content&&this._content.hide(),this._setHeader(),this._collapseChanged.emit(void 0)}_uncollapse(){this._collapsed=!1,this._content&&this._content.show(),this._setHeader(),this._collapseChanged.emit(void 0)}_evtClick(e){this.toggle()}_onTitleChanged(e){this._setHeader()}_setHeader(){(this._collapsed?o.caretUpIcon:o.caretDownIcon).element({container:this._header.node,label:this._widget.title.label,elementPosition:"right",height:"28px"})}}const u="commandlinker-command",d="commandlinker-args";class h{constructor(e){this._isDisposed=!1,this._commands=e.commands,document.body.addEventListener("click",this)}get isDisposed(){return this._isDisposed}dispose(){this.isDisposed||(this._isDisposed=!0,document.body.removeEventListener("click",this))}connectNode(e,t,n){return e.setAttribute(`data-${u}`,t),void 0!==n&&e.setAttribute(`data-${d}`,JSON.stringify(n)),e}disconnectNode(e){return e.removeAttribute(`data-${u}`),e.removeAttribute(`data-${d}`),e}handleEvent(e){"click"===e.type&&this._evtClick(e)}populateVNodeDataset(e,t){let n;return n=void 0!==t?{[d]:JSON.stringify(t),[u]:e}:{[u]:e},n}_evtClick(e){let t=e.target;for(;t&&t.parentElement;){if(t.hasAttribute(`data-${u}`)){e.preventDefault();const n=t.getAttribute(`data-${u}`);if(!n)return;const r=t.getAttribute(`data-${d}`);let i=s.JSONExt.emptyObject;return r&&(i=JSON.parse(r)),void this._commands.execute(n,i)}t=t.parentElement}}}const p=new s.Token("@jupyterlab/apputils:ICommandPalette"),f="jp-SearchIconGroup";class g extends l.Panel{constructor(e){super(),this.addClass("jp-ModalCommandPalette"),this.id="modal-command-palette",this.palette=e.commandPalette,this._commandPalette.commands.commandExecuted.connect((()=>{this.isAttached&&this.isVisible&&this.hideAndReset()})),this.node.tabIndex=0}get palette(){return this._commandPalette}set palette(e){this._commandPalette=e,this.searchIconGroup||this._commandPalette.inputNode.insertAdjacentElement("afterend",this.createSearchIconGroup()),this.addWidget(e),this.hideAndReset()}attach(){l.Widget.attach(this,document.body)}detach(){l.Widget.detach(this)}hideAndReset(){this.hide(),this._commandPalette.inputNode.value="",this._commandPalette.refresh()}handleEvent(e){switch(e.type){case"keydown":this._evtKeydown(e);break;case"blur":this.node.contains(e.target)&&!this.node.contains(e.relatedTarget)&&(e.stopPropagation(),this.hideAndReset());break;case"contextmenu":e.preventDefault(),e.stopPropagation()}}get searchIconGroup(){return this._commandPalette.node.getElementsByClassName(f)[0]}createSearchIconGroup(){const e=document.createElement("div");return e.classList.add(f),o.searchIcon.render(e),e}onAfterAttach(e){this.node.addEventListener("keydown",this,!0),this.node.addEventListener("contextmenu",this,!0)}onAfterDetach(e){this.node.removeEventListener("keydown",this,!0),this.node.removeEventListener("contextmenu",this,!0)}onBeforeHide(e){document.removeEventListener("blur",this,!0)}onAfterShow(e){document.addEventListener("blur",this,!0)}onActivateRequest(e){this.isAttached&&(this.show(),this._commandPalette.activate())}_evtKeydown(e){27===e.keyCode&&(e.stopPropagation(),e.preventDefault(),this.hideAndReset())}}var m,b,_=n(43892),y=n(14064),v=n(62471),w=n.n(v);!function(e){function t(e,t,r=""){e.localName===t&&e.classList.add("jp-mod-styled"),"select"===e.localName&&n(e);const i=e.getElementsByTagName(t);for(let e=0;e{const t=this.render();(Array.isArray(t)||t)&&C.render(t,this.node,e)}))}}class S extends x{constructor(e){super(),this._modelChanged=new a.Signal(this),this.model=null!=e?e:null}get modelChanged(){return this._modelChanged}set model(e){this._model!==e&&(this._model&&this._model.stateChanged.disconnect(this.update,this),this._model=e,e&&e.stateChanged.connect(this.update,this),this.update(),this._modelChanged.emit(void 0))}get model(){return this._model}dispose(){this.isDisposed||(this._model=null,super.dispose())}}class T extends v.Component{constructor(e){super(e),this.slot=(e,t)=>{this.props.shouldUpdate&&!this.props.shouldUpdate(e,t)||this.setState({value:[e,t]})},this.state={value:[this.props.initialSender,this.props.initialArgs]}}componentDidMount(){this.props.signal.connect(this.slot)}componentWillUnmount(){this.props.signal.disconnect(this.slot)}render(){return this.props.children(...this.state.value)}}class E{constructor(){this.stateChanged=new a.Signal(this),this._isDisposed=!1}get isDisposed(){return this._isDisposed}dispose(){this.isDisposed||(this._isDisposed=!0,a.Signal.clearData(this))}}var k,O=n(63050);class A{constructor(e){this._currentChanged=new a.Signal(this),this._isDisposed=!1,this._widgetAdded=new a.Signal(this),this._widgetUpdated=new a.Signal(this);const t=this._focusTracker=new l.FocusTracker,n=this._pool=new O.RestorablePool(e);this.namespace=e.namespace,t.currentChanged.connect(((e,t)=>{t.newValue!==this.currentWidget&&(n.current=t.newValue)}),this),n.added.connect(((e,t)=>{this._widgetAdded.emit(t)}),this),n.currentChanged.connect(((e,r)=>{null===r&&t.currentWidget?n.current=t.currentWidget:(this.onCurrentChanged(r),this._currentChanged.emit(r))}),this),n.updated.connect(((e,t)=>{this._widgetUpdated.emit(t)}),this)}get currentChanged(){return this._currentChanged}get currentWidget(){return this._pool.current||null}get restored(){return this._pool.restored}get size(){return this._pool.size}get widgetAdded(){return this._widgetAdded}get widgetUpdated(){return this._widgetUpdated}async add(e){this._focusTracker.add(e),await this._pool.add(e),this._focusTracker.activeWidget||(this._pool.current=e)}get isDisposed(){return this._isDisposed}dispose(){this.isDisposed||(this._isDisposed=!0,this._pool.dispose(),this._focusTracker.dispose(),a.Signal.clearData(this))}find(e){return this._pool.find(e)}forEach(e){return this._pool.forEach(e)}filter(e){return this._pool.filter(e)}inject(e){return this._pool.inject(e)}has(e){return this._pool.has(e)}async restore(e){return this._pool.restore(e)}async save(e){return this._pool.save(e)}onCurrentChanged(e){}}function P(e={}){return new R(e).launch()}function D(e,t,n=[R.okButton({label:"Dismiss"})]){console.warn("Showing error:",t);const r="string"==typeof t?t:t.message,i=e+"----"+r,s=k.errorMessagePromiseCache.get(i);if(s)return s;{const t=P({title:e,body:r,buttons:n}).then((()=>{k.errorMessagePromiseCache.delete(i)}),(e=>{throw k.errorMessagePromiseCache.delete(i),e}));return k.errorMessagePromiseCache.set(i,t),t}}class R extends l.Widget{constructor(e={}){super(),this._focusNodeSelector="",this.addClass("jp-Dialog");const t=k.handleOptions(e),n=t.renderer;if(this._host=t.host,this._defaultButton=t.defaultButton,this._buttons=t.buttons,this._hasClose=t.hasClose,this._buttonNodes=(0,_.toArray)((0,_.map)(this._buttons,(e=>n.createButtonNode(e)))),this._checkboxNode=null,t.checkbox){const{label:e="",caption:r="",checked:i=!1,className:s=""}=t.checkbox;this._checkboxNode=n.createCheckboxNode({label:e,caption:null!=r?r:e,checked:i,className:s})}this._lastMouseDownInDialog=!1;const r=this.layout=new l.PanelLayout,i=new l.Panel;i.addClass("jp-Dialog-content"),"string"==typeof e.body&&i.addClass("jp-Dialog-content-small"),r.addWidget(i),this._body=t.body;const s=n.createHeader(t.title,(()=>this.reject()),e),o=n.createBody(t.body),a=n.createFooter(this._buttonNodes,this._checkboxNode);i.addWidget(s),i.addWidget(o),i.addWidget(a),this._primary=this._buttonNodes[this._defaultButton],this._focusNodeSelector=e.focusNodeSelector,R.tracker.add(this)}dispose(){const e=this._promise;e&&(this._promise=null,e.reject(void 0),_.ArrayExt.removeFirstOf(k.launchQueue,e.promise)),super.dispose()}launch(){if(this._promise)return this._promise.promise;const e=this._promise=new s.PromiseDelegate,t=Promise.all(k.launchQueue);return k.launchQueue.push(this._promise.promise),t.then((()=>this._promise?(l.Widget.attach(this,this._host),e.promise):Promise.resolve({button:R.cancelButton(),isChecked:null,value:null})))}resolve(e){this._promise&&(void 0===e&&(e=this._defaultButton),this._resolve(this._buttons[e]))}reject(){this._promise&&this._resolve(R.cancelButton())}handleEvent(e){switch(e.type){case"keydown":this._evtKeydown(e);break;case"mousedown":this._evtMouseDown(e);break;case"click":this._evtClick(e);break;case"focus":this._evtFocus(e);break;case"contextmenu":e.preventDefault(),e.stopPropagation()}}onAfterAttach(e){var t;const n=this.node;if(n.addEventListener("keydown",this,!0),n.addEventListener("contextmenu",this,!0),n.addEventListener("click",this,!0),document.addEventListener("mousedown",this,!0),document.addEventListener("focus",this,!0),this._first=k.findFirstFocusable(this.node),this._original=document.activeElement,this._focusNodeSelector){const e=this.node.querySelector(".jp-Dialog-body"),t=null==e?void 0:e.querySelector(this._focusNodeSelector);t&&(this._primary=t)}null===(t=this._primary)||void 0===t||t.focus()}onAfterDetach(e){const t=this.node;t.removeEventListener("keydown",this,!0),t.removeEventListener("contextmenu",this,!0),t.removeEventListener("click",this,!0),document.removeEventListener("focus",this,!0),document.removeEventListener("mousedown",this,!0),this._original.focus()}onCloseRequest(e){this._promise&&this.reject(),super.onCloseRequest(e)}_evtClick(e){if(!this.node.getElementsByClassName("jp-Dialog-content")[0].contains(e.target))return e.stopPropagation(),e.preventDefault(),void(this._hasClose&&!this._lastMouseDownInDialog&&this.reject());for(const t of this._buttonNodes)if(t.contains(e.target)){const e=this._buttonNodes.indexOf(t);this.resolve(e)}}_evtKeydown(e){switch(e.keyCode){case 27:e.stopPropagation(),e.preventDefault(),this._hasClose&&this.reject();break;case 37:{const t=document.activeElement;if(t instanceof HTMLButtonElement){let n=this._buttonNodes.indexOf(t)-1;n<0&&(n=this._buttonNodes.length-1);const r=this._buttonNodes[n];e.stopPropagation(),e.preventDefault(),r.focus()}break}case 39:{const t=document.activeElement;if(t instanceof HTMLButtonElement){let n=this._buttonNodes.indexOf(t)+1;n==this._buttons.length&&(n=0);const r=this._buttonNodes[n];e.stopPropagation(),e.preventDefault(),r.focus()}break}case 9:{const t=this._buttonNodes[this._buttons.length-1];document.activeElement!==t||e.shiftKey||(e.stopPropagation(),e.preventDefault(),this._first.focus());break}case 13:{e.stopPropagation(),e.preventDefault();const t=document.activeElement;let n;t instanceof HTMLButtonElement&&(n=this._buttonNodes.indexOf(t)),this.resolve(n);break}}}_evtFocus(e){var t;const n=e.target;this.node.contains(n)||(e.stopPropagation(),null===(t=this._buttonNodes[this._defaultButton])||void 0===t||t.focus())}_evtMouseDown(e){const t=this.node.getElementsByClassName("jp-Dialog-content")[0],n=e.target;this._lastMouseDownInDialog=t.contains(n)}_resolve(e){var t,n,r;const i=this._promise;if(!i)return void this.dispose();this._promise=null,_.ArrayExt.removeFirstOf(k.launchQueue,i.promise);const s=this._body;let o=null;e.accept&&s instanceof l.Widget&&"function"==typeof s.getValue&&(o=s.getValue()),this.dispose(),i.resolve({button:e,isChecked:null!==(r=null===(n=null===(t=this._checkboxNode)||void 0===t?void 0:t.querySelector("input"))||void 0===n?void 0:n.checked)&&void 0!==r?r:null,value:o})}}!function(e){function t(e){e.accept=!1!==e.accept;const t=e.accept?"OK":"Cancel";return{label:e.label||t,iconClass:e.iconClass||"",iconLabel:e.iconLabel||"",caption:e.caption||"",className:e.className||"",accept:e.accept,actions:e.actions||[],displayType:e.displayType||"default"}}e.createButton=t,e.cancelButton=function(e={}){return e.accept=!1,t(e)},e.okButton=function(e={}){return e.accept=!0,t(e)},e.warnButton=function(e={}){return e.displayType="warn",t(e)},e.flush=function(){e.tracker.forEach((e=>{e.dispose()}))};class n{createHeader(e,t=(()=>{}),n={}){let r;return r="string"==typeof e?x.create(v.createElement(v.Fragment,null,e,n.hasClose&&v.createElement(o.Button,{className:"jp-Dialog-close-button",onMouseDown:e=>{0===e.button&&(e.preventDefault(),t())},onKeyDown:e=>{const{key:n}=e;"Enter"!==n&&" "!==n||t()},title:"Cancel",minimal:!0},v.createElement(o.LabIcon.resolveReact,{icon:o.closeIcon,iconClass:"jp-Icon",className:"jp-ToolbarButtonComponent-icon",tag:"span"})))):x.create(e),r.addClass("jp-Dialog-header"),m.styleNode(r.node),r}createBody(e){let t;return"string"==typeof e?(t=new l.Widget({node:document.createElement("span")}),t.node.textContent=e):e instanceof l.Widget?t=e:(t=x.create(e),y.MessageLoop.sendMessage(t,l.Widget.Msg.UpdateRequest)),t.addClass("jp-Dialog-body"),m.styleNode(t.node),t}createFooter(e,t){const n=new l.Widget;return n.addClass("jp-Dialog-footer"),t&&(n.node.appendChild(t),n.node.insertAdjacentHTML("beforeend",'')),(0,_.each)(e,(e=>{n.node.appendChild(e)})),m.styleNode(n.node),n}createButtonNode(e){const t=document.createElement("button");return t.className=this.createItemClass(e),t.appendChild(this.renderIcon(e)),t.appendChild(this.renderLabel(e)),t}createCheckboxNode(e){const t=document.createElement("label");t.className="jp-Dialog-checkbox",e.className&&t.classList.add(e.className),t.title=e.caption,t.textContent=e.label;const n=document.createElement("input");return n.type="checkbox",n.checked=!!e.checked,t.insertAdjacentElement("afterbegin",n),t}createItemClass(e){let t="jp-Dialog-button";e.accept?t+=" jp-mod-accept":t+=" jp-mod-reject","warn"===e.displayType&&(t+=" jp-mod-warn");const n=e.className;return n&&(t+=` ${n}`),t}renderIcon(e){const t=document.createElement("div");return t.className=this.createIconClass(e),t.appendChild(document.createTextNode(e.iconLabel)),t}createIconClass(e){const t="jp-Dialog-buttonIcon",n=e.iconClass;return n?`${t} ${n}`:t}renderLabel(e){const t=document.createElement("div");return t.className="jp-Dialog-buttonLabel",t.title=e.caption,t.appendChild(document.createTextNode(e.label)),t}}e.Renderer=n,e.defaultRenderer=new n,e.tracker=new A({namespace:"@jupyterlab/apputils:Dialog"})}(R||(R={})),function(e){e.launchQueue=[],e.errorMessagePromiseCache=new Map,e.handleOptions=function(e={}){var t,n,r,i,s,o,a,l,c;const u=null!==(t=e.buttons)&&void 0!==t?t:[R.cancelButton(),R.okButton()];return{title:null!==(n=e.title)&&void 0!==n?n:"",body:null!==(r=e.body)&&void 0!==r?r:"",host:null!==(i=e.host)&&void 0!==i?i:document.body,checkbox:null!==(s=e.checkbox)&&void 0!==s?s:null,buttons:u,defaultButton:null!==(o=e.defaultButton)&&void 0!==o?o:u.length-1,renderer:null!==(a=e.renderer)&&void 0!==a?a:R.defaultRenderer,focusNodeSelector:null!==(l=e.focusNodeSelector)&&void 0!==l?l:"",hasClose:null===(c=e.hasClose)||void 0===c||c}},e.findFirstFocusable=function(e){const t=["input","select","a[href]","textarea","button","[tabindex]"].join(",");return e.querySelectorAll(t)[0]}}(k||(k={}));var I,N=n(33349);!function(e){e.hitTestNodes=function(e,t,n){return _.ArrayExt.findFirstIndex(e,(e=>N.ElementExt.hitTest(e,t,n)))},e.findElement=function(e,t){return e.querySelector(`.${t}`)},e.findElements=function(e,t){return e.getElementsByClassName(t)},e.createDomID=function(){return`id-${s.UUID.uuid4()}`}}(I||(I={}));const L="jp-mod-outofview";var B,M,j;!function(e){e.setGeometry=function(e){const{anchor:t,host:n,node:r,privilege:i,outOfViewDisplay:s}=e;r.classList.add("jp-HoverBox"),r.classList.remove(L),r.style.maxHeight="",r.style.marginTop="";const o=e.style||window.getComputedStyle(r),a=window.innerHeight,l=t.top,c=a-t.bottom,u=parseInt(o.marginTop,10)||0,d=parseInt(o.marginLeft,10)||0,h=parseInt(o.minHeight,10)||e.minHeight;let p=parseInt(o.maxHeight,10)||e.maxHeight;const f="forceAbove"!==i&&("forceBelow"===i||("above"===i?l=p||c>=l));if(f?p=Math.min(c-u,p):(p=Math.min(l,p),r.style.marginTop="0px"),r.style.maxHeight=`${p}px`,!(p>h&&(c>=h||l>=h)))return void r.classList.add(L);const g=e.offset&&e.offset.vertical&&e.offset.vertical.above||0,m=e.offset&&e.offset.vertical&&e.offset.vertical.below||0;let b=f?a-c+m:l-r.getBoundingClientRect().height+g;r.style.top=`${Math.floor(b)}px`;const _=e.offset&&e.offset.horizontal||0;let y=t.left+_;r.style.left=`${Math.ceil(y)}px`,r.style.width="auto",r.scrollHeight>=p&&(r.style.width=""+(2*r.offsetWidth-r.clientWidth),r.scrollTop=0);const v=r.getBoundingClientRect(),w=n.getBoundingClientRect(),C=v.right;C>window.innerWidth&&(y-=C-window.innerWidth,r.style.left=`${Math.ceil(y)}px`),y<_-d&&(y=_-d,r.style.left=`${Math.ceil(y)}px`),r.classList.add(L);const x=v.bottom,S=n.contains(document.elementFromPoint(y,b)),T=n.contains(document.elementFromPoint(C,b)),E=n.contains(document.elementFromPoint(C,x)),k=n.contains(document.elementFromPoint(y,x)),O=S||T,A=k||E,P=S||k,D=E||T,R=x-b,I=C-y,N=bw.bottom,M=y+dw.right;let q=!1,$=!1,F=!1;if(N)switch((null==s?void 0:s.top)||"hidden-inside"){case"hidden-inside":O||(q=!0);break;case"hidden-outside":A||(q=!0);break;case"stick-inside":w.top>b&&(b=w.top,F=!0);break;case"stick-outside":w.top>x&&(b=w.top-R,F=!0)}if(B)switch((null==s?void 0:s.bottom)||"hidden-outside"){case"hidden-inside":A||(q=!0);break;case"hidden-outside":O||(q=!0);break;case"stick-inside":w.bottomy+d&&(y=w.left-d,$=!0);break;case"stick-outside":w.left>C&&(y=w.left-d-I,$=!0)}if(j)switch((null==s?void 0:s.right)||"hidden-outside"){case"hidden-inside":D||(q=!0);break;case"hidden-outside":P||(q=!0);break;case"stick-inside":w.right0&&this._input.value&&this._input.setSelectionRange(0,this._initialSelectionRange)}getValue(){return this._input.value}}class z extends ${constructor(e){super(e.label),this._input.type="password",this._input.value=e.text?e.text:"",e.placeholder&&(this._input.placeholder=e.placeholder)}onAfterAttach(e){super.onAfterAttach(e),this._input.value&&this._input.select()}getValue(){return this._input.value}}class W extends ${constructor(e){super(e.label),this._editable=e.editable||!1;let t,n=e.current||0;if("number"==typeof n&&(t=Math.max(0,Math.min(n,e.items.length-1)),n=""),this._list=document.createElement("select"),e.items.forEach(((e,r)=>{const i=document.createElement("option");r===t&&(i.selected=!0,n=e),i.value=e,i.textContent=e,this._list.appendChild(i)})),e.editable){const t=document.createElement("datalist");t.id="input-dialog-items",t.appendChild(this._list),this._input.type="list",this._input.value=n,this._input.setAttribute("list",t.id),e.placeholder&&(this._input.placeholder=e.placeholder),this.node.appendChild(t)}else this._input.remove(),this.node.appendChild(m.wrapSelect(this._list))}getValue(){return this._editable?this._input.value:this._list.value}}var G,V=n(4265),K=n(20435);!function(e){function t(t){return!("object"!=typeof t||!t)&&e.symbol in t}async function n(e){const t="string"==typeof e,n=function(){const e=window.document.createElement("iframe");e.setAttribute("sandbox","allow-modals allow-same-origin");return e.setAttribute("style","visibility:hidden;width:0;height:0;position:absolute;z-index:-9999;bottom:0;"),e.setAttribute("width","0"),e.setAttribute("height","0"),e}(),i=window.document.body;i.appendChild(n),t?(n.srcdoc=e,await r(n)):(n.src="about:blank",await r(n),function(e,t){e.contentDocument.body.appendChild(t.cloneNode(!0)),e.contentDocument.close()}(n,e));const s=new Promise((e=>{const t=()=>{document.removeEventListener("mousemove",t,!0),document.removeEventListener("mousedown",t,!0),document.removeEventListener("keydown",t,!0),e()};document.addEventListener("mousemove",t,!0),document.addEventListener("mousedown",t,!0),document.addEventListener("keydown",t,!0)}));var o;(o=n.contentWindow).document.execCommand("print",!1)||o.print(),await s,i.removeChild(n)}function r(e){return new Promise((t=>{e.onload=()=>t()}))}e.symbol=Symbol("printable"),e.isPrintable=t,e.getPrintFunction=function(n){return t(n)?n[e.symbol]():null},e.printWidget=function(e){return n(e.node)},e.printURL=async function(e){const t=K.ServerConnection.makeSettings();return n(await(await K.ServerConnection.makeRequest(e,{},t)).text())}}(G||(G={}));class Y extends l.Widget{constructor(){super(),this.addClass("jp-Spinner"),this.node.tabIndex=-1;const e=document.createElement("div");e.className="jp-SpinnerContent",this.node.appendChild(e)}onActivateRequest(e){this.node.focus()}}var X=n(72867),J=n(89116),Z=n(55941);class Q{constructor(e){var t,n,r,i;this._path="",this._name="",this._type="",this._prevKernelName="",this._isDisposed=!1,this._disposed=new a.Signal(this),this._session=null,this._ready=new s.PromiseDelegate,this._initializing=!1,this._initStarted=new s.PromiseDelegate,this._initPromise=new s.PromiseDelegate,this._isReady=!1,this._isTerminating=!1,this._isRestarting=!1,this._kernelChanged=new a.Signal(this),this._sessionChanged=new a.Signal(this),this._statusChanged=new a.Signal(this),this._connectionStatusChanged=new a.Signal(this),this._pendingInput=!1,this._iopubMessage=new a.Signal(this),this._unhandledMessage=new a.Signal(this),this._propertyChanged=new a.Signal(this),this._dialog=null,this._busyDisposable=null,this._pendingKernelName="",this._pendingSessionRequest="",this.sessionManager=e.sessionManager,this.specsManager=e.specsManager,this.translator=e.translator||V.nullTranslator,this._trans=this.translator.load("jupyterlab"),this._path=null!==(t=e.path)&&void 0!==t?t:s.UUID.uuid4(),this._type=null!==(n=e.type)&&void 0!==n?n:"",this._name=null!==(r=e.name)&&void 0!==r?r:"",this._setBusy=e.setBusy,this._kernelPreference=null!==(i=e.kernelPreference)&&void 0!==i?i:{}}get session(){var e;return null!==(e=this._session)&&void 0!==e?e:null}get path(){return this._path}get type(){return this._type}get name(){return this._name}get kernelChanged(){return this._kernelChanged}get sessionChanged(){return this._sessionChanged}get statusChanged(){return this._statusChanged}get pendingInput(){return this._pendingInput}get connectionStatusChanged(){return this._connectionStatusChanged}get iopubMessage(){return this._iopubMessage}get unhandledMessage(){return this._unhandledMessage}get propertyChanged(){return this._propertyChanged}get kernelPreference(){return this._kernelPreference}set kernelPreference(e){this._kernelPreference=e}get isReady(){return this._isReady}get ready(){return this._ready.promise}get isTerminating(){return this._isTerminating}get isRestarting(){return this._isRestarting}get hasNoKernel(){return this.kernelDisplayName===this.noKernelName}get kernelDisplayName(){var e,t,n,r,i,s,o,a,l,c;const u=null===(e=this.session)||void 0===e?void 0:e.kernel;if(this._pendingKernelName===this.noKernelName)return this.noKernelName;if(!u&&!this.isReady&&!1!==this.kernelPreference.canStart&&!1!==this.kernelPreference.shouldStart){let e=this._pendingKernelName||Q.getDefaultKernel({specs:this.specsManager.specs,sessions:this.sessionManager.running(),preference:this.kernelPreference})||"";return e?(e=null!==(r=null===(n=null===(t=this.specsManager.specs)||void 0===t?void 0:t.kernelspecs[e])||void 0===n?void 0:n.display_name)&&void 0!==r?r:e,e):this.noKernelName}return this._pendingKernelName?null!==(o=null===(s=null===(i=this.specsManager.specs)||void 0===i?void 0:i.kernelspecs[this._pendingKernelName])||void 0===s?void 0:s.display_name)&&void 0!==o?o:this._pendingKernelName:u?null!==(c=null===(l=null===(a=this.specsManager.specs)||void 0===a?void 0:a.kernelspecs[u.name])||void 0===l?void 0:l.display_name)&&void 0!==c?c:u.name:this.noKernelName}get kernelDisplayStatus(){var e,t;const n=null===(e=this.session)||void 0===e?void 0:e.kernel;return this._isTerminating?"terminating":this._isRestarting?"restarting":this._pendingKernelName===this.noKernelName?"unknown":!n&&this._pendingKernelName?"initializing":n||this.isReady||!1===this.kernelPreference.canStart||!1===this.kernelPreference.shouldStart?null!==(t="connected"===(null==n?void 0:n.connectionStatus)?null==n?void 0:n.status:null==n?void 0:n.connectionStatus)&&void 0!==t?t:"unknown":"initializing"}get prevKernelName(){return this._prevKernelName}get isDisposed(){return this._isDisposed}get disposed(){return this._disposed}get noKernelName(){return this._trans.__("No Kernel")}dispose(){this._isDisposed||(this._isDisposed=!0,this._disposed.emit(),this._session&&(this.kernelPreference.shutdownOnDispose&&this.sessionManager.shutdown(this._session.id).catch((e=>{console.error(`Kernel not shut down ${e}`)})),this._session.dispose(),this._session=null),this._dialog&&this._dialog.dispose(),this._busyDisposable&&(this._busyDisposable.dispose(),this._busyDisposable=null),a.Signal.clearData(this))}async restartKernel(){var e,t,n,r,i,s;const o=(null===(e=this.session)||void 0===e?void 0:e.kernel)||null;if(!this._isRestarting){this._isRestarting=!0,this._isReady=!1,this._statusChanged.emit("restarting");try{await(null===(n=null===(t=this.session)||void 0===t?void 0:t.kernel)||void 0===n?void 0:n.restart()),this._isReady=!0}catch(e){console.error(e)}this._isRestarting=!1,this._statusChanged.emit((null===(i=null===(r=this.session)||void 0===r?void 0:r.kernel)||void 0===i?void 0:i.status)||"unknown"),this._kernelChanged.emit({name:"kernel",oldValue:o,newValue:(null===(s=this.session)||void 0===s?void 0:s.kernel)||null})}}async changeKernel(e={}){if(this.isDisposed)throw new Error("Disposed");return await this._initStarted.promise,this._changeKernel(e)}async shutdown(){if(!this.isDisposed&&this._initializing)return await this._initStarted.promise,this._pendingSessionRequest="",this._pendingKernelName=this.noKernelName,this._shutdownSession()}async initialize(){if(this._initializing)return this._initPromise.promise;this._initializing=!0;const e=await this._initialize();return e||(this._isReady=!0,this._ready.resolve(void 0)),this._pendingSessionRequest||this._initStarted.resolve(void 0),this._initPromise.resolve(e),e}async _initialize(){const e=this.sessionManager;await e.ready,await e.refreshRunning();const t=(0,_.find)(e.running(),(e=>e.path===this._path));if(t)try{const n=e.connectTo({model:t});this._handleNewSession(n)}catch(e){return this._handleSessionError(e),Promise.reject(e)}return await this._startIfNecessary()}async _shutdownSession(){var e;const t=this._session,n=this._isTerminating,r=this._isReady;this._isTerminating=!0,this._isReady=!1,this._statusChanged.emit("terminating");try{await(null==t?void 0:t.shutdown()),this._isTerminating=!1,null==t||t.dispose(),this._session=null;const e=(null==t?void 0:t.kernel)||null;this._statusChanged.emit("unknown"),this._kernelChanged.emit({name:"kernel",oldValue:e,newValue:null}),this._sessionChanged.emit({name:"session",oldValue:t,newValue:null})}catch(i){this._isTerminating=n,this._isReady=r;const s=null===(e=null==t?void 0:t.kernel)||void 0===e?void 0:e.status;throw void 0===s?this._statusChanged.emit("unknown"):this._statusChanged.emit(s),i}}async _startIfNecessary(){var e;const t=this.kernelPreference;if(this.isDisposed||(null===(e=this.session)||void 0===e?void 0:e.kernel)||!1===t.shouldStart||!1===t.canStart)return!1;let n;if(t.id)n={id:t.id};else{const e=Q.getDefaultKernel({specs:this.specsManager.specs,sessions:this.sessionManager.running(),preference:t});e&&(n={name:e})}if(n)try{return await this._changeKernel(n),!1}catch(e){}return!0}async _changeKernel(e={},t=!1){if(e.name&&(this._pendingKernelName=e.name),this._session||this._kernelChanged.emit({name:"kernel",oldValue:null,newValue:null}),this._pendingSessionRequest||this._initStarted.resolve(void 0),this._session&&!this._isTerminating)try{return await this._session.changeKernel(e),this._session.kernel}catch(e){throw this._handleSessionError(e),e}const n=Z.PathExt.dirname(this._path),r=this._pendingSessionRequest=Z.PathExt.join(n,s.UUID.uuid4());try{this._statusChanged.emit("starting");const t=await this.sessionManager.startNew({path:r,type:this._type,name:this._name,kernel:e});return this._pendingSessionRequest!==t.path?(await t.shutdown(),t.dispose(),null):(await t.setPath(this._path),await t.setName(this._name),this._session&&!this._isTerminating&&await this._shutdownSession(),this._handleNewSession(t))}catch(e){throw this._handleSessionError(e),e}}_handleNewSession(e){var t,n,r;if(this.isDisposed)throw Error("Disposed");return this._isReady||(this._isReady=!0,this._ready.resolve(void 0)),this._session&&this._session.dispose(),this._session=e,this._pendingKernelName="",e&&(this._prevKernelName=null!==(n=null===(t=e.kernel)||void 0===t?void 0:t.name)&&void 0!==n?n:"",e.disposed.connect(this._onSessionDisposed,this),e.propertyChanged.connect(this._onPropertyChanged,this),e.kernelChanged.connect(this._onKernelChanged,this),e.statusChanged.connect(this._onStatusChanged,this),e.connectionStatusChanged.connect(this._onConnectionStatusChanged,this),e.pendingInput.connect(this._onPendingInput,this),e.iopubMessage.connect(this._onIopubMessage,this),e.unhandledMessage.connect(this._onUnhandledMessage,this),e.path!==this._path&&this._onPropertyChanged(e,"path"),e.name!==this._name&&this._onPropertyChanged(e,"name"),e.type!==this._type&&this._onPropertyChanged(e,"type")),this._sessionChanged.emit({name:"session",oldValue:null,newValue:e}),this._kernelChanged.emit({oldValue:null,newValue:(null==e?void 0:e.kernel)||null,name:"kernel"}),this._statusChanged.emit((null===(r=null==e?void 0:e.kernel)||void 0===r?void 0:r.status)||"unknown"),(null==e?void 0:e.kernel)||null}async _handleSessionError(e){this._handleNewSession(null);let t="",n="";try{t=e.traceback,n=e.message}catch(e){}await this._displayKernelError(n,t)}async _displayKernelError(e,t){const n=v.createElement("div",null,e&&v.createElement("pre",null,e),t&&v.createElement("details",{className:"jp-mod-wide"},v.createElement("pre",null,t))),r=this._dialog=new R({title:this._trans.__("Error Starting Kernel"),body:n,buttons:[R.okButton()]});await r.launch(),this._dialog=null}_onSessionDisposed(){if(this._session){const e=this._session;this._session=null;const t=this._session;this._sessionChanged.emit({name:"session",oldValue:e,newValue:t})}}_onPropertyChanged(e,t){switch(t){case"path":this._path=e.path;break;case"name":this._name=e.name;break;case"type":this._type=e.type;break;default:throw new Error(`unrecognized property ${t}`)}this._propertyChanged.emit(t)}_onKernelChanged(e,t){this._kernelChanged.emit(t)}_onStatusChanged(e,t){var n;if("dead"===t){const t=null===(n=e.kernel)||void 0===n?void 0:n.model;if(null==t?void 0:t.reason){const e=t.traceback||"";this._displayKernelError(t.reason,e)}}this._setBusy&&("busy"===t?this._busyDisposable||(this._busyDisposable=this._setBusy()):this._busyDisposable&&(this._busyDisposable.dispose(),this._busyDisposable=null)),this._statusChanged.emit(t)}_onConnectionStatusChanged(e,t){this._connectionStatusChanged.emit(t)}_onPendingInput(e,t){this._pendingInput=t}_onIopubMessage(e,t){"shutdown_reply"===t.header.msg_type&&this.session.kernel.removeInputGuard(),this._iopubMessage.emit(t)}_onUnhandledMessage(e,t){this._unhandledMessage.emit(t)}}!function(e){e.getDefaultKernel=function(e){return te.getDefaultKernel(e)}}(Q||(Q={}));const ee={async selectKernel(e,t){if(e.isDisposed)return Promise.resolve();const n=(t=t||V.nullTranslator).load("jupyterlab");let r=n.__("Cancel");e.hasNoKernel&&(r=e.kernelDisplayName);const i=[R.cancelButton({label:r}),R.okButton({label:n.__("Select")})],s=new R({title:n.__("Select Kernel"),body:new te.KernelSelector(e,t),buttons:i}),o=await s.launch();if(e.isDisposed||!o.button.accept)return;const a=o.value;if(null===a&&!e.hasNoKernel)return e.shutdown();a&&await e.changeKernel(a)},async restart(e,t){var n;const r=(t=t||V.nullTranslator).load("jupyterlab");if(await e.initialize(),e.isDisposed)throw new Error("session already disposed");const i=null===(n=e.session)||void 0===n?void 0:n.kernel;if(!i&&e.prevKernelName)return await e.changeKernel({name:e.prevKernelName}),!0;if(!i)throw new Error("No kernel to restart");const s=R.warnButton({label:"Restart"}),o=await P({title:r.__("Restart Kernel?"),body:r.__("Do you want to restart the current kernel? All variables will be lost."),buttons:[R.cancelButton(),s]});return!i.isDisposed&&!!o.button.accept&&(await e.restartKernel(),!0)}};var te;function ne(e){const t=(e=e||V.nullTranslator).load("jupyterlab");return{unknown:t.__("Unknown"),starting:t.__("Starting"),idle:t.__("Idle"),busy:t.__("Busy"),terminating:t.__("Terminating"),restarting:t.__("Restarting"),autorestarting:t.__("Autorestarting"),dead:t.__("Dead"),connected:t.__("Connected"),connecting:t.__("Connecting"),disconnected:t.__("Disconnected"),initializing:t.__("Initializing"),"":""}}!function(e){class t extends l.Widget{constructor(e,t){super({node:n(e,t)})}getValue(){const e=this.node.querySelector("select");return JSON.parse(e.value)}}function n(e,t){const n=(t=t||V.nullTranslator).load("jupyterlab"),i=document.createElement("div"),s=document.createElement("label");s.textContent=`${n.__("Select kernel for:")} "${e.name}"`,i.appendChild(s);const o=function(e){return{specs:e.specsManager.specs,sessions:e.sessionManager.running(),preference:e.kernelPreference}}(e),a=document.createElement("select");return r(a,o,t,e.hasNoKernel?null:e.kernelDisplayName),i.appendChild(a),i}function r(e,t,n,r=null){for(;e.firstChild;)e.removeChild(e.firstChild);const{preference:a,sessions:l,specs:c}=t,{name:u,id:d,language:h,canStart:p,shouldStart:f}=a,g=(n=n||V.nullTranslator).load("jupyterlab");if(!c||!1===p)return e.appendChild(s(n)),e.value="null",void(e.disabled=!0);e.disabled=!1;const m=Object.create(null),b=Object.create(null);for(const e in c.kernelspecs){const t=c.kernelspecs[e];m[e]=t.display_name,b[e]=t.language}const y=[];if(u&&u in c.kernelspecs&&y.push(u),h)for(const e in c.kernelspecs)u!==e&&b[e]===h&&y.push(e);y.length||y.push(c.default);const v=document.createElement("optgroup");v.label=g.__("Start Preferred Kernel"),y.sort(((e,t)=>m[e].localeCompare(m[t])));for(const e of y)v.appendChild(i(e,m[e]));v.firstChild&&e.appendChild(v),e.appendChild(s());const w=document.createElement("optgroup");w.label=g.__("Start Other Kernel");const C=[];for(const e in c.kernelspecs)-1===y.indexOf(e)&&C.push(e);C.sort(((e,t)=>m[e].localeCompare(m[t])));for(const e of C)w.appendChild(i(e,m[e]));if(C.length&&e.appendChild(w),!1===f)e.value="null";else{let t=0;r&&(t=[...e.options].findIndex((e=>e.text===r)),t=Math.max(t,0)),e.selectedIndex=t}if(!l)return;const x=[],S=[];(0,_.each)(l,(e=>{var t;h&&e.kernel&&b[e.kernel.name]===h&&e.kernel.id!==d?x.push(e):(null===(t=e.kernel)||void 0===t?void 0:t.id)!==d&&S.push(e)}));const T=document.createElement("optgroup");T.label=g.__("Use Kernel from Preferred Session"),e.appendChild(T),x.length&&(x.sort(((e,t)=>e.path.localeCompare(t.path))),(0,_.each)(x,(e=>{const t=e.kernel?m[e.kernel.name]:"";T.appendChild(o(e,t,n))})));const E=document.createElement("optgroup");E.label=g.__("Use Kernel from Other Session"),e.appendChild(E),S.length&&(S.sort(((e,t)=>e.path.localeCompare(t.path))),(0,_.each)(S,(e=>{const t=e.kernel?m[e.kernel.name]||e.kernel.name:"";E.appendChild(o(e,t,n))})))}function i(e,t){const n=document.createElement("option");return n.text=t,n.value=JSON.stringify({name:e}),n}function s(e){const t=(e=e||V.nullTranslator).load("jupyterlab"),n=document.createElement("optgroup");n.label=t.__("Use No Kernel");const r=document.createElement("option");return r.text=t.__("No Kernel"),r.value="null",n.appendChild(r),n}function o(e,t,n){var r,i;const s=(n=n||V.nullTranslator).load("jupyterlab"),o=document.createElement("option"),a=e.name||Z.PathExt.basename(e.path);return o.text=a,o.value=JSON.stringify({id:null===(r=e.kernel)||void 0===r?void 0:r.id}),o.title=`${s.__("Path:")} ${e.path}\n${s.__("Name:")} ${a}\n${s.__("Kernel Name:")} ${t}\n${s.__("Kernel Id:")} ${null===(i=e.kernel)||void 0===i?void 0:i.id}`,o}e.KernelSelector=t,e.getDefaultKernel=function(e){var t;const{specs:n,preference:r}=e,{name:i,language:s,shouldStart:o,canStart:a,autoStartDefault:l}=r;if(!n||!1===o||!1===a)return null;const c=l?n.default:null;if(!i&&!s)return c;for(const e in n.kernelspecs)if(e===i)return i;if(!s)return c;const u=[];for(const e in n.kernelspecs)s===(null===(t=n.kernelspecs[e])||void 0===t?void 0:t.language)&&u.push(e);if(1===u.length){const e=u[0];return console.warn("No exact match found for "+e+", using kernel "+e+" that matches language="+s),e}return c},e.populateKernelSelect=r}(te||(te={}));var re=n(61313);const ie="toolbar-popup-opener",se="jp-Toolbar-spacer";class oe extends l.PanelLayout{constructor(){super(...arguments),this._dirty=!1}onFitRequest(e){super.onFitRequest(e),this.parent.isAttached&&((0,_.some)(this.widgets,(e=>!e.isHidden))?(this.parent.node.style.minHeight="var(--jp-private-toolbar-height)",this.parent.removeClass("jp-Toolbar-micro")):(this.parent.node.style.minHeight="",this.parent.addClass("jp-Toolbar-micro"))),this._dirty=!0,this.parent.parent&&y.MessageLoop.sendMessage(this.parent.parent,l.Widget.Msg.FitRequest),this._dirty&&y.MessageLoop.sendMessage(this.parent,l.Widget.Msg.UpdateRequest)}onUpdateRequest(e){super.onUpdateRequest(e),this.parent.isVisible&&(this._dirty=!1)}onChildShown(e){super.onChildShown(e),this.parent.fit()}onChildHidden(e){super.onChildHidden(e),this.parent.fit()}onBeforeAttach(e){super.onBeforeAttach(e),this.parent.fit()}attachWidget(e,t){super.attachWidget(e,t),this.parent.fit()}detachWidget(e,t){super.detachWidget(e,t),this.parent.fit()}}class ae extends l.Widget{constructor(e={}){var t;super(),this.addClass("jp-Toolbar"),this.layout=null!==(t=e.layout)&&void 0!==t?t:new oe}names(){const e=this.layout;return(0,_.map)(e.widgets,(e=>be.nameProperty.get(e)))}addItem(e,t){const n=this.layout;return this.insertItem(n.widgets.length,e,t)}insertItem(e,t,n){if((0,_.find)(this.names(),(e=>e===t)))return!1;n.addClass("jp-Toolbar-item");const r=this.layout,i=Math.max(0,Math.min(e,r.widgets.length));return r.insertWidget(i,n),be.nameProperty.set(n,t),!0}insertAfter(e,t,n){return this._insertRelative(e,1,t,n)}insertBefore(e,t,n){return this._insertRelative(e,0,t,n)}_insertRelative(e,t,n,r){const i=(0,_.map)(this.names(),((e,t)=>({name:e,index:t}))),s=(0,_.find)(i,(t=>t.name===e));return!!s&&this.insertItem(s.index+t,n,r)}handleEvent(e){"click"===e.type&&this.handleClick(e)}handleClick(e){if(e.stopPropagation(),e.target instanceof HTMLLabelElement){const t=e.target.getAttribute("for");if(t&&this.node.querySelector(`#${t}`))return}this.node.contains(document.activeElement)||this.parent&&this.parent.activate()}onAfterAttach(e){this.node.addEventListener("click",this)}onBeforeDetach(e){this.node.removeEventListener("click",this)}}class le extends ae{constructor(){super(),this.popupOpener=new me,this._widgetWidths={},this.insertItem(0,ie,this.popupOpener),this.popupOpener.hide(),this._resizer=new re.Throttler(this._onResize.bind(this),500)}dispose(){this.isDisposed||(this._resizer&&this._resizer.dispose(),super.dispose())}insertAfter(e,t,n){return e!==ie&&super.insertAfter(e,t,n)}insertItem(e,t,n){if(n instanceof me)return super.insertItem(e,t,n);{const r=Math.max(0,Math.min(e,this.layout.widgets.length-1));return super.insertItem(r,t,n)}}onBeforeHide(e){this.popupOpener.hidePopup(),super.onBeforeHide(e)}onResize(e){super.onResize(e),e.width>0&&this._resizer&&this._resizer.invoke()}_onResize(){if(this.parent&&this.parent.isAttached){const e=this.node.clientWidth,t=this.popupOpener,n=30,r=2,i=this.layout;let s=t.isHidden?r:r+n,o=0;const a=[],l=i.widgets.length-1;for(;oe&&(s+=n),s>e&&a.push(r),o++}for(;a.length>0;){const e=a.pop();s-=this._getWidgetWidth(e),t.addWidget(e)}if(t.widgetCount()>0){const r=[];let i=0,o=t.widgetAt(i);const a=t.widgetCount();for(s+=this._getWidgetWidth(o),1===a&&s-n<=e&&(s-=n);s0;){const e=r.shift();this.addItem(be.nameProperty.get(e),e)}}t.widgetCount()>0?(t.updatePopup(),t.show()):t.hide()}}_saveWidgetWidth(e){const t=be.nameProperty.get(e);this._widgetWidths[t]=e.hasClass(se)?2:e.node.clientWidth}_getWidgetWidth(e){const t=be.nameProperty.get(e);return this._widgetWidths[t]}}function ce(e){var t,n;return v.createElement(o.Button,Object.assign({className:e.className?e.className+" jp-ToolbarButtonComponent":"jp-ToolbarButtonComponent","aria-pressed":e.pressed,"aria-disabled":!1===e.enabled},e.dataset,{disabled:!1===e.enabled,onClick:null!==(t=e.actualOnClick)&&void 0!==t&&t?t=>{var n;0===t.button&&(null===(n=e.onClick)||void 0===n||n.call(e))}:void 0,onMouseDown:null!==(n=e.actualOnClick)&&void 0!==n&&n?void 0:t=>{var n;0===t.button&&(t.preventDefault(),null===(n=e.onClick)||void 0===n||n.call(e))},onKeyDown:t=>{var n;const{key:r}=t;"Enter"!==r&&" "!==r||null===(n=e.onClick)||void 0===n||n.call(e)},title:!1===e.enabled&&e.disabledTooltip?e.disabledTooltip:e.pressed&&e.pressedTooltip?e.pressedTooltip:e.tooltip||e.iconLabel,minimal:!0}),(e.icon||e.iconClass)&&v.createElement(o.LabIcon.resolveReact,{icon:e.pressed?e.pressedIcon:e.icon,iconClass:(0,o.classes)(e.iconClass,"jp-Icon"),className:"jp-ToolbarButtonComponent-icon",tag:"span",stylesheet:"toolbarButton"}),e.label&&v.createElement("span",{className:"jp-ToolbarButtonComponent-label"},e.label))}function ue(e){return e.addClass("jp-ToolbarButton"),e}!function(e){e.createInterruptButton=function(e,t){const n=(t=t||V.nullTranslator).load("jupyterlab");return new de({icon:o.stopIcon,onClick:()=>{var t,n;null===(n=null===(t=e.session)||void 0===t?void 0:t.kernel)||void 0===n||n.interrupt()},tooltip:n.__("Interrupt the kernel")})},e.createRestartButton=function(e,t,n){const r=(n=n||V.nullTranslator).load("jupyterlab");return new de({icon:o.refreshIcon,onClick:()=>{(null!=t?t:ee).restart(e,n)},tooltip:r.__("Restart the kernel")})},e.createSpacerItem=function(){return new be.Spacer},e.createKernelNameItem=function(e,t,n){const r=x.create(v.createElement(be.KernelNameComponent,{sessionContext:e,dialogs:null!=t?t:ee,translator:n}));return r.addClass("jp-KernelName"),r},e.createKernelStatusItem=function(e,t){return new be.KernelStatus(e,t)}}(ae||(ae={}));class de extends x{constructor(e={}){var t,n;super(),this.props=e,ue(this),this._enabled=null===(t=e.enabled)||void 0===t||t,this._pressed=this._enabled&&null!==(n=e.pressed)&&void 0!==n&&n,this._onClick=e.onClick}set pressed(e){this.enabled&&e!==this._pressed&&(this._pressed=e,this.update())}get pressed(){return this._pressed}set enabled(e){e!=this._enabled&&(this._enabled=e,this._enabled||(this._pressed=!1),this.update())}get enabled(){return this._enabled}set onClick(e){e!==this._onClick&&(this._onClick=e,this.update())}get onClick(){return this._onClick}render(){return v.createElement(ce,Object.assign({},this.props,{pressed:this.pressed,enabled:this.enabled,onClick:this.onClick}))}}function he(e){return v.createElement(T,{signal:e.commands.commandChanged,shouldUpdate:(t,n)=>n.id===e.id&&"changed"===n.type||"many-changed"===n.type},(()=>v.createElement(ce,Object.assign({},be.propsFromCommand(e)))))}function pe(e){return e.addClass("jp-CommandToolbarButton"),e}class fe extends x{constructor(e){super(),this.props=e,pe(this)}render(){return v.createElement(he,Object.assign({},this.props))}}class ge extends l.Widget{constructor(){super(),this.width=0,this.addClass("jp-Toolbar-responsive-popup"),this.layout=new l.PanelLayout,l.Widget.attach(this,document.body),this.hide()}updateWidth(e){e>0&&(this.width=e,this.node.style.width=`${e}px`)}alignTo(e){const{height:t,width:n,x:r,y:i}=e.node.getBoundingClientRect(),s=this.width;this.node.style.left=r+n-s+1+"px",this.node.style.top=`${i+t+1}px`}insertWidget(e,t){this.layout.insertWidget(0,t)}widgetCount(){return this.layout.widgets.length}widgetAt(e){return this.layout.widgets[e]}}class me extends de{constructor(){super({icon:o.ellipsesIcon,onClick:()=>{this.handleClick()}}),this.addClass("jp-Toolbar-responsive-opener"),this.popup=new ge}addWidget(e){this.popup.insertWidget(0,e)}dispose(){this.isDisposed||(this.popup.dispose(),super.dispose())}hide(){super.hide(),this.hidePopup()}hidePopup(){this.popup.hide()}updatePopup(){this.popup.updateWidth(this.parent.node.clientWidth),this.popup.alignTo(this.parent)}widgetAt(e){return this.popup.widgetAt(e)}widgetCount(){return this.popup.widgetCount()}handleClick(){this.updatePopup(),this.popup.setHidden(!this.popup.isHidden)}}var be;!function(e){e.propsFromCommand=function(e){var t,n;const{commands:r,id:i,args:s}=e,o=r.iconClass(i,s),a=r.iconLabel(i,s),l=null!==(t=e.icon)&&void 0!==t?t:r.icon(i,s),c=l===o?void 0:l,u=r.label(i,s);let d=r.className(i,s);r.isToggled(i,s)&&(d+=" lm-mod-toggled"),r.isVisible(i,s)||(d+=" lm-mod-hidden");let h=r.caption(i,s)||e.label||u||a;const p=r.keyBindings.find((e=>e.command===i));p&&(h=`${h} (${p.keys.map(X.CommandRegistry.formatKeystroke).join(", ")})`);const f=r.isEnabled(i,s);return{className:d,dataset:{"data-command":e.id},icon:c,iconClass:o,tooltip:h,onClick:()=>{r.execute(i,s)},enabled:f,label:null!==(n=e.label)&&void 0!==n?n:u}},e.nameProperty=new J.AttachedProperty({name:"name",create:()=>""}),e.noOp=function(){};class t extends l.Widget{constructor(){super(),this.addClass(se)}}e.Spacer=t,e.KernelNameComponent=function(e){const t=e.translator||V.nullTranslator,n=t.load("jupyterlab"),r=()=>{e.dialogs.selectKernel(e.sessionContext,t)};return v.createElement(T,{signal:e.sessionContext.kernelChanged,initialSender:e.sessionContext},(e=>v.createElement(ce,{className:"jp-Toolbar-kernelName",onClick:r,tooltip:n.__("Switch kernel"),label:null==e?void 0:e.kernelDisplayName})))};class n extends l.Widget{constructor(e,t){super(),this.translator=t||V.nullTranslator,this._trans=this.translator.load("jupyterlab"),this.addClass("jp-Toolbar-kernelStatus"),this._statusNames=ne(this.translator),this._onStatusChanged(e),e.statusChanged.connect(this._onStatusChanged,this),e.connectionStatusChanged.connect(this._onStatusChanged,this)}_onStatusChanged(e){if(this.isDisposed)return;const t=e.kernelDisplayStatus,n={container:this.node,title:this._trans.__("Kernel %1",this._statusNames[t]||t),stylesheet:"toolbarButton",alignSelf:"normal",height:"24px"};o.LabIcon.remove(this.node),"busy"===t||"starting"===t||"terminating"===t||"restarting"===t||"initializing"===t?o.circleIcon.element(n):"connecting"===t||"disconnected"===t||"unknown"===t?o.offlineBoltIcon.element(n):o.circleEmptyIcon.element(n)}}e.KernelStatus=n}(be||(be={}));class _e extends l.Widget{constructor(e){super(e),this._changeGuard=!1,this._spinner=new Y,this._isRevealed=!1,this._evtMouseDown=()=>{this.node.contains(document.activeElement)||this._focusContent()},this.addClass("jp-MainAreaWidget"),this.addClass("jp-MainAreaWidget-ContainStrict"),this.id=I.createDomID();const t=(e.translator||V.nullTranslator).load("jupyterlab"),n=this._content=e.content;n.node.setAttribute("role","region"),n.node.setAttribute("aria-label",t.__("notebook content"));const r=this._toolbar=e.toolbar||new le;r.node.setAttribute("role","navigation"),r.node.setAttribute("aria-label",t.__("notebook actions"));const i=this._contentHeader=e.contentHeader||new l.BoxPanel({direction:"top-to-bottom",spacing:0}),s=this.layout=new l.BoxLayout({spacing:0});s.direction="top-to-bottom",l.BoxLayout.setStretch(r,0),l.BoxLayout.setStretch(i,0),l.BoxLayout.setStretch(n,1),s.addWidget(r),s.addWidget(i),s.addWidget(n),n.id||(n.id=I.createDomID()),n.node.tabIndex=0,this._updateTitle(),n.title.changed.connect(this._updateTitle,this),this.title.closable=!0,this.title.changed.connect(this._updateContentTitle,this),e.reveal?(this.node.appendChild(this._spinner.node),this._revealed=e.reveal.then((()=>{if(n.isDisposed)return void this.dispose();n.disposed.connect((()=>this.dispose()));const e=document.activeElement===this._spinner.node;this._disposeSpinner(),this._isRevealed=!0,e&&this._focusContent()})).catch((e=>{const t=new l.Widget;t.addClass("jp-MainAreaWidget-error");const i=document.createElement("pre");throw i.textContent=String(e),t.node.appendChild(i),l.BoxLayout.setStretch(t,1),this._disposeSpinner(),n.dispose(),this._content=null,r.dispose(),this._toolbar=null,s.addWidget(t),this._isRevealed=!0,t}))):(this._spinner.dispose(),this.removeClass("jp-MainAreaWidget-ContainStrict"),n.disposed.connect((()=>this.dispose())),this._isRevealed=!0,this._revealed=Promise.resolve(void 0))}[G.symbol](){return this._content?G.getPrintFunction(this._content):null}get content(){return this._content}get toolbar(){return this._toolbar}get contentHeader(){return this._contentHeader}get isRevealed(){return this._isRevealed}get revealed(){return this._revealed}onActivateRequest(e){this._isRevealed?this._focusContent():this._spinner.node.focus()}onAfterAttach(e){super.onAfterAttach(e),this.node.addEventListener("mousedown",this._evtMouseDown,!0)}onBeforeDetach(e){this.node.removeEventListener("mousedown",this._evtMouseDown,!0),super.onBeforeDetach(e)}onCloseRequest(e){this.dispose()}onUpdateRequest(e){this._content&&y.MessageLoop.sendMessage(this._content,e)}_disposeSpinner(){this.node.removeChild(this._spinner.node),this._spinner.dispose(),this.removeClass("jp-MainAreaWidget-ContainStrict")}_updateTitle(){if(this._changeGuard||!this.content)return;this._changeGuard=!0;const e=this.content;this.title.label=e.title.label,this.title.mnemonic=e.title.mnemonic,this.title.icon=e.title.icon,this.title.iconClass=e.title.iconClass,this.title.iconLabel=e.title.iconLabel,this.title.caption=e.title.caption,this.title.className=e.title.className,this.title.dataset=e.title.dataset,this._changeGuard=!1}_updateContentTitle(){if(this._changeGuard||!this.content)return;this._changeGuard=!0;const e=this.content;e.title.label=this.title.label,e.title.mnemonic=this.title.mnemonic,e.title.icon=this.title.icon,e.title.iconClass=this.title.iconClass,e.title.iconLabel=this.title.iconLabel,e.title.caption=this.title.caption,e.title.className=this.title.className,e.title.dataset=this.title.dataset,this._changeGuard=!1}_focusContent(){this.content&&(this.content.node.contains(document.activeElement)||this.content.node.focus(),this.content.activate())}}var ye,ve=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(r=Object.getOwnPropertySymbols(e);i!e.disabled)).sort(((e,t)=>{var n,r;return(null!==(n=e.rank)&&void 0!==n?n:1/0)-(null!==(r=t.rank)&&void 0!==r?r:1/0)})).map((e=>{n(e,s,t)})),s}function n(e,n,r){const{submenu:i}=e,s=ve(e,["submenu"]);n.addItem(Object.assign(Object.assign({},s),{submenu:i?t(i,r):null}))}function r(e,t,i){var o;e.disabled?t.dispose():null===(o=e.items)||void 0===o||o.forEach((e=>{var o,a;const l=null==t?void 0:t.items.find(((t,n)=>{var r,i,s;return t.type===e.type&&t.command===(null!==(r=e.command)&&void 0!==r?r:"")&&(null===(i=t.submenu)||void 0===i?void 0:i.id)===(null===(s=e.submenu)||void 0===s?void 0:s.id)}));if(l&&"separator"!==e.type)if(e.disabled)t.removeItem(l);else switch(null!==(o=e.type)&&void 0!==o?o:"command"){case"command":e.command&&(s.JSONExt.deepEqual(l.args,null!==(a=e.args)&&void 0!==a?a:{})||n(e,t,i));break;case"submenu":e.submenu&&r(e.submenu,l.submenu,i)}else n(e,t,i)}))}e.createMenus=function(e,n){return e.filter((e=>!e.disabled)).sort(((e,t)=>{var n,r;return(null!==(n=e.rank)&&void 0!==n?n:1/0)-(null!==(r=t.rank)&&void 0!==r?r:1/0)})).map((e=>t(e,n)))},e.addContextItem=function(e,n,r){const{submenu:i}=e,s=ve(e,["submenu"]);n.addItem(Object.assign(Object.assign({},s),{submenu:i?t(i,r):null}))},e.updateMenus=function(e,n,i){const s=[];return n.forEach((n=>{const o=e.find((e=>e.id===n.id));o?r(n,o,i):n.disabled||s.push(t(n,i))})),e.push(...s),s}}(ye||(ye={}));var we=n(15354),Ce=n.n(we);class xe{static reg(e){return new RegExp("^"+e+"$","i")}}xe.N={integer:"[+-]?[0-9]+",integer_pos:"[+]?[0-9]+",integer_zero_ff:"([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])",number:"[+-]?([0-9]*[.])?[0-9]+(e-?[0-9]*)?",number_pos:"[+]?([0-9]*[.])?[0-9]+(e-?[0-9]*)?",number_zero_hundred:"[+]?(([0-9]|[1-9][0-9])([.][0-9]+)?|100)",number_zero_one:"[+]?(1([.][0]+)?|0?([.][0-9]+)?)"},xe.B={angle:`(${xe.N.number}(deg|rad|grad|turn)|0)`,frequency:`${xe.N.number}(Hz|kHz)`,ident:String.raw`-?([_a-z]|[\xA0-\xFF]|\\[0-9a-f]{1,6}(\r\n|[ \t\r\n\f])?|\\[^\r\n\f0-9a-f])([_a-z0-9-]|[\xA0-\xFF]|\\[0-9a-f]{1,6}(\r\n|[ \t\r\n\f])?|\\[^\r\n\f0-9a-f])*`,len_or_perc:`(0|${xe.N.number}(px|em|rem|ex|in|cm|mm|pt|pc|%))`,length:`(${xe.N.number}(px|em|rem|ex|in|cm|mm|pt|pc)|0)`,length_pos:`(${xe.N.number_pos}(px|em|rem|ex|in|cm|mm|pt|pc)|0)`,percentage:`${xe.N.number}%`,percentage_pos:`${xe.N.number_pos}%`,percentage_zero_hundred:`${xe.N.number_zero_hundred}%`,string:String.raw`(\"([^\n\r\f\\"]|\\\n|\r\n|\r|\f|\\[0-9a-f]{1,6}(\r\n|[ \t\r\n\f])?|\\[^\r\n\f0-9a-f])*\")|(\'([^\n\r\f\\']|\\\n|\r\n|\r|\f|\\[0-9a-f]{1,6}(\r\n|[ \t\r\n\f])?|\\[^\r\n\f0-9a-f])*\')`,time:`${xe.N.number}(s|ms)`,url:"url\\(.*?\\)",z_index:"[+-]?[0-9]{1,7}"},xe.A={absolute_size:"xx-small|x-small|small|medium|large|x-large|xx-large",attachment:"scroll|fixed|local",bg_origin:"border-box|padding-box|content-box",border_style:"none|hidden|dotted|dashed|solid|double|groove|ridge|inset|outset",box:"border-box|padding-box|content-box",display_inside:"auto|block|table|flex|grid",display_outside:"block-level|inline-level|none|table-row-group|table-header-group|table-footer-group|table-row|table-cell|table-column-group|table-column|table-caption",ending_shape:"circle|ellipse",generic_family:"serif|sans-serif|cursive|fantasy|monospace",generic_voice:"male|female|child",relative_size:"smaller|larger",repeat_style:"repeat-x|repeat-y|((?:repeat|space|round|no-repeat)(?:\\s*(?:repeat|space|round|no-repeat))?)",side_or_corner:"(left|right)?\\s*(top|bottom)?",single_animation_direction:"normal|reverse|alternate|alternate-reverse",single_animation_fill_mode:"none|forwards|backwards|both",single_animation_play_state:"running|paused"},xe._COLOR={hex:"\\#(0x)?[0-9a-f]+",name:"aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|transparent|violet|wheat|white|whitesmoke|yellow|yellowgreen",rgb:String.raw`rgb\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*\)`,rgba:String.raw`rgba\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(${xe.N.integer_zero_ff}|${xe.N.number_zero_one}|${xe.B.percentage_zero_hundred})\s*\)`},xe._C={alpha:`${xe.N.integer_zero_ff}|${xe.N.number_zero_one}|${xe.B.percentage_zero_hundred}`,alphavalue:xe.N.number_zero_one,bg_position:`((${xe.B.len_or_perc}|left|center|right|top|bottom)\\s*){1,4}`,bg_size:`(${xe.B.length_pos}|${xe.B.percentage}|auto){1,2}|cover|contain`,border_width:`thin|medium|thick|${xe.B.length}`,bottom:`${xe.B.length}|auto`,color:`${xe._COLOR.hex}|${xe._COLOR.rgb}|${xe._COLOR.rgba}|${xe._COLOR.name}`,color_stop_length:`(${xe.B.len_or_perc}\\s*){1,2}`,linear_color_hint:`${xe.B.len_or_perc}`,family_name:`${xe.B.string}|(${xe.B.ident}\\s*)+`,image_decl:xe.B.url,left:`${xe.B.length}|auto`,loose_quotable_words:`(${xe.B.ident})+`,margin_width:`${xe.B.len_or_perc}|auto`,padding_width:`${xe.B.length_pos}|${xe.B.percentage_pos}`,page_url:xe.B.url,position:`((${xe.B.len_or_perc}|left|center|right|top|bottom)\\s*){1,4}`,right:`${xe.B.length}|auto`,shadow:"",size:`closest-side|farthest-side|closest-corner|farthest-corner|${xe.B.length}|(${xe.B.len_or_perc})\\s+(${xe.B.len_or_perc})`,top:`${xe.B.length}|auto`},xe._C1={image_list:`image\\(\\s*(${xe.B.url})*\\s*(${xe.B.url}|${xe._C.color})\\s*\\)`,linear_color_stop:`(${xe._C.color})(\\s*${xe._C.color_stop_length})?`,shadow:`((${xe._C.color})\\s+((${xe.B.length})\\s*){2,4}(s+inset)?)|((inset\\s+)?((${xe.B.length})\\s*){2,4}\\s*(${xe._C.color})?)`},xe._C2={color_stop_list:`((${xe._C1.linear_color_stop})(\\s*(${xe._C.linear_color_hint}))?\\s*,\\s*)+(${xe._C1.linear_color_stop})`,shape:`rect\\(\\s*(${xe._C.top})\\s*,\\s*(${xe._C.right})\\s*,\\s*(${xe._C.bottom})\\s*,\\s*(${xe._C.left})\\s*\\)`},xe._C3={linear_gradient:`linear-gradient\\((((${xe.B.angle})|to\\s+(${xe.A.side_or_corner}))\\s*,\\s*)?\\s*(${xe._C2.color_stop_list})\\s*\\)`,radial_gradient:`radial-gradient\\(((((${xe.A.ending_shape})|(${xe._C.size}))\\s*)*\\s*(at\\s+${xe._C.position})?\\s*,\\s*)?\\s*(${xe._C2.color_stop_list})\\s*\\)`},xe._C4={image:`${xe.B.url}|${xe._C3.linear_gradient}|${xe._C3.radial_gradient}|${xe._C1.image_list}`,bg_image:`(${xe.B.url}|${xe._C3.linear_gradient}|${xe._C3.radial_gradient}|${xe._C1.image_list})|none`},xe.C=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},xe._C),xe._C1),xe._C2),xe._C3),xe._C4),xe.AP={border_collapse:"collapse|separate",box:"normal|none|contents",box_sizing:"content-box|padding-box|border-box",caption_side:"top|bottom",clear:"none|left|right|both",direction:"ltr|rtl",empty_cells:"show|hide",float:"left|right|none",font_stretch:"normal|wider|narrower|ultra-condensed|extra-condensed|condensed|semi-condensed|semi-expanded|expanded|extra-expanded|ultra-expanded",font_style:"normal|italic|oblique",font_variant:"normal|small-caps",font_weight:"normal|bold|bolder|lighter|100|200|300|400|500|600|700|800|900",list_style_position:"inside|outside",list_style_type:"disc|circle|square|decimal|decimal-leading-zero|lower-roman|upper-roman|lower-greek|lower-latin|upper-latin|armenian|georgian|lower-alpha|upper-alpha|none",overflow:"visible|hidden|scroll|auto",overflow_wrap:"normal|break-word",overflow_x:"visible|hidden|scroll|auto|no-display|no-content",page_break_after:"auto|always|avoid|left|right",page_break_before:"auto|always|avoid|left|right",page_break_inside:"avoid|auto",position:"static|relative|absolute",resize:"none|both|horizontal|vertical",speak:"normal|none|spell-out",speak_header:"once|always",speak_numeral:"digits|continuous",speak_punctuation:"code|none",table_layout:"auto|fixed",text_align:"left|right|center|justify",text_decoration:"none|((underline|overline|line-through|blink)\\s*)+",text_transform:"capitalize|uppercase|lowercase|none",text_wrap:"normal|unrestricted|none|suppress",unicode_bidi:"normal|embed|bidi-override",visibility:"visible|hidden|collapse",white_space:"normal|pre|nowrap|pre-wrap|pre-line",word_break:"normal|keep-all|break-all"},xe._CP={background_attachment:`${xe.A.attachment}(,\\s*${xe.A.attachment})*`,background_color:xe.C.color,background_origin:`${xe.A.box}(,\\s*${xe.A.box})*`,background_repeat:`${xe.A.repeat_style}(,\\s*${xe.A.repeat_style})*`,border:`((${xe.C.border_width}|${xe.A.border_style}|${xe.C.color})\\s*){1,3}`,border_radius:`((${xe.B.len_or_perc})\\s*){1,4}(\\/\\s*((${xe.B.len_or_perc})\\s*){1,4})?`,border_spacing:`${xe.B.length}\\s*(${xe.B.length})?`,border_top_color:xe.C.color,border_top_style:xe.A.border_style,border_width:`((${xe.C.border_width})\\s*){1,4}`,color:xe.C.color,cursor:`(${xe.B.url}(\\s*,\\s*)?)*(auto|crosshair|default|pointer|move|e-resize|ne-resize|nw-resize|n-resize|se-resize|sw-resize|s-resize|w-resize|text|wait|help|progress|all-scroll|col-resize|hand|no-drop|not-allowed|row-resize|vertical-text)`,display:`inline|block|list-item|run-in|inline-list-item|inline-block|table|inline-table|table-cell|table-caption|flex|inline-flex|grid|inline-grid|${xe.A.display_inside}|${xe.A.display_outside}|inherit|inline-box|inline-stack`,display_outside:xe.A.display_outside,elevation:`${xe.B.angle}|below|level|above|higher|lower`,font_family:`(${xe.C.family_name}|${xe.A.generic_family})(,\\s*(${xe.C.family_name}|${xe.A.generic_family}))*`,height:`${xe.B.length}|${xe.B.percentage}|auto`,letter_spacing:`normal|${xe.B.length}`,list_style_image:`${xe.C.image}|none`,margin_right:xe.C.margin_width,max_height:`${xe.B.length_pos}|${xe.B.percentage_pos}|none|auto`,min_height:`${xe.B.length_pos}|${xe.B.percentage_pos}|auto`,opacity:xe.C.alphavalue,outline_color:`${xe.C.color}|invert`,outline_width:xe.C.border_width,padding:`((${xe.C.padding_width})\\s*){1,4}`,padding_top:xe.C.padding_width,pitch_range:xe.N.number,right:`${xe.B.length}|${xe.B.percentage}|auto`,stress:xe.N.number,text_indent:`${xe.B.length}|${xe.B.percentage}`,text_shadow:`none|${xe.C.shadow}(,\\s*(${xe.C.shadow}))*`,volume:`${xe.N.number_pos}|${xe.B.percentage_pos}|silent|x-soft|soft|medium|loud|x-loud`,word_wrap:xe.AP.overflow_wrap,zoom:`normal|${xe.N.number_pos}|${xe.B.percentage_pos}`,backface_visibility:xe.AP.visibility,background_clip:`${xe.A.box}(,\\s*(${xe.A.box}))*`,background_position:`${xe.C.bg_position}(,\\s*(${xe.C.bg_position}))*`,border_bottom_color:xe.C.color,border_bottom_style:xe.A.border_style,border_color:`((${xe.C.color})\\s*){1,4}`,border_left_color:xe.C.color,border_right_color:xe.C.color,border_style:`((${xe.A.border_style})\\s*){1,4}`,border_top_left_radius:`(${xe.B.length}|${xe.B.percentage})(\\s*(${xe.B.length}|${xe.B.percentage}))?`,border_top_width:xe.C.border_width,box_shadow:`none|${xe.C.shadow}(,\\s*(${xe.C.shadow}))*`,clip:`${xe.C.shape}|auto`,display_inside:xe.A.display_inside,font_size:`${xe.A.absolute_size}|${xe.A.relative_size}|${xe.B.length_pos}|${xe.B.percentage_pos}`,line_height:`normal|${xe.N.number_pos}|${xe.B.length_pos}|${xe.B.percentage_pos}`,margin_left:xe.C.margin_width,max_width:`${xe.B.length_pos}|${xe.B.percentage_pos}|none|auto`,outline_style:xe.A.border_style,padding_bottom:xe.C.padding_width,padding_right:xe.C.padding_width,perspective:`none|${xe.B.length}`,richness:xe.N.number,text_overflow:`((clip|ellipsis|${xe.B.string})\\s*){1,2}`,top:`${xe.B.length}|${xe.B.percentage}|auto`,width:`${xe.B.length_pos}|${xe.B.percentage_pos}|auto`,z_index:`auto|${xe.B.z_index}`,background:`(((${xe.C.bg_position}\\s*(\\/\\s*${xe.C.bg_size})?)|(${xe.A.repeat_style})|(${xe.A.attachment})|(${xe.A.bg_origin})|(${xe.C.bg_image})|(${xe.C.color}))\\s*)+`,background_size:`${xe.C.bg_size}(,\\s*${xe.C.bg_size})*`,border_bottom_left_radius:`(${xe.B.length}|${xe.B.percentage})(\\s*(${xe.B.length}|${xe.B.percentage}))?`,border_bottom_width:xe.C.border_width,border_left_style:xe.A.border_style,border_right_style:xe.A.border_style,border_top:`((${xe.C.border_width}|${xe.A.border_style}|${xe.C.color})\\s*){1,3}`,bottom:`${xe.B.len_or_perc}|auto`,list_style:`((${xe.AP.list_style_type}|${xe.AP.list_style_position}|${xe.C.image}|none})\\s*){1,3}`,margin_top:xe.C.margin_width,outline:`((${xe.C.color}|invert|${xe.A.border_style}|${xe.C.border_width})\\s*){1,3}`,overflow_y:xe.AP.overflow_x,pitch:`${xe.B.frequency}|x-low|low|medium|high|x-high`,vertical_align:`baseline|sub|super|top|text-top|middle|bottom|text-bottom|${xe.B.len_or_perc}`,word_spacing:`normal|${xe.B.length}`,background_image:`${xe.C.bg_image}(,\\s*${xe.C.bg_image})*`,border_bottom_right_radius:`(${xe.B.length}|${xe.B.percentage})(\\s*(${xe.B.length}|${xe.B.percentage}))?`,border_left_width:xe.C.border_width,border_right_width:xe.C.border_width,left:`${xe.B.len_or_perc}|auto`,margin_bottom:xe.C.margin_width,pause_after:`${xe.B.time}|${xe.B.percentage}`,speech_rate:`${xe.N.number}|x-slow|slow|medium|fast|x-fast|faster|slower`,transition_duration:`${xe.B.time}(,\\s*${xe.B.time})*`,border_bottom:`((${xe.C.border_width}|${xe.A.border_style}|${xe.C.color})\\s*){1,3}`,border_right:`((${xe.C.border_width}|${xe.A.border_style}|${xe.C.color})\\s*){1,3}`,margin:`((${xe.C.margin_width})\\s*){1,4}`,padding_left:xe.C.padding_width,border_left:`((${xe.C.border_width}|${xe.A.border_style}|${xe.C.color})\\s*){1,3}`,quotes:`(${xe.B.string}\\s*${xe.B.string})+|none`,border_top_right_radius:`(${xe.B.length}|${xe.B.percentage})(\\s*(${xe.B.length}|${xe.B.percentage}))?`,min_width:`${xe.B.length_pos}|${xe.B.percentage_pos}|auto`},xe._CP1={font:`(((((${xe.AP.font_style}|${xe.AP.font_variant}|${xe.AP.font_weight})\\s*){1,3})?\\s*(${xe._CP.font_size})\\s*(\\/\\s*(${xe._CP.line_height}))?\\s+(${xe._CP.font_family}))|caption|icon|menu|message-box|small-caption|status-bar)`},xe.CP=Object.assign(Object.assign({},xe._CP),xe._CP1),xe.BORDER_COLLAPSE=xe.reg(xe.AP.border_collapse),xe.BOX=xe.reg(xe.AP.box),xe.BOX_SIZING=xe.reg(xe.AP.box_sizing),xe.CAPTION_SIDE=xe.reg(xe.AP.caption_side),xe.CLEAR=xe.reg(xe.AP.clear),xe.DIRECTION=xe.reg(xe.AP.direction),xe.EMPTY_CELLS=xe.reg(xe.AP.empty_cells),xe.FLOAT=xe.reg(xe.AP.float),xe.FONT_STRETCH=xe.reg(xe.AP.font_stretch),xe.FONT_STYLE=xe.reg(xe.AP.font_style),xe.FONT_VARIANT=xe.reg(xe.AP.font_variant),xe.FONT_WEIGHT=xe.reg(xe.AP.font_weight),xe.LIST_STYLE_POSITION=xe.reg(xe.AP.list_style_position),xe.LIST_STYLE_TYPE=xe.reg(xe.AP.list_style_type),xe.OVERFLOW=xe.reg(xe.AP.overflow),xe.OVERFLOW_WRAP=xe.reg(xe.AP.overflow_wrap),xe.OVERFLOW_X=xe.reg(xe.AP.overflow_x),xe.PAGE_BREAK_AFTER=xe.reg(xe.AP.page_break_after),xe.PAGE_BREAK_BEFORE=xe.reg(xe.AP.page_break_before),xe.PAGE_BREAK_INSIDE=xe.reg(xe.AP.page_break_inside),xe.POSITION=xe.reg(xe.AP.position),xe.RESIZE=xe.reg(xe.AP.resize),xe.SPEAK=xe.reg(xe.AP.speak),xe.SPEAK_HEADER=xe.reg(xe.AP.speak_header),xe.SPEAK_NUMERAL=xe.reg(xe.AP.speak_numeral),xe.SPEAK_PUNCTUATION=xe.reg(xe.AP.speak_punctuation),xe.TABLE_LAYOUT=xe.reg(xe.AP.table_layout),xe.TEXT_ALIGN=xe.reg(xe.AP.text_align),xe.TEXT_DECORATION=xe.reg(xe.AP.text_decoration),xe.TEXT_TRANSFORM=xe.reg(xe.AP.text_transform),xe.TEXT_WRAP=xe.reg(xe.AP.text_wrap),xe.UNICODE_BIDI=xe.reg(xe.AP.unicode_bidi),xe.VISIBILITY=xe.reg(xe.AP.visibility),xe.WHITE_SPACE=xe.reg(xe.AP.white_space),xe.WORD_BREAK=xe.reg(xe.AP.word_break),xe.BACKGROUND_ATTACHMENT=xe.reg(xe.CP.background_attachment),xe.BACKGROUND_COLOR=xe.reg(xe.CP.background_color),xe.BACKGROUND_ORIGIN=xe.reg(xe.CP.background_origin),xe.BACKGROUND_REPEAT=xe.reg(xe.CP.background_repeat),xe.BORDER=xe.reg(xe.CP.border),xe.BORDER_RADIUS=xe.reg(xe.CP.border_radius),xe.BORDER_SPACING=xe.reg(xe.CP.border_spacing),xe.BORDER_TOP_COLOR=xe.reg(xe.CP.border_top_color),xe.BORDER_TOP_STYLE=xe.reg(xe.CP.border_top_style),xe.BORDER_WIDTH=xe.reg(xe.CP.border_width),xe.COLOR=xe.reg(xe.CP.color),xe.CURSOR=xe.reg(xe.CP.cursor),xe.DISPLAY=xe.reg(xe.CP.display),xe.DISPLAY_OUTSIDE=xe.reg(xe.CP.display_outside),xe.ELEVATION=xe.reg(xe.CP.elevation),xe.FONT_FAMILY=xe.reg(xe.CP.font_family),xe.HEIGHT=xe.reg(xe.CP.height),xe.LETTER_SPACING=xe.reg(xe.CP.letter_spacing),xe.LIST_STYLE_IMAGE=xe.reg(xe.CP.list_style_image),xe.MARGIN_RIGHT=xe.reg(xe.CP.margin_right),xe.MAX_HEIGHT=xe.reg(xe.CP.max_height),xe.MIN_HEIGHT=xe.reg(xe.CP.min_height),xe.OPACITY=xe.reg(xe.CP.opacity),xe.OUTLINE_COLOR=xe.reg(xe.CP.outline_color),xe.OUTLINE_WIDTH=xe.reg(xe.CP.outline_width),xe.PADDING=xe.reg(xe.CP.padding),xe.PADDING_TOP=xe.reg(xe.CP.padding_top),xe.PITCH_RANGE=xe.reg(xe.CP.pitch_range),xe.RIGHT=xe.reg(xe.CP.right),xe.STRESS=xe.reg(xe.CP.stress),xe.TEXT_INDENT=xe.reg(xe.CP.text_indent),xe.TEXT_SHADOW=xe.reg(xe.CP.text_shadow),xe.VOLUME=xe.reg(xe.CP.volume),xe.WORD_WRAP=xe.reg(xe.CP.word_wrap),xe.ZOOM=xe.reg(xe.CP.zoom),xe.BACKFACE_VISIBILITY=xe.reg(xe.CP.backface_visibility),xe.BACKGROUND_CLIP=xe.reg(xe.CP.background_clip),xe.BACKGROUND_POSITION=xe.reg(xe.CP.background_position),xe.BORDER_BOTTOM_COLOR=xe.reg(xe.CP.border_bottom_color),xe.BORDER_BOTTOM_STYLE=xe.reg(xe.CP.border_bottom_style),xe.BORDER_COLOR=xe.reg(xe.CP.border_color),xe.BORDER_LEFT_COLOR=xe.reg(xe.CP.border_left_color),xe.BORDER_RIGHT_COLOR=xe.reg(xe.CP.border_right_color),xe.BORDER_STYLE=xe.reg(xe.CP.border_style),xe.BORDER_TOP_LEFT_RADIUS=xe.reg(xe.CP.border_top_left_radius),xe.BORDER_TOP_WIDTH=xe.reg(xe.CP.border_top_width),xe.BOX_SHADOW=xe.reg(xe.CP.box_shadow),xe.CLIP=xe.reg(xe.CP.clip),xe.DISPLAY_INSIDE=xe.reg(xe.CP.display_inside),xe.FONT_SIZE=xe.reg(xe.CP.font_size),xe.LINE_HEIGHT=xe.reg(xe.CP.line_height),xe.MARGIN_LEFT=xe.reg(xe.CP.margin_left),xe.MAX_WIDTH=xe.reg(xe.CP.max_width),xe.OUTLINE_STYLE=xe.reg(xe.CP.outline_style),xe.PADDING_BOTTOM=xe.reg(xe.CP.padding_bottom),xe.PADDING_RIGHT=xe.reg(xe.CP.padding_right),xe.PERSPECTIVE=xe.reg(xe.CP.perspective),xe.RICHNESS=xe.reg(xe.CP.richness),xe.TEXT_OVERFLOW=xe.reg(xe.CP.text_overflow),xe.TOP=xe.reg(xe.CP.top),xe.WIDTH=xe.reg(xe.CP.width),xe.Z_INDEX=xe.reg(xe.CP.z_index),xe.BACKGROUND=xe.reg(xe.CP.background),xe.BACKGROUND_SIZE=xe.reg(xe.CP.background_size),xe.BORDER_BOTTOM_LEFT_RADIUS=xe.reg(xe.CP.border_bottom_left_radius),xe.BORDER_BOTTOM_WIDTH=xe.reg(xe.CP.border_bottom_width),xe.BORDER_LEFT_STYLE=xe.reg(xe.CP.border_left_style),xe.BORDER_RIGHT_STYLE=xe.reg(xe.CP.border_right_style),xe.BORDER_TOP=xe.reg(xe.CP.border_top),xe.BOTTOM=xe.reg(xe.CP.bottom),xe.LIST_STYLE=xe.reg(xe.CP.list_style),xe.MARGIN_TOP=xe.reg(xe.CP.margin_top),xe.OUTLINE=xe.reg(xe.CP.outline),xe.OVERFLOW_Y=xe.reg(xe.CP.overflow_y),xe.PITCH=xe.reg(xe.CP.pitch),xe.VERTICAL_ALIGN=xe.reg(xe.CP.vertical_align),xe.WORD_SPACING=xe.reg(xe.CP.word_spacing),xe.BACKGROUND_IMAGE=xe.reg(xe.CP.background_image),xe.BORDER_BOTTOM_RIGHT_RADIUS=xe.reg(xe.CP.border_bottom_right_radius),xe.BORDER_LEFT_WIDTH=xe.reg(xe.CP.border_left_width),xe.BORDER_RIGHT_WIDTH=xe.reg(xe.CP.border_right_width),xe.LEFT=xe.reg(xe.CP.left),xe.MARGIN_BOTTOM=xe.reg(xe.CP.margin_bottom),xe.PAUSE_AFTER=xe.reg(xe.CP.pause_after),xe.SPEECH_RATE=xe.reg(xe.CP.speech_rate),xe.TRANSITION_DURATION=xe.reg(xe.CP.transition_duration),xe.BORDER_BOTTOM=xe.reg(xe.CP.border_bottom),xe.BORDER_RIGHT=xe.reg(xe.CP.border_right),xe.MARGIN=xe.reg(xe.CP.margin),xe.PADDING_LEFT=xe.reg(xe.CP.padding_left),xe.BORDER_LEFT=xe.reg(xe.CP.border_left),xe.FONT=xe.reg(xe.CP.font),xe.QUOTES=xe.reg(xe.CP.quotes),xe.BORDER_TOP_RIGHT_RADIUS=xe.reg(xe.CP.border_top_right_radius),xe.MIN_WIDTH=xe.reg(xe.CP.min_width);class Se{constructor(){this._options={allowedTags:["a","abbr","acronym","address","area","article","aside","audio","b","bdi","bdo","big","blockquote","br","button","canvas","caption","center","cite","code","col","colgroup","colspan","command","data","datalist","dd","del","details","dfn","dir","div","dl","dt","em","fieldset","figcaption","figure","font","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","hr","i","img","input","ins","kbd","label","legend","li","map","mark","menu","meter","nav","nobr","ol","optgroup","option","output","p","pre","progress","q","rowspan","s","samp","section","select","small","source","span","strike","strong","sub","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","track","tt","u","ul","var","video","wbr"],allowedAttributes:{"*":["class","dir","draggable","hidden","id","inert","itemprop","itemref","itemscope","lang","spellcheck","style","title","translate"],a:["accesskey","coords","href","hreflang","name","rel","shape","tabindex","target","type"],area:["accesskey","alt","coords","href","nohref","shape","tabindex"],audio:["autoplay","controls","loop","mediagroup","muted","preload","src"],bdo:["dir"],blockquote:["cite"],br:["clear"],button:["accesskey","data-commandlinker-args","data-commandlinker-command","disabled","name","tabindex","type","value"],canvas:["height","width"],caption:["align"],col:["align","char","charoff","span","valign","width"],colgroup:["align","char","charoff","span","valign","width"],command:["checked","command","disabled","icon","label","radiogroup","type"],data:["value"],del:["cite","datetime"],details:["open"],dir:["compact"],div:["align"],dl:["compact"],fieldset:["disabled"],font:["color","face","size"],form:["accept","autocomplete","enctype","method","name","novalidate"],h1:["align"],h2:["align"],h3:["align"],h4:["align"],h5:["align"],h6:["align"],hr:["align","noshade","size","width"],iframe:["align","frameborder","height","marginheight","marginwidth","width"],img:["align","alt","border","height","hspace","ismap","name","src","usemap","vspace","width"],input:["accept","accesskey","align","alt","autocomplete","checked","disabled","inputmode","ismap","list","max","maxlength","min","multiple","name","placeholder","readonly","required","size","src","step","tabindex","type","usemap","value"],ins:["cite","datetime"],label:["accesskey","for"],legend:["accesskey","align"],li:["type","value"],map:["name"],menu:["compact","label","type"],meter:["high","low","max","min","value"],ol:["compact","reversed","start","type"],optgroup:["disabled","label"],option:["disabled","label","selected","value"],output:["for","name"],p:["align"],pre:["width"],progress:["max","min","value"],q:["cite"],select:["autocomplete","disabled","multiple","name","required","size","tabindex"],source:["type"],table:["align","bgcolor","border","cellpadding","cellspacing","frame","rules","summary","width"],tbody:["align","char","charoff","valign"],td:["abbr","align","axis","bgcolor","char","charoff","colspan","headers","height","nowrap","rowspan","scope","valign","width"],textarea:["accesskey","autocomplete","cols","disabled","inputmode","name","placeholder","readonly","required","rows","tabindex","wrap"],tfoot:["align","char","charoff","valign"],th:["abbr","align","axis","bgcolor","char","charoff","colspan","headers","height","nowrap","rowspan","scope","valign","width"],thead:["align","char","charoff","valign"],tr:["align","bgcolor","char","charoff","valign"],track:["default","kind","label","srclang"],ul:["compact","type"],video:["autoplay","controls","height","loop","mediagroup","muted","poster","preload","src","width"]},allowedStyles:{"*":{"backface-visibility":[xe.BACKFACE_VISIBILITY],background:[xe.BACKGROUND],"background-attachment":[xe.BACKGROUND_ATTACHMENT],"background-clip":[xe.BACKGROUND_CLIP],"background-color":[xe.BACKGROUND_COLOR],"background-image":[xe.BACKGROUND_IMAGE],"background-origin":[xe.BACKGROUND_ORIGIN],"background-position":[xe.BACKGROUND_POSITION],"background-repeat":[xe.BACKGROUND_REPEAT],"background-size":[xe.BACKGROUND_SIZE],border:[xe.BORDER],"border-bottom":[xe.BORDER_BOTTOM],"border-bottom-color":[xe.BORDER_BOTTOM_COLOR],"border-bottom-left-radius":[xe.BORDER_BOTTOM_LEFT_RADIUS],"border-bottom-right-radius":[xe.BORDER_BOTTOM_RIGHT_RADIUS],"border-bottom-style":[xe.BORDER_BOTTOM_STYLE],"border-bottom-width":[xe.BORDER_BOTTOM_WIDTH],"border-collapse":[xe.BORDER_COLLAPSE],"border-color":[xe.BORDER_COLOR],"border-left":[xe.BORDER_LEFT],"border-left-color":[xe.BORDER_LEFT_COLOR],"border-left-style":[xe.BORDER_LEFT_STYLE],"border-left-width":[xe.BORDER_LEFT_WIDTH],"border-radius":[xe.BORDER_RADIUS],"border-right":[xe.BORDER_RIGHT],"border-right-color":[xe.BORDER_RIGHT_COLOR],"border-right-style":[xe.BORDER_RIGHT_STYLE],"border-right-width":[xe.BORDER_RIGHT_WIDTH],"border-spacing":[xe.BORDER_SPACING],"border-style":[xe.BORDER_STYLE],"border-top":[xe.BORDER_TOP],"border-top-color":[xe.BORDER_TOP_COLOR],"border-top-left-radius":[xe.BORDER_TOP_LEFT_RADIUS],"border-top-right-radius":[xe.BORDER_TOP_RIGHT_RADIUS],"border-top-style":[xe.BORDER_TOP_STYLE],"border-top-width":[xe.BORDER_TOP_WIDTH],"border-width":[xe.BORDER_WIDTH],bottom:[xe.BOTTOM],box:[xe.BOX],"box-shadow":[xe.BOX_SHADOW],"box-sizing":[xe.BOX_SIZING],"caption-side":[xe.CAPTION_SIDE],clear:[xe.CLEAR],clip:[xe.CLIP],color:[xe.COLOR],cursor:[xe.CURSOR],direction:[xe.DIRECTION],display:[xe.DISPLAY],"display-inside":[xe.DISPLAY_INSIDE],"display-outside":[xe.DISPLAY_OUTSIDE],elevation:[xe.ELEVATION],"empty-cells":[xe.EMPTY_CELLS],float:[xe.FLOAT],font:[xe.FONT],"font-family":[xe.FONT_FAMILY],"font-size":[xe.FONT_SIZE],"font-stretch":[xe.FONT_STRETCH],"font-style":[xe.FONT_STYLE],"font-variant":[xe.FONT_VARIANT],"font-weight":[xe.FONT_WEIGHT],height:[xe.HEIGHT],left:[xe.LEFT],"letter-spacing":[xe.LETTER_SPACING],"line-height":[xe.LINE_HEIGHT],"list-style":[xe.LIST_STYLE],"list-style-image":[xe.LIST_STYLE_IMAGE],"list-style-position":[xe.LIST_STYLE_POSITION],"list-style-type":[xe.LIST_STYLE_TYPE],margin:[xe.MARGIN],"margin-bottom":[xe.MARGIN_BOTTOM],"margin-left":[xe.MARGIN_LEFT],"margin-right":[xe.MARGIN_RIGHT],"margin-top":[xe.MARGIN_TOP],"max-height":[xe.MAX_HEIGHT],"max-width":[xe.MAX_WIDTH],"min-height":[xe.MIN_HEIGHT],"min-width":[xe.MIN_WIDTH],opacity:[xe.OPACITY],outline:[xe.OUTLINE],"outline-color":[xe.OUTLINE_COLOR],"outline-style":[xe.OUTLINE_STYLE],"outline-width":[xe.OUTLINE_WIDTH],overflow:[xe.OVERFLOW],"overflow-wrap":[xe.OVERFLOW_WRAP],"overflow-x":[xe.OVERFLOW_X],"overflow-y":[xe.OVERFLOW_Y],padding:[xe.PADDING],"padding-bottom":[xe.PADDING_BOTTOM],"padding-left":[xe.PADDING_LEFT],"padding-right":[xe.PADDING_RIGHT],"padding-top":[xe.PADDING_TOP],"page-break-after":[xe.PAGE_BREAK_AFTER],"page-break-before":[xe.PAGE_BREAK_BEFORE],"page-break-inside":[xe.PAGE_BREAK_INSIDE],"pause-after":[xe.PAUSE_AFTER],perspective:[xe.PERSPECTIVE],pitch:[xe.PITCH],"pitch-range":[xe.PITCH_RANGE],position:[xe.POSITION],quotes:[xe.QUOTES],resize:[xe.RESIZE],richness:[xe.RICHNESS],right:[xe.RIGHT],speak:[xe.SPEAK],"speak-header":[xe.SPEAK_HEADER],"speak-numeral":[xe.SPEAK_NUMERAL],"speak-punctuation":[xe.SPEAK_PUNCTUATION],"speech-rate":[xe.SPEECH_RATE],stress:[xe.STRESS],"table-layout":[xe.TABLE_LAYOUT],"text-align":[xe.TEXT_ALIGN],"text-decoration":[xe.TEXT_DECORATION],"text-indent":[xe.TEXT_INDENT],"text-overflow":[xe.TEXT_OVERFLOW],"text-shadow":[xe.TEXT_SHADOW],"text-transform":[xe.TEXT_TRANSFORM],"text-wrap":[xe.TEXT_WRAP],top:[xe.TOP],"unicode-bidi":[xe.UNICODE_BIDI],"vertical-align":[xe.VERTICAL_ALIGN],visibility:[xe.VISIBILITY],volume:[xe.VOLUME],"white-space":[xe.WHITE_SPACE],width:[xe.WIDTH],"word-break":[xe.WORD_BREAK],"word-spacing":[xe.WORD_SPACING],"word-wrap":[xe.WORD_WRAP],"z-index":[xe.Z_INDEX],zoom:[xe.ZOOM]}},transformTags:{a:Ce().simpleTransform("a",{rel:"nofollow"}),input:Ce().simpleTransform("input",{disabled:"disabled"})},allowedSchemesByTag:{img:Ce().defaults.allowedSchemes.concat(["attachment"])},allowedSchemesAppliedToAttributes:["href","cite"]}}sanitize(e,t){return Ce()(e,Object.assign(Object.assign({},this._options),t||{}))}}const Te=new Se;function Ee(e,t){let n=1/0,r=null;const i=/\b\w/g;for(;;){let s=i.exec(e);if(!s)break;let o=_.StringExt.matchSumOfDeltas(e,t,s.index);if(!o)break;o&&o.score<=n&&(n=o.score,r=o.indices)}return r&&n!==1/0?{score:n,indices:r}:null}const ke=(e,t,n)=>r=>t?Ee(r,e.toLowerCase()):(n||(r=r.toLocaleLowerCase(),e=e.toLocaleLowerCase()),-1===r.indexOf(e)?null:{indices:[...Array(r.length).keys()].map((e=>e+1))}),Oe=e=>{var t;const[n,r]=(0,v.useState)(null!==(t=e.initialQuery)&&void 0!==t?t:"");return e.forceRefresh&&(0,v.useEffect)((()=>{e.updateFilter((e=>({})))}),[]),(0,v.useEffect)((()=>{void 0!==e.initialQuery&&e.updateFilter(ke(e.initialQuery,e.useFuzzyFilter,e.caseSensitive),e.initialQuery)}),[]),w().createElement(o.InputGroup,{type:"text",rightIcon:"ui-components:search",placeholder:e.placeholder,onChange:t=>{const n=t.target;r(n.value),e.updateFilter(ke(n.value,e.useFuzzyFilter,e.caseSensitive),n.value)},className:"jp-FilterBox",value:n})},Ae=e=>x.create(w().createElement(Oe,{updateFilter:e.updateFilter,useFuzzyFilter:e.useFuzzyFilter,placeholder:e.placeholder,forceRefresh:e.forceRefresh,caseSensitive:e.caseSensitive})),Pe=new s.Token("@jupyterlab/apputils:ISplashScreen");var De,Re=n(43231);class Ie{constructor(e){this._current=null,this._links=[],this._overrides={},this._overrideProps={},this._outstanding=null,this._pending=0,this._requests={},this._themes={},this._themeChanged=new a.Signal(this);const{host:t,key:n,splash:r,url:i}=e;this.translator=e.translator||V.nullTranslator,this._trans=this.translator.load("jupyterlab");const s=e.settings;this._base=i,this._host=t,this._splash=r||null,s.load(n).then((e=>{this._settings=e,this._initOverrideProps(),this._settings.changed.connect(this._loadSettings,this),this._loadSettings()}))}get theme(){return this._current}get themes(){return Object.keys(this._themes)}get themeChanged(){return this._themeChanged}getCSS(e){var t;return null!==(t=this._overrides[e])&&void 0!==t?t:getComputedStyle(document.documentElement).getPropertyValue(`--jp-${e}`)}loadCSS(e){const t=this._base,n=Z.URLExt.isLocal(e)?Z.URLExt.join(t,e):e,r=this._links;return new Promise(((e,t)=>{const i=document.createElement("link");i.setAttribute("rel","stylesheet"),i.setAttribute("type","text/css"),i.setAttribute("href",n),i.addEventListener("load",(()=>{e(void 0)})),i.addEventListener("error",(()=>{t(`Stylesheet failed to load: ${n}`)})),document.body.appendChild(i),r.push(i),this.loadCSSOverrides()}))}loadCSSOverrides(){var e;const t=null!==(e=this._settings.user.overrides)&&void 0!==e?e:{};Object.keys(Object.assign(Object.assign({},this._overrides),t)).forEach((e=>{const n=t[e];n&&this.validateCSS(e,n)?document.documentElement.style.setProperty(`--jp-${e}`,n):(delete t[e],document.documentElement.style.removeProperty(`--jp-${e}`))})),this._overrides=t}validateCSS(e,t){const n=this._overrideProps[e];return n?!!CSS.supports(n,t)||(console.warn(`CSS validation failed: invalid value.\nkey: '${e}', val: '${t}', prop: '${n}'`),!1):(console.warn(`CSS validation failed: could not find property corresponding to key.\nkey: '${e}', val: '${t}'`),!1)}register(e){const{name:t}=e,n=this._themes;if(n[t])throw new Error(`Theme already registered for ${t}`);return n[t]=e,new Re.DisposableDelegate((()=>{delete n[t]}))}setCSSOverride(e,t){return this._settings.set("overrides",Object.assign(Object.assign({},this._overrides),{[e]:t}))}setTheme(e){return this._settings.set("theme",e)}isLight(e){return this._themes[e].isLight}incrFontSize(e){return this._incrFontSize(e,!0)}decrFontSize(e){return this._incrFontSize(e,!1)}themeScrollbars(e){return!!this._settings.composite["theme-scrollbars"]&&!!this._themes[e].themeScrollbars}isToggledThemeScrollbars(){return!!this._settings.composite["theme-scrollbars"]}toggleThemeScrollbars(){return this._settings.set("theme-scrollbars",!this._settings.composite["theme-scrollbars"])}getDisplayName(e){var t,n;return null!==(n=null===(t=this._themes[e])||void 0===t?void 0:t.displayName)&&void 0!==n?n:e}_incrFontSize(e,t=!0){var n;const r=(null!==(n=this.getCSS(e))&&void 0!==n?n:"13px").split(/([a-zA-Z]+)/),i=(t?1:-1)*("em"===r[1]?.1:1);return this.setCSSOverride(e,`${Number(r[0])+i}${r[1]}`)}_initOverrideProps(){const e=this._settings.schema.definitions.cssOverrides.properties;Object.keys(e).forEach((t=>{this._overrideProps[t]=e[t].description}))}_loadSettings(){const e=this._outstanding,t=this._pending,n=this._requests;t&&(window.clearTimeout(t),this._pending=0);const r=this._settings,i=this._themes,s=r.composite.theme;if(e)return e.then((()=>{this._loadSettings()})).catch((()=>{this._loadSettings()})),void(this._outstanding=null);if(n[s]=n[s]?n[s]+1:1,i[s])return this._outstanding=this._loadTheme(s),void delete n[s];if(n[s]>20){const e=r.default("theme");return delete n[s],i[e]?(console.warn(`Could not load theme ${s}, using default ${e}.`),void(this._outstanding=this._loadTheme(e))):void this._onError(this._trans.__("Neither theme %1 nor default %2 loaded.",s,e))}this._pending=window.setTimeout((()=>{this._loadSettings()}),75)}_loadTheme(e){var t;const n=this._current,r=this._links,i=this._themes,s=this._splash?this._splash.show(i[e].isLight):new Re.DisposableDelegate((()=>{}));r.forEach((e=>{e.parentElement&&e.parentElement.removeChild(e)})),r.length=0;const o=null===(t=this._settings.schema.properties)||void 0===t?void 0:t.theme;o&&(o.enum=Object.keys(i).map((e=>{var t;return null!==(t=i[e].displayName)&&void 0!==t?t:e})));const a=n?i[n].unload():Promise.resolve();return Promise.all([a,i[e].load()]).then((()=>{this._current=e,this._themeChanged.emit({name:"theme",oldValue:n,newValue:e}),this._host.hide(),requestAnimationFrame((()=>{this._host.show(),De.fitAll(this._host),s.dispose()}))})).catch((e=>{this._onError(e),s.dispose()}))}_onError(e){P({title:this._trans.__("Error Loading Theme"),body:String(e),buttons:[R.okButton({label:this._trans.__("OK")})]})}}!function(e){e.fitAll=function e(t){(0,_.each)(t.children(),e),t.fit()}}(De||(De={}));const Ne=new s.Token("@jupyterlab/apputils:ISessionContextDialogs"),Le=new s.Token("@jupyterlab/apputils:IThemeManager"),Be=new s.Token("@jupyterlab/apputils:ISanitizer"),Me=new s.Token("@jupyterlab/apputils:IToolbarWidgetRegistry");var je=n(92877),qe=n(15786);const $e="jupyter.lab.toolbars";function Fe(e,t,n,r,i,o="toolbar"){const a=new je.ObservableList({itemCmp:(e,t)=>s.JSONExt.deepEqual(e,t)});return async function(e,t,n,r,i,o="toolbar"){var a;const l=i.load("jupyterlab");let c=null,u={},d=!0;try{function f(e){var i,s;u={};const a=Object.keys(t.plugins).filter((e=>e!==r)).map((e=>{var r,i;const s=null!==(i=(null!==(r=t.plugins[e].schema[$e])&&void 0!==r?r:{})[n])&&void 0!==i?i:[];return u[e]=s,s})).concat([null!==(s=(null!==(i=e[$e])&&void 0!==i?i:{})[n])&&void 0!==s?s:[]]).reduceRight(((e,t)=>qe.SettingRegistry.reconcileToolbarItems(e,t,!0)),[]);e.properties[o].default=qe.SettingRegistry.reconcileToolbarItems(a,e.properties[o].default,!0).sort(((e,t)=>{var n,r;return(null!==(n=e.rank)&&void 0!==n?n:50)-(null!==(r=t.rank)&&void 0!==r?r:50)}))}t.transform(r,{compose:e=>{var t,n,r,i,a;c||(c=s.JSONExt.deepCopy(e.schema),f(c));const l=null!==(r=(null!==(n=(null!==(t=c.properties)&&void 0!==t?t:{})[o])&&void 0!==n?n:{}).default)&&void 0!==r?r:[],u=e.data.user,d=e.data.composite;return u[o]=null!==(i=e.data.user[o])&&void 0!==i?i:[],d[o]=(null!==(a=qe.SettingRegistry.reconcileToolbarItems(l,u[o],!1))&&void 0!==a?a:[]).sort(((e,t)=>{var n,r;return(null!==(n=e.rank)&&void 0!==n?n:50)-(null!==(r=t.rank)&&void 0!==r?r:50)})),e.data={composite:d,user:u},e},fetch:e=>(c||(c=s.JSONExt.deepCopy(e.schema),f(c)),{data:e.data,id:e.id,raw:e.raw,schema:c,version:e.version})})}catch(g){if("TransformError"!==g.name)throw g;d=!1}const h=await t.load(r);h.changed.connect((()=>{var e;const t=null!==(e=h.composite[o])&&void 0!==e?e:[];p(t)}));const p=t=>{e.clear(),e.pushAll(t.filter((e=>!e.disabled)))};p(null!==(a=h.composite[o])&&void 0!==a?a:[]),d&&t.pluginChanged.connect((async(e,i)=>{var o,a,d;if(i===r)return;const h=null!==(o=u[i])&&void 0!==o?o:[],p=null!==(d=(null!==(a=t.plugins[i].schema[$e])&&void 0!==a?a:{})[n])&&void 0!==d?d:[];s.JSONExt.deepEqual(h,p)||(u[i]?await async function(e){(await P({title:e.__("Information"),body:e.__("Toolbar customization has changed. You will need to reload JupyterLab to see the changes."),buttons:[R.cancelButton(),R.okButton({label:e.__("Reload")})]})).button.accept&&location.reload()}(l):p.length>0&&(c=null,await t.reload(r)))}))}(a,t,n,r,i,o).catch((e=>{console.error(`Failed to load toolbar items for factory ${n} from ${r}`,e)})),t=>{const r=(r,s)=>{switch(s.type){case"move":i.move(s.oldIndex,s.newIndex);break;case"add":s.newValues.forEach((r=>i.push({name:r.name,widget:e.createWidget(n,t,r)})));break;case"remove":s.oldValues.forEach((()=>i.remove(s.oldIndex)));break;case"set":s.newValues.forEach((r=>i.set(s.newIndex,{name:r.name,widget:e.createWidget(n,t,r)})))}},i=new je.ObservableList({values:(0,_.toArray)(a).map((r=>({name:r.name,widget:e.createWidget(n,t,r)})))});return a.changed.connect(r),t.disposed.connect((()=>{a.changed.disconnect(r)})),i}}function Ue(e,t){if(!e.toolbar)return void console.log(`Widget ${e.id} has no 'toolbar'.`);const n=t(e);if(Array.isArray(n))n.forEach((({name:t,widget:n})=>{e.toolbar.addItem(t,n)}));else{const t=(t,n)=>{switch(n.type){case"add":n.newValues.forEach(((t,r)=>{e.toolbar.insertItem(n.newIndex+r,t.name,t.widget)}));break;case"move":n.oldValues.forEach((e=>{e.widget.parent=null})),n.newValues.forEach(((t,r)=>{e.toolbar.insertItem(n.newIndex+r,t.name,t.widget)}));break;case"remove":n.oldValues.forEach((e=>{e.widget.parent=null}));break;case"set":n.oldValues.forEach((e=>{e.widget.parent=null})),n.newValues.forEach(((t,r)=>{const i=(0,_.findIndex)(e.toolbar.names(),(e=>t.name===e));i>=0&&((0,_.toArray)(e.toolbar.children())[i].parent=null),e.toolbar.insertItem(n.newIndex+r,t.name,t.widget)}))}};t(n,{newIndex:0,newValues:(0,_.toArray)(n),oldIndex:0,oldValues:[],type:"add"}),n.changed.connect(t),e.disposed.connect((()=>{n.changed.disconnect(t)}))}}class He{constructor(e){this._widgets=new Map,this._defaultFactory=e.defaultFactory}get defaultFactory(){return this._defaultFactory}set defaultFactory(e){this._defaultFactory=e}createWidget(e,t,n){var r;const i=null===(r=this._widgets.get(e))||void 0===r?void 0:r.get(n.name);return i?i(t):this._defaultFactory(e,t,n)}registerFactory(e,t,n){let r=this._widgets.get(e);const i=null==r?void 0:r.get(t);return r||(r=new Map,this._widgets.set(e,r)),r.set(t,n),i}}function ze(e){return(t,n,r)=>{var i;switch(null!==(i=r.type)&&void 0!==i?i:"command"){case"command":{const{command:t,args:n,label:i,icon:s}=r,a=null!=t?t:"",l=Object.assign({toolbar:!0},n),c=s?o.LabIcon.resolve({icon:s}):void 0,u=(null!=c?c:e.icon(a,l))?null!=i?i:"":i;return new fe({commands:e,id:a,args:l,icon:c,label:u})}case"spacer":return ae.createSpacerItem();default:return new l.Widget}}}const We=new s.Token("@jupyterlab/apputils:IWindowResolver");class Ge{get name(){return this._name}resolve(e){return Ve.resolve(e).then((e=>{this._name=e}))}}var Ve;!function(e){const t="@jupyterlab/statedb:StateDB",n=`${t}:beacon`,r=Math.floor(200+300*Math.random()),i=`${t}:window`;let o=null,a=null;const l=new s.PromiseDelegate,c={};let u=null,d=!1;function h(e){if(null===e)return;const{localStorage:t}=window;t.setItem(i,`${e}-${(new Date).getTime()}`)}function p(){d=!0,o=null,l.reject(`Window name candidate "${a}" already exists`)}e.resolve=function(e){if(d)return l.promise;if(a=e,a in c)return p(),l.promise;const{localStorage:t,setTimeout:i}=window;return i((()=>{if(!d){if(!a||a in c)return p();d=!0,o=null,l.resolve(u=a),h(u)}}),r),o=`${Math.random()}-${(new Date).getTime()}`,t.setItem(n,o),l.promise},window.addEventListener("storage",(e=>{const{key:t,newValue:r}=e;if(null===r)return;if(t===n&&r!==o&&null!==a)return void h(d?u:a);if(d||t!==i)return;const s=r.replace(/\-\d+$/,"");c[s]=null,a&&!(a in c)||p()}))}(Ve||(Ve={}))},75303:e=>{"use strict";var t=function(e){return function(e){return!!e&&"object"==typeof e}(e)&&!function(e){var t=Object.prototype.toString.call(e);return"[object RegExp]"===t||"[object Date]"===t||function(e){return e.$$typeof===n}(e)}(e)},n="function"==typeof Symbol&&Symbol.for?Symbol.for("react.element"):60103;function r(e,t){return!1!==t.clone&&t.isMergeableObject(e)?a((n=e,Array.isArray(n)?[]:{}),e,t):e;var n}function i(e,t,n){return e.concat(t).map((function(e){return r(e,n)}))}function s(e){return Object.keys(e).concat(function(e){return Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(e).filter((function(t){return e.propertyIsEnumerable(t)})):[]}(e))}function o(e,t){try{return t in e}catch(e){return!1}}function a(e,n,l){(l=l||{}).arrayMerge=l.arrayMerge||i,l.isMergeableObject=l.isMergeableObject||t,l.cloneUnlessOtherwiseSpecified=r;var c=Array.isArray(n);return c===Array.isArray(e)?c?l.arrayMerge(e,n,l):function(e,t,n){var i={};return n.isMergeableObject(e)&&s(e).forEach((function(t){i[t]=r(e[t],n)})),s(t).forEach((function(s){(function(e,t){return o(e,t)&&!(Object.hasOwnProperty.call(e,t)&&Object.propertyIsEnumerable.call(e,t))})(e,s)||(o(e,s)&&n.isMergeableObject(t[s])?i[s]=function(e,t){if(!t.customMerge)return a;var n=t.customMerge(e);return"function"==typeof n?n:a}(s,n)(e[s],t[s],n):i[s]=r(t[s],n))})),i}(e,n,l):r(n,l)}a.all=function(e,t){if(!Array.isArray(e))throw new Error("first argument should be an array");return e.reduce((function(e,n){return a(e,n,t)}),{})};var l=a;e.exports=l},52285:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.attributeNames=t.elementNames=void 0,t.elementNames=new Map([["altglyph","altGlyph"],["altglyphdef","altGlyphDef"],["altglyphitem","altGlyphItem"],["animatecolor","animateColor"],["animatemotion","animateMotion"],["animatetransform","animateTransform"],["clippath","clipPath"],["feblend","feBlend"],["fecolormatrix","feColorMatrix"],["fecomponenttransfer","feComponentTransfer"],["fecomposite","feComposite"],["feconvolvematrix","feConvolveMatrix"],["fediffuselighting","feDiffuseLighting"],["fedisplacementmap","feDisplacementMap"],["fedistantlight","feDistantLight"],["fedropshadow","feDropShadow"],["feflood","feFlood"],["fefunca","feFuncA"],["fefuncb","feFuncB"],["fefuncg","feFuncG"],["fefuncr","feFuncR"],["fegaussianblur","feGaussianBlur"],["feimage","feImage"],["femerge","feMerge"],["femergenode","feMergeNode"],["femorphology","feMorphology"],["feoffset","feOffset"],["fepointlight","fePointLight"],["fespecularlighting","feSpecularLighting"],["fespotlight","feSpotLight"],["fetile","feTile"],["feturbulence","feTurbulence"],["foreignobject","foreignObject"],["glyphref","glyphRef"],["lineargradient","linearGradient"],["radialgradient","radialGradient"],["textpath","textPath"]]),t.attributeNames=new Map([["definitionurl","definitionURL"],["attributename","attributeName"],["attributetype","attributeType"],["basefrequency","baseFrequency"],["baseprofile","baseProfile"],["calcmode","calcMode"],["clippathunits","clipPathUnits"],["diffuseconstant","diffuseConstant"],["edgemode","edgeMode"],["filterunits","filterUnits"],["glyphref","glyphRef"],["gradienttransform","gradientTransform"],["gradientunits","gradientUnits"],["kernelmatrix","kernelMatrix"],["kernelunitlength","kernelUnitLength"],["keypoints","keyPoints"],["keysplines","keySplines"],["keytimes","keyTimes"],["lengthadjust","lengthAdjust"],["limitingconeangle","limitingConeAngle"],["markerheight","markerHeight"],["markerunits","markerUnits"],["markerwidth","markerWidth"],["maskcontentunits","maskContentUnits"],["maskunits","maskUnits"],["numoctaves","numOctaves"],["pathlength","pathLength"],["patterncontentunits","patternContentUnits"],["patterntransform","patternTransform"],["patternunits","patternUnits"],["pointsatx","pointsAtX"],["pointsaty","pointsAtY"],["pointsatz","pointsAtZ"],["preservealpha","preserveAlpha"],["preserveaspectratio","preserveAspectRatio"],["primitiveunits","primitiveUnits"],["refx","refX"],["refy","refY"],["repeatcount","repeatCount"],["repeatdur","repeatDur"],["requiredextensions","requiredExtensions"],["requiredfeatures","requiredFeatures"],["specularconstant","specularConstant"],["specularexponent","specularExponent"],["spreadmethod","spreadMethod"],["startoffset","startOffset"],["stddeviation","stdDeviation"],["stitchtiles","stitchTiles"],["surfacescale","surfaceScale"],["systemlanguage","systemLanguage"],["tablevalues","tableValues"],["targetx","targetX"],["targety","targetY"],["textlength","textLength"],["viewbox","viewBox"],["viewtarget","viewTarget"],["xchannelselector","xChannelSelector"],["ychannelselector","yChannelSelector"],["zoomandpan","zoomAndPan"]])},24500:function(e,t,n){"use strict";var r=this&&this.__assign||function(){return r=Object.assign||function(e){for(var t,n=1,r=arguments.length;n";case a.Comment:return"\x3c!--"+e.data+"--\x3e";case a.CDATA:return function(e){return""}(e);case a.Script:case a.Style:case a.Tag:return function(e,t){var n;"foreign"===t.xmlMode&&(e.name=null!==(n=c.elementNames.get(e.name))&&void 0!==n?n:e.name,e.parent&&f.has(e.parent.name)&&(t=r(r({},t),{xmlMode:!1}))),!t.xmlMode&&g.has(e.name)&&(t=r(r({},t),{xmlMode:"foreign"}));var i="<"+e.name,s=function(e,t){if(e)return Object.keys(e).map((function(n){var r,i,s=null!==(r=e[n])&&void 0!==r?r:"";return"foreign"===t.xmlMode&&(n=null!==(i=c.attributeNames.get(n))&&void 0!==i?i:n),t.emptyAttrs||t.xmlMode||""!==s?n+'="'+(!1!==t.decodeEntities?l.encodeXML(s):s.replace(/"/g,"""))+'"':n})).join(" ")}(e.attribs,t);return s&&(i+=" "+s),0===e.children.length&&(t.xmlMode?!1!==t.selfClosingTags:t.selfClosingTags&&d.has(e.name))?(t.xmlMode||(i+=" "),i+="/>"):(i+=">",e.children.length>0&&(i+=h(e.children,t)),!t.xmlMode&&d.has(e.name)||(i+="")),i}(e,t);case a.Text:return function(e,t){var n=e.data||"";return!1===t.decodeEntities||!t.xmlMode&&e.parent&&u.has(e.parent.name)||(n=l.encodeXML(n)),n}(e,t)}}t.default=h;var f=new Set(["mi","mo","mn","ms","mtext","annotation-xml","foreignObject","desc","title"]),g=new Set(["svg","math"])},14948:(e,t)=>{"use strict";var n;Object.defineProperty(t,"__esModule",{value:!0}),t.Doctype=t.CDATA=t.Tag=t.Style=t.Script=t.Comment=t.Directive=t.Text=t.Root=t.isTag=t.ElementType=void 0,function(e){e.Root="root",e.Text="text",e.Directive="directive",e.Comment="comment",e.Script="script",e.Style="style",e.Tag="tag",e.CDATA="cdata",e.Doctype="doctype"}(n=t.ElementType||(t.ElementType={})),t.isTag=function(e){return e.type===n.Tag||e.type===n.Script||e.type===n.Style},t.Root=n.Root,t.Text=n.Text,t.Directive=n.Directive,t.Comment=n.Comment,t.Script=n.Script,t.Style=n.Style,t.Tag=n.Tag,t.CDATA=n.CDATA,t.Doctype=n.Doctype},94917:function(e,t,n){"use strict";var r=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n);var i=Object.getOwnPropertyDescriptor(t,n);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,i)}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),i=this&&this.__exportStar||function(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||r(t,e,n)};Object.defineProperty(t,"__esModule",{value:!0}),t.DomHandler=void 0;var s=n(14948),o=n(98089);i(n(98089),t);var a=/\s+/g,l={normalizeWhitespace:!1,withStartIndices:!1,withEndIndices:!1,xmlMode:!1},c=function(){function e(e,t,n){this.dom=[],this.root=new o.Document(this.dom),this.done=!1,this.tagStack=[this.root],this.lastNode=null,this.parser=null,"function"==typeof t&&(n=t,t=l),"object"==typeof e&&(t=e,e=void 0),this.callback=null!=e?e:null,this.options=null!=t?t:l,this.elementCB=null!=n?n:null}return e.prototype.onparserinit=function(e){this.parser=e},e.prototype.onreset=function(){this.dom=[],this.root=new o.Document(this.dom),this.done=!1,this.tagStack=[this.root],this.lastNode=null,this.parser=null},e.prototype.onend=function(){this.done||(this.done=!0,this.parser=null,this.handleCallback(null))},e.prototype.onerror=function(e){this.handleCallback(e)},e.prototype.onclosetag=function(){this.lastNode=null;var e=this.tagStack.pop();this.options.withEndIndices&&(e.endIndex=this.parser.endIndex),this.elementCB&&this.elementCB(e)},e.prototype.onopentag=function(e,t){var n=this.options.xmlMode?s.ElementType.Tag:void 0,r=new o.Element(e,t,void 0,n);this.addNode(r),this.tagStack.push(r)},e.prototype.ontext=function(e){var t=this.options.normalizeWhitespace,n=this.lastNode;if(n&&n.type===s.ElementType.Text)t?n.data=(n.data+e).replace(a," "):n.data+=e,this.options.withEndIndices&&(n.endIndex=this.parser.endIndex);else{t&&(e=e.replace(a," "));var r=new o.Text(e);this.addNode(r),this.lastNode=r}},e.prototype.oncomment=function(e){if(this.lastNode&&this.lastNode.type===s.ElementType.Comment)this.lastNode.data+=e;else{var t=new o.Comment(e);this.addNode(t),this.lastNode=t}},e.prototype.oncommentend=function(){this.lastNode=null},e.prototype.oncdatastart=function(){var e=new o.Text(""),t=new o.NodeWithChildren(s.ElementType.CDATA,[e]);this.addNode(t),e.parent=t,this.lastNode=e},e.prototype.oncdataend=function(){this.lastNode=null},e.prototype.onprocessinginstruction=function(e,t){var n=new o.ProcessingInstruction(e,t);this.addNode(n)},e.prototype.handleCallback=function(e){if("function"==typeof this.callback)this.callback(e,this.dom);else if(e)throw e},e.prototype.addNode=function(e){var t=this.tagStack[this.tagStack.length-1],n=t.children[t.children.length-1];this.options.withStartIndices&&(e.startIndex=this.parser.startIndex),this.options.withEndIndices&&(e.endIndex=this.parser.endIndex),t.children.push(e),n&&(e.prev=n,n.next=e),e.parent=t,this.lastNode=null},e}();t.DomHandler=c,t.default=c},98089:function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},r(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),s=this&&this.__assign||function(){return s=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0?this.children[this.children.length-1]:null},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"childNodes",{get:function(){return this.children},set:function(e){this.children=e},enumerable:!1,configurable:!0}),t}(l);t.NodeWithChildren=p;var f=function(e){function t(t){return e.call(this,o.ElementType.Root,t)||this}return i(t,e),t}(p);t.Document=f;var g=function(e){function t(t,n,r,i){void 0===r&&(r=[]),void 0===i&&(i="script"===t?o.ElementType.Script:"style"===t?o.ElementType.Style:o.ElementType.Tag);var s=e.call(this,i,r)||this;return s.name=t,s.attribs=n,s}return i(t,e),Object.defineProperty(t.prototype,"tagName",{get:function(){return this.name},set:function(e){this.name=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"attributes",{get:function(){var e=this;return Object.keys(this.attribs).map((function(t){var n,r;return{name:t,value:e.attribs[t],namespace:null===(n=e["x-attribsNamespace"])||void 0===n?void 0:n[t],prefix:null===(r=e["x-attribsPrefix"])||void 0===r?void 0:r[t]}}))},enumerable:!1,configurable:!0}),t}(p);function m(e){return(0,o.isTag)(e)}function b(e){return e.type===o.ElementType.CDATA}function _(e){return e.type===o.ElementType.Text}function y(e){return e.type===o.ElementType.Comment}function v(e){return e.type===o.ElementType.Directive}function w(e){return e.type===o.ElementType.Root}function C(e,t){var n;if(void 0===t&&(t=!1),_(e))n=new u(e.data);else if(y(e))n=new d(e.data);else if(m(e)){var r=t?x(e.children):[],i=new g(e.name,s({},e.attribs),r);r.forEach((function(e){return e.parent=i})),null!=e.namespace&&(i.namespace=e.namespace),e["x-attribsNamespace"]&&(i["x-attribsNamespace"]=s({},e["x-attribsNamespace"])),e["x-attribsPrefix"]&&(i["x-attribsPrefix"]=s({},e["x-attribsPrefix"])),n=i}else if(b(e)){r=t?x(e.children):[];var a=new p(o.ElementType.CDATA,r);r.forEach((function(e){return e.parent=a})),n=a}else if(w(e)){r=t?x(e.children):[];var l=new f(r);r.forEach((function(e){return e.parent=l})),e["x-mode"]&&(l["x-mode"]=e["x-mode"]),n=l}else{if(!v(e))throw new Error("Not implemented yet: ".concat(e.type));var c=new h(e.name,e.data);null!=e["x-name"]&&(c["x-name"]=e["x-name"],c["x-publicId"]=e["x-publicId"],c["x-systemId"]=e["x-systemId"]),n=c}return n.startIndex=e.startIndex,n.endIndex=e.endIndex,null!=e.sourceCodeLocation&&(n.sourceCodeLocation=e.sourceCodeLocation),n}function x(e){for(var t=e.map((function(e){return C(e,!0)})),n=1;n{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getFeed=void 0;var r=n(41147),i=n(95041);t.getFeed=function(e){var t=l(d,e);return t?"feed"===t.name?function(e){var t,n=e.children,r={type:"atom",items:(0,i.getElementsByTagName)("entry",n).map((function(e){var t,n=e.children,r={media:a(n)};u(r,"id","id",n),u(r,"title","title",n);var i=null===(t=l("link",n))||void 0===t?void 0:t.attribs.href;i&&(r.link=i);var s=c("summary",n)||c("content",n);s&&(r.description=s);var o=c("updated",n);return o&&(r.pubDate=new Date(o)),r}))};u(r,"id","id",n),u(r,"title","title",n);var s=null===(t=l("link",n))||void 0===t?void 0:t.attribs.href;s&&(r.link=s),u(r,"description","subtitle",n);var o=c("updated",n);return o&&(r.updated=new Date(o)),u(r,"author","email",n,!0),r}(t):function(e){var t,n,r=null!==(n=null===(t=l("channel",e.children))||void 0===t?void 0:t.children)&&void 0!==n?n:[],s={type:e.name.substr(0,3),id:"",items:(0,i.getElementsByTagName)("item",e.children).map((function(e){var t=e.children,n={media:a(t)};u(n,"id","guid",t),u(n,"title","title",t),u(n,"link","link",t),u(n,"description","description",t);var r=c("pubDate",t);return r&&(n.pubDate=new Date(r)),n}))};u(s,"title","title",r),u(s,"link","link",r),u(s,"description","description",r);var o=c("lastBuildDate",r);return o&&(s.updated=new Date(o)),u(s,"author","managingEditor",r,!0),s}(t):null};var s=["url","type","lang"],o=["fileSize","bitrate","framerate","samplingrate","channels","duration","height","width"];function a(e){return(0,i.getElementsByTagName)("media:content",e).map((function(e){for(var t=e.attribs,n={medium:t.medium,isDefault:!!t.isDefault},r=0,i=s;r{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.uniqueSort=t.compareDocumentPosition=t.removeSubsets=void 0;var r=n(94917);function i(e,t){var n=[],i=[];if(e===t)return 0;for(var s=(0,r.hasChildren)(e)?e:e.parent;s;)n.unshift(s),s=s.parent;for(s=(0,r.hasChildren)(t)?t:t.parent;s;)i.unshift(s),s=s.parent;for(var o=Math.min(n.length,i.length),a=0;ac.indexOf(d)?l===t?20:4:l===e?10:2}t.removeSubsets=function(e){for(var t=e.length;--t>=0;){var n=e[t];if(t>0&&e.lastIndexOf(n,t-1)>=0)e.splice(t,1);else for(var r=n.parent;r;r=r.parent)if(e.includes(r)){e.splice(t,1);break}}return e},t.compareDocumentPosition=i,t.uniqueSort=function(e){return(e=e.filter((function(e,t,n){return!n.includes(e,t+1)}))).sort((function(e,t){var n=i(e,t);return 2&n?-1:4&n?1:0})),e}},68258:function(e,t,n){"use strict";var r=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),i=this&&this.__exportStar||function(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||r(t,e,n)};Object.defineProperty(t,"__esModule",{value:!0}),t.hasChildren=t.isDocument=t.isComment=t.isText=t.isCDATA=t.isTag=void 0,i(n(41147),t),i(n(69821),t),i(n(25228),t),i(n(49352),t),i(n(95041),t),i(n(58512),t),i(n(88606),t);var s=n(94917);Object.defineProperty(t,"isTag",{enumerable:!0,get:function(){return s.isTag}}),Object.defineProperty(t,"isCDATA",{enumerable:!0,get:function(){return s.isCDATA}}),Object.defineProperty(t,"isText",{enumerable:!0,get:function(){return s.isText}}),Object.defineProperty(t,"isComment",{enumerable:!0,get:function(){return s.isComment}}),Object.defineProperty(t,"isDocument",{enumerable:!0,get:function(){return s.isDocument}}),Object.defineProperty(t,"hasChildren",{enumerable:!0,get:function(){return s.hasChildren}})},95041:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getElementsByTagType=t.getElementsByTagName=t.getElementById=t.getElements=t.testElement=void 0;var r=n(94917),i=n(49352),s={tag_name:function(e){return"function"==typeof e?function(t){return(0,r.isTag)(t)&&e(t.name)}:"*"===e?r.isTag:function(t){return(0,r.isTag)(t)&&t.name===e}},tag_type:function(e){return"function"==typeof e?function(t){return e(t.type)}:function(t){return t.type===e}},tag_contains:function(e){return"function"==typeof e?function(t){return(0,r.isText)(t)&&e(t.data)}:function(t){return(0,r.isText)(t)&&t.data===e}}};function o(e,t){return"function"==typeof t?function(n){return(0,r.isTag)(n)&&t(n.attribs[e])}:function(n){return(0,r.isTag)(n)&&n.attribs[e]===t}}function a(e,t){return function(n){return e(n)||t(n)}}function l(e){var t=Object.keys(e).map((function(t){var n=e[t];return Object.prototype.hasOwnProperty.call(s,t)?s[t](n):o(t,n)}));return 0===t.length?null:t.reduce(a)}t.testElement=function(e,t){var n=l(e);return!n||n(t)},t.getElements=function(e,t,n,r){void 0===r&&(r=1/0);var s=l(e);return s?(0,i.filter)(s,t,n,r):[]},t.getElementById=function(e,t,n){return void 0===n&&(n=!0),Array.isArray(t)||(t=[t]),(0,i.findOne)(o("id",e),t,n)},t.getElementsByTagName=function(e,t,n,r){return void 0===n&&(n=!0),void 0===r&&(r=1/0),(0,i.filter)(s.tag_name(e),t,n,r)},t.getElementsByTagType=function(e,t,n,r){return void 0===n&&(n=!0),void 0===r&&(r=1/0),(0,i.filter)(s.tag_type(e),t,n,r)}},25228:(e,t)=>{"use strict";function n(e){if(e.prev&&(e.prev.next=e.next),e.next&&(e.next.prev=e.prev),e.parent){var t=e.parent.children;t.splice(t.lastIndexOf(e),1)}}Object.defineProperty(t,"__esModule",{value:!0}),t.prepend=t.prependChild=t.append=t.appendChild=t.replaceElement=t.removeElement=void 0,t.removeElement=n,t.replaceElement=function(e,t){var n=t.prev=e.prev;n&&(n.next=t);var r=t.next=e.next;r&&(r.prev=t);var i=t.parent=e.parent;if(i){var s=i.children;s[s.lastIndexOf(e)]=t}},t.appendChild=function(e,t){if(n(t),t.next=null,t.parent=e,e.children.push(t)>1){var r=e.children[e.children.length-2];r.next=t,t.prev=r}else t.prev=null},t.append=function(e,t){n(t);var r=e.parent,i=e.next;if(t.next=i,t.prev=e,e.next=t,t.parent=r,i){if(i.prev=t,r){var s=r.children;s.splice(s.lastIndexOf(i),0,t)}}else r&&r.children.push(t)},t.prependChild=function(e,t){if(n(t),t.parent=e,t.prev=null,1!==e.children.unshift(t)){var r=e.children[1];r.prev=t,t.next=r}else t.next=null},t.prepend=function(e,t){n(t);var r=e.parent;if(r){var i=r.children;i.splice(i.indexOf(e),0,t)}e.prev&&(e.prev.next=t),t.parent=r,t.prev=e.prev,t.next=e,e.prev=t}},49352:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.findAll=t.existsOne=t.findOne=t.findOneChild=t.find=t.filter=void 0;var r=n(94917);function i(e,t,n,s){for(var o=[],a=0,l=t;a0){var u=i(e,c.children,n,s);if(o.push.apply(o,u),(s-=u.length)<=0)break}}return o}t.filter=function(e,t,n,r){return void 0===n&&(n=!0),void 0===r&&(r=1/0),Array.isArray(t)||(t=[t]),i(e,t,n,r)},t.find=i,t.findOneChild=function(e,t){return t.find(e)},t.findOne=function e(t,n,i){void 0===i&&(i=!0);for(var s=null,o=0;o0&&(s=e(t,a.children)))}return s},t.existsOne=function e(t,n){return n.some((function(n){return(0,r.isTag)(n)&&(t(n)||n.children.length>0&&e(t,n.children))}))},t.findAll=function(e,t){for(var n,i,s=[],o=t.filter(r.isTag);i=o.shift();){var a=null===(n=i.children)||void 0===n?void 0:n.filter(r.isTag);a&&a.length>0&&o.unshift.apply(o,a),e(i)&&s.push(i)}return s}},41147:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.innerText=t.textContent=t.getText=t.getInnerHTML=t.getOuterHTML=void 0;var i=n(94917),s=r(n(24500)),o=n(14948);function a(e,t){return(0,s.default)(e,t)}t.getOuterHTML=a,t.getInnerHTML=function(e,t){return(0,i.hasChildren)(e)?e.children.map((function(e){return a(e,t)})).join(""):""},t.getText=function e(t){return Array.isArray(t)?t.map(e).join(""):(0,i.isTag)(t)?"br"===t.name?"\n":e(t.children):(0,i.isCDATA)(t)?e(t.children):(0,i.isText)(t)?t.data:""},t.textContent=function e(t){return Array.isArray(t)?t.map(e).join(""):(0,i.hasChildren)(t)&&!(0,i.isComment)(t)?e(t.children):(0,i.isText)(t)?t.data:""},t.innerText=function e(t){return Array.isArray(t)?t.map(e).join(""):(0,i.hasChildren)(t)&&(t.type===o.ElementType.Tag||(0,i.isCDATA)(t))?e(t.children):(0,i.isText)(t)?t.data:""}},69821:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.prevElementSibling=t.nextElementSibling=t.getName=t.hasAttrib=t.getAttributeValue=t.getSiblings=t.getParent=t.getChildren=void 0;var r=n(94917),i=[];function s(e){var t;return null!==(t=e.children)&&void 0!==t?t:i}function o(e){return e.parent||null}t.getChildren=s,t.getParent=o,t.getSiblings=function(e){var t=o(e);if(null!=t)return s(t);for(var n=[e],r=e.prev,i=e.next;null!=r;)n.unshift(r),r=r.prev;for(;null!=i;)n.push(i),i=i.next;return n},t.getAttributeValue=function(e,t){var n;return null===(n=e.attribs)||void 0===n?void 0:n[t]},t.hasAttrib=function(e,t){return null!=e.attribs&&Object.prototype.hasOwnProperty.call(e.attribs,t)&&null!=e.attribs[t]},t.getName=function(e){return e.name},t.nextElementSibling=function(e){for(var t=e.next;null!==t&&!(0,r.isTag)(t);)t=t.next;return t},t.prevElementSibling=function(e){for(var t=e.prev;null!==t&&!(0,r.isTag)(t);)t=t.prev;return t}},795:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.decodeHTML=t.decodeHTMLStrict=t.decodeXML=void 0;var i=r(n(98253)),s=r(n(28536)),o=r(n(71849)),a=r(n(24603)),l=/&(?:[a-zA-Z0-9]+|#[xX][\da-fA-F]+|#\d+);/g;function c(e){var t=d(e);return function(e){return String(e).replace(l,t)}}t.decodeXML=c(o.default),t.decodeHTMLStrict=c(i.default);var u=function(e,t){return e65535&&(e-=65536,t+=String.fromCharCode(e>>>10&1023|55296),e=56320|1023&e),t+String.fromCharCode(e)};t.default=function(e){return e>=55296&&e<=57343||e>1114111?"�":(e in i.default&&(e=i.default[e]),s(e))}},13650:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.escapeUTF8=t.escape=t.encodeNonAsciiHTML=t.encodeHTML=t.encodeXML=void 0;var i=u(r(n(71849)).default),s=d(i);t.encodeXML=m(i);var o,a,l=u(r(n(98253)).default),c=d(l);function u(e){return Object.keys(e).sort().reduce((function(t,n){return t[e[n]]="&"+n+";",t}),{})}function d(e){for(var t=[],n=[],r=0,i=Object.keys(e);r1?p(e):e.charCodeAt(0)).toString(16).toUpperCase()+";"}var g=new RegExp(s.source+"|"+h.source,"g");function m(e){return function(t){return t.replace(g,(function(t){return e[t]||f(t)}))}}t.escape=function(e){return e.replace(g,f)},t.escapeUTF8=function(e){return e.replace(s,f)}},1542:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.decodeXMLStrict=t.decodeHTML5Strict=t.decodeHTML4Strict=t.decodeHTML5=t.decodeHTML4=t.decodeHTMLStrict=t.decodeHTML=t.decodeXML=t.encodeHTML5=t.encodeHTML4=t.escapeUTF8=t.escape=t.encodeNonAsciiHTML=t.encodeHTML=t.encodeXML=t.encode=t.decodeStrict=t.decode=void 0;var r=n(795),i=n(13650);t.decode=function(e,t){return(!t||t<=0?r.decodeXML:r.decodeHTML)(e)},t.decodeStrict=function(e,t){return(!t||t<=0?r.decodeXML:r.decodeHTMLStrict)(e)},t.encode=function(e,t){return(!t||t<=0?i.encodeXML:i.encodeHTML)(e)};var s=n(13650);Object.defineProperty(t,"encodeXML",{enumerable:!0,get:function(){return s.encodeXML}}),Object.defineProperty(t,"encodeHTML",{enumerable:!0,get:function(){return s.encodeHTML}}),Object.defineProperty(t,"encodeNonAsciiHTML",{enumerable:!0,get:function(){return s.encodeNonAsciiHTML}}),Object.defineProperty(t,"escape",{enumerable:!0,get:function(){return s.escape}}),Object.defineProperty(t,"escapeUTF8",{enumerable:!0,get:function(){return s.escapeUTF8}}),Object.defineProperty(t,"encodeHTML4",{enumerable:!0,get:function(){return s.encodeHTML}}),Object.defineProperty(t,"encodeHTML5",{enumerable:!0,get:function(){return s.encodeHTML}});var o=n(795);Object.defineProperty(t,"decodeXML",{enumerable:!0,get:function(){return o.decodeXML}}),Object.defineProperty(t,"decodeHTML",{enumerable:!0,get:function(){return o.decodeHTML}}),Object.defineProperty(t,"decodeHTMLStrict",{enumerable:!0,get:function(){return o.decodeHTMLStrict}}),Object.defineProperty(t,"decodeHTML4",{enumerable:!0,get:function(){return o.decodeHTML}}),Object.defineProperty(t,"decodeHTML5",{enumerable:!0,get:function(){return o.decodeHTML}}),Object.defineProperty(t,"decodeHTML4Strict",{enumerable:!0,get:function(){return o.decodeHTMLStrict}}),Object.defineProperty(t,"decodeHTML5Strict",{enumerable:!0,get:function(){return o.decodeHTMLStrict}}),Object.defineProperty(t,"decodeXMLStrict",{enumerable:!0,get:function(){return o.decodeXML}})},29681:function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},r(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),s=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),o=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),a=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&s(t,e,n);return o(t,e),t},l=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.parseFeed=t.FeedHandler=void 0;var c,u,d=l(n(94917)),h=a(n(68258)),p=n(64332);!function(e){e[e.image=0]="image",e[e.audio=1]="audio",e[e.video=2]="video",e[e.document=3]="document",e[e.executable=4]="executable"}(c||(c={})),function(e){e[e.sample=0]="sample",e[e.full=1]="full",e[e.nonstop=2]="nonstop"}(u||(u={}));var f=function(e){function t(t,n){return"object"==typeof t&&(n=t=void 0),e.call(this,t,n)||this}return i(t,e),t.prototype.onend=function(){var e,t,n=b(w,this.dom);if(n){var r={};if("feed"===n.name){var i=n.children;r.type="atom",v(r,"id","id",i),v(r,"title","title",i);var s=y("href",b("link",i));s&&(r.link=s),v(r,"description","subtitle",i),(o=_("updated",i))&&(r.updated=new Date(o)),v(r,"author","email",i,!0),r.items=m("entry",i).map((function(e){var t={},n=e.children;v(t,"id","id",n),v(t,"title","title",n);var r=y("href",b("link",n));r&&(t.link=r);var i=_("summary",n)||_("content",n);i&&(t.description=i);var s=_("updated",n);return s&&(t.pubDate=new Date(s)),t.media=g(n),t}))}else{var o;i=null!==(t=null===(e=b("channel",n.children))||void 0===e?void 0:e.children)&&void 0!==t?t:[],r.type=n.name.substr(0,3),r.id="",v(r,"title","title",i),v(r,"link","link",i),v(r,"description","description",i),(o=_("lastBuildDate",i))&&(r.updated=new Date(o)),v(r,"author","managingEditor",i,!0),r.items=m("item",n.children).map((function(e){var t={},n=e.children;v(t,"id","guid",n),v(t,"title","title",n),v(t,"link","link",n),v(t,"description","description",n);var r=_("pubDate",n);return r&&(t.pubDate=new Date(r)),t.media=g(n),t}))}this.feed=r,this.handleCallback(null)}else this.handleCallback(new Error("couldn't find root of feed"))},t}(d.default);function g(e){return m("media:content",e).map((function(e){var t={medium:e.attribs.medium,isDefault:!!e.attribs.isDefault};return e.attribs.url&&(t.url=e.attribs.url),e.attribs.fileSize&&(t.fileSize=parseInt(e.attribs.fileSize,10)),e.attribs.type&&(t.type=e.attribs.type),e.attribs.expression&&(t.expression=e.attribs.expression),e.attribs.bitrate&&(t.bitrate=parseInt(e.attribs.bitrate,10)),e.attribs.framerate&&(t.framerate=parseInt(e.attribs.framerate,10)),e.attribs.samplingrate&&(t.samplingrate=parseInt(e.attribs.samplingrate,10)),e.attribs.channels&&(t.channels=parseInt(e.attribs.channels,10)),e.attribs.duration&&(t.duration=parseInt(e.attribs.duration,10)),e.attribs.height&&(t.height=parseInt(e.attribs.height,10)),e.attribs.width&&(t.width=parseInt(e.attribs.width,10)),e.attribs.lang&&(t.lang=e.attribs.lang),t}))}function m(e,t){return h.getElementsByTagName(e,t,!0)}function b(e,t){return h.getElementsByTagName(e,t,!0,1)[0]}function _(e,t,n){return void 0===n&&(n=!1),h.getText(h.getElementsByTagName(e,t,n,1)).trim()}function y(e,t){return t?t.attribs[e]:null}function v(e,t,n,r,i){void 0===i&&(i=!1);var s=_(n,r,i);s&&(e[t]=s)}function w(e){return"rss"===e||"feed"===e||"rdf:RDF"===e}t.FeedHandler=f,t.parseFeed=function(e,t){void 0===t&&(t={xmlMode:!0});var n=new f(t);return new p.Parser(n,t).end(e),n.feed}},64332:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Parser=void 0;var i=r(n(40543)),s=new Set(["input","option","optgroup","select","button","datalist","textarea"]),o=new Set(["p"]),a={tr:new Set(["tr","th","td"]),th:new Set(["th"]),td:new Set(["thead","th","td"]),body:new Set(["head","link","script"]),li:new Set(["li"]),p:o,h1:o,h2:o,h3:o,h4:o,h5:o,h6:o,select:s,input:s,output:s,button:s,datalist:s,textarea:s,option:new Set(["option"]),optgroup:new Set(["optgroup","option"]),dd:new Set(["dt","dd"]),dt:new Set(["dt","dd"]),address:o,article:o,aside:o,blockquote:o,details:o,div:o,dl:o,fieldset:o,figcaption:o,figure:o,footer:o,form:o,header:o,hr:o,main:o,nav:o,ol:o,pre:o,section:o,table:o,ul:o,rt:new Set(["rt","rp"]),rp:new Set(["rt","rp"]),tbody:new Set(["thead","tbody"]),tfoot:new Set(["thead","tbody"])},l=new Set(["area","base","basefont","br","col","command","embed","frame","hr","img","input","isindex","keygen","link","meta","param","source","track","wbr"]),c=new Set(["math","svg"]),u=new Set(["mi","mo","mn","ms","mtext","annotation-xml","foreignObject","desc","title"]),d=/\s|\//,h=function(){function e(e,t){var n,r,s,o,a;void 0===t&&(t={}),this.startIndex=0,this.endIndex=null,this.tagname="",this.attribname="",this.attribvalue="",this.attribs=null,this.stack=[],this.foreignContext=[],this.options=t,this.cbs=null!=e?e:{},this.lowerCaseTagNames=null!==(n=t.lowerCaseTags)&&void 0!==n?n:!t.xmlMode,this.lowerCaseAttributeNames=null!==(r=t.lowerCaseAttributeNames)&&void 0!==r?r:!t.xmlMode,this.tokenizer=new(null!==(s=t.Tokenizer)&&void 0!==s?s:i.default)(this.options,this),null===(a=(o=this.cbs).onparserinit)||void 0===a||a.call(o,this)}return e.prototype.updatePosition=function(e){null===this.endIndex?this.tokenizer.sectionStart<=e?this.startIndex=0:this.startIndex=this.tokenizer.sectionStart-e:this.startIndex=this.endIndex+1,this.endIndex=this.tokenizer.getAbsoluteIndex()},e.prototype.ontext=function(e){var t,n;this.updatePosition(1),this.endIndex--,null===(n=(t=this.cbs).ontext)||void 0===n||n.call(t,e)},e.prototype.onopentagname=function(e){var t,n;if(this.lowerCaseTagNames&&(e=e.toLowerCase()),this.tagname=e,!this.options.xmlMode&&Object.prototype.hasOwnProperty.call(a,e))for(var r=void 0;this.stack.length>0&&a[e].has(r=this.stack[this.stack.length-1]);)this.onclosetag(r);!this.options.xmlMode&&l.has(e)||(this.stack.push(e),c.has(e)?this.foreignContext.push(!0):u.has(e)&&this.foreignContext.push(!1)),null===(n=(t=this.cbs).onopentagname)||void 0===n||n.call(t,e),this.cbs.onopentag&&(this.attribs={})},e.prototype.onopentagend=function(){var e,t;this.updatePosition(1),this.attribs&&(null===(t=(e=this.cbs).onopentag)||void 0===t||t.call(e,this.tagname,this.attribs),this.attribs=null),!this.options.xmlMode&&this.cbs.onclosetag&&l.has(this.tagname)&&this.cbs.onclosetag(this.tagname),this.tagname=""},e.prototype.onclosetag=function(e){if(this.updatePosition(1),this.lowerCaseTagNames&&(e=e.toLowerCase()),(c.has(e)||u.has(e))&&this.foreignContext.pop(),!this.stack.length||!this.options.xmlMode&&l.has(e))this.options.xmlMode||"br"!==e&&"p"!==e||(this.onopentagname(e),this.closeCurrentTag());else{var t=this.stack.lastIndexOf(e);if(-1!==t)if(this.cbs.onclosetag)for(t=this.stack.length-t;t--;)this.cbs.onclosetag(this.stack.pop());else this.stack.length=t;else"p"!==e||this.options.xmlMode||(this.onopentagname(e),this.closeCurrentTag())}},e.prototype.onselfclosingtag=function(){this.options.xmlMode||this.options.recognizeSelfClosing||this.foreignContext[this.foreignContext.length-1]?this.closeCurrentTag():this.onopentagend()},e.prototype.closeCurrentTag=function(){var e,t,n=this.tagname;this.onopentagend(),this.stack[this.stack.length-1]===n&&(null===(t=(e=this.cbs).onclosetag)||void 0===t||t.call(e,n),this.stack.pop())},e.prototype.onattribname=function(e){this.lowerCaseAttributeNames&&(e=e.toLowerCase()),this.attribname=e},e.prototype.onattribdata=function(e){this.attribvalue+=e},e.prototype.onattribend=function(e){var t,n;null===(n=(t=this.cbs).onattribute)||void 0===n||n.call(t,this.attribname,this.attribvalue,e),this.attribs&&!Object.prototype.hasOwnProperty.call(this.attribs,this.attribname)&&(this.attribs[this.attribname]=this.attribvalue),this.attribname="",this.attribvalue=""},e.prototype.getInstructionName=function(e){var t=e.search(d),n=t<0?e:e.substr(0,t);return this.lowerCaseTagNames&&(n=n.toLowerCase()),n},e.prototype.ondeclaration=function(e){if(this.cbs.onprocessinginstruction){var t=this.getInstructionName(e);this.cbs.onprocessinginstruction("!"+t,"!"+e)}},e.prototype.onprocessinginstruction=function(e){if(this.cbs.onprocessinginstruction){var t=this.getInstructionName(e);this.cbs.onprocessinginstruction("?"+t,"?"+e)}},e.prototype.oncomment=function(e){var t,n,r,i;this.updatePosition(4),null===(n=(t=this.cbs).oncomment)||void 0===n||n.call(t,e),null===(i=(r=this.cbs).oncommentend)||void 0===i||i.call(r)},e.prototype.oncdata=function(e){var t,n,r,i,s,o;this.updatePosition(1),this.options.xmlMode||this.options.recognizeCDATA?(null===(n=(t=this.cbs).oncdatastart)||void 0===n||n.call(t),null===(i=(r=this.cbs).ontext)||void 0===i||i.call(r,e),null===(o=(s=this.cbs).oncdataend)||void 0===o||o.call(s)):this.oncomment("[CDATA["+e+"]]")},e.prototype.onerror=function(e){var t,n;null===(n=(t=this.cbs).onerror)||void 0===n||n.call(t,e)},e.prototype.onend=function(){var e,t;if(this.cbs.onclosetag)for(var n=this.stack.length;n>0;this.cbs.onclosetag(this.stack[--n]));null===(t=(e=this.cbs).onend)||void 0===t||t.call(e)},e.prototype.reset=function(){var e,t,n,r;null===(t=(e=this.cbs).onreset)||void 0===t||t.call(e),this.tokenizer.reset(),this.tagname="",this.attribname="",this.attribs=null,this.stack=[],null===(r=(n=this.cbs).onparserinit)||void 0===r||r.call(n,this)},e.prototype.parseComplete=function(e){this.reset(),this.end(e)},e.prototype.write=function(e){this.tokenizer.write(e)},e.prototype.end=function(e){this.tokenizer.end(e)},e.prototype.pause=function(){this.tokenizer.pause()},e.prototype.resume=function(){this.tokenizer.resume()},e.prototype.parseChunk=function(e){this.write(e)},e.prototype.done=function(e){this.end(e)},e}();t.Parser=h},40543:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var i=r(n(24603)),s=r(n(98253)),o=r(n(28536)),a=r(n(71849));function l(e){return" "===e||"\n"===e||"\t"===e||"\f"===e||"\r"===e}function c(e){return e>="a"&&e<="z"||e>="A"&&e<="Z"}function u(e,t,n){var r=e.toLowerCase();return e===r?function(e,i){i===r?e._state=t:(e._state=n,e._index--)}:function(i,s){s===r||s===e?i._state=t:(i._state=n,i._index--)}}function d(e,t){var n=e.toLowerCase();return function(r,i){i===n||i===e?r._state=t:(r._state=3,r._index--)}}var h=u("C",24,16),p=u("D",25,16),f=u("A",26,16),g=u("T",27,16),m=u("A",28,16),b=d("R",35),_=d("I",36),y=d("P",37),v=d("T",38),w=u("R",40,1),C=u("I",41,1),x=u("P",42,1),S=u("T",43,1),T=d("Y",45),E=d("L",46),k=d("E",47),O=u("Y",49,1),A=u("L",50,1),P=u("E",51,1),D=d("I",54),R=d("T",55),I=d("L",56),N=d("E",57),L=u("I",58,1),B=u("T",59,1),M=u("L",60,1),j=u("E",61,1),q=u("#",63,64),$=u("X",66,65),F=function(){function e(e,t){var n;this._state=1,this.buffer="",this.sectionStart=0,this._index=0,this.bufferOffset=0,this.baseState=1,this.special=1,this.running=!0,this.ended=!1,this.cbs=t,this.xmlMode=!!(null==e?void 0:e.xmlMode),this.decodeEntities=null===(n=null==e?void 0:e.decodeEntities)||void 0===n||n}return e.prototype.reset=function(){this._state=1,this.buffer="",this.sectionStart=0,this._index=0,this.bufferOffset=0,this.baseState=1,this.special=1,this.running=!0,this.ended=!1},e.prototype.write=function(e){this.ended&&this.cbs.onerror(Error(".write() after done!")),this.buffer+=e,this.parse()},e.prototype.end=function(e){this.ended&&this.cbs.onerror(Error(".end() after done!")),e&&this.write(e),this.ended=!0,this.running&&this.finish()},e.prototype.pause=function(){this.running=!1},e.prototype.resume=function(){this.running=!0,this._indexthis.sectionStart&&this.cbs.ontext(this.getSection()),this._state=2,this.sectionStart=this._index):!this.decodeEntities||"&"!==e||1!==this.special&&4!==this.special||(this._index>this.sectionStart&&this.cbs.ontext(this.getSection()),this.baseState=1,this._state=62,this.sectionStart=this._index)},e.prototype.isTagStartChar=function(e){return c(e)||this.xmlMode&&!l(e)&&"/"!==e&&">"!==e},e.prototype.stateBeforeTagName=function(e){"/"===e?this._state=5:"<"===e?(this.cbs.ontext(this.getSection()),this.sectionStart=this._index):">"===e||1!==this.special||l(e)?this._state=1:"!"===e?(this._state=15,this.sectionStart=this._index+1):"?"===e?(this._state=17,this.sectionStart=this._index+1):this.isTagStartChar(e)?(this._state=this.xmlMode||"s"!==e&&"S"!==e?this.xmlMode||"t"!==e&&"T"!==e?3:52:32,this.sectionStart=this._index):this._state=1},e.prototype.stateInTagName=function(e){("/"===e||">"===e||l(e))&&(this.emitToken("onopentagname"),this._state=8,this._index--)},e.prototype.stateBeforeClosingTagName=function(e){l(e)||(">"===e?this._state=1:1!==this.special?4===this.special||"s"!==e&&"S"!==e?4!==this.special||"t"!==e&&"T"!==e?(this._state=1,this._index--):this._state=53:this._state=33:this.isTagStartChar(e)?(this._state=6,this.sectionStart=this._index):(this._state=20,this.sectionStart=this._index))},e.prototype.stateInClosingTagName=function(e){(">"===e||l(e))&&(this.emitToken("onclosetag"),this._state=7,this._index--)},e.prototype.stateAfterClosingTagName=function(e){">"===e&&(this._state=1,this.sectionStart=this._index+1)},e.prototype.stateBeforeAttributeName=function(e){">"===e?(this.cbs.onopentagend(),this._state=1,this.sectionStart=this._index+1):"/"===e?this._state=4:l(e)||(this._state=9,this.sectionStart=this._index)},e.prototype.stateInSelfClosingTag=function(e){">"===e?(this.cbs.onselfclosingtag(),this._state=1,this.sectionStart=this._index+1,this.special=1):l(e)||(this._state=8,this._index--)},e.prototype.stateInAttributeName=function(e){("="===e||"/"===e||">"===e||l(e))&&(this.cbs.onattribname(this.getSection()),this.sectionStart=-1,this._state=10,this._index--)},e.prototype.stateAfterAttributeName=function(e){"="===e?this._state=11:"/"===e||">"===e?(this.cbs.onattribend(void 0),this._state=8,this._index--):l(e)||(this.cbs.onattribend(void 0),this._state=9,this.sectionStart=this._index)},e.prototype.stateBeforeAttributeValue=function(e){'"'===e?(this._state=12,this.sectionStart=this._index+1):"'"===e?(this._state=13,this.sectionStart=this._index+1):l(e)||(this._state=14,this.sectionStart=this._index,this._index--)},e.prototype.handleInAttributeValue=function(e,t){e===t?(this.emitToken("onattribdata"),this.cbs.onattribend(t),this._state=8):this.decodeEntities&&"&"===e&&(this.emitToken("onattribdata"),this.baseState=this._state,this._state=62,this.sectionStart=this._index)},e.prototype.stateInAttributeValueDoubleQuotes=function(e){this.handleInAttributeValue(e,'"')},e.prototype.stateInAttributeValueSingleQuotes=function(e){this.handleInAttributeValue(e,"'")},e.prototype.stateInAttributeValueNoQuotes=function(e){l(e)||">"===e?(this.emitToken("onattribdata"),this.cbs.onattribend(null),this._state=8,this._index--):this.decodeEntities&&"&"===e&&(this.emitToken("onattribdata"),this.baseState=this._state,this._state=62,this.sectionStart=this._index)},e.prototype.stateBeforeDeclaration=function(e){this._state="["===e?23:"-"===e?18:16},e.prototype.stateInDeclaration=function(e){">"===e&&(this.cbs.ondeclaration(this.getSection()),this._state=1,this.sectionStart=this._index+1)},e.prototype.stateInProcessingInstruction=function(e){">"===e&&(this.cbs.onprocessinginstruction(this.getSection()),this._state=1,this.sectionStart=this._index+1)},e.prototype.stateBeforeComment=function(e){"-"===e?(this._state=19,this.sectionStart=this._index+1):this._state=16},e.prototype.stateInComment=function(e){"-"===e&&(this._state=21)},e.prototype.stateInSpecialComment=function(e){">"===e&&(this.cbs.oncomment(this.buffer.substring(this.sectionStart,this._index)),this._state=1,this.sectionStart=this._index+1)},e.prototype.stateAfterComment1=function(e){this._state="-"===e?22:19},e.prototype.stateAfterComment2=function(e){">"===e?(this.cbs.oncomment(this.buffer.substring(this.sectionStart,this._index-2)),this._state=1,this.sectionStart=this._index+1):"-"!==e&&(this._state=19)},e.prototype.stateBeforeCdata6=function(e){"["===e?(this._state=29,this.sectionStart=this._index+1):(this._state=16,this._index--)},e.prototype.stateInCdata=function(e){"]"===e&&(this._state=30)},e.prototype.stateAfterCdata1=function(e){this._state="]"===e?31:29},e.prototype.stateAfterCdata2=function(e){">"===e?(this.cbs.oncdata(this.buffer.substring(this.sectionStart,this._index-2)),this._state=1,this.sectionStart=this._index+1):"]"!==e&&(this._state=29)},e.prototype.stateBeforeSpecialS=function(e){"c"===e||"C"===e?this._state=34:"t"===e||"T"===e?this._state=44:(this._state=3,this._index--)},e.prototype.stateBeforeSpecialSEnd=function(e){2!==this.special||"c"!==e&&"C"!==e?3!==this.special||"t"!==e&&"T"!==e?this._state=1:this._state=48:this._state=39},e.prototype.stateBeforeSpecialLast=function(e,t){("/"===e||">"===e||l(e))&&(this.special=t),this._state=3,this._index--},e.prototype.stateAfterSpecialLast=function(e,t){">"===e||l(e)?(this.special=1,this._state=6,this.sectionStart=this._index-t,this._index--):this._state=1},e.prototype.parseFixedEntity=function(e){if(void 0===e&&(e=this.xmlMode?a.default:s.default),this.sectionStart+1=2;){var n=this.buffer.substr(e,t);if(Object.prototype.hasOwnProperty.call(o.default,n))return this.emitPartial(o.default[n]),void(this.sectionStart+=t+1);t--}},e.prototype.stateInNamedEntity=function(e){";"===e?(this.parseFixedEntity(),1===this.baseState&&this.sectionStart+1"9")&&!c(e)&&(this.xmlMode||this.sectionStart+1===this._index||(1!==this.baseState?"="!==e&&this.parseFixedEntity(o.default):this.parseLegacyEntity()),this._state=this.baseState,this._index--)},e.prototype.decodeNumericEntity=function(e,t,n){var r=this.sectionStart+e;if(r!==this._index){var s=this.buffer.substring(r,this._index),o=parseInt(s,t);this.emitPartial(i.default(o)),this.sectionStart=n?this._index+1:this._index}this._state=this.baseState},e.prototype.stateInNumericEntity=function(e){";"===e?this.decodeNumericEntity(2,10,!0):(e<"0"||e>"9")&&(this.xmlMode?this._state=this.baseState:this.decodeNumericEntity(2,10,!1),this._index--)},e.prototype.stateInHexEntity=function(e){";"===e?this.decodeNumericEntity(3,16,!0):(e<"a"||e>"f")&&(e<"A"||e>"F")&&(e<"0"||e>"9")&&(this.xmlMode?this._state=this.baseState:this.decodeNumericEntity(3,16,!1),this._index--)},e.prototype.cleanup=function(){this.sectionStart<0?(this.buffer="",this.bufferOffset+=this._index,this._index=0):this.running&&(1===this._state?(this.sectionStart!==this._index&&this.cbs.ontext(this.buffer.substr(this.sectionStart)),this.buffer="",this.bufferOffset+=this._index,this._index=0):this.sectionStart===this._index?(this.buffer="",this.bufferOffset+=this._index,this._index=0):(this.buffer=this.buffer.substr(this.sectionStart),this._index-=this.sectionStart,this.bufferOffset+=this.sectionStart),this.sectionStart=0)},e.prototype.parse=function(){for(;this._index=l)return m;r=n(d),i=[],","===r.slice(-1)?(r=r.replace(h,""),_()):b()}function b(){for(n(c),s="",o="in descriptor";;){if(a=e.charAt(g),"in descriptor"===o)if(t(a))s&&(i.push(s),s="",o="after descriptor");else{if(","===a)return g+=1,s&&i.push(s),void _();if("("===a)s+=a,o="in parens";else{if(""===a)return s&&i.push(s),void _();s+=a}}else if("in parens"===o)if(")"===a)s+=a,o="in descriptor";else{if(""===a)return i.push(s),void _();s+=a}else if("after descriptor"===o)if(t(a));else{if(""===a)return void _();o="in descriptor",g-=1}g+=1}}function _(){var t,n,s,o,a,l,c,u,d,h=!1,g={};for(o=0;o{var t=String,n=function(){return{isColorSupported:!1,reset:t,bold:t,dim:t,italic:t,underline:t,inverse:t,hidden:t,strikethrough:t,black:t,red:t,green:t,yellow:t,blue:t,magenta:t,cyan:t,white:t,gray:t,bgBlack:t,bgRed:t,bgGreen:t,bgYellow:t,bgBlue:t,bgMagenta:t,bgCyan:t,bgWhite:t}};e.exports=n(),e.exports.createColors=n},74120:(e,t,n)=>{"use strict";let r=n(69922);class i extends r{constructor(e){super(e),this.type="atrule"}append(...e){return this.proxyOf.nodes||(this.nodes=[]),super.append(...e)}prepend(...e){return this.proxyOf.nodes||(this.nodes=[]),super.prepend(...e)}}e.exports=i,i.default=i,r.registerAtRule(i)},12018:(e,t,n)=>{"use strict";let r=n(46591);class i extends r{constructor(e){super(e),this.type="comment"}}e.exports=i,i.default=i},69922:(e,t,n)=>{"use strict";let r,i,s,o,{isClean:a,my:l}=n(6289),c=n(46022),u=n(12018),d=n(46591);function h(e){return e.map((e=>(e.nodes&&(e.nodes=h(e.nodes)),delete e.source,e)))}function p(e){if(e[a]=!1,e.proxyOf.nodes)for(let t of e.proxyOf.nodes)p(t)}class f extends d{push(e){return e.parent=this,this.proxyOf.nodes.push(e),this}each(e){if(!this.proxyOf.nodes)return;let t,n,r=this.getIterator();for(;this.indexes[r]{let r;try{r=e(t,n)}catch(e){throw t.addToError(e)}return!1!==r&&t.walk&&(r=t.walk(e)),r}))}walkDecls(e,t){return t?e instanceof RegExp?this.walk(((n,r)=>{if("decl"===n.type&&e.test(n.prop))return t(n,r)})):this.walk(((n,r)=>{if("decl"===n.type&&n.prop===e)return t(n,r)})):(t=e,this.walk(((e,n)=>{if("decl"===e.type)return t(e,n)})))}walkRules(e,t){return t?e instanceof RegExp?this.walk(((n,r)=>{if("rule"===n.type&&e.test(n.selector))return t(n,r)})):this.walk(((n,r)=>{if("rule"===n.type&&n.selector===e)return t(n,r)})):(t=e,this.walk(((e,n)=>{if("rule"===e.type)return t(e,n)})))}walkAtRules(e,t){return t?e instanceof RegExp?this.walk(((n,r)=>{if("atrule"===n.type&&e.test(n.name))return t(n,r)})):this.walk(((n,r)=>{if("atrule"===n.type&&n.name===e)return t(n,r)})):(t=e,this.walk(((e,n)=>{if("atrule"===e.type)return t(e,n)})))}walkComments(e){return this.walk(((t,n)=>{if("comment"===t.type)return e(t,n)}))}append(...e){for(let t of e){let e=this.normalize(t,this.last);for(let t of e)this.proxyOf.nodes.push(t)}return this.markDirty(),this}prepend(...e){e=e.reverse();for(let t of e){let e=this.normalize(t,this.first,"prepend").reverse();for(let t of e)this.proxyOf.nodes.unshift(t);for(let t in this.indexes)this.indexes[t]=this.indexes[t]+e.length}return this.markDirty(),this}cleanRaws(e){if(super.cleanRaws(e),this.nodes)for(let t of this.nodes)t.cleanRaws(e)}insertBefore(e,t){let n,r=this.index(e),i=0===r&&"prepend",s=this.normalize(t,this.proxyOf.nodes[r],i).reverse();r=this.index(e);for(let e of s)this.proxyOf.nodes.splice(r,0,e);for(let e in this.indexes)n=this.indexes[e],r<=n&&(this.indexes[e]=n+s.length);return this.markDirty(),this}insertAfter(e,t){let n,r=this.index(e),i=this.normalize(t,this.proxyOf.nodes[r]).reverse();r=this.index(e);for(let e of i)this.proxyOf.nodes.splice(r+1,0,e);for(let e in this.indexes)n=this.indexes[e],r=e&&(this.indexes[n]=t-1);return this.markDirty(),this}removeAll(){for(let e of this.proxyOf.nodes)e.parent=void 0;return this.proxyOf.nodes=[],this.markDirty(),this}replaceValues(e,t,n){return n||(n=t,t={}),this.walkDecls((r=>{t.props&&!t.props.includes(r.prop)||t.fast&&!r.value.includes(t.fast)||(r.value=r.value.replace(e,n))})),this.markDirty(),this}every(e){return this.nodes.every(e)}some(e){return this.nodes.some(e)}index(e){return"number"==typeof e?e:(e.proxyOf&&(e=e.proxyOf),this.proxyOf.nodes.indexOf(e))}get first(){if(this.proxyOf.nodes)return this.proxyOf.nodes[0]}get last(){if(this.proxyOf.nodes)return this.proxyOf.nodes[this.proxyOf.nodes.length-1]}normalize(e,t){if("string"==typeof e)e=h(r(e).nodes);else if(Array.isArray(e)){e=e.slice(0);for(let t of e)t.parent&&t.parent.removeChild(t,"ignore")}else if("root"===e.type&&"document"!==this.type){e=e.nodes.slice(0);for(let t of e)t.parent&&t.parent.removeChild(t,"ignore")}else if(e.type)e=[e];else if(e.prop){if(void 0===e.value)throw new Error("Value field is missed in node creation");"string"!=typeof e.value&&(e.value=String(e.value)),e=[new c(e)]}else if(e.selector)e=[new i(e)];else if(e.name)e=[new s(e)];else{if(!e.text)throw new Error("Unknown node type in node creation");e=[new u(e)]}return e.map((e=>(e[l]||f.rebuild(e),(e=e.proxyOf).parent&&e.parent.removeChild(e),e[a]&&p(e),void 0===e.raws.before&&t&&void 0!==t.raws.before&&(e.raws.before=t.raws.before.replace(/\S/g,"")),e.parent=this.proxyOf,e)))}getProxyProcessor(){return{set:(e,t,n)=>(e[t]===n||(e[t]=n,"name"!==t&&"params"!==t&&"selector"!==t||e.markDirty()),!0),get:(e,t)=>"proxyOf"===t?e:e[t]?"each"===t||"string"==typeof t&&t.startsWith("walk")?(...n)=>e[t](...n.map((e=>"function"==typeof e?(t,n)=>e(t.toProxy(),n):e))):"every"===t||"some"===t?n=>e[t](((e,...t)=>n(e.toProxy(),...t))):"root"===t?()=>e.root().toProxy():"nodes"===t?e.nodes.map((e=>e.toProxy())):"first"===t||"last"===t?e[t].toProxy():e[t]:e[t]}}getIterator(){this.lastEach||(this.lastEach=0),this.indexes||(this.indexes={}),this.lastEach+=1;let e=this.lastEach;return this.indexes[e]=0,e}}f.registerParse=e=>{r=e},f.registerRule=e=>{i=e},f.registerAtRule=e=>{s=e},f.registerRoot=e=>{o=e},e.exports=f,f.default=f,f.rebuild=e=>{"atrule"===e.type?Object.setPrototypeOf(e,s.prototype):"rule"===e.type?Object.setPrototypeOf(e,i.prototype):"decl"===e.type?Object.setPrototypeOf(e,c.prototype):"comment"===e.type?Object.setPrototypeOf(e,u.prototype):"root"===e.type&&Object.setPrototypeOf(e,o.prototype),e[l]=!0,e.nodes&&e.nodes.forEach((e=>{f.rebuild(e)}))}},25698:(e,t,n)=>{"use strict";let r=n(42081),i=n(25219);class s extends Error{constructor(e,t,n,r,i,o){super(e),this.name="CssSyntaxError",this.reason=e,i&&(this.file=i),r&&(this.source=r),o&&(this.plugin=o),void 0!==t&&void 0!==n&&("number"==typeof t?(this.line=t,this.column=n):(this.line=t.line,this.column=t.column,this.endLine=n.line,this.endColumn=n.column)),this.setMessage(),Error.captureStackTrace&&Error.captureStackTrace(this,s)}setMessage(){this.message=this.plugin?this.plugin+": ":"",this.message+=this.file?this.file:"",void 0!==this.line&&(this.message+=":"+this.line+":"+this.column),this.message+=": "+this.reason}showSourceCode(e){if(!this.source)return"";let t=this.source;null==e&&(e=r.isColorSupported),i&&e&&(t=i(t));let n,s,o=t.split(/\r?\n/),a=Math.max(this.line-3,0),l=Math.min(this.line+2,o.length),c=String(l).length;if(e){let{bold:e,red:t,gray:i}=r.createColors(!0);n=n=>e(t(n)),s=e=>i(e)}else n=s=e=>e;return o.slice(a,l).map(((e,t)=>{let r=a+1+t,i=" "+(" "+r).slice(-c)+" | ";if(r===this.line){let t=s(i.replace(/\d/g," "))+e.slice(0,this.column-1).replace(/[^\t]/g," ");return n(">")+s(i)+e+"\n "+t+n("^")}return" "+s(i)+e})).join("\n")}toString(){let e=this.showSourceCode();return e&&(e="\n\n"+e+"\n"),this.name+": "+this.message+e}}e.exports=s,s.default=s},46022:(e,t,n)=>{"use strict";let r=n(46591);class i extends r{constructor(e){e&&void 0!==e.value&&"string"!=typeof e.value&&(e={...e,value:String(e.value)}),super(e),this.type="decl"}get variable(){return this.prop.startsWith("--")||"$"===this.prop[0]}}e.exports=i,i.default=i},61834:(e,t,n)=>{"use strict";let r,i,s=n(69922);class o extends s{constructor(e){super({type:"document",...e}),this.nodes||(this.nodes=[])}toResult(e={}){return new r(new i,this,e).stringify()}}o.registerLazyResult=e=>{r=e},o.registerProcessor=e=>{i=e},e.exports=o,o.default=o},28967:(e,t,n)=>{"use strict";let r=n(46022),i=n(77681),s=n(12018),o=n(74120),a=n(37609),l=n(32023),c=n(59020);function u(e,t){if(Array.isArray(e))return e.map((e=>u(e)));let{inputs:n,...d}=e;if(n){t=[];for(let e of n){let n={...e,__proto__:a.prototype};n.map&&(n.map={...n.map,__proto__:i.prototype}),t.push(n)}}if(d.nodes&&(d.nodes=e.nodes.map((e=>u(e,t)))),d.source){let{inputId:e,...n}=d.source;d.source=n,null!=e&&(d.source.input=t[e])}if("root"===d.type)return new l(d);if("decl"===d.type)return new r(d);if("rule"===d.type)return new c(d);if("comment"===d.type)return new s(d);if("atrule"===d.type)return new o(d);throw new Error("Unknown node type: "+e.type)}e.exports=u,u.default=u},37609:(e,t,n)=>{"use strict";let{SourceMapConsumer:r,SourceMapGenerator:i}=n(61305),{fileURLToPath:s,pathToFileURL:o}=n(16659),{resolve:a,isAbsolute:l}=n(14029),{nanoid:c}=n(88773),u=n(25219),d=n(25698),h=n(77681),p=Symbol("fromOffsetCache"),f=Boolean(r&&i),g=Boolean(a&&l);class m{constructor(e,t={}){if(null==e||"object"==typeof e&&!e.toString)throw new Error(`PostCSS received ${e} instead of CSS string`);if(this.css=e.toString(),"\ufeff"===this.css[0]||"￾"===this.css[0]?(this.hasBOM=!0,this.css=this.css.slice(1)):this.hasBOM=!1,t.from&&(!g||/^\w+:\/\//.test(t.from)||l(t.from)?this.file=t.from:this.file=a(t.from)),g&&f){let e=new h(this.css,t);if(e.text){this.map=e;let t=e.consumer().file;!this.file&&t&&(this.file=this.mapResolve(t))}}this.file||(this.id=""),this.map&&(this.map.file=this.from)}fromOffset(e){let t,n;if(this[p])n=this[p];else{let e=this.css.split("\n");n=new Array(e.length);let t=0;for(let r=0,i=e.length;r=t)r=n.length-1;else{let t,i=n.length-2;for(;r>1),e=n[t+1])){r=t;break}r=t+1}}return{line:r+1,col:e-n[r]+1}}error(e,t,n,r={}){let i,s,a;if(t&&"object"==typeof t){let e=t,r=n;if("number"==typeof t.offset){let r=this.fromOffset(e.offset);t=r.line,n=r.col}else t=e.line,n=e.column;if("number"==typeof r.offset){let e=this.fromOffset(r.offset);s=e.line,a=e.col}else s=r.line,a=r.column}else if(!n){let e=this.fromOffset(t);t=e.line,n=e.col}let l=this.origin(t,n,s,a);return i=l?new d(e,void 0===l.endLine?l.line:{line:l.line,column:l.column},void 0===l.endLine?l.column:{line:l.endLine,column:l.endColumn},l.source,l.file,r.plugin):new d(e,void 0===s?t:{line:t,column:n},void 0===s?n:{line:s,column:a},this.css,this.file,r.plugin),i.input={line:t,column:n,endLine:s,endColumn:a,source:this.css},this.file&&(o&&(i.input.url=o(this.file).toString()),i.input.file=this.file),i}origin(e,t,n,r){if(!this.map)return!1;let i,a,c=this.map.consumer(),u=c.originalPositionFor({line:e,column:t});if(!u.source)return!1;"number"==typeof n&&(i=c.originalPositionFor({line:n,column:r})),a=l(u.source)?o(u.source):new URL(u.source,this.map.consumer().sourceRoot||o(this.map.mapFile));let d={url:a.toString(),line:u.line,column:u.column,endLine:i&&i.line,endColumn:i&&i.column};if("file:"===a.protocol){if(!s)throw new Error("file: protocol is not available in this PostCSS build");d.file=s(a)}let h=c.sourceContentFor(u.source);return h&&(d.source=h),d}mapResolve(e){return/^\w+:\/\//.test(e)?e:a(this.map.consumer().sourceRoot||this.map.root||".",e)}get from(){return this.file||this.id}toJSON(){let e={};for(let t of["hasBOM","css","file","id"])null!=this[t]&&(e[t]=this[t]);return this.map&&(e.map={...this.map},e.map.consumerCache&&(e.map.consumerCache=void 0)),e}}e.exports=m,m.default=m,u&&u.registerInput&&u.registerInput(m)},55125:(e,t,n)=>{"use strict";let{isClean:r,my:i}=n(6289),s=n(3275),o=n(96073),a=n(69922),l=n(61834),c=(n(27374),n(35681)),u=n(31376),d=n(32023);const h={document:"Document",root:"Root",atrule:"AtRule",rule:"Rule",decl:"Declaration",comment:"Comment"},p={postcssPlugin:!0,prepare:!0,Once:!0,Document:!0,Root:!0,Declaration:!0,Rule:!0,AtRule:!0,Comment:!0,DeclarationExit:!0,RuleExit:!0,AtRuleExit:!0,CommentExit:!0,RootExit:!0,DocumentExit:!0,OnceExit:!0},f={postcssPlugin:!0,prepare:!0,Once:!0};function g(e){return"object"==typeof e&&"function"==typeof e.then}function m(e){let t=!1,n=h[e.type];return"decl"===e.type?t=e.prop.toLowerCase():"atrule"===e.type&&(t=e.name.toLowerCase()),t&&e.append?[n,n+"-"+t,0,n+"Exit",n+"Exit-"+t]:t?[n,n+"-"+t,n+"Exit",n+"Exit-"+t]:e.append?[n,0,n+"Exit"]:[n,n+"Exit"]}function b(e){let t;return t="document"===e.type?["Document",0,"DocumentExit"]:"root"===e.type?["Root",0,"RootExit"]:m(e),{node:e,events:t,eventIndex:0,visitors:[],visitorIndex:0,iterator:0}}function _(e){return e[r]=!1,e.nodes&&e.nodes.forEach((e=>_(e))),e}let y={};class v{constructor(e,t,n){let r;if(this.stringified=!1,this.processed=!1,"object"!=typeof t||null===t||"root"!==t.type&&"document"!==t.type)if(t instanceof v||t instanceof c)r=_(t.root),t.map&&(void 0===n.map&&(n.map={}),n.map.inline||(n.map.inline=!1),n.map.prev=t.map);else{let e=u;n.syntax&&(e=n.syntax.parse),n.parser&&(e=n.parser),e.parse&&(e=e.parse);try{r=e(t,n)}catch(e){this.processed=!0,this.error=e}r&&!r[i]&&a.rebuild(r)}else r=_(t);this.result=new c(e,r,n),this.helpers={...y,result:this.result,postcss:y},this.plugins=this.processor.plugins.map((e=>"object"==typeof e&&e.prepare?{...e,...e.prepare(this.result)}:e))}get[Symbol.toStringTag](){return"LazyResult"}get processor(){return this.result.processor}get opts(){return this.result.opts}get css(){return this.stringify().css}get content(){return this.stringify().content}get map(){return this.stringify().map}get root(){return this.sync().root}get messages(){return this.sync().messages}warnings(){return this.sync().warnings()}toString(){return this.css}then(e,t){return this.async().then(e,t)}catch(e){return this.async().catch(e)}finally(e){return this.async().then(e,e)}async(){return this.error?Promise.reject(this.error):this.processed?Promise.resolve(this.result):(this.processing||(this.processing=this.runAsync()),this.processing)}sync(){if(this.error)throw this.error;if(this.processed)return this.result;if(this.processed=!0,this.processing)throw this.getAsyncError();for(let e of this.plugins)if(g(this.runOnRoot(e)))throw this.getAsyncError();if(this.prepareVisitors(),this.hasListener){let e=this.result.root;for(;!e[r];)e[r]=!0,this.walkSync(e);if(this.listeners.OnceExit)if("document"===e.type)for(let t of e.nodes)this.visitSync(this.listeners.OnceExit,t);else this.visitSync(this.listeners.OnceExit,e)}return this.result}stringify(){if(this.error)throw this.error;if(this.stringified)return this.result;this.stringified=!0,this.sync();let e=this.result.opts,t=o;e.syntax&&(t=e.syntax.stringify),e.stringifier&&(t=e.stringifier),t.stringify&&(t=t.stringify);let n=new s(t,this.result.root,this.result.opts).generate();return this.result.css=n[0],this.result.map=n[1],this.result}walkSync(e){e[r]=!0;let t=m(e);for(let n of t)if(0===n)e.nodes&&e.each((e=>{e[r]||this.walkSync(e)}));else{let t=this.listeners[n];if(t&&this.visitSync(t,e.toProxy()))return}}visitSync(e,t){for(let[n,r]of e){let e;this.result.lastPlugin=n;try{e=r(t,this.helpers)}catch(e){throw this.handleError(e,t.proxyOf)}if("root"!==t.type&&"document"!==t.type&&!t.parent)return!0;if(g(e))throw this.getAsyncError()}}runOnRoot(e){this.result.lastPlugin=e;try{if("object"==typeof e&&e.Once){if("document"===this.result.root.type){let t=this.result.root.nodes.map((t=>e.Once(t,this.helpers)));return g(t[0])?Promise.all(t):t}return e.Once(this.result.root,this.helpers)}if("function"==typeof e)return e(this.result.root,this.result)}catch(e){throw this.handleError(e)}}getAsyncError(){throw new Error("Use process(css).then(cb) to work with async plugins")}handleError(e,t){let n=this.result.lastPlugin;try{t&&t.addToError(e),this.error=e,"CssSyntaxError"!==e.name||e.plugin?n.postcssVersion:(e.plugin=n.postcssPlugin,e.setMessage())}catch(e){console&&console.error&&console.error(e)}return e}async runAsync(){this.plugin=0;for(let e=0;e0;){let e=this.visitTick(t);if(g(e))try{await e}catch(e){let n=t[t.length-1].node;throw this.handleError(e,n)}}}if(this.listeners.OnceExit)for(let[t,n]of this.listeners.OnceExit){this.result.lastPlugin=t;try{if("document"===e.type){let t=e.nodes.map((e=>n(e,this.helpers)));await Promise.all(t)}else await n(e,this.helpers)}catch(e){throw this.handleError(e)}}}return this.processed=!0,this.stringify()}prepareVisitors(){this.listeners={};let e=(e,t,n)=>{this.listeners[t]||(this.listeners[t]=[]),this.listeners[t].push([e,n])};for(let t of this.plugins)if("object"==typeof t)for(let n in t){if(!p[n]&&/^[A-Z]/.test(n))throw new Error(`Unknown event ${n} in ${t.postcssPlugin}. Try to update PostCSS (${this.processor.version} now).`);if(!f[n])if("object"==typeof t[n])for(let r in t[n])e(t,"*"===r?n:n+"-"+r.toLowerCase(),t[n][r]);else"function"==typeof t[n]&&e(t,n,t[n])}this.hasListener=Object.keys(this.listeners).length>0}visitTick(e){let t=e[e.length-1],{node:n,visitors:i}=t;if("root"!==n.type&&"document"!==n.type&&!n.parent)return void e.pop();if(i.length>0&&t.visitorIndex{y=e},e.exports=v,v.default=v,d.registerLazyResult(v),l.registerLazyResult(v)},5955:e=>{"use strict";let t={split(e,t,n){let r=[],i="",s=!1,o=0,a=!1,l="",c=!1;for(let n of e)c?c=!1:"\\"===n?c=!0:a?n===l&&(a=!1):'"'===n||"'"===n?(a=!0,l=n):"("===n?o+=1:")"===n?o>0&&(o-=1):0===o&&t.includes(n)&&(s=!0),s?(""!==i&&r.push(i.trim()),i="",s=!1):i+=n;return(n||""!==i)&&r.push(i.trim()),r},space:e=>t.split(e,[" ","\n","\t"]),comma:e=>t.split(e,[","],!0)};e.exports=t,t.default=t},3275:(e,t,n)=>{"use strict";let{SourceMapConsumer:r,SourceMapGenerator:i}=n(61305),{dirname:s,resolve:o,relative:a,sep:l}=n(14029),{pathToFileURL:c}=n(16659),u=n(37609),d=Boolean(r&&i),h=Boolean(s&&o&&a&&l);e.exports=class{constructor(e,t,n,r){this.stringify=e,this.mapOpts=n.map||{},this.root=t,this.opts=n,this.css=r,this.usesFileUrls=!this.mapOpts.from&&this.mapOpts.absolute}isMap(){return void 0!==this.opts.map?!!this.opts.map:this.previous().length>0}previous(){if(!this.previousMaps)if(this.previousMaps=[],this.root)this.root.walk((e=>{if(e.source&&e.source.input.map){let t=e.source.input.map;this.previousMaps.includes(t)||this.previousMaps.push(t)}}));else{let e=new u(this.css,this.opts);e.map&&this.previousMaps.push(e.map)}return this.previousMaps}isInline(){if(void 0!==this.mapOpts.inline)return this.mapOpts.inline;let e=this.mapOpts.annotation;return(void 0===e||!0===e)&&(!this.previous().length||this.previous().some((e=>e.inline)))}isSourcesContent(){return void 0!==this.mapOpts.sourcesContent?this.mapOpts.sourcesContent:!this.previous().length||this.previous().some((e=>e.withContent()))}clearAnnotation(){if(!1!==this.mapOpts.annotation)if(this.root){let e;for(let t=this.root.nodes.length-1;t>=0;t--)e=this.root.nodes[t],"comment"===e.type&&0===e.text.indexOf("# sourceMappingURL=")&&this.root.removeChild(t)}else this.css&&(this.css=this.css.replace(/(\n)?\/\*#[\S\s]*?\*\/$/gm,""))}setSourcesContent(){let e={};if(this.root)this.root.walk((t=>{if(t.source){let n=t.source.input.from;if(n&&!e[n]){e[n]=!0;let r=this.usesFileUrls?this.toFileUrl(n):this.toUrl(this.path(n));this.map.setSourceContent(r,t.source.input.css)}}}));else if(this.css){let e=this.opts.from?this.toUrl(this.path(this.opts.from)):"";this.map.setSourceContent(e,this.css)}}applyPrevMaps(){for(let e of this.previous()){let t,n=this.toUrl(this.path(e.file)),i=e.root||s(e.file);!1===this.mapOpts.sourcesContent?(t=new r(e.text),t.sourcesContent&&(t.sourcesContent=t.sourcesContent.map((()=>null)))):t=e.consumer(),this.map.applySourceMap(t,n,this.toUrl(this.path(i)))}}isAnnotation(){return!!this.isInline()||(void 0!==this.mapOpts.annotation?this.mapOpts.annotation:!this.previous().length||this.previous().some((e=>e.annotation)))}toBase64(e){return Buffer?Buffer.from(e).toString("base64"):window.btoa(unescape(encodeURIComponent(e)))}addAnnotation(){let e;e=this.isInline()?"data:application/json;base64,"+this.toBase64(this.map.toString()):"string"==typeof this.mapOpts.annotation?this.mapOpts.annotation:"function"==typeof this.mapOpts.annotation?this.mapOpts.annotation(this.opts.to,this.root):this.outputFile()+".map";let t="\n";this.css.includes("\r\n")&&(t="\r\n"),this.css+=t+"/*# sourceMappingURL="+e+" */"}outputFile(){return this.opts.to?this.path(this.opts.to):this.opts.from?this.path(this.opts.from):"to.css"}generateMap(){if(this.root)this.generateString();else if(1===this.previous().length){let e=this.previous()[0].consumer();e.file=this.outputFile(),this.map=i.fromSourceMap(e)}else this.map=new i({file:this.outputFile()}),this.map.addMapping({source:this.opts.from?this.toUrl(this.path(this.opts.from)):"",generated:{line:1,column:0},original:{line:1,column:0}});return this.isSourcesContent()&&this.setSourcesContent(),this.root&&this.previous().length>0&&this.applyPrevMaps(),this.isAnnotation()&&this.addAnnotation(),this.isInline()?[this.css]:[this.css,this.map]}path(e){if(0===e.indexOf("<"))return e;if(/^\w+:\/\//.test(e))return e;if(this.mapOpts.absolute)return e;let t=this.opts.to?s(this.opts.to):".";return"string"==typeof this.mapOpts.annotation&&(t=s(o(t,this.mapOpts.annotation))),a(t,e)}toUrl(e){return"\\"===l&&(e=e.replace(/\\/g,"/")),encodeURI(e).replace(/[#?]/g,encodeURIComponent)}toFileUrl(e){if(c)return c(e).toString();throw new Error("`map.absolute` option is not available in this PostCSS build")}sourcePath(e){return this.mapOpts.from?this.toUrl(this.mapOpts.from):this.usesFileUrls?this.toFileUrl(e.source.input.from):this.toUrl(this.path(e.source.input.from))}generateString(){this.css="",this.map=new i({file:this.outputFile()});let e,t,n=1,r=1,s="",o={source:"",generated:{line:0,column:0},original:{line:0,column:0}};this.stringify(this.root,((i,a,l)=>{if(this.css+=i,a&&"end"!==l&&(o.generated.line=n,o.generated.column=r-1,a.source&&a.source.start?(o.source=this.sourcePath(a),o.original.line=a.source.start.line,o.original.column=a.source.start.column-1,this.map.addMapping(o)):(o.source=s,o.original.line=1,o.original.column=0,this.map.addMapping(o))),e=i.match(/\n/g),e?(n+=e.length,t=i.lastIndexOf("\n"),r=i.length-t):r+=i.length,a&&"start"!==l){let e=a.parent||{raws:{}};("decl"!==a.type||a!==e.last||e.raws.semicolon)&&(a.source&&a.source.end?(o.source=this.sourcePath(a),o.original.line=a.source.end.line,o.original.column=a.source.end.column-1,o.generated.line=n,o.generated.column=r-2,this.map.addMapping(o)):(o.source=s,o.original.line=1,o.original.column=0,o.generated.line=n,o.generated.column=r-1,this.map.addMapping(o)))}}))}generate(){if(this.clearAnnotation(),h&&d&&this.isMap())return this.generateMap();{let e="";return this.stringify(this.root,(t=>{e+=t})),[e]}}}},53579:(e,t,n)=>{"use strict";let r=n(3275),i=n(96073),s=(n(27374),n(31376));const o=n(35681);class a{constructor(e,t,n){let s;t=t.toString(),this.stringified=!1,this._processor=e,this._css=t,this._opts=n,this._map=void 0;let a=i;this.result=new o(this._processor,s,this._opts),this.result.css=t;let l=this;Object.defineProperty(this.result,"root",{get:()=>l.root});let c=new r(a,s,this._opts,t);if(c.isMap()){let[e,t]=c.generate();e&&(this.result.css=e),t&&(this.result.map=t)}}get[Symbol.toStringTag](){return"NoWorkResult"}get processor(){return this.result.processor}get opts(){return this.result.opts}get css(){return this.result.css}get content(){return this.result.css}get map(){return this.result.map}get root(){if(this._root)return this._root;let e,t=s;try{e=t(this._css,this._opts)}catch(e){this.error=e}if(this.error)throw this.error;return this._root=e,e}get messages(){return[]}warnings(){return[]}toString(){return this._css}then(e,t){return this.async().then(e,t)}catch(e){return this.async().catch(e)}finally(e){return this.async().then(e,e)}async(){return this.error?Promise.reject(this.error):Promise.resolve(this.result)}sync(){if(this.error)throw this.error;return this.result}}e.exports=a,a.default=a},46591:(e,t,n)=>{"use strict";let{isClean:r,my:i}=n(6289),s=n(25698),o=n(94823),a=n(96073);function l(e,t){let n=new e.constructor;for(let r in e){if(!Object.prototype.hasOwnProperty.call(e,r))continue;if("proxyCache"===r)continue;let i=e[r],s=typeof i;"parent"===r&&"object"===s?t&&(n[r]=t):"source"===r?n[r]=i:Array.isArray(i)?n[r]=i.map((e=>l(e,n))):("object"===s&&null!==i&&(i=l(i)),n[r]=i)}return n}class c{constructor(e={}){this.raws={},this[r]=!1,this[i]=!0;for(let t in e)if("nodes"===t){this.nodes=[];for(let n of e[t])"function"==typeof n.clone?this.append(n.clone()):this.append(n)}else this[t]=e[t]}error(e,t={}){if(this.source){let{start:n,end:r}=this.rangeBy(t);return this.source.input.error(e,{line:n.line,column:n.column},{line:r.line,column:r.column},t)}return new s(e)}warn(e,t,n){let r={node:this};for(let e in n)r[e]=n[e];return e.warn(t,r)}remove(){return this.parent&&this.parent.removeChild(this),this.parent=void 0,this}toString(e=a){e.stringify&&(e=e.stringify);let t="";return e(this,(e=>{t+=e})),t}assign(e={}){for(let t in e)this[t]=e[t];return this}clone(e={}){let t=l(this);for(let n in e)t[n]=e[n];return t}cloneBefore(e={}){let t=this.clone(e);return this.parent.insertBefore(this,t),t}cloneAfter(e={}){let t=this.clone(e);return this.parent.insertAfter(this,t),t}replaceWith(...e){if(this.parent){let t=this,n=!1;for(let r of e)r===this?n=!0:n?(this.parent.insertAfter(t,r),t=r):this.parent.insertBefore(t,r);n||this.remove()}return this}next(){if(!this.parent)return;let e=this.parent.index(this);return this.parent.nodes[e+1]}prev(){if(!this.parent)return;let e=this.parent.index(this);return this.parent.nodes[e-1]}before(e){return this.parent.insertBefore(this,e),this}after(e){return this.parent.insertAfter(this,e),this}root(){let e=this;for(;e.parent&&"document"!==e.parent.type;)e=e.parent;return e}raw(e,t){return(new o).raw(this,e,t)}cleanRaws(e){delete this.raws.before,delete this.raws.after,e||delete this.raws.between}toJSON(e,t){let n={},r=null==t;t=t||new Map;let i=0;for(let e in this){if(!Object.prototype.hasOwnProperty.call(this,e))continue;if("parent"===e||"proxyCache"===e)continue;let r=this[e];if(Array.isArray(r))n[e]=r.map((e=>"object"==typeof e&&e.toJSON?e.toJSON(null,t):e));else if("object"==typeof r&&r.toJSON)n[e]=r.toJSON(null,t);else if("source"===e){let s=t.get(r.input);null==s&&(s=i,t.set(r.input,i),i++),n[e]={inputId:s,start:r.start,end:r.end}}else n[e]=r}return r&&(n.inputs=[...t.keys()].map((e=>e.toJSON()))),n}positionInside(e){let t=this.toString(),n=this.source.start.column,r=this.source.start.line;for(let i=0;i(e[t]===n||(e[t]=n,"prop"!==t&&"value"!==t&&"name"!==t&&"params"!==t&&"important"!==t&&"text"!==t||e.markDirty()),!0),get:(e,t)=>"proxyOf"===t?e:"root"===t?()=>e.root().toProxy():e[t]}}toProxy(){return this.proxyCache||(this.proxyCache=new Proxy(this,this.getProxyProcessor())),this.proxyCache}addToError(e){if(e.postcssNode=this,e.stack&&this.source&&/\n\s{4}at /.test(e.stack)){let t=this.source;e.stack=e.stack.replace(/\n\s{4}at /,`$&${t.input.from}:${t.start.line}:${t.start.column}$&`)}return e}markDirty(){if(this[r]){this[r]=!1;let e=this;for(;e=e.parent;)e[r]=!1}}get proxyOf(){return this}}e.exports=c,c.default=c},31376:(e,t,n)=>{"use strict";let r=n(69922),i=n(27749),s=n(37609);function o(e,t){let n=new s(e,t),r=new i(n);try{r.parse()}catch(e){throw e}return r.root}e.exports=o,o.default=o,r.registerParse(o)},27749:(e,t,n)=>{"use strict";let r=n(46022),i=n(13583),s=n(12018),o=n(74120),a=n(32023),l=n(59020);const c={empty:!0,space:!0};e.exports=class{constructor(e){this.input=e,this.root=new a,this.current=this.root,this.spaces="",this.semicolon=!1,this.customProperty=!1,this.createTokenizer(),this.root.source={input:e,start:{offset:0,line:1,column:1}}}createTokenizer(){this.tokenizer=i(this.input)}parse(){let e;for(;!this.tokenizer.endOfFile();)switch(e=this.tokenizer.nextToken(),e[0]){case"space":this.spaces+=e[1];break;case";":this.freeSemicolon(e);break;case"}":this.end(e);break;case"comment":this.comment(e);break;case"at-word":this.atrule(e);break;case"{":this.emptyRule(e);break;default:this.other(e)}this.endFile()}comment(e){let t=new s;this.init(t,e[2]),t.source.end=this.getPosition(e[3]||e[2]);let n=e[1].slice(2,-2);if(/^\s*$/.test(n))t.text="",t.raws.left=n,t.raws.right="";else{let e=n.match(/^(\s*)([^]*\S)(\s*)$/);t.text=e[2],t.raws.left=e[1],t.raws.right=e[3]}}emptyRule(e){let t=new l;this.init(t,e[2]),t.selector="",t.raws.between="",this.current=t}other(e){let t=!1,n=null,r=!1,i=null,s=[],o=e[1].startsWith("--"),a=[],l=e;for(;l;){if(n=l[0],a.push(l),"("===n||"["===n)i||(i=l),s.push("("===n?")":"]");else if(o&&r&&"{"===n)i||(i=l),s.push("}");else if(0===s.length){if(";"===n){if(r)return void this.decl(a,o);break}if("{"===n)return void this.rule(a);if("}"===n){this.tokenizer.back(a.pop()),t=!0;break}":"===n&&(r=!0)}else n===s[s.length-1]&&(s.pop(),0===s.length&&(i=null));l=this.tokenizer.nextToken()}if(this.tokenizer.endOfFile()&&(t=!0),s.length>0&&this.unclosedBracket(i),t&&r){if(!o)for(;a.length&&(l=a[a.length-1][0],"space"===l||"comment"===l);)this.tokenizer.back(a.pop());this.decl(a,o)}else this.unknownWord(a)}rule(e){e.pop();let t=new l;this.init(t,e[0][2]),t.raws.between=this.spacesAndCommentsFromEnd(e),this.raw(t,"selector",e),this.current=t}decl(e,t){let n=new r;this.init(n,e[0][2]);let i,s=e[e.length-1];for(";"===s[0]&&(this.semicolon=!0,e.pop()),n.source.end=this.getPosition(s[3]||s[2]||function(e){for(let t=e.length-1;t>=0;t--){let n=e[t],r=n[3]||n[2];if(r)return r}}(e));"word"!==e[0][0];)1===e.length&&this.unknownWord(e),n.raws.before+=e.shift()[1];for(n.source.start=this.getPosition(e[0][2]),n.prop="";e.length;){let t=e[0][0];if(":"===t||"space"===t||"comment"===t)break;n.prop+=e.shift()[1]}for(n.raws.between="";e.length;){if(i=e.shift(),":"===i[0]){n.raws.between+=i[1];break}"word"===i[0]&&/\w/.test(i[1])&&this.unknownWord([i]),n.raws.between+=i[1]}"_"!==n.prop[0]&&"*"!==n.prop[0]||(n.raws.before+=n.prop[0],n.prop=n.prop.slice(1));let o,a=[];for(;e.length&&(o=e[0][0],"space"===o||"comment"===o);)a.push(e.shift());this.precheckMissedSemicolon(e);for(let t=e.length-1;t>=0;t--){if(i=e[t],"!important"===i[1].toLowerCase()){n.important=!0;let r=this.stringFrom(e,t);r=this.spacesFromEnd(e)+r," !important"!==r&&(n.raws.important=r);break}if("important"===i[1].toLowerCase()){let r=e.slice(0),i="";for(let e=t;e>0;e--){let t=r[e][0];if(0===i.trim().indexOf("!")&&"space"!==t)break;i=r.pop()[1]+i}0===i.trim().indexOf("!")&&(n.important=!0,n.raws.important=i,e=r)}if("space"!==i[0]&&"comment"!==i[0])break}e.some((e=>"space"!==e[0]&&"comment"!==e[0]))&&(n.raws.between+=a.map((e=>e[1])).join(""),a=[]),this.raw(n,"value",a.concat(e),t),n.value.includes(":")&&!t&&this.checkMissedSemicolon(e)}atrule(e){let t,n,r,i=new o;i.name=e[1].slice(1),""===i.name&&this.unnamedAtrule(i,e),this.init(i,e[2]);let s=!1,a=!1,l=[],c=[];for(;!this.tokenizer.endOfFile();){if(t=(e=this.tokenizer.nextToken())[0],"("===t||"["===t?c.push("("===t?")":"]"):"{"===t&&c.length>0?c.push("}"):t===c[c.length-1]&&c.pop(),0===c.length){if(";"===t){i.source.end=this.getPosition(e[2]),this.semicolon=!0;break}if("{"===t){a=!0;break}if("}"===t){if(l.length>0){for(r=l.length-1,n=l[r];n&&"space"===n[0];)n=l[--r];n&&(i.source.end=this.getPosition(n[3]||n[2]))}this.end(e);break}l.push(e)}else l.push(e);if(this.tokenizer.endOfFile()){s=!0;break}}i.raws.between=this.spacesAndCommentsFromEnd(l),l.length?(i.raws.afterName=this.spacesAndCommentsFromStart(l),this.raw(i,"params",l),s&&(e=l[l.length-1],i.source.end=this.getPosition(e[3]||e[2]),this.spaces=i.raws.between,i.raws.between="")):(i.raws.afterName="",i.params=""),a&&(i.nodes=[],this.current=i)}end(e){this.current.nodes&&this.current.nodes.length&&(this.current.raws.semicolon=this.semicolon),this.semicolon=!1,this.current.raws.after=(this.current.raws.after||"")+this.spaces,this.spaces="",this.current.parent?(this.current.source.end=this.getPosition(e[2]),this.current=this.current.parent):this.unexpectedClose(e)}endFile(){this.current.parent&&this.unclosedBlock(),this.current.nodes&&this.current.nodes.length&&(this.current.raws.semicolon=this.semicolon),this.current.raws.after=(this.current.raws.after||"")+this.spaces}freeSemicolon(e){if(this.spaces+=e[1],this.current.nodes){let e=this.current.nodes[this.current.nodes.length-1];e&&"rule"===e.type&&!e.raws.ownSemicolon&&(e.raws.ownSemicolon=this.spaces,this.spaces="")}}getPosition(e){let t=this.input.fromOffset(e);return{offset:e,line:t.line,column:t.col}}init(e,t){this.current.push(e),e.source={start:this.getPosition(t),input:this.input},e.raws.before=this.spaces,this.spaces="","comment"!==e.type&&(this.semicolon=!1)}raw(e,t,n,r){let i,s,o,a,l=n.length,u="",d=!0;for(let e=0;ee+t[1]),"");e.raws[t]={value:u,raw:r}}e[t]=u}spacesAndCommentsFromEnd(e){let t,n="";for(;e.length&&(t=e[e.length-1][0],"space"===t||"comment"===t);)n=e.pop()[1]+n;return n}spacesAndCommentsFromStart(e){let t,n="";for(;e.length&&(t=e[0][0],"space"===t||"comment"===t);)n+=e.shift()[1];return n}spacesFromEnd(e){let t,n="";for(;e.length&&(t=e[e.length-1][0],"space"===t);)n=e.pop()[1]+n;return n}stringFrom(e,t){let n="";for(let r=t;r=0&&(n=e[i],"space"===n[0]||(r+=1,2!==r));i--);throw this.input.error("Missed semicolon","word"===n[0]?n[3]+1:n[2])}}},5908:(e,t,n)=>{"use strict";let r=n(25698),i=n(46022),s=n(55125),o=n(69922),a=n(5805),l=n(96073),c=n(28967),u=n(61834),d=n(24531),h=n(12018),p=n(74120),f=n(35681),g=n(37609),m=n(31376),b=n(5955),_=n(59020),y=n(32023),v=n(46591);function w(...e){return 1===e.length&&Array.isArray(e[0])&&(e=e[0]),new a(e)}w.plugin=function(e,t){let n,r=!1;function i(...n){console&&console.warn&&!r&&(r=!0,console.warn(e+": postcss.plugin was deprecated. Migration guide:\nhttps://evilmartians.com/chronicles/postcss-8-plugin-migration"),{}.LANG&&{}.LANG.startsWith("cn")&&console.warn(e+": 里面 postcss.plugin 被弃用. 迁移指南:\nhttps://www.w3ctech.com/topic/2226"));let i=t(...n);return i.postcssPlugin=e,i.postcssVersion=(new a).version,i}return Object.defineProperty(i,"postcss",{get:()=>(n||(n=i()),n)}),i.process=function(e,t,n){return w([i(n)]).process(e,t)},i},w.stringify=l,w.parse=m,w.fromJSON=c,w.list=b,w.comment=e=>new h(e),w.atRule=e=>new p(e),w.decl=e=>new i(e),w.rule=e=>new _(e),w.root=e=>new y(e),w.document=e=>new u(e),w.CssSyntaxError=r,w.Declaration=i,w.Container=o,w.Processor=a,w.Document=u,w.Comment=h,w.Warning=d,w.AtRule=p,w.Result=f,w.Input=g,w.Rule=_,w.Root=y,w.Node=v,s.registerPostcss(w),e.exports=w,w.default=w},77681:(e,t,n)=>{"use strict";let{SourceMapConsumer:r,SourceMapGenerator:i}=n(61305),{existsSync:s,readFileSync:o}=n(39550),{dirname:a,join:l}=n(14029);class c{constructor(e,t){if(!1===t.map)return;this.loadAnnotation(e),this.inline=this.startWith(this.annotation,"data:");let n=t.map?t.map.prev:void 0,r=this.loadMap(t.from,n);!this.mapFile&&t.from&&(this.mapFile=t.from),this.mapFile&&(this.root=a(this.mapFile)),r&&(this.text=r)}consumer(){return this.consumerCache||(this.consumerCache=new r(this.text)),this.consumerCache}withContent(){return!!(this.consumer().sourcesContent&&this.consumer().sourcesContent.length>0)}startWith(e,t){return!!e&&e.substr(0,t.length)===t}getAnnotationURL(e){return e.replace(/^\/\*\s*# sourceMappingURL=/,"").trim()}loadAnnotation(e){let t=e.match(/\/\*\s*# sourceMappingURL=/gm);if(!t)return;let n=e.lastIndexOf(t.pop()),r=e.indexOf("*/",n);n>-1&&r>-1&&(this.annotation=this.getAnnotationURL(e.substring(n,r)))}decodeInline(e){if(/^data:application\/json;charset=utf-?8,/.test(e)||/^data:application\/json,/.test(e))return decodeURIComponent(e.substr(RegExp.lastMatch.length));if(/^data:application\/json;charset=utf-?8;base64,/.test(e)||/^data:application\/json;base64,/.test(e))return t=e.substr(RegExp.lastMatch.length),Buffer?Buffer.from(t,"base64").toString():window.atob(t);var t;let n=e.match(/data:application\/json;([^,]+),/)[1];throw new Error("Unsupported source map encoding "+n)}loadFile(e){if(this.root=a(e),s(e))return this.mapFile=e,o(e,"utf-8").toString().trim()}loadMap(e,t){if(!1===t)return!1;if(t){if("string"==typeof t)return t;if("function"!=typeof t){if(t instanceof r)return i.fromSourceMap(t).toString();if(t instanceof i)return t.toString();if(this.isMap(t))return JSON.stringify(t);throw new Error("Unsupported previous source map format: "+t.toString())}{let n=t(e);if(n){let e=this.loadFile(n);if(!e)throw new Error("Unable to load previous source map: "+n.toString());return e}}}else{if(this.inline)return this.decodeInline(this.annotation);if(this.annotation){let t=this.annotation;return e&&(t=l(a(e),t)),this.loadFile(t)}}}isMap(e){return"object"==typeof e&&("string"==typeof e.mappings||"string"==typeof e._mappings||Array.isArray(e.sections))}}e.exports=c,c.default=c},5805:(e,t,n)=>{"use strict";let r=n(53579),i=n(55125),s=n(61834),o=n(32023);class a{constructor(e=[]){this.version="8.4.19",this.plugins=this.normalize(e)}use(e){return this.plugins=this.plugins.concat(this.normalize([e])),this}process(e,t={}){return 0===this.plugins.length&&void 0===t.parser&&void 0===t.stringifier&&void 0===t.syntax?new r(this,e,t):new i(this,e,t)}normalize(e){let t=[];for(let n of e)if(!0===n.postcss?n=n():n.postcss&&(n=n.postcss),"object"==typeof n&&Array.isArray(n.plugins))t=t.concat(n.plugins);else if("object"==typeof n&&n.postcssPlugin)t.push(n);else if("function"==typeof n)t.push(n);else if("object"!=typeof n||!n.parse&&!n.stringify)throw new Error(n+" is not a PostCSS plugin");return t}}e.exports=a,a.default=a,o.registerProcessor(a),s.registerProcessor(a)},35681:(e,t,n)=>{"use strict";let r=n(24531);class i{constructor(e,t,n){this.processor=e,this.messages=[],this.root=t,this.opts=n,this.css=void 0,this.map=void 0}toString(){return this.css}warn(e,t={}){t.plugin||this.lastPlugin&&this.lastPlugin.postcssPlugin&&(t.plugin=this.lastPlugin.postcssPlugin);let n=new r(e,t);return this.messages.push(n),n}warnings(){return this.messages.filter((e=>"warning"===e.type))}get content(){return this.css}}e.exports=i,i.default=i},32023:(e,t,n)=>{"use strict";let r,i,s=n(69922);class o extends s{constructor(e){super(e),this.type="root",this.nodes||(this.nodes=[])}removeChild(e,t){let n=this.index(e);return!t&&0===n&&this.nodes.length>1&&(this.nodes[1].raws.before=this.nodes[n].raws.before),super.removeChild(e)}normalize(e,t,n){let r=super.normalize(e);if(t)if("prepend"===n)this.nodes.length>1?t.raws.before=this.nodes[1].raws.before:delete t.raws.before;else if(this.first!==t)for(let e of r)e.raws.before=t.raws.before;return r}toResult(e={}){return new r(new i,this,e).stringify()}}o.registerLazyResult=e=>{r=e},o.registerProcessor=e=>{i=e},e.exports=o,o.default=o,s.registerRoot(o)},59020:(e,t,n)=>{"use strict";let r=n(69922),i=n(5955);class s extends r{constructor(e){super(e),this.type="rule",this.nodes||(this.nodes=[])}get selectors(){return i.comma(this.selector)}set selectors(e){let t=this.selector?this.selector.match(/,\s*/):null,n=t?t[0]:","+this.raw("between","beforeOpen");this.selector=e.join(n)}}e.exports=s,s.default=s,r.registerRule(s)},94823:e=>{"use strict";const t={colon:": ",indent:" ",beforeDecl:"\n",beforeRule:"\n",beforeOpen:" ",beforeClose:"\n",beforeComment:"\n",after:"\n",emptyBody:"",commentLeft:" ",commentRight:" ",semicolon:!1};class n{constructor(e){this.builder=e}stringify(e,t){if(!this[e.type])throw new Error("Unknown AST node type "+e.type+". Maybe you need to change PostCSS stringifier.");this[e.type](e,t)}document(e){this.body(e)}root(e){this.body(e),e.raws.after&&this.builder(e.raws.after)}comment(e){let t=this.raw(e,"left","commentLeft"),n=this.raw(e,"right","commentRight");this.builder("/*"+t+e.text+n+"*/",e)}decl(e,t){let n=this.raw(e,"between","colon"),r=e.prop+n+this.rawValue(e,"value");e.important&&(r+=e.raws.important||" !important"),t&&(r+=";"),this.builder(r,e)}rule(e){this.block(e,this.rawValue(e,"selector")),e.raws.ownSemicolon&&this.builder(e.raws.ownSemicolon,e,"end")}atrule(e,t){let n="@"+e.name,r=e.params?this.rawValue(e,"params"):"";if(void 0!==e.raws.afterName?n+=e.raws.afterName:r&&(n+=" "),e.nodes)this.block(e,n+r);else{let i=(e.raws.between||"")+(t?";":"");this.builder(n+r+i,e)}}body(e){let t=e.nodes.length-1;for(;t>0&&"comment"===e.nodes[t].type;)t-=1;let n=this.raw(e,"semicolon");for(let r=0;r{if(i=e.raws[n],void 0!==i)return!1}))}var a;return void 0===i&&(i=t[r]),o.rawCache[r]=i,i}rawSemicolon(e){let t;return e.walk((e=>{if(e.nodes&&e.nodes.length&&"decl"===e.last.type&&(t=e.raws.semicolon,void 0!==t))return!1})),t}rawEmptyBody(e){let t;return e.walk((e=>{if(e.nodes&&0===e.nodes.length&&(t=e.raws.after,void 0!==t))return!1})),t}rawIndent(e){if(e.raws.indent)return e.raws.indent;let t;return e.walk((n=>{let r=n.parent;if(r&&r!==e&&r.parent&&r.parent===e&&void 0!==n.raws.before){let e=n.raws.before.split("\n");return t=e[e.length-1],t=t.replace(/\S/g,""),!1}})),t}rawBeforeComment(e,t){let n;return e.walkComments((e=>{if(void 0!==e.raws.before)return n=e.raws.before,n.includes("\n")&&(n=n.replace(/[^\n]+$/,"")),!1})),void 0===n?n=this.raw(t,null,"beforeDecl"):n&&(n=n.replace(/\S/g,"")),n}rawBeforeDecl(e,t){let n;return e.walkDecls((e=>{if(void 0!==e.raws.before)return n=e.raws.before,n.includes("\n")&&(n=n.replace(/[^\n]+$/,"")),!1})),void 0===n?n=this.raw(t,null,"beforeRule"):n&&(n=n.replace(/\S/g,"")),n}rawBeforeRule(e){let t;return e.walk((n=>{if(n.nodes&&(n.parent!==e||e.first!==n)&&void 0!==n.raws.before)return t=n.raws.before,t.includes("\n")&&(t=t.replace(/[^\n]+$/,"")),!1})),t&&(t=t.replace(/\S/g,"")),t}rawBeforeClose(e){let t;return e.walk((e=>{if(e.nodes&&e.nodes.length>0&&void 0!==e.raws.after)return t=e.raws.after,t.includes("\n")&&(t=t.replace(/[^\n]+$/,"")),!1})),t&&(t=t.replace(/\S/g,"")),t}rawBeforeOpen(e){let t;return e.walk((e=>{if("decl"!==e.type&&(t=e.raws.between,void 0!==t))return!1})),t}rawColon(e){let t;return e.walkDecls((e=>{if(void 0!==e.raws.between)return t=e.raws.between.replace(/[^\s:]/g,""),!1})),t}beforeAfter(e,t){let n;n="decl"===e.type?this.raw(e,null,"beforeDecl"):"comment"===e.type?this.raw(e,null,"beforeComment"):"before"===t?this.raw(e,null,"beforeRule"):this.raw(e,null,"beforeClose");let r=e.parent,i=0;for(;r&&"root"!==r.type;)i+=1,r=r.parent;if(n.includes("\n")){let t=this.raw(e,null,"indent");if(t.length)for(let e=0;e{"use strict";let r=n(94823);function i(e,t){new r(t).stringify(e)}e.exports=i,i.default=i},6289:e=>{"use strict";e.exports.isClean=Symbol("isClean"),e.exports.my=Symbol("my")},13583:e=>{"use strict";const t="'".charCodeAt(0),n='"'.charCodeAt(0),r="\\".charCodeAt(0),i="/".charCodeAt(0),s="\n".charCodeAt(0),o=" ".charCodeAt(0),a="\f".charCodeAt(0),l="\t".charCodeAt(0),c="\r".charCodeAt(0),u="[".charCodeAt(0),d="]".charCodeAt(0),h="(".charCodeAt(0),p=")".charCodeAt(0),f="{".charCodeAt(0),g="}".charCodeAt(0),m=";".charCodeAt(0),b="*".charCodeAt(0),_=":".charCodeAt(0),y="@".charCodeAt(0),v=/[\t\n\f\r "#'()/;[\\\]{}]/g,w=/[\t\n\f\r !"#'():;@[\\\]{}]|\/(?=\*)/g,C=/.[\n"'(/\\]/,x=/[\da-f]/i;e.exports=function(e,S={}){let T,E,k,O,A,P,D,R,I,N,L=e.css.valueOf(),B=S.ignoreErrors,M=L.length,j=0,q=[],$=[];function F(t){throw e.error("Unclosed "+t,j)}return{back:function(e){$.push(e)},nextToken:function(e){if($.length)return $.pop();if(j>=M)return;let S=!!e&&e.ignoreUnclosed;switch(T=L.charCodeAt(j),T){case s:case o:case l:case c:case a:E=j;do{E+=1,T=L.charCodeAt(E)}while(T===o||T===s||T===l||T===c||T===a);N=["space",L.slice(j,E)],j=E-1;break;case u:case d:case f:case g:case _:case m:case p:{let e=String.fromCharCode(T);N=[e,e,j];break}case h:if(R=q.length?q.pop()[1]:"",I=L.charCodeAt(j+1),"url"===R&&I!==t&&I!==n&&I!==o&&I!==s&&I!==l&&I!==a&&I!==c){E=j;do{if(P=!1,E=L.indexOf(")",E+1),-1===E){if(B||S){E=j;break}F("bracket")}for(D=E;L.charCodeAt(D-1)===r;)D-=1,P=!P}while(P);N=["brackets",L.slice(j,E+1),j,E],j=E}else E=L.indexOf(")",j+1),O=L.slice(j,E+1),-1===E||C.test(O)?N=["(","(",j]:(N=["brackets",O,j,E],j=E);break;case t:case n:k=T===t?"'":'"',E=j;do{if(P=!1,E=L.indexOf(k,E+1),-1===E){if(B||S){E=j+1;break}F("string")}for(D=E;L.charCodeAt(D-1)===r;)D-=1,P=!P}while(P);N=["string",L.slice(j,E+1),j,E],j=E;break;case y:v.lastIndex=j+1,v.test(L),E=0===v.lastIndex?L.length-1:v.lastIndex-2,N=["at-word",L.slice(j,E+1),j,E],j=E;break;case r:for(E=j,A=!0;L.charCodeAt(E+1)===r;)E+=1,A=!A;if(T=L.charCodeAt(E+1),A&&T!==i&&T!==o&&T!==s&&T!==l&&T!==c&&T!==a&&(E+=1,x.test(L.charAt(E)))){for(;x.test(L.charAt(E+1));)E+=1;L.charCodeAt(E+1)===o&&(E+=1)}N=["word",L.slice(j,E+1),j,E],j=E;break;default:T===i&&L.charCodeAt(j+1)===b?(E=L.indexOf("*/",j+2)+1,0===E&&(B||S?E=L.length:F("comment")),N=["comment",L.slice(j,E+1),j,E],j=E):(w.lastIndex=j+1,w.test(L),E=0===w.lastIndex?L.length-1:w.lastIndex-2,N=["word",L.slice(j,E+1),j,E],q.push(N),j=E)}return j++,N},endOfFile:function(){return 0===$.length&&j>=M},position:function(){return j}}}},27374:e=>{"use strict";let t={};e.exports=function(e){t[e]||(t[e]=!0,"undefined"!=typeof console&&console.warn&&console.warn(e))}},24531:e=>{"use strict";class t{constructor(e,t={}){if(this.type="warning",this.text=e,t.node&&t.node.source){let e=t.node.rangeBy(t);this.line=e.start.line,this.column=e.start.column,this.endLine=e.end.line,this.endColumn=e.end.column}for(let e in t)this[e]=t[e]}toString(){return this.node?this.node.error(this.text,{plugin:this.plugin,index:this.index,word:this.word}).message:this.plugin?this.plugin+": "+this.text:this.text}}e.exports=t,t.default=t},15354:(e,t,n)=>{const r=n(55675),i=n(10486),{isPlainObject:s}=n(61860),o=n(75303),a=n(68307),{parse:l}=n(5908),c=["img","audio","video","picture","svg","object","map","iframe","embed"],u=["script","style"];function d(e,t){e&&Object.keys(e).forEach((function(n){t(e[n],n)}))}function h(e,t){return{}.hasOwnProperty.call(e,t)}function p(e,t){const n=[];return d(e,(function(e){t(e)&&n.push(e)})),n}e.exports=g;const f=/^[^\0\t\n\f\r /<=>]+$/;function g(e,t,n){if(null==e)return"";let b="",_="";function y(e,t){const n=this;this.tag=e,this.attribs=t||{},this.tagPosition=b.length,this.text="",this.mediaChildren=[],this.updateParentNodeText=function(){A.length&&(A[A.length-1].text+=n.text)},this.updateParentNodeMediaChildren=function(){A.length&&c.includes(this.tag)&&A[A.length-1].mediaChildren.push(this.tag)}}(t=Object.assign({},g.defaults,t)).parser=Object.assign({},m,t.parser),u.forEach((function(e){!1!==t.allowedTags&&(t.allowedTags||[]).indexOf(e)>-1&&!t.allowVulnerableTags&&console.warn(`\n\n⚠️ Your \`allowedTags\` option includes, \`${e}\`, which is inherently\nvulnerable to XSS attacks. Please remove it from \`allowedTags\`.\nOr, to disable this warning, add the \`allowVulnerableTags\` option\nand ensure you are accounting for this risk.\n\n`)}));const v=t.nonTextTags||["script","style","textarea","option"];let w,C;t.allowedAttributes&&(w={},C={},d(t.allowedAttributes,(function(e,t){w[t]=[];const n=[];e.forEach((function(e){"string"==typeof e&&e.indexOf("*")>=0?n.push(i(e).replace(/\\\*/g,".*")):w[t].push(e)})),n.length&&(C[t]=new RegExp("^("+n.join("|")+")$"))})));const x={},S={},T={};d(t.allowedClasses,(function(e,t){w&&(h(w,t)||(w[t]=[]),w[t].push("class")),x[t]=[],T[t]=[];const n=[];e.forEach((function(e){"string"==typeof e&&e.indexOf("*")>=0?n.push(i(e).replace(/\\\*/g,".*")):e instanceof RegExp?T[t].push(e):x[t].push(e)})),n.length&&(S[t]=new RegExp("^("+n.join("|")+")$"))}));const E={};let k,O,A,P,D,R,I;d(t.transformTags,(function(e,t){let n;"function"==typeof e?n=e:"string"==typeof e&&(n=g.simpleTransform(e)),"*"===t?k=n:E[t]=n}));let N=!1;B();const L=new r.Parser({onopentag:function(e,n){if(t.enforceHtmlBoundary&&"html"===e&&B(),R)return void I++;const r=new y(e,n);A.push(r);let i=!1;const c=!!r.text;let u;if(h(E,e)&&(u=E[e](e,n),r.attribs=n=u.attribs,void 0!==u.text&&(r.innerText=u.text),e!==u.tagName&&(r.name=e=u.tagName,D[O]=u.tagName)),k&&(u=k(e,n),r.attribs=n=u.attribs,e!==u.tagName&&(r.name=e=u.tagName,D[O]=u.tagName)),(!1!==t.allowedTags&&-1===(t.allowedTags||[]).indexOf(e)||"recursiveEscape"===t.disallowedTagsMode&&!function(e){for(const t in e)if(h(e,t))return!1;return!0}(P)||null!=t.nestingLimit&&O>=t.nestingLimit)&&(i=!0,P[O]=!0,"discard"===t.disallowedTagsMode&&-1!==v.indexOf(e)&&(R=!0,I=1),P[O]=!0),O++,i){if("discard"===t.disallowedTagsMode)return;_=b,b=""}b+="<"+e,"script"===e&&(t.allowedScriptHostnames||t.allowedScriptDomains)&&(r.innerText=""),(!w||h(w,e)||w["*"])&&d(n,(function(n,i){if(!f.test(i))return void delete r.attribs[i];let c=!1;if(!w||h(w,e)&&-1!==w[e].indexOf(i)||w["*"]&&-1!==w["*"].indexOf(i)||h(C,e)&&C[e].test(i)||C["*"]&&C["*"].test(i))c=!0;else if(w&&w[e])for(const t of w[e])if(s(t)&&t.name&&t.name===i){c=!0;let e="";if(!0===t.multiple){const r=n.split(" ");for(const n of r)-1!==t.values.indexOf(n)&&(""===e?e=n:e+=" "+n)}else t.values.indexOf(n)>=0&&(e=n);n=e}if(c){if(-1!==t.allowedSchemesAppliedToAttributes.indexOf(i)&&j(e,n))return void delete r.attribs[i];if("script"===e&&"src"===i){let e=!0;try{const r=q(n);if(t.allowedScriptHostnames||t.allowedScriptDomains){const n=(t.allowedScriptHostnames||[]).find((function(e){return e===r.url.hostname})),i=(t.allowedScriptDomains||[]).find((function(e){return r.url.hostname===e||r.url.hostname.endsWith(`.${e}`)}));e=n||i}}catch(t){e=!1}if(!e)return void delete r.attribs[i]}if("iframe"===e&&"src"===i){let e=!0;try{const r=q(n);if(r.isRelativeUrl)e=h(t,"allowIframeRelativeUrls")?t.allowIframeRelativeUrls:!t.allowedIframeHostnames&&!t.allowedIframeDomains;else if(t.allowedIframeHostnames||t.allowedIframeDomains){const n=(t.allowedIframeHostnames||[]).find((function(e){return e===r.url.hostname})),i=(t.allowedIframeDomains||[]).find((function(e){return r.url.hostname===e||r.url.hostname.endsWith(`.${e}`)}));e=n||i}}catch(t){e=!1}if(!e)return void delete r.attribs[i]}if("srcset"===i)try{let e=a(n);if(e.forEach((function(e){j("srcset",e.url)&&(e.evil=!0)})),e=p(e,(function(e){return!e.evil})),!e.length)return void delete r.attribs[i];n=p(e,(function(e){return!e.evil})).map((function(e){if(!e.url)throw new Error("URL missing");return e.url+(e.w?` ${e.w}w`:"")+(e.h?` ${e.h}h`:"")+(e.d?` ${e.d}x`:"")})).join(", "),r.attribs[i]=n}catch(e){return void delete r.attribs[i]}if("class"===i){const t=x[e],s=x["*"],a=S[e],l=T[e],c=[a,S["*"]].concat(l).filter((function(e){return e}));if(!(u=n,d=t&&s?o(t,s):t||s,g=c,n=d?(u=u.split(/\s+/)).filter((function(e){return-1!==d.indexOf(e)||g.some((function(t){return t.test(e)}))})).join(" "):u).length)return void delete r.attribs[i]}if("style"===i)try{if(n=function(e){return e.nodes[0].nodes.reduce((function(e,t){return e.push(`${t.prop}:${t.value}${t.important?" !important":""}`),e}),[]).join(";")}(function(e,t){if(!t)return e;const n=e.nodes[0];let r;return r=t[n.selector]&&t["*"]?o(t[n.selector],t["*"]):t[n.selector]||t["*"],r&&(e.nodes[0].nodes=n.nodes.reduce(function(e){return function(t,n){return h(e,n.prop)&&e[n.prop].some((function(e){return e.test(n.value)}))&&t.push(n),t}}(r),[])),e}(l(e+" {"+n+"}"),t.allowedStyles)),0===n.length)return void delete r.attribs[i]}catch(e){return void delete r.attribs[i]}b+=" "+i,n&&n.length&&(b+='="'+M(n,!0)+'"')}else delete r.attribs[i];var u,d,g})),-1!==t.selfClosing.indexOf(e)?b+=" />":(b+=">",!r.innerText||c||t.textFilter||(b+=M(r.innerText),N=!0)),i&&(b=_+M(b),_="")},ontext:function(e){if(R)return;const n=A[A.length-1];let r;if(n&&(r=n.tag,e=void 0!==n.innerText?n.innerText:e),"discard"!==t.disallowedTagsMode||"script"!==r&&"style"!==r){const n=M(e,!1);t.textFilter&&!N?b+=t.textFilter(n,r):N||(b+=n)}else b+=e;A.length&&(A[A.length-1].text+=e)},onclosetag:function(e){if(R){if(I--,I)return;R=!1}const n=A.pop();if(!n)return;if(n.tag!==e)return void A.push(n);R=!!t.enforceHtmlBoundary&&"html"===e,O--;const r=P[O];if(r){if(delete P[O],"discard"===t.disallowedTagsMode)return void n.updateParentNodeText();_=b,b=""}D[O]&&(e=D[O],delete D[O]),t.exclusiveFilter&&t.exclusiveFilter(n)?b=b.substr(0,n.tagPosition):(n.updateParentNodeMediaChildren(),n.updateParentNodeText(),-1===t.selfClosing.indexOf(e)?(b+="",r&&(b=_+M(b),_=""),N=!1):r&&(b=_,_=""))}},t.parser);return L.write(e),L.end(),b;function B(){b="",O=0,A=[],P={},D={},R=!1,I=0}function M(e,n){return"string"!=typeof e&&(e+=""),t.parser.decodeEntities&&(e=e.replace(/&/g,"&").replace(//g,">"),n&&(e=e.replace(/"/g,"""))),e=e.replace(/&(?![a-zA-Z0-9#]{1,20};)/g,"&").replace(//g,">"),n&&(e=e.replace(/"/g,""")),e}function j(e,n){for(n=n.replace(/[\x00-\x20]+/g,"");;){const e=n.indexOf("\x3c!--");if(-1===e)break;const t=n.indexOf("--\x3e",e+4);if(-1===t)break;n=n.substring(0,e)+n.substring(t+3)}const r=n.match(/^([a-zA-Z][a-zA-Z0-9.\-+]*):/);if(!r)return!!n.match(/^[/\\]{2}/)&&!t.allowProtocolRelative;const i=r[1].toLowerCase();return h(t.allowedSchemesByTag,e)?-1===t.allowedSchemesByTag[e].indexOf(i):!t.allowedSchemes||-1===t.allowedSchemes.indexOf(i)}function q(e){if((e=e.replace(/^(\w+:)?\s*[\\/]\s*[\\/]/,"$1//")).startsWith("relative:"))throw new Error("relative: exploit attempt");let t="relative://relative-site";for(let e=0;e<100;e++)t+=`/${e}`;const n=new URL(e,t);return{isRelativeUrl:n&&"relative-site"===n.hostname&&"relative:"===n.protocol,url:n}}}const m={decodeEntities:!0};g.defaults={allowedTags:["address","article","aside","footer","header","h1","h2","h3","h4","h5","h6","hgroup","main","nav","section","blockquote","dd","div","dl","dt","figcaption","figure","hr","li","main","ol","p","pre","ul","a","abbr","b","bdi","bdo","br","cite","code","data","dfn","em","i","kbd","mark","q","rb","rp","rt","rtc","ruby","s","samp","small","span","strong","sub","sup","time","u","var","wbr","caption","col","colgroup","table","tbody","td","tfoot","th","thead","tr"],disallowedTagsMode:"discard",allowedAttributes:{a:["href","name","target"],img:["src","srcset","alt","title","width","height","loading"]},selfClosing:["img","br","hr","area","base","basefont","input","link","meta"],allowedSchemes:["http","https","ftp","mailto","tel"],allowedSchemesByTag:{},allowedSchemesAppliedToAttributes:["href","src","cite"],allowProtocolRelative:!0,enforceHtmlBoundary:!1},g.simpleTransform=function(e,t,n){return n=void 0===n||n,t=t||{},function(r,i){let s;if(n)for(s in t)i[s]=t[s];else i=t;return{tagName:e,attribs:i}}}},10486:e=>{"use strict";e.exports=e=>{if("string"!=typeof e)throw new TypeError("Expected a string");return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}},61860:(e,t)=>{"use strict";function n(e){return"[object Object]"===Object.prototype.toString.call(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.isPlainObject=function(e){var t,r;return!1!==n(e)&&(void 0===(t=e.constructor)||!1!==n(r=t.prototype)&&!1!==r.hasOwnProperty("isPrototypeOf"))}},88773:e=>{e.exports={nanoid:(e=21)=>{let t="",n=e;for(;n--;)t+="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict"[64*Math.random()|0];return t},customAlphabet:(e,t=21)=>(n=t)=>{let r="",i=n;for(;i--;)r+=e[Math.random()*e.length|0];return r}}}}]); +//# sourceMappingURL=6623.ae3b3cc.js.map \ No newline at end of file diff --git a/_static/build/6623.ae3b3cc.js.LICENSE.txt b/_static/build/6623.ae3b3cc.js.LICENSE.txt new file mode 100644 index 0000000..fe4c1fe --- /dev/null +++ b/_static/build/6623.ae3b3cc.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*! + * is-plain-object + * + * Copyright (c) 2014-2017, Jon Schlinkert. + * Released under the MIT License. + */ diff --git a/_static/build/6623.ae3b3cc.js.map b/_static/build/6623.ae3b3cc.js.map new file mode 100644 index 0000000..4893968 --- /dev/null +++ b/_static/build/6623.ae3b3cc.js.map @@ -0,0 +1 @@ +{"version":3,"file":"6623.ae3b3cc.js","mappings":"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C,QAAO,GAAQ,IAAI,GAAQ,GAAG,MAC9B,iBAAgB,GAAQ,IAAI,GAAQ,GAAG,eACvC,eAAc,GAAQ,IAAI,GAAQ,GAAG,aACrC,eAAc,GAAQ,IAAI,GAAQ,GAAG,aACrC,uBAAsB,GAAQ,IAAI,GAAQ,GAAG,qBAC7C,iBAAgB,GAAQ,IAAI,GAAQ,GAAG,eACvC,gBAAe,GAAQ,IAAI,GAAQ,GAAG,cACtC,UAAS,GAAQ,IAAI,GAAQ,GAAG,QAChC,gBAAe,GAAQ,IAAI,GAAQ,GAAG,cACtC,eAAc,GAAQ,IAAI,GAAQ,GAAG,aACrC,QAAO,GAAQ,IAAI,GAAQ,GAAG,MAC9B,UAAS,GAAQ,IAAI,GAAQ,GAAG,QAChC,2BAA0B,GAAQ,IACvC,GAAQ,GAAG,yBAEN,aAAY,GAAQ,IAAI,GAAQ,GAAG,WAMtC,MAAO,GAAb,cAcU,cAA8B,CAEpC,YAAa,CACX,IACA,OACA,UACA,UACA,OACA,UACA,QACA,QACA,IACA,MACA,MACA,MACA,aACA,KACA,SACA,SACA,UACA,SACA,OACA,OACA,MACA,WACA,UACA,UACA,OACA,WACA,KACA,MACA,UACA,MACA,MACA,MACA,KACA,KACA,KACA,WACA,aACA,SACA,OACA,SACA,OACA,KACA,KACA,KACA,KACA,KACA,KACA,SACA,SACA,KACA,IAGA,MACA,QACA,MACA,MACA,QACA,SACA,KACA,MACA,OACA,OACA,QACA,MACA,OACA,KACA,WACA,SACA,SACA,IACA,MACA,WACA,IACA,UACA,IACA,OACA,UACA,SACA,QACA,SACA,OACA,SACA,SACA,MACA,UACA,MACA,QACA,QACA,KACA,WACA,QACA,KACA,QACA,OACA,KACA,QACA,KACA,IACA,KACA,MACA,QACA,OAIF,kBAAmB,CACjB,IAAK,CACH,QACA,MACA,YACA,SACA,KACA,QACA,WACA,UACA,YACA,OACA,aACA,QACA,QACA,aAGF,EAAG,CACD,YACA,SACA,OACA,WACA,OACA,MACA,QACA,WACA,SACA,QAEF,KAAM,CACJ,YACA,MACA,SACA,OACA,SACA,QACA,YAGF,MAAO,CACL,WA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","sources":["webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/entities/lib/maps/decode.json","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/entities/lib/maps/entities.json","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/entities/lib/maps/legacy.json","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/entities/lib/maps/xml.json","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/clipboard.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/collapse.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/commandlinker.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/commandpalette.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/styling.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/vdom.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/dialog.tsx","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/widgettracker.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/domutils.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/hoverbox.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/iframe.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/inputdialog.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/printing.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/spinner.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/sessioncontext.tsx","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/kernelstatuses.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../../src/toolbar/widget.tsx","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/mainareawidget.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/menufactory.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/sanitizer.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/search.tsx","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/splash.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/thememanager.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/tokens.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../../src/toolbar/factory.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../../src/toolbar/registry.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/windowresolver.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/deepmerge/dist/cjs.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/dom-serializer/lib/foreignNames.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/dom-serializer/lib/index.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/domelementtype/lib/index.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/domhandler/lib/index.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/domhandler/lib/node.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/domutils/lib/feeds.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/domutils/lib/helpers.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/domutils/lib/index.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/domutils/lib/legacy.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/domutils/lib/manipulation.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/domutils/lib/querying.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/domutils/lib/stringify.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/domutils/lib/traversal.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/entities/lib/decode.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/entities/lib/decode_codepoint.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/entities/lib/encode.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/entities/lib/index.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/htmlparser2/lib/FeedHandler.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/htmlparser2/lib/Parser.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/htmlparser2/lib/Tokenizer.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/htmlparser2/lib/index.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/parse-srcset/src/parse-srcset.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/picocolors/picocolors.browser.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/postcss/lib/at-rule.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/postcss/lib/comment.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/postcss/lib/container.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/postcss/lib/css-syntax-error.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/postcss/lib/declaration.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/postcss/lib/document.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/postcss/lib/fromJSON.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/postcss/lib/input.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/postcss/lib/lazy-result.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/postcss/lib/list.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/postcss/lib/map-generator.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/postcss/lib/no-work-result.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/postcss/lib/node.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/postcss/lib/parse.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/postcss/lib/parser.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/postcss/lib/postcss.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/postcss/lib/previous-map.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/postcss/lib/processor.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/postcss/lib/result.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/postcss/lib/root.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/postcss/lib/rule.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/postcss/lib/stringifier.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/postcss/lib/stringify.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/postcss/lib/symbols.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/postcss/lib/tokenize.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/postcss/lib/warn-once.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/postcss/lib/warning.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/sanitize-html/index.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/sanitize-html/node_modules/escape-string-regexp/index.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/sanitize-html/node_modules/is-plain-object/dist/is-plain-object.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/nanoid/non-secure/index.cjs"],"sourcesContent":["module.exports = {\"0\":65533,\"128\":8364,\"130\":8218,\"131\":402,\"132\":8222,\"133\":8230,\"134\":8224,\"135\":8225,\"136\":710,\"137\":8240,\"138\":352,\"139\":8249,\"140\":338,\"142\":381,\"145\":8216,\"146\":8217,\"147\":8220,\"148\":8221,\"149\":8226,\"150\":8211,\"151\":8212,\"152\":732,\"153\":8482,\"154\":353,\"155\":8250,\"156\":339,\"158\":382,\"159\":376}","module.exports = {\"Aacute\":\"Á\",\"aacute\":\"á\",\"Abreve\":\"Ă\",\"abreve\":\"ă\",\"ac\":\"∾\",\"acd\":\"∿\",\"acE\":\"∾̳\",\"Acirc\":\"Â\",\"acirc\":\"â\",\"acute\":\"´\",\"Acy\":\"А\",\"acy\":\"а\",\"AElig\":\"Æ\",\"aelig\":\"æ\",\"af\":\"⁡\",\"Afr\":\"𝔄\",\"afr\":\"𝔞\",\"Agrave\":\"À\",\"agrave\":\"à\",\"alefsym\":\"ℵ\",\"aleph\":\"ℵ\",\"Alpha\":\"Α\",\"alpha\":\"α\",\"Amacr\":\"Ā\",\"amacr\":\"ā\",\"amalg\":\"⨿\",\"amp\":\"&\",\"AMP\":\"&\",\"andand\":\"⩕\",\"And\":\"⩓\",\"and\":\"∧\",\"andd\":\"⩜\",\"andslope\":\"⩘\",\"andv\":\"⩚\",\"ang\":\"∠\",\"ange\":\"⦤\",\"angle\":\"∠\",\"angmsdaa\":\"⦨\",\"angmsdab\":\"⦩\",\"angmsdac\":\"⦪\",\"angmsdad\":\"⦫\",\"angmsdae\":\"⦬\",\"angmsdaf\":\"⦭\",\"angmsdag\":\"⦮\",\"angmsdah\":\"⦯\",\"angmsd\":\"∡\",\"angrt\":\"∟\",\"angrtvb\":\"⊾\",\"angrtvbd\":\"⦝\",\"angsph\":\"∢\",\"angst\":\"Å\",\"angzarr\":\"⍼\",\"Aogon\":\"Ą\",\"aogon\":\"ą\",\"Aopf\":\"𝔸\",\"aopf\":\"𝕒\",\"apacir\":\"⩯\",\"ap\":\"≈\",\"apE\":\"⩰\",\"ape\":\"≊\",\"apid\":\"≋\",\"apos\":\"'\",\"ApplyFunction\":\"⁡\",\"approx\":\"≈\",\"approxeq\":\"≊\",\"Aring\":\"Å\",\"aring\":\"å\",\"Ascr\":\"𝒜\",\"ascr\":\"𝒶\",\"Assign\":\"≔\",\"ast\":\"*\",\"asymp\":\"≈\",\"asympeq\":\"≍\",\"Atilde\":\"Ã\",\"atilde\":\"ã\",\"Auml\":\"Ä\",\"auml\":\"ä\",\"awconint\":\"∳\",\"awint\":\"⨑\",\"backcong\":\"≌\",\"backepsilon\":\"϶\",\"backprime\":\"‵\",\"backsim\":\"∽\",\"backsimeq\":\"⋍\",\"Backslash\":\"∖\",\"Barv\":\"⫧\",\"barvee\":\"⊽\",\"barwed\":\"⌅\",\"Barwed\":\"⌆\",\"barwedge\":\"⌅\",\"bbrk\":\"⎵\",\"bbrktbrk\":\"⎶\",\"bcong\":\"≌\",\"Bcy\":\"Б\",\"bcy\":\"б\",\"bdquo\":\"„\",\"becaus\":\"∵\",\"because\":\"∵\",\"Because\":\"∵\",\"bemptyv\":\"⦰\",\"bepsi\":\"϶\",\"bernou\":\"ℬ\",\"Bernoullis\":\"ℬ\",\"Beta\":\"Β\",\"beta\":\"β\",\"beth\":\"ℶ\",\"between\":\"≬\",\"Bfr\":\"𝔅\",\"bfr\":\"𝔟\",\"bigcap\":\"⋂\",\"bigcirc\":\"◯\",\"bigcup\":\"⋃\",\"bigodot\":\"⨀\",\"bigoplus\":\"⨁\",\"bigotimes\":\"⨂\",\"bigsqcup\":\"⨆\",\"bigstar\":\"★\",\"bigtriangledown\":\"▽\",\"bigtriangleup\":\"△\",\"biguplus\":\"⨄\",\"bigvee\":\"⋁\",\"bigwedge\":\"⋀\",\"bkarow\":\"⤍\",\"blacklozenge\":\"⧫\",\"blacksquare\":\"▪\",\"blacktriangle\":\"▴\",\"blacktriangledown\":\"▾\",\"blacktriangleleft\":\"◂\",\"blacktriangleright\":\"▸\",\"blank\":\"␣\",\"blk12\":\"▒\",\"blk14\":\"░\",\"blk34\":\"▓\",\"block\":\"█\",\"bne\":\"=⃥\",\"bnequiv\":\"≡⃥\",\"bNot\":\"⫭\",\"bnot\":\"⌐\",\"Bopf\":\"𝔹\",\"bopf\":\"𝕓\",\"bot\":\"⊥\",\"bottom\":\"⊥\",\"bowtie\":\"⋈\",\"boxbox\":\"⧉\",\"boxdl\":\"┐\",\"boxdL\":\"╕\",\"boxDl\":\"╖\",\"boxDL\":\"╗\",\"boxdr\":\"┌\",\"boxdR\":\"╒\",\"boxDr\":\"╓\",\"boxDR\":\"╔\",\"boxh\":\"─\",\"boxH\":\"═\",\"boxhd\":\"┬\",\"boxHd\":\"╤\",\"boxhD\":\"╥\",\"boxHD\":\"╦\",\"boxhu\":\"┴\",\"boxHu\":\"╧\",\"boxhU\":\"╨\",\"boxHU\":\"╩\",\"boxminus\":\"⊟\",\"boxplus\":\"⊞\",\"boxtimes\":\"⊠\",\"boxul\":\"┘\",\"boxuL\":\"╛\",\"boxUl\":\"╜\",\"boxUL\":\"╝\",\"boxur\":\"└\",\"boxuR\":\"╘\",\"boxUr\":\"╙\",\"boxUR\":\"╚\",\"boxv\":\"│\",\"boxV\":\"║\",\"boxvh\":\"┼\",\"boxvH\":\"╪\",\"boxVh\":\"╫\",\"boxVH\":\"╬\",\"boxvl\":\"┤\",\"boxvL\":\"╡\",\"boxVl\":\"╢\",\"boxVL\":\"╣\",\"boxvr\":\"├\",\"boxvR\":\"╞\",\"boxVr\":\"╟\",\"boxVR\":\"╠\",\"bprime\":\"‵\",\"breve\":\"˘\",\"Breve\":\"˘\",\"brvbar\":\"¦\",\"bscr\":\"𝒷\",\"Bscr\":\"ℬ\",\"bsemi\":\"⁏\",\"bsim\":\"∽\",\"bsime\":\"⋍\",\"bsolb\":\"⧅\",\"bsol\":\"\\\\\",\"bsolhsub\":\"⟈\",\"bull\":\"•\",\"bullet\":\"•\",\"bump\":\"≎\",\"bumpE\":\"⪮\",\"bumpe\":\"≏\",\"Bumpeq\":\"≎\",\"bumpeq\":\"≏\",\"Cacute\":\"Ć\",\"cacute\":\"ć\",\"capand\":\"⩄\",\"capbrcup\":\"⩉\",\"capcap\":\"⩋\",\"cap\":\"∩\",\"Cap\":\"⋒\",\"capcup\":\"⩇\",\"capdot\":\"⩀\",\"CapitalDifferentialD\":\"ⅅ\",\"caps\":\"∩︀\",\"caret\":\"⁁\",\"caron\":\"ˇ\",\"Cayleys\":\"ℭ\",\"ccaps\":\"⩍\",\"Ccaron\":\"Č\",\"ccaron\":\"č\",\"Ccedil\":\"Ç\",\"ccedil\":\"ç\",\"Ccirc\":\"Ĉ\",\"ccirc\":\"ĉ\",\"Cconint\":\"∰\",\"ccups\":\"⩌\",\"ccupssm\":\"⩐\",\"Cdot\":\"Ċ\",\"cdot\":\"ċ\",\"cedil\":\"¸\",\"Cedilla\":\"¸\",\"cemptyv\":\"⦲\",\"cent\":\"¢\",\"centerdot\":\"·\",\"CenterDot\":\"·\",\"cfr\":\"𝔠\",\"Cfr\":\"ℭ\",\"CHcy\":\"Ч\",\"chcy\":\"ч\",\"check\":\"✓\",\"checkmark\":\"✓\",\"Chi\":\"Χ\",\"chi\":\"χ\",\"circ\":\"ˆ\",\"circeq\":\"≗\",\"circlearrowleft\":\"↺\",\"circlearrowright\":\"↻\",\"circledast\":\"⊛\",\"circledcirc\":\"⊚\",\"circleddash\":\"⊝\",\"CircleDot\":\"⊙\",\"circledR\":\"®\",\"circledS\":\"Ⓢ\",\"CircleMinus\":\"⊖\",\"CirclePlus\":\"⊕\",\"CircleTimes\":\"⊗\",\"cir\":\"○\",\"cirE\":\"⧃\",\"cire\":\"≗\",\"cirfnint\":\"⨐\",\"cirmid\":\"⫯\",\"cirscir\":\"⧂\",\"ClockwiseContourIntegral\":\"∲\",\"CloseCurlyDoubleQuote\":\"”\",\"CloseCurlyQuote\":\"’\",\"clubs\":\"♣\",\"clubsuit\":\"♣\",\"colon\":\":\",\"Colon\":\"∷\",\"Colone\":\"⩴\",\"colone\":\"≔\",\"coloneq\":\"≔\",\"comma\":\",\",\"commat\":\"@\",\"comp\":\"∁\",\"compfn\":\"∘\",\"complement\":\"∁\",\"complexes\":\"ℂ\",\"cong\":\"≅\",\"congdot\":\"⩭\",\"Congruent\":\"≡\",\"conint\":\"∮\",\"Conint\":\"∯\",\"ContourIntegral\":\"∮\",\"copf\":\"𝕔\",\"Copf\":\"ℂ\",\"coprod\":\"∐\",\"Coproduct\":\"∐\",\"copy\":\"©\",\"COPY\":\"©\",\"copysr\":\"℗\",\"CounterClockwiseContourIntegral\":\"∳\",\"crarr\":\"↵\",\"cross\":\"✗\",\"Cross\":\"⨯\",\"Cscr\":\"𝒞\",\"cscr\":\"𝒸\",\"csub\":\"⫏\",\"csube\":\"⫑\",\"csup\":\"⫐\",\"csupe\":\"⫒\",\"ctdot\":\"⋯\",\"cudarrl\":\"⤸\",\"cudarrr\":\"⤵\",\"cuepr\":\"⋞\",\"cuesc\":\"⋟\",\"cularr\":\"↶\",\"cularrp\":\"⤽\",\"cupbrcap\":\"⩈\",\"cupcap\":\"⩆\",\"CupCap\":\"≍\",\"cup\":\"∪\",\"Cup\":\"⋓\",\"cupcup\":\"⩊\",\"cupdot\":\"⊍\",\"cupor\":\"⩅\",\"cups\":\"∪︀\",\"curarr\":\"↷\",\"curarrm\":\"⤼\",\"curlyeqprec\":\"⋞\",\"curlyeqsucc\":\"⋟\",\"curlyvee\":\"⋎\",\"curlywedge\":\"⋏\",\"curren\":\"¤\",\"curvearrowleft\":\"↶\",\"curvearrowright\":\"↷\",\"cuvee\":\"⋎\",\"cuwed\":\"⋏\",\"cwconint\":\"∲\",\"cwint\":\"∱\",\"cylcty\":\"⌭\",\"dagger\":\"†\",\"Dagger\":\"‡\",\"daleth\":\"ℸ\",\"darr\":\"↓\",\"Darr\":\"↡\",\"dArr\":\"⇓\",\"dash\":\"‐\",\"Dashv\":\"⫤\",\"dashv\":\"⊣\",\"dbkarow\":\"⤏\",\"dblac\":\"˝\",\"Dcaron\":\"Ď\",\"dcaron\":\"ď\",\"Dcy\":\"Д\",\"dcy\":\"д\",\"ddagger\":\"‡\",\"ddarr\":\"⇊\",\"DD\":\"ⅅ\",\"dd\":\"ⅆ\",\"DDotrahd\":\"⤑\",\"ddotseq\":\"⩷\",\"deg\":\"°\",\"Del\":\"∇\",\"Delta\":\"Δ\",\"delta\":\"δ\",\"demptyv\":\"⦱\",\"dfisht\":\"⥿\",\"Dfr\":\"𝔇\",\"dfr\":\"𝔡\",\"dHar\":\"⥥\",\"dharl\":\"⇃\",\"dharr\":\"⇂\",\"DiacriticalAcute\":\"´\",\"DiacriticalDot\":\"˙\",\"DiacriticalDoubleAcute\":\"˝\",\"DiacriticalGrave\":\"`\",\"DiacriticalTilde\":\"˜\",\"diam\":\"⋄\",\"diamond\":\"⋄\",\"Diamond\":\"⋄\",\"diamondsuit\":\"♦\",\"diams\":\"♦\",\"die\":\"¨\",\"DifferentialD\":\"ⅆ\",\"digamma\":\"ϝ\",\"disin\":\"⋲\",\"div\":\"÷\",\"divide\":\"÷\",\"divideontimes\":\"⋇\",\"divonx\":\"⋇\",\"DJcy\":\"Ђ\",\"djcy\":\"ђ\",\"dlcorn\":\"⌞\",\"dlcrop\":\"⌍\",\"dollar\":\"$\",\"Dopf\":\"𝔻\",\"dopf\":\"𝕕\",\"Dot\":\"¨\",\"dot\":\"˙\",\"DotDot\":\"⃜\",\"doteq\":\"≐\",\"doteqdot\":\"≑\",\"DotEqual\":\"≐\",\"dotminus\":\"∸\",\"dotplus\":\"∔\",\"dotsquare\":\"⊡\",\"doublebarwedge\":\"⌆\",\"DoubleContourIntegral\":\"∯\",\"DoubleDot\":\"¨\",\"DoubleDownArrow\":\"⇓\",\"DoubleLeftArrow\":\"⇐\",\"DoubleLeftRightArrow\":\"⇔\",\"DoubleLeftTee\":\"⫤\",\"DoubleLongLeftArrow\":\"⟸\",\"DoubleLongLeftRightArrow\":\"⟺\",\"DoubleLongRightArrow\":\"⟹\",\"DoubleRightArrow\":\"⇒\",\"DoubleRightTee\":\"⊨\",\"DoubleUpArrow\":\"⇑\",\"DoubleUpDownArrow\":\"⇕\",\"DoubleVerticalBar\":\"∥\",\"DownArrowBar\":\"⤓\",\"downarrow\":\"↓\",\"DownArrow\":\"↓\",\"Downarrow\":\"⇓\",\"DownArrowUpArrow\":\"⇵\",\"DownBreve\":\"̑\",\"downdownarrows\":\"⇊\",\"downharpoonleft\":\"⇃\",\"downharpoonright\":\"⇂\",\"DownLeftRightVector\":\"⥐\",\"DownLeftTeeVector\":\"⥞\",\"DownLeftVectorBar\":\"⥖\",\"DownLeftVector\":\"↽\",\"DownRightTeeVector\":\"⥟\",\"DownRightVectorBar\":\"⥗\",\"DownRightVector\":\"⇁\",\"DownTeeArrow\":\"↧\",\"DownTee\":\"⊤\",\"drbkarow\":\"⤐\",\"drcorn\":\"⌟\",\"drcrop\":\"⌌\",\"Dscr\":\"𝒟\",\"dscr\":\"𝒹\",\"DScy\":\"Ѕ\",\"dscy\":\"ѕ\",\"dsol\":\"⧶\",\"Dstrok\":\"Đ\",\"dstrok\":\"đ\",\"dtdot\":\"⋱\",\"dtri\":\"▿\",\"dtrif\":\"▾\",\"duarr\":\"⇵\",\"duhar\":\"⥯\",\"dwangle\":\"⦦\",\"DZcy\":\"Џ\",\"dzcy\":\"џ\",\"dzigrarr\":\"⟿\",\"Eacute\":\"É\",\"eacute\":\"é\",\"easter\":\"⩮\",\"Ecaron\":\"Ě\",\"ecaron\":\"ě\",\"Ecirc\":\"Ê\",\"ecirc\":\"ê\",\"ecir\":\"≖\",\"ecolon\":\"≕\",\"Ecy\":\"Э\",\"ecy\":\"э\",\"eDDot\":\"⩷\",\"Edot\":\"Ė\",\"edot\":\"ė\",\"eDot\":\"≑\",\"ee\":\"ⅇ\",\"efDot\":\"≒\",\"Efr\":\"𝔈\",\"efr\":\"𝔢\",\"eg\":\"⪚\",\"Egrave\":\"È\",\"egrave\":\"è\",\"egs\":\"⪖\",\"egsdot\":\"⪘\",\"el\":\"⪙\",\"Element\":\"∈\",\"elinters\":\"⏧\",\"ell\":\"ℓ\",\"els\":\"⪕\",\"elsdot\":\"⪗\",\"Emacr\":\"Ē\",\"emacr\":\"ē\",\"empty\":\"∅\",\"emptyset\":\"∅\",\"EmptySmallSquare\":\"◻\",\"emptyv\":\"∅\",\"EmptyVerySmallSquare\":\"▫\",\"emsp13\":\" \",\"emsp14\":\" \",\"emsp\":\" \",\"ENG\":\"Ŋ\",\"eng\":\"ŋ\",\"ensp\":\" \",\"Eogon\":\"Ę\",\"eogon\":\"ę\",\"Eopf\":\"𝔼\",\"eopf\":\"𝕖\",\"epar\":\"⋕\",\"eparsl\":\"⧣\",\"eplus\":\"⩱\",\"epsi\":\"ε\",\"Epsilon\":\"Ε\",\"epsilon\":\"ε\",\"epsiv\":\"ϵ\",\"eqcirc\":\"≖\",\"eqcolon\":\"≕\",\"eqsim\":\"≂\",\"eqslantgtr\":\"⪖\",\"eqslantless\":\"⪕\",\"Equal\":\"⩵\",\"equals\":\"=\",\"EqualTilde\":\"≂\",\"equest\":\"≟\",\"Equilibrium\":\"⇌\",\"equiv\":\"≡\",\"equivDD\":\"⩸\",\"eqvparsl\":\"⧥\",\"erarr\":\"⥱\",\"erDot\":\"≓\",\"escr\":\"ℯ\",\"Escr\":\"ℰ\",\"esdot\":\"≐\",\"Esim\":\"⩳\",\"esim\":\"≂\",\"Eta\":\"Η\",\"eta\":\"η\",\"ETH\":\"Ð\",\"eth\":\"ð\",\"Euml\":\"Ë\",\"euml\":\"ë\",\"euro\":\"€\",\"excl\":\"!\",\"exist\":\"∃\",\"Exists\":\"∃\",\"expectation\":\"ℰ\",\"exponentiale\":\"ⅇ\",\"ExponentialE\":\"ⅇ\",\"fallingdotseq\":\"≒\",\"Fcy\":\"Ф\",\"fcy\":\"ф\",\"female\":\"♀\",\"ffilig\":\"ffi\",\"fflig\":\"ff\",\"ffllig\":\"ffl\",\"Ffr\":\"𝔉\",\"ffr\":\"𝔣\",\"filig\":\"fi\",\"FilledSmallSquare\":\"◼\",\"FilledVerySmallSquare\":\"▪\",\"fjlig\":\"fj\",\"flat\":\"♭\",\"fllig\":\"fl\",\"fltns\":\"▱\",\"fnof\":\"ƒ\",\"Fopf\":\"𝔽\",\"fopf\":\"𝕗\",\"forall\":\"∀\",\"ForAll\":\"∀\",\"fork\":\"⋔\",\"forkv\":\"⫙\",\"Fouriertrf\":\"ℱ\",\"fpartint\":\"⨍\",\"frac12\":\"½\",\"frac13\":\"⅓\",\"frac14\":\"¼\",\"frac15\":\"⅕\",\"frac16\":\"⅙\",\"frac18\":\"⅛\",\"frac23\":\"⅔\",\"frac25\":\"⅖\",\"frac34\":\"¾\",\"frac35\":\"⅗\",\"frac38\":\"⅜\",\"frac45\":\"⅘\",\"frac56\":\"⅚\",\"frac58\":\"⅝\",\"frac78\":\"⅞\",\"frasl\":\"⁄\",\"frown\":\"⌢\",\"fscr\":\"𝒻\",\"Fscr\":\"ℱ\",\"gacute\":\"ǵ\",\"Gamma\":\"Γ\",\"gamma\":\"γ\",\"Gammad\":\"Ϝ\",\"gammad\":\"ϝ\",\"gap\":\"⪆\",\"Gbreve\":\"Ğ\",\"gbreve\":\"ğ\",\"Gcedil\":\"Ģ\",\"Gcirc\":\"Ĝ\",\"gcirc\":\"ĝ\",\"Gcy\":\"Г\",\"gcy\":\"г\",\"Gdot\":\"Ġ\",\"gdot\":\"ġ\",\"ge\":\"≥\",\"gE\":\"≧\",\"gEl\":\"⪌\",\"gel\":\"⋛\",\"geq\":\"≥\",\"geqq\":\"≧\",\"geqslant\":\"⩾\",\"gescc\":\"⪩\",\"ges\":\"⩾\",\"gesdot\":\"⪀\",\"gesdoto\":\"⪂\",\"gesdotol\":\"⪄\",\"gesl\":\"⋛︀\",\"gesles\":\"⪔\",\"Gfr\":\"𝔊\",\"gfr\":\"𝔤\",\"gg\":\"≫\",\"Gg\":\"⋙\",\"ggg\":\"⋙\",\"gimel\":\"ℷ\",\"GJcy\":\"Ѓ\",\"gjcy\":\"ѓ\",\"gla\":\"⪥\",\"gl\":\"≷\",\"glE\":\"⪒\",\"glj\":\"⪤\",\"gnap\":\"⪊\",\"gnapprox\":\"⪊\",\"gne\":\"⪈\",\"gnE\":\"≩\",\"gneq\":\"⪈\",\"gneqq\":\"≩\",\"gnsim\":\"⋧\",\"Gopf\":\"𝔾\",\"gopf\":\"𝕘\",\"grave\":\"`\",\"GreaterEqual\":\"≥\",\"GreaterEqualLess\":\"⋛\",\"GreaterFullEqual\":\"≧\",\"GreaterGreater\":\"⪢\",\"GreaterLess\":\"≷\",\"GreaterSlantEqual\":\"⩾\",\"GreaterTilde\":\"≳\",\"Gscr\":\"𝒢\",\"gscr\":\"ℊ\",\"gsim\":\"≳\",\"gsime\":\"⪎\",\"gsiml\":\"⪐\",\"gtcc\":\"⪧\",\"gtcir\":\"⩺\",\"gt\":\">\",\"GT\":\">\",\"Gt\":\"≫\",\"gtdot\":\"⋗\",\"gtlPar\":\"⦕\",\"gtquest\":\"⩼\",\"gtrapprox\":\"⪆\",\"gtrarr\":\"⥸\",\"gtrdot\":\"⋗\",\"gtreqless\":\"⋛\",\"gtreqqless\":\"⪌\",\"gtrless\":\"≷\",\"gtrsim\":\"≳\",\"gvertneqq\":\"≩︀\",\"gvnE\":\"≩︀\",\"Hacek\":\"ˇ\",\"hairsp\":\" \",\"half\":\"½\",\"hamilt\":\"ℋ\",\"HARDcy\":\"Ъ\",\"hardcy\":\"ъ\",\"harrcir\":\"⥈\",\"harr\":\"↔\",\"hArr\":\"⇔\",\"harrw\":\"↭\",\"Hat\":\"^\",\"hbar\":\"ℏ\",\"Hcirc\":\"Ĥ\",\"hcirc\":\"ĥ\",\"hearts\":\"♥\",\"heartsuit\":\"♥\",\"hellip\":\"…\",\"hercon\":\"⊹\",\"hfr\":\"𝔥\",\"Hfr\":\"ℌ\",\"HilbertSpace\":\"ℋ\",\"hksearow\":\"⤥\",\"hkswarow\":\"⤦\",\"hoarr\":\"⇿\",\"homtht\":\"∻\",\"hookleftarrow\":\"↩\",\"hookrightarrow\":\"↪\",\"hopf\":\"𝕙\",\"Hopf\":\"ℍ\",\"horbar\":\"―\",\"HorizontalLine\":\"─\",\"hscr\":\"𝒽\",\"Hscr\":\"ℋ\",\"hslash\":\"ℏ\",\"Hstrok\":\"Ħ\",\"hstrok\":\"ħ\",\"HumpDownHump\":\"≎\",\"HumpEqual\":\"≏\",\"hybull\":\"⁃\",\"hyphen\":\"‐\",\"Iacute\":\"Í\",\"iacute\":\"í\",\"ic\":\"⁣\",\"Icirc\":\"Î\",\"icirc\":\"î\",\"Icy\":\"И\",\"icy\":\"и\",\"Idot\":\"İ\",\"IEcy\":\"Е\",\"iecy\":\"е\",\"iexcl\":\"¡\",\"iff\":\"⇔\",\"ifr\":\"𝔦\",\"Ifr\":\"ℑ\",\"Igrave\":\"Ì\",\"igrave\":\"ì\",\"ii\":\"ⅈ\",\"iiiint\":\"⨌\",\"iiint\":\"∭\",\"iinfin\":\"⧜\",\"iiota\":\"℩\",\"IJlig\":\"IJ\",\"ijlig\":\"ij\",\"Imacr\":\"Ī\",\"imacr\":\"ī\",\"image\":\"ℑ\",\"ImaginaryI\":\"ⅈ\",\"imagline\":\"ℐ\",\"imagpart\":\"ℑ\",\"imath\":\"ı\",\"Im\":\"ℑ\",\"imof\":\"⊷\",\"imped\":\"Ƶ\",\"Implies\":\"⇒\",\"incare\":\"℅\",\"in\":\"∈\",\"infin\":\"∞\",\"infintie\":\"⧝\",\"inodot\":\"ı\",\"intcal\":\"⊺\",\"int\":\"∫\",\"Int\":\"∬\",\"integers\":\"ℤ\",\"Integral\":\"∫\",\"intercal\":\"⊺\",\"Intersection\":\"⋂\",\"intlarhk\":\"⨗\",\"intprod\":\"⨼\",\"InvisibleComma\":\"⁣\",\"InvisibleTimes\":\"⁢\",\"IOcy\":\"Ё\",\"iocy\":\"ё\",\"Iogon\":\"Į\",\"iogon\":\"į\",\"Iopf\":\"𝕀\",\"iopf\":\"𝕚\",\"Iota\":\"Ι\",\"iota\":\"ι\",\"iprod\":\"⨼\",\"iquest\":\"¿\",\"iscr\":\"𝒾\",\"Iscr\":\"ℐ\",\"isin\":\"∈\",\"isindot\":\"⋵\",\"isinE\":\"⋹\",\"isins\":\"⋴\",\"isinsv\":\"⋳\",\"isinv\":\"∈\",\"it\":\"⁢\",\"Itilde\":\"Ĩ\",\"itilde\":\"ĩ\",\"Iukcy\":\"І\",\"iukcy\":\"і\",\"Iuml\":\"Ï\",\"iuml\":\"ï\",\"Jcirc\":\"Ĵ\",\"jcirc\":\"ĵ\",\"Jcy\":\"Й\",\"jcy\":\"й\",\"Jfr\":\"𝔍\",\"jfr\":\"𝔧\",\"jmath\":\"ȷ\",\"Jopf\":\"𝕁\",\"jopf\":\"𝕛\",\"Jscr\":\"𝒥\",\"jscr\":\"𝒿\",\"Jsercy\":\"Ј\",\"jsercy\":\"ј\",\"Jukcy\":\"Є\",\"jukcy\":\"є\",\"Kappa\":\"Κ\",\"kappa\":\"κ\",\"kappav\":\"ϰ\",\"Kcedil\":\"Ķ\",\"kcedil\":\"ķ\",\"Kcy\":\"К\",\"kcy\":\"к\",\"Kfr\":\"𝔎\",\"kfr\":\"𝔨\",\"kgreen\":\"ĸ\",\"KHcy\":\"Х\",\"khcy\":\"х\",\"KJcy\":\"Ќ\",\"kjcy\":\"ќ\",\"Kopf\":\"𝕂\",\"kopf\":\"𝕜\",\"Kscr\":\"𝒦\",\"kscr\":\"𝓀\",\"lAarr\":\"⇚\",\"Lacute\":\"Ĺ\",\"lacute\":\"ĺ\",\"laemptyv\":\"⦴\",\"lagran\":\"ℒ\",\"Lambda\":\"Λ\",\"lambda\":\"λ\",\"lang\":\"⟨\",\"Lang\":\"⟪\",\"langd\":\"⦑\",\"langle\":\"⟨\",\"lap\":\"⪅\",\"Laplacetrf\":\"ℒ\",\"laquo\":\"«\",\"larrb\":\"⇤\",\"larrbfs\":\"⤟\",\"larr\":\"←\",\"Larr\":\"↞\",\"lArr\":\"⇐\",\"larrfs\":\"⤝\",\"larrhk\":\"↩\",\"larrlp\":\"↫\",\"larrpl\":\"⤹\",\"larrsim\":\"⥳\",\"larrtl\":\"↢\",\"latail\":\"⤙\",\"lAtail\":\"⤛\",\"lat\":\"⪫\",\"late\":\"⪭\",\"lates\":\"⪭︀\",\"lbarr\":\"⤌\",\"lBarr\":\"⤎\",\"lbbrk\":\"❲\",\"lbrace\":\"{\",\"lbrack\":\"[\",\"lbrke\":\"⦋\",\"lbrksld\":\"⦏\",\"lbrkslu\":\"⦍\",\"Lcaron\":\"Ľ\",\"lcaron\":\"ľ\",\"Lcedil\":\"Ļ\",\"lcedil\":\"ļ\",\"lceil\":\"⌈\",\"lcub\":\"{\",\"Lcy\":\"Л\",\"lcy\":\"л\",\"ldca\":\"⤶\",\"ldquo\":\"“\",\"ldquor\":\"„\",\"ldrdhar\":\"⥧\",\"ldrushar\":\"⥋\",\"ldsh\":\"↲\",\"le\":\"≤\",\"lE\":\"≦\",\"LeftAngleBracket\":\"⟨\",\"LeftArrowBar\":\"⇤\",\"leftarrow\":\"←\",\"LeftArrow\":\"←\",\"Leftarrow\":\"⇐\",\"LeftArrowRightArrow\":\"⇆\",\"leftarrowtail\":\"↢\",\"LeftCeiling\":\"⌈\",\"LeftDoubleBracket\":\"⟦\",\"LeftDownTeeVector\":\"⥡\",\"LeftDownVectorBar\":\"⥙\",\"LeftDownVector\":\"⇃\",\"LeftFloor\":\"⌊\",\"leftharpoondown\":\"↽\",\"leftharpoonup\":\"↼\",\"leftleftarrows\":\"⇇\",\"leftrightarrow\":\"↔\",\"LeftRightArrow\":\"↔\",\"Leftrightarrow\":\"⇔\",\"leftrightarrows\":\"⇆\",\"leftrightharpoons\":\"⇋\",\"leftrightsquigarrow\":\"↭\",\"LeftRightVector\":\"⥎\",\"LeftTeeArrow\":\"↤\",\"LeftTee\":\"⊣\",\"LeftTeeVector\":\"⥚\",\"leftthreetimes\":\"⋋\",\"LeftTriangleBar\":\"⧏\",\"LeftTriangle\":\"⊲\",\"LeftTriangleEqual\":\"⊴\",\"LeftUpDownVector\":\"⥑\",\"LeftUpTeeVector\":\"⥠\",\"LeftUpVectorBar\":\"⥘\",\"LeftUpVector\":\"↿\",\"LeftVectorBar\":\"⥒\",\"LeftVector\":\"↼\",\"lEg\":\"⪋\",\"leg\":\"⋚\",\"leq\":\"≤\",\"leqq\":\"≦\",\"leqslant\":\"⩽\",\"lescc\":\"⪨\",\"les\":\"⩽\",\"lesdot\":\"⩿\",\"lesdoto\":\"⪁\",\"lesdotor\":\"⪃\",\"lesg\":\"⋚︀\",\"lesges\":\"⪓\",\"lessapprox\":\"⪅\",\"lessdot\":\"⋖\",\"lesseqgtr\":\"⋚\",\"lesseqqgtr\":\"⪋\",\"LessEqualGreater\":\"⋚\",\"LessFullEqual\":\"≦\",\"LessGreater\":\"≶\",\"lessgtr\":\"≶\",\"LessLess\":\"⪡\",\"lesssim\":\"≲\",\"LessSlantEqual\":\"⩽\",\"LessTilde\":\"≲\",\"lfisht\":\"⥼\",\"lfloor\":\"⌊\",\"Lfr\":\"𝔏\",\"lfr\":\"𝔩\",\"lg\":\"≶\",\"lgE\":\"⪑\",\"lHar\":\"⥢\",\"lhard\":\"↽\",\"lharu\":\"↼\",\"lharul\":\"⥪\",\"lhblk\":\"▄\",\"LJcy\":\"Љ\",\"ljcy\":\"љ\",\"llarr\":\"⇇\",\"ll\":\"≪\",\"Ll\":\"⋘\",\"llcorner\":\"⌞\",\"Lleftarrow\":\"⇚\",\"llhard\":\"⥫\",\"lltri\":\"◺\",\"Lmidot\":\"Ŀ\",\"lmidot\":\"ŀ\",\"lmoustache\":\"⎰\",\"lmoust\":\"⎰\",\"lnap\":\"⪉\",\"lnapprox\":\"⪉\",\"lne\":\"⪇\",\"lnE\":\"≨\",\"lneq\":\"⪇\",\"lneqq\":\"≨\",\"lnsim\":\"⋦\",\"loang\":\"⟬\",\"loarr\":\"⇽\",\"lobrk\":\"⟦\",\"longleftarrow\":\"⟵\",\"LongLeftArrow\":\"⟵\",\"Longleftarrow\":\"⟸\",\"longleftrightarrow\":\"⟷\",\"LongLeftRightArrow\":\"⟷\",\"Longleftrightarrow\":\"⟺\",\"longmapsto\":\"⟼\",\"longrightarrow\":\"⟶\",\"LongRightArrow\":\"⟶\",\"Longrightarrow\":\"⟹\",\"looparrowleft\":\"↫\",\"looparrowright\":\"↬\",\"lopar\":\"⦅\",\"Lopf\":\"𝕃\",\"lopf\":\"𝕝\",\"loplus\":\"⨭\",\"lotimes\":\"⨴\",\"lowast\":\"∗\",\"lowbar\":\"_\",\"LowerLeftArrow\":\"↙\",\"LowerRightArrow\":\"↘\",\"loz\":\"◊\",\"lozenge\":\"◊\",\"lozf\":\"⧫\",\"lpar\":\"(\",\"lparlt\":\"⦓\",\"lrarr\":\"⇆\",\"lrcorner\":\"⌟\",\"lrhar\":\"⇋\",\"lrhard\":\"⥭\",\"lrm\":\"‎\",\"lrtri\":\"⊿\",\"lsaquo\":\"‹\",\"lscr\":\"𝓁\",\"Lscr\":\"ℒ\",\"lsh\":\"↰\",\"Lsh\":\"↰\",\"lsim\":\"≲\",\"lsime\":\"⪍\",\"lsimg\":\"⪏\",\"lsqb\":\"[\",\"lsquo\":\"‘\",\"lsquor\":\"‚\",\"Lstrok\":\"Ł\",\"lstrok\":\"ł\",\"ltcc\":\"⪦\",\"ltcir\":\"⩹\",\"lt\":\"<\",\"LT\":\"<\",\"Lt\":\"≪\",\"ltdot\":\"⋖\",\"lthree\":\"⋋\",\"ltimes\":\"⋉\",\"ltlarr\":\"⥶\",\"ltquest\":\"⩻\",\"ltri\":\"◃\",\"ltrie\":\"⊴\",\"ltrif\":\"◂\",\"ltrPar\":\"⦖\",\"lurdshar\":\"⥊\",\"luruhar\":\"⥦\",\"lvertneqq\":\"≨︀\",\"lvnE\":\"≨︀\",\"macr\":\"¯\",\"male\":\"♂\",\"malt\":\"✠\",\"maltese\":\"✠\",\"Map\":\"⤅\",\"map\":\"↦\",\"mapsto\":\"↦\",\"mapstodown\":\"↧\",\"mapstoleft\":\"↤\",\"mapstoup\":\"↥\",\"marker\":\"▮\",\"mcomma\":\"⨩\",\"Mcy\":\"М\",\"mcy\":\"м\",\"mdash\":\"—\",\"mDDot\":\"∺\",\"measuredangle\":\"∡\",\"MediumSpace\":\" \",\"Mellintrf\":\"ℳ\",\"Mfr\":\"𝔐\",\"mfr\":\"𝔪\",\"mho\":\"℧\",\"micro\":\"µ\",\"midast\":\"*\",\"midcir\":\"⫰\",\"mid\":\"∣\",\"middot\":\"·\",\"minusb\":\"⊟\",\"minus\":\"−\",\"minusd\":\"∸\",\"minusdu\":\"⨪\",\"MinusPlus\":\"∓\",\"mlcp\":\"⫛\",\"mldr\":\"…\",\"mnplus\":\"∓\",\"models\":\"⊧\",\"Mopf\":\"𝕄\",\"mopf\":\"𝕞\",\"mp\":\"∓\",\"mscr\":\"𝓂\",\"Mscr\":\"ℳ\",\"mstpos\":\"∾\",\"Mu\":\"Μ\",\"mu\":\"μ\",\"multimap\":\"⊸\",\"mumap\":\"⊸\",\"nabla\":\"∇\",\"Nacute\":\"Ń\",\"nacute\":\"ń\",\"nang\":\"∠⃒\",\"nap\":\"≉\",\"napE\":\"⩰̸\",\"napid\":\"≋̸\",\"napos\":\"ʼn\",\"napprox\":\"≉\",\"natural\":\"♮\",\"naturals\":\"ℕ\",\"natur\":\"♮\",\"nbsp\":\" \",\"nbump\":\"≎̸\",\"nbumpe\":\"≏̸\",\"ncap\":\"⩃\",\"Ncaron\":\"Ň\",\"ncaron\":\"ň\",\"Ncedil\":\"Ņ\",\"ncedil\":\"ņ\",\"ncong\":\"≇\",\"ncongdot\":\"⩭̸\",\"ncup\":\"⩂\",\"Ncy\":\"Н\",\"ncy\":\"н\",\"ndash\":\"–\",\"nearhk\":\"⤤\",\"nearr\":\"↗\",\"neArr\":\"⇗\",\"nearrow\":\"↗\",\"ne\":\"≠\",\"nedot\":\"≐̸\",\"NegativeMediumSpace\":\"​\",\"NegativeThickSpace\":\"​\",\"NegativeThinSpace\":\"​\",\"NegativeVeryThinSpace\":\"​\",\"nequiv\":\"≢\",\"nesear\":\"⤨\",\"nesim\":\"≂̸\",\"NestedGreaterGreater\":\"≫\",\"NestedLessLess\":\"≪\",\"NewLine\":\"\\n\",\"nexist\":\"∄\",\"nexists\":\"∄\",\"Nfr\":\"𝔑\",\"nfr\":\"𝔫\",\"ngE\":\"≧̸\",\"nge\":\"≱\",\"ngeq\":\"≱\",\"ngeqq\":\"≧̸\",\"ngeqslant\":\"⩾̸\",\"nges\":\"⩾̸\",\"nGg\":\"⋙̸\",\"ngsim\":\"≵\",\"nGt\":\"≫⃒\",\"ngt\":\"≯\",\"ngtr\":\"≯\",\"nGtv\":\"≫̸\",\"nharr\":\"↮\",\"nhArr\":\"⇎\",\"nhpar\":\"⫲\",\"ni\":\"∋\",\"nis\":\"⋼\",\"nisd\":\"⋺\",\"niv\":\"∋\",\"NJcy\":\"Њ\",\"njcy\":\"њ\",\"nlarr\":\"↚\",\"nlArr\":\"⇍\",\"nldr\":\"‥\",\"nlE\":\"≦̸\",\"nle\":\"≰\",\"nleftarrow\":\"↚\",\"nLeftarrow\":\"⇍\",\"nleftrightarrow\":\"↮\",\"nLeftrightarrow\":\"⇎\",\"nleq\":\"≰\",\"nleqq\":\"≦̸\",\"nleqslant\":\"⩽̸\",\"nles\":\"⩽̸\",\"nless\":\"≮\",\"nLl\":\"⋘̸\",\"nlsim\":\"≴\",\"nLt\":\"≪⃒\",\"nlt\":\"≮\",\"nltri\":\"⋪\",\"nltrie\":\"⋬\",\"nLtv\":\"≪̸\",\"nmid\":\"∤\",\"NoBreak\":\"⁠\",\"NonBreakingSpace\":\" \",\"nopf\":\"𝕟\",\"Nopf\":\"ℕ\",\"Not\":\"⫬\",\"not\":\"¬\",\"NotCongruent\":\"≢\",\"NotCupCap\":\"≭\",\"NotDoubleVerticalBar\":\"∦\",\"NotElement\":\"∉\",\"NotEqual\":\"≠\",\"NotEqualTilde\":\"≂̸\",\"NotExists\":\"∄\",\"NotGreater\":\"≯\",\"NotGreaterEqual\":\"≱\",\"NotGreaterFullEqual\":\"≧̸\",\"NotGreaterGreater\":\"≫̸\",\"NotGreaterLess\":\"≹\",\"NotGreaterSlantEqual\":\"⩾̸\",\"NotGreaterTilde\":\"≵\",\"NotHumpDownHump\":\"≎̸\",\"NotHumpEqual\":\"≏̸\",\"notin\":\"∉\",\"notindot\":\"⋵̸\",\"notinE\":\"⋹̸\",\"notinva\":\"∉\",\"notinvb\":\"⋷\",\"notinvc\":\"⋶\",\"NotLeftTriangleBar\":\"⧏̸\",\"NotLeftTriangle\":\"⋪\",\"NotLeftTriangleEqual\":\"⋬\",\"NotLess\":\"≮\",\"NotLessEqual\":\"≰\",\"NotLessGreater\":\"≸\",\"NotLessLess\":\"≪̸\",\"NotLessSlantEqual\":\"⩽̸\",\"NotLessTilde\":\"≴\",\"NotNestedGreaterGreater\":\"⪢̸\",\"NotNestedLessLess\":\"⪡̸\",\"notni\":\"∌\",\"notniva\":\"∌\",\"notnivb\":\"⋾\",\"notnivc\":\"⋽\",\"NotPrecedes\":\"⊀\",\"NotPrecedesEqual\":\"⪯̸\",\"NotPrecedesSlantEqual\":\"⋠\",\"NotReverseElement\":\"∌\",\"NotRightTriangleBar\":\"⧐̸\",\"NotRightTriangle\":\"⋫\",\"NotRightTriangleEqual\":\"⋭\",\"NotSquareSubset\":\"⊏̸\",\"NotSquareSubsetEqual\":\"⋢\",\"NotSquareSuperset\":\"⊐̸\",\"NotSquareSupersetEqual\":\"⋣\",\"NotSubset\":\"⊂⃒\",\"NotSubsetEqual\":\"⊈\",\"NotSucceeds\":\"⊁\",\"NotSucceedsEqual\":\"⪰̸\",\"NotSucceedsSlantEqual\":\"⋡\",\"NotSucceedsTilde\":\"≿̸\",\"NotSuperset\":\"⊃⃒\",\"NotSupersetEqual\":\"⊉\",\"NotTilde\":\"≁\",\"NotTildeEqual\":\"≄\",\"NotTildeFullEqual\":\"≇\",\"NotTildeTilde\":\"≉\",\"NotVerticalBar\":\"∤\",\"nparallel\":\"∦\",\"npar\":\"∦\",\"nparsl\":\"⫽⃥\",\"npart\":\"∂̸\",\"npolint\":\"⨔\",\"npr\":\"⊀\",\"nprcue\":\"⋠\",\"nprec\":\"⊀\",\"npreceq\":\"⪯̸\",\"npre\":\"⪯̸\",\"nrarrc\":\"⤳̸\",\"nrarr\":\"↛\",\"nrArr\":\"⇏\",\"nrarrw\":\"↝̸\",\"nrightarrow\":\"↛\",\"nRightarrow\":\"⇏\",\"nrtri\":\"⋫\",\"nrtrie\":\"⋭\",\"nsc\":\"⊁\",\"nsccue\":\"⋡\",\"nsce\":\"⪰̸\",\"Nscr\":\"𝒩\",\"nscr\":\"𝓃\",\"nshortmid\":\"∤\",\"nshortparallel\":\"∦\",\"nsim\":\"≁\",\"nsime\":\"≄\",\"nsimeq\":\"≄\",\"nsmid\":\"∤\",\"nspar\":\"∦\",\"nsqsube\":\"⋢\",\"nsqsupe\":\"⋣\",\"nsub\":\"⊄\",\"nsubE\":\"⫅̸\",\"nsube\":\"⊈\",\"nsubset\":\"⊂⃒\",\"nsubseteq\":\"⊈\",\"nsubseteqq\":\"⫅̸\",\"nsucc\":\"⊁\",\"nsucceq\":\"⪰̸\",\"nsup\":\"⊅\",\"nsupE\":\"⫆̸\",\"nsupe\":\"⊉\",\"nsupset\":\"⊃⃒\",\"nsupseteq\":\"⊉\",\"nsupseteqq\":\"⫆̸\",\"ntgl\":\"≹\",\"Ntilde\":\"Ñ\",\"ntilde\":\"ñ\",\"ntlg\":\"≸\",\"ntriangleleft\":\"⋪\",\"ntrianglelefteq\":\"⋬\",\"ntriangleright\":\"⋫\",\"ntrianglerighteq\":\"⋭\",\"Nu\":\"Ν\",\"nu\":\"ν\",\"num\":\"#\",\"numero\":\"№\",\"numsp\":\" \",\"nvap\":\"≍⃒\",\"nvdash\":\"⊬\",\"nvDash\":\"⊭\",\"nVdash\":\"⊮\",\"nVDash\":\"⊯\",\"nvge\":\"≥⃒\",\"nvgt\":\">⃒\",\"nvHarr\":\"⤄\",\"nvinfin\":\"⧞\",\"nvlArr\":\"⤂\",\"nvle\":\"≤⃒\",\"nvlt\":\"<⃒\",\"nvltrie\":\"⊴⃒\",\"nvrArr\":\"⤃\",\"nvrtrie\":\"⊵⃒\",\"nvsim\":\"∼⃒\",\"nwarhk\":\"⤣\",\"nwarr\":\"↖\",\"nwArr\":\"⇖\",\"nwarrow\":\"↖\",\"nwnear\":\"⤧\",\"Oacute\":\"Ó\",\"oacute\":\"ó\",\"oast\":\"⊛\",\"Ocirc\":\"Ô\",\"ocirc\":\"ô\",\"ocir\":\"⊚\",\"Ocy\":\"О\",\"ocy\":\"о\",\"odash\":\"⊝\",\"Odblac\":\"Ő\",\"odblac\":\"ő\",\"odiv\":\"⨸\",\"odot\":\"⊙\",\"odsold\":\"⦼\",\"OElig\":\"Œ\",\"oelig\":\"œ\",\"ofcir\":\"⦿\",\"Ofr\":\"𝔒\",\"ofr\":\"𝔬\",\"ogon\":\"˛\",\"Ograve\":\"Ò\",\"ograve\":\"ò\",\"ogt\":\"⧁\",\"ohbar\":\"⦵\",\"ohm\":\"Ω\",\"oint\":\"∮\",\"olarr\":\"↺\",\"olcir\":\"⦾\",\"olcross\":\"⦻\",\"oline\":\"‾\",\"olt\":\"⧀\",\"Omacr\":\"Ō\",\"omacr\":\"ō\",\"Omega\":\"Ω\",\"omega\":\"ω\",\"Omicron\":\"Ο\",\"omicron\":\"ο\",\"omid\":\"⦶\",\"ominus\":\"⊖\",\"Oopf\":\"𝕆\",\"oopf\":\"𝕠\",\"opar\":\"⦷\",\"OpenCurlyDoubleQuote\":\"“\",\"OpenCurlyQuote\":\"‘\",\"operp\":\"⦹\",\"oplus\":\"⊕\",\"orarr\":\"↻\",\"Or\":\"⩔\",\"or\":\"∨\",\"ord\":\"⩝\",\"order\":\"ℴ\",\"orderof\":\"ℴ\",\"ordf\":\"ª\",\"ordm\":\"º\",\"origof\":\"⊶\",\"oror\":\"⩖\",\"orslope\":\"⩗\",\"orv\":\"⩛\",\"oS\":\"Ⓢ\",\"Oscr\":\"𝒪\",\"oscr\":\"ℴ\",\"Oslash\":\"Ø\",\"oslash\":\"ø\",\"osol\":\"⊘\",\"Otilde\":\"Õ\",\"otilde\":\"õ\",\"otimesas\":\"⨶\",\"Otimes\":\"⨷\",\"otimes\":\"⊗\",\"Ouml\":\"Ö\",\"ouml\":\"ö\",\"ovbar\":\"⌽\",\"OverBar\":\"‾\",\"OverBrace\":\"⏞\",\"OverBracket\":\"⎴\",\"OverParenthesis\":\"⏜\",\"para\":\"¶\",\"parallel\":\"∥\",\"par\":\"∥\",\"parsim\":\"⫳\",\"parsl\":\"⫽\",\"part\":\"∂\",\"PartialD\":\"∂\",\"Pcy\":\"П\",\"pcy\":\"п\",\"percnt\":\"%\",\"period\":\".\",\"permil\":\"‰\",\"perp\":\"⊥\",\"pertenk\":\"‱\",\"Pfr\":\"𝔓\",\"pfr\":\"𝔭\",\"Phi\":\"Φ\",\"phi\":\"φ\",\"phiv\":\"ϕ\",\"phmmat\":\"ℳ\",\"phone\":\"☎\",\"Pi\":\"Π\",\"pi\":\"π\",\"pitchfork\":\"⋔\",\"piv\":\"ϖ\",\"planck\":\"ℏ\",\"planckh\":\"ℎ\",\"plankv\":\"ℏ\",\"plusacir\":\"⨣\",\"plusb\":\"⊞\",\"pluscir\":\"⨢\",\"plus\":\"+\",\"plusdo\":\"∔\",\"plusdu\":\"⨥\",\"pluse\":\"⩲\",\"PlusMinus\":\"±\",\"plusmn\":\"±\",\"plussim\":\"⨦\",\"plustwo\":\"⨧\",\"pm\":\"±\",\"Poincareplane\":\"ℌ\",\"pointint\":\"⨕\",\"popf\":\"𝕡\",\"Popf\":\"ℙ\",\"pound\":\"£\",\"prap\":\"⪷\",\"Pr\":\"⪻\",\"pr\":\"≺\",\"prcue\":\"≼\",\"precapprox\":\"⪷\",\"prec\":\"≺\",\"preccurlyeq\":\"≼\",\"Precedes\":\"≺\",\"PrecedesEqual\":\"⪯\",\"PrecedesSlantEqual\":\"≼\",\"PrecedesTilde\":\"≾\",\"preceq\":\"⪯\",\"precnapprox\":\"⪹\",\"precneqq\":\"⪵\",\"precnsim\":\"⋨\",\"pre\":\"⪯\",\"prE\":\"⪳\",\"precsim\":\"≾\",\"prime\":\"′\",\"Prime\":\"″\",\"primes\":\"ℙ\",\"prnap\":\"⪹\",\"prnE\":\"⪵\",\"prnsim\":\"⋨\",\"prod\":\"∏\",\"Product\":\"∏\",\"profalar\":\"⌮\",\"profline\":\"⌒\",\"profsurf\":\"⌓\",\"prop\":\"∝\",\"Proportional\":\"∝\",\"Proportion\":\"∷\",\"propto\":\"∝\",\"prsim\":\"≾\",\"prurel\":\"⊰\",\"Pscr\":\"𝒫\",\"pscr\":\"𝓅\",\"Psi\":\"Ψ\",\"psi\":\"ψ\",\"puncsp\":\" \",\"Qfr\":\"𝔔\",\"qfr\":\"𝔮\",\"qint\":\"⨌\",\"qopf\":\"𝕢\",\"Qopf\":\"ℚ\",\"qprime\":\"⁗\",\"Qscr\":\"𝒬\",\"qscr\":\"𝓆\",\"quaternions\":\"ℍ\",\"quatint\":\"⨖\",\"quest\":\"?\",\"questeq\":\"≟\",\"quot\":\"\\\"\",\"QUOT\":\"\\\"\",\"rAarr\":\"⇛\",\"race\":\"∽̱\",\"Racute\":\"Ŕ\",\"racute\":\"ŕ\",\"radic\":\"√\",\"raemptyv\":\"⦳\",\"rang\":\"⟩\",\"Rang\":\"⟫\",\"rangd\":\"⦒\",\"range\":\"⦥\",\"rangle\":\"⟩\",\"raquo\":\"»\",\"rarrap\":\"⥵\",\"rarrb\":\"⇥\",\"rarrbfs\":\"⤠\",\"rarrc\":\"⤳\",\"rarr\":\"→\",\"Rarr\":\"↠\",\"rArr\":\"⇒\",\"rarrfs\":\"⤞\",\"rarrhk\":\"↪\",\"rarrlp\":\"↬\",\"rarrpl\":\"⥅\",\"rarrsim\":\"⥴\",\"Rarrtl\":\"⤖\",\"rarrtl\":\"↣\",\"rarrw\":\"↝\",\"ratail\":\"⤚\",\"rAtail\":\"⤜\",\"ratio\":\"∶\",\"rationals\":\"ℚ\",\"rbarr\":\"⤍\",\"rBarr\":\"⤏\",\"RBarr\":\"⤐\",\"rbbrk\":\"❳\",\"rbrace\":\"}\",\"rbrack\":\"]\",\"rbrke\":\"⦌\",\"rbrksld\":\"⦎\",\"rbrkslu\":\"⦐\",\"Rcaron\":\"Ř\",\"rcaron\":\"ř\",\"Rcedil\":\"Ŗ\",\"rcedil\":\"ŗ\",\"rceil\":\"⌉\",\"rcub\":\"}\",\"Rcy\":\"Р\",\"rcy\":\"р\",\"rdca\":\"⤷\",\"rdldhar\":\"⥩\",\"rdquo\":\"”\",\"rdquor\":\"”\",\"rdsh\":\"↳\",\"real\":\"ℜ\",\"realine\":\"ℛ\",\"realpart\":\"ℜ\",\"reals\":\"ℝ\",\"Re\":\"ℜ\",\"rect\":\"▭\",\"reg\":\"®\",\"REG\":\"®\",\"ReverseElement\":\"∋\",\"ReverseEquilibrium\":\"⇋\",\"ReverseUpEquilibrium\":\"⥯\",\"rfisht\":\"⥽\",\"rfloor\":\"⌋\",\"rfr\":\"𝔯\",\"Rfr\":\"ℜ\",\"rHar\":\"⥤\",\"rhard\":\"⇁\",\"rharu\":\"⇀\",\"rharul\":\"⥬\",\"Rho\":\"Ρ\",\"rho\":\"ρ\",\"rhov\":\"ϱ\",\"RightAngleBracket\":\"⟩\",\"RightArrowBar\":\"⇥\",\"rightarrow\":\"→\",\"RightArrow\":\"→\",\"Rightarrow\":\"⇒\",\"RightArrowLeftArrow\":\"⇄\",\"rightarrowtail\":\"↣\",\"RightCeiling\":\"⌉\",\"RightDoubleBracket\":\"⟧\",\"RightDownTeeVector\":\"⥝\",\"RightDownVectorBar\":\"⥕\",\"RightDownVector\":\"⇂\",\"RightFloor\":\"⌋\",\"rightharpoondown\":\"⇁\",\"rightharpoonup\":\"⇀\",\"rightleftarrows\":\"⇄\",\"rightleftharpoons\":\"⇌\",\"rightrightarrows\":\"⇉\",\"rightsquigarrow\":\"↝\",\"RightTeeArrow\":\"↦\",\"RightTee\":\"⊢\",\"RightTeeVector\":\"⥛\",\"rightthreetimes\":\"⋌\",\"RightTriangleBar\":\"⧐\",\"RightTriangle\":\"⊳\",\"RightTriangleEqual\":\"⊵\",\"RightUpDownVector\":\"⥏\",\"RightUpTeeVector\":\"⥜\",\"RightUpVectorBar\":\"⥔\",\"RightUpVector\":\"↾\",\"RightVectorBar\":\"⥓\",\"RightVector\":\"⇀\",\"ring\":\"˚\",\"risingdotseq\":\"≓\",\"rlarr\":\"⇄\",\"rlhar\":\"⇌\",\"rlm\":\"‏\",\"rmoustache\":\"⎱\",\"rmoust\":\"⎱\",\"rnmid\":\"⫮\",\"roang\":\"⟭\",\"roarr\":\"⇾\",\"robrk\":\"⟧\",\"ropar\":\"⦆\",\"ropf\":\"𝕣\",\"Ropf\":\"ℝ\",\"roplus\":\"⨮\",\"rotimes\":\"⨵\",\"RoundImplies\":\"⥰\",\"rpar\":\")\",\"rpargt\":\"⦔\",\"rppolint\":\"⨒\",\"rrarr\":\"⇉\",\"Rrightarrow\":\"⇛\",\"rsaquo\":\"›\",\"rscr\":\"𝓇\",\"Rscr\":\"ℛ\",\"rsh\":\"↱\",\"Rsh\":\"↱\",\"rsqb\":\"]\",\"rsquo\":\"’\",\"rsquor\":\"’\",\"rthree\":\"⋌\",\"rtimes\":\"⋊\",\"rtri\":\"▹\",\"rtrie\":\"⊵\",\"rtrif\":\"▸\",\"rtriltri\":\"⧎\",\"RuleDelayed\":\"⧴\",\"ruluhar\":\"⥨\",\"rx\":\"℞\",\"Sacute\":\"Ś\",\"sacute\":\"ś\",\"sbquo\":\"‚\",\"scap\":\"⪸\",\"Scaron\":\"Š\",\"scaron\":\"š\",\"Sc\":\"⪼\",\"sc\":\"≻\",\"sccue\":\"≽\",\"sce\":\"⪰\",\"scE\":\"⪴\",\"Scedil\":\"Ş\",\"scedil\":\"ş\",\"Scirc\":\"Ŝ\",\"scirc\":\"ŝ\",\"scnap\":\"⪺\",\"scnE\":\"⪶\",\"scnsim\":\"⋩\",\"scpolint\":\"⨓\",\"scsim\":\"≿\",\"Scy\":\"С\",\"scy\":\"с\",\"sdotb\":\"⊡\",\"sdot\":\"⋅\",\"sdote\":\"⩦\",\"searhk\":\"⤥\",\"searr\":\"↘\",\"seArr\":\"⇘\",\"searrow\":\"↘\",\"sect\":\"§\",\"semi\":\";\",\"seswar\":\"⤩\",\"setminus\":\"∖\",\"setmn\":\"∖\",\"sext\":\"✶\",\"Sfr\":\"𝔖\",\"sfr\":\"𝔰\",\"sfrown\":\"⌢\",\"sharp\":\"♯\",\"SHCHcy\":\"Щ\",\"shchcy\":\"щ\",\"SHcy\":\"Ш\",\"shcy\":\"ш\",\"ShortDownArrow\":\"↓\",\"ShortLeftArrow\":\"←\",\"shortmid\":\"∣\",\"shortparallel\":\"∥\",\"ShortRightArrow\":\"→\",\"ShortUpArrow\":\"↑\",\"shy\":\"­\",\"Sigma\":\"Σ\",\"sigma\":\"σ\",\"sigmaf\":\"ς\",\"sigmav\":\"ς\",\"sim\":\"∼\",\"simdot\":\"⩪\",\"sime\":\"≃\",\"simeq\":\"≃\",\"simg\":\"⪞\",\"simgE\":\"⪠\",\"siml\":\"⪝\",\"simlE\":\"⪟\",\"simne\":\"≆\",\"simplus\":\"⨤\",\"simrarr\":\"⥲\",\"slarr\":\"←\",\"SmallCircle\":\"∘\",\"smallsetminus\":\"∖\",\"smashp\":\"⨳\",\"smeparsl\":\"⧤\",\"smid\":\"∣\",\"smile\":\"⌣\",\"smt\":\"⪪\",\"smte\":\"⪬\",\"smtes\":\"⪬︀\",\"SOFTcy\":\"Ь\",\"softcy\":\"ь\",\"solbar\":\"⌿\",\"solb\":\"⧄\",\"sol\":\"/\",\"Sopf\":\"𝕊\",\"sopf\":\"𝕤\",\"spades\":\"♠\",\"spadesuit\":\"♠\",\"spar\":\"∥\",\"sqcap\":\"⊓\",\"sqcaps\":\"⊓︀\",\"sqcup\":\"⊔\",\"sqcups\":\"⊔︀\",\"Sqrt\":\"√\",\"sqsub\":\"⊏\",\"sqsube\":\"⊑\",\"sqsubset\":\"⊏\",\"sqsubseteq\":\"⊑\",\"sqsup\":\"⊐\",\"sqsupe\":\"⊒\",\"sqsupset\":\"⊐\",\"sqsupseteq\":\"⊒\",\"square\":\"□\",\"Square\":\"□\",\"SquareIntersection\":\"⊓\",\"SquareSubset\":\"⊏\",\"SquareSubsetEqual\":\"⊑\",\"SquareSuperset\":\"⊐\",\"SquareSupersetEqual\":\"⊒\",\"SquareUnion\":\"⊔\",\"squarf\":\"▪\",\"squ\":\"□\",\"squf\":\"▪\",\"srarr\":\"→\",\"Sscr\":\"𝒮\",\"sscr\":\"𝓈\",\"ssetmn\":\"∖\",\"ssmile\":\"⌣\",\"sstarf\":\"⋆\",\"Star\":\"⋆\",\"star\":\"☆\",\"starf\":\"★\",\"straightepsilon\":\"ϵ\",\"straightphi\":\"ϕ\",\"strns\":\"¯\",\"sub\":\"⊂\",\"Sub\":\"⋐\",\"subdot\":\"⪽\",\"subE\":\"⫅\",\"sube\":\"⊆\",\"subedot\":\"⫃\",\"submult\":\"⫁\",\"subnE\":\"⫋\",\"subne\":\"⊊\",\"subplus\":\"⪿\",\"subrarr\":\"⥹\",\"subset\":\"⊂\",\"Subset\":\"⋐\",\"subseteq\":\"⊆\",\"subseteqq\":\"⫅\",\"SubsetEqual\":\"⊆\",\"subsetneq\":\"⊊\",\"subsetneqq\":\"⫋\",\"subsim\":\"⫇\",\"subsub\":\"⫕\",\"subsup\":\"⫓\",\"succapprox\":\"⪸\",\"succ\":\"≻\",\"succcurlyeq\":\"≽\",\"Succeeds\":\"≻\",\"SucceedsEqual\":\"⪰\",\"SucceedsSlantEqual\":\"≽\",\"SucceedsTilde\":\"≿\",\"succeq\":\"⪰\",\"succnapprox\":\"⪺\",\"succneqq\":\"⪶\",\"succnsim\":\"⋩\",\"succsim\":\"≿\",\"SuchThat\":\"∋\",\"sum\":\"∑\",\"Sum\":\"∑\",\"sung\":\"♪\",\"sup1\":\"¹\",\"sup2\":\"²\",\"sup3\":\"³\",\"sup\":\"⊃\",\"Sup\":\"⋑\",\"supdot\":\"⪾\",\"supdsub\":\"⫘\",\"supE\":\"⫆\",\"supe\":\"⊇\",\"supedot\":\"⫄\",\"Superset\":\"⊃\",\"SupersetEqual\":\"⊇\",\"suphsol\":\"⟉\",\"suphsub\":\"⫗\",\"suplarr\":\"⥻\",\"supmult\":\"⫂\",\"supnE\":\"⫌\",\"supne\":\"⊋\",\"supplus\":\"⫀\",\"supset\":\"⊃\",\"Supset\":\"⋑\",\"supseteq\":\"⊇\",\"supseteqq\":\"⫆\",\"supsetneq\":\"⊋\",\"supsetneqq\":\"⫌\",\"supsim\":\"⫈\",\"supsub\":\"⫔\",\"supsup\":\"⫖\",\"swarhk\":\"⤦\",\"swarr\":\"↙\",\"swArr\":\"⇙\",\"swarrow\":\"↙\",\"swnwar\":\"⤪\",\"szlig\":\"ß\",\"Tab\":\"\\t\",\"target\":\"⌖\",\"Tau\":\"Τ\",\"tau\":\"τ\",\"tbrk\":\"⎴\",\"Tcaron\":\"Ť\",\"tcaron\":\"ť\",\"Tcedil\":\"Ţ\",\"tcedil\":\"ţ\",\"Tcy\":\"Т\",\"tcy\":\"т\",\"tdot\":\"⃛\",\"telrec\":\"⌕\",\"Tfr\":\"𝔗\",\"tfr\":\"𝔱\",\"there4\":\"∴\",\"therefore\":\"∴\",\"Therefore\":\"∴\",\"Theta\":\"Θ\",\"theta\":\"θ\",\"thetasym\":\"ϑ\",\"thetav\":\"ϑ\",\"thickapprox\":\"≈\",\"thicksim\":\"∼\",\"ThickSpace\":\"  \",\"ThinSpace\":\" \",\"thinsp\":\" \",\"thkap\":\"≈\",\"thksim\":\"∼\",\"THORN\":\"Þ\",\"thorn\":\"þ\",\"tilde\":\"˜\",\"Tilde\":\"∼\",\"TildeEqual\":\"≃\",\"TildeFullEqual\":\"≅\",\"TildeTilde\":\"≈\",\"timesbar\":\"⨱\",\"timesb\":\"⊠\",\"times\":\"×\",\"timesd\":\"⨰\",\"tint\":\"∭\",\"toea\":\"⤨\",\"topbot\":\"⌶\",\"topcir\":\"⫱\",\"top\":\"⊤\",\"Topf\":\"𝕋\",\"topf\":\"𝕥\",\"topfork\":\"⫚\",\"tosa\":\"⤩\",\"tprime\":\"‴\",\"trade\":\"™\",\"TRADE\":\"™\",\"triangle\":\"▵\",\"triangledown\":\"▿\",\"triangleleft\":\"◃\",\"trianglelefteq\":\"⊴\",\"triangleq\":\"≜\",\"triangleright\":\"▹\",\"trianglerighteq\":\"⊵\",\"tridot\":\"◬\",\"trie\":\"≜\",\"triminus\":\"⨺\",\"TripleDot\":\"⃛\",\"triplus\":\"⨹\",\"trisb\":\"⧍\",\"tritime\":\"⨻\",\"trpezium\":\"⏢\",\"Tscr\":\"𝒯\",\"tscr\":\"𝓉\",\"TScy\":\"Ц\",\"tscy\":\"ц\",\"TSHcy\":\"Ћ\",\"tshcy\":\"ћ\",\"Tstrok\":\"Ŧ\",\"tstrok\":\"ŧ\",\"twixt\":\"≬\",\"twoheadleftarrow\":\"↞\",\"twoheadrightarrow\":\"↠\",\"Uacute\":\"Ú\",\"uacute\":\"ú\",\"uarr\":\"↑\",\"Uarr\":\"↟\",\"uArr\":\"⇑\",\"Uarrocir\":\"⥉\",\"Ubrcy\":\"Ў\",\"ubrcy\":\"ў\",\"Ubreve\":\"Ŭ\",\"ubreve\":\"ŭ\",\"Ucirc\":\"Û\",\"ucirc\":\"û\",\"Ucy\":\"У\",\"ucy\":\"у\",\"udarr\":\"⇅\",\"Udblac\":\"Ű\",\"udblac\":\"ű\",\"udhar\":\"⥮\",\"ufisht\":\"⥾\",\"Ufr\":\"𝔘\",\"ufr\":\"𝔲\",\"Ugrave\":\"Ù\",\"ugrave\":\"ù\",\"uHar\":\"⥣\",\"uharl\":\"↿\",\"uharr\":\"↾\",\"uhblk\":\"▀\",\"ulcorn\":\"⌜\",\"ulcorner\":\"⌜\",\"ulcrop\":\"⌏\",\"ultri\":\"◸\",\"Umacr\":\"Ū\",\"umacr\":\"ū\",\"uml\":\"¨\",\"UnderBar\":\"_\",\"UnderBrace\":\"⏟\",\"UnderBracket\":\"⎵\",\"UnderParenthesis\":\"⏝\",\"Union\":\"⋃\",\"UnionPlus\":\"⊎\",\"Uogon\":\"Ų\",\"uogon\":\"ų\",\"Uopf\":\"𝕌\",\"uopf\":\"𝕦\",\"UpArrowBar\":\"⤒\",\"uparrow\":\"↑\",\"UpArrow\":\"↑\",\"Uparrow\":\"⇑\",\"UpArrowDownArrow\":\"⇅\",\"updownarrow\":\"↕\",\"UpDownArrow\":\"↕\",\"Updownarrow\":\"⇕\",\"UpEquilibrium\":\"⥮\",\"upharpoonleft\":\"↿\",\"upharpoonright\":\"↾\",\"uplus\":\"⊎\",\"UpperLeftArrow\":\"↖\",\"UpperRightArrow\":\"↗\",\"upsi\":\"υ\",\"Upsi\":\"ϒ\",\"upsih\":\"ϒ\",\"Upsilon\":\"Υ\",\"upsilon\":\"υ\",\"UpTeeArrow\":\"↥\",\"UpTee\":\"⊥\",\"upuparrows\":\"⇈\",\"urcorn\":\"⌝\",\"urcorner\":\"⌝\",\"urcrop\":\"⌎\",\"Uring\":\"Ů\",\"uring\":\"ů\",\"urtri\":\"◹\",\"Uscr\":\"𝒰\",\"uscr\":\"𝓊\",\"utdot\":\"⋰\",\"Utilde\":\"Ũ\",\"utilde\":\"ũ\",\"utri\":\"▵\",\"utrif\":\"▴\",\"uuarr\":\"⇈\",\"Uuml\":\"Ü\",\"uuml\":\"ü\",\"uwangle\":\"⦧\",\"vangrt\":\"⦜\",\"varepsilon\":\"ϵ\",\"varkappa\":\"ϰ\",\"varnothing\":\"∅\",\"varphi\":\"ϕ\",\"varpi\":\"ϖ\",\"varpropto\":\"∝\",\"varr\":\"↕\",\"vArr\":\"⇕\",\"varrho\":\"ϱ\",\"varsigma\":\"ς\",\"varsubsetneq\":\"⊊︀\",\"varsubsetneqq\":\"⫋︀\",\"varsupsetneq\":\"⊋︀\",\"varsupsetneqq\":\"⫌︀\",\"vartheta\":\"ϑ\",\"vartriangleleft\":\"⊲\",\"vartriangleright\":\"⊳\",\"vBar\":\"⫨\",\"Vbar\":\"⫫\",\"vBarv\":\"⫩\",\"Vcy\":\"В\",\"vcy\":\"в\",\"vdash\":\"⊢\",\"vDash\":\"⊨\",\"Vdash\":\"⊩\",\"VDash\":\"⊫\",\"Vdashl\":\"⫦\",\"veebar\":\"⊻\",\"vee\":\"∨\",\"Vee\":\"⋁\",\"veeeq\":\"≚\",\"vellip\":\"⋮\",\"verbar\":\"|\",\"Verbar\":\"‖\",\"vert\":\"|\",\"Vert\":\"‖\",\"VerticalBar\":\"∣\",\"VerticalLine\":\"|\",\"VerticalSeparator\":\"❘\",\"VerticalTilde\":\"≀\",\"VeryThinSpace\":\" \",\"Vfr\":\"𝔙\",\"vfr\":\"𝔳\",\"vltri\":\"⊲\",\"vnsub\":\"⊂⃒\",\"vnsup\":\"⊃⃒\",\"Vopf\":\"𝕍\",\"vopf\":\"𝕧\",\"vprop\":\"∝\",\"vrtri\":\"⊳\",\"Vscr\":\"𝒱\",\"vscr\":\"𝓋\",\"vsubnE\":\"⫋︀\",\"vsubne\":\"⊊︀\",\"vsupnE\":\"⫌︀\",\"vsupne\":\"⊋︀\",\"Vvdash\":\"⊪\",\"vzigzag\":\"⦚\",\"Wcirc\":\"Ŵ\",\"wcirc\":\"ŵ\",\"wedbar\":\"⩟\",\"wedge\":\"∧\",\"Wedge\":\"⋀\",\"wedgeq\":\"≙\",\"weierp\":\"℘\",\"Wfr\":\"𝔚\",\"wfr\":\"𝔴\",\"Wopf\":\"𝕎\",\"wopf\":\"𝕨\",\"wp\":\"℘\",\"wr\":\"≀\",\"wreath\":\"≀\",\"Wscr\":\"𝒲\",\"wscr\":\"𝓌\",\"xcap\":\"⋂\",\"xcirc\":\"◯\",\"xcup\":\"⋃\",\"xdtri\":\"▽\",\"Xfr\":\"𝔛\",\"xfr\":\"𝔵\",\"xharr\":\"⟷\",\"xhArr\":\"⟺\",\"Xi\":\"Ξ\",\"xi\":\"ξ\",\"xlarr\":\"⟵\",\"xlArr\":\"⟸\",\"xmap\":\"⟼\",\"xnis\":\"⋻\",\"xodot\":\"⨀\",\"Xopf\":\"𝕏\",\"xopf\":\"𝕩\",\"xoplus\":\"⨁\",\"xotime\":\"⨂\",\"xrarr\":\"⟶\",\"xrArr\":\"⟹\",\"Xscr\":\"𝒳\",\"xscr\":\"𝓍\",\"xsqcup\":\"⨆\",\"xuplus\":\"⨄\",\"xutri\":\"△\",\"xvee\":\"⋁\",\"xwedge\":\"⋀\",\"Yacute\":\"Ý\",\"yacute\":\"ý\",\"YAcy\":\"Я\",\"yacy\":\"я\",\"Ycirc\":\"Ŷ\",\"ycirc\":\"ŷ\",\"Ycy\":\"Ы\",\"ycy\":\"ы\",\"yen\":\"¥\",\"Yfr\":\"𝔜\",\"yfr\":\"𝔶\",\"YIcy\":\"Ї\",\"yicy\":\"ї\",\"Yopf\":\"𝕐\",\"yopf\":\"𝕪\",\"Yscr\":\"𝒴\",\"yscr\":\"𝓎\",\"YUcy\":\"Ю\",\"yucy\":\"ю\",\"yuml\":\"ÿ\",\"Yuml\":\"Ÿ\",\"Zacute\":\"Ź\",\"zacute\":\"ź\",\"Zcaron\":\"Ž\",\"zcaron\":\"ž\",\"Zcy\":\"З\",\"zcy\":\"з\",\"Zdot\":\"Ż\",\"zdot\":\"ż\",\"zeetrf\":\"ℨ\",\"ZeroWidthSpace\":\"​\",\"Zeta\":\"Ζ\",\"zeta\":\"ζ\",\"zfr\":\"𝔷\",\"Zfr\":\"ℨ\",\"ZHcy\":\"Ж\",\"zhcy\":\"ж\",\"zigrarr\":\"⇝\",\"zopf\":\"𝕫\",\"Zopf\":\"ℤ\",\"Zscr\":\"𝒵\",\"zscr\":\"𝓏\",\"zwj\":\"‍\",\"zwnj\":\"‌\"}","module.exports = {\"Aacute\":\"Á\",\"aacute\":\"á\",\"Acirc\":\"Â\",\"acirc\":\"â\",\"acute\":\"´\",\"AElig\":\"Æ\",\"aelig\":\"æ\",\"Agrave\":\"À\",\"agrave\":\"à\",\"amp\":\"&\",\"AMP\":\"&\",\"Aring\":\"Å\",\"aring\":\"å\",\"Atilde\":\"Ã\",\"atilde\":\"ã\",\"Auml\":\"Ä\",\"auml\":\"ä\",\"brvbar\":\"¦\",\"Ccedil\":\"Ç\",\"ccedil\":\"ç\",\"cedil\":\"¸\",\"cent\":\"¢\",\"copy\":\"©\",\"COPY\":\"©\",\"curren\":\"¤\",\"deg\":\"°\",\"divide\":\"÷\",\"Eacute\":\"É\",\"eacute\":\"é\",\"Ecirc\":\"Ê\",\"ecirc\":\"ê\",\"Egrave\":\"È\",\"egrave\":\"è\",\"ETH\":\"Ð\",\"eth\":\"ð\",\"Euml\":\"Ë\",\"euml\":\"ë\",\"frac12\":\"½\",\"frac14\":\"¼\",\"frac34\":\"¾\",\"gt\":\">\",\"GT\":\">\",\"Iacute\":\"Í\",\"iacute\":\"í\",\"Icirc\":\"Î\",\"icirc\":\"î\",\"iexcl\":\"¡\",\"Igrave\":\"Ì\",\"igrave\":\"ì\",\"iquest\":\"¿\",\"Iuml\":\"Ï\",\"iuml\":\"ï\",\"laquo\":\"«\",\"lt\":\"<\",\"LT\":\"<\",\"macr\":\"¯\",\"micro\":\"µ\",\"middot\":\"·\",\"nbsp\":\" \",\"not\":\"¬\",\"Ntilde\":\"Ñ\",\"ntilde\":\"ñ\",\"Oacute\":\"Ó\",\"oacute\":\"ó\",\"Ocirc\":\"Ô\",\"ocirc\":\"ô\",\"Ograve\":\"Ò\",\"ograve\":\"ò\",\"ordf\":\"ª\",\"ordm\":\"º\",\"Oslash\":\"Ø\",\"oslash\":\"ø\",\"Otilde\":\"Õ\",\"otilde\":\"õ\",\"Ouml\":\"Ö\",\"ouml\":\"ö\",\"para\":\"¶\",\"plusmn\":\"±\",\"pound\":\"£\",\"quot\":\"\\\"\",\"QUOT\":\"\\\"\",\"raquo\":\"»\",\"reg\":\"®\",\"REG\":\"®\",\"sect\":\"§\",\"shy\":\"­\",\"sup1\":\"¹\",\"sup2\":\"²\",\"sup3\":\"³\",\"szlig\":\"ß\",\"THORN\":\"Þ\",\"thorn\":\"þ\",\"times\":\"×\",\"Uacute\":\"Ú\",\"uacute\":\"ú\",\"Ucirc\":\"Û\",\"ucirc\":\"û\",\"Ugrave\":\"Ù\",\"ugrave\":\"ù\",\"uml\":\"¨\",\"Uuml\":\"Ü\",\"uuml\":\"ü\",\"Yacute\":\"Ý\",\"yacute\":\"ý\",\"yen\":\"¥\",\"yuml\":\"ÿ\"}","module.exports = {\"amp\":\"&\",\"apos\":\"'\",\"gt\":\">\",\"lt\":\"<\",\"quot\":\"\\\"\"}",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"'use strict';\n\nvar isMergeableObject = function isMergeableObject(value) {\n\treturn isNonNullObject(value)\n\t\t&& !isSpecial(value)\n};\n\nfunction isNonNullObject(value) {\n\treturn !!value && typeof value === 'object'\n}\n\nfunction isSpecial(value) {\n\tvar stringValue = Object.prototype.toString.call(value);\n\n\treturn stringValue === '[object RegExp]'\n\t\t|| stringValue === '[object Date]'\n\t\t|| isReactElement(value)\n}\n\n// see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25\nvar canUseSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for('react.element') : 0xeac7;\n\nfunction isReactElement(value) {\n\treturn value.$$typeof === REACT_ELEMENT_TYPE\n}\n\nfunction emptyTarget(val) {\n\treturn Array.isArray(val) ? [] : {}\n}\n\nfunction cloneUnlessOtherwiseSpecified(value, options) {\n\treturn (options.clone !== false && options.isMergeableObject(value))\n\t\t? deepmerge(emptyTarget(value), value, options)\n\t\t: value\n}\n\nfunction defaultArrayMerge(target, source, options) {\n\treturn target.concat(source).map(function(element) {\n\t\treturn cloneUnlessOtherwiseSpecified(element, options)\n\t})\n}\n\nfunction getMergeFunction(key, options) {\n\tif (!options.customMerge) {\n\t\treturn deepmerge\n\t}\n\tvar customMerge = options.customMerge(key);\n\treturn typeof customMerge === 'function' ? customMerge : deepmerge\n}\n\nfunction getEnumerableOwnPropertySymbols(target) {\n\treturn Object.getOwnPropertySymbols\n\t\t? Object.getOwnPropertySymbols(target).filter(function(symbol) {\n\t\t\treturn target.propertyIsEnumerable(symbol)\n\t\t})\n\t\t: []\n}\n\nfunction getKeys(target) {\n\treturn Object.keys(target).concat(getEnumerableOwnPropertySymbols(target))\n}\n\nfunction propertyIsOnObject(object, property) {\n\ttry {\n\t\treturn property in object\n\t} catch(_) {\n\t\treturn false\n\t}\n}\n\n// Protects from prototype poisoning and unexpected merging up the prototype chain.\nfunction propertyIsUnsafe(target, key) {\n\treturn propertyIsOnObject(target, key) // Properties are safe to merge if they don't exist in the target yet,\n\t\t&& !(Object.hasOwnProperty.call(target, key) // unsafe if they exist up the prototype chain,\n\t\t\t&& Object.propertyIsEnumerable.call(target, key)) // and also unsafe if they're nonenumerable.\n}\n\nfunction mergeObject(target, source, options) {\n\tvar destination = {};\n\tif (options.isMergeableObject(target)) {\n\t\tgetKeys(target).forEach(function(key) {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(target[key], options);\n\t\t});\n\t}\n\tgetKeys(source).forEach(function(key) {\n\t\tif (propertyIsUnsafe(target, key)) {\n\t\t\treturn\n\t\t}\n\n\t\tif (propertyIsOnObject(target, key) && options.isMergeableObject(source[key])) {\n\t\t\tdestination[key] = getMergeFunction(key, options)(target[key], source[key], options);\n\t\t} else {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(source[key], options);\n\t\t}\n\t});\n\treturn destination\n}\n\nfunction deepmerge(target, source, options) {\n\toptions = options || {};\n\toptions.arrayMerge = options.arrayMerge || defaultArrayMerge;\n\toptions.isMergeableObject = options.isMergeableObject || isMergeableObject;\n\t// cloneUnlessOtherwiseSpecified is added to `options` so that custom arrayMerge()\n\t// implementations can use it. The caller may not replace it.\n\toptions.cloneUnlessOtherwiseSpecified = cloneUnlessOtherwiseSpecified;\n\n\tvar sourceIsArray = Array.isArray(source);\n\tvar targetIsArray = Array.isArray(target);\n\tvar sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;\n\n\tif (!sourceAndTargetTypesMatch) {\n\t\treturn cloneUnlessOtherwiseSpecified(source, options)\n\t} else if (sourceIsArray) {\n\t\treturn options.arrayMerge(target, source, options)\n\t} else {\n\t\treturn mergeObject(target, source, options)\n\t}\n}\n\ndeepmerge.all = function deepmergeAll(array, options) {\n\tif (!Array.isArray(array)) {\n\t\tthrow new Error('first argument should be an array')\n\t}\n\n\treturn array.reduce(function(prev, next) {\n\t\treturn deepmerge(prev, next, options)\n\t}, {})\n};\n\nvar deepmerge_1 = deepmerge;\n\nmodule.exports = deepmerge_1;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.attributeNames = exports.elementNames = void 0;\nexports.elementNames = new Map([\n [\"altglyph\", \"altGlyph\"],\n [\"altglyphdef\", \"altGlyphDef\"],\n [\"altglyphitem\", \"altGlyphItem\"],\n [\"animatecolor\", \"animateColor\"],\n [\"animatemotion\", \"animateMotion\"],\n [\"animatetransform\", \"animateTransform\"],\n [\"clippath\", \"clipPath\"],\n [\"feblend\", \"feBlend\"],\n [\"fecolormatrix\", \"feColorMatrix\"],\n [\"fecomponenttransfer\", \"feComponentTransfer\"],\n [\"fecomposite\", \"feComposite\"],\n [\"feconvolvematrix\", \"feConvolveMatrix\"],\n [\"fediffuselighting\", \"feDiffuseLighting\"],\n [\"fedisplacementmap\", \"feDisplacementMap\"],\n [\"fedistantlight\", \"feDistantLight\"],\n [\"fedropshadow\", \"feDropShadow\"],\n [\"feflood\", \"feFlood\"],\n [\"fefunca\", \"feFuncA\"],\n [\"fefuncb\", \"feFuncB\"],\n [\"fefuncg\", \"feFuncG\"],\n [\"fefuncr\", \"feFuncR\"],\n [\"fegaussianblur\", \"feGaussianBlur\"],\n [\"feimage\", \"feImage\"],\n [\"femerge\", \"feMerge\"],\n [\"femergenode\", \"feMergeNode\"],\n [\"femorphology\", \"feMorphology\"],\n [\"feoffset\", \"feOffset\"],\n [\"fepointlight\", \"fePointLight\"],\n [\"fespecularlighting\", \"feSpecularLighting\"],\n [\"fespotlight\", \"feSpotLight\"],\n [\"fetile\", \"feTile\"],\n [\"feturbulence\", \"feTurbulence\"],\n [\"foreignobject\", \"foreignObject\"],\n [\"glyphref\", \"glyphRef\"],\n [\"lineargradient\", \"linearGradient\"],\n [\"radialgradient\", \"radialGradient\"],\n [\"textpath\", \"textPath\"],\n]);\nexports.attributeNames = new Map([\n [\"definitionurl\", \"definitionURL\"],\n [\"attributename\", \"attributeName\"],\n [\"attributetype\", \"attributeType\"],\n [\"basefrequency\", \"baseFrequency\"],\n [\"baseprofile\", \"baseProfile\"],\n [\"calcmode\", \"calcMode\"],\n [\"clippathunits\", \"clipPathUnits\"],\n [\"diffuseconstant\", \"diffuseConstant\"],\n [\"edgemode\", \"edgeMode\"],\n [\"filterunits\", \"filterUnits\"],\n [\"glyphref\", \"glyphRef\"],\n [\"gradienttransform\", \"gradientTransform\"],\n [\"gradientunits\", \"gradientUnits\"],\n [\"kernelmatrix\", \"kernelMatrix\"],\n [\"kernelunitlength\", \"kernelUnitLength\"],\n [\"keypoints\", \"keyPoints\"],\n [\"keysplines\", \"keySplines\"],\n [\"keytimes\", \"keyTimes\"],\n [\"lengthadjust\", \"lengthAdjust\"],\n [\"limitingconeangle\", \"limitingConeAngle\"],\n [\"markerheight\", \"markerHeight\"],\n [\"markerunits\", \"markerUnits\"],\n [\"markerwidth\", \"markerWidth\"],\n [\"maskcontentunits\", \"maskContentUnits\"],\n [\"maskunits\", \"maskUnits\"],\n [\"numoctaves\", \"numOctaves\"],\n [\"pathlength\", \"pathLength\"],\n [\"patterncontentunits\", \"patternContentUnits\"],\n [\"patterntransform\", \"patternTransform\"],\n [\"patternunits\", \"patternUnits\"],\n [\"pointsatx\", \"pointsAtX\"],\n [\"pointsaty\", \"pointsAtY\"],\n [\"pointsatz\", \"pointsAtZ\"],\n [\"preservealpha\", \"preserveAlpha\"],\n [\"preserveaspectratio\", \"preserveAspectRatio\"],\n [\"primitiveunits\", \"primitiveUnits\"],\n [\"refx\", \"refX\"],\n [\"refy\", \"refY\"],\n [\"repeatcount\", \"repeatCount\"],\n [\"repeatdur\", \"repeatDur\"],\n [\"requiredextensions\", \"requiredExtensions\"],\n [\"requiredfeatures\", \"requiredFeatures\"],\n [\"specularconstant\", \"specularConstant\"],\n [\"specularexponent\", \"specularExponent\"],\n [\"spreadmethod\", \"spreadMethod\"],\n [\"startoffset\", \"startOffset\"],\n [\"stddeviation\", \"stdDeviation\"],\n [\"stitchtiles\", \"stitchTiles\"],\n [\"surfacescale\", \"surfaceScale\"],\n [\"systemlanguage\", \"systemLanguage\"],\n [\"tablevalues\", \"tableValues\"],\n [\"targetx\", \"targetX\"],\n [\"targety\", \"targetY\"],\n [\"textlength\", \"textLength\"],\n [\"viewbox\", \"viewBox\"],\n [\"viewtarget\", \"viewTarget\"],\n [\"xchannelselector\", \"xChannelSelector\"],\n [\"ychannelselector\", \"yChannelSelector\"],\n [\"zoomandpan\", \"zoomAndPan\"],\n]);\n","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(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))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (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};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/*\n * Module dependencies\n */\nvar ElementType = __importStar(require(\"domelementtype\"));\nvar entities_1 = require(\"entities\");\n/**\n * Mixed-case SVG and MathML tags & attributes\n * recognized by the HTML parser.\n *\n * @see https://html.spec.whatwg.org/multipage/parsing.html#parsing-main-inforeign\n */\nvar foreignNames_1 = require(\"./foreignNames\");\nvar unencodedElements = new Set([\n \"style\",\n \"script\",\n \"xmp\",\n \"iframe\",\n \"noembed\",\n \"noframes\",\n \"plaintext\",\n \"noscript\",\n]);\n/**\n * Format attributes\n */\nfunction formatAttributes(attributes, opts) {\n if (!attributes)\n return;\n return Object.keys(attributes)\n .map(function (key) {\n var _a, _b;\n var value = (_a = attributes[key]) !== null && _a !== void 0 ? _a : \"\";\n if (opts.xmlMode === \"foreign\") {\n /* Fix up mixed-case attribute names */\n key = (_b = foreignNames_1.attributeNames.get(key)) !== null && _b !== void 0 ? _b : key;\n }\n if (!opts.emptyAttrs && !opts.xmlMode && value === \"\") {\n return key;\n }\n return key + \"=\\\"\" + (opts.decodeEntities !== false\n ? entities_1.encodeXML(value)\n : value.replace(/\"/g, \""\")) + \"\\\"\";\n })\n .join(\" \");\n}\n/**\n * Self-enclosing tags\n */\nvar singleTag = new Set([\n \"area\",\n \"base\",\n \"basefont\",\n \"br\",\n \"col\",\n \"command\",\n \"embed\",\n \"frame\",\n \"hr\",\n \"img\",\n \"input\",\n \"isindex\",\n \"keygen\",\n \"link\",\n \"meta\",\n \"param\",\n \"source\",\n \"track\",\n \"wbr\",\n]);\n/**\n * Renders a DOM node or an array of DOM nodes to a string.\n *\n * Can be thought of as the equivalent of the `outerHTML` of the passed node(s).\n *\n * @param node Node to be rendered.\n * @param options Changes serialization behavior\n */\nfunction render(node, options) {\n if (options === void 0) { options = {}; }\n var nodes = \"length\" in node ? node : [node];\n var output = \"\";\n for (var i = 0; i < nodes.length; i++) {\n output += renderNode(nodes[i], options);\n }\n return output;\n}\nexports.default = render;\nfunction renderNode(node, options) {\n switch (node.type) {\n case ElementType.Root:\n return render(node.children, options);\n case ElementType.Directive:\n case ElementType.Doctype:\n return renderDirective(node);\n case ElementType.Comment:\n return renderComment(node);\n case ElementType.CDATA:\n return renderCdata(node);\n case ElementType.Script:\n case ElementType.Style:\n case ElementType.Tag:\n return renderTag(node, options);\n case ElementType.Text:\n return renderText(node, options);\n }\n}\nvar foreignModeIntegrationPoints = new Set([\n \"mi\",\n \"mo\",\n \"mn\",\n \"ms\",\n \"mtext\",\n \"annotation-xml\",\n \"foreignObject\",\n \"desc\",\n \"title\",\n]);\nvar foreignElements = new Set([\"svg\", \"math\"]);\nfunction renderTag(elem, opts) {\n var _a;\n // Handle SVG / MathML in HTML\n if (opts.xmlMode === \"foreign\") {\n /* Fix up mixed-case element names */\n elem.name = (_a = foreignNames_1.elementNames.get(elem.name)) !== null && _a !== void 0 ? _a : elem.name;\n /* Exit foreign mode at integration points */\n if (elem.parent &&\n foreignModeIntegrationPoints.has(elem.parent.name)) {\n opts = __assign(__assign({}, opts), { xmlMode: false });\n }\n }\n if (!opts.xmlMode && foreignElements.has(elem.name)) {\n opts = __assign(__assign({}, opts), { xmlMode: \"foreign\" });\n }\n var tag = \"<\" + elem.name;\n var attribs = formatAttributes(elem.attribs, opts);\n if (attribs) {\n tag += \" \" + attribs;\n }\n if (elem.children.length === 0 &&\n (opts.xmlMode\n ? // In XML mode or foreign mode, and user hasn't explicitly turned off self-closing tags\n opts.selfClosingTags !== false\n : // User explicitly asked for self-closing tags, even in HTML mode\n opts.selfClosingTags && singleTag.has(elem.name))) {\n if (!opts.xmlMode)\n tag += \" \";\n tag += \"/>\";\n }\n else {\n tag += \">\";\n if (elem.children.length > 0) {\n tag += render(elem.children, opts);\n }\n if (opts.xmlMode || !singleTag.has(elem.name)) {\n tag += \"\";\n }\n }\n return tag;\n}\nfunction renderDirective(elem) {\n return \"<\" + elem.data + \">\";\n}\nfunction renderText(elem, opts) {\n var data = elem.data || \"\";\n // If entities weren't decoded, no need to encode them back\n if (opts.decodeEntities !== false &&\n !(!opts.xmlMode &&\n elem.parent &&\n unencodedElements.has(elem.parent.name))) {\n data = entities_1.encodeXML(data);\n }\n return data;\n}\nfunction renderCdata(elem) {\n return \"\";\n}\nfunction renderComment(elem) {\n return \"\";\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Doctype = exports.CDATA = exports.Tag = exports.Style = exports.Script = exports.Comment = exports.Directive = exports.Text = exports.Root = exports.isTag = exports.ElementType = void 0;\n/** Types of elements found in htmlparser2's DOM */\nvar ElementType;\n(function (ElementType) {\n /** Type for the root element of a document */\n ElementType[\"Root\"] = \"root\";\n /** Type for Text */\n ElementType[\"Text\"] = \"text\";\n /** Type for */\n ElementType[\"Directive\"] = \"directive\";\n /** Type for */\n ElementType[\"Comment\"] = \"comment\";\n /** Type for + * ``` + */ +const JUPYTER_CONFIG_ID = 'jupyter-config-data'; + +/* + * The JS-mangled name for `data-jupyter-lite-root` + */ +const LITE_ROOT_ATTR = 'jupyterLiteRoot'; + +/** + * The well-known filename that contains `#jupyter-config-data` and other goodies + */ +const LITE_FILES = ['jupyter-lite.json', 'jupyter-lite.ipynb']; + +/** + * And this link tag, used like so to load a bundle after configuration. + * + * ```html + * + * ``` + */ +const LITE_MAIN = 'jupyter-lite-main'; + +/** + * The current page, with trailing server junk stripped + */ +const HERE = `${window.location.origin}${window.location.pathname.replace( + /(\/|\/index.html)?$/, + '' +)}/`; + +/** + * The computed composite configuration + */ +let _JUPYTER_CONFIG; + +/** + * A handle on the config script, must exist, and will be overridden + */ +const CONFIG_SCRIPT = document.getElementById(JUPYTER_CONFIG_ID); + +/** + * The relative path to the root of this JupyterLite + */ +const RAW_LITE_ROOT = CONFIG_SCRIPT.dataset[LITE_ROOT_ATTR]; + +/** + * The fully-resolved path to the root of this JupyterLite + */ +const FULL_LITE_ROOT = new URL(RAW_LITE_ROOT, HERE).toString(); + +/** + * Paths that are joined with baseUrl to derive full URLs + */ +const UNPREFIXED_PATHS = ['licensesUrl', 'themesUrl']; + +/* a DOM parser for reading html files */ +const parser = new DOMParser(); + +/** + * Merge `jupyter-config-data` on the current page with: + * - the contents of `.jupyter-lite#/jupyter-config-data` + * - parent documents, and their `.jupyter-lite#/jupyter-config-data` + * ...up to `jupyter-lite-root`. + */ +async function jupyterConfigData() { + /** + * Return the value if already cached for some reason + */ + if (_JUPYTER_CONFIG != null) { + return _JUPYTER_CONFIG; + } + + let parent = new URL(HERE).toString(); + let promises = [getPathConfig(HERE)]; + while (parent != FULL_LITE_ROOT) { + parent = new URL('..', parent).toString(); + promises.unshift(getPathConfig(parent)); + } + + const configs = (await Promise.all(promises)).flat(); + + let finalConfig = configs.reduce(mergeOneConfig); + + // apply any final patches + finalConfig = dedupFederatedExtensions(finalConfig); + + // hoist to cache + _JUPYTER_CONFIG = finalConfig; + + return finalConfig; +} + +/** + * Merge a new configuration on top of the existing config + */ +function mergeOneConfig(memo, config) { + for (const [k, v] of Object.entries(config)) { + switch (k) { + // this list of extension names is appended + case 'disabledExtensions': + case 'federated_extensions': + memo[k] = [...(memo[k] || []), ...v]; + break; + // these `@org/pkg:plugin` are merged at the first level of values + case 'litePluginSettings': + case 'settingsOverrides': + if (!memo[k]) { + memo[k] = {}; + } + for (const [plugin, defaults] of Object.entries(v || {})) { + memo[k][plugin] = { ...(memo[k][plugin] || {}), ...defaults }; + } + break; + default: + memo[k] = v; + } + } + return memo; +} + +function dedupFederatedExtensions(config) { + const originalList = Object.keys(config || {})['federated_extensions'] || []; + const named = {}; + for (const ext of originalList) { + named[ext.name] = ext; + } + let allExtensions = [...Object.values(named)]; + allExtensions.sort((a, b) => a.name.localeCompare(b.name)); + return config; +} + +/** + * Load jupyter config data from (this) page and merge with + * `jupyter-lite.json#jupyter-config-data` + */ +async function getPathConfig(url) { + let promises = [getPageConfig(url)]; + for (const fileName of LITE_FILES) { + promises.unshift(getLiteConfig(url, fileName)); + } + return Promise.all(promises); +} + +/** + * The current normalized location + */ +function here() { + return window.location.href.replace(/(\/|\/index.html)?$/, '/'); +} + +/** + * Maybe fetch an `index.html` in this folder, which must contain the trailing slash. + */ +export async function getPageConfig(url = null) { + let script = CONFIG_SCRIPT; + + if (url != null) { + const text = await (await window.fetch(`${url}index.html`)).text(); + const doc = parser.parseFromString(text, 'text/html'); + script = doc.getElementById(JUPYTER_CONFIG_ID); + } + return fixRelativeUrls(url, JSON.parse(script.textContent)); +} + +/** + * Fetch a jupyter-lite JSON or Notebook in this folder, which must contain the trailing slash. + */ +export async function getLiteConfig(url, fileName) { + let text = '{}'; + let config = {}; + const liteUrl = `${url || HERE}${fileName}`; + try { + text = await (await window.fetch(liteUrl)).text(); + const json = JSON.parse(text); + const liteConfig = fileName.endsWith('.ipynb') + ? json['metadata']['jupyter-lite'] + : json; + config = liteConfig[JUPYTER_CONFIG_ID] || {}; + } catch (err) { + console.warn(`failed get ${JUPYTER_CONFIG_ID} from ${liteUrl}`); + } + return fixRelativeUrls(url, config); +} + +export function fixRelativeUrls(url, config) { + let urlBase = new URL(url || here()).pathname; + for (const [k, v] of Object.entries(config)) { + config[k] = fixOneRelativeUrl(k, v, url, urlBase); + } + return config; +} + +export function fixOneRelativeUrl(key, value, url, urlBase) { + if (key === 'litePluginSettings' || key === 'settingsOverrides') { + // these are plugin id-keyed objects, fix each plugin + return Object.entries(value || {}).reduce((m, [k, v]) => { + m[k] = fixRelativeUrls(url, v); + return m; + }, {}); + } else if ( + !UNPREFIXED_PATHS.includes(key) && + key.endsWith('Url') && + value.startsWith('./') + ) { + // themesUrls, etc. are joined in code with baseUrl, leave as-is: otherwise, clean + return `${urlBase}${value.slice(2)}`; + } else if (key.endsWith('Urls') && Array.isArray(value)) { + return value.map((v) => (v.startsWith('./') ? `${urlBase}${v.slice(2)}` : v)); + } + return value; +} + +/** + * Update with the as-configured favicon + */ +function addFavicon(config) { + const favicon = document.createElement('link'); + favicon.rel = 'icon'; + favicon.type = 'image/x-icon'; + favicon.href = config.faviconUrl; + document.head.appendChild(favicon); +} + +/** + * The main entry point. + */ +async function main() { + const config = await jupyterConfigData(); + if (config.baseUrl === new URL(here()).pathname) { + window.location.href = config.appUrl.replace(/\/?$/, '/index.html'); + return; + } + // rewrite the config + CONFIG_SCRIPT.textContent = JSON.stringify(config, null, 2); + addFavicon(config); + const preloader = document.getElementById(LITE_MAIN); + const bundle = document.createElement('script'); + bundle.src = preloader.href; + bundle.main = preloader.attributes.main; + document.head.appendChild(bundle); +} + +/** + * TODO: consider better pattern for invocation. + */ +await main(); diff --git a/_static/doc/workspaces/index.html b/_static/doc/workspaces/index.html new file mode 100644 index 0000000..9849b72 --- /dev/null +++ b/_static/doc/workspaces/index.html @@ -0,0 +1,14 @@ + + + + + + diff --git a/_static/extensions/@jupyter-widgets/jupyterlab-manager/install.json b/_static/extensions/@jupyter-widgets/jupyterlab-manager/install.json new file mode 100644 index 0000000..40c68e5 --- /dev/null +++ b/_static/extensions/@jupyter-widgets/jupyterlab-manager/install.json @@ -0,0 +1,5 @@ +{ + "packageManager": "python", + "packageName": "jupyterlab_widgets", + "uninstallInstructions": "Use your Python package manager (pip, conda, etc.) to uninstall the package jupyterlab_widgets" +} diff --git a/_static/extensions/@jupyter-widgets/jupyterlab-manager/package.json b/_static/extensions/@jupyter-widgets/jupyterlab-manager/package.json new file mode 100644 index 0000000..f341db6 --- /dev/null +++ b/_static/extensions/@jupyter-widgets/jupyterlab-manager/package.json @@ -0,0 +1,101 @@ +{ + "name": "@jupyter-widgets/jupyterlab-manager", + "version": "5.0.8", + "description": "The JupyterLab extension providing Jupyter widgets.", + "keywords": [ + "jupyter", + "jupyterlab", + "jupyterlab notebook", + "jupyterlab-extension" + ], + "homepage": "https://github.com/jupyter-widgets/ipywidgets", + "bugs": { + "url": "https://github.com/jupyter-widgets/ipywidgets/issues" + }, + "repository": { + "type": "git", + "url": "https://github.com/jupyter-widgets/ipywidgets" + }, + "license": "BSD-3-Clause", + "author": "Project Jupyter", + "sideEffects": [ + "style/*.css" + ], + "main": "lib/index.js", + "types": "lib/index.d.ts", + "files": [ + "lib/**/*.{d.ts,eot,gif,html,jpg,js,js.map,json,png,svg,woff2,ttf}", + "style/**/*.{css,eot,gif,html,jpg,json,png,svg,woff2,ttf}", + "dist/*.js", + "schema/*.json" + ], + "scripts": { + "build": "jlpm build:lib && jlpm build:labextension:dev", + "build:labextension": "jupyter labextension build .", + "build:labextension:dev": "jupyter labextension build --development True .", + "build:lib": "tsc -b", + "build:prod": "jlpm build:lib && jlpm build:labextension", + "clean": "jlpm clean:lib", + "clean:all": "jlpm clean:lib && jlpm clean:labextension", + "clean:labextension": "rimraf labextension", + "clean:lib": "rimraf lib tsconfig.tsbuildinfo", + "eslint": "eslint . --ext .ts,.tsx --fix", + "eslint:check": "eslint . --ext .ts,.tsx", + "install:extension": "jlpm build", + "prepare": "jlpm clean && jlpm build:prod", + "watch": "jupyter labextension watch ." + }, + "dependencies": { + "@jupyter-widgets/base": "^6.0.5", + "@jupyter-widgets/base-manager": "^1.0.6", + "@jupyter-widgets/controls": "^5.0.6", + "@jupyter-widgets/output": "^6.0.5", + "@jupyterlab/application": "^3.0.0 || ^4.0.0", + "@jupyterlab/docregistry": "^3.0.0 || ^4.0.0", + "@jupyterlab/logconsole": "^3.0.0 || ^4.0.0", + "@jupyterlab/mainmenu": "^3.0.0 || ^4.0.0", + "@jupyterlab/nbformat": "^3.0.0 || ^4.0.0", + "@jupyterlab/notebook": "^3.0.0 || ^4.0.0", + "@jupyterlab/outputarea": "^3.0.0 || ^4.0.0", + "@jupyterlab/rendermime": "^3.0.0 || ^4.0.0", + "@jupyterlab/rendermime-interfaces": "^3.0.0 || ^4.0.0", + "@jupyterlab/services": "^6.0.0 || ^7.0.0", + "@jupyterlab/settingregistry": "^3.0.0 || ^4.0.0", + "@jupyterlab/translation": "^3.0.0 || ^4.0.0", + "@lumino/algorithm": "^1.11.1 || ^2.0.0", + "@lumino/coreutils": "^1.11.1 || ^2.1", + "@lumino/disposable": "^1.10.1 || ^2.1", + "@lumino/properties": "^1.8.1 || ^2.1", + "@lumino/signaling": "^1.10.1 || ^2.1", + "@lumino/widgets": "^1.30.0 || ^2.1", + "@types/backbone": "1.4.14", + "jquery": "^3.1.1", + "semver": "^7.3.5" + }, + "devDependencies": { + "@jupyterlab/builder": "^3.0.0 || ^4.0.0", + "@jupyterlab/cells": "^3.0.0 || ^4.0.0", + "@types/jquery": "^3.5.16", + "@types/semver": "^7.3.6", + "@typescript-eslint/eslint-plugin": "^5.8.0", + "@typescript-eslint/parser": "^5.8.0", + "eslint": "^8.5.0", + "eslint-config-prettier": "^8.3.0", + "eslint-plugin-prettier": "^4.0.0", + "npm-run-all": "^4.1.5", + "prettier": "^2.3.2", + "rimraf": "^3.0.2", + "source-map-loader": "^4.0.1", + "typescript": "~4.9.4" + }, + "jupyterlab": { + "extension": true, + "outputDir": "labextension", + "schemaDir": "./schema", + "_build": { + "load": "static/remoteEntry.98b8a827bfc5f86e95d2.js", + "extension": "./extension" + } + }, + "gitHead": "5e86a96c0138b837a1b0e609f02dd79de71f5bd6" +} diff --git a/_static/extensions/@jupyter-widgets/jupyterlab-manager/schemas/@jupyter-widgets/jupyterlab-manager/package.json.orig b/_static/extensions/@jupyter-widgets/jupyterlab-manager/schemas/@jupyter-widgets/jupyterlab-manager/package.json.orig new file mode 100644 index 0000000..0a17f22 --- /dev/null +++ b/_static/extensions/@jupyter-widgets/jupyterlab-manager/schemas/@jupyter-widgets/jupyterlab-manager/package.json.orig @@ -0,0 +1,97 @@ +{ + "name": "@jupyter-widgets/jupyterlab-manager", + "version": "5.0.8", + "description": "The JupyterLab extension providing Jupyter widgets.", + "keywords": [ + "jupyter", + "jupyterlab", + "jupyterlab notebook", + "jupyterlab-extension" + ], + "homepage": "https://github.com/jupyter-widgets/ipywidgets", + "bugs": { + "url": "https://github.com/jupyter-widgets/ipywidgets/issues" + }, + "repository": { + "type": "git", + "url": "https://github.com/jupyter-widgets/ipywidgets" + }, + "license": "BSD-3-Clause", + "author": "Project Jupyter", + "sideEffects": [ + "style/*.css" + ], + "main": "lib/index.js", + "types": "lib/index.d.ts", + "files": [ + "lib/**/*.{d.ts,eot,gif,html,jpg,js,js.map,json,png,svg,woff2,ttf}", + "style/**/*.{css,eot,gif,html,jpg,json,png,svg,woff2,ttf}", + "dist/*.js", + "schema/*.json" + ], + "scripts": { + "build": "jlpm build:lib && jlpm build:labextension:dev", + "build:labextension": "jupyter labextension build .", + "build:labextension:dev": "jupyter labextension build --development True .", + "build:lib": "tsc -b", + "build:prod": "jlpm build:lib && jlpm build:labextension", + "clean": "jlpm clean:lib", + "clean:all": "jlpm clean:lib && jlpm clean:labextension", + "clean:labextension": "rimraf labextension", + "clean:lib": "rimraf lib tsconfig.tsbuildinfo", + "eslint": "eslint . --ext .ts,.tsx --fix", + "eslint:check": "eslint . --ext .ts,.tsx", + "install:extension": "jlpm build", + "prepare": "jlpm clean && jlpm build:prod", + "watch": "jupyter labextension watch ." + }, + "dependencies": { + "@jupyter-widgets/base": "^6.0.5", + "@jupyter-widgets/base-manager": "^1.0.6", + "@jupyter-widgets/controls": "^5.0.6", + "@jupyter-widgets/output": "^6.0.5", + "@jupyterlab/application": "^3.0.0 || ^4.0.0", + "@jupyterlab/docregistry": "^3.0.0 || ^4.0.0", + "@jupyterlab/logconsole": "^3.0.0 || ^4.0.0", + "@jupyterlab/mainmenu": "^3.0.0 || ^4.0.0", + "@jupyterlab/nbformat": "^3.0.0 || ^4.0.0", + "@jupyterlab/notebook": "^3.0.0 || ^4.0.0", + "@jupyterlab/outputarea": "^3.0.0 || ^4.0.0", + "@jupyterlab/rendermime": "^3.0.0 || ^4.0.0", + "@jupyterlab/rendermime-interfaces": "^3.0.0 || ^4.0.0", + "@jupyterlab/services": "^6.0.0 || ^7.0.0", + "@jupyterlab/settingregistry": "^3.0.0 || ^4.0.0", + "@jupyterlab/translation": "^3.0.0 || ^4.0.0", + "@lumino/algorithm": "^1.11.1 || ^2.0.0", + "@lumino/coreutils": "^1.11.1 || ^2.1", + "@lumino/disposable": "^1.10.1 || ^2.1", + "@lumino/properties": "^1.8.1 || ^2.1", + "@lumino/signaling": "^1.10.1 || ^2.1", + "@lumino/widgets": "^1.30.0 || ^2.1", + "@types/backbone": "1.4.14", + "jquery": "^3.1.1", + "semver": "^7.3.5" + }, + "devDependencies": { + "@jupyterlab/builder": "^3.0.0 || ^4.0.0", + "@jupyterlab/cells": "^3.0.0 || ^4.0.0", + "@types/jquery": "^3.5.16", + "@types/semver": "^7.3.6", + "@typescript-eslint/eslint-plugin": "^5.8.0", + "@typescript-eslint/parser": "^5.8.0", + "eslint": "^8.5.0", + "eslint-config-prettier": "^8.3.0", + "eslint-plugin-prettier": "^4.0.0", + "npm-run-all": "^4.1.5", + "prettier": "^2.3.2", + "rimraf": "^3.0.2", + "source-map-loader": "^4.0.1", + "typescript": "~4.9.4" + }, + "jupyterlab": { + "extension": true, + "outputDir": "labextension", + "schemaDir": "./schema" + }, + "gitHead": "5e86a96c0138b837a1b0e609f02dd79de71f5bd6" +} diff --git a/_static/extensions/@jupyter-widgets/jupyterlab-manager/schemas/@jupyter-widgets/jupyterlab-manager/plugin.json b/_static/extensions/@jupyter-widgets/jupyterlab-manager/schemas/@jupyter-widgets/jupyterlab-manager/plugin.json new file mode 100644 index 0000000..1c45d80 --- /dev/null +++ b/_static/extensions/@jupyter-widgets/jupyterlab-manager/schemas/@jupyter-widgets/jupyterlab-manager/plugin.json @@ -0,0 +1,14 @@ +{ + "title": "Jupyter Widgets", + "description": "Jupyter widgets settings.", + "additionalProperties": false, + "properties": { + "saveState": { + "type": "boolean", + "title": "Save Jupyter widget state in notebooks", + "description": "Automatically save Jupyter widget state when a notebook is saved.", + "default": false + } + }, + "type": "object" +} diff --git a/_static/extensions/@jupyter-widgets/jupyterlab-manager/static/113.6113d19fca7ff66ccc66.js b/_static/extensions/@jupyter-widgets/jupyterlab-manager/static/113.6113d19fca7ff66ccc66.js new file mode 100644 index 0000000..3f44966 --- /dev/null +++ b/_static/extensions/@jupyter-widgets/jupyterlab-manager/static/113.6113d19fca7ff66ccc66.js @@ -0,0 +1,2 @@ +/*! For license information please see 113.6113d19fca7ff66ccc66.js.LICENSE.txt */ +(self.webpackChunk_jupyter_widgets_jupyterlab_manager=self.webpackChunk_jupyter_widgets_jupyterlab_manager||[]).push([[113],{5766:(e,t)=>{"use strict";t.b$=function(e){var t,r,s=function(e){var t=e.length;if(t%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var r=e.indexOf("=");return-1===r&&(r=t),[r,r===t?0:4-r%4]}(e),o=s[0],a=s[1],l=new n(function(e,t,r){return 3*(t+r)/4-r}(0,o,a)),c=0,u=a>0?o-4:o;for(r=0;r>16&255,l[c++]=t>>8&255,l[c++]=255&t;return 2===a&&(t=i[e.charCodeAt(r)]<<2|i[e.charCodeAt(r+1)]>>4,l[c++]=255&t),1===a&&(t=i[e.charCodeAt(r)]<<10|i[e.charCodeAt(r+1)]<<4|i[e.charCodeAt(r+2)]>>2,l[c++]=t>>8&255,l[c++]=255&t),l},t.JQ=function(e){for(var t,i=e.length,n=i%3,s=[],o=16383,l=0,c=i-n;lc?c:l+o));return 1===n?(t=e[i-1],s.push(r[t>>2]+r[t<<4&63]+"==")):2===n&&(t=(e[i-2]<<8)+e[i-1],s.push(r[t>>10]+r[t>>4&63]+r[t<<2&63]+"=")),s.join("")};for(var r=[],i=[],n="undefined"!=typeof Uint8Array?Uint8Array:Array,s="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",o=0;o<64;++o)r[o]=s[o],i[s.charCodeAt(o)]=o;function a(e,t,i){for(var n,s,o=[],a=t;a>18&63]+r[s>>12&63]+r[s>>6&63]+r[63&s]);return o.join("")}i["-".charCodeAt(0)]=62,i["_".charCodeAt(0)]=63},9714:e=>{"use strict";var t=function(e){return function(e){return!!e&&"object"==typeof e}(e)&&!function(e){var t=Object.prototype.toString.call(e);return"[object RegExp]"===t||"[object Date]"===t||function(e){return e.$$typeof===r}(e)}(e)},r="function"==typeof Symbol&&Symbol.for?Symbol.for("react.element"):60103;function i(e,t){return!1!==t.clone&&t.isMergeableObject(e)?a((r=e,Array.isArray(r)?[]:{}),e,t):e;var r}function n(e,t,r){return e.concat(t).map((function(e){return i(e,r)}))}function s(e){return Object.keys(e).concat(function(e){return Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(e).filter((function(t){return Object.propertyIsEnumerable.call(e,t)})):[]}(e))}function o(e,t){try{return t in e}catch(e){return!1}}function a(e,r,l){(l=l||{}).arrayMerge=l.arrayMerge||n,l.isMergeableObject=l.isMergeableObject||t,l.cloneUnlessOtherwiseSpecified=i;var c=Array.isArray(r);return c===Array.isArray(e)?c?l.arrayMerge(e,r,l):function(e,t,r){var n={};return r.isMergeableObject(e)&&s(e).forEach((function(t){n[t]=i(e[t],r)})),s(t).forEach((function(s){(function(e,t){return o(e,t)&&!(Object.hasOwnProperty.call(e,t)&&Object.propertyIsEnumerable.call(e,t))})(e,s)||(o(e,s)&&r.isMergeableObject(t[s])?n[s]=function(e,t){if(!t.customMerge)return a;var r=t.customMerge(e);return"function"==typeof r?r:a}(s,r)(e[s],t[s],r):n[s]=i(t[s],r))})),n}(e,r,l):i(r,l)}a.all=function(e,t){if(!Array.isArray(e))throw new Error("first argument should be an array");return e.reduce((function(e,r){return a(e,r,t)}),{})};var l=a;e.exports=l},6594:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.attributeNames=t.elementNames=void 0,t.elementNames=new Map(["altGlyph","altGlyphDef","altGlyphItem","animateColor","animateMotion","animateTransform","clipPath","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","foreignObject","glyphRef","linearGradient","radialGradient","textPath"].map((function(e){return[e.toLowerCase(),e]}))),t.attributeNames=new Map(["definitionURL","attributeName","attributeType","baseFrequency","baseProfile","calcMode","clipPathUnits","diffuseConstant","edgeMode","filterUnits","glyphRef","gradientTransform","gradientUnits","kernelMatrix","kernelUnitLength","keyPoints","keySplines","keyTimes","lengthAdjust","limitingConeAngle","markerHeight","markerUnits","markerWidth","maskContentUnits","maskUnits","numOctaves","pathLength","patternContentUnits","patternTransform","patternUnits","pointsAtX","pointsAtY","pointsAtZ","preserveAlpha","preserveAspectRatio","primitiveUnits","refX","refY","repeatCount","repeatDur","requiredExtensions","requiredFeatures","specularConstant","specularExponent","spreadMethod","startOffset","stdDeviation","stitchTiles","surfaceScale","systemLanguage","tableValues","targetX","targetY","textLength","viewBox","viewTarget","xChannelSelector","yChannelSelector","zoomAndPan"].map((function(e){return[e.toLowerCase(),e]})))},606:function(e,t,r){"use strict";var i=this&&this.__assign||function(){return i=Object.assign||function(e){for(var t,r=1,i=arguments.length;r");case a.Comment:return"\x3c!--".concat(e.data,"--\x3e");case a.CDATA:return function(e){return"")}(e);case a.Script:case a.Style:case a.Tag:return function(e,t){var r;"foreign"===t.xmlMode&&(e.name=null!==(r=c.elementNames.get(e.name))&&void 0!==r?r:e.name,e.parent&&m.has(e.parent.name)&&(t=i(i({},t),{xmlMode:!1}))),!t.xmlMode&&g.has(e.name)&&(t=i(i({},t),{xmlMode:"foreign"}));var n="<".concat(e.name),s=function(e,t){var r;if(e){var i=!1===(null!==(r=t.encodeEntities)&&void 0!==r?r:t.decodeEntities)?h:t.xmlMode||"utf8"!==t.encodeEntities?l.encodeXML:l.escapeAttribute;return Object.keys(e).map((function(r){var n,s,o=null!==(n=e[r])&&void 0!==n?n:"";return"foreign"===t.xmlMode&&(r=null!==(s=c.attributeNames.get(r))&&void 0!==s?s:r),t.emptyAttrs||t.xmlMode||""!==o?"".concat(r,'="').concat(i(o),'"'):r})).join(" ")}}(e.attribs,t);return s&&(n+=" ".concat(s)),0===e.children.length&&(t.xmlMode?!1!==t.selfClosingTags:t.selfClosingTags&&p.has(e.name))?(t.xmlMode||(n+=" "),n+="/>"):(n+=">",e.children.length>0&&(n+=d(e.children,t)),!t.xmlMode&&p.has(e.name)||(n+=""))),n}(e,t);case a.Text:return function(e,t){var r,i=e.data||"";return!1===(null!==(r=t.encodeEntities)&&void 0!==r?r:t.decodeEntities)||!t.xmlMode&&e.parent&&u.has(e.parent.name)||(i=t.xmlMode||"utf8"!==t.encodeEntities?(0,l.encodeXML)(i):(0,l.escapeText)(i)),i}(e,t)}}t.render=d,t.default=d;var m=new Set(["mi","mo","mn","ms","mtext","annotation-xml","foreignObject","desc","title"]),g=new Set(["svg","math"])},4821:(e,t)=>{"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.Doctype=t.CDATA=t.Tag=t.Style=t.Script=t.Comment=t.Directive=t.Text=t.Root=t.isTag=t.ElementType=void 0,function(e){e.Root="root",e.Text="text",e.Directive="directive",e.Comment="comment",e.Script="script",e.Style="style",e.Tag="tag",e.CDATA="cdata",e.Doctype="doctype"}(r=t.ElementType||(t.ElementType={})),t.isTag=function(e){return e.type===r.Tag||e.type===r.Script||e.type===r.Style},t.Root=r.Root,t.Text=r.Text,t.Directive=r.Directive,t.Comment=r.Comment,t.Script=r.Script,t.Style=r.Style,t.Tag=r.Tag,t.CDATA=r.CDATA,t.Doctype=r.Doctype},9959:function(e,t,r){"use strict";var i=this&&this.__createBinding||(Object.create?function(e,t,r,i){void 0===i&&(i=r);var n=Object.getOwnPropertyDescriptor(t,r);n&&!("get"in n?!t.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,i,n)}:function(e,t,r,i){void 0===i&&(i=r),e[i]=t[r]}),n=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||i(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),t.DomHandler=void 0;var s=r(4821),o=r(5538);n(r(5538),t);var a={withStartIndices:!1,withEndIndices:!1,xmlMode:!1},l=function(){function e(e,t,r){this.dom=[],this.root=new o.Document(this.dom),this.done=!1,this.tagStack=[this.root],this.lastNode=null,this.parser=null,"function"==typeof t&&(r=t,t=a),"object"==typeof e&&(t=e,e=void 0),this.callback=null!=e?e:null,this.options=null!=t?t:a,this.elementCB=null!=r?r:null}return e.prototype.onparserinit=function(e){this.parser=e},e.prototype.onreset=function(){this.dom=[],this.root=new o.Document(this.dom),this.done=!1,this.tagStack=[this.root],this.lastNode=null,this.parser=null},e.prototype.onend=function(){this.done||(this.done=!0,this.parser=null,this.handleCallback(null))},e.prototype.onerror=function(e){this.handleCallback(e)},e.prototype.onclosetag=function(){this.lastNode=null;var e=this.tagStack.pop();this.options.withEndIndices&&(e.endIndex=this.parser.endIndex),this.elementCB&&this.elementCB(e)},e.prototype.onopentag=function(e,t){var r=this.options.xmlMode?s.ElementType.Tag:void 0,i=new o.Element(e,t,void 0,r);this.addNode(i),this.tagStack.push(i)},e.prototype.ontext=function(e){var t=this.lastNode;if(t&&t.type===s.ElementType.Text)t.data+=e,this.options.withEndIndices&&(t.endIndex=this.parser.endIndex);else{var r=new o.Text(e);this.addNode(r),this.lastNode=r}},e.prototype.oncomment=function(e){if(this.lastNode&&this.lastNode.type===s.ElementType.Comment)this.lastNode.data+=e;else{var t=new o.Comment(e);this.addNode(t),this.lastNode=t}},e.prototype.oncommentend=function(){this.lastNode=null},e.prototype.oncdatastart=function(){var e=new o.Text(""),t=new o.CDATA([e]);this.addNode(t),e.parent=t,this.lastNode=e},e.prototype.oncdataend=function(){this.lastNode=null},e.prototype.onprocessinginstruction=function(e,t){var r=new o.ProcessingInstruction(e,t);this.addNode(r)},e.prototype.handleCallback=function(e){if("function"==typeof this.callback)this.callback(e,this.dom);else if(e)throw e},e.prototype.addNode=function(e){var t=this.tagStack[this.tagStack.length-1],r=t.children[t.children.length-1];this.options.withStartIndices&&(e.startIndex=this.parser.startIndex),this.options.withEndIndices&&(e.endIndex=this.parser.endIndex),t.children.push(e),r&&(e.prev=r,r.next=e),e.parent=t,this.lastNode=null},e}();t.DomHandler=l,t.default=l},5538:function(e,t,r){"use strict";var i,n=this&&this.__extends||(i=function(e,t){return i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},i(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}i(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),s=this&&this.__assign||function(){return s=Object.assign||function(e){for(var t,r=1,i=arguments.length;r0?this.children[this.children.length-1]:null},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"childNodes",{get:function(){return this.children},set:function(e){this.children=e},enumerable:!1,configurable:!0}),t}(a);t.NodeWithChildren=p;var d=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.type=o.ElementType.CDATA,t}return n(t,e),Object.defineProperty(t.prototype,"nodeType",{get:function(){return 4},enumerable:!1,configurable:!0}),t}(p);t.CDATA=d;var f=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.type=o.ElementType.Root,t}return n(t,e),Object.defineProperty(t.prototype,"nodeType",{get:function(){return 9},enumerable:!1,configurable:!0}),t}(p);t.Document=f;var m=function(e){function t(t,r,i,n){void 0===i&&(i=[]),void 0===n&&(n="script"===t?o.ElementType.Script:"style"===t?o.ElementType.Style:o.ElementType.Tag);var s=e.call(this,i)||this;return s.name=t,s.attribs=r,s.type=n,s}return n(t,e),Object.defineProperty(t.prototype,"nodeType",{get:function(){return 1},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"tagName",{get:function(){return this.name},set:function(e){this.name=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"attributes",{get:function(){var e=this;return Object.keys(this.attribs).map((function(t){var r,i;return{name:t,value:e.attribs[t],namespace:null===(r=e["x-attribsNamespace"])||void 0===r?void 0:r[t],prefix:null===(i=e["x-attribsPrefix"])||void 0===i?void 0:i[t]}}))},enumerable:!1,configurable:!0}),t}(p);function g(e){return(0,o.isTag)(e)}function b(e){return e.type===o.ElementType.CDATA}function y(e){return e.type===o.ElementType.Text}function v(e){return e.type===o.ElementType.Comment}function w(e){return e.type===o.ElementType.Directive}function x(e){return e.type===o.ElementType.Root}function S(e,t){var r;if(void 0===t&&(t=!1),y(e))r=new c(e.data);else if(v(e))r=new u(e.data);else if(g(e)){var i=t?T(e.children):[],n=new m(e.name,s({},e.attribs),i);i.forEach((function(e){return e.parent=n})),null!=e.namespace&&(n.namespace=e.namespace),e["x-attribsNamespace"]&&(n["x-attribsNamespace"]=s({},e["x-attribsNamespace"])),e["x-attribsPrefix"]&&(n["x-attribsPrefix"]=s({},e["x-attribsPrefix"])),r=n}else if(b(e)){i=t?T(e.children):[];var o=new d(i);i.forEach((function(e){return e.parent=o})),r=o}else if(x(e)){i=t?T(e.children):[];var a=new f(i);i.forEach((function(e){return e.parent=a})),e["x-mode"]&&(a["x-mode"]=e["x-mode"]),r=a}else{if(!w(e))throw new Error("Not implemented yet: ".concat(e.type));var l=new h(e.name,e.data);null!=e["x-name"]&&(l["x-name"]=e["x-name"],l["x-publicId"]=e["x-publicId"],l["x-systemId"]=e["x-systemId"]),r=l}return r.startIndex=e.startIndex,r.endIndex=e.endIndex,null!=e.sourceCodeLocation&&(r.sourceCodeLocation=e.sourceCodeLocation),r}function T(e){for(var t=e.map((function(e){return S(e,!0)})),r=1;r{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getFeed=void 0;var i=r(7559),n=r(5310);t.getFeed=function(e){var t=l(h,e);return t?"feed"===t.name?function(e){var t,r=e.children,i={type:"atom",items:(0,n.getElementsByTagName)("entry",r).map((function(e){var t,r=e.children,i={media:a(r)};u(i,"id","id",r),u(i,"title","title",r);var n=null===(t=l("link",r))||void 0===t?void 0:t.attribs.href;n&&(i.link=n);var s=c("summary",r)||c("content",r);s&&(i.description=s);var o=c("updated",r);return o&&(i.pubDate=new Date(o)),i}))};u(i,"id","id",r),u(i,"title","title",r);var s=null===(t=l("link",r))||void 0===t?void 0:t.attribs.href;s&&(i.link=s),u(i,"description","subtitle",r);var o=c("updated",r);return o&&(i.updated=new Date(o)),u(i,"author","email",r,!0),i}(t):function(e){var t,r,i=null!==(r=null===(t=l("channel",e.children))||void 0===t?void 0:t.children)&&void 0!==r?r:[],s={type:e.name.substr(0,3),id:"",items:(0,n.getElementsByTagName)("item",e.children).map((function(e){var t=e.children,r={media:a(t)};u(r,"id","guid",t),u(r,"title","title",t),u(r,"link","link",t),u(r,"description","description",t);var i=c("pubDate",t)||c("dc:date",t);return i&&(r.pubDate=new Date(i)),r}))};u(s,"title","title",i),u(s,"link","link",i),u(s,"description","description",i);var o=c("lastBuildDate",i);return o&&(s.updated=new Date(o)),u(s,"author","managingEditor",i,!0),s}(t):null};var s=["url","type","lang"],o=["fileSize","bitrate","framerate","samplingrate","channels","duration","height","width"];function a(e){return(0,n.getElementsByTagName)("media:content",e).map((function(e){for(var t=e.attribs,r={medium:t.medium,isDefault:!!t.isDefault},i=0,n=s;i{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.uniqueSort=t.compareDocumentPosition=t.DocumentPosition=t.removeSubsets=void 0;var i,n=r(9959);function s(e,t){var r=[],s=[];if(e===t)return 0;for(var o=(0,n.hasChildren)(e)?e:e.parent;o;)r.unshift(o),o=o.parent;for(o=(0,n.hasChildren)(t)?t:t.parent;o;)s.unshift(o),o=o.parent;for(var a=Math.min(r.length,s.length),l=0;lu.indexOf(p)?c===t?i.FOLLOWING|i.CONTAINED_BY:i.FOLLOWING:c===e?i.PRECEDING|i.CONTAINS:i.PRECEDING}t.removeSubsets=function(e){for(var t=e.length;--t>=0;){var r=e[t];if(t>0&&e.lastIndexOf(r,t-1)>=0)e.splice(t,1);else for(var i=r.parent;i;i=i.parent)if(e.includes(i)){e.splice(t,1);break}}return e},function(e){e[e.DISCONNECTED=1]="DISCONNECTED",e[e.PRECEDING=2]="PRECEDING",e[e.FOLLOWING=4]="FOLLOWING",e[e.CONTAINS=8]="CONTAINS",e[e.CONTAINED_BY=16]="CONTAINED_BY"}(i=t.DocumentPosition||(t.DocumentPosition={})),t.compareDocumentPosition=s,t.uniqueSort=function(e){return(e=e.filter((function(e,t,r){return!r.includes(e,t+1)}))).sort((function(e,t){var r=s(e,t);return r&i.PRECEDING?-1:r&i.FOLLOWING?1:0})),e}},4622:function(e,t,r){"use strict";var i=this&&this.__createBinding||(Object.create?function(e,t,r,i){void 0===i&&(i=r);var n=Object.getOwnPropertyDescriptor(t,r);n&&!("get"in n?!t.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,i,n)}:function(e,t,r,i){void 0===i&&(i=r),e[i]=t[r]}),n=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||i(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),t.hasChildren=t.isDocument=t.isComment=t.isText=t.isCDATA=t.isTag=void 0,n(r(7559),t),n(r(6304),t),n(r(7427),t),n(r(7853),t),n(r(5310),t),n(r(2880),t),n(r(7065),t);var s=r(9959);Object.defineProperty(t,"isTag",{enumerable:!0,get:function(){return s.isTag}}),Object.defineProperty(t,"isCDATA",{enumerable:!0,get:function(){return s.isCDATA}}),Object.defineProperty(t,"isText",{enumerable:!0,get:function(){return s.isText}}),Object.defineProperty(t,"isComment",{enumerable:!0,get:function(){return s.isComment}}),Object.defineProperty(t,"isDocument",{enumerable:!0,get:function(){return s.isDocument}}),Object.defineProperty(t,"hasChildren",{enumerable:!0,get:function(){return s.hasChildren}})},5310:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getElementsByTagType=t.getElementsByTagName=t.getElementById=t.getElements=t.testElement=void 0;var i=r(9959),n=r(7853),s={tag_name:function(e){return"function"==typeof e?function(t){return(0,i.isTag)(t)&&e(t.name)}:"*"===e?i.isTag:function(t){return(0,i.isTag)(t)&&t.name===e}},tag_type:function(e){return"function"==typeof e?function(t){return e(t.type)}:function(t){return t.type===e}},tag_contains:function(e){return"function"==typeof e?function(t){return(0,i.isText)(t)&&e(t.data)}:function(t){return(0,i.isText)(t)&&t.data===e}}};function o(e,t){return"function"==typeof t?function(r){return(0,i.isTag)(r)&&t(r.attribs[e])}:function(r){return(0,i.isTag)(r)&&r.attribs[e]===t}}function a(e,t){return function(r){return e(r)||t(r)}}function l(e){var t=Object.keys(e).map((function(t){var r=e[t];return Object.prototype.hasOwnProperty.call(s,t)?s[t](r):o(t,r)}));return 0===t.length?null:t.reduce(a)}t.testElement=function(e,t){var r=l(e);return!r||r(t)},t.getElements=function(e,t,r,i){void 0===i&&(i=1/0);var s=l(e);return s?(0,n.filter)(s,t,r,i):[]},t.getElementById=function(e,t,r){return void 0===r&&(r=!0),Array.isArray(t)||(t=[t]),(0,n.findOne)(o("id",e),t,r)},t.getElementsByTagName=function(e,t,r,i){return void 0===r&&(r=!0),void 0===i&&(i=1/0),(0,n.filter)(s.tag_name(e),t,r,i)},t.getElementsByTagType=function(e,t,r,i){return void 0===r&&(r=!0),void 0===i&&(i=1/0),(0,n.filter)(s.tag_type(e),t,r,i)}},7427:(e,t)=>{"use strict";function r(e){if(e.prev&&(e.prev.next=e.next),e.next&&(e.next.prev=e.prev),e.parent){var t=e.parent.children,r=t.lastIndexOf(e);r>=0&&t.splice(r,1)}e.next=null,e.prev=null,e.parent=null}Object.defineProperty(t,"__esModule",{value:!0}),t.prepend=t.prependChild=t.append=t.appendChild=t.replaceElement=t.removeElement=void 0,t.removeElement=r,t.replaceElement=function(e,t){var r=t.prev=e.prev;r&&(r.next=t);var i=t.next=e.next;i&&(i.prev=t);var n=t.parent=e.parent;if(n){var s=n.children;s[s.lastIndexOf(e)]=t,e.parent=null}},t.appendChild=function(e,t){if(r(t),t.next=null,t.parent=e,e.children.push(t)>1){var i=e.children[e.children.length-2];i.next=t,t.prev=i}else t.prev=null},t.append=function(e,t){r(t);var i=e.parent,n=e.next;if(t.next=n,t.prev=e,e.next=t,t.parent=i,n){if(n.prev=t,i){var s=i.children;s.splice(s.lastIndexOf(n),0,t)}}else i&&i.children.push(t)},t.prependChild=function(e,t){if(r(t),t.parent=e,t.prev=null,1!==e.children.unshift(t)){var i=e.children[1];i.prev=t,t.next=i}else t.next=null},t.prepend=function(e,t){r(t);var i=e.parent;if(i){var n=i.children;n.splice(n.indexOf(e),0,t)}e.prev&&(e.prev.next=t),t.parent=i,t.prev=e.prev,t.next=e,e.prev=t}},7853:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.findAll=t.existsOne=t.findOne=t.findOneChild=t.find=t.filter=void 0;var i=r(9959);function n(e,t,r,n){for(var s=[],o=[t],a=[0];;)if(a[0]>=o[0].length){if(1===a.length)return s;o.shift(),a.shift()}else{var l=o[0][a[0]++];if(e(l)&&(s.push(l),--n<=0))return s;r&&(0,i.hasChildren)(l)&&l.children.length>0&&(a.unshift(0),o.unshift(l.children))}}t.filter=function(e,t,r,i){return void 0===r&&(r=!0),void 0===i&&(i=1/0),n(e,Array.isArray(t)?t:[t],r,i)},t.find=n,t.findOneChild=function(e,t){return t.find(e)},t.findOne=function e(t,r,n){void 0===n&&(n=!0);for(var s=null,o=0;o0&&(s=e(t,a.children,!0)))}return s},t.existsOne=function e(t,r){return r.some((function(r){return(0,i.isTag)(r)&&(t(r)||e(t,r.children))}))},t.findAll=function(e,t){for(var r=[],n=[t],s=[0];;)if(s[0]>=n[0].length){if(1===n.length)return r;n.shift(),s.shift()}else{var o=n[0][s[0]++];(0,i.isTag)(o)&&(e(o)&&r.push(o),o.children.length>0&&(s.unshift(0),n.unshift(o.children)))}}},7559:function(e,t,r){"use strict";var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.innerText=t.textContent=t.getText=t.getInnerHTML=t.getOuterHTML=void 0;var n=r(9959),s=i(r(606)),o=r(4821);function a(e,t){return(0,s.default)(e,t)}t.getOuterHTML=a,t.getInnerHTML=function(e,t){return(0,n.hasChildren)(e)?e.children.map((function(e){return a(e,t)})).join(""):""},t.getText=function e(t){return Array.isArray(t)?t.map(e).join(""):(0,n.isTag)(t)?"br"===t.name?"\n":e(t.children):(0,n.isCDATA)(t)?e(t.children):(0,n.isText)(t)?t.data:""},t.textContent=function e(t){return Array.isArray(t)?t.map(e).join(""):(0,n.hasChildren)(t)&&!(0,n.isComment)(t)?e(t.children):(0,n.isText)(t)?t.data:""},t.innerText=function e(t){return Array.isArray(t)?t.map(e).join(""):(0,n.hasChildren)(t)&&(t.type===o.ElementType.Tag||(0,n.isCDATA)(t))?e(t.children):(0,n.isText)(t)?t.data:""}},6304:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.prevElementSibling=t.nextElementSibling=t.getName=t.hasAttrib=t.getAttributeValue=t.getSiblings=t.getParent=t.getChildren=void 0;var i=r(9959);function n(e){return(0,i.hasChildren)(e)?e.children:[]}function s(e){return e.parent||null}t.getChildren=n,t.getParent=s,t.getSiblings=function(e){var t=s(e);if(null!=t)return n(t);for(var r=[e],i=e.prev,o=e.next;null!=i;)r.unshift(i),i=i.prev;for(;null!=o;)r.push(o),o=o.next;return r},t.getAttributeValue=function(e,t){var r;return null===(r=e.attribs)||void 0===r?void 0:r[t]},t.hasAttrib=function(e,t){return null!=e.attribs&&Object.prototype.hasOwnProperty.call(e.attribs,t)&&null!=e.attribs[t]},t.getName=function(e){return e.name},t.nextElementSibling=function(e){for(var t=e.next;null!==t&&!(0,i.isTag)(t);)t=t.next;return t},t.prevElementSibling=function(e){for(var t=e.prev;null!==t&&!(0,i.isTag)(t);)t=t.prev;return t}},3094:function(e,t,r){"use strict";var i=this&&this.__createBinding||(Object.create?function(e,t,r,i){void 0===i&&(i=r);var n=Object.getOwnPropertyDescriptor(t,r);n&&!("get"in n?!t.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,i,n)}:function(e,t,r,i){void 0===i&&(i=r),e[i]=t[r]}),n=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&i(t,e,r);return n(t,e),t},o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.decodeXML=t.decodeHTMLStrict=t.decodeHTMLAttribute=t.decodeHTML=t.determineBranch=t.EntityDecoder=t.DecodingMode=t.BinTrieFlags=t.fromCodePoint=t.replaceCodePoint=t.decodeCodePoint=t.xmlDecodeTree=t.htmlDecodeTree=void 0;var a=o(r(5537));t.htmlDecodeTree=a.default;var l=o(r(7424));t.xmlDecodeTree=l.default;var c=s(r(105));t.decodeCodePoint=c.default;var u,h,p,d,f=r(105);function m(e){return e>=u.ZERO&&e<=u.NINE}Object.defineProperty(t,"replaceCodePoint",{enumerable:!0,get:function(){return f.replaceCodePoint}}),Object.defineProperty(t,"fromCodePoint",{enumerable:!0,get:function(){return f.fromCodePoint}}),function(e){e[e.NUM=35]="NUM",e[e.SEMI=59]="SEMI",e[e.EQUALS=61]="EQUALS",e[e.ZERO=48]="ZERO",e[e.NINE=57]="NINE",e[e.LOWER_A=97]="LOWER_A",e[e.LOWER_F=102]="LOWER_F",e[e.LOWER_X=120]="LOWER_X",e[e.LOWER_Z=122]="LOWER_Z",e[e.UPPER_A=65]="UPPER_A",e[e.UPPER_F=70]="UPPER_F",e[e.UPPER_Z=90]="UPPER_Z"}(u||(u={})),function(e){e[e.VALUE_LENGTH=49152]="VALUE_LENGTH",e[e.BRANCH_LENGTH=16256]="BRANCH_LENGTH",e[e.JUMP_TABLE=127]="JUMP_TABLE"}(h=t.BinTrieFlags||(t.BinTrieFlags={})),function(e){e[e.EntityStart=0]="EntityStart",e[e.NumericStart=1]="NumericStart",e[e.NumericDecimal=2]="NumericDecimal",e[e.NumericHex=3]="NumericHex",e[e.NamedEntity=4]="NamedEntity"}(p||(p={})),function(e){e[e.Legacy=0]="Legacy",e[e.Strict=1]="Strict",e[e.Attribute=2]="Attribute"}(d=t.DecodingMode||(t.DecodingMode={}));var g=function(){function e(e,t,r){this.decodeTree=e,this.emitCodePoint=t,this.errors=r,this.state=p.EntityStart,this.consumed=1,this.result=0,this.treeIndex=0,this.excess=1,this.decodeMode=d.Strict}return e.prototype.startEntity=function(e){this.decodeMode=e,this.state=p.EntityStart,this.result=0,this.treeIndex=0,this.excess=1,this.consumed=1},e.prototype.write=function(e,t){switch(this.state){case p.EntityStart:return e.charCodeAt(t)===u.NUM?(this.state=p.NumericStart,this.consumed+=1,this.stateNumericStart(e,t+1)):(this.state=p.NamedEntity,this.stateNamedEntity(e,t));case p.NumericStart:return this.stateNumericStart(e,t);case p.NumericDecimal:return this.stateNumericDecimal(e,t);case p.NumericHex:return this.stateNumericHex(e,t);case p.NamedEntity:return this.stateNamedEntity(e,t)}},e.prototype.stateNumericStart=function(e,t){return t>=e.length?-1:(32|e.charCodeAt(t))===u.LOWER_X?(this.state=p.NumericHex,this.consumed+=1,this.stateNumericHex(e,t+1)):(this.state=p.NumericDecimal,this.stateNumericDecimal(e,t))},e.prototype.addToNumericResult=function(e,t,r,i){if(t!==r){var n=r-t;this.result=this.result*Math.pow(i,n)+parseInt(e.substr(t,n),i),this.consumed+=n}},e.prototype.stateNumericHex=function(e,t){for(var r,i=t;t=u.UPPER_A&&r<=u.UPPER_F||r>=u.LOWER_A&&r<=u.LOWER_F)))return this.addToNumericResult(e,i,t,16),this.emitNumericEntity(n,3);t+=1}return this.addToNumericResult(e,i,t,16),-1},e.prototype.stateNumericDecimal=function(e,t){for(var r=t;t>14;t=u.UPPER_A&&e<=u.UPPER_Z||e>=u.LOWER_A&&e<=u.LOWER_Z||m(e)}(o)))?0:this.emitNotTerminatedNamedEntity();if(0!=(n=((i=r[this.treeIndex])&h.VALUE_LENGTH)>>14)){if(s===u.SEMI)return this.emitNamedEntityData(this.treeIndex,n,this.consumed+this.excess);this.decodeMode!==d.Strict&&(this.result=this.treeIndex,this.consumed+=this.excess,this.excess=0)}}var o;return-1},e.prototype.emitNotTerminatedNamedEntity=function(){var e,t=this.result,r=(this.decodeTree[t]&h.VALUE_LENGTH)>>14;return this.emitNamedEntityData(t,r,this.consumed),null===(e=this.errors)||void 0===e||e.missingSemicolonAfterCharacterReference(),this.consumed},e.prototype.emitNamedEntityData=function(e,t,r){var i=this.decodeTree;return this.emitCodePoint(1===t?i[e]&~h.VALUE_LENGTH:i[e+1],r),3===t&&this.emitCodePoint(i[e+2],r),r},e.prototype.end=function(){var e;switch(this.state){case p.NamedEntity:return 0===this.result||this.decodeMode===d.Attribute&&this.result!==this.treeIndex?0:this.emitNotTerminatedNamedEntity();case p.NumericDecimal:return this.emitNumericEntity(0,2);case p.NumericHex:return this.emitNumericEntity(0,3);case p.NumericStart:return null===(e=this.errors)||void 0===e||e.absenceOfDigitsInNumericCharacterReference(this.consumed),0;case p.EntityStart:return 0}},e}();function b(e){var t="",r=new g(e,(function(e){return t+=(0,c.fromCodePoint)(e)}));return function(e,i){for(var n=0,s=0;(s=e.indexOf("&",s))>=0;){t+=e.slice(n,s),r.startEntity(i);var o=r.write(e,s+1);if(o<0){n=s+r.end();break}n=s+o,s=0===o?n+1:n}var a=t+e.slice(n);return t="",a}}function y(e,t,r,i){var n=(t&h.BRANCH_LENGTH)>>7,s=t&h.JUMP_TABLE;if(0===n)return 0!==s&&i===s?r:-1;if(s){var o=i-s;return o<0||o>=n?-1:e[r+o]-1}for(var a=r,l=a+n-1;a<=l;){var c=a+l>>>1,u=e[c];if(ui))return e[c+n];l=c-1}}return-1}t.EntityDecoder=g,t.determineBranch=y;var v=b(a.default),w=b(l.default);t.decodeHTML=function(e,t){return void 0===t&&(t=d.Legacy),v(e,t)},t.decodeHTMLAttribute=function(e){return v(e,d.Attribute)},t.decodeHTMLStrict=function(e){return v(e,d.Strict)},t.decodeXML=function(e){return w(e,d.Strict)}},105:(e,t)=>{"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.replaceCodePoint=t.fromCodePoint=void 0;var i=new Map([[0,65533],[128,8364],[130,8218],[131,402],[132,8222],[133,8230],[134,8224],[135,8225],[136,710],[137,8240],[138,352],[139,8249],[140,338],[142,381],[145,8216],[146,8217],[147,8220],[148,8221],[149,8226],[150,8211],[151,8212],[152,732],[153,8482],[154,353],[155,8250],[156,339],[158,382],[159,376]]);function n(e){var t;return e>=55296&&e<=57343||e>1114111?65533:null!==(t=i.get(e))&&void 0!==t?t:e}t.fromCodePoint=null!==(r=String.fromCodePoint)&&void 0!==r?r:function(e){var t="";return e>65535&&(e-=65536,t+=String.fromCharCode(e>>>10&1023|55296),e=56320|1023&e),t+String.fromCharCode(e)},t.replaceCodePoint=n,t.default=function(e){return(0,t.fromCodePoint)(n(e))}},1029:function(e,t,r){"use strict";var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.encodeNonAsciiHTML=t.encodeHTML=void 0;var n=i(r(6437)),s=r(9970),o=/[\t\n!-,./:-@[-`\f{-}$\x80-\uFFFF]/g;function a(e,t){for(var r,i="",o=0;null!==(r=e.exec(t));){var a=r.index;i+=t.substring(o,a);var l=t.charCodeAt(a),c=n.default.get(l);if("object"==typeof c){if(a+1{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.escapeText=t.escapeAttribute=t.escapeUTF8=t.escape=t.encodeXML=t.getCodePoint=t.xmlReplacer=void 0,t.xmlReplacer=/["&'<>$\x80-\uFFFF]/g;var r=new Map([[34,"""],[38,"&"],[39,"'"],[60,"<"],[62,">"]]);function i(e){for(var i,n="",s=0;null!==(i=t.xmlReplacer.exec(e));){var o=i.index,a=e.charCodeAt(o),l=r.get(a);void 0!==l?(n+=e.substring(s,o)+l,s=o+1):(n+="".concat(e.substring(s,o),"&#x").concat((0,t.getCodePoint)(e,o).toString(16),";"),s=t.xmlReplacer.lastIndex+=Number(55296==(64512&a)))}return n+e.substr(s)}function n(e,t){return function(r){for(var i,n=0,s="";i=e.exec(r);)n!==i.index&&(s+=r.substring(n,i.index)),s+=t.get(i[0].charCodeAt(0)),n=i.index+1;return s+r.substring(n)}}t.getCodePoint=null!=String.prototype.codePointAt?function(e,t){return e.codePointAt(t)}:function(e,t){return 55296==(64512&e.charCodeAt(t))?1024*(e.charCodeAt(t)-55296)+e.charCodeAt(t+1)-56320+65536:e.charCodeAt(t)},t.encodeXML=i,t.escape=i,t.escapeUTF8=n(/[&<>'"]/g,r),t.escapeAttribute=n(/["&\u00A0]/g,new Map([[34,"""],[38,"&"],[160," "]])),t.escapeText=n(/[&<>\u00A0]/g,new Map([[38,"&"],[60,"<"],[62,">"],[160," "]]))},5537:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=new Uint16Array('ᵁ<Õıʊҝջאٵ۞ޢߖࠏ੊ઑඡ๭༉༦჊ረዡᐕᒝᓃᓟᔥ\0\0\0\0\0\0ᕫᛍᦍᰒᷝ὾⁠↰⊍⏀⏻⑂⠤⤒ⴈ⹈⿎〖㊺㘹㞬㣾㨨㩱㫠㬮ࠀEMabcfglmnoprstu\\bfms„‹•˜¦³¹ÈÏlig耻Æ䃆P耻&䀦cute耻Á䃁reve;䄂Āiyx}rc耻Â䃂;䐐r;쀀𝔄rave耻À䃀pha;䎑acr;䄀d;橓Āgp¡on;䄄f;쀀𝔸plyFunction;恡ing耻Å䃅Ācs¾Ãr;쀀𝒜ign;扔ilde耻Ã䃃ml耻Ä䃄ЀaceforsuåûþėĜĢħĪĀcrêòkslash;或Ŷöø;櫧ed;挆y;䐑ƀcrtąċĔause;戵noullis;愬a;䎒r;쀀𝔅pf;쀀𝔹eve;䋘còēmpeq;扎܀HOacdefhilorsuōőŖƀƞƢƵƷƺǜȕɳɸɾcy;䐧PY耻©䂩ƀcpyŝŢźute;䄆Ā;iŧŨ拒talDifferentialD;慅leys;愭ȀaeioƉƎƔƘron;䄌dil耻Ç䃇rc;䄈nint;戰ot;䄊ĀdnƧƭilla;䂸terDot;䂷òſi;䎧rcleȀDMPTLJNjǑǖot;抙inus;抖lus;投imes;抗oĀcsǢǸkwiseContourIntegral;戲eCurlyĀDQȃȏoubleQuote;思uote;怙ȀlnpuȞȨɇɕonĀ;eȥȦ户;橴ƀgitȯȶȺruent;扡nt;戯ourIntegral;戮ĀfrɌɎ;愂oduct;成nterClockwiseContourIntegral;戳oss;樯cr;쀀𝒞pĀ;Cʄʅ拓ap;才րDJSZacefiosʠʬʰʴʸˋ˗ˡ˦̳ҍĀ;oŹʥtrahd;椑cy;䐂cy;䐅cy;䐏ƀgrsʿ˄ˇger;怡r;憡hv;櫤Āayː˕ron;䄎;䐔lĀ;t˝˞戇a;䎔r;쀀𝔇Āaf˫̧Ācm˰̢riticalȀADGT̖̜̀̆cute;䂴oŴ̋̍;䋙bleAcute;䋝rave;䁠ilde;䋜ond;拄ferentialD;慆Ѱ̽\0\0\0͔͂\0Ѕf;쀀𝔻ƀ;DE͈͉͍䂨ot;惜qual;扐blèCDLRUVͣͲ΂ϏϢϸontourIntegraìȹoɴ͹\0\0ͻ»͉nArrow;懓Āeo·ΤftƀARTΐΖΡrrow;懐ightArrow;懔eåˊngĀLRΫτeftĀARγιrrow;柸ightArrow;柺ightArrow;柹ightĀATϘϞrrow;懒ee;抨pɁϩ\0\0ϯrrow;懑ownArrow;懕erticalBar;戥ǹABLRTaВЪаўѿͼrrowƀ;BUНОТ憓ar;椓pArrow;懵reve;䌑eft˒к\0ц\0ѐightVector;楐eeVector;楞ectorĀ;Bљњ憽ar;楖ightǔѧ\0ѱeeVector;楟ectorĀ;BѺѻ懁ar;楗eeĀ;A҆҇护rrow;憧ĀctҒҗr;쀀𝒟rok;䄐ࠀNTacdfglmopqstuxҽӀӄӋӞӢӧӮӵԡԯԶՒ՝ՠեG;䅊H耻Ð䃐cute耻É䃉ƀaiyӒӗӜron;䄚rc耻Ê䃊;䐭ot;䄖r;쀀𝔈rave耻È䃈ement;戈ĀapӺӾcr;䄒tyɓԆ\0\0ԒmallSquare;旻erySmallSquare;斫ĀgpԦԪon;䄘f;쀀𝔼silon;䎕uĀaiԼՉlĀ;TՂՃ橵ilde;扂librium;懌Āci՗՚r;愰m;橳a;䎗ml耻Ë䃋Āipժկsts;戃onentialE;慇ʀcfiosօֈ֍ֲ׌y;䐤r;쀀𝔉lledɓ֗\0\0֣mallSquare;旼erySmallSquare;斪Ͱֺ\0ֿ\0\0ׄf;쀀𝔽All;戀riertrf;愱cò׋؀JTabcdfgorstר׬ׯ׺؀ؒؖ؛؝أ٬ٲcy;䐃耻>䀾mmaĀ;d׷׸䎓;䏜reve;䄞ƀeiy؇،ؐdil;䄢rc;䄜;䐓ot;䄠r;쀀𝔊;拙pf;쀀𝔾eater̀EFGLSTصلَٖٛ٦qualĀ;Lؾؿ扥ess;招ullEqual;执reater;檢ess;扷lantEqual;橾ilde;扳cr;쀀𝒢;扫ЀAacfiosuڅڋږڛڞڪھۊRDcy;䐪Āctڐڔek;䋇;䁞irc;䄤r;愌lbertSpace;愋ǰگ\0ڲf;愍izontalLine;攀Āctۃۅòکrok;䄦mpńېۘownHumðįqual;扏܀EJOacdfgmnostuۺ۾܃܇܎ܚܞܡܨ݄ݸދޏޕcy;䐕lig;䄲cy;䐁cute耻Í䃍Āiyܓܘrc耻Î䃎;䐘ot;䄰r;愑rave耻Ì䃌ƀ;apܠܯܿĀcgܴܷr;䄪inaryI;慈lieóϝǴ݉\0ݢĀ;eݍݎ戬Āgrݓݘral;戫section;拂isibleĀCTݬݲomma;恣imes;恢ƀgptݿރވon;䄮f;쀀𝕀a;䎙cr;愐ilde;䄨ǫޚ\0ޞcy;䐆l耻Ï䃏ʀcfosuެ޷޼߂ߐĀiyޱ޵rc;䄴;䐙r;쀀𝔍pf;쀀𝕁ǣ߇\0ߌr;쀀𝒥rcy;䐈kcy;䐄΀HJacfosߤߨ߽߬߱ࠂࠈcy;䐥cy;䐌ppa;䎚Āey߶߻dil;䄶;䐚r;쀀𝔎pf;쀀𝕂cr;쀀𝒦րJTaceflmostࠥࠩࠬࡐࡣ঳সে্਷ੇcy;䐉耻<䀼ʀcmnpr࠷࠼ࡁࡄࡍute;䄹bda;䎛g;柪lacetrf;愒r;憞ƀaeyࡗ࡜ࡡron;䄽dil;䄻;䐛Āfsࡨ॰tԀACDFRTUVarࡾࢩࢱࣦ࣠ࣼयज़ΐ४Ānrࢃ࢏gleBracket;柨rowƀ;BR࢙࢚࢞憐ar;懤ightArrow;懆eiling;挈oǵࢷ\0ࣃbleBracket;柦nǔࣈ\0࣒eeVector;楡ectorĀ;Bࣛࣜ懃ar;楙loor;挊ightĀAV࣯ࣵrrow;憔ector;楎Āerँगeƀ;AVउऊऐ抣rrow;憤ector;楚iangleƀ;BEतथऩ抲ar;槏qual;抴pƀDTVषूौownVector;楑eeVector;楠ectorĀ;Bॖॗ憿ar;楘ectorĀ;B॥०憼ar;楒ightáΜs̀EFGLSTॾঋকঝঢভqualGreater;拚ullEqual;扦reater;扶ess;檡lantEqual;橽ilde;扲r;쀀𝔏Ā;eঽা拘ftarrow;懚idot;䄿ƀnpw৔ਖਛgȀLRlr৞৷ਂਐeftĀAR০৬rrow;柵ightArrow;柷ightArrow;柶eftĀarγਊightáοightáϊf;쀀𝕃erĀLRਢਬeftArrow;憙ightArrow;憘ƀchtਾੀੂòࡌ;憰rok;䅁;扪Ѐacefiosuਗ਼੝੠੷੼અઋ઎p;椅y;䐜Ādl੥੯iumSpace;恟lintrf;愳r;쀀𝔐nusPlus;戓pf;쀀𝕄cò੶;䎜ҀJacefostuણધભીଔଙඑ඗ඞcy;䐊cute;䅃ƀaey઴હાron;䅇dil;䅅;䐝ƀgswે૰଎ativeƀMTV૓૟૨ediumSpace;怋hiĀcn૦૘ë૙eryThiî૙tedĀGL૸ଆreaterGreateòٳessLesóੈLine;䀊r;쀀𝔑ȀBnptଢନଷ଺reak;恠BreakingSpace;䂠f;愕ڀ;CDEGHLNPRSTV୕ୖ୪୼஡௫ఄ౞಄ದ೘ൡඅ櫬Āou୛୤ngruent;扢pCap;扭oubleVerticalBar;戦ƀlqxஃஊ஛ement;戉ualĀ;Tஒஓ扠ilde;쀀≂̸ists;戄reater΀;EFGLSTஶஷ஽௉௓௘௥扯qual;扱ullEqual;쀀≧̸reater;쀀≫̸ess;批lantEqual;쀀⩾̸ilde;扵umpń௲௽ownHump;쀀≎̸qual;쀀≏̸eĀfsఊధtTriangleƀ;BEచఛడ拪ar;쀀⧏̸qual;括s̀;EGLSTవశ఼ౄోౘ扮qual;扰reater;扸ess;쀀≪̸lantEqual;쀀⩽̸ilde;扴estedĀGL౨౹reaterGreater;쀀⪢̸essLess;쀀⪡̸recedesƀ;ESಒಓಛ技qual;쀀⪯̸lantEqual;拠ĀeiಫಹverseElement;戌ghtTriangleƀ;BEೋೌ೒拫ar;쀀⧐̸qual;拭ĀquೝഌuareSuĀbp೨೹setĀ;E೰ೳ쀀⊏̸qual;拢ersetĀ;Eഃആ쀀⊐̸qual;拣ƀbcpഓതൎsetĀ;Eഛഞ쀀⊂⃒qual;抈ceedsȀ;ESTലള഻െ抁qual;쀀⪰̸lantEqual;拡ilde;쀀≿̸ersetĀ;E൘൛쀀⊃⃒qual;抉ildeȀ;EFT൮൯൵ൿ扁qual;扄ullEqual;扇ilde;扉erticalBar;戤cr;쀀𝒩ilde耻Ñ䃑;䎝܀Eacdfgmoprstuvලෂ෉෕ෛ෠෧෼ขภยา฿ไlig;䅒cute耻Ó䃓Āiy෎ීrc耻Ô䃔;䐞blac;䅐r;쀀𝔒rave耻Ò䃒ƀaei෮ෲ෶cr;䅌ga;䎩cron;䎟pf;쀀𝕆enCurlyĀDQฎบoubleQuote;怜uote;怘;橔Āclวฬr;쀀𝒪ash耻Ø䃘iŬื฼de耻Õ䃕es;樷ml耻Ö䃖erĀBP๋๠Āar๐๓r;怾acĀek๚๜;揞et;掴arenthesis;揜Ҁacfhilors๿ງຊຏຒດຝະ໼rtialD;戂y;䐟r;쀀𝔓i;䎦;䎠usMinus;䂱Āipຢອncareplanåڝf;愙Ȁ;eio຺ູ໠໤檻cedesȀ;EST່້໏໚扺qual;檯lantEqual;扼ilde;找me;怳Ādp໩໮uct;戏ortionĀ;aȥ໹l;戝Āci༁༆r;쀀𝒫;䎨ȀUfos༑༖༛༟OT耻"䀢r;쀀𝔔pf;愚cr;쀀𝒬؀BEacefhiorsu༾གྷཇའཱིྦྷྪྭ႖ႩႴႾarr;椐G耻®䂮ƀcnrཎནབute;䅔g;柫rĀ;tཛྷཝ憠l;椖ƀaeyཧཬཱron;䅘dil;䅖;䐠Ā;vླྀཹ愜erseĀEUྂྙĀlq྇ྎement;戋uilibrium;懋pEquilibrium;楯r»ཹo;䎡ghtЀACDFTUVa࿁࿫࿳ဢဨၛႇϘĀnr࿆࿒gleBracket;柩rowƀ;BL࿜࿝࿡憒ar;懥eftArrow;懄eiling;按oǵ࿹\0စbleBracket;柧nǔည\0နeeVector;楝ectorĀ;Bဝသ懂ar;楕loor;挋Āerိ၃eƀ;AVဵံြ抢rrow;憦ector;楛iangleƀ;BEၐၑၕ抳ar;槐qual;抵pƀDTVၣၮၸownVector;楏eeVector;楜ectorĀ;Bႂႃ憾ar;楔ectorĀ;B႑႒懀ar;楓Āpuႛ႞f;愝ndImplies;楰ightarrow;懛ĀchႹႼr;愛;憱leDelayed;槴ڀHOacfhimoqstuფჱჷჽᄙᄞᅑᅖᅡᅧᆵᆻᆿĀCcჩხHcy;䐩y;䐨FTcy;䐬cute;䅚ʀ;aeiyᄈᄉᄎᄓᄗ檼ron;䅠dil;䅞rc;䅜;䐡r;쀀𝔖ortȀDLRUᄪᄴᄾᅉownArrow»ОeftArrow»࢚ightArrow»࿝pArrow;憑gma;䎣allCircle;战pf;쀀𝕊ɲᅭ\0\0ᅰt;戚areȀ;ISUᅻᅼᆉᆯ斡ntersection;抓uĀbpᆏᆞsetĀ;Eᆗᆘ抏qual;抑ersetĀ;Eᆨᆩ抐qual;抒nion;抔cr;쀀𝒮ar;拆ȀbcmpᇈᇛሉላĀ;sᇍᇎ拐etĀ;Eᇍᇕqual;抆ĀchᇠህeedsȀ;ESTᇭᇮᇴᇿ扻qual;檰lantEqual;扽ilde;承Tháྌ;我ƀ;esሒሓሣ拑rsetĀ;Eሜም抃qual;抇et»ሓրHRSacfhiorsሾቄ቉ቕ቞ቱቶኟዂወዑORN耻Þ䃞ADE;愢ĀHc቎ቒcy;䐋y;䐦Ābuቚቜ;䀉;䎤ƀaeyብቪቯron;䅤dil;䅢;䐢r;쀀𝔗Āeiቻ኉Dzኀ\0ኇefore;戴a;䎘Ācn኎ኘkSpace;쀀  Space;怉ldeȀ;EFTካኬኲኼ戼qual;扃ullEqual;扅ilde;扈pf;쀀𝕋ipleDot;惛Āctዖዛr;쀀𝒯rok;䅦ૡዷጎጚጦ\0ጬጱ\0\0\0\0\0ጸጽ፷ᎅ\0᏿ᐄᐊᐐĀcrዻጁute耻Ú䃚rĀ;oጇገ憟cir;楉rǣጓ\0጖y;䐎ve;䅬Āiyጞጣrc耻Û䃛;䐣blac;䅰r;쀀𝔘rave耻Ù䃙acr;䅪Ādiፁ፩erĀBPፈ፝Āarፍፐr;䁟acĀekፗፙ;揟et;掵arenthesis;揝onĀ;P፰፱拃lus;抎Āgp፻፿on;䅲f;쀀𝕌ЀADETadps᎕ᎮᎸᏄϨᏒᏗᏳrrowƀ;BDᅐᎠᎤar;椒ownArrow;懅ownArrow;憕quilibrium;楮eeĀ;AᏋᏌ报rrow;憥ownáϳerĀLRᏞᏨeftArrow;憖ightArrow;憗iĀ;lᏹᏺ䏒on;䎥ing;䅮cr;쀀𝒰ilde;䅨ml耻Ü䃜ҀDbcdefosvᐧᐬᐰᐳᐾᒅᒊᒐᒖash;披ar;櫫y;䐒ashĀ;lᐻᐼ抩;櫦Āerᑃᑅ;拁ƀbtyᑌᑐᑺar;怖Ā;iᑏᑕcalȀBLSTᑡᑥᑪᑴar;戣ine;䁼eparator;杘ilde;所ThinSpace;怊r;쀀𝔙pf;쀀𝕍cr;쀀𝒱dash;抪ʀcefosᒧᒬᒱᒶᒼirc;䅴dge;拀r;쀀𝔚pf;쀀𝕎cr;쀀𝒲Ȁfiosᓋᓐᓒᓘr;쀀𝔛;䎞pf;쀀𝕏cr;쀀𝒳ҀAIUacfosuᓱᓵᓹᓽᔄᔏᔔᔚᔠcy;䐯cy;䐇cy;䐮cute耻Ý䃝Āiyᔉᔍrc;䅶;䐫r;쀀𝔜pf;쀀𝕐cr;쀀𝒴ml;䅸ЀHacdefosᔵᔹᔿᕋᕏᕝᕠᕤcy;䐖cute;䅹Āayᕄᕉron;䅽;䐗ot;䅻Dzᕔ\0ᕛoWidtè૙a;䎖r;愨pf;愤cr;쀀𝒵௡ᖃᖊᖐ\0ᖰᖶᖿ\0\0\0\0ᗆᗛᗫᙟ᙭\0ᚕ᚛ᚲᚹ\0ᚾcute耻á䃡reve;䄃̀;Ediuyᖜᖝᖡᖣᖨᖭ戾;쀀∾̳;房rc耻â䃢te肻´̆;䐰lig耻æ䃦Ā;r²ᖺ;쀀𝔞rave耻à䃠ĀepᗊᗖĀfpᗏᗔsym;愵èᗓha;䎱ĀapᗟcĀclᗤᗧr;䄁g;樿ɤᗰ\0\0ᘊʀ;adsvᗺᗻᗿᘁᘇ戧nd;橕;橜lope;橘;橚΀;elmrszᘘᘙᘛᘞᘿᙏᙙ戠;榤e»ᘙsdĀ;aᘥᘦ戡ѡᘰᘲᘴᘶᘸᘺᘼᘾ;榨;榩;榪;榫;榬;榭;榮;榯tĀ;vᙅᙆ戟bĀ;dᙌᙍ抾;榝Āptᙔᙗh;戢»¹arr;捼Āgpᙣᙧon;䄅f;쀀𝕒΀;Eaeiop዁ᙻᙽᚂᚄᚇᚊ;橰cir;橯;扊d;手s;䀧roxĀ;e዁ᚒñᚃing耻å䃥ƀctyᚡᚦᚨr;쀀𝒶;䀪mpĀ;e዁ᚯñʈilde耻ã䃣ml耻ä䃤Āciᛂᛈoninôɲnt;樑ࠀNabcdefiklnoprsu᛭ᛱᜰ᜼ᝃᝈ᝸᝽០៦ᠹᡐᜍ᤽᥈ᥰot;櫭Ācrᛶ᜞kȀcepsᜀᜅᜍᜓong;扌psilon;䏶rime;怵imĀ;e᜚᜛戽q;拍Ŷᜢᜦee;抽edĀ;gᜬᜭ挅e»ᜭrkĀ;t፜᜷brk;掶Āoyᜁᝁ;䐱quo;怞ʀcmprtᝓ᝛ᝡᝤᝨausĀ;eĊĉptyv;榰séᜌnoõēƀahwᝯ᝱ᝳ;䎲;愶een;扬r;쀀𝔟g΀costuvwឍឝឳេ៕៛៞ƀaiuបពរðݠrc;旯p»፱ƀdptឤឨឭot;樀lus;樁imes;樂ɱឹ\0\0ើcup;樆ar;昅riangleĀdu៍្own;施p;斳plus;樄eåᑄåᒭarow;植ƀako៭ᠦᠵĀcn៲ᠣkƀlst៺֫᠂ozenge;槫riangleȀ;dlr᠒᠓᠘᠝斴own;斾eft;旂ight;斸k;搣Ʊᠫ\0ᠳƲᠯ\0ᠱ;斒;斑4;斓ck;斈ĀeoᠾᡍĀ;qᡃᡆ쀀=⃥uiv;쀀≡⃥t;挐Ȁptwxᡙᡞᡧᡬf;쀀𝕓Ā;tᏋᡣom»Ꮜtie;拈؀DHUVbdhmptuvᢅᢖᢪᢻᣗᣛᣬ᣿ᤅᤊᤐᤡȀLRlrᢎᢐᢒᢔ;敗;敔;敖;敓ʀ;DUduᢡᢢᢤᢦᢨ敐;敦;敩;敤;敧ȀLRlrᢳᢵᢷᢹ;敝;敚;敜;教΀;HLRhlrᣊᣋᣍᣏᣑᣓᣕ救;敬;散;敠;敫;敢;敟ox;槉ȀLRlrᣤᣦᣨᣪ;敕;敒;攐;攌ʀ;DUduڽ᣷᣹᣻᣽;敥;敨;攬;攴inus;抟lus;択imes;抠ȀLRlrᤙᤛᤝ᤟;敛;敘;攘;攔΀;HLRhlrᤰᤱᤳᤵᤷ᤻᤹攂;敪;敡;敞;攼;攤;攜Āevģ᥂bar耻¦䂦Ȁceioᥑᥖᥚᥠr;쀀𝒷mi;恏mĀ;e᜚᜜lƀ;bhᥨᥩᥫ䁜;槅sub;柈Ŭᥴ᥾lĀ;e᥹᥺怢t»᥺pƀ;Eeįᦅᦇ;檮Ā;qۜۛೡᦧ\0᧨ᨑᨕᨲ\0ᨷᩐ\0\0᪴\0\0᫁\0\0ᬡᬮ᭍᭒\0᯽\0ᰌƀcpr᦭ᦲ᧝ute;䄇̀;abcdsᦿᧀᧄ᧊᧕᧙戩nd;橄rcup;橉Āau᧏᧒p;橋p;橇ot;橀;쀀∩︀Āeo᧢᧥t;恁îړȀaeiu᧰᧻ᨁᨅǰ᧵\0᧸s;橍on;䄍dil耻ç䃧rc;䄉psĀ;sᨌᨍ橌m;橐ot;䄋ƀdmnᨛᨠᨦil肻¸ƭptyv;榲t脀¢;eᨭᨮ䂢räƲr;쀀𝔠ƀceiᨽᩀᩍy;䑇ckĀ;mᩇᩈ朓ark»ᩈ;䏇r΀;Ecefms᩟᩠ᩢᩫ᪤᪪᪮旋;槃ƀ;elᩩᩪᩭ䋆q;扗eɡᩴ\0\0᪈rrowĀlr᩼᪁eft;憺ight;憻ʀRSacd᪒᪔᪖᪚᪟»ཇ;擈st;抛irc;抚ash;抝nint;樐id;櫯cir;槂ubsĀ;u᪻᪼晣it»᪼ˬ᫇᫔᫺\0ᬊonĀ;eᫍᫎ䀺Ā;qÇÆɭ᫙\0\0᫢aĀ;t᫞᫟䀬;䁀ƀ;fl᫨᫩᫫戁îᅠeĀmx᫱᫶ent»᫩eóɍǧ᫾\0ᬇĀ;dኻᬂot;橭nôɆƀfryᬐᬔᬗ;쀀𝕔oäɔ脀©;sŕᬝr;愗Āaoᬥᬩrr;憵ss;朗Ācuᬲᬷr;쀀𝒸Ābpᬼ᭄Ā;eᭁᭂ櫏;櫑Ā;eᭉᭊ櫐;櫒dot;拯΀delprvw᭠᭬᭷ᮂᮬᯔ᯹arrĀlr᭨᭪;椸;椵ɰ᭲\0\0᭵r;拞c;拟arrĀ;p᭿ᮀ憶;椽̀;bcdosᮏᮐᮖᮡᮥᮨ截rcap;橈Āauᮛᮞp;橆p;橊ot;抍r;橅;쀀∪︀Ȁalrv᮵ᮿᯞᯣrrĀ;mᮼᮽ憷;椼yƀevwᯇᯔᯘqɰᯎ\0\0ᯒreã᭳uã᭵ee;拎edge;拏en耻¤䂤earrowĀlrᯮ᯳eft»ᮀight»ᮽeäᯝĀciᰁᰇoninôǷnt;戱lcty;挭ঀAHabcdefhijlorstuwz᰸᰻᰿ᱝᱩᱵᲊᲞᲬᲷ᳻᳿ᴍᵻᶑᶫᶻ᷆᷍rò΁ar;楥Ȁglrs᱈ᱍ᱒᱔ger;怠eth;愸òᄳhĀ;vᱚᱛ怐»ऊūᱡᱧarow;椏aã̕Āayᱮᱳron;䄏;䐴ƀ;ao̲ᱼᲄĀgrʿᲁr;懊tseq;橷ƀglmᲑᲔᲘ耻°䂰ta;䎴ptyv;榱ĀirᲣᲨsht;楿;쀀𝔡arĀlrᲳᲵ»ࣜ»သʀaegsv᳂͸᳖᳜᳠mƀ;oș᳊᳔ndĀ;ș᳑uit;晦amma;䏝in;拲ƀ;io᳧᳨᳸䃷de脀÷;o᳧ᳰntimes;拇nø᳷cy;䑒cɯᴆ\0\0ᴊrn;挞op;挍ʀlptuwᴘᴝᴢᵉᵕlar;䀤f;쀀𝕕ʀ;emps̋ᴭᴷᴽᵂqĀ;d͒ᴳot;扑inus;戸lus;戔quare;抡blebarwedgåúnƀadhᄮᵝᵧownarrowóᲃarpoonĀlrᵲᵶefôᲴighôᲶŢᵿᶅkaro÷གɯᶊ\0\0ᶎrn;挟op;挌ƀcotᶘᶣᶦĀryᶝᶡ;쀀𝒹;䑕l;槶rok;䄑Ādrᶰᶴot;拱iĀ;fᶺ᠖斿Āah᷀᷃ròЩaòྦangle;榦Āci᷒ᷕy;䑟grarr;柿ऀDacdefglmnopqrstuxḁḉḙḸոḼṉṡṾấắẽỡἪἷὄ὎὚ĀDoḆᴴoôᲉĀcsḎḔute耻é䃩ter;橮ȀaioyḢḧḱḶron;䄛rĀ;cḭḮ扖耻ê䃪lon;払;䑍ot;䄗ĀDrṁṅot;扒;쀀𝔢ƀ;rsṐṑṗ檚ave耻è䃨Ā;dṜṝ檖ot;檘Ȁ;ilsṪṫṲṴ檙nters;揧;愓Ā;dṹṺ檕ot;檗ƀapsẅẉẗcr;䄓tyƀ;svẒẓẕ戅et»ẓpĀ1;ẝẤijạả;怄;怅怃ĀgsẪẬ;䅋p;怂ĀgpẴẸon;䄙f;쀀𝕖ƀalsỄỎỒrĀ;sỊị拕l;槣us;橱iƀ;lvỚớở䎵on»ớ;䏵ȀcsuvỪỳἋἣĀioữḱrc»Ḯɩỹ\0\0ỻíՈantĀglἂἆtr»ṝess»Ṻƀaeiἒ἖Ἒls;䀽st;扟vĀ;DȵἠD;橸parsl;槥ĀDaἯἳot;打rr;楱ƀcdiἾὁỸr;愯oô͒ĀahὉὋ;䎷耻ð䃰Āmrὓὗl耻ë䃫o;悬ƀcipὡὤὧl;䀡sôծĀeoὬὴctatioîՙnentialåչৡᾒ\0ᾞ\0ᾡᾧ\0\0ῆῌ\0ΐ\0ῦῪ \0 ⁚llingdotseñṄy;䑄male;晀ƀilrᾭᾳ῁lig;耀ffiɩᾹ\0\0᾽g;耀ffig;耀ffl;쀀𝔣lig;耀filig;쀀fjƀaltῙ῜ῡt;晭ig;耀flns;斱of;䆒ǰ΅\0ῳf;쀀𝕗ĀakֿῷĀ;vῼ´拔;櫙artint;樍Āao‌⁕Ācs‑⁒ႉ‸⁅⁈\0⁐β•‥‧‪‬\0‮耻½䂽;慓耻¼䂼;慕;慙;慛Ƴ‴\0‶;慔;慖ʴ‾⁁\0\0⁃耻¾䂾;慗;慜5;慘ƶ⁌\0⁎;慚;慝8;慞l;恄wn;挢cr;쀀𝒻ࢀEabcdefgijlnorstv₂₉₟₥₰₴⃰⃵⃺⃿℃ℒℸ̗ℾ⅒↞Ā;lٍ₇;檌ƀcmpₐₕ₝ute;䇵maĀ;dₜ᳚䎳;檆reve;䄟Āiy₪₮rc;䄝;䐳ot;䄡Ȁ;lqsؾق₽⃉ƀ;qsؾٌ⃄lanô٥Ȁ;cdl٥⃒⃥⃕c;檩otĀ;o⃜⃝檀Ā;l⃢⃣檂;檄Ā;e⃪⃭쀀⋛︀s;檔r;쀀𝔤Ā;gٳ؛mel;愷cy;䑓Ȁ;Eajٚℌℎℐ;檒;檥;檤ȀEaesℛℝ℩ℴ;扩pĀ;p℣ℤ檊rox»ℤĀ;q℮ℯ檈Ā;q℮ℛim;拧pf;쀀𝕘Āci⅃ⅆr;愊mƀ;el٫ⅎ⅐;檎;檐茀>;cdlqr׮ⅠⅪⅮⅳⅹĀciⅥⅧ;檧r;橺ot;拗Par;榕uest;橼ʀadelsↄⅪ←ٖ↛ǰ↉\0↎proø₞r;楸qĀlqؿ↖lesó₈ií٫Āen↣↭rtneqq;쀀≩︀Å↪ԀAabcefkosy⇄⇇⇱⇵⇺∘∝∯≨≽ròΠȀilmr⇐⇔⇗⇛rsðᒄf»․ilôکĀdr⇠⇤cy;䑊ƀ;cwࣴ⇫⇯ir;楈;憭ar;意irc;䄥ƀalr∁∎∓rtsĀ;u∉∊晥it»∊lip;怦con;抹r;쀀𝔥sĀew∣∩arow;椥arow;椦ʀamopr∺∾≃≞≣rr;懿tht;戻kĀlr≉≓eftarrow;憩ightarrow;憪f;쀀𝕙bar;怕ƀclt≯≴≸r;쀀𝒽asè⇴rok;䄧Ābp⊂⊇ull;恃hen»ᱛૡ⊣\0⊪\0⊸⋅⋎\0⋕⋳\0\0⋸⌢⍧⍢⍿\0⎆⎪⎴cute耻í䃭ƀ;iyݱ⊰⊵rc耻î䃮;䐸Ācx⊼⊿y;䐵cl耻¡䂡ĀfrΟ⋉;쀀𝔦rave耻ì䃬Ȁ;inoܾ⋝⋩⋮Āin⋢⋦nt;樌t;戭fin;槜ta;愩lig;䄳ƀaop⋾⌚⌝ƀcgt⌅⌈⌗r;䄫ƀelpܟ⌏⌓inåގarôܠh;䄱f;抷ed;䆵ʀ;cfotӴ⌬⌱⌽⍁are;愅inĀ;t⌸⌹戞ie;槝doô⌙ʀ;celpݗ⍌⍐⍛⍡al;抺Āgr⍕⍙eróᕣã⍍arhk;樗rod;樼Ȁcgpt⍯⍲⍶⍻y;䑑on;䄯f;쀀𝕚a;䎹uest耻¿䂿Āci⎊⎏r;쀀𝒾nʀ;EdsvӴ⎛⎝⎡ӳ;拹ot;拵Ā;v⎦⎧拴;拳Ā;iݷ⎮lde;䄩ǫ⎸\0⎼cy;䑖l耻ï䃯̀cfmosu⏌⏗⏜⏡⏧⏵Āiy⏑⏕rc;䄵;䐹r;쀀𝔧ath;䈷pf;쀀𝕛ǣ⏬\0⏱r;쀀𝒿rcy;䑘kcy;䑔Ѐacfghjos␋␖␢␧␭␱␵␻ppaĀ;v␓␔䎺;䏰Āey␛␠dil;䄷;䐺r;쀀𝔨reen;䄸cy;䑅cy;䑜pf;쀀𝕜cr;쀀𝓀஀ABEHabcdefghjlmnoprstuv⑰⒁⒆⒍⒑┎┽╚▀♎♞♥♹♽⚚⚲⛘❝❨➋⟀⠁⠒ƀart⑷⑺⑼rò৆òΕail;椛arr;椎Ā;gঔ⒋;檋ar;楢ॣ⒥\0⒪\0⒱\0\0\0\0\0⒵Ⓔ\0ⓆⓈⓍ\0⓹ute;䄺mptyv;榴raîࡌbda;䎻gƀ;dlࢎⓁⓃ;榑åࢎ;檅uo耻«䂫rЀ;bfhlpst࢙ⓞⓦⓩ⓫⓮⓱⓵Ā;f࢝ⓣs;椟s;椝ë≒p;憫l;椹im;楳l;憢ƀ;ae⓿─┄檫il;椙Ā;s┉┊檭;쀀⪭︀ƀabr┕┙┝rr;椌rk;杲Āak┢┬cĀek┨┪;䁻;䁛Āes┱┳;榋lĀdu┹┻;榏;榍Ȁaeuy╆╋╖╘ron;䄾Ādi═╔il;䄼ìࢰâ┩;䐻Ȁcqrs╣╦╭╽a;椶uoĀ;rนᝆĀdu╲╷har;楧shar;楋h;憲ʀ;fgqs▋▌উ◳◿扤tʀahlrt▘▤▷◂◨rrowĀ;t࢙□aé⓶arpoonĀdu▯▴own»њp»०eftarrows;懇ightƀahs◍◖◞rrowĀ;sࣴࢧarpoonó྘quigarro÷⇰hreetimes;拋ƀ;qs▋ও◺lanôবʀ;cdgsব☊☍☝☨c;檨otĀ;o☔☕橿Ā;r☚☛檁;檃Ā;e☢☥쀀⋚︀s;檓ʀadegs☳☹☽♉♋pproøⓆot;拖qĀgq♃♅ôউgtò⒌ôছiíলƀilr♕࣡♚sht;楼;쀀𝔩Ā;Eজ♣;檑š♩♶rĀdu▲♮Ā;l॥♳;楪lk;斄cy;䑙ʀ;achtੈ⚈⚋⚑⚖rò◁orneòᴈard;楫ri;旺Āio⚟⚤dot;䅀ustĀ;a⚬⚭掰che»⚭ȀEaes⚻⚽⛉⛔;扨pĀ;p⛃⛄檉rox»⛄Ā;q⛎⛏檇Ā;q⛎⚻im;拦Ѐabnoptwz⛩⛴⛷✚✯❁❇❐Ānr⛮⛱g;柬r;懽rëࣁgƀlmr⛿✍✔eftĀar০✇ightá৲apsto;柼ightá৽parrowĀlr✥✩efô⓭ight;憬ƀafl✶✹✽r;榅;쀀𝕝us;樭imes;樴š❋❏st;戗áፎƀ;ef❗❘᠀旊nge»❘arĀ;l❤❥䀨t;榓ʀachmt❳❶❼➅➇ròࢨorneòᶌarĀ;d྘➃;業;怎ri;抿̀achiqt➘➝ੀ➢➮➻quo;怹r;쀀𝓁mƀ;egল➪➬;檍;檏Ābu┪➳oĀ;rฟ➹;怚rok;䅂萀<;cdhilqrࠫ⟒☹⟜⟠⟥⟪⟰Āci⟗⟙;檦r;橹reå◲mes;拉arr;楶uest;橻ĀPi⟵⟹ar;榖ƀ;ef⠀भ᠛旃rĀdu⠇⠍shar;楊har;楦Āen⠗⠡rtneqq;쀀≨︀Å⠞܀Dacdefhilnopsu⡀⡅⢂⢎⢓⢠⢥⢨⣚⣢⣤ઃ⣳⤂Dot;戺Ȁclpr⡎⡒⡣⡽r耻¯䂯Āet⡗⡙;時Ā;e⡞⡟朠se»⡟Ā;sျ⡨toȀ;dluျ⡳⡷⡻owîҌefôएðᏑker;斮Āoy⢇⢌mma;権;䐼ash;怔asuredangle»ᘦr;쀀𝔪o;愧ƀcdn⢯⢴⣉ro耻µ䂵Ȁ;acdᑤ⢽⣀⣄sôᚧir;櫰ot肻·Ƶusƀ;bd⣒ᤃ⣓戒Ā;uᴼ⣘;横ţ⣞⣡p;櫛ò−ðઁĀdp⣩⣮els;抧f;쀀𝕞Āct⣸⣽r;쀀𝓂pos»ᖝƀ;lm⤉⤊⤍䎼timap;抸ఀGLRVabcdefghijlmoprstuvw⥂⥓⥾⦉⦘⧚⧩⨕⨚⩘⩝⪃⪕⪤⪨⬄⬇⭄⭿⮮ⰴⱧⱼ⳩Āgt⥇⥋;쀀⋙̸Ā;v⥐௏쀀≫⃒ƀelt⥚⥲⥶ftĀar⥡⥧rrow;懍ightarrow;懎;쀀⋘̸Ā;v⥻ే쀀≪⃒ightarrow;懏ĀDd⦎⦓ash;抯ash;抮ʀbcnpt⦣⦧⦬⦱⧌la»˞ute;䅄g;쀀∠⃒ʀ;Eiop඄⦼⧀⧅⧈;쀀⩰̸d;쀀≋̸s;䅉roø඄urĀ;a⧓⧔普lĀ;s⧓ସdz⧟\0⧣p肻 ଷmpĀ;e௹ఀʀaeouy⧴⧾⨃⨐⨓ǰ⧹\0⧻;橃on;䅈dil;䅆ngĀ;dൾ⨊ot;쀀⩭̸p;橂;䐽ash;怓΀;Aadqsxஒ⨩⨭⨻⩁⩅⩐rr;懗rĀhr⨳⨶k;椤Ā;oᏲᏰot;쀀≐̸uiöୣĀei⩊⩎ar;椨í஘istĀ;s஠டr;쀀𝔫ȀEest௅⩦⩹⩼ƀ;qs஼⩭௡ƀ;qs஼௅⩴lanô௢ií௪Ā;rஶ⪁»ஷƀAap⪊⪍⪑rò⥱rr;憮ar;櫲ƀ;svྍ⪜ྌĀ;d⪡⪢拼;拺cy;䑚΀AEadest⪷⪺⪾⫂⫅⫶⫹rò⥦;쀀≦̸rr;憚r;急Ȁ;fqs఻⫎⫣⫯tĀar⫔⫙rro÷⫁ightarro÷⪐ƀ;qs఻⪺⫪lanôౕĀ;sౕ⫴»శiíౝĀ;rవ⫾iĀ;eచథiäඐĀpt⬌⬑f;쀀𝕟膀¬;in⬙⬚⬶䂬nȀ;Edvஉ⬤⬨⬮;쀀⋹̸ot;쀀⋵̸ǡஉ⬳⬵;拷;拶iĀ;vಸ⬼ǡಸ⭁⭃;拾;拽ƀaor⭋⭣⭩rȀ;ast୻⭕⭚⭟lleì୻l;쀀⫽⃥;쀀∂̸lint;樔ƀ;ceಒ⭰⭳uåಥĀ;cಘ⭸Ā;eಒ⭽ñಘȀAait⮈⮋⮝⮧rò⦈rrƀ;cw⮔⮕⮙憛;쀀⤳̸;쀀↝̸ghtarrow»⮕riĀ;eೋೖ΀chimpqu⮽⯍⯙⬄୸⯤⯯Ȁ;cerല⯆ഷ⯉uå൅;쀀𝓃ortɭ⬅\0\0⯖ará⭖mĀ;e൮⯟Ā;q൴൳suĀbp⯫⯭å೸åഋƀbcp⯶ⰑⰙȀ;Ees⯿ⰀഢⰄ抄;쀀⫅̸etĀ;eഛⰋqĀ;qണⰀcĀ;eലⰗñസȀ;EesⰢⰣൟⰧ抅;쀀⫆̸etĀ;e൘ⰮqĀ;qൠⰣȀgilrⰽⰿⱅⱇìௗlde耻ñ䃱çృiangleĀlrⱒⱜeftĀ;eచⱚñదightĀ;eೋⱥñ೗Ā;mⱬⱭ䎽ƀ;esⱴⱵⱹ䀣ro;愖p;怇ҀDHadgilrsⲏⲔⲙⲞⲣⲰⲶⳓⳣash;抭arr;椄p;쀀≍⃒ash;抬ĀetⲨⲬ;쀀≥⃒;쀀>⃒nfin;槞ƀAetⲽⳁⳅrr;椂;쀀≤⃒Ā;rⳊⳍ쀀<⃒ie;쀀⊴⃒ĀAtⳘⳜrr;椃rie;쀀⊵⃒im;쀀∼⃒ƀAan⳰⳴ⴂrr;懖rĀhr⳺⳽k;椣Ā;oᏧᏥear;椧ቓ᪕\0\0\0\0\0\0\0\0\0\0\0\0\0ⴭ\0ⴸⵈⵠⵥ⵲ⶄᬇ\0\0ⶍⶫ\0ⷈⷎ\0ⷜ⸙⸫⸾⹃Ācsⴱ᪗ute耻ó䃳ĀiyⴼⵅrĀ;c᪞ⵂ耻ô䃴;䐾ʀabios᪠ⵒⵗLjⵚlac;䅑v;樸old;榼lig;䅓Ācr⵩⵭ir;榿;쀀𝔬ͯ⵹\0\0⵼\0ⶂn;䋛ave耻ò䃲;槁Ābmⶈ෴ar;榵Ȁacitⶕ⶘ⶥⶨrò᪀Āir⶝ⶠr;榾oss;榻nå๒;槀ƀaeiⶱⶵⶹcr;䅍ga;䏉ƀcdnⷀⷅǍron;䎿;榶pf;쀀𝕠ƀaelⷔ⷗ǒr;榷rp;榹΀;adiosvⷪⷫⷮ⸈⸍⸐⸖戨rò᪆Ȁ;efmⷷⷸ⸂⸅橝rĀ;oⷾⷿ愴f»ⷿ耻ª䂪耻º䂺gof;抶r;橖lope;橗;橛ƀclo⸟⸡⸧ò⸁ash耻ø䃸l;折iŬⸯ⸴de耻õ䃵esĀ;aǛ⸺s;樶ml耻ö䃶bar;挽ૡ⹞\0⹽\0⺀⺝\0⺢⺹\0\0⻋ຜ\0⼓\0\0⼫⾼\0⿈rȀ;astЃ⹧⹲຅脀¶;l⹭⹮䂶leìЃɩ⹸\0\0⹻m;櫳;櫽y;䐿rʀcimpt⺋⺏⺓ᡥ⺗nt;䀥od;䀮il;怰enk;怱r;쀀𝔭ƀimo⺨⺰⺴Ā;v⺭⺮䏆;䏕maô੶ne;明ƀ;tv⺿⻀⻈䏀chfork»´;䏖Āau⻏⻟nĀck⻕⻝kĀ;h⇴⻛;愎ö⇴sҀ;abcdemst⻳⻴ᤈ⻹⻽⼄⼆⼊⼎䀫cir;樣ir;樢Āouᵀ⼂;樥;橲n肻±ຝim;樦wo;樧ƀipu⼙⼠⼥ntint;樕f;쀀𝕡nd耻£䂣Ԁ;Eaceinosu່⼿⽁⽄⽇⾁⾉⾒⽾⾶;檳p;檷uå໙Ā;c໎⽌̀;acens່⽙⽟⽦⽨⽾pproø⽃urlyeñ໙ñ໎ƀaes⽯⽶⽺pprox;檹qq;檵im;拨iíໟmeĀ;s⾈ຮ怲ƀEas⽸⾐⽺ð⽵ƀdfp໬⾙⾯ƀals⾠⾥⾪lar;挮ine;挒urf;挓Ā;t໻⾴ï໻rel;抰Āci⿀⿅r;쀀𝓅;䏈ncsp;怈̀fiopsu⿚⋢⿟⿥⿫⿱r;쀀𝔮pf;쀀𝕢rime;恗cr;쀀𝓆ƀaeo⿸〉〓tĀei⿾々rnionóڰnt;樖stĀ;e【】䀿ñἙô༔઀ABHabcdefhilmnoprstux぀けさすムㄎㄫㅇㅢㅲㆎ㈆㈕㈤㈩㉘㉮㉲㊐㊰㊷ƀartぇおがròႳòϝail;検aròᱥar;楤΀cdenqrtとふへみわゔヌĀeuねぱ;쀀∽̱te;䅕iãᅮmptyv;榳gȀ;del࿑らるろ;榒;榥å࿑uo耻»䂻rր;abcfhlpstw࿜ガクシスゼゾダッデナp;極Ā;f࿠ゴs;椠;椳s;椞ë≝ð✮l;楅im;楴l;憣;憝Āaiパフil;椚oĀ;nホボ戶aló༞ƀabrョリヮrò៥rk;杳ĀakンヽcĀekヹ・;䁽;䁝Āes㄂㄄;榌lĀduㄊㄌ;榎;榐Ȁaeuyㄗㄜㄧㄩron;䅙Ādiㄡㄥil;䅗ì࿲âヺ;䑀Ȁclqsㄴㄷㄽㅄa;椷dhar;楩uoĀ;rȎȍh;憳ƀacgㅎㅟངlȀ;ipsླྀㅘㅛႜnåႻarôྩt;断ƀilrㅩဣㅮsht;楽;쀀𝔯ĀaoㅷㆆrĀduㅽㅿ»ѻĀ;l႑ㆄ;楬Ā;vㆋㆌ䏁;䏱ƀgns㆕ㇹㇼht̀ahlrstㆤㆰ㇂㇘㇤㇮rrowĀ;t࿜ㆭaéトarpoonĀduㆻㆿowîㅾp»႒eftĀah㇊㇐rrowó࿪arpoonóՑightarrows;應quigarro÷ニhreetimes;拌g;䋚ingdotseñἲƀahm㈍㈐㈓rò࿪aòՑ;怏oustĀ;a㈞㈟掱che»㈟mid;櫮Ȁabpt㈲㈽㉀㉒Ānr㈷㈺g;柭r;懾rëဃƀafl㉇㉊㉎r;榆;쀀𝕣us;樮imes;樵Āap㉝㉧rĀ;g㉣㉤䀩t;榔olint;樒arò㇣Ȁachq㉻㊀Ⴜ㊅quo;怺r;쀀𝓇Ābu・㊊oĀ;rȔȓƀhir㊗㊛㊠reåㇸmes;拊iȀ;efl㊪ၙᠡ㊫方tri;槎luhar;楨;愞ൡ㋕㋛㋟㌬㌸㍱\0㍺㎤\0\0㏬㏰\0㐨㑈㑚㒭㒱㓊㓱\0㘖\0\0㘳cute;䅛quï➺Ԁ;Eaceinpsyᇭ㋳㋵㋿㌂㌋㌏㌟㌦㌩;檴ǰ㋺\0㋼;檸on;䅡uåᇾĀ;dᇳ㌇il;䅟rc;䅝ƀEas㌖㌘㌛;檶p;檺im;择olint;樓iíሄ;䑁otƀ;be㌴ᵇ㌵担;橦΀Aacmstx㍆㍊㍗㍛㍞㍣㍭rr;懘rĀhr㍐㍒ë∨Ā;oਸ਼਴t耻§䂧i;䀻war;椩mĀin㍩ðnuóñt;朶rĀ;o㍶⁕쀀𝔰Ȁacoy㎂㎆㎑㎠rp;景Āhy㎋㎏cy;䑉;䑈rtɭ㎙\0\0㎜iäᑤaraì⹯耻­䂭Āgm㎨㎴maƀ;fv㎱㎲㎲䏃;䏂Ѐ;deglnprካ㏅㏉㏎㏖㏞㏡㏦ot;橪Ā;q኱ኰĀ;E㏓㏔檞;檠Ā;E㏛㏜檝;檟e;扆lus;樤arr;楲aròᄽȀaeit㏸㐈㐏㐗Āls㏽㐄lsetmé㍪hp;樳parsl;槤Ādlᑣ㐔e;挣Ā;e㐜㐝檪Ā;s㐢㐣檬;쀀⪬︀ƀflp㐮㐳㑂tcy;䑌Ā;b㐸㐹䀯Ā;a㐾㐿槄r;挿f;쀀𝕤aĀdr㑍ЂesĀ;u㑔㑕晠it»㑕ƀcsu㑠㑹㒟Āau㑥㑯pĀ;sᆈ㑫;쀀⊓︀pĀ;sᆴ㑵;쀀⊔︀uĀbp㑿㒏ƀ;esᆗᆜ㒆etĀ;eᆗ㒍ñᆝƀ;esᆨᆭ㒖etĀ;eᆨ㒝ñᆮƀ;afᅻ㒦ְrť㒫ֱ»ᅼaròᅈȀcemt㒹㒾㓂㓅r;쀀𝓈tmîñiì㐕aræᆾĀar㓎㓕rĀ;f㓔ឿ昆Āan㓚㓭ightĀep㓣㓪psiloîỠhé⺯s»⡒ʀbcmnp㓻㕞ሉ㖋㖎Ҁ;Edemnprs㔎㔏㔑㔕㔞㔣㔬㔱㔶抂;櫅ot;檽Ā;dᇚ㔚ot;櫃ult;櫁ĀEe㔨㔪;櫋;把lus;檿arr;楹ƀeiu㔽㕒㕕tƀ;en㔎㕅㕋qĀ;qᇚ㔏eqĀ;q㔫㔨m;櫇Ābp㕚㕜;櫕;櫓c̀;acensᇭ㕬㕲㕹㕻㌦pproø㋺urlyeñᇾñᇳƀaes㖂㖈㌛pproø㌚qñ㌗g;晪ڀ123;Edehlmnps㖩㖬㖯ሜ㖲㖴㗀㗉㗕㗚㗟㗨㗭耻¹䂹耻²䂲耻³䂳;櫆Āos㖹㖼t;檾ub;櫘Ā;dሢ㗅ot;櫄sĀou㗏㗒l;柉b;櫗arr;楻ult;櫂ĀEe㗤㗦;櫌;抋lus;櫀ƀeiu㗴㘉㘌tƀ;enሜ㗼㘂qĀ;qሢ㖲eqĀ;q㗧㗤m;櫈Ābp㘑㘓;櫔;櫖ƀAan㘜㘠㘭rr;懙rĀhr㘦㘨ë∮Ā;oਫ਩war;椪lig耻ß䃟௡㙑㙝㙠ዎ㙳㙹\0㙾㛂\0\0\0\0\0㛛㜃\0㜉㝬\0\0\0㞇ɲ㙖\0\0㙛get;挖;䏄rë๟ƀaey㙦㙫㙰ron;䅥dil;䅣;䑂lrec;挕r;쀀𝔱Ȁeiko㚆㚝㚵㚼Dz㚋\0㚑eĀ4fኄኁaƀ;sv㚘㚙㚛䎸ym;䏑Ācn㚢㚲kĀas㚨㚮pproø዁im»ኬsðኞĀas㚺㚮ð዁rn耻þ䃾Ǭ̟㛆⋧es膀×;bd㛏㛐㛘䃗Ā;aᤏ㛕r;樱;樰ƀeps㛡㛣㜀á⩍Ȁ;bcf҆㛬㛰㛴ot;挶ir;櫱Ā;o㛹㛼쀀𝕥rk;櫚á㍢rime;怴ƀaip㜏㜒㝤dåቈ΀adempst㜡㝍㝀㝑㝗㝜㝟ngleʀ;dlqr㜰㜱㜶㝀㝂斵own»ᶻeftĀ;e⠀㜾ñम;扜ightĀ;e㊪㝋ñၚot;旬inus;樺lus;樹b;槍ime;樻ezium;揢ƀcht㝲㝽㞁Āry㝷㝻;쀀𝓉;䑆cy;䑛rok;䅧Āio㞋㞎xô᝷headĀlr㞗㞠eftarro÷ࡏightarrow»ཝऀAHabcdfghlmoprstuw㟐㟓㟗㟤㟰㟼㠎㠜㠣㠴㡑㡝㡫㢩㣌㣒㣪㣶ròϭar;楣Ācr㟜㟢ute耻ú䃺òᅐrǣ㟪\0㟭y;䑞ve;䅭Āiy㟵㟺rc耻û䃻;䑃ƀabh㠃㠆㠋ròᎭlac;䅱aòᏃĀir㠓㠘sht;楾;쀀𝔲rave耻ù䃹š㠧㠱rĀlr㠬㠮»ॗ»ႃlk;斀Āct㠹㡍ɯ㠿\0\0㡊rnĀ;e㡅㡆挜r»㡆op;挏ri;旸Āal㡖㡚cr;䅫肻¨͉Āgp㡢㡦on;䅳f;쀀𝕦̀adhlsuᅋ㡸㡽፲㢑㢠ownáᎳarpoonĀlr㢈㢌efô㠭ighô㠯iƀ;hl㢙㢚㢜䏅»ᏺon»㢚parrows;懈ƀcit㢰㣄㣈ɯ㢶\0\0㣁rnĀ;e㢼㢽挝r»㢽op;挎ng;䅯ri;旹cr;쀀𝓊ƀdir㣙㣝㣢ot;拰lde;䅩iĀ;f㜰㣨»᠓Āam㣯㣲rò㢨l耻ü䃼angle;榧ހABDacdeflnoprsz㤜㤟㤩㤭㦵㦸㦽㧟㧤㧨㧳㧹㧽㨁㨠ròϷarĀ;v㤦㤧櫨;櫩asèϡĀnr㤲㤷grt;榜΀eknprst㓣㥆㥋㥒㥝㥤㦖appá␕othinçẖƀhir㓫⻈㥙opô⾵Ā;hᎷ㥢ïㆍĀiu㥩㥭gmá㎳Ābp㥲㦄setneqĀ;q㥽㦀쀀⊊︀;쀀⫋︀setneqĀ;q㦏㦒쀀⊋︀;쀀⫌︀Āhr㦛㦟etá㚜iangleĀlr㦪㦯eft»थight»ၑy;䐲ash»ံƀelr㧄㧒㧗ƀ;beⷪ㧋㧏ar;抻q;扚lip;拮Ābt㧜ᑨaòᑩr;쀀𝔳tré㦮suĀbp㧯㧱»ജ»൙pf;쀀𝕧roð໻tré㦴Ācu㨆㨋r;쀀𝓋Ābp㨐㨘nĀEe㦀㨖»㥾nĀEe㦒㨞»㦐igzag;榚΀cefoprs㨶㨻㩖㩛㩔㩡㩪irc;䅵Ādi㩀㩑Ābg㩅㩉ar;機eĀ;qᗺ㩏;扙erp;愘r;쀀𝔴pf;쀀𝕨Ā;eᑹ㩦atèᑹcr;쀀𝓌ૣណ㪇\0㪋\0㪐㪛\0\0㪝㪨㪫㪯\0\0㫃㫎\0㫘ៜ៟tré៑r;쀀𝔵ĀAa㪔㪗ròσrò৶;䎾ĀAa㪡㪤ròθrò৫að✓is;拻ƀdptឤ㪵㪾Āfl㪺ឩ;쀀𝕩imåឲĀAa㫇㫊ròώròਁĀcq㫒ីr;쀀𝓍Āpt៖㫜ré។Ѐacefiosu㫰㫽㬈㬌㬑㬕㬛㬡cĀuy㫶㫻te耻ý䃽;䑏Āiy㬂㬆rc;䅷;䑋n耻¥䂥r;쀀𝔶cy;䑗pf;쀀𝕪cr;쀀𝓎Ācm㬦㬩y;䑎l耻ÿ䃿Ԁacdefhiosw㭂㭈㭔㭘㭤㭩㭭㭴㭺㮀cute;䅺Āay㭍㭒ron;䅾;䐷ot;䅼Āet㭝㭡træᕟa;䎶r;쀀𝔷cy;䐶grarr;懝pf;쀀𝕫cr;쀀𝓏Ājn㮅㮇;怍j;怌'.split("").map((function(e){return e.charCodeAt(0)})))},7424:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=new Uint16Array("Ȁaglq\tɭ\0\0p;䀦os;䀧t;䀾t;䀼uot;䀢".split("").map((function(e){return e.charCodeAt(0)})))},6437:(e,t)=>{"use strict";function r(e){for(var t=1;t{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.decodeXMLStrict=t.decodeHTML5Strict=t.decodeHTML4Strict=t.decodeHTML5=t.decodeHTML4=t.decodeHTMLAttribute=t.decodeHTMLStrict=t.decodeHTML=t.decodeXML=t.DecodingMode=t.EntityDecoder=t.encodeHTML5=t.encodeHTML4=t.encodeNonAsciiHTML=t.encodeHTML=t.escapeText=t.escapeAttribute=t.escapeUTF8=t.escape=t.encodeXML=t.encode=t.decodeStrict=t.decode=t.EncodingMode=t.EntityLevel=void 0;var i,n,s=r(3094),o=r(1029),a=r(9970);function l(e,t){if(void 0===t&&(t=i.XML),("number"==typeof t?t:t.level)===i.HTML){var r="object"==typeof t?t.mode:void 0;return(0,s.decodeHTML)(e,r)}return(0,s.decodeXML)(e)}!function(e){e[e.XML=0]="XML",e[e.HTML=1]="HTML"}(i=t.EntityLevel||(t.EntityLevel={})),function(e){e[e.UTF8=0]="UTF8",e[e.ASCII=1]="ASCII",e[e.Extensive=2]="Extensive",e[e.Attribute=3]="Attribute",e[e.Text=4]="Text"}(n=t.EncodingMode||(t.EncodingMode={})),t.decode=l,t.decodeStrict=function(e,t){var r;void 0===t&&(t=i.XML);var n="number"==typeof t?{level:t}:t;return null!==(r=n.mode)&&void 0!==r||(n.mode=s.DecodingMode.Strict),l(e,n)},t.encode=function(e,t){void 0===t&&(t=i.XML);var r="number"==typeof t?{level:t}:t;return r.mode===n.UTF8?(0,a.escapeUTF8)(e):r.mode===n.Attribute?(0,a.escapeAttribute)(e):r.mode===n.Text?(0,a.escapeText)(e):r.level===i.HTML?r.mode===n.ASCII?(0,o.encodeNonAsciiHTML)(e):(0,o.encodeHTML)(e):(0,a.encodeXML)(e)};var c=r(9970);Object.defineProperty(t,"encodeXML",{enumerable:!0,get:function(){return c.encodeXML}}),Object.defineProperty(t,"escape",{enumerable:!0,get:function(){return c.escape}}),Object.defineProperty(t,"escapeUTF8",{enumerable:!0,get:function(){return c.escapeUTF8}}),Object.defineProperty(t,"escapeAttribute",{enumerable:!0,get:function(){return c.escapeAttribute}}),Object.defineProperty(t,"escapeText",{enumerable:!0,get:function(){return c.escapeText}});var u=r(1029);Object.defineProperty(t,"encodeHTML",{enumerable:!0,get:function(){return u.encodeHTML}}),Object.defineProperty(t,"encodeNonAsciiHTML",{enumerable:!0,get:function(){return u.encodeNonAsciiHTML}}),Object.defineProperty(t,"encodeHTML4",{enumerable:!0,get:function(){return u.encodeHTML}}),Object.defineProperty(t,"encodeHTML5",{enumerable:!0,get:function(){return u.encodeHTML}});var h=r(3094);Object.defineProperty(t,"EntityDecoder",{enumerable:!0,get:function(){return h.EntityDecoder}}),Object.defineProperty(t,"DecodingMode",{enumerable:!0,get:function(){return h.DecodingMode}}),Object.defineProperty(t,"decodeXML",{enumerable:!0,get:function(){return h.decodeXML}}),Object.defineProperty(t,"decodeHTML",{enumerable:!0,get:function(){return h.decodeHTML}}),Object.defineProperty(t,"decodeHTMLStrict",{enumerable:!0,get:function(){return h.decodeHTMLStrict}}),Object.defineProperty(t,"decodeHTMLAttribute",{enumerable:!0,get:function(){return h.decodeHTMLAttribute}}),Object.defineProperty(t,"decodeHTML4",{enumerable:!0,get:function(){return h.decodeHTML}}),Object.defineProperty(t,"decodeHTML5",{enumerable:!0,get:function(){return h.decodeHTML}}),Object.defineProperty(t,"decodeHTML4Strict",{enumerable:!0,get:function(){return h.decodeHTMLStrict}}),Object.defineProperty(t,"decodeHTML5Strict",{enumerable:!0,get:function(){return h.decodeHTMLStrict}}),Object.defineProperty(t,"decodeXMLStrict",{enumerable:!0,get:function(){return h.decodeXML}})},8102:e=>{"use strict";e.exports=e=>{if("string"!=typeof e)throw new TypeError("Expected a string");return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}},5233:function(e,t,r){"use strict";var i=this&&this.__createBinding||(Object.create?function(e,t,r,i){void 0===i&&(i=r);var n=Object.getOwnPropertyDescriptor(t,r);n&&!("get"in n?!t.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,i,n)}:function(e,t,r,i){void 0===i&&(i=r),e[i]=t[r]}),n=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&i(t,e,r);return n(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.Parser=void 0;var o=s(r(9636)),a=r(3094),l=new Set(["input","option","optgroup","select","button","datalist","textarea"]),c=new Set(["p"]),u=new Set(["thead","tbody"]),h=new Set(["dd","dt"]),p=new Set(["rt","rp"]),d=new Map([["tr",new Set(["tr","th","td"])],["th",new Set(["th"])],["td",new Set(["thead","th","td"])],["body",new Set(["head","link","script"])],["li",new Set(["li"])],["p",c],["h1",c],["h2",c],["h3",c],["h4",c],["h5",c],["h6",c],["select",l],["input",l],["output",l],["button",l],["datalist",l],["textarea",l],["option",new Set(["option"])],["optgroup",new Set(["optgroup","option"])],["dd",h],["dt",h],["address",c],["article",c],["aside",c],["blockquote",c],["details",c],["div",c],["dl",c],["fieldset",c],["figcaption",c],["figure",c],["footer",c],["form",c],["header",c],["hr",c],["main",c],["nav",c],["ol",c],["pre",c],["section",c],["table",c],["ul",c],["rt",p],["rp",p],["tbody",u],["tfoot",u]]),f=new Set(["area","base","basefont","br","col","command","embed","frame","hr","img","input","isindex","keygen","link","meta","param","source","track","wbr"]),m=new Set(["math","svg"]),g=new Set(["mi","mo","mn","ms","mtext","annotation-xml","foreignobject","desc","title"]),b=/\s|\//,y=function(){function e(e,t){var r,i,n,s,a;void 0===t&&(t={}),this.options=t,this.startIndex=0,this.endIndex=0,this.openTagStart=0,this.tagname="",this.attribname="",this.attribvalue="",this.attribs=null,this.stack=[],this.foreignContext=[],this.buffers=[],this.bufferOffset=0,this.writeIndex=0,this.ended=!1,this.cbs=null!=e?e:{},this.lowerCaseTagNames=null!==(r=t.lowerCaseTags)&&void 0!==r?r:!t.xmlMode,this.lowerCaseAttributeNames=null!==(i=t.lowerCaseAttributeNames)&&void 0!==i?i:!t.xmlMode,this.tokenizer=new(null!==(n=t.Tokenizer)&&void 0!==n?n:o.default)(this.options,this),null===(a=(s=this.cbs).onparserinit)||void 0===a||a.call(s,this)}return e.prototype.ontext=function(e,t){var r,i,n=this.getSlice(e,t);this.endIndex=t-1,null===(i=(r=this.cbs).ontext)||void 0===i||i.call(r,n),this.startIndex=t},e.prototype.ontextentity=function(e){var t,r,i=this.tokenizer.getSectionStart();this.endIndex=i-1,null===(r=(t=this.cbs).ontext)||void 0===r||r.call(t,(0,a.fromCodePoint)(e)),this.startIndex=i},e.prototype.isVoidElement=function(e){return!this.options.xmlMode&&f.has(e)},e.prototype.onopentagname=function(e,t){this.endIndex=t;var r=this.getSlice(e,t);this.lowerCaseTagNames&&(r=r.toLowerCase()),this.emitOpenTag(r)},e.prototype.emitOpenTag=function(e){var t,r,i,n;this.openTagStart=this.startIndex,this.tagname=e;var s=!this.options.xmlMode&&d.get(e);if(s)for(;this.stack.length>0&&s.has(this.stack[this.stack.length-1]);){var o=this.stack.pop();null===(r=(t=this.cbs).onclosetag)||void 0===r||r.call(t,o,!0)}this.isVoidElement(e)||(this.stack.push(e),m.has(e)?this.foreignContext.push(!0):g.has(e)&&this.foreignContext.push(!1)),null===(n=(i=this.cbs).onopentagname)||void 0===n||n.call(i,e),this.cbs.onopentag&&(this.attribs={})},e.prototype.endOpenTag=function(e){var t,r;this.startIndex=this.openTagStart,this.attribs&&(null===(r=(t=this.cbs).onopentag)||void 0===r||r.call(t,this.tagname,this.attribs,e),this.attribs=null),this.cbs.onclosetag&&this.isVoidElement(this.tagname)&&this.cbs.onclosetag(this.tagname,!0),this.tagname=""},e.prototype.onopentagend=function(e){this.endIndex=e,this.endOpenTag(!1),this.startIndex=e+1},e.prototype.onclosetag=function(e,t){var r,i,n,s,o,a;this.endIndex=t;var l=this.getSlice(e,t);if(this.lowerCaseTagNames&&(l=l.toLowerCase()),(m.has(l)||g.has(l))&&this.foreignContext.pop(),this.isVoidElement(l))this.options.xmlMode||"br"!==l||(null===(i=(r=this.cbs).onopentagname)||void 0===i||i.call(r,"br"),null===(s=(n=this.cbs).onopentag)||void 0===s||s.call(n,"br",{},!0),null===(a=(o=this.cbs).onclosetag)||void 0===a||a.call(o,"br",!1));else{var c=this.stack.lastIndexOf(l);if(-1!==c)if(this.cbs.onclosetag)for(var u=this.stack.length-c;u--;)this.cbs.onclosetag(this.stack.pop(),0!==u);else this.stack.length=c;else this.options.xmlMode||"p"!==l||(this.emitOpenTag("p"),this.closeCurrentTag(!0))}this.startIndex=t+1},e.prototype.onselfclosingtag=function(e){this.endIndex=e,this.options.xmlMode||this.options.recognizeSelfClosing||this.foreignContext[this.foreignContext.length-1]?(this.closeCurrentTag(!1),this.startIndex=e+1):this.onopentagend(e)},e.prototype.closeCurrentTag=function(e){var t,r,i=this.tagname;this.endOpenTag(e),this.stack[this.stack.length-1]===i&&(null===(r=(t=this.cbs).onclosetag)||void 0===r||r.call(t,i,!e),this.stack.pop())},e.prototype.onattribname=function(e,t){this.startIndex=e;var r=this.getSlice(e,t);this.attribname=this.lowerCaseAttributeNames?r.toLowerCase():r},e.prototype.onattribdata=function(e,t){this.attribvalue+=this.getSlice(e,t)},e.prototype.onattribentity=function(e){this.attribvalue+=(0,a.fromCodePoint)(e)},e.prototype.onattribend=function(e,t){var r,i;this.endIndex=t,null===(i=(r=this.cbs).onattribute)||void 0===i||i.call(r,this.attribname,this.attribvalue,e===o.QuoteType.Double?'"':e===o.QuoteType.Single?"'":e===o.QuoteType.NoValue?void 0:null),this.attribs&&!Object.prototype.hasOwnProperty.call(this.attribs,this.attribname)&&(this.attribs[this.attribname]=this.attribvalue),this.attribvalue=""},e.prototype.getInstructionName=function(e){var t=e.search(b),r=t<0?e:e.substr(0,t);return this.lowerCaseTagNames&&(r=r.toLowerCase()),r},e.prototype.ondeclaration=function(e,t){this.endIndex=t;var r=this.getSlice(e,t);if(this.cbs.onprocessinginstruction){var i=this.getInstructionName(r);this.cbs.onprocessinginstruction("!".concat(i),"!".concat(r))}this.startIndex=t+1},e.prototype.onprocessinginstruction=function(e,t){this.endIndex=t;var r=this.getSlice(e,t);if(this.cbs.onprocessinginstruction){var i=this.getInstructionName(r);this.cbs.onprocessinginstruction("?".concat(i),"?".concat(r))}this.startIndex=t+1},e.prototype.oncomment=function(e,t,r){var i,n,s,o;this.endIndex=t,null===(n=(i=this.cbs).oncomment)||void 0===n||n.call(i,this.getSlice(e,t-r)),null===(o=(s=this.cbs).oncommentend)||void 0===o||o.call(s),this.startIndex=t+1},e.prototype.oncdata=function(e,t,r){var i,n,s,o,a,l,c,u,h,p;this.endIndex=t;var d=this.getSlice(e,t-r);this.options.xmlMode||this.options.recognizeCDATA?(null===(n=(i=this.cbs).oncdatastart)||void 0===n||n.call(i),null===(o=(s=this.cbs).ontext)||void 0===o||o.call(s,d),null===(l=(a=this.cbs).oncdataend)||void 0===l||l.call(a)):(null===(u=(c=this.cbs).oncomment)||void 0===u||u.call(c,"[CDATA[".concat(d,"]]")),null===(p=(h=this.cbs).oncommentend)||void 0===p||p.call(h)),this.startIndex=t+1},e.prototype.onend=function(){var e,t;if(this.cbs.onclosetag){this.endIndex=this.startIndex;for(var r=this.stack.length;r>0;this.cbs.onclosetag(this.stack[--r],!0));}null===(t=(e=this.cbs).onend)||void 0===t||t.call(e)},e.prototype.reset=function(){var e,t,r,i;null===(t=(e=this.cbs).onreset)||void 0===t||t.call(e),this.tokenizer.reset(),this.tagname="",this.attribname="",this.attribs=null,this.stack.length=0,this.startIndex=0,this.endIndex=0,null===(i=(r=this.cbs).onparserinit)||void 0===i||i.call(r,this),this.buffers.length=0,this.bufferOffset=0,this.writeIndex=0,this.ended=!1},e.prototype.parseComplete=function(e){this.reset(),this.end(e)},e.prototype.getSlice=function(e,t){for(;e-this.bufferOffset>=this.buffers[0].length;)this.shiftBuffer();for(var r=this.buffers[0].slice(e-this.bufferOffset,t-this.bufferOffset);t-this.bufferOffset>this.buffers[0].length;)this.shiftBuffer(),r+=this.buffers[0].slice(0,t-this.bufferOffset);return r},e.prototype.shiftBuffer=function(){this.bufferOffset+=this.buffers[0].length,this.writeIndex--,this.buffers.shift()},e.prototype.write=function(e){var t,r;this.ended?null===(r=(t=this.cbs).onerror)||void 0===r||r.call(t,new Error(".write() after done!")):(this.buffers.push(e),this.tokenizer.running&&(this.tokenizer.write(e),this.writeIndex++))},e.prototype.end=function(e){var t,r;this.ended?null===(r=(t=this.cbs).onerror)||void 0===r||r.call(t,new Error(".end() after done!")):(e&&this.write(e),this.ended=!0,this.tokenizer.end())},e.prototype.pause=function(){this.tokenizer.pause()},e.prototype.resume=function(){for(this.tokenizer.resume();this.tokenizer.running&&this.writeIndex{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.QuoteType=void 0;var i,n,s,o=r(3094);function a(e){return e===i.Space||e===i.NewLine||e===i.Tab||e===i.FormFeed||e===i.CarriageReturn}function l(e){return e===i.Slash||e===i.Gt||a(e)}function c(e){return e>=i.Zero&&e<=i.Nine}!function(e){e[e.Tab=9]="Tab",e[e.NewLine=10]="NewLine",e[e.FormFeed=12]="FormFeed",e[e.CarriageReturn=13]="CarriageReturn",e[e.Space=32]="Space",e[e.ExclamationMark=33]="ExclamationMark",e[e.Number=35]="Number",e[e.Amp=38]="Amp",e[e.SingleQuote=39]="SingleQuote",e[e.DoubleQuote=34]="DoubleQuote",e[e.Dash=45]="Dash",e[e.Slash=47]="Slash",e[e.Zero=48]="Zero",e[e.Nine=57]="Nine",e[e.Semi=59]="Semi",e[e.Lt=60]="Lt",e[e.Eq=61]="Eq",e[e.Gt=62]="Gt",e[e.Questionmark=63]="Questionmark",e[e.UpperA=65]="UpperA",e[e.LowerA=97]="LowerA",e[e.UpperF=70]="UpperF",e[e.LowerF=102]="LowerF",e[e.UpperZ=90]="UpperZ",e[e.LowerZ=122]="LowerZ",e[e.LowerX=120]="LowerX",e[e.OpeningSquareBracket=91]="OpeningSquareBracket"}(i||(i={})),function(e){e[e.Text=1]="Text",e[e.BeforeTagName=2]="BeforeTagName",e[e.InTagName=3]="InTagName",e[e.InSelfClosingTag=4]="InSelfClosingTag",e[e.BeforeClosingTagName=5]="BeforeClosingTagName",e[e.InClosingTagName=6]="InClosingTagName",e[e.AfterClosingTagName=7]="AfterClosingTagName",e[e.BeforeAttributeName=8]="BeforeAttributeName",e[e.InAttributeName=9]="InAttributeName",e[e.AfterAttributeName=10]="AfterAttributeName",e[e.BeforeAttributeValue=11]="BeforeAttributeValue",e[e.InAttributeValueDq=12]="InAttributeValueDq",e[e.InAttributeValueSq=13]="InAttributeValueSq",e[e.InAttributeValueNq=14]="InAttributeValueNq",e[e.BeforeDeclaration=15]="BeforeDeclaration",e[e.InDeclaration=16]="InDeclaration",e[e.InProcessingInstruction=17]="InProcessingInstruction",e[e.BeforeComment=18]="BeforeComment",e[e.CDATASequence=19]="CDATASequence",e[e.InSpecialComment=20]="InSpecialComment",e[e.InCommentLike=21]="InCommentLike",e[e.BeforeSpecialS=22]="BeforeSpecialS",e[e.SpecialStartSequence=23]="SpecialStartSequence",e[e.InSpecialTag=24]="InSpecialTag",e[e.BeforeEntity=25]="BeforeEntity",e[e.BeforeNumericEntity=26]="BeforeNumericEntity",e[e.InNamedEntity=27]="InNamedEntity",e[e.InNumericEntity=28]="InNumericEntity",e[e.InHexEntity=29]="InHexEntity"}(n||(n={})),function(e){e[e.NoValue=0]="NoValue",e[e.Unquoted=1]="Unquoted",e[e.Single=2]="Single",e[e.Double=3]="Double"}(s=t.QuoteType||(t.QuoteType={}));var u={Cdata:new Uint8Array([67,68,65,84,65,91]),CdataEnd:new Uint8Array([93,93,62]),CommentEnd:new Uint8Array([45,45,62]),ScriptEnd:new Uint8Array([60,47,115,99,114,105,112,116]),StyleEnd:new Uint8Array([60,47,115,116,121,108,101]),TitleEnd:new Uint8Array([60,47,116,105,116,108,101])},h=function(){function e(e,t){var r=e.xmlMode,i=void 0!==r&&r,s=e.decodeEntities,a=void 0===s||s;this.cbs=t,this.state=n.Text,this.buffer="",this.sectionStart=0,this.index=0,this.baseState=n.Text,this.isSpecial=!1,this.running=!0,this.offset=0,this.currentSequence=void 0,this.sequenceIndex=0,this.trieIndex=0,this.trieCurrent=0,this.entityResult=0,this.entityExcess=0,this.xmlMode=i,this.decodeEntities=a,this.entityTrie=i?o.xmlDecodeTree:o.htmlDecodeTree}return e.prototype.reset=function(){this.state=n.Text,this.buffer="",this.sectionStart=0,this.index=0,this.baseState=n.Text,this.currentSequence=void 0,this.running=!0,this.offset=0},e.prototype.write=function(e){this.offset+=this.buffer.length,this.buffer=e,this.parse()},e.prototype.end=function(){this.running&&this.finish()},e.prototype.pause=function(){this.running=!1},e.prototype.resume=function(){this.running=!0,this.indexthis.sectionStart&&this.cbs.ontext(this.sectionStart,this.index),this.state=n.BeforeTagName,this.sectionStart=this.index):this.decodeEntities&&e===i.Amp&&(this.state=n.BeforeEntity)},e.prototype.stateSpecialStartSequence=function(e){var t=this.sequenceIndex===this.currentSequence.length;if(t?l(e):(32|e)===this.currentSequence[this.sequenceIndex]){if(!t)return void this.sequenceIndex++}else this.isSpecial=!1;this.sequenceIndex=0,this.state=n.InTagName,this.stateInTagName(e)},e.prototype.stateInSpecialTag=function(e){if(this.sequenceIndex===this.currentSequence.length){if(e===i.Gt||a(e)){var t=this.index-this.currentSequence.length;if(this.sectionStart=i.LowerA&&e<=i.LowerZ||e>=i.UpperA&&e<=i.UpperZ}(e)},e.prototype.startSpecial=function(e,t){this.isSpecial=!0,this.currentSequence=e,this.sequenceIndex=t,this.state=n.SpecialStartSequence},e.prototype.stateBeforeTagName=function(e){if(e===i.ExclamationMark)this.state=n.BeforeDeclaration,this.sectionStart=this.index+1;else if(e===i.Questionmark)this.state=n.InProcessingInstruction,this.sectionStart=this.index+1;else if(this.isTagStartChar(e)){var t=32|e;this.sectionStart=this.index,this.xmlMode||t!==u.TitleEnd[2]?this.state=this.xmlMode||t!==u.ScriptEnd[2]?n.InTagName:n.BeforeSpecialS:this.startSpecial(u.TitleEnd,3)}else e===i.Slash?this.state=n.BeforeClosingTagName:(this.state=n.Text,this.stateText(e))},e.prototype.stateInTagName=function(e){l(e)&&(this.cbs.onopentagname(this.sectionStart,this.index),this.sectionStart=-1,this.state=n.BeforeAttributeName,this.stateBeforeAttributeName(e))},e.prototype.stateBeforeClosingTagName=function(e){a(e)||(e===i.Gt?this.state=n.Text:(this.state=this.isTagStartChar(e)?n.InClosingTagName:n.InSpecialComment,this.sectionStart=this.index))},e.prototype.stateInClosingTagName=function(e){(e===i.Gt||a(e))&&(this.cbs.onclosetag(this.sectionStart,this.index),this.sectionStart=-1,this.state=n.AfterClosingTagName,this.stateAfterClosingTagName(e))},e.prototype.stateAfterClosingTagName=function(e){(e===i.Gt||this.fastForwardTo(i.Gt))&&(this.state=n.Text,this.baseState=n.Text,this.sectionStart=this.index+1)},e.prototype.stateBeforeAttributeName=function(e){e===i.Gt?(this.cbs.onopentagend(this.index),this.isSpecial?(this.state=n.InSpecialTag,this.sequenceIndex=0):this.state=n.Text,this.baseState=this.state,this.sectionStart=this.index+1):e===i.Slash?this.state=n.InSelfClosingTag:a(e)||(this.state=n.InAttributeName,this.sectionStart=this.index)},e.prototype.stateInSelfClosingTag=function(e){e===i.Gt?(this.cbs.onselfclosingtag(this.index),this.state=n.Text,this.baseState=n.Text,this.sectionStart=this.index+1,this.isSpecial=!1):a(e)||(this.state=n.BeforeAttributeName,this.stateBeforeAttributeName(e))},e.prototype.stateInAttributeName=function(e){(e===i.Eq||l(e))&&(this.cbs.onattribname(this.sectionStart,this.index),this.sectionStart=-1,this.state=n.AfterAttributeName,this.stateAfterAttributeName(e))},e.prototype.stateAfterAttributeName=function(e){e===i.Eq?this.state=n.BeforeAttributeValue:e===i.Slash||e===i.Gt?(this.cbs.onattribend(s.NoValue,this.index),this.state=n.BeforeAttributeName,this.stateBeforeAttributeName(e)):a(e)||(this.cbs.onattribend(s.NoValue,this.index),this.state=n.InAttributeName,this.sectionStart=this.index)},e.prototype.stateBeforeAttributeValue=function(e){e===i.DoubleQuote?(this.state=n.InAttributeValueDq,this.sectionStart=this.index+1):e===i.SingleQuote?(this.state=n.InAttributeValueSq,this.sectionStart=this.index+1):a(e)||(this.sectionStart=this.index,this.state=n.InAttributeValueNq,this.stateInAttributeValueNoQuotes(e))},e.prototype.handleInAttributeValue=function(e,t){e===t||!this.decodeEntities&&this.fastForwardTo(t)?(this.cbs.onattribdata(this.sectionStart,this.index),this.sectionStart=-1,this.cbs.onattribend(t===i.DoubleQuote?s.Double:s.Single,this.index),this.state=n.BeforeAttributeName):this.decodeEntities&&e===i.Amp&&(this.baseState=this.state,this.state=n.BeforeEntity)},e.prototype.stateInAttributeValueDoubleQuotes=function(e){this.handleInAttributeValue(e,i.DoubleQuote)},e.prototype.stateInAttributeValueSingleQuotes=function(e){this.handleInAttributeValue(e,i.SingleQuote)},e.prototype.stateInAttributeValueNoQuotes=function(e){a(e)||e===i.Gt?(this.cbs.onattribdata(this.sectionStart,this.index),this.sectionStart=-1,this.cbs.onattribend(s.Unquoted,this.index),this.state=n.BeforeAttributeName,this.stateBeforeAttributeName(e)):this.decodeEntities&&e===i.Amp&&(this.baseState=this.state,this.state=n.BeforeEntity)},e.prototype.stateBeforeDeclaration=function(e){e===i.OpeningSquareBracket?(this.state=n.CDATASequence,this.sequenceIndex=0):this.state=e===i.Dash?n.BeforeComment:n.InDeclaration},e.prototype.stateInDeclaration=function(e){(e===i.Gt||this.fastForwardTo(i.Gt))&&(this.cbs.ondeclaration(this.sectionStart,this.index),this.state=n.Text,this.sectionStart=this.index+1)},e.prototype.stateInProcessingInstruction=function(e){(e===i.Gt||this.fastForwardTo(i.Gt))&&(this.cbs.onprocessinginstruction(this.sectionStart,this.index),this.state=n.Text,this.sectionStart=this.index+1)},e.prototype.stateBeforeComment=function(e){e===i.Dash?(this.state=n.InCommentLike,this.currentSequence=u.CommentEnd,this.sequenceIndex=2,this.sectionStart=this.index+1):this.state=n.InDeclaration},e.prototype.stateInSpecialComment=function(e){(e===i.Gt||this.fastForwardTo(i.Gt))&&(this.cbs.oncomment(this.sectionStart,this.index,0),this.state=n.Text,this.sectionStart=this.index+1)},e.prototype.stateBeforeSpecialS=function(e){var t=32|e;t===u.ScriptEnd[3]?this.startSpecial(u.ScriptEnd,4):t===u.StyleEnd[3]?this.startSpecial(u.StyleEnd,4):(this.state=n.InTagName,this.stateInTagName(e))},e.prototype.stateBeforeEntity=function(e){this.entityExcess=1,this.entityResult=0,e===i.Number?this.state=n.BeforeNumericEntity:e===i.Amp||(this.trieIndex=0,this.trieCurrent=this.entityTrie[0],this.state=n.InNamedEntity,this.stateInNamedEntity(e))},e.prototype.stateInNamedEntity=function(e){if(this.entityExcess+=1,this.trieIndex=(0,o.determineBranch)(this.entityTrie,this.trieCurrent,this.trieIndex+1,e),this.trieIndex<0)return this.emitNamedEntity(),void this.index--;this.trieCurrent=this.entityTrie[this.trieIndex];var t=this.trieCurrent&o.BinTrieFlags.VALUE_LENGTH;if(t){var r=(t>>14)-1;if(this.allowLegacyEntity()||e===i.Semi){var n=this.index-this.entityExcess+1;n>this.sectionStart&&this.emitPartial(this.sectionStart,n),this.entityResult=this.trieIndex,this.trieIndex+=r,this.entityExcess=0,this.sectionStart=this.index+1,0===r&&this.emitNamedEntity()}else this.trieIndex+=r}},e.prototype.emitNamedEntity=function(){if(this.state=this.baseState,0!==this.entityResult)switch((this.entityTrie[this.entityResult]&o.BinTrieFlags.VALUE_LENGTH)>>14){case 1:this.emitCodePoint(this.entityTrie[this.entityResult]&~o.BinTrieFlags.VALUE_LENGTH);break;case 2:this.emitCodePoint(this.entityTrie[this.entityResult+1]);break;case 3:this.emitCodePoint(this.entityTrie[this.entityResult+1]),this.emitCodePoint(this.entityTrie[this.entityResult+2])}},e.prototype.stateBeforeNumericEntity=function(e){(32|e)===i.LowerX?(this.entityExcess++,this.state=n.InHexEntity):(this.state=n.InNumericEntity,this.stateInNumericEntity(e))},e.prototype.emitNumericEntity=function(e){var t=this.index-this.entityExcess-1;t+2+Number(this.state===n.InHexEntity)!==this.index&&(t>this.sectionStart&&this.emitPartial(this.sectionStart,t),this.sectionStart=this.index+Number(e),this.emitCodePoint((0,o.replaceCodePoint)(this.entityResult))),this.state=this.baseState},e.prototype.stateInNumericEntity=function(e){e===i.Semi?this.emitNumericEntity(!0):c(e)?(this.entityResult=10*this.entityResult+(e-i.Zero),this.entityExcess++):(this.allowLegacyEntity()?this.emitNumericEntity(!1):this.state=this.baseState,this.index--)},e.prototype.stateInHexEntity=function(e){e===i.Semi?this.emitNumericEntity(!0):c(e)?(this.entityResult=16*this.entityResult+(e-i.Zero),this.entityExcess++):function(e){return e>=i.UpperA&&e<=i.UpperF||e>=i.LowerA&&e<=i.LowerF}(e)?(this.entityResult=16*this.entityResult+((32|e)-i.LowerA+10),this.entityExcess++):(this.allowLegacyEntity()?this.emitNumericEntity(!1):this.state=this.baseState,this.index--)},e.prototype.allowLegacyEntity=function(){return!this.xmlMode&&(this.baseState===n.Text||this.baseState===n.InSpecialTag)},e.prototype.cleanup=function(){this.running&&this.sectionStart!==this.index&&(this.state===n.Text||this.state===n.InSpecialTag&&0===this.sequenceIndex?(this.cbs.ontext(this.sectionStart,this.index),this.sectionStart=this.index):this.state!==n.InAttributeValueDq&&this.state!==n.InAttributeValueSq&&this.state!==n.InAttributeValueNq||(this.cbs.onattribdata(this.sectionStart,this.index),this.sectionStart=this.index))},e.prototype.shouldContinue=function(){return this.index{"use strict";function r(e){return"[object Object]"===Object.prototype.toString.call(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.isPlainObject=function(e){var t,i;return!1!==r(e)&&(void 0===(t=e.constructor)||!1!==r(i=t.prototype)&&!1!==i.hasOwnProperty("isPrototypeOf"))}},8915:function(e,t){var r,i;void 0===(i="function"==typeof(r=function(){return function(e){function t(e){return" "===e||"\t"===e||"\n"===e||"\f"===e||"\r"===e}function r(t){var r,i=t.exec(e.substring(m));if(i)return r=i[0],m+=r.length,r}for(var i,n,s,o,a,l=e.length,c=/^[ \t\n\r\u000c]+/,u=/^[, \t\n\r\u000c]+/,h=/^[^ \t\n\r\u000c]+/,p=/[,]+$/,d=/^\d+$/,f=/^-?(?:[0-9]+|[0-9]*\.[0-9]+)(?:[eE][+-]?[0-9]+)?$/,m=0,g=[];;){if(r(u),m>=l)return g;i=r(h),n=[],","===i.slice(-1)?(i=i.replace(p,""),y()):b()}function b(){for(r(c),s="",o="in descriptor";;){if(a=e.charAt(m),"in descriptor"===o)if(t(a))s&&(n.push(s),s="",o="after descriptor");else{if(","===a)return m+=1,s&&n.push(s),void y();if("("===a)s+=a,o="in parens";else{if(""===a)return s&&n.push(s),void y();s+=a}}else if("in parens"===o)if(")"===a)s+=a,o="in descriptor";else{if(""===a)return n.push(s),void y();s+=a}else if("after descriptor"===o)if(t(a));else{if(""===a)return void y();o="in descriptor",m-=1}m+=1}}function y(){var t,r,s,o,a,l,c,u,h,p=!1,m={};for(o=0;o{var t=String,r=function(){return{isColorSupported:!1,reset:t,bold:t,dim:t,italic:t,underline:t,inverse:t,hidden:t,strikethrough:t,black:t,red:t,green:t,yellow:t,blue:t,magenta:t,cyan:t,white:t,gray:t,bgBlack:t,bgRed:t,bgGreen:t,bgYellow:t,bgBlue:t,bgMagenta:t,bgCyan:t,bgWhite:t}};e.exports=r(),e.exports.createColors=r},4938:(e,t,r)=>{"use strict";let i=r(4228);class n extends i{constructor(e){super(e),this.type="atrule"}append(...e){return this.proxyOf.nodes||(this.nodes=[]),super.append(...e)}prepend(...e){return this.proxyOf.nodes||(this.nodes=[]),super.prepend(...e)}}e.exports=n,n.default=n,i.registerAtRule(n)},3285:(e,t,r)=>{"use strict";let i=r(9534);class n extends i{constructor(e){super(e),this.type="comment"}}e.exports=n,n.default=n},4228:(e,t,r)=>{"use strict";let i,n,s,o,{isClean:a,my:l}=r(9181),c=r(2973),u=r(3285),h=r(9534);function p(e){return e.map((e=>(e.nodes&&(e.nodes=p(e.nodes)),delete e.source,e)))}function d(e){if(e[a]=!1,e.proxyOf.nodes)for(let t of e.proxyOf.nodes)d(t)}class f extends h{push(e){return e.parent=this,this.proxyOf.nodes.push(e),this}each(e){if(!this.proxyOf.nodes)return;let t,r,i=this.getIterator();for(;this.indexes[i]{let i;try{i=e(t,r)}catch(e){throw t.addToError(e)}return!1!==i&&t.walk&&(i=t.walk(e)),i}))}walkDecls(e,t){return t?e instanceof RegExp?this.walk(((r,i)=>{if("decl"===r.type&&e.test(r.prop))return t(r,i)})):this.walk(((r,i)=>{if("decl"===r.type&&r.prop===e)return t(r,i)})):(t=e,this.walk(((e,r)=>{if("decl"===e.type)return t(e,r)})))}walkRules(e,t){return t?e instanceof RegExp?this.walk(((r,i)=>{if("rule"===r.type&&e.test(r.selector))return t(r,i)})):this.walk(((r,i)=>{if("rule"===r.type&&r.selector===e)return t(r,i)})):(t=e,this.walk(((e,r)=>{if("rule"===e.type)return t(e,r)})))}walkAtRules(e,t){return t?e instanceof RegExp?this.walk(((r,i)=>{if("atrule"===r.type&&e.test(r.name))return t(r,i)})):this.walk(((r,i)=>{if("atrule"===r.type&&r.name===e)return t(r,i)})):(t=e,this.walk(((e,r)=>{if("atrule"===e.type)return t(e,r)})))}walkComments(e){return this.walk(((t,r)=>{if("comment"===t.type)return e(t,r)}))}append(...e){for(let t of e){let e=this.normalize(t,this.last);for(let t of e)this.proxyOf.nodes.push(t)}return this.markDirty(),this}prepend(...e){e=e.reverse();for(let t of e){let e=this.normalize(t,this.first,"prepend").reverse();for(let t of e)this.proxyOf.nodes.unshift(t);for(let t in this.indexes)this.indexes[t]=this.indexes[t]+e.length}return this.markDirty(),this}cleanRaws(e){if(super.cleanRaws(e),this.nodes)for(let t of this.nodes)t.cleanRaws(e)}insertBefore(e,t){let r,i=this.index(e),n=0===i&&"prepend",s=this.normalize(t,this.proxyOf.nodes[i],n).reverse();i=this.index(e);for(let e of s)this.proxyOf.nodes.splice(i,0,e);for(let e in this.indexes)r=this.indexes[e],i<=r&&(this.indexes[e]=r+s.length);return this.markDirty(),this}insertAfter(e,t){let r,i=this.index(e),n=this.normalize(t,this.proxyOf.nodes[i]).reverse();i=this.index(e);for(let e of n)this.proxyOf.nodes.splice(i+1,0,e);for(let e in this.indexes)r=this.indexes[e],i=e&&(this.indexes[r]=t-1);return this.markDirty(),this}removeAll(){for(let e of this.proxyOf.nodes)e.parent=void 0;return this.proxyOf.nodes=[],this.markDirty(),this}replaceValues(e,t,r){return r||(r=t,t={}),this.walkDecls((i=>{t.props&&!t.props.includes(i.prop)||t.fast&&!i.value.includes(t.fast)||(i.value=i.value.replace(e,r))})),this.markDirty(),this}every(e){return this.nodes.every(e)}some(e){return this.nodes.some(e)}index(e){return"number"==typeof e?e:(e.proxyOf&&(e=e.proxyOf),this.proxyOf.nodes.indexOf(e))}get first(){if(this.proxyOf.nodes)return this.proxyOf.nodes[0]}get last(){if(this.proxyOf.nodes)return this.proxyOf.nodes[this.proxyOf.nodes.length-1]}normalize(e,t){if("string"==typeof e)e=p(i(e).nodes);else if(Array.isArray(e)){e=e.slice(0);for(let t of e)t.parent&&t.parent.removeChild(t,"ignore")}else if("root"===e.type&&"document"!==this.type){e=e.nodes.slice(0);for(let t of e)t.parent&&t.parent.removeChild(t,"ignore")}else if(e.type)e=[e];else if(e.prop){if(void 0===e.value)throw new Error("Value field is missed in node creation");"string"!=typeof e.value&&(e.value=String(e.value)),e=[new c(e)]}else if(e.selector)e=[new n(e)];else if(e.name)e=[new s(e)];else{if(!e.text)throw new Error("Unknown node type in node creation");e=[new u(e)]}return e.map((e=>(e[l]||f.rebuild(e),(e=e.proxyOf).parent&&e.parent.removeChild(e),e[a]&&d(e),void 0===e.raws.before&&t&&void 0!==t.raws.before&&(e.raws.before=t.raws.before.replace(/\S/g,"")),e.parent=this.proxyOf,e)))}getProxyProcessor(){return{set:(e,t,r)=>(e[t]===r||(e[t]=r,"name"!==t&&"params"!==t&&"selector"!==t||e.markDirty()),!0),get:(e,t)=>"proxyOf"===t?e:e[t]?"each"===t||"string"==typeof t&&t.startsWith("walk")?(...r)=>e[t](...r.map((e=>"function"==typeof e?(t,r)=>e(t.toProxy(),r):e))):"every"===t||"some"===t?r=>e[t](((e,...t)=>r(e.toProxy(),...t))):"root"===t?()=>e.root().toProxy():"nodes"===t?e.nodes.map((e=>e.toProxy())):"first"===t||"last"===t?e[t].toProxy():e[t]:e[t]}}getIterator(){this.lastEach||(this.lastEach=0),this.indexes||(this.indexes={}),this.lastEach+=1;let e=this.lastEach;return this.indexes[e]=0,e}}f.registerParse=e=>{i=e},f.registerRule=e=>{n=e},f.registerAtRule=e=>{s=e},f.registerRoot=e=>{o=e},e.exports=f,f.default=f,f.rebuild=e=>{"atrule"===e.type?Object.setPrototypeOf(e,s.prototype):"rule"===e.type?Object.setPrototypeOf(e,n.prototype):"decl"===e.type?Object.setPrototypeOf(e,c.prototype):"comment"===e.type?Object.setPrototypeOf(e,u.prototype):"root"===e.type&&Object.setPrototypeOf(e,o.prototype),e[l]=!0,e.nodes&&e.nodes.forEach((e=>{f.rebuild(e)}))}},9452:(e,t,r)=>{"use strict";let i=r(1794),n=r(764);class s extends Error{constructor(e,t,r,i,n,o){super(e),this.name="CssSyntaxError",this.reason=e,n&&(this.file=n),i&&(this.source=i),o&&(this.plugin=o),void 0!==t&&void 0!==r&&("number"==typeof t?(this.line=t,this.column=r):(this.line=t.line,this.column=t.column,this.endLine=r.line,this.endColumn=r.column)),this.setMessage(),Error.captureStackTrace&&Error.captureStackTrace(this,s)}setMessage(){this.message=this.plugin?this.plugin+": ":"",this.message+=this.file?this.file:"",void 0!==this.line&&(this.message+=":"+this.line+":"+this.column),this.message+=": "+this.reason}showSourceCode(e){if(!this.source)return"";let t=this.source;null==e&&(e=i.isColorSupported),n&&e&&(t=n(t));let r,s,o=t.split(/\r?\n/),a=Math.max(this.line-3,0),l=Math.min(this.line+2,o.length),c=String(l).length;if(e){let{bold:e,red:t,gray:n}=i.createColors(!0);r=r=>e(t(r)),s=e=>n(e)}else r=s=e=>e;return o.slice(a,l).map(((e,t)=>{let i=a+1+t,n=" "+(" "+i).slice(-c)+" | ";if(i===this.line){let t=s(n.replace(/\d/g," "))+e.slice(0,this.column-1).replace(/[^\t]/g," ");return r(">")+s(n)+e+"\n "+t+r("^")}return" "+s(n)+e})).join("\n")}toString(){let e=this.showSourceCode();return e&&(e="\n\n"+e+"\n"),this.name+": "+this.message+e}}e.exports=s,s.default=s},2973:(e,t,r)=>{"use strict";let i=r(9534);class n extends i{constructor(e){e&&void 0!==e.value&&"string"!=typeof e.value&&(e={...e,value:String(e.value)}),super(e),this.type="decl"}get variable(){return this.prop.startsWith("--")||"$"===this.prop[0]}}e.exports=n,n.default=n},4096:(e,t,r)=>{"use strict";let i,n,s=r(4228);class o extends s{constructor(e){super({type:"document",...e}),this.nodes||(this.nodes=[])}toResult(e={}){return new i(new n,this,e).stringify()}}o.registerLazyResult=e=>{i=e},o.registerProcessor=e=>{n=e},e.exports=o,o.default=o},1693:(e,t,r)=>{"use strict";let i=r(2973),n=r(5098),s=r(3285),o=r(4938),a=r(1271),l=r(7399),c=r(4013);function u(e,t){if(Array.isArray(e))return e.map((e=>u(e)));let{inputs:r,...h}=e;if(r){t=[];for(let e of r){let r={...e,__proto__:a.prototype};r.map&&(r.map={...r.map,__proto__:n.prototype}),t.push(r)}}if(h.nodes&&(h.nodes=e.nodes.map((e=>u(e,t)))),h.source){let{inputId:e,...r}=h.source;h.source=r,null!=e&&(h.source.input=t[e])}if("root"===h.type)return new l(h);if("decl"===h.type)return new i(h);if("rule"===h.type)return new c(h);if("comment"===h.type)return new s(h);if("atrule"===h.type)return new o(h);throw new Error("Unknown node type: "+e.type)}e.exports=u,u.default=u},1271:(e,t,r)=>{"use strict";let{SourceMapConsumer:i,SourceMapGenerator:n}=r(139),{fileURLToPath:s,pathToFileURL:o}=r(3653),{resolve:a,isAbsolute:l}=r(8635),{nanoid:c}=r(8864),u=r(764),h=r(9452),p=r(5098),d=Symbol("fromOffsetCache"),f=Boolean(i&&n),m=Boolean(a&&l);class g{constructor(e,t={}){if(null==e||"object"==typeof e&&!e.toString)throw new Error(`PostCSS received ${e} instead of CSS string`);if(this.css=e.toString(),"\ufeff"===this.css[0]||"￾"===this.css[0]?(this.hasBOM=!0,this.css=this.css.slice(1)):this.hasBOM=!1,t.from&&(!m||/^\w+:\/\//.test(t.from)||l(t.from)?this.file=t.from:this.file=a(t.from)),m&&f){let e=new p(this.css,t);if(e.text){this.map=e;let t=e.consumer().file;!this.file&&t&&(this.file=this.mapResolve(t))}}this.file||(this.id=""),this.map&&(this.map.file=this.from)}fromOffset(e){let t,r;if(this[d])r=this[d];else{let e=this.css.split("\n");r=new Array(e.length);let t=0;for(let i=0,n=e.length;i=t)i=r.length-1;else{let t,n=r.length-2;for(;i>1),e=r[t+1])){i=t;break}i=t+1}}return{line:i+1,col:e-r[i]+1}}error(e,t,r,i={}){let n,s,a;if(t&&"object"==typeof t){let e=t,i=r;if("number"==typeof e.offset){let i=this.fromOffset(e.offset);t=i.line,r=i.col}else t=e.line,r=e.column;if("number"==typeof i.offset){let e=this.fromOffset(i.offset);s=e.line,a=e.col}else s=i.line,a=i.column}else if(!r){let e=this.fromOffset(t);t=e.line,r=e.col}let l=this.origin(t,r,s,a);return n=l?new h(e,void 0===l.endLine?l.line:{line:l.line,column:l.column},void 0===l.endLine?l.column:{line:l.endLine,column:l.endColumn},l.source,l.file,i.plugin):new h(e,void 0===s?t:{line:t,column:r},void 0===s?r:{line:s,column:a},this.css,this.file,i.plugin),n.input={line:t,column:r,endLine:s,endColumn:a,source:this.css},this.file&&(o&&(n.input.url=o(this.file).toString()),n.input.file=this.file),n}origin(e,t,r,i){if(!this.map)return!1;let n,a,c=this.map.consumer(),u=c.originalPositionFor({line:e,column:t});if(!u.source)return!1;"number"==typeof r&&(n=c.originalPositionFor({line:r,column:i})),a=l(u.source)?o(u.source):new URL(u.source,this.map.consumer().sourceRoot||o(this.map.mapFile));let h={url:a.toString(),line:u.line,column:u.column,endLine:n&&n.line,endColumn:n&&n.column};if("file:"===a.protocol){if(!s)throw new Error("file: protocol is not available in this PostCSS build");h.file=s(a)}let p=c.sourceContentFor(u.source);return p&&(h.source=p),h}mapResolve(e){return/^\w+:\/\//.test(e)?e:a(this.map.consumer().sourceRoot||this.map.root||".",e)}get from(){return this.file||this.id}toJSON(){let e={};for(let t of["hasBOM","css","file","id"])null!=this[t]&&(e[t]=this[t]);return this.map&&(e.map={...this.map},e.map.consumerCache&&(e.map.consumerCache=void 0)),e}}e.exports=g,g.default=g,u&&u.registerInput&&u.registerInput(g)},7229:(e,t,r)=>{"use strict";let{isClean:i,my:n}=r(9181),s=r(3e3),o=r(7434),a=r(4228),l=r(4096),c=(r(7570),r(2575)),u=r(8501),h=r(7399);const p={document:"Document",root:"Root",atrule:"AtRule",rule:"Rule",decl:"Declaration",comment:"Comment"},d={postcssPlugin:!0,prepare:!0,Once:!0,Document:!0,Root:!0,Declaration:!0,Rule:!0,AtRule:!0,Comment:!0,DeclarationExit:!0,RuleExit:!0,AtRuleExit:!0,CommentExit:!0,RootExit:!0,DocumentExit:!0,OnceExit:!0},f={postcssPlugin:!0,prepare:!0,Once:!0},m=0;function g(e){return"object"==typeof e&&"function"==typeof e.then}function b(e){let t=!1,r=p[e.type];return"decl"===e.type?t=e.prop.toLowerCase():"atrule"===e.type&&(t=e.name.toLowerCase()),t&&e.append?[r,r+"-"+t,m,r+"Exit",r+"Exit-"+t]:t?[r,r+"-"+t,r+"Exit",r+"Exit-"+t]:e.append?[r,m,r+"Exit"]:[r,r+"Exit"]}function y(e){let t;return t="document"===e.type?["Document",m,"DocumentExit"]:"root"===e.type?["Root",m,"RootExit"]:b(e),{node:e,events:t,eventIndex:0,visitors:[],visitorIndex:0,iterator:0}}function v(e){return e[i]=!1,e.nodes&&e.nodes.forEach((e=>v(e))),e}let w={};class x{constructor(e,t,r){let i;if(this.stringified=!1,this.processed=!1,"object"!=typeof t||null===t||"root"!==t.type&&"document"!==t.type)if(t instanceof x||t instanceof c)i=v(t.root),t.map&&(void 0===r.map&&(r.map={}),r.map.inline||(r.map.inline=!1),r.map.prev=t.map);else{let e=u;r.syntax&&(e=r.syntax.parse),r.parser&&(e=r.parser),e.parse&&(e=e.parse);try{i=e(t,r)}catch(e){this.processed=!0,this.error=e}i&&!i[n]&&a.rebuild(i)}else i=v(t);this.result=new c(e,i,r),this.helpers={...w,result:this.result,postcss:w},this.plugins=this.processor.plugins.map((e=>"object"==typeof e&&e.prepare?{...e,...e.prepare(this.result)}:e))}get[Symbol.toStringTag](){return"LazyResult"}get processor(){return this.result.processor}get opts(){return this.result.opts}get css(){return this.stringify().css}get content(){return this.stringify().content}get map(){return this.stringify().map}get root(){return this.sync().root}get messages(){return this.sync().messages}warnings(){return this.sync().warnings()}toString(){return this.css}then(e,t){return this.async().then(e,t)}catch(e){return this.async().catch(e)}finally(e){return this.async().then(e,e)}async(){return this.error?Promise.reject(this.error):this.processed?Promise.resolve(this.result):(this.processing||(this.processing=this.runAsync()),this.processing)}sync(){if(this.error)throw this.error;if(this.processed)return this.result;if(this.processed=!0,this.processing)throw this.getAsyncError();for(let e of this.plugins)if(g(this.runOnRoot(e)))throw this.getAsyncError();if(this.prepareVisitors(),this.hasListener){let e=this.result.root;for(;!e[i];)e[i]=!0,this.walkSync(e);if(this.listeners.OnceExit)if("document"===e.type)for(let t of e.nodes)this.visitSync(this.listeners.OnceExit,t);else this.visitSync(this.listeners.OnceExit,e)}return this.result}stringify(){if(this.error)throw this.error;if(this.stringified)return this.result;this.stringified=!0,this.sync();let e=this.result.opts,t=o;e.syntax&&(t=e.syntax.stringify),e.stringifier&&(t=e.stringifier),t.stringify&&(t=t.stringify);let r=new s(t,this.result.root,this.result.opts).generate();return this.result.css=r[0],this.result.map=r[1],this.result}walkSync(e){e[i]=!0;let t=b(e);for(let r of t)if(r===m)e.nodes&&e.each((e=>{e[i]||this.walkSync(e)}));else{let t=this.listeners[r];if(t&&this.visitSync(t,e.toProxy()))return}}visitSync(e,t){for(let[r,i]of e){let e;this.result.lastPlugin=r;try{e=i(t,this.helpers)}catch(e){throw this.handleError(e,t.proxyOf)}if("root"!==t.type&&"document"!==t.type&&!t.parent)return!0;if(g(e))throw this.getAsyncError()}}runOnRoot(e){this.result.lastPlugin=e;try{if("object"==typeof e&&e.Once){if("document"===this.result.root.type){let t=this.result.root.nodes.map((t=>e.Once(t,this.helpers)));return g(t[0])?Promise.all(t):t}return e.Once(this.result.root,this.helpers)}if("function"==typeof e)return e(this.result.root,this.result)}catch(e){throw this.handleError(e)}}getAsyncError(){throw new Error("Use process(css).then(cb) to work with async plugins")}handleError(e,t){let r=this.result.lastPlugin;try{t&&t.addToError(e),this.error=e,"CssSyntaxError"!==e.name||e.plugin?r.postcssVersion:(e.plugin=r.postcssPlugin,e.setMessage())}catch(e){console&&console.error&&console.error(e)}return e}async runAsync(){this.plugin=0;for(let e=0;e0;){let e=this.visitTick(t);if(g(e))try{await e}catch(e){let r=t[t.length-1].node;throw this.handleError(e,r)}}}if(this.listeners.OnceExit)for(let[t,r]of this.listeners.OnceExit){this.result.lastPlugin=t;try{if("document"===e.type){let t=e.nodes.map((e=>r(e,this.helpers)));await Promise.all(t)}else await r(e,this.helpers)}catch(e){throw this.handleError(e)}}}return this.processed=!0,this.stringify()}prepareVisitors(){this.listeners={};let e=(e,t,r)=>{this.listeners[t]||(this.listeners[t]=[]),this.listeners[t].push([e,r])};for(let t of this.plugins)if("object"==typeof t)for(let r in t){if(!d[r]&&/^[A-Z]/.test(r))throw new Error(`Unknown event ${r} in ${t.postcssPlugin}. Try to update PostCSS (${this.processor.version} now).`);if(!f[r])if("object"==typeof t[r])for(let i in t[r])e(t,"*"===i?r:r+"-"+i.toLowerCase(),t[r][i]);else"function"==typeof t[r]&&e(t,r,t[r])}this.hasListener=Object.keys(this.listeners).length>0}visitTick(e){let t=e[e.length-1],{node:r,visitors:n}=t;if("root"!==r.type&&"document"!==r.type&&!r.parent)return void e.pop();if(n.length>0&&t.visitorIndex{w=e},e.exports=x,x.default=x,h.registerLazyResult(x),l.registerLazyResult(x)},9401:e=>{"use strict";let t={split(e,t,r){let i=[],n="",s=!1,o=0,a=!1,l="",c=!1;for(let r of e)c?c=!1:"\\"===r?c=!0:a?r===l&&(a=!1):'"'===r||"'"===r?(a=!0,l=r):"("===r?o+=1:")"===r?o>0&&(o-=1):0===o&&t.includes(r)&&(s=!0),s?(""!==n&&i.push(n.trim()),n="",s=!1):n+=r;return(r||""!==n)&&i.push(n.trim()),i},space:e=>t.split(e,[" ","\n","\t"]),comma:e=>t.split(e,[","],!0)};e.exports=t,t.default=t},3e3:(e,t,r)=>{"use strict";let{SourceMapConsumer:i,SourceMapGenerator:n}=r(139),{dirname:s,resolve:o,relative:a,sep:l}=r(8635),{pathToFileURL:c}=r(3653),u=r(1271),h=Boolean(i&&n),p=Boolean(s&&o&&a&&l);e.exports=class{constructor(e,t,r,i){this.stringify=e,this.mapOpts=r.map||{},this.root=t,this.opts=r,this.css=i,this.usesFileUrls=!this.mapOpts.from&&this.mapOpts.absolute}isMap(){return void 0!==this.opts.map?!!this.opts.map:this.previous().length>0}previous(){if(!this.previousMaps)if(this.previousMaps=[],this.root)this.root.walk((e=>{if(e.source&&e.source.input.map){let t=e.source.input.map;this.previousMaps.includes(t)||this.previousMaps.push(t)}}));else{let e=new u(this.css,this.opts);e.map&&this.previousMaps.push(e.map)}return this.previousMaps}isInline(){if(void 0!==this.mapOpts.inline)return this.mapOpts.inline;let e=this.mapOpts.annotation;return(void 0===e||!0===e)&&(!this.previous().length||this.previous().some((e=>e.inline)))}isSourcesContent(){return void 0!==this.mapOpts.sourcesContent?this.mapOpts.sourcesContent:!this.previous().length||this.previous().some((e=>e.withContent()))}clearAnnotation(){if(!1!==this.mapOpts.annotation)if(this.root){let e;for(let t=this.root.nodes.length-1;t>=0;t--)e=this.root.nodes[t],"comment"===e.type&&0===e.text.indexOf("# sourceMappingURL=")&&this.root.removeChild(t)}else this.css&&(this.css=this.css.replace(/(\n)?\/\*#[\S\s]*?\*\/$/gm,""))}setSourcesContent(){let e={};if(this.root)this.root.walk((t=>{if(t.source){let r=t.source.input.from;if(r&&!e[r]){e[r]=!0;let i=this.usesFileUrls?this.toFileUrl(r):this.toUrl(this.path(r));this.map.setSourceContent(i,t.source.input.css)}}}));else if(this.css){let e=this.opts.from?this.toUrl(this.path(this.opts.from)):"";this.map.setSourceContent(e,this.css)}}applyPrevMaps(){for(let e of this.previous()){let t,r=this.toUrl(this.path(e.file)),n=e.root||s(e.file);!1===this.mapOpts.sourcesContent?(t=new i(e.text),t.sourcesContent&&(t.sourcesContent=t.sourcesContent.map((()=>null)))):t=e.consumer(),this.map.applySourceMap(t,r,this.toUrl(this.path(n)))}}isAnnotation(){return!!this.isInline()||(void 0!==this.mapOpts.annotation?this.mapOpts.annotation:!this.previous().length||this.previous().some((e=>e.annotation)))}toBase64(e){return Buffer?Buffer.from(e).toString("base64"):window.btoa(unescape(encodeURIComponent(e)))}addAnnotation(){let e;e=this.isInline()?"data:application/json;base64,"+this.toBase64(this.map.toString()):"string"==typeof this.mapOpts.annotation?this.mapOpts.annotation:"function"==typeof this.mapOpts.annotation?this.mapOpts.annotation(this.opts.to,this.root):this.outputFile()+".map";let t="\n";this.css.includes("\r\n")&&(t="\r\n"),this.css+=t+"/*# sourceMappingURL="+e+" */"}outputFile(){return this.opts.to?this.path(this.opts.to):this.opts.from?this.path(this.opts.from):"to.css"}generateMap(){if(this.root)this.generateString();else if(1===this.previous().length){let e=this.previous()[0].consumer();e.file=this.outputFile(),this.map=n.fromSourceMap(e)}else this.map=new n({file:this.outputFile()}),this.map.addMapping({source:this.opts.from?this.toUrl(this.path(this.opts.from)):"",generated:{line:1,column:0},original:{line:1,column:0}});return this.isSourcesContent()&&this.setSourcesContent(),this.root&&this.previous().length>0&&this.applyPrevMaps(),this.isAnnotation()&&this.addAnnotation(),this.isInline()?[this.css]:[this.css,this.map]}path(e){if(0===e.indexOf("<"))return e;if(/^\w+:\/\//.test(e))return e;if(this.mapOpts.absolute)return e;let t=this.opts.to?s(this.opts.to):".";return"string"==typeof this.mapOpts.annotation&&(t=s(o(t,this.mapOpts.annotation))),a(t,e)}toUrl(e){return"\\"===l&&(e=e.replace(/\\/g,"/")),encodeURI(e).replace(/[#?]/g,encodeURIComponent)}toFileUrl(e){if(c)return c(e).toString();throw new Error("`map.absolute` option is not available in this PostCSS build")}sourcePath(e){return this.mapOpts.from?this.toUrl(this.mapOpts.from):this.usesFileUrls?this.toFileUrl(e.source.input.from):this.toUrl(this.path(e.source.input.from))}generateString(){this.css="",this.map=new n({file:this.outputFile()});let e,t,r=1,i=1,s="",o={source:"",generated:{line:0,column:0},original:{line:0,column:0}};this.stringify(this.root,((n,a,l)=>{if(this.css+=n,a&&"end"!==l&&(o.generated.line=r,o.generated.column=i-1,a.source&&a.source.start?(o.source=this.sourcePath(a),o.original.line=a.source.start.line,o.original.column=a.source.start.column-1,this.map.addMapping(o)):(o.source=s,o.original.line=1,o.original.column=0,this.map.addMapping(o))),e=n.match(/\n/g),e?(r+=e.length,t=n.lastIndexOf("\n"),i=n.length-t):i+=n.length,a&&"start"!==l){let e=a.parent||{raws:{}};("decl"===a.type||"atrule"===a.type&&!a.nodes)&&a===e.last&&!e.raws.semicolon||(a.source&&a.source.end?(o.source=this.sourcePath(a),o.original.line=a.source.end.line,o.original.column=a.source.end.column-1,o.generated.line=r,o.generated.column=i-2,this.map.addMapping(o)):(o.source=s,o.original.line=1,o.original.column=0,o.generated.line=r,o.generated.column=i-1,this.map.addMapping(o)))}}))}generate(){if(this.clearAnnotation(),p&&h&&this.isMap())return this.generateMap();{let e="";return this.stringify(this.root,(t=>{e+=t})),[e]}}}},9787:(e,t,r)=>{"use strict";let i=r(3e3),n=r(7434),s=(r(7570),r(8501));const o=r(2575);class a{constructor(e,t,r){let s;t=t.toString(),this.stringified=!1,this._processor=e,this._css=t,this._opts=r,this._map=void 0;let a=n;this.result=new o(this._processor,s,this._opts),this.result.css=t;let l=this;Object.defineProperty(this.result,"root",{get:()=>l.root});let c=new i(a,s,this._opts,t);if(c.isMap()){let[e,t]=c.generate();e&&(this.result.css=e),t&&(this.result.map=t)}}get[Symbol.toStringTag](){return"NoWorkResult"}get processor(){return this.result.processor}get opts(){return this.result.opts}get css(){return this.result.css}get content(){return this.result.css}get map(){return this.result.map}get root(){if(this._root)return this._root;let e,t=s;try{e=t(this._css,this._opts)}catch(e){this.error=e}if(this.error)throw this.error;return this._root=e,e}get messages(){return[]}warnings(){return[]}toString(){return this._css}then(e,t){return this.async().then(e,t)}catch(e){return this.async().catch(e)}finally(e){return this.async().then(e,e)}async(){return this.error?Promise.reject(this.error):Promise.resolve(this.result)}sync(){if(this.error)throw this.error;return this.result}}e.exports=a,a.default=a},9534:(e,t,r)=>{"use strict";let{isClean:i,my:n}=r(9181),s=r(9452),o=r(6573),a=r(7434);function l(e,t){let r=new e.constructor;for(let i in e){if(!Object.prototype.hasOwnProperty.call(e,i))continue;if("proxyCache"===i)continue;let n=e[i],s=typeof n;"parent"===i&&"object"===s?t&&(r[i]=t):"source"===i?r[i]=n:Array.isArray(n)?r[i]=n.map((e=>l(e,r))):("object"===s&&null!==n&&(n=l(n)),r[i]=n)}return r}class c{constructor(e={}){this.raws={},this[i]=!1,this[n]=!0;for(let t in e)if("nodes"===t){this.nodes=[];for(let r of e[t])"function"==typeof r.clone?this.append(r.clone()):this.append(r)}else this[t]=e[t]}error(e,t={}){if(this.source){let{start:r,end:i}=this.rangeBy(t);return this.source.input.error(e,{line:r.line,column:r.column},{line:i.line,column:i.column},t)}return new s(e)}warn(e,t,r){let i={node:this};for(let e in r)i[e]=r[e];return e.warn(t,i)}remove(){return this.parent&&this.parent.removeChild(this),this.parent=void 0,this}toString(e=a){e.stringify&&(e=e.stringify);let t="";return e(this,(e=>{t+=e})),t}assign(e={}){for(let t in e)this[t]=e[t];return this}clone(e={}){let t=l(this);for(let r in e)t[r]=e[r];return t}cloneBefore(e={}){let t=this.clone(e);return this.parent.insertBefore(this,t),t}cloneAfter(e={}){let t=this.clone(e);return this.parent.insertAfter(this,t),t}replaceWith(...e){if(this.parent){let t=this,r=!1;for(let i of e)i===this?r=!0:r?(this.parent.insertAfter(t,i),t=i):this.parent.insertBefore(t,i);r||this.remove()}return this}next(){if(!this.parent)return;let e=this.parent.index(this);return this.parent.nodes[e+1]}prev(){if(!this.parent)return;let e=this.parent.index(this);return this.parent.nodes[e-1]}before(e){return this.parent.insertBefore(this,e),this}after(e){return this.parent.insertAfter(this,e),this}root(){let e=this;for(;e.parent&&"document"!==e.parent.type;)e=e.parent;return e}raw(e,t){return(new o).raw(this,e,t)}cleanRaws(e){delete this.raws.before,delete this.raws.after,e||delete this.raws.between}toJSON(e,t){let r={},i=null==t;t=t||new Map;let n=0;for(let e in this){if(!Object.prototype.hasOwnProperty.call(this,e))continue;if("parent"===e||"proxyCache"===e)continue;let i=this[e];if(Array.isArray(i))r[e]=i.map((e=>"object"==typeof e&&e.toJSON?e.toJSON(null,t):e));else if("object"==typeof i&&i.toJSON)r[e]=i.toJSON(null,t);else if("source"===e){let s=t.get(i.input);null==s&&(s=n,t.set(i.input,n),n++),r[e]={inputId:s,start:i.start,end:i.end}}else r[e]=i}return i&&(r.inputs=[...t.keys()].map((e=>e.toJSON()))),r}positionInside(e){let t=this.toString(),r=this.source.start.column,i=this.source.start.line;for(let n=0;n(e[t]===r||(e[t]=r,"prop"!==t&&"value"!==t&&"name"!==t&&"params"!==t&&"important"!==t&&"text"!==t||e.markDirty()),!0),get:(e,t)=>"proxyOf"===t?e:"root"===t?()=>e.root().toProxy():e[t]}}toProxy(){return this.proxyCache||(this.proxyCache=new Proxy(this,this.getProxyProcessor())),this.proxyCache}addToError(e){if(e.postcssNode=this,e.stack&&this.source&&/\n\s{4}at /.test(e.stack)){let t=this.source;e.stack=e.stack.replace(/\n\s{4}at /,`$&${t.input.from}:${t.start.line}:${t.start.column}$&`)}return e}markDirty(){if(this[i]){this[i]=!1;let e=this;for(;e=e.parent;)e[i]=!1}}get proxyOf(){return this}}e.exports=c,c.default=c},8501:(e,t,r)=>{"use strict";let i=r(4228),n=r(6237),s=r(1271);function o(e,t){let r=new s(e,t),i=new n(r);try{i.parse()}catch(e){throw e}return i.root}e.exports=o,o.default=o,i.registerParse(o)},6237:(e,t,r)=>{"use strict";let i=r(2973),n=r(1171),s=r(3285),o=r(4938),a=r(7399),l=r(4013);const c={empty:!0,space:!0};e.exports=class{constructor(e){this.input=e,this.root=new a,this.current=this.root,this.spaces="",this.semicolon=!1,this.customProperty=!1,this.createTokenizer(),this.root.source={input:e,start:{offset:0,line:1,column:1}}}createTokenizer(){this.tokenizer=n(this.input)}parse(){let e;for(;!this.tokenizer.endOfFile();)switch(e=this.tokenizer.nextToken(),e[0]){case"space":this.spaces+=e[1];break;case";":this.freeSemicolon(e);break;case"}":this.end(e);break;case"comment":this.comment(e);break;case"at-word":this.atrule(e);break;case"{":this.emptyRule(e);break;default:this.other(e)}this.endFile()}comment(e){let t=new s;this.init(t,e[2]),t.source.end=this.getPosition(e[3]||e[2]);let r=e[1].slice(2,-2);if(/^\s*$/.test(r))t.text="",t.raws.left=r,t.raws.right="";else{let e=r.match(/^(\s*)([^]*\S)(\s*)$/);t.text=e[2],t.raws.left=e[1],t.raws.right=e[3]}}emptyRule(e){let t=new l;this.init(t,e[2]),t.selector="",t.raws.between="",this.current=t}other(e){let t=!1,r=null,i=!1,n=null,s=[],o=e[1].startsWith("--"),a=[],l=e;for(;l;){if(r=l[0],a.push(l),"("===r||"["===r)n||(n=l),s.push("("===r?")":"]");else if(o&&i&&"{"===r)n||(n=l),s.push("}");else if(0===s.length){if(";"===r){if(i)return void this.decl(a,o);break}if("{"===r)return void this.rule(a);if("}"===r){this.tokenizer.back(a.pop()),t=!0;break}":"===r&&(i=!0)}else r===s[s.length-1]&&(s.pop(),0===s.length&&(n=null));l=this.tokenizer.nextToken()}if(this.tokenizer.endOfFile()&&(t=!0),s.length>0&&this.unclosedBracket(n),t&&i){if(!o)for(;a.length&&(l=a[a.length-1][0],"space"===l||"comment"===l);)this.tokenizer.back(a.pop());this.decl(a,o)}else this.unknownWord(a)}rule(e){e.pop();let t=new l;this.init(t,e[0][2]),t.raws.between=this.spacesAndCommentsFromEnd(e),this.raw(t,"selector",e),this.current=t}decl(e,t){let r=new i;this.init(r,e[0][2]);let n,s=e[e.length-1];for(";"===s[0]&&(this.semicolon=!0,e.pop()),r.source.end=this.getPosition(s[3]||s[2]||function(e){for(let t=e.length-1;t>=0;t--){let r=e[t],i=r[3]||r[2];if(i)return i}}(e));"word"!==e[0][0];)1===e.length&&this.unknownWord(e),r.raws.before+=e.shift()[1];for(r.source.start=this.getPosition(e[0][2]),r.prop="";e.length;){let t=e[0][0];if(":"===t||"space"===t||"comment"===t)break;r.prop+=e.shift()[1]}for(r.raws.between="";e.length;){if(n=e.shift(),":"===n[0]){r.raws.between+=n[1];break}"word"===n[0]&&/\w/.test(n[1])&&this.unknownWord([n]),r.raws.between+=n[1]}"_"!==r.prop[0]&&"*"!==r.prop[0]||(r.raws.before+=r.prop[0],r.prop=r.prop.slice(1));let o,a=[];for(;e.length&&(o=e[0][0],"space"===o||"comment"===o);)a.push(e.shift());this.precheckMissedSemicolon(e);for(let t=e.length-1;t>=0;t--){if(n=e[t],"!important"===n[1].toLowerCase()){r.important=!0;let i=this.stringFrom(e,t);i=this.spacesFromEnd(e)+i," !important"!==i&&(r.raws.important=i);break}if("important"===n[1].toLowerCase()){let i=e.slice(0),n="";for(let e=t;e>0;e--){let t=i[e][0];if(0===n.trim().indexOf("!")&&"space"!==t)break;n=i.pop()[1]+n}0===n.trim().indexOf("!")&&(r.important=!0,r.raws.important=n,e=i)}if("space"!==n[0]&&"comment"!==n[0])break}e.some((e=>"space"!==e[0]&&"comment"!==e[0]))&&(r.raws.between+=a.map((e=>e[1])).join(""),a=[]),this.raw(r,"value",a.concat(e),t),r.value.includes(":")&&!t&&this.checkMissedSemicolon(e)}atrule(e){let t,r,i,n=new o;n.name=e[1].slice(1),""===n.name&&this.unnamedAtrule(n,e),this.init(n,e[2]);let s=!1,a=!1,l=[],c=[];for(;!this.tokenizer.endOfFile();){if(t=(e=this.tokenizer.nextToken())[0],"("===t||"["===t?c.push("("===t?")":"]"):"{"===t&&c.length>0?c.push("}"):t===c[c.length-1]&&c.pop(),0===c.length){if(";"===t){n.source.end=this.getPosition(e[2]),this.semicolon=!0;break}if("{"===t){a=!0;break}if("}"===t){if(l.length>0){for(i=l.length-1,r=l[i];r&&"space"===r[0];)r=l[--i];r&&(n.source.end=this.getPosition(r[3]||r[2]))}this.end(e);break}l.push(e)}else l.push(e);if(this.tokenizer.endOfFile()){s=!0;break}}n.raws.between=this.spacesAndCommentsFromEnd(l),l.length?(n.raws.afterName=this.spacesAndCommentsFromStart(l),this.raw(n,"params",l),s&&(e=l[l.length-1],n.source.end=this.getPosition(e[3]||e[2]),this.spaces=n.raws.between,n.raws.between="")):(n.raws.afterName="",n.params=""),a&&(n.nodes=[],this.current=n)}end(e){this.current.nodes&&this.current.nodes.length&&(this.current.raws.semicolon=this.semicolon),this.semicolon=!1,this.current.raws.after=(this.current.raws.after||"")+this.spaces,this.spaces="",this.current.parent?(this.current.source.end=this.getPosition(e[2]),this.current=this.current.parent):this.unexpectedClose(e)}endFile(){this.current.parent&&this.unclosedBlock(),this.current.nodes&&this.current.nodes.length&&(this.current.raws.semicolon=this.semicolon),this.current.raws.after=(this.current.raws.after||"")+this.spaces}freeSemicolon(e){if(this.spaces+=e[1],this.current.nodes){let e=this.current.nodes[this.current.nodes.length-1];e&&"rule"===e.type&&!e.raws.ownSemicolon&&(e.raws.ownSemicolon=this.spaces,this.spaces="")}}getPosition(e){let t=this.input.fromOffset(e);return{offset:e,line:t.line,column:t.col}}init(e,t){this.current.push(e),e.source={start:this.getPosition(t),input:this.input},e.raws.before=this.spaces,this.spaces="","comment"!==e.type&&(this.semicolon=!1)}raw(e,t,r,i){let n,s,o,a,l=r.length,u="",h=!0;for(let e=0;ee+t[1]),"");e.raws[t]={value:u,raw:i}}e[t]=u}spacesAndCommentsFromEnd(e){let t,r="";for(;e.length&&(t=e[e.length-1][0],"space"===t||"comment"===t);)r=e.pop()[1]+r;return r}spacesAndCommentsFromStart(e){let t,r="";for(;e.length&&(t=e[0][0],"space"===t||"comment"===t);)r+=e.shift()[1];return r}spacesFromEnd(e){let t,r="";for(;e.length&&(t=e[e.length-1][0],"space"===t);)r=e.pop()[1]+r;return r}stringFrom(e,t){let r="";for(let i=t;i=0&&(r=e[n],"space"===r[0]||(i+=1,2!==i));n--);throw this.input.error("Missed semicolon","word"===r[0]?r[3]+1:r[2])}}},5489:(e,t,r)=>{"use strict";var i=r(4406);let n=r(9452),s=r(2973),o=r(7229),a=r(4228),l=r(8420),c=r(7434),u=r(1693),h=r(4096),p=r(3641),d=r(3285),f=r(4938),m=r(2575),g=r(1271),b=r(8501),y=r(9401),v=r(4013),w=r(7399),x=r(9534);function S(...e){return 1===e.length&&Array.isArray(e[0])&&(e=e[0]),new l(e)}S.plugin=function(e,t){let r,n=!1;function s(...r){console&&console.warn&&!n&&(n=!0,console.warn(e+": postcss.plugin was deprecated. Migration guide:\nhttps://evilmartians.com/chronicles/postcss-8-plugin-migration"),i.env.LANG&&i.env.LANG.startsWith("cn")&&console.warn(e+": 里面 postcss.plugin 被弃用. 迁移指南:\nhttps://www.w3ctech.com/topic/2226"));let s=t(...r);return s.postcssPlugin=e,s.postcssVersion=(new l).version,s}return Object.defineProperty(s,"postcss",{get:()=>(r||(r=s()),r)}),s.process=function(e,t,r){return S([s(r)]).process(e,t)},s},S.stringify=c,S.parse=b,S.fromJSON=u,S.list=y,S.comment=e=>new d(e),S.atRule=e=>new f(e),S.decl=e=>new s(e),S.rule=e=>new v(e),S.root=e=>new w(e),S.document=e=>new h(e),S.CssSyntaxError=n,S.Declaration=s,S.Container=a,S.Processor=l,S.Document=h,S.Comment=d,S.Warning=p,S.AtRule=f,S.Result=m,S.Input=g,S.Rule=v,S.Root=w,S.Node=x,o.registerPostcss(S),e.exports=S,S.default=S},5098:(e,t,r)=>{"use strict";let{SourceMapConsumer:i,SourceMapGenerator:n}=r(139),{existsSync:s,readFileSync:o}=r(5158),{dirname:a,join:l}=r(8635);class c{constructor(e,t){if(!1===t.map)return;this.loadAnnotation(e),this.inline=this.startWith(this.annotation,"data:");let r=t.map?t.map.prev:void 0,i=this.loadMap(t.from,r);!this.mapFile&&t.from&&(this.mapFile=t.from),this.mapFile&&(this.root=a(this.mapFile)),i&&(this.text=i)}consumer(){return this.consumerCache||(this.consumerCache=new i(this.text)),this.consumerCache}withContent(){return!!(this.consumer().sourcesContent&&this.consumer().sourcesContent.length>0)}startWith(e,t){return!!e&&e.substr(0,t.length)===t}getAnnotationURL(e){return e.replace(/^\/\*\s*# sourceMappingURL=/,"").trim()}loadAnnotation(e){let t=e.match(/\/\*\s*# sourceMappingURL=/gm);if(!t)return;let r=e.lastIndexOf(t.pop()),i=e.indexOf("*/",r);r>-1&&i>-1&&(this.annotation=this.getAnnotationURL(e.substring(r,i)))}decodeInline(e){if(/^data:application\/json;charset=utf-?8,/.test(e)||/^data:application\/json,/.test(e))return decodeURIComponent(e.substr(RegExp.lastMatch.length));if(/^data:application\/json;charset=utf-?8;base64,/.test(e)||/^data:application\/json;base64,/.test(e))return t=e.substr(RegExp.lastMatch.length),Buffer?Buffer.from(t,"base64").toString():window.atob(t);var t;let r=e.match(/data:application\/json;([^,]+),/)[1];throw new Error("Unsupported source map encoding "+r)}loadFile(e){if(this.root=a(e),s(e))return this.mapFile=e,o(e,"utf-8").toString().trim()}loadMap(e,t){if(!1===t)return!1;if(t){if("string"==typeof t)return t;if("function"!=typeof t){if(t instanceof i)return n.fromSourceMap(t).toString();if(t instanceof n)return t.toString();if(this.isMap(t))return JSON.stringify(t);throw new Error("Unsupported previous source map format: "+t.toString())}{let r=t(e);if(r){let e=this.loadFile(r);if(!e)throw new Error("Unable to load previous source map: "+r.toString());return e}}}else{if(this.inline)return this.decodeInline(this.annotation);if(this.annotation){let t=this.annotation;return e&&(t=l(a(e),t)),this.loadFile(t)}}}isMap(e){return"object"==typeof e&&("string"==typeof e.mappings||"string"==typeof e._mappings||Array.isArray(e.sections))}}e.exports=c,c.default=c},8420:(e,t,r)=>{"use strict";let i=r(9787),n=r(7229),s=r(4096),o=r(7399);class a{constructor(e=[]){this.version="8.4.23",this.plugins=this.normalize(e)}use(e){return this.plugins=this.plugins.concat(this.normalize([e])),this}process(e,t={}){return 0===this.plugins.length&&void 0===t.parser&&void 0===t.stringifier&&void 0===t.syntax?new i(this,e,t):new n(this,e,t)}normalize(e){let t=[];for(let r of e)if(!0===r.postcss?r=r():r.postcss&&(r=r.postcss),"object"==typeof r&&Array.isArray(r.plugins))t=t.concat(r.plugins);else if("object"==typeof r&&r.postcssPlugin)t.push(r);else if("function"==typeof r)t.push(r);else if("object"!=typeof r||!r.parse&&!r.stringify)throw new Error(r+" is not a PostCSS plugin");return t}}e.exports=a,a.default=a,o.registerProcessor(a),s.registerProcessor(a)},2575:(e,t,r)=>{"use strict";let i=r(3641);class n{constructor(e,t,r){this.processor=e,this.messages=[],this.root=t,this.opts=r,this.css=void 0,this.map=void 0}toString(){return this.css}warn(e,t={}){t.plugin||this.lastPlugin&&this.lastPlugin.postcssPlugin&&(t.plugin=this.lastPlugin.postcssPlugin);let r=new i(e,t);return this.messages.push(r),r}warnings(){return this.messages.filter((e=>"warning"===e.type))}get content(){return this.css}}e.exports=n,n.default=n},7399:(e,t,r)=>{"use strict";let i,n,s=r(4228);class o extends s{constructor(e){super(e),this.type="root",this.nodes||(this.nodes=[])}removeChild(e,t){let r=this.index(e);return!t&&0===r&&this.nodes.length>1&&(this.nodes[1].raws.before=this.nodes[r].raws.before),super.removeChild(e)}normalize(e,t,r){let i=super.normalize(e);if(t)if("prepend"===r)this.nodes.length>1?t.raws.before=this.nodes[1].raws.before:delete t.raws.before;else if(this.first!==t)for(let e of i)e.raws.before=t.raws.before;return i}toResult(e={}){return new i(new n,this,e).stringify()}}o.registerLazyResult=e=>{i=e},o.registerProcessor=e=>{n=e},e.exports=o,o.default=o,s.registerRoot(o)},4013:(e,t,r)=>{"use strict";let i=r(4228),n=r(9401);class s extends i{constructor(e){super(e),this.type="rule",this.nodes||(this.nodes=[])}get selectors(){return n.comma(this.selector)}set selectors(e){let t=this.selector?this.selector.match(/,\s*/):null,r=t?t[0]:","+this.raw("between","beforeOpen");this.selector=e.join(r)}}e.exports=s,s.default=s,i.registerRule(s)},6573:e=>{"use strict";const t={colon:": ",indent:" ",beforeDecl:"\n",beforeRule:"\n",beforeOpen:" ",beforeClose:"\n",beforeComment:"\n",after:"\n",emptyBody:"",commentLeft:" ",commentRight:" ",semicolon:!1};class r{constructor(e){this.builder=e}stringify(e,t){if(!this[e.type])throw new Error("Unknown AST node type "+e.type+". Maybe you need to change PostCSS stringifier.");this[e.type](e,t)}document(e){this.body(e)}root(e){this.body(e),e.raws.after&&this.builder(e.raws.after)}comment(e){let t=this.raw(e,"left","commentLeft"),r=this.raw(e,"right","commentRight");this.builder("/*"+t+e.text+r+"*/",e)}decl(e,t){let r=this.raw(e,"between","colon"),i=e.prop+r+this.rawValue(e,"value");e.important&&(i+=e.raws.important||" !important"),t&&(i+=";"),this.builder(i,e)}rule(e){this.block(e,this.rawValue(e,"selector")),e.raws.ownSemicolon&&this.builder(e.raws.ownSemicolon,e,"end")}atrule(e,t){let r="@"+e.name,i=e.params?this.rawValue(e,"params"):"";if(void 0!==e.raws.afterName?r+=e.raws.afterName:i&&(r+=" "),e.nodes)this.block(e,r+i);else{let n=(e.raws.between||"")+(t?";":"");this.builder(r+i+n,e)}}body(e){let t=e.nodes.length-1;for(;t>0&&"comment"===e.nodes[t].type;)t-=1;let r=this.raw(e,"semicolon");for(let i=0;i{if(n=e.raws[r],void 0!==n)return!1}))}var a;return void 0===n&&(n=t[i]),o.rawCache[i]=n,n}rawSemicolon(e){let t;return e.walk((e=>{if(e.nodes&&e.nodes.length&&"decl"===e.last.type&&(t=e.raws.semicolon,void 0!==t))return!1})),t}rawEmptyBody(e){let t;return e.walk((e=>{if(e.nodes&&0===e.nodes.length&&(t=e.raws.after,void 0!==t))return!1})),t}rawIndent(e){if(e.raws.indent)return e.raws.indent;let t;return e.walk((r=>{let i=r.parent;if(i&&i!==e&&i.parent&&i.parent===e&&void 0!==r.raws.before){let e=r.raws.before.split("\n");return t=e[e.length-1],t=t.replace(/\S/g,""),!1}})),t}rawBeforeComment(e,t){let r;return e.walkComments((e=>{if(void 0!==e.raws.before)return r=e.raws.before,r.includes("\n")&&(r=r.replace(/[^\n]+$/,"")),!1})),void 0===r?r=this.raw(t,null,"beforeDecl"):r&&(r=r.replace(/\S/g,"")),r}rawBeforeDecl(e,t){let r;return e.walkDecls((e=>{if(void 0!==e.raws.before)return r=e.raws.before,r.includes("\n")&&(r=r.replace(/[^\n]+$/,"")),!1})),void 0===r?r=this.raw(t,null,"beforeRule"):r&&(r=r.replace(/\S/g,"")),r}rawBeforeRule(e){let t;return e.walk((r=>{if(r.nodes&&(r.parent!==e||e.first!==r)&&void 0!==r.raws.before)return t=r.raws.before,t.includes("\n")&&(t=t.replace(/[^\n]+$/,"")),!1})),t&&(t=t.replace(/\S/g,"")),t}rawBeforeClose(e){let t;return e.walk((e=>{if(e.nodes&&e.nodes.length>0&&void 0!==e.raws.after)return t=e.raws.after,t.includes("\n")&&(t=t.replace(/[^\n]+$/,"")),!1})),t&&(t=t.replace(/\S/g,"")),t}rawBeforeOpen(e){let t;return e.walk((e=>{if("decl"!==e.type&&(t=e.raws.between,void 0!==t))return!1})),t}rawColon(e){let t;return e.walkDecls((e=>{if(void 0!==e.raws.between)return t=e.raws.between.replace(/[^\s:]/g,""),!1})),t}beforeAfter(e,t){let r;r="decl"===e.type?this.raw(e,null,"beforeDecl"):"comment"===e.type?this.raw(e,null,"beforeComment"):"before"===t?this.raw(e,null,"beforeRule"):this.raw(e,null,"beforeClose");let i=e.parent,n=0;for(;i&&"root"!==i.type;)n+=1,i=i.parent;if(r.includes("\n")){let t=this.raw(e,null,"indent");if(t.length)for(let e=0;e{"use strict";let i=r(6573);function n(e,t){new i(t).stringify(e)}e.exports=n,n.default=n},9181:e=>{"use strict";e.exports.isClean=Symbol("isClean"),e.exports.my=Symbol("my")},1171:e=>{"use strict";const t="'".charCodeAt(0),r='"'.charCodeAt(0),i="\\".charCodeAt(0),n="/".charCodeAt(0),s="\n".charCodeAt(0),o=" ".charCodeAt(0),a="\f".charCodeAt(0),l="\t".charCodeAt(0),c="\r".charCodeAt(0),u="[".charCodeAt(0),h="]".charCodeAt(0),p="(".charCodeAt(0),d=")".charCodeAt(0),f="{".charCodeAt(0),m="}".charCodeAt(0),g=";".charCodeAt(0),b="*".charCodeAt(0),y=":".charCodeAt(0),v="@".charCodeAt(0),w=/[\t\n\f\r "#'()/;[\\\]{}]/g,x=/[\t\n\f\r !"#'():;@[\\\]{}]|\/(?=\*)/g,S=/.[\n"'(/\\]/,T=/[\da-f]/i;e.exports=function(e,E={}){let A,C,O,k,I,N,D,P,L,q,M=e.css.valueOf(),R=E.ignoreErrors,j=M.length,B=0,_=[],U=[];function H(t){throw e.error("Unclosed "+t,B)}return{back:function(e){U.push(e)},nextToken:function(e){if(U.length)return U.pop();if(B>=j)return;let E=!!e&&e.ignoreUnclosed;switch(A=M.charCodeAt(B),A){case s:case o:case l:case c:case a:C=B;do{C+=1,A=M.charCodeAt(C)}while(A===o||A===s||A===l||A===c||A===a);q=["space",M.slice(B,C)],B=C-1;break;case u:case h:case f:case m:case y:case g:case d:{let e=String.fromCharCode(A);q=[e,e,B];break}case p:if(P=_.length?_.pop()[1]:"",L=M.charCodeAt(B+1),"url"===P&&L!==t&&L!==r&&L!==o&&L!==s&&L!==l&&L!==a&&L!==c){C=B;do{if(N=!1,C=M.indexOf(")",C+1),-1===C){if(R||E){C=B;break}H("bracket")}for(D=C;M.charCodeAt(D-1)===i;)D-=1,N=!N}while(N);q=["brackets",M.slice(B,C+1),B,C],B=C}else C=M.indexOf(")",B+1),k=M.slice(B,C+1),-1===C||S.test(k)?q=["(","(",B]:(q=["brackets",k,B,C],B=C);break;case t:case r:O=A===t?"'":'"',C=B;do{if(N=!1,C=M.indexOf(O,C+1),-1===C){if(R||E){C=B+1;break}H("string")}for(D=C;M.charCodeAt(D-1)===i;)D-=1,N=!N}while(N);q=["string",M.slice(B,C+1),B,C],B=C;break;case v:w.lastIndex=B+1,w.test(M),C=0===w.lastIndex?M.length-1:w.lastIndex-2,q=["at-word",M.slice(B,C+1),B,C],B=C;break;case i:for(C=B,I=!0;M.charCodeAt(C+1)===i;)C+=1,I=!I;if(A=M.charCodeAt(C+1),I&&A!==n&&A!==o&&A!==s&&A!==l&&A!==c&&A!==a&&(C+=1,T.test(M.charAt(C)))){for(;T.test(M.charAt(C+1));)C+=1;M.charCodeAt(C+1)===o&&(C+=1)}q=["word",M.slice(B,C+1),B,C],B=C;break;default:A===n&&M.charCodeAt(B+1)===b?(C=M.indexOf("*/",B+2)+1,0===C&&(R||E?C=M.length:H("comment")),q=["comment",M.slice(B,C+1),B,C],B=C):(x.lastIndex=B+1,x.test(M),C=0===x.lastIndex?M.length-1:x.lastIndex-2,q=["word",M.slice(B,C+1),B,C],_.push(q),B=C)}return B++,q},endOfFile:function(){return 0===U.length&&B>=j},position:function(){return B}}}},7570:e=>{"use strict";let t={};e.exports=function(e){t[e]||(t[e]=!0,"undefined"!=typeof console&&console.warn&&console.warn(e))}},3641:e=>{"use strict";class t{constructor(e,t={}){if(this.type="warning",this.text=e,t.node&&t.node.source){let e=t.node.rangeBy(t);this.line=e.start.line,this.column=e.start.column,this.endLine=e.end.line,this.endColumn=e.end.column}for(let e in t)this[e]=t[e]}toString(){return this.node?this.node.error(this.text,{plugin:this.plugin,index:this.index,word:this.word}).message:this.plugin?this.plugin+": "+this.text:this.text}}e.exports=t,t.default=t},4406:e=>{var t,r,i=e.exports={};function n(){throw new Error("setTimeout has not been defined")}function s(){throw new Error("clearTimeout has not been defined")}function o(e){if(t===setTimeout)return setTimeout(e,0);if((t===n||!t)&&setTimeout)return t=setTimeout,setTimeout(e,0);try{return t(e,0)}catch(r){try{return t.call(null,e,0)}catch(r){return t.call(this,e,0)}}}!function(){try{t="function"==typeof setTimeout?setTimeout:n}catch(e){t=n}try{r="function"==typeof clearTimeout?clearTimeout:s}catch(e){r=s}}();var a,l=[],c=!1,u=-1;function h(){c&&a&&(c=!1,a.length?l=a.concat(l):u=-1,l.length&&p())}function p(){if(!c){var e=o(h);c=!0;for(var t=l.length;t;){for(a=l,l=[];++u1)for(var r=1;r{const i=r(883),n=r(8102),{isPlainObject:s}=r(303),o=r(9714),a=r(8915),{parse:l}=r(5489),c=["img","audio","video","picture","svg","object","map","iframe","embed"],u=["script","style"];function h(e,t){e&&Object.keys(e).forEach((function(r){t(e[r],r)}))}function p(e,t){return{}.hasOwnProperty.call(e,t)}function d(e,t){const r=[];return h(e,(function(e){t(e)&&r.push(e)})),r}e.exports=m;const f=/^[^\0\t\n\f\r /<=>]+$/;function m(e,t,r){if(null==e)return"";"number"==typeof e&&(e=e.toString());let b="",y="";function v(e,t){const r=this;this.tag=e,this.attribs=t||{},this.tagPosition=b.length,this.text="",this.mediaChildren=[],this.updateParentNodeText=function(){N.length&&(N[N.length-1].text+=r.text)},this.updateParentNodeMediaChildren=function(){N.length&&c.includes(this.tag)&&N[N.length-1].mediaChildren.push(this.tag)}}(t=Object.assign({},m.defaults,t)).parser=Object.assign({},g,t.parser);const w=function(e){return!1===t.allowedTags||(t.allowedTags||[]).indexOf(e)>-1};u.forEach((function(e){w(e)&&!t.allowVulnerableTags&&console.warn(`\n\n⚠️ Your \`allowedTags\` option includes, \`${e}\`, which is inherently\nvulnerable to XSS attacks. Please remove it from \`allowedTags\`.\nOr, to disable this warning, add the \`allowVulnerableTags\` option\nand ensure you are accounting for this risk.\n\n`)}));const x=t.nonTextTags||["script","style","textarea","option"];let S,T;t.allowedAttributes&&(S={},T={},h(t.allowedAttributes,(function(e,t){S[t]=[];const r=[];e.forEach((function(e){"string"==typeof e&&e.indexOf("*")>=0?r.push(n(e).replace(/\\\*/g,".*")):S[t].push(e)})),r.length&&(T[t]=new RegExp("^("+r.join("|")+")$"))})));const E={},A={},C={};h(t.allowedClasses,(function(e,t){S&&(p(S,t)||(S[t]=[]),S[t].push("class")),E[t]=[],C[t]=[];const r=[];e.forEach((function(e){"string"==typeof e&&e.indexOf("*")>=0?r.push(n(e).replace(/\\\*/g,".*")):e instanceof RegExp?C[t].push(e):E[t].push(e)})),r.length&&(A[t]=new RegExp("^("+r.join("|")+")$"))}));const O={};let k,I,N,D,P,L,q;h(t.transformTags,(function(e,t){let r;"function"==typeof e?r=e:"string"==typeof e&&(r=m.simpleTransform(e)),"*"===t?k=r:O[t]=r}));let M=!1;j();const R=new i.Parser({onopentag:function(e,r){if(t.enforceHtmlBoundary&&"html"===e&&j(),L)return void q++;const i=new v(e,r);N.push(i);let n=!1;const c=!!i.text;let u;if(p(O,e)&&(u=O[e](e,r),i.attribs=r=u.attribs,void 0!==u.text&&(i.innerText=u.text),e!==u.tagName&&(i.name=e=u.tagName,P[I]=u.tagName)),k&&(u=k(e,r),i.attribs=r=u.attribs,e!==u.tagName&&(i.name=e=u.tagName,P[I]=u.tagName)),(!w(e)||"recursiveEscape"===t.disallowedTagsMode&&!function(e){for(const t in e)if(p(e,t))return!1;return!0}(D)||null!=t.nestingLimit&&I>=t.nestingLimit)&&(n=!0,D[I]=!0,"discard"===t.disallowedTagsMode&&-1!==x.indexOf(e)&&(L=!0,q=1),D[I]=!0),I++,n){if("discard"===t.disallowedTagsMode)return;y=b,b=""}b+="<"+e,"script"===e&&(t.allowedScriptHostnames||t.allowedScriptDomains)&&(i.innerText=""),(!S||p(S,e)||S["*"])&&h(r,(function(r,n){if(!f.test(n))return void delete i.attribs[n];let c=!1;if(!S||p(S,e)&&-1!==S[e].indexOf(n)||S["*"]&&-1!==S["*"].indexOf(n)||p(T,e)&&T[e].test(n)||T["*"]&&T["*"].test(n))c=!0;else if(S&&S[e])for(const t of S[e])if(s(t)&&t.name&&t.name===n){c=!0;let e="";if(!0===t.multiple){const i=r.split(" ");for(const r of i)-1!==t.values.indexOf(r)&&(""===e?e=r:e+=" "+r)}else t.values.indexOf(r)>=0&&(e=r);r=e}if(c){if(-1!==t.allowedSchemesAppliedToAttributes.indexOf(n)&&_(e,r))return void delete i.attribs[n];if("script"===e&&"src"===n){let e=!0;try{const i=U(r);if(t.allowedScriptHostnames||t.allowedScriptDomains){const r=(t.allowedScriptHostnames||[]).find((function(e){return e===i.url.hostname})),n=(t.allowedScriptDomains||[]).find((function(e){return i.url.hostname===e||i.url.hostname.endsWith(`.${e}`)}));e=r||n}}catch(t){e=!1}if(!e)return void delete i.attribs[n]}if("iframe"===e&&"src"===n){let e=!0;try{const i=U(r);if(i.isRelativeUrl)e=p(t,"allowIframeRelativeUrls")?t.allowIframeRelativeUrls:!t.allowedIframeHostnames&&!t.allowedIframeDomains;else if(t.allowedIframeHostnames||t.allowedIframeDomains){const r=(t.allowedIframeHostnames||[]).find((function(e){return e===i.url.hostname})),n=(t.allowedIframeDomains||[]).find((function(e){return i.url.hostname===e||i.url.hostname.endsWith(`.${e}`)}));e=r||n}}catch(t){e=!1}if(!e)return void delete i.attribs[n]}if("srcset"===n)try{let e=a(r);if(e.forEach((function(e){_("srcset",e.url)&&(e.evil=!0)})),e=d(e,(function(e){return!e.evil})),!e.length)return void delete i.attribs[n];r=d(e,(function(e){return!e.evil})).map((function(e){if(!e.url)throw new Error("URL missing");return e.url+(e.w?` ${e.w}w`:"")+(e.h?` ${e.h}h`:"")+(e.d?` ${e.d}x`:"")})).join(", "),i.attribs[n]=r}catch(e){return void delete i.attribs[n]}if("class"===n){const t=E[e],s=E["*"],a=A[e],l=C[e],c=[a,A["*"]].concat(l).filter((function(e){return e}));if(!(u=r,h=t&&s?o(t,s):t||s,m=c,r=h?(u=u.split(/\s+/)).filter((function(e){return-1!==h.indexOf(e)||m.some((function(t){return t.test(e)}))})).join(" "):u).length)return void delete i.attribs[n]}if("style"===n)if(t.parseStyleAttributes)try{if(r=function(e){return e.nodes[0].nodes.reduce((function(e,t){return e.push(`${t.prop}:${t.value}${t.important?" !important":""}`),e}),[]).join(";")}(function(e,t){if(!t)return e;const r=e.nodes[0];let i;return i=t[r.selector]&&t["*"]?o(t[r.selector],t["*"]):t[r.selector]||t["*"],i&&(e.nodes[0].nodes=r.nodes.reduce(function(e){return function(t,r){return p(e,r.prop)&&e[r.prop].some((function(e){return e.test(r.value)}))&&t.push(r),t}}(i),[])),e}(l(e+" {"+r+"}"),t.allowedStyles)),0===r.length)return void delete i.attribs[n]}catch(t){return console.warn('Failed to parse "'+e+" {"+r+"}\", If you're running this in a browser, we recommend to disable style parsing: options.parseStyleAttributes: false, since this only works in a node environment due to a postcss dependency, More info: https://github.com/apostrophecms/sanitize-html/issues/547"),void delete i.attribs[n]}else if(t.allowedStyles)throw new Error("allowedStyles option cannot be used together with parseStyleAttributes: false.");b+=" "+n,r&&r.length&&(b+='="'+B(r,!0)+'"')}else delete i.attribs[n];var u,h,m})),-1!==t.selfClosing.indexOf(e)?b+=" />":(b+=">",!i.innerText||c||t.textFilter||(b+=B(i.innerText),M=!0)),n&&(b=y+B(b),y="")},ontext:function(e){if(L)return;const r=N[N.length-1];let i;if(r&&(i=r.tag,e=void 0!==r.innerText?r.innerText:e),"discard"!==t.disallowedTagsMode||"script"!==i&&"style"!==i){const r=B(e,!1);t.textFilter&&!M?b+=t.textFilter(r,i):M||(b+=r)}else b+=e;N.length&&(N[N.length-1].text+=e)},onclosetag:function(e,r){if(L){if(q--,q)return;L=!1}const i=N.pop();if(!i)return;if(i.tag!==e)return void N.push(i);L=!!t.enforceHtmlBoundary&&"html"===e,I--;const n=D[I];if(n){if(delete D[I],"discard"===t.disallowedTagsMode)return void i.updateParentNodeText();y=b,b=""}P[I]&&(e=P[I],delete P[I]),t.exclusiveFilter&&t.exclusiveFilter(i)?b=b.substr(0,i.tagPosition):(i.updateParentNodeMediaChildren(),i.updateParentNodeText(),-1!==t.selfClosing.indexOf(e)||r&&!w(e)&&["escape","recursiveEscape"].indexOf(t.disallowedTagsMode)>=0?n&&(b=y,y=""):(b+="",n&&(b=y+B(b),y=""),M=!1))}},t.parser);return R.write(e),R.end(),b;function j(){b="",I=0,N=[],D={},P={},L=!1,q=0}function B(e,r){return"string"!=typeof e&&(e+=""),t.parser.decodeEntities&&(e=e.replace(/&/g,"&").replace(//g,">"),r&&(e=e.replace(/"/g,"""))),e=e.replace(/&(?![a-zA-Z0-9#]{1,20};)/g,"&").replace(//g,">"),r&&(e=e.replace(/"/g,""")),e}function _(e,r){for(r=r.replace(/[\x00-\x20]+/g,"");;){const e=r.indexOf("\x3c!--");if(-1===e)break;const t=r.indexOf("--\x3e",e+4);if(-1===t)break;r=r.substring(0,e)+r.substring(t+3)}const i=r.match(/^([a-zA-Z][a-zA-Z0-9.\-+]*):/);if(!i)return!!r.match(/^[/\\]{2}/)&&!t.allowProtocolRelative;const n=i[1].toLowerCase();return p(t.allowedSchemesByTag,e)?-1===t.allowedSchemesByTag[e].indexOf(n):!t.allowedSchemes||-1===t.allowedSchemes.indexOf(n)}function U(e){if((e=e.replace(/^(\w+:)?\s*[\\/]\s*[\\/]/,"$1//")).startsWith("relative:"))throw new Error("relative: exploit attempt");let t="relative://relative-site";for(let e=0;e<100;e++)t+=`/${e}`;const r=new URL(e,t);return{isRelativeUrl:r&&"relative-site"===r.hostname&&"relative:"===r.protocol,url:r}}}const g={decodeEntities:!0};m.defaults={allowedTags:["address","article","aside","footer","header","h1","h2","h3","h4","h5","h6","hgroup","main","nav","section","blockquote","dd","div","dl","dt","figcaption","figure","hr","li","main","ol","p","pre","ul","a","abbr","b","bdi","bdo","br","cite","code","data","dfn","em","i","kbd","mark","q","rb","rp","rt","rtc","ruby","s","samp","small","span","strong","sub","sup","time","u","var","wbr","caption","col","colgroup","table","tbody","td","tfoot","th","thead","tr"],disallowedTagsMode:"discard",allowedAttributes:{a:["href","name","target"],img:["src","srcset","alt","title","width","height","loading"]},selfClosing:["img","br","hr","area","base","basefont","input","link","meta"],allowedSchemes:["http","https","ftp","mailto","tel"],allowedSchemesByTag:{},allowedSchemesAppliedToAttributes:["href","src","cite"],allowProtocolRelative:!0,enforceHtmlBoundary:!1,parseStyleAttributes:!0},m.simpleTransform=function(e,t,r){return r=void 0===r||r,t=t||{},function(i,n){let s;if(r)for(s in t)n[s]=t[s];else n=t;return{tagName:e,attribs:n}}}},8864:e=>{e.exports={nanoid:(e=21)=>{let t="",r=e;for(;r--;)t+="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict"[64*Math.random()|0];return t},customAlphabet:(e,t=21)=>(r=t)=>{let i="",n=r;for(;n--;)i+=e[Math.random()*e.length|0];return i}}}}]); \ No newline at end of file diff --git a/_static/extensions/@jupyter-widgets/jupyterlab-manager/static/113.6113d19fca7ff66ccc66.js.LICENSE.txt b/_static/extensions/@jupyter-widgets/jupyterlab-manager/static/113.6113d19fca7ff66ccc66.js.LICENSE.txt new file mode 100644 index 0000000..fe4c1fe --- /dev/null +++ b/_static/extensions/@jupyter-widgets/jupyterlab-manager/static/113.6113d19fca7ff66ccc66.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*! + * is-plain-object + * + * Copyright (c) 2014-2017, Jon Schlinkert. + * Released under the MIT License. + */ diff --git a/_static/extensions/@jupyter-widgets/jupyterlab-manager/static/134.b4eddbb09f5fd50a4007.js b/_static/extensions/@jupyter-widgets/jupyterlab-manager/static/134.b4eddbb09f5fd50a4007.js new file mode 100644 index 0000000..060f8ed --- /dev/null +++ b/_static/extensions/@jupyter-widgets/jupyterlab-manager/static/134.b4eddbb09f5fd50a4007.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_jupyter_widgets_jupyterlab_manager=self.webpackChunk_jupyter_widgets_jupyterlab_manager||[]).push([[134,61],{937:(e,n,t)=>{t.d(n,{Z:()=>d});var i=t(9601),r=t.n(i),o=t(2609),a=t.n(o)()(r());a.push([e.id,"/* Copyright (c) Jupyter Development Team.\n * Distributed under the terms of the Modified BSD License.\n */\n\n.jupyter-widgets-disconnected::before {\n content: '\\f127'; /* chain-broken */\n display: inline-block;\n font: normal normal 900 14px/1 'Font Awesome 5 Free', 'FontAwesome';\n text-rendering: auto;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n color: #d9534f;\n padding: 3px;\n align-self: flex-start;\n}\n\n.jupyter-widgets-error-widget {\n display: flex;\n flex-direction: column;\n justify-content: center;\n height: 100%;\n border: solid 1px red;\n margin: 0 auto;\n}\n\n.jupyter-widgets-error-widget.icon-error {\n min-width: var(--jp-widgets-inline-width-short);\n}\n.jupyter-widgets-error-widget.text-error {\n min-width: calc(2 * var(--jp-widgets-inline-width));\n min-height: calc(3 * var(--jp-widgets-inline-height));\n}\n\n.jupyter-widgets-error-widget p {\n text-align: center;\n}\n\n.jupyter-widgets-error-widget.text-error pre::first-line {\n font-weight: bold;\n}\n",""]);const d=a},7117:(e,n,t)=>{t.d(n,{Z:()=>d});var i=t(9601),r=t.n(i),o=t(2609),a=t.n(o)()(r());a.push([e.id,"/* This file has code derived from Lumino CSS files, as noted below. The license for this Lumino code is:\n\nCopyright (c) 2019 Project Jupyter Contributors\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n1. Redistributions of source code must retain the above copyright notice, this\n list of conditions and the following disclaimer.\n\n2. Redistributions in binary form must reproduce the above copyright notice,\n this list of conditions and the following disclaimer in the documentation\n and/or other materials provided with the distribution.\n\n3. Neither the name of the copyright holder nor the names of its\n contributors may be used to endorse or promote products derived from\n this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\nAND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\nSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\nCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\nOR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n\nCopyright (c) 2014-2017, PhosphorJS Contributors\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n* Redistributions of source code must retain the above copyright notice, this\n list of conditions and the following disclaimer.\n\n* Redistributions in binary form must reproduce the above copyright notice,\n this list of conditions and the following disclaimer in the documentation\n and/or other materials provided with the distribution.\n\n* Neither the name of the copyright holder nor the names of its\n contributors may be used to endorse or promote products derived from\n this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\nAND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\nSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\nCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\nOR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n*/\n\n/*\n * The following section is derived from https://github.com/jupyterlab/lumino/blob/23b9d075ebc5b73ab148b6ebfc20af97f85714c4/packages/widgets/style/tabbar.css \n * We've scoped the rules so that they are consistent with exactly our code.\n */\n\n/* */\n.jupyter-widgets.widget-tab > .p-TabBar, /* */\n/* */.jupyter-widgets.jupyter-widget-tab > .p-TabBar, /* */\n.jupyter-widgets.jupyter-widget-tab > .lm-TabBar {\n display: flex;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n\n/* */\n.jupyter-widgets.widget-tab > .p-TabBar[data-orientation='horizontal'], /* */\n/* */.jupyter-widgets.jupyter-widget-tab > .p-TabBar[data-orientation='horizontal'], /* */\n.jupyter-widgets.jupyter-widget-tab > .lm-TabBar[data-orientation='horizontal'] {\n flex-direction: row;\n}\n\n/* */\n.jupyter-widgets.widget-tab > .p-TabBar[data-orientation='vertical'], /* */\n/* */.jupyter-widgets.jupyter-widget-tab > .p-TabBar[data-orientation='vertical'], /* */\n.jupyter-widgets.jupyter-widget-tab > .lm-TabBar[data-orientation='vertical'] {\n flex-direction: column;\n}\n\n/* */\n.jupyter-widgets.widget-tab > .p-TabBar > .p-TabBar-content, /* */\n/* */.jupyter-widgets.jupyter-widget-tab > .p-TabBar > .p-TabBar-content, /* */\n.jupyter-widgets.jupyter-widget-tab > .lm-TabBar > .lm-TabBar-content {\n margin: 0;\n padding: 0;\n display: flex;\n flex: 1 1 auto;\n list-style-type: none;\n}\n\n/* */\n.jupyter-widgets.widget-tab\n > .p-TabBar[data-orientation='horizontal']\n > .p-TabBar-content,\n/* */\n/* */\n.jupyter-widgets.jupyter-widget-tab\n> .p-TabBar[data-orientation='horizontal']\n> .p-TabBar-content,\n/* */\n.jupyter-widgets.jupyter-widget-tab\n > .lm-TabBar[data-orientation='horizontal']\n > .lm-TabBar-content {\n flex-direction: row;\n}\n\n/* */\n.jupyter-widgets.widget-tab\n > .p-TabBar[data-orientation='vertical']\n > .p-TabBar-content,\n/* */\n/* */\n.jupyter-widgets.jupyter-widget-tab\n> .p-TabBar[data-orientation='vertical']\n> .p-TabBar-content,\n/* */\n.jupyter-widgets.jupyter-widget-tab\n > .lm-TabBar[data-orientation='vertical']\n > .lm-TabBar-content {\n flex-direction: column;\n}\n\n/* */\n.jupyter-widgets.widget-tab > .p-TabBar .p-TabBar-tab, /* */\n/* */.jupyter-widgets.jupyter-widget-tab > .p-TabBar .p-TabBar-tab, /* */\n.jupyter-widgets.jupyter-widget-tab > .lm-TabBar .lm-TabBar-tab {\n display: flex;\n flex-direction: row;\n box-sizing: border-box;\n overflow: hidden;\n}\n\n/* */\n.jupyter-widgets.widget-tab > .p-TabBar .p-TabBar-tabIcon, /* */\n/* */ .jupyter-widgets.widget-tab > .p-TabBar .p-TabBar-tabCloseIcon, /* */\n/* */.jupyter-widgets.jupyter-widget-tab > .p-TabBar .p-TabBar-tabIcon, /* */\n/* */ .jupyter-widgets.jupyter-widget-tab > .p-TabBar .p-TabBar-tabCloseIcon, /* */\n.jupyter-widgets.jupyter-widget-tab > .lm-TabBar .lm-TabBar-tabIcon,\n.jupyter-widgets.jupyter-widget-tab > .lm-TabBar .lm-TabBar-tabCloseIcon {\n flex: 0 0 auto;\n}\n\n/* */\n.jupyter-widgets.widget-tab > .p-TabBar .p-TabBar-tabLabel, /* */\n/* */.jupyter-widgets.jupyter-widget-tab > .p-TabBar .p-TabBar-tabLabel, /* */\n.jupyter-widgets.jupyter-widget-tab > .lm-TabBar .lm-TabBar-tabLabel {\n flex: 1 1 auto;\n overflow: hidden;\n white-space: nowrap;\n}\n\n/* */\n.jupyter-widgets.widget-tab > .p-TabBar .p-TabBar-tab.p-mod-hidden, /* */\n/* */.jupyter-widgets.jupyter-widget-tab > .p-TabBar .p-TabBar-tab.p-mod-hidden, /* */\n.jupyter-widgets.jupyter-widget-tab > .lm-TabBar .lm-TabBar-tab.lm-mod-hidden {\n display: none !important;\n}\n\n/* */\n.jupyter-widgets.widget-tab > .p-TabBar.p-mod-dragging .p-TabBar-tab, /* */\n/* */.jupyter-widgets.jupyter-widget-tab > .p-TabBar.p-mod-dragging .p-TabBar-tab, /* */\n.jupyter-widgets.jupyter-widget-tab > .lm-TabBar.lm-mod-dragging .lm-TabBar-tab {\n position: relative;\n}\n\n/* */\n.jupyter-widgets.widget-tab\n > .p-TabBar.p-mod-dragging[data-orientation='horizontal']\n .p-TabBar-tab,\n/* */\n/* */\n.jupyter-widgets.jupyter-widget-tab\n > .p-TabBar.p-mod-dragging[data-orientation='horizontal']\n .p-TabBar-tab,\n/* */\n.jupyter-widgets.jupyter-widget-tab\n > .lm-TabBar.lm-mod-dragging[data-orientation='horizontal']\n .lm-TabBar-tab {\n left: 0;\n transition: left 150ms ease;\n}\n\n/* */\n.jupyter-widgets.widget-tab\n > .p-TabBar.p-mod-dragging[data-orientation='vertical']\n .p-TabBar-tab,\n/* */\n/* */\n.jupyter-widgets.jupyter-widget-tab\n> .p-TabBar.p-mod-dragging[data-orientation='vertical']\n.p-TabBar-tab,\n/* */\n.jupyter-widgets.jupyter-widget-tab\n > .lm-TabBar.lm-mod-dragging[data-orientation='vertical']\n .lm-TabBar-tab {\n top: 0;\n transition: top 150ms ease;\n}\n\n/* */\n.jupyter-widgets.widget-tab\n > .p-TabBar.p-mod-dragging\n .p-TabBar-tab.p-mod-dragging,\n/* */\n/* */\n.jupyter-widgets.jupyter-widget-tab\n> .p-TabBar.p-mod-dragging\n.p-TabBar-tab.p-mod-dragging,\n/* */\n.jupyter-widgets.jupyter-widget-tab\n > .lm-TabBar.lm-mod-dragging\n .lm-TabBar-tab.lm-mod-dragging {\n transition: none;\n}\n\n/* End tabbar.css */\n",""]);const d=a},4788:(e,n,t)=>{t.d(n,{Z:()=>d});var i=t(9601),r=t.n(i),o=t(2609),a=t.n(o)()(r());a.push([e.id,'/*\n\nThe nouislider.css file is autogenerated from nouislider.less, which imports and wraps the nouislider/src/nouislider.less styles.\n\nMIT License\n\nCopyright (c) 2019 Léon Gersen\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n*/\n/* The .widget-slider class is deprecated */\n.widget-slider,\n.jupyter-widget-slider {\n /* Functional styling;\n * These styles are required for noUiSlider to function.\n * You don\'t need to change these rules to apply your design.\n */\n /* Wrapper for all connect elements.\n */\n /* Offset direction\n */\n /* Give origins 0 height/width so they don\'t interfere with clicking the\n * connect elements.\n */\n /* Slider size and handle placement;\n */\n /* Styling;\n * Giving the connect element a border radius causes issues with using transform: scale\n */\n /* Handles and cursors;\n */\n /* Handle stripes;\n */\n /* Disabled state;\n */\n /* Base;\n *\n */\n /* Values;\n *\n */\n /* Markings;\n *\n */\n /* Horizontal layout;\n *\n */\n /* Vertical layout;\n *\n */\n /* Copyright (c) Jupyter Development Team.\n * Distributed under the terms of the Modified BSD License.\n */\n /* Custom CSS for nouislider */\n}\n.widget-slider .noUi-target,\n.jupyter-widget-slider .noUi-target,\n.widget-slider .noUi-target *,\n.jupyter-widget-slider .noUi-target * {\n -webkit-touch-callout: none;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n -webkit-user-select: none;\n -ms-touch-action: none;\n touch-action: none;\n -ms-user-select: none;\n -moz-user-select: none;\n user-select: none;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n}\n.widget-slider .noUi-target,\n.jupyter-widget-slider .noUi-target {\n position: relative;\n}\n.widget-slider .noUi-base,\n.jupyter-widget-slider .noUi-base,\n.widget-slider .noUi-connects,\n.jupyter-widget-slider .noUi-connects {\n width: 100%;\n height: 100%;\n position: relative;\n z-index: 1;\n}\n.widget-slider .noUi-connects,\n.jupyter-widget-slider .noUi-connects {\n overflow: hidden;\n z-index: 0;\n}\n.widget-slider .noUi-connect,\n.jupyter-widget-slider .noUi-connect,\n.widget-slider .noUi-origin,\n.jupyter-widget-slider .noUi-origin {\n will-change: transform;\n position: absolute;\n z-index: 1;\n top: 0;\n right: 0;\n -ms-transform-origin: 0 0;\n -webkit-transform-origin: 0 0;\n -webkit-transform-style: preserve-3d;\n transform-origin: 0 0;\n transform-style: flat;\n}\n.widget-slider .noUi-connect,\n.jupyter-widget-slider .noUi-connect {\n height: 100%;\n width: 100%;\n}\n.widget-slider .noUi-origin,\n.jupyter-widget-slider .noUi-origin {\n height: 10%;\n width: 10%;\n}\n.widget-slider .noUi-txt-dir-rtl.noUi-horizontal .noUi-origin,\n.jupyter-widget-slider .noUi-txt-dir-rtl.noUi-horizontal .noUi-origin {\n left: 0;\n right: auto;\n}\n.widget-slider .noUi-vertical .noUi-origin,\n.jupyter-widget-slider .noUi-vertical .noUi-origin {\n width: 0;\n}\n.widget-slider .noUi-horizontal .noUi-origin,\n.jupyter-widget-slider .noUi-horizontal .noUi-origin {\n height: 0;\n}\n.widget-slider .noUi-handle,\n.jupyter-widget-slider .noUi-handle {\n -webkit-backface-visibility: hidden;\n backface-visibility: hidden;\n position: absolute;\n}\n.widget-slider .noUi-touch-area,\n.jupyter-widget-slider .noUi-touch-area {\n height: 100%;\n width: 100%;\n}\n.widget-slider .noUi-state-tap .noUi-connect,\n.jupyter-widget-slider .noUi-state-tap .noUi-connect,\n.widget-slider .noUi-state-tap .noUi-origin,\n.jupyter-widget-slider .noUi-state-tap .noUi-origin {\n -webkit-transition: transform 0.3s;\n transition: transform 0.3s;\n}\n.widget-slider .noUi-state-drag *,\n.jupyter-widget-slider .noUi-state-drag * {\n cursor: inherit !important;\n}\n.widget-slider .noUi-horizontal,\n.jupyter-widget-slider .noUi-horizontal {\n height: 18px;\n}\n.widget-slider .noUi-horizontal .noUi-handle,\n.jupyter-widget-slider .noUi-horizontal .noUi-handle {\n width: 34px;\n height: 28px;\n right: -17px;\n top: -6px;\n}\n.widget-slider .noUi-vertical,\n.jupyter-widget-slider .noUi-vertical {\n width: 18px;\n}\n.widget-slider .noUi-vertical .noUi-handle,\n.jupyter-widget-slider .noUi-vertical .noUi-handle {\n width: 28px;\n height: 34px;\n right: -6px;\n top: -17px;\n}\n.widget-slider .noUi-txt-dir-rtl.noUi-horizontal .noUi-handle,\n.jupyter-widget-slider .noUi-txt-dir-rtl.noUi-horizontal .noUi-handle {\n left: -17px;\n right: auto;\n}\n.widget-slider .noUi-target,\n.jupyter-widget-slider .noUi-target {\n background: #FAFAFA;\n border-radius: 4px;\n border: 1px solid #D3D3D3;\n box-shadow: inset 0 1px 1px #F0F0F0, 0 3px 6px -5px #BBB;\n}\n.widget-slider .noUi-connects,\n.jupyter-widget-slider .noUi-connects {\n border-radius: 3px;\n}\n.widget-slider .noUi-connect,\n.jupyter-widget-slider .noUi-connect {\n background: #3FB8AF;\n}\n.widget-slider .noUi-draggable,\n.jupyter-widget-slider .noUi-draggable {\n cursor: ew-resize;\n}\n.widget-slider .noUi-vertical .noUi-draggable,\n.jupyter-widget-slider .noUi-vertical .noUi-draggable {\n cursor: ns-resize;\n}\n.widget-slider .noUi-handle,\n.jupyter-widget-slider .noUi-handle {\n border: 1px solid #D9D9D9;\n border-radius: 3px;\n background: #FFF;\n cursor: default;\n box-shadow: inset 0 0 1px #FFF, inset 0 1px 7px #EBEBEB, 0 3px 6px -3px #BBB;\n}\n.widget-slider .noUi-active,\n.jupyter-widget-slider .noUi-active {\n box-shadow: inset 0 0 1px #FFF, inset 0 1px 7px #DDD, 0 3px 6px -3px #BBB;\n}\n.widget-slider .noUi-handle:before,\n.jupyter-widget-slider .noUi-handle:before,\n.widget-slider .noUi-handle:after,\n.jupyter-widget-slider .noUi-handle:after {\n content: "";\n display: block;\n position: absolute;\n height: 14px;\n width: 1px;\n background: #E8E7E6;\n left: 14px;\n top: 6px;\n}\n.widget-slider .noUi-handle:after,\n.jupyter-widget-slider .noUi-handle:after {\n left: 17px;\n}\n.widget-slider .noUi-vertical .noUi-handle:before,\n.jupyter-widget-slider .noUi-vertical .noUi-handle:before,\n.widget-slider .noUi-vertical .noUi-handle:after,\n.jupyter-widget-slider .noUi-vertical .noUi-handle:after {\n width: 14px;\n height: 1px;\n left: 6px;\n top: 14px;\n}\n.widget-slider .noUi-vertical .noUi-handle:after,\n.jupyter-widget-slider .noUi-vertical .noUi-handle:after {\n top: 17px;\n}\n.widget-slider [disabled] .noUi-connect,\n.jupyter-widget-slider [disabled] .noUi-connect {\n background: #B8B8B8;\n}\n.widget-slider [disabled].noUi-target,\n.jupyter-widget-slider [disabled].noUi-target,\n.widget-slider [disabled].noUi-handle,\n.jupyter-widget-slider [disabled].noUi-handle,\n.widget-slider [disabled] .noUi-handle,\n.jupyter-widget-slider [disabled] .noUi-handle {\n cursor: not-allowed;\n}\n.widget-slider .noUi-pips,\n.jupyter-widget-slider .noUi-pips,\n.widget-slider .noUi-pips *,\n.jupyter-widget-slider .noUi-pips * {\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n}\n.widget-slider .noUi-pips,\n.jupyter-widget-slider .noUi-pips {\n position: absolute;\n color: #999;\n}\n.widget-slider .noUi-value,\n.jupyter-widget-slider .noUi-value {\n position: absolute;\n white-space: nowrap;\n text-align: center;\n}\n.widget-slider .noUi-value-sub,\n.jupyter-widget-slider .noUi-value-sub {\n color: #ccc;\n font-size: 10px;\n}\n.widget-slider .noUi-marker,\n.jupyter-widget-slider .noUi-marker {\n position: absolute;\n background: #CCC;\n}\n.widget-slider .noUi-marker-sub,\n.jupyter-widget-slider .noUi-marker-sub {\n background: #AAA;\n}\n.widget-slider .noUi-marker-large,\n.jupyter-widget-slider .noUi-marker-large {\n background: #AAA;\n}\n.widget-slider .noUi-pips-horizontal,\n.jupyter-widget-slider .noUi-pips-horizontal {\n padding: 10px 0;\n height: 80px;\n top: 100%;\n left: 0;\n width: 100%;\n}\n.widget-slider .noUi-value-horizontal,\n.jupyter-widget-slider .noUi-value-horizontal {\n -webkit-transform: translate(-50%, 50%);\n transform: translate(-50%, 50%);\n}\n.noUi-rtl .widget-slider .noUi-value-horizontal,\n.noUi-rtl .jupyter-widget-slider .noUi-value-horizontal {\n -webkit-transform: translate(50%, 50%);\n transform: translate(50%, 50%);\n}\n.widget-slider .noUi-marker-horizontal.noUi-marker,\n.jupyter-widget-slider .noUi-marker-horizontal.noUi-marker {\n margin-left: -1px;\n width: 2px;\n height: 5px;\n}\n.widget-slider .noUi-marker-horizontal.noUi-marker-sub,\n.jupyter-widget-slider .noUi-marker-horizontal.noUi-marker-sub {\n height: 10px;\n}\n.widget-slider .noUi-marker-horizontal.noUi-marker-large,\n.jupyter-widget-slider .noUi-marker-horizontal.noUi-marker-large {\n height: 15px;\n}\n.widget-slider .noUi-pips-vertical,\n.jupyter-widget-slider .noUi-pips-vertical {\n padding: 0 10px;\n height: 100%;\n top: 0;\n left: 100%;\n}\n.widget-slider .noUi-value-vertical,\n.jupyter-widget-slider .noUi-value-vertical {\n -webkit-transform: translate(0, -50%);\n transform: translate(0, -50%);\n padding-left: 25px;\n}\n.noUi-rtl .widget-slider .noUi-value-vertical,\n.noUi-rtl .jupyter-widget-slider .noUi-value-vertical {\n -webkit-transform: translate(0, 50%);\n transform: translate(0, 50%);\n}\n.widget-slider .noUi-marker-vertical.noUi-marker,\n.jupyter-widget-slider .noUi-marker-vertical.noUi-marker {\n width: 5px;\n height: 2px;\n margin-top: -1px;\n}\n.widget-slider .noUi-marker-vertical.noUi-marker-sub,\n.jupyter-widget-slider .noUi-marker-vertical.noUi-marker-sub {\n width: 10px;\n}\n.widget-slider .noUi-marker-vertical.noUi-marker-large,\n.jupyter-widget-slider .noUi-marker-vertical.noUi-marker-large {\n width: 15px;\n}\n.widget-slider .noUi-tooltip,\n.jupyter-widget-slider .noUi-tooltip {\n display: block;\n position: absolute;\n border: 1px solid #D9D9D9;\n border-radius: 3px;\n background: #fff;\n color: #000;\n padding: 5px;\n text-align: center;\n white-space: nowrap;\n}\n.widget-slider .noUi-horizontal .noUi-tooltip,\n.jupyter-widget-slider .noUi-horizontal .noUi-tooltip {\n -webkit-transform: translate(-50%, 0);\n transform: translate(-50%, 0);\n left: 50%;\n bottom: 120%;\n}\n.widget-slider .noUi-vertical .noUi-tooltip,\n.jupyter-widget-slider .noUi-vertical .noUi-tooltip {\n -webkit-transform: translate(0, -50%);\n transform: translate(0, -50%);\n top: 50%;\n right: 120%;\n}\n.widget-slider .noUi-horizontal .noUi-origin > .noUi-tooltip,\n.jupyter-widget-slider .noUi-horizontal .noUi-origin > .noUi-tooltip {\n -webkit-transform: translate(50%, 0);\n transform: translate(50%, 0);\n left: auto;\n bottom: 10px;\n}\n.widget-slider .noUi-vertical .noUi-origin > .noUi-tooltip,\n.jupyter-widget-slider .noUi-vertical .noUi-origin > .noUi-tooltip {\n -webkit-transform: translate(0, -18px);\n transform: translate(0, -18px);\n top: auto;\n right: 28px;\n}\n.widget-slider .noUi-connect,\n.jupyter-widget-slider .noUi-connect {\n background: #2196f3;\n}\n.widget-slider .noUi-horizontal,\n.jupyter-widget-slider .noUi-horizontal {\n height: var(--jp-widgets-slider-track-thickness);\n}\n.widget-slider .noUi-vertical,\n.jupyter-widget-slider .noUi-vertical {\n width: var(--jp-widgets-slider-track-thickness);\n height: 100%;\n}\n.widget-slider .noUi-horizontal .noUi-handle,\n.jupyter-widget-slider .noUi-horizontal .noUi-handle {\n width: var(--jp-widgets-slider-handle-size);\n height: var(--jp-widgets-slider-handle-size);\n border-radius: 50%;\n top: calc((var(--jp-widgets-slider-track-thickness) - var(--jp-widgets-slider-handle-size)) / 2);\n right: calc(var(--jp-widgets-slider-handle-size) / -2);\n}\n.widget-slider .noUi-vertical .noUi-handle,\n.jupyter-widget-slider .noUi-vertical .noUi-handle {\n height: var(--jp-widgets-slider-handle-size);\n width: var(--jp-widgets-slider-handle-size);\n border-radius: 50%;\n right: calc((var(--jp-widgets-slider-handle-size) - var(--jp-widgets-slider-track-thickness)) / -2);\n top: calc(var(--jp-widgets-slider-handle-size) / -2);\n}\n.widget-slider .noUi-handle:after,\n.jupyter-widget-slider .noUi-handle:after {\n content: none;\n}\n.widget-slider .noUi-handle:before,\n.jupyter-widget-slider .noUi-handle:before {\n content: none;\n}\n.widget-slider .noUi-target,\n.jupyter-widget-slider .noUi-target {\n background: #fafafa;\n border-radius: 4px;\n border: 1px;\n /* box-shadow: inset 0 1px 1px #F0F0F0, 0 3px 6px -5px #BBB; */\n}\n.widget-slider .ui-slider,\n.jupyter-widget-slider .ui-slider {\n border: var(--jp-widgets-slider-border-width) solid var(--jp-layout-color3);\n background: var(--jp-layout-color3);\n box-sizing: border-box;\n position: relative;\n border-radius: 0px;\n}\n.widget-slider .noUi-handle,\n.jupyter-widget-slider .noUi-handle {\n width: var(--jp-widgets-slider-handle-size);\n border: 1px solid #d9d9d9;\n border-radius: 3px;\n background: #fff;\n cursor: default;\n box-shadow: none;\n outline: none;\n}\n.widget-slider .noUi-target:not([disabled]) .noUi-handle:hover,\n.jupyter-widget-slider .noUi-target:not([disabled]) .noUi-handle:hover,\n.widget-slider .noUi-target:not([disabled]) .noUi-handle:focus,\n.jupyter-widget-slider .noUi-target:not([disabled]) .noUi-handle:focus {\n background-color: var(--jp-widgets-slider-active-handle-color);\n border: var(--jp-widgets-slider-border-width) solid var(--jp-widgets-slider-active-handle-color);\n}\n.widget-slider [disabled].noUi-target,\n.jupyter-widget-slider [disabled].noUi-target {\n opacity: 0.35;\n}\n.widget-slider .noUi-connects,\n.jupyter-widget-slider .noUi-connects {\n overflow: visible;\n z-index: 0;\n background: var(--jp-layout-color3);\n}\n.widget-slider .noUi-vertical .noUi-connect,\n.jupyter-widget-slider .noUi-vertical .noUi-connect {\n width: calc(100% + 2px);\n right: -1px;\n}\n.widget-slider .noUi-horizontal .noUi-connect,\n.jupyter-widget-slider .noUi-horizontal .noUi-connect {\n height: calc(100% + 2px);\n top: -1px;\n}\n',""]);const d=a},5309:(e,n,t)=>{t.d(n,{Z:()=>w});var i=t(9601),r=t.n(i),o=t(2609),a=t.n(o),d=t(7117),s=t(4788),l=t(8991),g=t.n(l),p=new URL(t(584),t.b),c=a()(r());c.i(d.Z),c.i(s.Z);var u=g()(p);c.push([e.id,"/* Copyright (c) Jupyter Development Team.\n * Distributed under the terms of the Modified BSD License.\n */\n\n/*\n * We assume that the CSS variables in\n * https://github.com/jupyterlab/jupyterlab/blob/master/src/default-theme/variables.css\n * have been defined.\n */\n\n:root {\n --jp-widgets-color: var(--jp-content-font-color1);\n --jp-widgets-label-color: var(--jp-widgets-color);\n --jp-widgets-readout-color: var(--jp-widgets-color);\n --jp-widgets-font-size: var(--jp-ui-font-size1);\n --jp-widgets-margin: 2px;\n --jp-widgets-inline-height: 28px;\n --jp-widgets-inline-width: 300px;\n --jp-widgets-inline-width-short: calc(\n var(--jp-widgets-inline-width) / 2 - var(--jp-widgets-margin)\n );\n --jp-widgets-inline-width-tiny: calc(\n var(--jp-widgets-inline-width-short) / 2 - var(--jp-widgets-margin)\n );\n --jp-widgets-inline-margin: 4px; /* margin between inline elements */\n --jp-widgets-inline-label-width: 80px;\n --jp-widgets-border-width: var(--jp-border-width);\n --jp-widgets-vertical-height: 200px;\n --jp-widgets-horizontal-tab-height: 24px;\n --jp-widgets-horizontal-tab-width: 144px;\n --jp-widgets-horizontal-tab-top-border: 2px;\n --jp-widgets-progress-thickness: 20px;\n --jp-widgets-container-padding: 15px;\n --jp-widgets-input-padding: 4px;\n --jp-widgets-radio-item-height-adjustment: 8px;\n --jp-widgets-radio-item-height: calc(\n var(--jp-widgets-inline-height) -\n var(--jp-widgets-radio-item-height-adjustment)\n );\n --jp-widgets-slider-track-thickness: 4px;\n --jp-widgets-slider-border-width: var(--jp-widgets-border-width);\n --jp-widgets-slider-handle-size: 16px;\n --jp-widgets-slider-handle-border-color: var(--jp-border-color1);\n --jp-widgets-slider-handle-background-color: var(--jp-layout-color1);\n --jp-widgets-slider-active-handle-color: var(--jp-brand-color1);\n --jp-widgets-menu-item-height: 24px;\n --jp-widgets-dropdown-arrow: url("+u+");\n --jp-widgets-input-color: var(--jp-ui-font-color1);\n --jp-widgets-input-background-color: var(--jp-layout-color1);\n --jp-widgets-input-border-color: var(--jp-border-color1);\n --jp-widgets-input-focus-border-color: var(--jp-brand-color2);\n --jp-widgets-input-border-width: var(--jp-widgets-border-width);\n --jp-widgets-disabled-opacity: 0.6;\n\n /* From Material Design Lite */\n --md-shadow-key-umbra-opacity: 0.2;\n --md-shadow-key-penumbra-opacity: 0.14;\n --md-shadow-ambient-shadow-opacity: 0.12;\n}\n\n.jupyter-widgets {\n margin: var(--jp-widgets-margin);\n box-sizing: border-box;\n color: var(--jp-widgets-color);\n overflow: visible;\n}\n\n.jp-Output-result > .jupyter-widgets {\n margin-left: 0;\n margin-right: 0;\n}\n\n/* vbox and hbox */\n\n/* */\n.widget-inline-hbox, /* */\n .jupyter-widget-inline-hbox {\n /* Horizontal widgets */\n box-sizing: border-box;\n display: flex;\n flex-direction: row;\n align-items: baseline;\n}\n\n/* */\n.widget-inline-vbox, /* */\n .jupyter-widget-inline-vbox {\n /* Vertical Widgets */\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n align-items: center;\n}\n\n/* */\n.widget-box, /* */\n.jupyter-widget-box {\n box-sizing: border-box;\n display: flex;\n margin: 0;\n overflow: auto;\n}\n\n/* */\n.widget-gridbox, /* */\n.jupyter-widget-gridbox {\n box-sizing: border-box;\n display: grid;\n margin: 0;\n overflow: auto;\n}\n\n/* */\n.widget-hbox, /* */\n.jupyter-widget-hbox {\n flex-direction: row;\n}\n\n/* */\n.widget-vbox, /* */\n.jupyter-widget-vbox {\n flex-direction: column;\n}\n\n/* General Tags Styling */\n\n.jupyter-widget-tagsinput {\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n align-items: center;\n overflow: auto;\n\n cursor: text;\n}\n\n.jupyter-widget-tag {\n padding-left: 10px;\n padding-right: 10px;\n padding-top: 0px;\n padding-bottom: 0px;\n display: inline-block;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n text-align: center;\n font-size: var(--jp-widgets-font-size);\n\n height: calc(var(--jp-widgets-inline-height) - 2px);\n border: 0px solid;\n line-height: calc(var(--jp-widgets-inline-height) - 2px);\n box-shadow: none;\n\n color: var(--jp-ui-font-color1);\n background-color: var(--jp-layout-color2);\n border-color: var(--jp-border-color2);\n border: none;\n user-select: none;\n\n cursor: grab;\n transition: margin-left 200ms;\n margin: 1px 1px 1px 1px;\n}\n\n.jupyter-widget-tag.mod-active {\n /* MD Lite 4dp shadow */\n box-shadow: 0 4px 5px 0 rgba(0, 0, 0, var(--md-shadow-key-penumbra-opacity)),\n 0 1px 10px 0 rgba(0, 0, 0, var(--md-shadow-ambient-shadow-opacity)),\n 0 2px 4px -1px rgba(0, 0, 0, var(--md-shadow-key-umbra-opacity));\n color: var(--jp-ui-font-color1);\n background-color: var(--jp-layout-color3);\n}\n\n.jupyter-widget-colortag {\n color: var(--jp-inverse-ui-font-color1);\n}\n\n.jupyter-widget-colortag.mod-active {\n color: var(--jp-inverse-ui-font-color0);\n}\n\n.jupyter-widget-taginput {\n color: var(--jp-ui-font-color0);\n background-color: var(--jp-layout-color0);\n\n cursor: text;\n text-align: left;\n}\n\n.jupyter-widget-taginput:focus {\n outline: none;\n}\n\n.jupyter-widget-tag-close {\n margin-left: var(--jp-widgets-inline-margin);\n padding: 2px 0px 2px 2px;\n}\n\n.jupyter-widget-tag-close:hover {\n cursor: pointer;\n}\n\n/* Tag \"Primary\" Styling */\n\n.jupyter-widget-tag.mod-primary {\n color: var(--jp-inverse-ui-font-color1);\n background-color: var(--jp-brand-color1);\n}\n\n.jupyter-widget-tag.mod-primary.mod-active {\n color: var(--jp-inverse-ui-font-color0);\n background-color: var(--jp-brand-color0);\n}\n\n/* Tag \"Success\" Styling */\n\n.jupyter-widget-tag.mod-success {\n color: var(--jp-inverse-ui-font-color1);\n background-color: var(--jp-success-color1);\n}\n\n.jupyter-widget-tag.mod-success.mod-active {\n color: var(--jp-inverse-ui-font-color0);\n background-color: var(--jp-success-color0);\n}\n\n/* Tag \"Info\" Styling */\n\n.jupyter-widget-tag.mod-info {\n color: var(--jp-inverse-ui-font-color1);\n background-color: var(--jp-info-color1);\n}\n\n.jupyter-widget-tag.mod-info.mod-active {\n color: var(--jp-inverse-ui-font-color0);\n background-color: var(--jp-info-color0);\n}\n\n/* Tag \"Warning\" Styling */\n\n.jupyter-widget-tag.mod-warning {\n color: var(--jp-inverse-ui-font-color1);\n background-color: var(--jp-warn-color1);\n}\n\n.jupyter-widget-tag.mod-warning.mod-active {\n color: var(--jp-inverse-ui-font-color0);\n background-color: var(--jp-warn-color0);\n}\n\n/* Tag \"Danger\" Styling */\n\n.jupyter-widget-tag.mod-danger {\n color: var(--jp-inverse-ui-font-color1);\n background-color: var(--jp-error-color1);\n}\n\n.jupyter-widget-tag.mod-danger.mod-active {\n color: var(--jp-inverse-ui-font-color0);\n background-color: var(--jp-error-color0);\n}\n\n/* General Button Styling */\n\n.jupyter-button {\n padding-left: 10px;\n padding-right: 10px;\n padding-top: 0px;\n padding-bottom: 0px;\n display: inline-block;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n text-align: center;\n font-size: var(--jp-widgets-font-size);\n cursor: pointer;\n\n height: var(--jp-widgets-inline-height);\n border: 0px solid;\n line-height: var(--jp-widgets-inline-height);\n box-shadow: none;\n\n color: var(--jp-ui-font-color1);\n background-color: var(--jp-layout-color2);\n border-color: var(--jp-border-color2);\n border: none;\n user-select: none;\n}\n\n.jupyter-button i.fa {\n margin-right: var(--jp-widgets-inline-margin);\n pointer-events: none;\n}\n\n.jupyter-button:empty:before {\n content: '\\200b'; /* zero-width space */\n}\n\n.jupyter-widgets.jupyter-button:disabled {\n opacity: var(--jp-widgets-disabled-opacity);\n}\n\n.jupyter-button i.fa.center {\n margin-right: 0;\n}\n\n.jupyter-button:hover:enabled,\n.jupyter-button:focus:enabled {\n /* MD Lite 2dp shadow */\n box-shadow: 0 2px 2px 0 rgba(0, 0, 0, var(--md-shadow-key-penumbra-opacity)),\n 0 3px 1px -2px rgba(0, 0, 0, var(--md-shadow-key-umbra-opacity)),\n 0 1px 5px 0 rgba(0, 0, 0, var(--md-shadow-ambient-shadow-opacity));\n}\n\n.jupyter-button:active,\n.jupyter-button.mod-active {\n /* MD Lite 4dp shadow */\n box-shadow: 0 4px 5px 0 rgba(0, 0, 0, var(--md-shadow-key-penumbra-opacity)),\n 0 1px 10px 0 rgba(0, 0, 0, var(--md-shadow-ambient-shadow-opacity)),\n 0 2px 4px -1px rgba(0, 0, 0, var(--md-shadow-key-umbra-opacity));\n color: var(--jp-ui-font-color1);\n background-color: var(--jp-layout-color3);\n}\n\n.jupyter-button:focus:enabled {\n outline: 1px solid var(--jp-widgets-input-focus-border-color);\n}\n\n/* Button \"Primary\" Styling */\n\n.jupyter-button.mod-primary {\n color: var(--jp-ui-inverse-font-color1);\n background-color: var(--jp-brand-color1);\n}\n\n.jupyter-button.mod-primary.mod-active {\n color: var(--jp-ui-inverse-font-color0);\n background-color: var(--jp-brand-color0);\n}\n\n.jupyter-button.mod-primary:active {\n color: var(--jp-ui-inverse-font-color0);\n background-color: var(--jp-brand-color0);\n}\n\n/* Button \"Success\" Styling */\n\n.jupyter-button.mod-success {\n color: var(--jp-ui-inverse-font-color1);\n background-color: var(--jp-success-color1);\n}\n\n.jupyter-button.mod-success.mod-active {\n color: var(--jp-ui-inverse-font-color0);\n background-color: var(--jp-success-color0);\n}\n\n.jupyter-button.mod-success:active {\n color: var(--jp-ui-inverse-font-color0);\n background-color: var(--jp-success-color0);\n}\n\n/* Button \"Info\" Styling */\n\n.jupyter-button.mod-info {\n color: var(--jp-ui-inverse-font-color1);\n background-color: var(--jp-info-color1);\n}\n\n.jupyter-button.mod-info.mod-active {\n color: var(--jp-ui-inverse-font-color0);\n background-color: var(--jp-info-color0);\n}\n\n.jupyter-button.mod-info:active {\n color: var(--jp-ui-inverse-font-color0);\n background-color: var(--jp-info-color0);\n}\n\n/* Button \"Warning\" Styling */\n\n.jupyter-button.mod-warning {\n color: var(--jp-ui-inverse-font-color1);\n background-color: var(--jp-warn-color1);\n}\n\n.jupyter-button.mod-warning.mod-active {\n color: var(--jp-ui-inverse-font-color0);\n background-color: var(--jp-warn-color0);\n}\n\n.jupyter-button.mod-warning:active {\n color: var(--jp-ui-inverse-font-color0);\n background-color: var(--jp-warn-color0);\n}\n\n/* Button \"Danger\" Styling */\n\n.jupyter-button.mod-danger {\n color: var(--jp-ui-inverse-font-color1);\n background-color: var(--jp-error-color1);\n}\n\n.jupyter-button.mod-danger.mod-active {\n color: var(--jp-ui-inverse-font-color0);\n background-color: var(--jp-error-color0);\n}\n\n.jupyter-button.mod-danger:active {\n color: var(--jp-ui-inverse-font-color0);\n background-color: var(--jp-error-color0);\n}\n\n/* Widget Button, Widget Toggle Button, Widget Upload */\n\n/* */\n.widget-button, /* */\n/* */ .widget-toggle-button, /* */\n/* */ .widget-upload, /* */\n.jupyter-widget-button,\n.jupyter-widget-toggle-button,\n.jupyter-widget-upload {\n width: var(--jp-widgets-inline-width-short);\n}\n\n/* Widget Label Styling */\n\n/* Override Bootstrap label css */\n.jupyter-widgets label {\n margin-bottom: initial;\n}\n\n/* */\n.widget-label-basic, /* */\n.jupyter-widget-label-basic {\n /* Basic Label */\n color: var(--jp-widgets-label-color);\n font-size: var(--jp-widgets-font-size);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n line-height: var(--jp-widgets-inline-height);\n}\n\n/* */\n.widget-label, /* */\n.jupyter-widget-label {\n /* Label */\n color: var(--jp-widgets-label-color);\n font-size: var(--jp-widgets-font-size);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n line-height: var(--jp-widgets-inline-height);\n}\n\n/* */\n.widget-inline-hbox .widget-label, /* */\n.jupyter-widget-inline-hbox .jupyter-widget-label {\n /* Horizontal Widget Label */\n color: var(--jp-widgets-label-color);\n text-align: right;\n margin-right: calc(var(--jp-widgets-inline-margin) * 2);\n width: var(--jp-widgets-inline-label-width);\n flex-shrink: 0;\n}\n\n/* */\n.widget-inline-vbox .widget-label, /* */\n.jupyter-widget-inline-vbox .jupyter-widget-label {\n /* Vertical Widget Label */\n color: var(--jp-widgets-label-color);\n text-align: center;\n line-height: var(--jp-widgets-inline-height);\n}\n\n/* Widget Readout Styling */\n\n/* */\n.widget-readout, /* */\n.jupyter-widget-readout {\n color: var(--jp-widgets-readout-color);\n font-size: var(--jp-widgets-font-size);\n height: var(--jp-widgets-inline-height);\n line-height: var(--jp-widgets-inline-height);\n overflow: hidden;\n white-space: nowrap;\n text-align: center;\n}\n\n/* */\n.widget-readout.overflow, /* */\n.jupyter-widget-readout.overflow {\n /* Overflowing Readout */\n\n /* From Material Design Lite\n shadow-key-umbra-opacity: 0.2;\n shadow-key-penumbra-opacity: 0.14;\n shadow-ambient-shadow-opacity: 0.12;\n */\n -webkit-box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.2),\n 0 3px 1px -2px rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12);\n\n -moz-box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.2),\n 0 3px 1px -2px rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12);\n\n box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.2), 0 3px 1px -2px rgba(0, 0, 0, 0.14),\n 0 1px 5px 0 rgba(0, 0, 0, 0.12);\n}\n\n/* */\n.widget-inline-hbox .widget-readout, /* */\n.jupyter-widget-inline-hbox .jupyter-widget-readout {\n /* Horizontal Readout */\n text-align: center;\n max-width: var(--jp-widgets-inline-width-short);\n min-width: var(--jp-widgets-inline-width-tiny);\n margin-left: var(--jp-widgets-inline-margin);\n}\n\n/* */\n.widget-inline-vbox .widget-readout, /* */\n.jupyter-widget-inline-vbox .jupyter-widget-readout {\n /* Vertical Readout */\n margin-top: var(--jp-widgets-inline-margin);\n /* as wide as the widget */\n width: inherit;\n}\n\n/* Widget Checkbox Styling */\n\n/* */\n.widget-checkbox, /* */\n.jupyter-widget-checkbox {\n width: var(--jp-widgets-inline-width);\n height: var(--jp-widgets-inline-height);\n line-height: var(--jp-widgets-inline-height);\n}\n\n/* */\n.widget-checkbox input[type='checkbox'], /* */\n.jupyter-widget-checkbox input[type='checkbox'] {\n margin: 0px calc(var(--jp-widgets-inline-margin) * 2) 0px 0px;\n line-height: var(--jp-widgets-inline-height);\n font-size: large;\n flex-grow: 1;\n flex-shrink: 0;\n align-self: center;\n}\n\n/* Widget Valid Styling */\n\n/* */\n.widget-valid, /* */\n.jupyter-widget-valid {\n height: var(--jp-widgets-inline-height);\n line-height: var(--jp-widgets-inline-height);\n width: var(--jp-widgets-inline-width-short);\n font-size: var(--jp-widgets-font-size);\n}\n\n/* */\n.widget-valid i, /* */\n.jupyter-widget-valid i {\n line-height: var(--jp-widgets-inline-height);\n margin-right: var(--jp-widgets-inline-margin);\n margin-left: var(--jp-widgets-inline-margin);\n}\n\n/* */\n.widget-valid.mod-valid i, /* */\n.jupyter-widget-valid.mod-valid i {\n color: green;\n}\n\n/* */\n.widget-valid.mod-invalid i, /* */\n.jupyter-widget-valid.mod-invalid i {\n color: red;\n}\n\n/* */\n.widget-valid.mod-valid .widget-valid-readout, /* */\n.jupyter-widget-valid.mod-valid .jupyter-widget-valid-readout {\n display: none;\n}\n\n/* Widget Text and TextArea Styling */\n\n/* */\n.widget-textarea, /* */\n/* */ .widget-text, /* */\n.jupyter-widget-textarea,\n.jupyter-widget-text {\n width: var(--jp-widgets-inline-width);\n}\n\n/* */\n.widget-text input[type='text'], /* */\n/* */ .widget-text input[type='number'], /* */\n/* */ .widget-text input[type='password'], /* */\n.jupyter-widget-text input[type='text'],\n.jupyter-widget-text input[type='number'],\n.jupyter-widget-text input[type='password'] {\n height: var(--jp-widgets-inline-height);\n}\n\n/* */\n.widget-text input[type='text']:disabled, /* */\n/* */ .widget-text input[type='number']:disabled, /* */\n/* */ .widget-text input[type='password']:disabled, /* */\n/* */ .widget-textarea textarea:disabled, /* */\n.jupyter-widget-text input[type='text']:disabled,\n.jupyter-widget-text input[type='number']:disabled,\n.jupyter-widget-text input[type='password']:disabled,\n.jupyter-widget-textarea textarea:disabled {\n opacity: var(--jp-widgets-disabled-opacity);\n}\n\n/* */\n.widget-text input[type='text'], /* */\n/* */ .widget-text input[type='number'], /* */\n/* */ .widget-text input[type='password'], /* */\n/* */ .widget-textarea textarea, /* */\n.jupyter-widget-text input[type='text'],\n.jupyter-widget-text input[type='number'],\n.jupyter-widget-text input[type='password'],\n.jupyter-widget-textarea textarea {\n box-sizing: border-box;\n border: var(--jp-widgets-input-border-width) solid\n var(--jp-widgets-input-border-color);\n background-color: var(--jp-widgets-input-background-color);\n color: var(--jp-widgets-input-color);\n font-size: var(--jp-widgets-font-size);\n flex-grow: 1;\n min-width: 0; /* This makes it possible for the flexbox to shrink this input */\n flex-shrink: 1;\n outline: none !important;\n}\n\n/* */\n.widget-text input[type='text'], /* */\n/* */ .widget-text input[type='password'], /* */\n/* */ .widget-textarea textarea, /* */\n.jupyter-widget-text input[type='text'],\n.jupyter-widget-text input[type='password'],\n.jupyter-widget-textarea textarea {\n padding: var(--jp-widgets-input-padding)\n calc(var(--jp-widgets-input-padding) * 2);\n}\n\n/* */\n.widget-text input[type='number'], /* */\n.jupyter-widget-text input[type='number'] {\n padding: var(--jp-widgets-input-padding) 0 var(--jp-widgets-input-padding)\n calc(var(--jp-widgets-input-padding) * 2);\n}\n\n/* */\n.widget-textarea textarea, /* */\n.jupyter-widget-textarea textarea {\n height: inherit;\n width: inherit;\n}\n\n/* */\n.widget-text input:focus, /* */\n/* */ .widget-textarea textarea:focus, /* */\n.jupyter-widget-text input:focus,\n.jupyter-widget-textarea textarea:focus {\n border-color: var(--jp-widgets-input-focus-border-color);\n}\n\n/* Horizontal Slider */\n/* */\n.widget-hslider, /* */\n.jupyter-widget-hslider {\n width: var(--jp-widgets-inline-width);\n height: var(--jp-widgets-inline-height);\n line-height: var(--jp-widgets-inline-height);\n\n /* Override the align-items baseline. This way, the description and readout\n still seem to align their baseline properly, and we don't have to have\n align-self: stretch in the .slider-container. */\n align-items: center;\n}\n\n/* */\n.widgets-slider .slider-container, /* */\n.jupyter-widgets-slider .slider-container {\n overflow: visible;\n}\n\n/* */\n.widget-hslider .slider-container, /* */\n.jupyter-widget-hslider .slider-container {\n margin-left: calc(\n var(--jp-widgets-slider-handle-size) / 2 - 2 *\n var(--jp-widgets-slider-border-width)\n );\n margin-right: calc(\n var(--jp-widgets-slider-handle-size) / 2 - 2 *\n var(--jp-widgets-slider-border-width)\n );\n flex: 1 1 var(--jp-widgets-inline-width-short);\n}\n\n/* Vertical Slider */\n\n/* */\n.widget-vbox .widget-label, /* */\n.jupyter-widget-vbox .jupyter-widget-label {\n height: var(--jp-widgets-inline-height);\n line-height: var(--jp-widgets-inline-height);\n}\n\n/* */\n.widget-vslider, /* */\n.jupyter-widget-vslider {\n /* Vertical Slider */\n height: var(--jp-widgets-vertical-height);\n width: var(--jp-widgets-inline-width-tiny);\n}\n\n/* */\n.widget-vslider .slider-container, /* */\n.jupyter-widget-vslider .slider-container {\n flex: 1 1 var(--jp-widgets-inline-width-short);\n margin-left: auto;\n margin-right: auto;\n margin-bottom: calc(\n var(--jp-widgets-slider-handle-size) / 2 - 2 *\n var(--jp-widgets-slider-border-width)\n );\n margin-top: calc(\n var(--jp-widgets-slider-handle-size) / 2 - 2 *\n var(--jp-widgets-slider-border-width)\n );\n display: flex;\n flex-direction: column;\n}\n\n/* Widget Progress Styling */\n\n.progress-bar {\n -webkit-transition: none;\n -moz-transition: none;\n -ms-transition: none;\n -o-transition: none;\n transition: none;\n}\n\n.progress-bar {\n height: var(--jp-widgets-inline-height);\n}\n\n.progress-bar {\n background-color: var(--jp-brand-color1);\n}\n\n.progress-bar-success {\n background-color: var(--jp-success-color1);\n}\n\n.progress-bar-info {\n background-color: var(--jp-info-color1);\n}\n\n.progress-bar-warning {\n background-color: var(--jp-warn-color1);\n}\n\n.progress-bar-danger {\n background-color: var(--jp-error-color1);\n}\n\n.progress {\n background-color: var(--jp-layout-color2);\n border: none;\n box-shadow: none;\n}\n\n/* Horisontal Progress */\n\n/* */\n.widget-hprogress, /* */\n.jupyter-widget-hprogress {\n /* Progress Bar */\n height: var(--jp-widgets-inline-height);\n line-height: var(--jp-widgets-inline-height);\n width: var(--jp-widgets-inline-width);\n align-items: center;\n}\n\n/* */\n.widget-hprogress .progress, /* */\n.jupyter-widget-hprogress .progress {\n flex-grow: 1;\n margin-top: var(--jp-widgets-input-padding);\n margin-bottom: var(--jp-widgets-input-padding);\n align-self: stretch;\n /* Override bootstrap style */\n height: initial;\n}\n\n/* Vertical Progress */\n\n/* */\n.widget-vprogress, /* */\n.jupyter-widget-vprogress {\n height: var(--jp-widgets-vertical-height);\n width: var(--jp-widgets-inline-width-tiny);\n}\n\n/* */\n.widget-vprogress .progress, /* */\n.jupyter-widget-vprogress .progress {\n flex-grow: 1;\n width: var(--jp-widgets-progress-thickness);\n margin-left: auto;\n margin-right: auto;\n margin-bottom: 0;\n}\n\n/* Select Widget Styling */\n\n/* */\n.widget-dropdown, /* */\n.jupyter-widget-dropdown {\n height: var(--jp-widgets-inline-height);\n width: var(--jp-widgets-inline-width);\n line-height: var(--jp-widgets-inline-height);\n}\n\n/* */\n.widget-dropdown > select, /* */\n.jupyter-widget-dropdown > select {\n padding-right: 20px;\n border: var(--jp-widgets-input-border-width) solid\n var(--jp-widgets-input-border-color);\n border-radius: 0;\n height: inherit;\n flex: 1 1 var(--jp-widgets-inline-width-short);\n min-width: 0; /* This makes it possible for the flexbox to shrink this input */\n box-sizing: border-box;\n outline: none !important;\n box-shadow: none;\n background-color: var(--jp-widgets-input-background-color);\n color: var(--jp-widgets-input-color);\n font-size: var(--jp-widgets-font-size);\n vertical-align: top;\n padding-left: calc(var(--jp-widgets-input-padding) * 2);\n appearance: none;\n -webkit-appearance: none;\n -moz-appearance: none;\n background-repeat: no-repeat;\n background-size: 20px;\n background-position: right center;\n background-image: var(--jp-widgets-dropdown-arrow);\n}\n/* */\n.widget-dropdown > select:focus, /* */\n.jupyter-widget-dropdown > select:focus {\n border-color: var(--jp-widgets-input-focus-border-color);\n}\n\n/* */\n.widget-dropdown > select:disabled, /* */\n.jupyter-widget-dropdown > select:disabled {\n opacity: var(--jp-widgets-disabled-opacity);\n}\n\n/* To disable the dotted border in Firefox around select controls.\n See http://stackoverflow.com/a/18853002 */\n/* */\n.widget-dropdown > select:-moz-focusring, /* */\n.jupyter-widget-dropdown > select:-moz-focusring {\n color: transparent;\n text-shadow: 0 0 0 #000;\n}\n\n/* Select and SelectMultiple */\n\n/* */\n.widget-select, /* */\n.jupyter-widget-select {\n width: var(--jp-widgets-inline-width);\n line-height: var(--jp-widgets-inline-height);\n\n /* Because Firefox defines the baseline of a select as the bottom of the\n control, we align the entire control to the top and add padding to the\n select to get an approximate first line baseline alignment. */\n align-items: flex-start;\n}\n\n/* */\n.widget-select > select, /* */\n.jupyter-widget-select > select {\n border: var(--jp-widgets-input-border-width) solid\n var(--jp-widgets-input-border-color);\n background-color: var(--jp-widgets-input-background-color);\n color: var(--jp-widgets-input-color);\n font-size: var(--jp-widgets-font-size);\n flex: 1 1 var(--jp-widgets-inline-width-short);\n outline: none !important;\n overflow: auto;\n height: inherit;\n\n /* Because Firefox defines the baseline of a select as the bottom of the\n control, we align the entire control to the top and add padding to the\n select to get an approximate first line baseline alignment. */\n padding-top: 5px;\n}\n\n/* */\n.widget-select > select:focus, /* */\n.jupyter-widget-select > select:focus {\n border-color: var(--jp-widgets-input-focus-border-color);\n}\n\n.wiget-select > select > option,\n.jupyter-wiget-select > select > option {\n padding-left: var(--jp-widgets-input-padding);\n line-height: var(--jp-widgets-inline-height);\n /* line-height doesn't work on some browsers for select options */\n padding-top: calc(\n var(--jp-widgets-inline-height) - var(--jp-widgets-font-size) / 2\n );\n padding-bottom: calc(\n var(--jp-widgets-inline-height) - var(--jp-widgets-font-size) / 2\n );\n}\n\n/* Toggle Buttons Styling */\n\n/* */\n.widget-toggle-buttons, /* */\n.jupyter-widget-toggle-buttons {\n line-height: var(--jp-widgets-inline-height);\n}\n\n/* */\n.widget-toggle-buttons .widget-toggle-button, /* */\n.jupyter-widget-toggle-buttons .jupyter-widget-toggle-button {\n margin-left: var(--jp-widgets-margin);\n margin-right: var(--jp-widgets-margin);\n}\n\n/* */\n.widget-toggle-buttons .jupyter-button:disabled, /* */\n.jupyter-widget-toggle-buttons .jupyter-button:disabled {\n opacity: var(--jp-widgets-disabled-opacity);\n}\n\n/* Radio Buttons Styling */\n\n/* */\n.widget-radio, /* */\n.jupyter-widget-radio {\n width: var(--jp-widgets-inline-width);\n line-height: var(--jp-widgets-inline-height);\n}\n\n/* */\n.widget-radio-box, /* */\n.jupyter-widget-radio-box {\n display: flex;\n flex-direction: column;\n align-items: stretch;\n box-sizing: border-box;\n flex-grow: 1;\n margin-bottom: var(--jp-widgets-radio-item-height-adjustment);\n}\n\n/* */\n.widget-radio-box label, /* */\n.jupyter-widget-radio-box label {\n height: var(--jp-widgets-radio-item-height);\n line-height: var(--jp-widgets-radio-item-height);\n font-size: var(--jp-widgets-font-size);\n}\n\n/* */\n.widget-radio-box input, /* */\n.jupyter-widget-radio-box input {\n height: var(--jp-widgets-radio-item-height);\n line-height: var(--jp-widgets-radio-item-height);\n margin: 0 calc(var(--jp-widgets-input-padding) * 2) 0 1px;\n float: left;\n}\n\n/* Color Picker Styling */\n\n/* */\n.widget-colorpicker, /* */\n.jupyter-widget-colorpicker {\n width: var(--jp-widgets-inline-width);\n height: var(--jp-widgets-inline-height);\n line-height: var(--jp-widgets-inline-height);\n}\n\n/* */\n.widget-colorpicker > .widget-colorpicker-input, /* */\n.jupyter-widget-colorpicker > .jupyter-widget-colorpicker-input {\n flex-grow: 1;\n flex-shrink: 1;\n min-width: var(--jp-widgets-inline-width-tiny);\n}\n\n/* */\n.widget-colorpicker input[type='color'], /* */\n.jupyter-widget-colorpicker input[type='color'] {\n width: var(--jp-widgets-inline-height);\n height: var(--jp-widgets-inline-height);\n padding: 0 2px; /* make the color square actually square on Chrome on OS X */\n background: var(--jp-widgets-input-background-color);\n color: var(--jp-widgets-input-color);\n border: var(--jp-widgets-input-border-width) solid\n var(--jp-widgets-input-border-color);\n border-left: none;\n flex-grow: 0;\n flex-shrink: 0;\n box-sizing: border-box;\n align-self: stretch;\n outline: none !important;\n}\n\n/* */\n.widget-colorpicker.concise input[type='color'], /* */\n.jupyter-widget-colorpicker.concise input[type='color'] {\n border-left: var(--jp-widgets-input-border-width) solid\n var(--jp-widgets-input-border-color);\n}\n\n/* */\n.widget-colorpicker input[type='color']:focus, /* */\n/* */ .widget-colorpicker input[type='text']:focus, /* */\n.jupyter-widget-colorpicker input[type='color']:focus,\n.jupyter-widget-colorpicker input[type='text']:focus {\n border-color: var(--jp-widgets-input-focus-border-color);\n}\n\n/* */\n.widget-colorpicker input[type='text'], /* */\n.jupyter-widget-colorpicker input[type='text'] {\n flex-grow: 1;\n outline: none !important;\n height: var(--jp-widgets-inline-height);\n line-height: var(--jp-widgets-inline-height);\n background: var(--jp-widgets-input-background-color);\n color: var(--jp-widgets-input-color);\n border: var(--jp-widgets-input-border-width) solid\n var(--jp-widgets-input-border-color);\n font-size: var(--jp-widgets-font-size);\n padding: var(--jp-widgets-input-padding)\n calc(var(--jp-widgets-input-padding) * 2);\n min-width: 0; /* This makes it possible for the flexbox to shrink this input */\n flex-shrink: 1;\n box-sizing: border-box;\n}\n\n/* */\n.widget-colorpicker input[type='text']:disabled, /* */\n.jupyter-widget-colorpicker input[type='text']:disabled {\n opacity: var(--jp-widgets-disabled-opacity);\n}\n\n/* Date Picker Styling */\n\n/* */\n.widget-datepicker, /* */\n.jupyter-widget-datepicker {\n width: var(--jp-widgets-inline-width);\n height: var(--jp-widgets-inline-height);\n line-height: var(--jp-widgets-inline-height);\n}\n\n/* */\n.widget-datepicker input[type='date'], /* */\n.jupyter-widget-datepicker input[type='date'] {\n flex-grow: 1;\n flex-shrink: 1;\n min-width: 0; /* This makes it possible for the flexbox to shrink this input */\n outline: none !important;\n height: var(--jp-widgets-inline-height);\n border: var(--jp-widgets-input-border-width) solid\n var(--jp-widgets-input-border-color);\n background-color: var(--jp-widgets-input-background-color);\n color: var(--jp-widgets-input-color);\n font-size: var(--jp-widgets-font-size);\n padding: var(--jp-widgets-input-padding)\n calc(var(--jp-widgets-input-padding) * 2);\n box-sizing: border-box;\n}\n\n/* */\n.widget-datepicker input[type='date']:focus, /* */\n.jupyter-widget-datepicker input[type='date']:focus {\n border-color: var(--jp-widgets-input-focus-border-color);\n}\n\n/* */\n.widget-datepicker input[type='date']:invalid, /* */\n.jupyter-widget-datepicker input[type='date']:invalid {\n border-color: var(--jp-warn-color1);\n}\n\n/* */\n.widget-datepicker input[type='date']:disabled, /* */\n.jupyter-widget-datepicker input[type='date']:disabled {\n opacity: var(--jp-widgets-disabled-opacity);\n}\n\n/* Play Widget */\n\n/* */\n.widget-play, /* */\n.jupyter-widget-play {\n width: var(--jp-widgets-inline-width-short);\n display: flex;\n align-items: stretch;\n}\n\n/* */\n.widget-play .jupyter-button, /* */\n.jupyter-widget-play .jupyter-button {\n flex-grow: 1;\n height: auto;\n}\n\n/* */\n.widget-play .jupyter-button:disabled, /* */\n.jupyter-widget-play .jupyter-button:disabled {\n opacity: var(--jp-widgets-disabled-opacity);\n}\n\n/* Tab Widget */\n\n/* */\n.jupyter-widgets.widget-tab, /* */\n.jupyter-widgets.jupyter-widget-tab {\n display: flex;\n flex-direction: column;\n}\n\n/* */\n.jupyter-widgets.widget-tab > .p-TabBar, /* */\n/* */.jupyter-widgets.jupyter-widget-tab > .p-TabBar, /* */\n.jupyter-widgets.jupyter-widget-tab > .lm-TabBar {\n /* Necessary so that a tab can be shifted down to overlay the border of the box below. */\n overflow-x: visible;\n overflow-y: visible;\n}\n\n/* */\n.jupyter-widgets.widget-tab > .p-TabBar > .p-TabBar-content, /* */\n/* */.jupyter-widgets.jupyter-widget-tab > .p-TabBar > .p-TabBar-content, /* */\n.jupyter-widgets.jupyter-widget-tab > .lm-TabBar > .lm-TabBar-content {\n /* Make sure that the tab grows from bottom up */\n align-items: flex-end;\n min-width: 0;\n min-height: 0;\n}\n\n/* */\n.jupyter-widgets.widget-tab > .widget-tab-contents, /* */\n.jupyter-widgets.jupyter-widget-tab > .widget-tab-contents {\n width: 100%;\n box-sizing: border-box;\n margin: 0;\n background: var(--jp-layout-color1);\n color: var(--jp-ui-font-color1);\n border: var(--jp-border-width) solid var(--jp-border-color1);\n padding: var(--jp-widgets-container-padding);\n flex-grow: 1;\n overflow: auto;\n}\n\n/* */\n.jupyter-widgets.widget-tab > .p-TabBar, /* */\n/* */.jupyter-widgets.jupyter-widget-tab > .p-TabBar, /* */\n.jupyter-widgets.jupyter-widget-tab > .lm-TabBar {\n font: var(--jp-widgets-font-size) Helvetica, Arial, sans-serif;\n min-height: calc(\n var(--jp-widgets-horizontal-tab-height) + var(--jp-border-width)\n );\n}\n\n/* */\n.jupyter-widgets.widget-tab > .p-TabBar .p-TabBar-tab, /* */\n/* */.jupyter-widgets.jupyter-widget-tab > .p-TabBar .p-TabBar-tab, /* */\n.jupyter-widgets.jupyter-widget-tab > .lm-TabBar .lm-TabBar-tab {\n flex: 0 1 var(--jp-widgets-horizontal-tab-width);\n min-width: 35px;\n min-height: calc(\n var(--jp-widgets-horizontal-tab-height) + var(--jp-border-width)\n );\n line-height: var(--jp-widgets-horizontal-tab-height);\n margin-left: calc(-1 * var(--jp-border-width));\n padding: 0px 10px;\n background: var(--jp-layout-color2);\n color: var(--jp-ui-font-color2);\n border: var(--jp-border-width) solid var(--jp-border-color1);\n border-bottom: none;\n position: relative;\n}\n\n/* */\n.jupyter-widgets.widget-tab > .p-TabBar .p-TabBar-tab.p-mod-current, /* */\n/* */.jupyter-widgets.jupyter-widget-tab > .p-TabBar .p-TabBar-tab.p-mod-current, /* */\n.jupyter-widgets.jupyter-widget-tab > .lm-TabBar .lm-TabBar-tab.lm-mod-current {\n color: var(--jp-ui-font-color0);\n /* We want the background to match the tab content background */\n background: var(--jp-layout-color1);\n min-height: calc(\n var(--jp-widgets-horizontal-tab-height) + 2 * var(--jp-border-width)\n );\n transform: translateY(var(--jp-border-width));\n overflow: visible;\n}\n\n/* */\n.jupyter-widgets.widget-tab > .p-TabBar .p-TabBar-tab.p-mod-current:before, /* */\n/* */.jupyter-widgets.jupyter-widget-tab > .p-TabBar .p-TabBar-tab.p-mod-current:before, /* */\n.jupyter-widgets.jupyter-widget-tab > .lm-TabBar .lm-TabBar-tab.lm-mod-current:before {\n position: absolute;\n top: calc(-1 * var(--jp-border-width));\n left: calc(-1 * var(--jp-border-width));\n content: '';\n height: var(--jp-widgets-horizontal-tab-top-border);\n width: calc(100% + 2 * var(--jp-border-width));\n background: var(--jp-brand-color1);\n}\n\n/* */\n.jupyter-widgets.widget-tab > .p-TabBar .p-TabBar-tab:first-child, /* */\n/* */.jupyter-widgets.jupyter-widget-tab > .p-TabBar .p-TabBar-tab:first-child, /* */\n.jupyter-widgets.jupyter-widget-tab > .lm-TabBar .lm-TabBar-tab:first-child {\n margin-left: 0;\n}\n\n/* */\n.jupyter-widgets.widget-tab\n > .p-TabBar\n .p-TabBar-tab:hover:not(.p-mod-current),\n/* */\n/* */\n.jupyter-widgets.jupyter-widget-tab\n > .p-TabBar\n .p-TabBar-tab:hover:not(.p-mod-current),\n/* */\n.jupyter-widgets.jupyter-widget-tab\n > .lm-TabBar\n .lm-TabBar-tab:hover:not(.lm-mod-current) {\n background: var(--jp-layout-color1);\n color: var(--jp-ui-font-color1);\n}\n\n/* */\n.jupyter-widgets.widget-tab\n > .p-TabBar\n .p-mod-closable\n > .p-TabBar-tabCloseIcon,\n/* */\n/* */\n.jupyter-widgets.jupyter-widget-tab\n> .p-TabBar\n.p-mod-closable\n> .p-TabBar-tabCloseIcon,\n/* */\n.jupyter-widgets.jupyter-widget-tab\n > .lm-TabBar\n .lm-mod-closable\n > .lm-TabBar-tabCloseIcon {\n margin-left: 4px;\n}\n\n/* This font-awesome strategy may not work across FA4 and FA5, but we don't\nactually support closable tabs, so it really doesn't matter */\n/* */\n.jupyter-widgets.widget-tab\n > .p-TabBar\n .p-mod-closable\n > .p-TabBar-tabCloseIcon:before,\n/* */\n/* */\n.jupyter-widgets.jupyter-widget-widget-tab\n> .p-TabBar\n.p-mod-closable\n> .p-TabBar-tabCloseIcon:before,\n/* */\n.jupyter-widgets.jupyter-widget-tab\n > .lm-TabBar\n .lm-mod-closable\n > .lm-TabBar-tabCloseIcon:before {\n font-family: FontAwesome;\n content: '\\f00d'; /* close */\n}\n\n/* */\n.jupyter-widgets.widget-tab > .p-TabBar .p-TabBar-tabIcon, /* */\n/* */ .jupyter-widgets.widget-tab > .p-TabBar .p-TabBar-tabLabel, /* */\n/* */ .jupyter-widgets.widget-tab > .p-TabBar .p-TabBar-tabCloseIcon, /* */\n/* */ .jupyter-widgets.jupyter-widget-tab > .p-TabBar .p-TabBar-tabIcon, /* */\n/* */ .jupyter-widgets.jupyter-widget-tab > .p-TabBar .p-TabBar-tabLabel, /* */\n/* */ .jupyter-widgets.jupyter-widget-tab > .p-TabBar .p-TabBar-tabCloseIcon, /* */\n.jupyter-widgets.jupyter-widget-tab > .lm-TabBar .lm-TabBar-tabIcon,\n.jupyter-widgets.jupyter-widget-tab > .lm-TabBar .lm-TabBar-tabLabel,\n.jupyter-widgets.jupyter-widget-tab > .lm-TabBar .lm-TabBar-tabCloseIcon {\n line-height: var(--jp-widgets-horizontal-tab-height);\n}\n\n/* Accordion Widget */\n\n.jupyter-widget-Collapse {\n display: flex;\n flex-direction: column;\n align-items: stretch;\n}\n\n.jupyter-widget-Collapse-header {\n padding: var(--jp-widgets-input-padding);\n cursor: pointer;\n color: var(--jp-ui-font-color2);\n background-color: var(--jp-layout-color2);\n border: var(--jp-widgets-border-width) solid var(--jp-border-color1);\n padding: calc(var(--jp-widgets-container-padding) * 2 / 3)\n var(--jp-widgets-container-padding);\n font-weight: bold;\n}\n\n.jupyter-widget-Collapse-header:hover {\n background-color: var(--jp-layout-color1);\n color: var(--jp-ui-font-color1);\n}\n\n.jupyter-widget-Collapse-open > .jupyter-widget-Collapse-header {\n background-color: var(--jp-layout-color1);\n color: var(--jp-ui-font-color0);\n cursor: default;\n border-bottom: none;\n}\n\n.jupyter-widget-Collapse-contents {\n padding: var(--jp-widgets-container-padding);\n background-color: var(--jp-layout-color1);\n color: var(--jp-ui-font-color1);\n border-left: var(--jp-widgets-border-width) solid var(--jp-border-color1);\n border-right: var(--jp-widgets-border-width) solid var(--jp-border-color1);\n border-bottom: var(--jp-widgets-border-width) solid var(--jp-border-color1);\n overflow: auto;\n}\n\n.jupyter-widget-Accordion {\n display: flex;\n flex-direction: column;\n align-items: stretch;\n}\n\n.jupyter-widget-Accordion .jupyter-widget-Collapse {\n margin-bottom: 0;\n}\n\n.jupyter-widget-Accordion .jupyter-widget-Collapse + .jupyter-widget-Collapse {\n margin-top: 4px;\n}\n\n/* HTML widget */\n\n/* */\n.widget-html, /* */\n/* */ .widget-htmlmath, /* */\n.jupyter-widget-html,\n.jupyter-widget-htmlmath {\n font-size: var(--jp-widgets-font-size);\n}\n\n/* */\n.widget-html > .widget-html-content, /* */\n/* */.widget-htmlmath > .widget-html-content, /* */\n.jupyter-widget-html > .jupyter-widget-html-content,\n.jupyter-widget-htmlmath > .jupyter-widget-html-content {\n /* Fill out the area in the HTML widget */\n align-self: stretch;\n flex-grow: 1;\n flex-shrink: 1;\n /* Makes sure the baseline is still aligned with other elements */\n line-height: var(--jp-widgets-inline-height);\n /* Make it possible to have absolutely-positioned elements in the html */\n position: relative;\n}\n\n/* Image widget */\n\n/* */\n.widget-image, /* */\n.jupyter-widget-image {\n max-width: 100%;\n height: auto;\n}\n",""]);const w=c},2609:e=>{e.exports=function(e){var n=[];return n.toString=function(){return this.map((function(n){var t="",i=void 0!==n[5];return n[4]&&(t+="@supports (".concat(n[4],") {")),n[2]&&(t+="@media ".concat(n[2]," {")),i&&(t+="@layer".concat(n[5].length>0?" ".concat(n[5]):""," {")),t+=e(n),i&&(t+="}"),n[2]&&(t+="}"),n[4]&&(t+="}"),t})).join("")},n.i=function(e,t,i,r,o){"string"==typeof e&&(e=[[null,e,void 0]]);var a={};if(i)for(var d=0;d0?" ".concat(g[5]):""," {").concat(g[1],"}")),g[5]=o),t&&(g[2]?(g[1]="@media ".concat(g[2]," {").concat(g[1],"}"),g[2]=t):g[2]=t),r&&(g[4]?(g[1]="@supports (".concat(g[4],") {").concat(g[1],"}"),g[4]=r):g[4]="".concat(r)),n.push(g))}},n}},8991:e=>{e.exports=function(e,n){return n||(n={}),e?(e=String(e.__esModule?e.default:e),/^['"].*['"]$/.test(e)&&(e=e.slice(1,-1)),n.hash&&(e+=n.hash),/["'() \t\n]|(%20)/.test(e)||n.needQuotes?'"'.concat(e.replace(/"/g,'\\"').replace(/\n/g,"\\n"),'"'):e):e}},9601:e=>{e.exports=function(e){return e[1]}},6062:e=>{var n=[];function t(e){for(var t=-1,i=0;i{var n={};e.exports=function(e,t){var i=function(e){if(void 0===n[e]){var t=document.querySelector(e);if(window.HTMLIFrameElement&&t instanceof window.HTMLIFrameElement)try{t=t.contentDocument.head}catch(e){t=null}n[e]=t}return n[e]}(e);if(!i)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");i.appendChild(t)}},1173:e=>{e.exports=function(e){var n=document.createElement("style");return e.setAttributes(n,e.attributes),e.insert(n,e.options),n}},7892:(e,n,t)=>{e.exports=function(e){var n=t.nc;n&&e.setAttribute("nonce",n)}},4036:e=>{e.exports=function(e){if("undefined"==typeof document)return{update:function(){},remove:function(){}};var n=e.insertStyleElement(e);return{update:function(t){!function(e,n,t){var i="";t.supports&&(i+="@supports (".concat(t.supports,") {")),t.media&&(i+="@media ".concat(t.media," {"));var r=void 0!==t.layer;r&&(i+="@layer".concat(t.layer.length>0?" ".concat(t.layer):""," {")),i+=t.css,r&&(i+="}"),t.media&&(i+="}"),t.supports&&(i+="}");var o=t.sourceMap;o&&"undefined"!=typeof btoa&&(i+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(o))))," */")),n.styleTagTransform(i,e,n.options)}(n,e,t)},remove:function(){!function(e){if(null===e.parentNode)return!1;e.parentNode.removeChild(e)}(n)}}}},2464:e=>{e.exports=function(e,n){if(n.styleSheet)n.styleSheet.cssText=e;else{for(;n.firstChild;)n.removeChild(n.firstChild);n.appendChild(document.createTextNode(e))}}},61:(e,n,t)=>{t.d(n,{N:()=>i});const i="2.0.0"},134:(e,n,t)=>{t.r(n),t.d(n,{KernelWidgetManager:()=>T,LabWidgetManager:()=>v,WidgetManager:()=>f,WidgetRenderer:()=>w,default:()=>ge,output:()=>i,registerWidgetManager:()=>te});var i={};t.r(i),t.d(i,{OUTPUT_WIDGET_VERSION:()=>P,OutputModel:()=>U,OutputView:()=>k});var r=t(56),o=t(1919),a=t(4826),d=t(4470),s=t(9350),l=t(6697),g=t(7717),p=t(3004),c=t(7930),u=t(8778);class w extends u.Panel{constructor(e,n){super(),this._manager=new c.PromiseDelegate,this._rerenderMimeModel=null,this.mimeType=e.mimeType,n&&(this.manager=n)}set manager(e){e.restored.connect(this._rerender,this),this._manager.resolve(e)}async renderModel(e){const n=e.data[this.mimeType];this.node.textContent="Loading widget...";const t=await this._manager.promise;if(""===n.model_id)return this.hide(),Promise.resolve();let i,r;try{i=await t.get_model(n.model_id)}catch(n){return t.restoredStatus?(this.node.textContent="Error displaying widget: model not found",this.addClass("jupyter-widgets"),void console.error(n)):void(this._rerenderMimeModel=e)}this._rerenderMimeModel=null;try{r=(await t.create_view(i)).luminoWidget}catch(e){return this.node.textContent="Error displaying widget",this.addClass("jupyter-widgets"),void console.error(e)}this.node.textContent="",this.addWidget(r),r.disposed.connect((()=>{this.hide(),n.model_id=""}))}dispose(){this.isDisposed||(this._manager=null,super.dispose())}_rerender(){this._rerenderMimeModel&&(this.node.textContent="",this.removeClass("jupyter-widgets"),this.renderModel(this._rerenderMimeModel))}}var h=t(9890),E=t(7482),b=t(4901),j=t(9e3);class y{constructor(){this._cache=Object.create(null)}set(e,n,t){if(e in this._cache||(this._cache[e]=Object.create(null)),n in this._cache[e])throw`Version ${n} of key ${e} already registered.`;this._cache[e][n]=t}get(e,n){if(e in this._cache){const t=this._cache[e],i=(0,j.maxSatisfying)(Object.keys(t),n);if(null!==i)return t[i]}}getAllVersions(e){if(e in this._cache)return this._cache[e]}}const m="application/vnd.jupyter.widget-view+json",D="application/vnd.jupyter.widget-state+json";class v extends E.ManagerBase{constructor(e){super(),this._handleCommOpen=async(e,n)=>{const t=new h.shims.services.Comm(e);await this.handle_comm_open(t,n)},this._restored=new b.Signal(this),this._restoredStatus=!1,this._kernelRestoreInProgress=!1,this._isDisposed=!1,this._registry=new y,this._modelsSync=new Map,this._onUnhandledIOPubMessage=new b.Signal(this),this._rendermime=e}callbacks(e){return{iopub:{output:e=>{this._onUnhandledIOPubMessage.emit(e)}}}}_handleKernelChanged({oldValue:e,newValue:n}){e&&e.removeCommTarget(this.comm_target_name,this._handleCommOpen),n&&n.registerCommTarget(this.comm_target_name,this._handleCommOpen)}disconnect(){super.disconnect(),this._restoredStatus=!1}async _loadFromKernel(){var e;if(!this.kernel)throw new Error("Kernel not set");if(!1!==(null===(e=this.kernel)||void 0===e?void 0:e.handleComms))return super._loadFromKernel()}async _create_comm(e,n,t,i,r){const o=this.kernel;if(!o)throw new Error("No current kernel");const a=o.createComm(e,n);return(t||i)&&a.open(t,i,r),new h.shims.services.Comm(a)}async _get_comm_info(){const e=this.kernel;if(!e)throw new Error("No current kernel");const n=await e.requestCommInfo({target_name:this.comm_target_name});return"ok"===n.content.status?n.content.comms:{}}get isDisposed(){return this._isDisposed}dispose(){this.isDisposed||(this._isDisposed=!0,this._commRegistration&&this._commRegistration.dispose())}async resolveUrl(e){return e}async loadClass(e,n,t){"@jupyter-widgets/base"!==n&&"@jupyter-widgets/controls"!==n||!(0,j.valid)(t)||(t=`^${t}`);const i=this._registry.getAllVersions(n);if(!i)throw new Error(`No version of module ${n} is registered`);const r=this._registry.get(n,t);if(!r){const e=Object.keys(i);throw new Error(`Module ${n}, version ${t} is not registered, however, ${e.join(",")} ${e.length>1?"are":"is"}`)}let o;o="function"==typeof r?await r():await r;const a=o[e];if(!a)throw new Error(`Class ${e} not found in module ${n}`);return a}get rendermime(){return this._rendermime}get restored(){return this._restored}get restoredStatus(){return this._restoredStatus}get onUnhandledIOPubMessage(){return this._onUnhandledIOPubMessage}register(e){this._registry.set(e.name,e.version,e.exports)}register_model(e,n){super.register_model(e,n),n.then((n=>{this._modelsSync.set(e,n),n.once("comm:close",(()=>{this._modelsSync.delete(e)}))}))}async clear_state(){await super.clear_state(),this._modelsSync=new Map}get_state_sync(e={}){const n=[];for(const e of this._modelsSync.values())e.comm_live&&n.push(e);return(0,E.serialize_state)(n,e)}}class T extends v{constructor(e,n){super(n),this._kernel=e,e.statusChanged.connect(((e,n)=>{this._handleKernelStatusChange(n)})),e.connectionStatusChanged.connect(((e,n)=>{this._handleKernelConnectionStatusChange(n)})),this._handleKernelChanged({name:"kernel",oldValue:null,newValue:e}),this.restoreWidgets()}_handleKernelConnectionStatusChange(e){"connected"===e&&(this._kernelRestoreInProgress||this.restoreWidgets())}_handleKernelStatusChange(e){"restarting"===e&&this.disconnect()}async restoreWidgets(){try{this._kernelRestoreInProgress=!0,await this._loadFromKernel(),this._restoredStatus=!0,this._restored.emit()}catch(e){}this._kernelRestoreInProgress=!1}dispose(){this.isDisposed||(this._kernel=null,super.dispose())}get kernel(){return this._kernel}}class f extends v{constructor(e,n,t){var i,r;super(n),this._context=e,e.sessionContext.kernelChanged.connect(((e,n)=>{this._handleKernelChanged(n)})),e.sessionContext.statusChanged.connect(((e,n)=>{this._handleKernelStatusChange(n)})),e.sessionContext.connectionStatusChanged.connect(((e,n)=>{this._handleKernelConnectionStatusChange(n)})),(null===(i=e.sessionContext.session)||void 0===i?void 0:i.kernel)&&this._handleKernelChanged({name:"kernel",oldValue:null,newValue:null===(r=e.sessionContext.session)||void 0===r?void 0:r.kernel}),this.restoreWidgets(this._context.model),this._settings=t,e.saveState.connect(((e,n)=>{"started"===n&&t.saveState&&this._saveState()}))}_saveState(){const e=this.get_state_sync({drop_defaults:!0});this._context.model.setMetadata?this._context.model.setMetadata("widgets",{"application/vnd.jupyter.widget-state+json":e}):this._context.model.metadata.set("widgets",{"application/vnd.jupyter.widget-state+json":e})}_handleKernelConnectionStatusChange(e){"connected"===e&&(this._kernelRestoreInProgress||this.restoreWidgets(this._context.model,{loadKernel:!0,loadNotebook:!1}))}_handleKernelStatusChange(e){"restarting"===e&&this.disconnect()}async restoreWidgets(e,{loadKernel:n,loadNotebook:t}={loadKernel:!0,loadNotebook:!0}){try{if(n)try{this._kernelRestoreInProgress=!0,await this._loadFromKernel()}finally{this._kernelRestoreInProgress=!1}t&&await this._loadFromNotebook(e),this._restoredStatus=!0,this._restored.emit()}catch(e){}}async _loadFromNotebook(e){const n=e.getMetadata?e.getMetadata("widgets"):e.metadata.get("widgets");if(n&&n[D]){let e=n[D];e=this.filterExistingModelState(e),await this.set_state(e)}}dispose(){this.isDisposed||(this._context=null,super.dispose())}async resolveUrl(e){const n=await this.context.urlResolver.resolveUrl(e);return this.context.urlResolver.getDownloadUrl(n)}get context(){return this._context}get kernel(){var e,n,t;return null!==(t=null===(n=null===(e=this._context.sessionContext)||void 0===e?void 0:e.session)||void 0===n?void 0:n.kernel)&&void 0!==t?t:null}register_model(e,n){super.register_model(e,n),this.setDirty()}async clear_state(){await super.clear_state(),this.setDirty()}setDirty(){this._settings.saveState&&(this._context.model.dirty=!0)}}var x=t(8409),C=t(3363),R=t(2994),A=t.n(R);const P=x.OUTPUT_WIDGET_VERSION;class U extends x.OutputModel{defaults(){return Object.assign(Object.assign({},super.defaults()),{msg_id:"",outputs:[]})}initialize(e,n){super.initialize(e,n),this._outputs=new C.OutputAreaModel({trusted:!0}),this._msgHook=e=>(this.add(e),!1),this.widget_manager instanceof f&&this.widget_manager.context.sessionContext.kernelChanged.connect(((e,n)=>{this._handleKernelChanged(n)})),this.listenTo(this,"change:msg_id",this.reset_msg_id),this.listenTo(this,"change:outputs",this.setOutputs),this.setOutputs()}_handleKernelChanged({oldValue:e}){const n=this.get("msg_id");n&&e&&(e.removeMessageHook(n,this._msgHook),this.set("msg_id",null))}reset_msg_id(){const e=this.widget_manager.kernel,n=this.get("msg_id"),t=this.previous("msg_id");t&&e&&e.removeMessageHook(t,this._msgHook),n&&e&&e.registerMessageHook(n,this._msgHook)}add(e){const n=e.header.msg_type;switch(n){case"execute_result":case"display_data":case"stream":case"error":{const t=e.content;t.output_type=n,this._outputs.add(t);break}case"clear_output":this.clear_output(e.content.wait)}this.set("outputs",this._outputs.toJSON(),{newMessage:!0}),this.save_changes()}clear_output(e=!1){this._outputs.clear(e)}get outputs(){return this._outputs}setOutputs(e,n,t){t&&t.newMessage||(this.clear_output(),this._outputs.fromJSON(JSON.parse(JSON.stringify(this.get("outputs")))))}}class k extends x.OutputView{_createElement(e){return this.luminoWidget=new h.JupyterLuminoPanelWidget({view:this}),this.luminoWidget.node}_setElement(e){if(this.el||e!==this.luminoWidget.node)throw new Error("Cannot reset the DOM element.");this.el=this.luminoWidget.node,this.$el=A()(this.luminoWidget.node)}render(){super.render(),this._outputView=new C.OutputArea({rendermime:this.model.widget_manager.rendermime,contentFactory:C.OutputArea.defaultContentFactory,model:this.model.outputs}),this.luminoWidget.insertWidget(0,this._outputView),this.luminoWidget.addClass("jupyter-widgets"),this.luminoWidget.addClass("widget-output"),this.update()}remove(){return this._outputView.dispose(),super.remove()}}var I=t(61),S=t(6062),B=t.n(S),O=t(4036),_=t.n(O),z=t(6793),N=t.n(z),M=t(7892),L=t.n(M),W=t(1173),H=t.n(W),F=t(2464),V=t.n(F),G=t(937),Y={};Y.styleTagTransform=V(),Y.setAttributes=L(),Y.insert=N().bind(null,"head"),Y.domAPI=_(),Y.insertStyleElement=H(),B()(G.Z,Y),G.Z&&G.Z.locals&&G.Z.locals;var Z=t(5309),K={};K.styleTagTransform=V(),K.setAttributes=L(),K.insert=N().bind(null,"head"),K.domAPI=_(),K.insertStyleElement=H(),B()(Z.Z,K),Z.Z&&Z.Z.locals&&Z.Z.locals;var J=t(4238),$=t(926);const X=[],q={saveState:!1};function*Q(e){for(const n of e.widgets)if("code"===n.model.type)for(const e of n.outputArea.widgets)for(const n of Array.from(e.children()))n instanceof w&&(yield n)}function*ee(e,n){const t=(0,l.filter)(e.shell.widgets(),(e=>e.id.startsWith("LinkedOutputView-")&&e.path===n));for(const e of Array.from(t))for(const n of Array.from(e.children()))for(const e of Array.from(n.children()))e instanceof w&&(yield e)}function*ne(...e){for(const n of e)yield*n}function te(e,n,t){let i=le.widgetManagerProperty.get(e);i||(i=new f(e,n,q),X.forEach((e=>i.register(e))),le.widgetManagerProperty.set(e,i));for(const e of t)e.manager=i;return n.removeMimeType(m),n.addFactory({safe:!1,mimeTypes:[m],createRenderer:e=>new w(e,i)},-10),new g.DisposableDelegate((()=>{n&&n.removeMimeType(m),i.dispose()}))}const ie={id:"@jupyter-widgets/jupyterlab-manager:plugin",requires:[d.IRenderMimeRegistry],optional:[o.INotebookTracker,r.ISettingRegistry,a.IMainMenu,s.ILoggerRegistry,$.ITranslator],provides:h.IJupyterWidgetRegistry,activate:function(e,n,t,i,r,o,a){const{commands:d}=e,s=(null!=a?a:$.nullTranslator).load("jupyterlab_widgets"),l=e=>{if(!o)return;const n=le.widgetManagerProperty.get(e.context);n&&n.onUnhandledIOPubMessage.connect(((n,t)=>{const i=o.getLogger(e.context.path);let r="warning";(J.KernelMessage.isErrorMsg(t)||J.KernelMessage.isStreamMsg(t)&&"stderr"===t.content.name)&&(r="error");const a=Object.assign(Object.assign({},t.content),{output_type:t.header.msg_type});i.rendermime=e.content.rendermime,i.log({type:"output",data:a,level:r})}))};return null!==i&&i.load(ie.id).then((e=>{e.changed.connect(re),re(e)})).catch((e=>{console.error(e.message)})),n.addFactory({safe:!1,mimeTypes:[m],createRenderer:e=>new w(e)},-10),null!==t&&(t.forEach((n=>{te(n.context,n.content.rendermime,ne(Q(n.content),ee(e,n.context.path))),l(n)})),t.widgetAdded.connect(((n,t)=>{te(t.context,t.content.rendermime,ne(Q(t.content),ee(e,t.context.path))),l(t)}))),null!==i&&d.addCommand("@jupyter-widgets/jupyterlab-manager:saveWidgetState",{label:s.__("Save Widget State Automatically"),execute:e=>i.set(ie.id,"saveState",!q.saveState).catch((e=>{console.error(`Failed to set ${ie.id}: ${e.message}`)})),isToggled:()=>q.saveState}),r&&r.settingsMenu.addGroup([{command:"@jupyter-widgets/jupyterlab-manager:saveWidgetState"}]),{registerWidget(e){X.push(e)}}},autoStart:!0};function re(e){q.saveState=e.get("saveState").composite}const oe={id:`@jupyter-widgets/jupyterlab-manager:base-${h.JUPYTER_WIDGETS_VERSION}`,requires:[h.IJupyterWidgetRegistry],autoStart:!0,activate:(e,n)=>{n.registerWidget({name:"@jupyter-widgets/base",version:h.JUPYTER_WIDGETS_VERSION,exports:{WidgetModel:h.WidgetModel,WidgetView:h.WidgetView,DOMWidgetView:h.DOMWidgetView,DOMWidgetModel:h.DOMWidgetModel,LayoutModel:h.LayoutModel,LayoutView:h.LayoutView,StyleModel:h.StyleModel,StyleView:h.StyleView,ErrorWidgetView:h.ErrorWidgetView}})}},ae={id:`@jupyter-widgets/jupyterlab-manager:controls-${I.N}`,requires:[h.IJupyterWidgetRegistry],autoStart:!0,activate:(e,n)=>{n.registerWidget({name:"@jupyter-widgets/controls",version:I.N,exports:()=>new Promise(((e,n)=>{t.e(863).then((n=>{e(t(6530))}).bind(null,t)).catch((e=>{n(e)}))}))})}},de={id:`@jupyter-widgets/jupyterlab-manager:output-${P}`,requires:[h.IJupyterWidgetRegistry],autoStart:!0,activate:(e,n)=>{n.registerWidget({name:"@jupyter-widgets/output",version:P,exports:{OutputModel:U,OutputView:k}})}},se=[ie,oe,ae,de];var le;!function(e){e.widgetManagerProperty=new p.AttachedProperty({name:"widgetManager",create:e=>{}})}(le||(le={}));const ge=se},584:e=>{e.exports="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE5LjIuMSwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHZpZXdCb3g9IjAgMCAxOCAxOCIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgMTggMTg7IiB4bWw6c3BhY2U9InByZXNlcnZlIj4KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KCS5zdDB7ZmlsbDpub25lO30KPC9zdHlsZT4KPHBhdGggZD0iTTUuMiw1LjlMOSw5LjdsMy44LTMuOGwxLjIsMS4ybC00LjksNWwtNC45LTVMNS4yLDUuOXoiLz4KPHBhdGggY2xhc3M9InN0MCIgZD0iTTAtMC42aDE4djE4SDBWLTAuNnoiLz4KPC9zdmc+Cg"}}]); \ No newline at end of file diff --git a/_static/extensions/@jupyter-widgets/jupyterlab-manager/static/291.cff5ef71b29e18850479.js b/_static/extensions/@jupyter-widgets/jupyterlab-manager/static/291.cff5ef71b29e18850479.js new file mode 100644 index 0000000..1b9b7da --- /dev/null +++ b/_static/extensions/@jupyter-widgets/jupyterlab-manager/static/291.cff5ef71b29e18850479.js @@ -0,0 +1,2 @@ +/*! For license information please see 291.cff5ef71b29e18850479.js.LICENSE.txt */ +(self.webpackChunk_jupyter_widgets_jupyterlab_manager=self.webpackChunk_jupyter_widgets_jupyterlab_manager||[]).push([[291],{8291:function(e,t){var n;!function(t,n){"use strict";"object"==typeof e.exports?e.exports=t.document?n(t,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return n(e)}:n(t)}("undefined"!=typeof window?window:this,(function(r,i){"use strict";var o=[],a=Object.getPrototypeOf,s=o.slice,u=o.flat?function(e){return o.flat.call(e)}:function(e){return o.concat.apply([],e)},l=o.push,c=o.indexOf,f={},p=f.toString,d=f.hasOwnProperty,h=d.toString,g=h.call(Object),v={},y=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},m=function(e){return null!=e&&e===e.window},x=r.document,b={type:!0,src:!0,nonce:!0,noModule:!0};function w(e,t,n){var r,i,o=(n=n||x).createElement("script");if(o.text=e,t)for(r in b)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function T(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?f[p.call(e)]||"object":typeof e}var C="3.7.0",k=/HTML$/i,S=function(e,t){return new S.fn.init(e,t)};function E(e){var t=!!e&&"length"in e&&e.length,n=T(e);return!y(e)&&!m(e)&&("array"===n||0===t||"number"==typeof t&&t>0&&t-1 in e)}function j(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}S.fn=S.prototype={jquery:C,constructor:S,length:0,toArray:function(){return s.call(this)},get:function(e){return null==e?s.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=S.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return S.each(this,e)},map:function(e){return this.pushStack(S.map(this,(function(t,n){return e.call(t,n,t)})))},slice:function(){return this.pushStack(s.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},even:function(){return this.pushStack(S.grep(this,(function(e,t){return(t+1)%2})))},odd:function(){return this.pushStack(S.grep(this,(function(e,t){return t%2})))},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(n>=0&&n+~]|"+q+")"+q+"*"),$=new RegExp(q+"|>"),_=new RegExp(M),B=new RegExp("^"+H+"$"),X={ID:new RegExp("^#("+H+")"),CLASS:new RegExp("^\\.("+H+")"),TAG:new RegExp("^("+H+"|[*])"),ATTR:new RegExp("^"+O),PSEUDO:new RegExp("^"+M),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+q+"*(even|odd|(([+-]|)(\\d*)n|)"+q+"*(?:([+-]|)"+q+"*(\\d+)|))"+q+"*\\)|)","i"),bool:new RegExp("^(?:"+E+")$","i"),needsContext:new RegExp("^"+q+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+q+"*((?:-\\d)?\\d*)"+q+"*\\)|)(?=[^-]|$)","i")},U=/^(?:input|select|textarea|button)$/i,z=/^h\d$/i,V=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,G=/[+~]/,Y=new RegExp("\\\\[\\da-fA-F]{1,6}"+q+"?|\\\\([^\\r\\n\\f])","g"),Q=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},J=function(){ue()},K=pe((function(e){return!0===e.disabled&&j(e,"fieldset")}),{dir:"parentNode",next:"legend"});try{g.apply(o=s.call(P.childNodes),P.childNodes),o[P.childNodes.length].nodeType}catch(e){g={apply:function(e,t){R.apply(e,s.call(t))},call:function(e){R.apply(e,s.call(arguments,1))}}}function Z(e,t,n,r){var i,o,a,s,l,c,d,h=t&&t.ownerDocument,m=t?t.nodeType:9;if(n=n||[],"string"!=typeof e||!e||1!==m&&9!==m&&11!==m)return n;if(!r&&(ue(t),t=t||u,f)){if(11!==m&&(l=V.exec(e)))if(i=l[1]){if(9===m){if(!(a=t.getElementById(i)))return n;if(a.id===i)return g.call(n,a),n}else if(h&&(a=h.getElementById(i))&&Z.contains(t,a)&&a.id===i)return g.call(n,a),n}else{if(l[2])return g.apply(n,t.getElementsByTagName(e)),n;if((i=l[3])&&t.getElementsByClassName)return g.apply(n,t.getElementsByClassName(i)),n}if(!(C[e+" "]||p&&p.test(e))){if(d=e,h=t,1===m&&($.test(e)||F.test(e))){for((h=G.test(e)&&se(t.parentNode)||t)==t&&v.scope||((s=t.getAttribute("id"))?s=S.escapeSelector(s):t.setAttribute("id",s=y)),o=(c=ce(e)).length;o--;)c[o]=(s?"#"+s:":scope")+" "+fe(c[o]);d=c.join(",")}try{return g.apply(n,h.querySelectorAll(d)),n}catch(t){C(e,!0)}finally{s===y&&t.removeAttribute("id")}}}return me(e.replace(L,"$1"),t,n,r)}function ee(){var e=[];return function n(r,i){return e.push(r+" ")>t.cacheLength&&delete n[e.shift()],n[r+" "]=i}}function te(e){return e[y]=!0,e}function ne(e){var t=u.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function re(e){return function(t){return j(t,"input")&&t.type===e}}function ie(e){return function(t){return(j(t,"input")||j(t,"button"))&&t.type===e}}function oe(e){return function(t){return"form"in t?t.parentNode&&!1===t.disabled?"label"in t?"label"in t.parentNode?t.parentNode.disabled===e:t.disabled===e:t.isDisabled===e||t.isDisabled!==!e&&K(t)===e:t.disabled===e:"label"in t&&t.disabled===e}}function ae(e){return te((function(t){return t=+t,te((function(n,r){for(var i,o=e([],n.length,t),a=o.length;a--;)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))}))}))}function se(e){return e&&void 0!==e.getElementsByTagName&&e}function ue(e){var n,r=e?e.ownerDocument||e:P;return r!=u&&9===r.nodeType&&r.documentElement?(l=(u=r).documentElement,f=!S.isXMLDoc(u),h=l.matches||l.webkitMatchesSelector||l.msMatchesSelector,P!=u&&(n=u.defaultView)&&n.top!==n&&n.addEventListener("unload",J),v.getById=ne((function(e){return l.appendChild(e).id=S.expando,!u.getElementsByName||!u.getElementsByName(S.expando).length})),v.disconnectedMatch=ne((function(e){return h.call(e,"*")})),v.scope=ne((function(){return u.querySelectorAll(":scope")})),v.cssHas=ne((function(){try{return u.querySelector(":has(*,:jqfake)"),!1}catch(e){return!0}})),v.getById?(t.filter.ID=function(e){var t=e.replace(Y,Q);return function(e){return e.getAttribute("id")===t}},t.find.ID=function(e,t){if(void 0!==t.getElementById&&f){var n=t.getElementById(e);return n?[n]:[]}}):(t.filter.ID=function(e){var t=e.replace(Y,Q);return function(e){var n=void 0!==e.getAttributeNode&&e.getAttributeNode("id");return n&&n.value===t}},t.find.ID=function(e,t){if(void 0!==t.getElementById&&f){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];for(i=t.getElementsByName(e),r=0;o=i[r++];)if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),t.find.TAG=function(e,t){return void 0!==t.getElementsByTagName?t.getElementsByTagName(e):t.querySelectorAll(e)},t.find.CLASS=function(e,t){if(void 0!==t.getElementsByClassName&&f)return t.getElementsByClassName(e)},p=[],ne((function(e){var t;l.appendChild(e).innerHTML="",e.querySelectorAll("[selected]").length||p.push("\\["+q+"*(?:value|"+E+")"),e.querySelectorAll("[id~="+y+"-]").length||p.push("~="),e.querySelectorAll("a#"+y+"+*").length||p.push(".#.+[+~]"),e.querySelectorAll(":checked").length||p.push(":checked"),(t=u.createElement("input")).setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),l.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&p.push(":enabled",":disabled"),(t=u.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||p.push("\\["+q+"*name"+q+"*="+q+"*(?:''|\"\")")})),v.cssHas||p.push(":has"),p=p.length&&new RegExp(p.join("|")),k=function(e,t){if(e===t)return a=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!v.sortDetached&&t.compareDocumentPosition(e)===n?e===u||e.ownerDocument==P&&Z.contains(P,e)?-1:t===u||t.ownerDocument==P&&Z.contains(P,t)?1:i?c.call(i,e)-c.call(i,t):0:4&n?-1:1)},u):u}for(e in Z.matches=function(e,t){return Z(e,null,null,t)},Z.matchesSelector=function(e,t){if(ue(e),f&&!C[t+" "]&&(!p||!p.test(t)))try{var n=h.call(e,t);if(n||v.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){C(t,!0)}return Z(t,u,null,[e]).length>0},Z.contains=function(e,t){return(e.ownerDocument||e)!=u&&ue(e),S.contains(e,t)},Z.attr=function(e,n){(e.ownerDocument||e)!=u&&ue(e);var r=t.attrHandle[n.toLowerCase()],i=r&&d.call(t.attrHandle,n.toLowerCase())?r(e,n,!f):void 0;return void 0!==i?i:e.getAttribute(n)},Z.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},S.uniqueSort=function(e){var t,n=[],r=0,o=0;if(a=!v.sortStable,i=!v.sortStable&&s.call(e,0),D.call(e,k),a){for(;t=e[o++];)t===e[o]&&(r=n.push(o));for(;r--;)N.call(e,n[r],1)}return i=null,e},S.fn.uniqueSort=function(){return this.pushStack(S.uniqueSort(s.apply(this)))},t=S.expr={cacheLength:50,createPseudo:te,match:X,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(Y,Q),e[3]=(e[3]||e[4]||e[5]||"").replace(Y,Q),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||Z.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&Z.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return X.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&_.test(n)&&(t=ce(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(Y,Q).toLowerCase();return"*"===e?function(){return!0}:function(e){return j(e,t)}},CLASS:function(e){var t=b[e+" "];return t||(t=new RegExp("(^|"+q+")"+e+"("+q+"|$)"))&&b(e,(function(e){return t.test("string"==typeof e.className&&e.className||void 0!==e.getAttribute&&e.getAttribute("class")||"")}))},ATTR:function(e,t,n){return function(r){var i=Z.attr(r,e);return null==i?"!="===t:!t||(i+="","="===t?i===n:"!="===t?i!==n:"^="===t?n&&0===i.indexOf(n):"*="===t?n&&i.indexOf(n)>-1:"$="===t?n&&i.slice(-n.length)===n:"~="===t?(" "+i.replace(I," ")+" ").indexOf(n)>-1:"|="===t&&(i===n||i.slice(0,n.length+1)===n+"-"))}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,u){var l,c,f,p,d,h=o!==a?"nextSibling":"previousSibling",g=t.parentNode,v=s&&t.nodeName.toLowerCase(),x=!u&&!s,b=!1;if(g){if(o){for(;h;){for(f=t;f=f[h];)if(s?j(f,v):1===f.nodeType)return!1;d=h="only"===e&&!d&&"nextSibling"}return!0}if(d=[a?g.firstChild:g.lastChild],a&&x){for(b=(p=(l=(c=g[y]||(g[y]={}))[e]||[])[0]===m&&l[1])&&l[2],f=p&&g.childNodes[p];f=++p&&f&&f[h]||(b=p=0)||d.pop();)if(1===f.nodeType&&++b&&f===t){c[e]=[m,p,b];break}}else if(x&&(b=p=(l=(c=t[y]||(t[y]={}))[e]||[])[0]===m&&l[1]),!1===b)for(;(f=++p&&f&&f[h]||(b=p=0)||d.pop())&&(!(s?j(f,v):1===f.nodeType)||!++b||(x&&((c=f[y]||(f[y]={}))[e]=[m,b]),f!==t)););return(b-=i)===r||b%r==0&&b/r>=0}}},PSEUDO:function(e,n){var r,i=t.pseudos[e]||t.setFilters[e.toLowerCase()]||Z.error("unsupported pseudo: "+e);return i[y]?i(n):i.length>1?(r=[e,e,"",n],t.setFilters.hasOwnProperty(e.toLowerCase())?te((function(e,t){for(var r,o=i(e,n),a=o.length;a--;)e[r=c.call(e,o[a])]=!(t[r]=o[a])})):function(e){return i(e,0,r)}):i}},pseudos:{not:te((function(e){var t=[],n=[],r=ye(e.replace(L,"$1"));return r[y]?te((function(e,t,n,i){for(var o,a=r(e,null,i,[]),s=e.length;s--;)(o=a[s])&&(e[s]=!(t[s]=o))})):function(e,i,o){return t[0]=e,r(t,null,o,n),t[0]=null,!n.pop()}})),has:te((function(e){return function(t){return Z(e,t).length>0}})),contains:te((function(e){return e=e.replace(Y,Q),function(t){return(t.textContent||S.text(t)).indexOf(e)>-1}})),lang:te((function(e){return B.test(e||"")||Z.error("unsupported lang: "+e),e=e.replace(Y,Q).toLowerCase(),function(t){var n;do{if(n=f?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return(n=n.toLowerCase())===e||0===n.indexOf(e+"-")}while((t=t.parentNode)&&1===t.nodeType);return!1}})),target:function(e){var t=r.location&&r.location.hash;return t&&t.slice(1)===e.id},root:function(e){return e===l},focus:function(e){return e===function(){try{return u.activeElement}catch(e){}}()&&u.hasFocus()&&!!(e.type||e.href||~e.tabIndex)},enabled:oe(!1),disabled:oe(!0),checked:function(e){return j(e,"input")&&!!e.checked||j(e,"option")&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!t.pseudos.empty(e)},header:function(e){return z.test(e.nodeName)},input:function(e){return U.test(e.nodeName)},button:function(e){return j(e,"input")&&"button"===e.type||j(e,"button")},text:function(e){var t;return j(e,"input")&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:ae((function(){return[0]})),last:ae((function(e,t){return[t-1]})),eq:ae((function(e,t,n){return[n<0?n+t:n]})),even:ae((function(e,t){for(var n=0;nt?t:n;--r>=0;)e.push(r);return e})),gt:ae((function(e,t,n){for(var r=n<0?n+t:n;++r1?function(t,n,r){for(var i=e.length;i--;)if(!e[i](t,n,r))return!1;return!0}:e[0]}function he(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;s-1&&(o[l]=!(a[l]=p))}}else d=he(d===a?d.splice(y,d.length):d),i?i(null,a,d,u):g.apply(a,d)}))}function ve(e){for(var r,i,o,a=e.length,s=t.relative[e[0].type],u=s||t.relative[" "],l=s?1:0,f=pe((function(e){return e===r}),u,!0),p=pe((function(e){return c.call(r,e)>-1}),u,!0),d=[function(e,t,i){var o=!s&&(i||t!=n)||((r=t).nodeType?f(e,t,i):p(e,t,i));return r=null,o}];l1&&de(d),l>1&&fe(e.slice(0,l-1).concat({value:" "===e[l-2].type?"*":""})).replace(L,"$1"),i,l0,o=e.length>0,a=function(a,s,l,c,p){var d,h,v,y=0,x="0",b=a&&[],w=[],T=n,C=a||o&&t.find.TAG("*",p),k=m+=null==T?1:Math.random()||.1,E=C.length;for(p&&(n=s==u||s||p);x!==E&&null!=(d=C[x]);x++){if(o&&d){for(h=0,s||d.ownerDocument==u||(ue(d),l=!f);v=e[h++];)if(v(d,s||u,l)){g.call(c,d);break}p&&(m=k)}i&&((d=!v&&d)&&y--,a&&b.push(d))}if(y+=x,i&&x!==y){for(h=0;v=r[h++];)v(b,w,s,l);if(a){if(y>0)for(;x--;)b[x]||w[x]||(w[x]=A.call(c));w=he(w)}g.apply(c,w),p&&!a&&w.length>0&&y+r.length>1&&S.uniqueSort(c)}return p&&(m=k,n=T),b};return i?te(a):a}(a,o)),s.selector=e}return s}function me(e,n,r,i){var o,a,s,u,l,c="function"==typeof e&&e,p=!i&&ce(e=c.selector||e);if(r=r||[],1===p.length){if((a=p[0]=p[0].slice(0)).length>2&&"ID"===(s=a[0]).type&&9===n.nodeType&&f&&t.relative[a[1].type]){if(!(n=(t.find.ID(s.matches[0].replace(Y,Q),n)||[])[0]))return r;c&&(n=n.parentNode),e=e.slice(a.shift().value.length)}for(o=X.needsContext.test(e)?0:a.length;o--&&(s=a[o],!t.relative[u=s.type]);)if((l=t.find[u])&&(i=l(s.matches[0].replace(Y,Q),G.test(a[0].type)&&se(n.parentNode)||n))){if(a.splice(o,1),!(e=i.length&&fe(a)))return g.apply(r,i),r;break}}return(c||ye(e,p))(i,n,!f,r,!n||G.test(e)&&se(n.parentNode)||n),r}le.prototype=t.filters=t.pseudos,t.setFilters=new le,v.sortStable=y.split("").sort(k).join("")===y,ue(),v.sortDetached=ne((function(e){return 1&e.compareDocumentPosition(u.createElement("fieldset"))})),S.find=Z,S.expr[":"]=S.expr.pseudos,S.unique=S.uniqueSort,Z.compile=ye,Z.select=me,Z.setDocument=ue,Z.escape=S.escapeSelector,Z.getText=S.text,Z.isXML=S.isXMLDoc,Z.selectors=S.expr,Z.support=S.support,Z.uniqueSort=S.uniqueSort}();var M=function(e,t,n){for(var r=[],i=void 0!==n;(e=e[t])&&9!==e.nodeType;)if(1===e.nodeType){if(i&&S(e).is(n))break;r.push(e)}return r},I=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},W=S.expr.match.needsContext,F=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function $(e,t,n){return y(t)?S.grep(e,(function(e,r){return!!t.call(e,r,e)!==n})):t.nodeType?S.grep(e,(function(e){return e===t!==n})):"string"!=typeof t?S.grep(e,(function(e){return c.call(t,e)>-1!==n})):S.filter(t,e,n)}S.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?S.find.matchesSelector(r,e)?[r]:[]:S.find.matches(e,S.grep(t,(function(e){return 1===e.nodeType})))},S.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(S(e).filter((function(){for(t=0;t1?S.uniqueSort(n):n},filter:function(e){return this.pushStack($(this,e||[],!1))},not:function(e){return this.pushStack($(this,e||[],!0))},is:function(e){return!!$(this,"string"==typeof e&&W.test(e)?S(e):e||[],!1).length}});var _,B=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||_,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&e.length>=3?[null,e,null]:B.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:x,!0)),F.test(r[1])&&S.isPlainObject(t))for(r in t)y(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=x.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):y(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,_=S(x);var X=/^(?:parents|prev(?:Until|All))/,U={children:!0,contents:!0,next:!0,prev:!0};function z(e,t){for(;(e=e[t])&&1!==e.nodeType;);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter((function(){for(var e=0;e-1:1===n.nodeType&&S.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(o.length>1?S.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?c.call(S(e),this[0]):c.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(S.uniqueSort(S.merge(this.get(),S(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),S.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return M(e,"parentNode")},parentsUntil:function(e,t,n){return M(e,"parentNode",n)},next:function(e){return z(e,"nextSibling")},prev:function(e){return z(e,"previousSibling")},nextAll:function(e){return M(e,"nextSibling")},prevAll:function(e){return M(e,"previousSibling")},nextUntil:function(e,t,n){return M(e,"nextSibling",n)},prevUntil:function(e,t,n){return M(e,"previousSibling",n)},siblings:function(e){return I((e.parentNode||{}).firstChild,e)},children:function(e){return I(e.firstChild)},contents:function(e){return null!=e.contentDocument&&a(e.contentDocument)?e.contentDocument:(j(e,"template")&&(e=e.content||e),S.merge([],e.childNodes))}},(function(e,t){S.fn[e]=function(n,r){var i=S.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=S.filter(r,i)),this.length>1&&(U[e]||S.uniqueSort(i),X.test(e)&&i.reverse()),this.pushStack(i)}}));var V=/[^\x20\t\r\n\f]+/g;function G(e){return e}function Y(e){throw e}function Q(e,t,n,r){var i;try{e&&y(i=e.promise)?i.call(e).done(t).fail(n):e&&y(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}S.Callbacks=function(e){e="string"==typeof e?function(e){var t={};return S.each(e.match(V)||[],(function(e,n){t[n]=!0})),t}(e):S.extend({},e);var t,n,r,i,o=[],a=[],s=-1,u=function(){for(i=i||e.once,r=t=!0;a.length;s=-1)for(n=a.shift();++s-1;)o.splice(n,1),n<=s&&s--})),this},has:function(e){return e?S.inArray(e,o)>-1:o.length>0},empty:function(){return o&&(o=[]),this},disable:function(){return i=a=[],o=n="",this},disabled:function(){return!o},lock:function(){return i=a=[],n||t||(o=n=""),this},locked:function(){return!!i},fireWith:function(e,n){return i||(n=[e,(n=n||[]).slice?n.slice():n],a.push(n),t||u()),this},fire:function(){return l.fireWith(this,arguments),this},fired:function(){return!!r}};return l},S.extend({Deferred:function(e){var t=[["notify","progress",S.Callbacks("memory"),S.Callbacks("memory"),2],["resolve","done",S.Callbacks("once memory"),S.Callbacks("once memory"),0,"resolved"],["reject","fail",S.Callbacks("once memory"),S.Callbacks("once memory"),1,"rejected"]],n="pending",i={state:function(){return n},always:function(){return o.done(arguments).fail(arguments),this},catch:function(e){return i.then(null,e)},pipe:function(){var e=arguments;return S.Deferred((function(n){S.each(t,(function(t,r){var i=y(e[r[4]])&&e[r[4]];o[r[1]]((function(){var e=i&&i.apply(this,arguments);e&&y(e.promise)?e.promise().progress(n.notify).done(n.resolve).fail(n.reject):n[r[0]+"With"](this,i?[e]:arguments)}))})),e=null})).promise()},then:function(e,n,i){var o=0;function a(e,t,n,i){return function(){var s=this,u=arguments,l=function(){var r,l;if(!(e=o&&(n!==Y&&(s=void 0,u=[r]),t.rejectWith(s,u))}};e?c():(S.Deferred.getErrorHook?c.error=S.Deferred.getErrorHook():S.Deferred.getStackHook&&(c.error=S.Deferred.getStackHook()),r.setTimeout(c))}}return S.Deferred((function(r){t[0][3].add(a(0,r,y(i)?i:G,r.notifyWith)),t[1][3].add(a(0,r,y(e)?e:G)),t[2][3].add(a(0,r,y(n)?n:Y))})).promise()},promise:function(e){return null!=e?S.extend(e,i):i}},o={};return S.each(t,(function(e,r){var a=r[2],s=r[5];i[r[1]]=a.add,s&&a.add((function(){n=s}),t[3-e][2].disable,t[3-e][3].disable,t[0][2].lock,t[0][3].lock),a.add(r[3].fire),o[r[0]]=function(){return o[r[0]+"With"](this===o?void 0:this,arguments),this},o[r[0]+"With"]=a.fireWith})),i.promise(o),e&&e.call(o,o),o},when:function(e){var t=arguments.length,n=t,r=Array(n),i=s.call(arguments),o=S.Deferred(),a=function(e){return function(n){r[e]=this,i[e]=arguments.length>1?s.call(arguments):n,--t||o.resolveWith(r,i)}};if(t<=1&&(Q(e,o.done(a(n)).resolve,o.reject,!t),"pending"===o.state()||y(i[n]&&i[n].then)))return o.then();for(;n--;)Q(i[n],a(n),o.reject);return o.promise()}});var J=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;S.Deferred.exceptionHook=function(e,t){r.console&&r.console.warn&&e&&J.test(e.name)&&r.console.warn("jQuery.Deferred exception: "+e.message,e.stack,t)},S.readyException=function(e){r.setTimeout((function(){throw e}))};var K=S.Deferred();function Z(){x.removeEventListener("DOMContentLoaded",Z),r.removeEventListener("load",Z),S.ready()}S.fn.ready=function(e){return K.then(e).catch((function(e){S.readyException(e)})),this},S.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--S.readyWait:S.isReady)||(S.isReady=!0,!0!==e&&--S.readyWait>0||K.resolveWith(x,[S]))}}),S.ready.then=K.then,"complete"===x.readyState||"loading"!==x.readyState&&!x.documentElement.doScroll?r.setTimeout(S.ready):(x.addEventListener("DOMContentLoaded",Z),r.addEventListener("load",Z));var ee=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if("object"===T(n))for(s in i=!0,n)ee(e,t,s,n[s],!0,o,a);else if(void 0!==r&&(i=!0,y(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(S(e),n)})),t))for(;s1,null,!0)},removeData:function(e){return this.each((function(){ue.remove(this,e)}))}}),S.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=se.get(e,t),n&&(!r||Array.isArray(n)?r=se.access(e,t,S.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=S.queue(e,t),r=n.length,i=n.shift(),o=S._queueHooks(e,t);"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,(function(){S.dequeue(e,t)}),o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return se.get(e,n)||se.access(e,n,{empty:S.Callbacks("once memory").add((function(){se.remove(e,[t+"queue",n])}))})}}),S.fn.extend({queue:function(e,t){var n=2;return"string"!=typeof e&&(t=e,e="fx",n--),arguments.length\x20\t\r\n\f]*)/i,je=/^$|^module$|\/(?:java|ecma)script/i;Ce=x.createDocumentFragment().appendChild(x.createElement("div")),(ke=x.createElement("input")).setAttribute("type","radio"),ke.setAttribute("checked","checked"),ke.setAttribute("name","t"),Ce.appendChild(ke),v.checkClone=Ce.cloneNode(!0).cloneNode(!0).lastChild.checked,Ce.innerHTML="",v.noCloneChecked=!!Ce.cloneNode(!0).lastChild.defaultValue,Ce.innerHTML="",v.option=!!Ce.lastChild;var Ae={thead:[1,"","
    "],col:[2,"","
    "],tr:[2,"","
    "],td:[3,"","
    "],_default:[0,"",""]};function De(e,t){var n;return n=void 0!==e.getElementsByTagName?e.getElementsByTagName(t||"*"):void 0!==e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&j(e,t)?S.merge([e],n):n}function Ne(e,t){for(var n=0,r=e.length;n",""]);var qe=/<|&#?\w+;/;function Le(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d-1)i&&i.push(o);else if(l=ve(o),a=De(f.appendChild(o),"script"),l&&Ne(a),n)for(c=0;o=a[c++];)je.test(o.type||"")&&n.push(o);return f}var He=/^([^.]*)(?:\.(.+)|)/;function Oe(){return!0}function Pe(){return!1}function Re(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Re(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Pe;else if(!i)return e;return 1===o&&(a=i,i=function(e){return S().off(e),a.apply(this,arguments)},i.guid=a.guid||(a.guid=S.guid++)),e.each((function(){S.event.add(this,t,i,r,n)}))}function Me(e,t,n){n?(se.set(e,t,!1),S.event.add(e,t,{namespace:!1,handler:function(e){var n,r=se.get(this,t);if(1&e.isTrigger&&this[t]){if(r)(S.event.special[t]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),se.set(this,t,r),this[t](),n=se.get(this,t),se.set(this,t,!1),r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n}else r&&(se.set(this,t,S.event.trigger(r[0],r.slice(1),this)),e.stopPropagation(),e.isImmediatePropagationStopped=Oe)}})):void 0===se.get(e,t)&&S.event.add(e,t,Oe)}S.event={global:{},add:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=se.get(e);if(oe(e))for(n.handler&&(n=(o=n).handler,i=o.selector),i&&S.find.matchesSelector(ge,i),n.guid||(n.guid=S.guid++),(u=v.events)||(u=v.events=Object.create(null)),(a=v.handle)||(a=v.handle=function(t){return void 0!==S&&S.event.triggered!==t.type?S.event.dispatch.apply(e,arguments):void 0}),l=(t=(t||"").match(V)||[""]).length;l--;)d=g=(s=He.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=S.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=S.event.special[d]||{},c=S.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&S.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(e,r,h,a)||e.addEventListener&&e.addEventListener(d,a)),f.add&&(f.add.call(e,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),S.event.global[d]=!0)},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=se.hasData(e)&&se.get(e);if(v&&(u=v.events)){for(l=(t=(t||"").match(V)||[""]).length;l--;)if(d=g=(s=He.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){for(f=S.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;o--;)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||S.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)S.event.remove(e,d+t[l],n,r,!0);S.isEmptyObject(u)&&se.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=new Array(arguments.length),u=S.event.fix(e),l=(se.get(this,"events")||Object.create(null))[u.type]||[],c=S.event.special[u.type]||{};for(s[0]=u,t=1;t=1))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n-1:S.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u\s*$/g;function $e(e,t){return j(e,"table")&&j(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function _e(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Be(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Xe(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(se.hasData(e)&&(s=se.get(e).events))for(i in se.remove(t,"handle events"),s)for(n=0,r=s[i].length;n1&&"string"==typeof h&&!v.checkClone&&We.test(h))return e.each((function(i){var o=e.eq(i);g&&(t[0]=h.call(this,i,o.html())),ze(o,t,n,r)}));if(p&&(o=(i=Le(t,e[0].ownerDocument,!1,e,r)).firstChild,1===i.childNodes.length&&(i=o),o||r)){for(s=(a=S.map(De(i,"script"),_e)).length;f0&&Ne(a,!u&&De(e,"script")),s},cleanData:function(e){for(var t,n,r,i=S.event.special,o=0;void 0!==(n=e[o]);o++)if(oe(n)){if(t=n[se.expando]){if(t.events)for(r in t.events)i[r]?S.event.remove(n,r):S.removeEvent(n,r,t.handle);n[se.expando]=void 0}n[ue.expando]&&(n[ue.expando]=void 0)}}}),S.fn.extend({detach:function(e){return Ve(this,e,!0)},remove:function(e){return Ve(this,e)},text:function(e){return ee(this,(function(e){return void 0===e?S.text(this):this.empty().each((function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)}))}),null,e,arguments.length)},append:function(){return ze(this,arguments,(function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||$e(this,e).appendChild(e)}))},prepend:function(){return ze(this,arguments,(function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=$e(this,e);t.insertBefore(e,t.firstChild)}}))},before:function(){return ze(this,arguments,(function(e){this.parentNode&&this.parentNode.insertBefore(e,this)}))},after:function(){return ze(this,arguments,(function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)}))},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(S.cleanData(De(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map((function(){return S.clone(this,e,t)}))},html:function(e){return ee(this,(function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!Ie.test(e)&&!Ae[(Ee.exec(e)||["",""])[1].toLowerCase()]){e=S.htmlPrefilter(e);try{for(;n=0&&(u+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-u-s-.5))||0),u+l}function ct(e,t,n){var r=Qe(e),i=(!v.boxSizingReliable()||n)&&"border-box"===S.css(e,"boxSizing",!1,r),o=i,a=Ze(e,t,r),s="offset"+t[0].toUpperCase()+t.slice(1);if(Ge.test(a)){if(!n)return a;a="auto"}return(!v.boxSizingReliable()&&i||!v.reliableTrDimensions()&&j(e,"tr")||"auto"===a||!parseFloat(a)&&"inline"===S.css(e,"display",!1,r))&&e.getClientRects().length&&(i="border-box"===S.css(e,"boxSizing",!1,r),(o=s in e)&&(a=e[s])),(a=parseFloat(a)||0)+lt(e,t,n||(i?"border":"content"),o,r,a)+"px"}function ft(e,t,n,r,i){return new ft.prototype.init(e,t,n,r,i)}S.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Ze(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,aspectRatio:!0,borderImageSlice:!0,columnCount:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,scale:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeMiterlimit:!0,strokeOpacity:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=ie(t),u=Ye.test(t),l=e.style;if(u||(t=it(s)),a=S.cssHooks[t]||S.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];"string"==(o=typeof n)&&(i=de.exec(n))&&i[1]&&(n=xe(e,t,i),o="number"),null!=n&&n==n&&("number"!==o||u||(n+=i&&i[3]||(S.cssNumber[s]?"":"px")),v.clearCloneStyle||""!==n||0!==t.indexOf("background")||(l[t]="inherit"),a&&"set"in a&&void 0===(n=a.set(e,n,r))||(u?l.setProperty(t,n):l[t]=n))}},css:function(e,t,n,r){var i,o,a,s=ie(t);return Ye.test(t)||(t=it(s)),(a=S.cssHooks[t]||S.cssHooks[s])&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=Ze(e,t,r)),"normal"===i&&t in st&&(i=st[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),S.each(["height","width"],(function(e,t){S.cssHooks[t]={get:function(e,n,r){if(n)return!ot.test(S.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?ct(e,t,r):Je(e,at,(function(){return ct(e,t,r)}))},set:function(e,n,r){var i,o=Qe(e),a=!v.scrollboxSize()&&"absolute"===o.position,s=(a||r)&&"border-box"===S.css(e,"boxSizing",!1,o),u=r?lt(e,t,r,s,o):0;return s&&a&&(u-=Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-parseFloat(o[t])-lt(e,t,"border",!1,o)-.5)),u&&(i=de.exec(n))&&"px"!==(i[3]||"px")&&(e.style[t]=n,n=S.css(e,t)),ut(0,n,u)}}})),S.cssHooks.marginLeft=et(v.reliableMarginLeft,(function(e,t){if(t)return(parseFloat(Ze(e,"marginLeft"))||e.getBoundingClientRect().left-Je(e,{marginLeft:0},(function(){return e.getBoundingClientRect().left})))+"px"})),S.each({margin:"",padding:"",border:"Width"},(function(e,t){S.cssHooks[e+t]={expand:function(n){for(var r=0,i={},o="string"==typeof n?n.split(" "):[n];r<4;r++)i[e+he[r]+t]=o[r]||o[r-2]||o[0];return i}},"margin"!==e&&(S.cssHooks[e+t].set=ut)})),S.fn.extend({css:function(e,t){return ee(this,(function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=Qe(e),i=t.length;a1)}}),S.Tween=ft,ft.prototype={constructor:ft,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||S.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(S.cssNumber[n]?"":"px")},cur:function(){var e=ft.propHooks[this.prop];return e&&e.get?e.get(this):ft.propHooks._default.get(this)},run:function(e){var t,n=ft.propHooks[this.prop];return this.options.duration?this.pos=t=S.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):ft.propHooks._default.set(this),this}},ft.prototype.init.prototype=ft.prototype,ft.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=S.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){S.fx.step[e.prop]?S.fx.step[e.prop](e):1!==e.elem.nodeType||!S.cssHooks[e.prop]&&null==e.elem.style[it(e.prop)]?e.elem[e.prop]=e.now:S.style(e.elem,e.prop,e.now+e.unit)}}},ft.propHooks.scrollTop=ft.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},S.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},S.fx=ft.prototype.init,S.fx.step={};var pt,dt,ht=/^(?:toggle|show|hide)$/,gt=/queueHooks$/;function vt(){dt&&(!1===x.hidden&&r.requestAnimationFrame?r.requestAnimationFrame(vt):r.setTimeout(vt,S.fx.interval),S.fx.tick())}function yt(){return r.setTimeout((function(){pt=void 0})),pt=Date.now()}function mt(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin"+(n=he[r])]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function xt(e,t,n){for(var r,i=(bt.tweeners[t]||[]).concat(bt.tweeners["*"]),o=0,a=i.length;o1)},removeAttr:function(e){return this.each((function(){S.removeAttr(this,e)}))}}),S.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return void 0===e.getAttribute?S.prop(e,t,n):(1===o&&S.isXMLDoc(e)||(i=S.attrHooks[t.toLowerCase()]||(S.expr.match.bool.test(t)?wt:void 0)),void 0!==n?null===n?void S.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:null==(r=S.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!v.radioValue&&"radio"===t&&j(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(V);if(i&&1===e.nodeType)for(;n=i[r++];)e.removeAttribute(n)}}),wt={set:function(e,t,n){return!1===t?S.removeAttr(e,n):e.setAttribute(n,n),n}},S.each(S.expr.match.bool.source.match(/\w+/g),(function(e,t){var n=Tt[t]||S.find.attr;Tt[t]=function(e,t,r){var i,o,a=t.toLowerCase();return r||(o=Tt[a],Tt[a]=i,i=null!=n(e,t,r)?a:null,Tt[a]=o),i}}));var Ct=/^(?:input|select|textarea|button)$/i,kt=/^(?:a|area)$/i;function St(e){return(e.match(V)||[]).join(" ")}function Et(e){return e.getAttribute&&e.getAttribute("class")||""}function jt(e){return Array.isArray(e)?e:"string"==typeof e&&e.match(V)||[]}S.fn.extend({prop:function(e,t){return ee(this,S.prop,e,t,arguments.length>1)},removeProp:function(e){return this.each((function(){delete this[S.propFix[e]||e]}))}}),S.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&S.isXMLDoc(e)||(t=S.propFix[t]||t,i=S.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=S.find.attr(e,"tabindex");return t?parseInt(t,10):Ct.test(e.nodeName)||kt.test(e.nodeName)&&e.href?0:-1}}},propFix:{for:"htmlFor",class:"className"}}),v.optSelected||(S.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),S.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],(function(){S.propFix[this.toLowerCase()]=this})),S.fn.extend({addClass:function(e){var t,n,r,i,o,a;return y(e)?this.each((function(t){S(this).addClass(e.call(this,t,Et(this)))})):(t=jt(e)).length?this.each((function(){if(r=Et(this),n=1===this.nodeType&&" "+St(r)+" "){for(o=0;o-1;)n=n.replace(" "+i+" "," ");a=St(n),r!==a&&this.setAttribute("class",a)}})):this:this.attr("class","")},toggleClass:function(e,t){var n,r,i,o,a=typeof e,s="string"===a||Array.isArray(e);return y(e)?this.each((function(n){S(this).toggleClass(e.call(this,n,Et(this),t),t)})):"boolean"==typeof t&&s?t?this.addClass(e):this.removeClass(e):(n=jt(e),this.each((function(){if(s)for(o=S(this),i=0;i-1)return!0;return!1}});var At=/\r/g;S.fn.extend({val:function(e){var t,n,r,i=this[0];return arguments.length?(r=y(e),this.each((function(n){var i;1===this.nodeType&&(null==(i=r?e.call(this,n,S(this).val()):e)?i="":"number"==typeof i?i+="":Array.isArray(i)&&(i=S.map(i,(function(e){return null==e?"":e+""}))),(t=S.valHooks[this.type]||S.valHooks[this.nodeName.toLowerCase()])&&"set"in t&&void 0!==t.set(this,i,"value")||(this.value=i))}))):i?(t=S.valHooks[i.type]||S.valHooks[i.nodeName.toLowerCase()])&&"get"in t&&void 0!==(n=t.get(i,"value"))?n:"string"==typeof(n=i.value)?n.replace(At,""):null==n?"":n:void 0}}),S.extend({valHooks:{option:{get:function(e){var t=S.find.attr(e,"value");return null!=t?t:St(S.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a="select-one"===e.type,s=a?null:[],u=a?o+1:i.length;for(r=o<0?u:a?o:0;r-1)&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),S.each(["radio","checkbox"],(function(){S.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=S.inArray(S(e).val(),t)>-1}},v.checkOn||(S.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}));var Dt=r.location,Nt={guid:Date.now()},qt=/\?/;S.parseXML=function(e){var t,n;if(!e||"string"!=typeof e)return null;try{t=(new r.DOMParser).parseFromString(e,"text/xml")}catch(e){}return n=t&&t.getElementsByTagName("parsererror")[0],t&&!n||S.error("Invalid XML: "+(n?S.map(n.childNodes,(function(e){return e.textContent})).join("\n"):e)),t};var Lt=/^(?:focusinfocus|focusoutblur)$/,Ht=function(e){e.stopPropagation()};S.extend(S.event,{trigger:function(e,t,n,i){var o,a,s,u,l,c,f,p,h=[n||x],g=d.call(e,"type")?e.type:e,v=d.call(e,"namespace")?e.namespace.split("."):[];if(a=p=s=n=n||x,3!==n.nodeType&&8!==n.nodeType&&!Lt.test(g+S.event.triggered)&&(g.indexOf(".")>-1&&(v=g.split("."),g=v.shift(),v.sort()),l=g.indexOf(":")<0&&"on"+g,(e=e[S.expando]?e:new S.Event(g,"object"==typeof e&&e)).isTrigger=i?2:3,e.namespace=v.join("."),e.rnamespace=e.namespace?new RegExp("(^|\\.)"+v.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result=void 0,e.target||(e.target=n),t=null==t?[e]:S.makeArray(t,[e]),f=S.event.special[g]||{},i||!f.trigger||!1!==f.trigger.apply(n,t))){if(!i&&!f.noBubble&&!m(n)){for(u=f.delegateType||g,Lt.test(u+g)||(a=a.parentNode);a;a=a.parentNode)h.push(a),s=a;s===(n.ownerDocument||x)&&h.push(s.defaultView||s.parentWindow||r)}for(o=0;(a=h[o++])&&!e.isPropagationStopped();)p=a,e.type=o>1?u:f.bindType||g,(c=(se.get(a,"events")||Object.create(null))[e.type]&&se.get(a,"handle"))&&c.apply(a,t),(c=l&&a[l])&&c.apply&&oe(a)&&(e.result=c.apply(a,t),!1===e.result&&e.preventDefault());return e.type=g,i||e.isDefaultPrevented()||f._default&&!1!==f._default.apply(h.pop(),t)||!oe(n)||l&&y(n[g])&&!m(n)&&((s=n[l])&&(n[l]=null),S.event.triggered=g,e.isPropagationStopped()&&p.addEventListener(g,Ht),n[g](),e.isPropagationStopped()&&p.removeEventListener(g,Ht),S.event.triggered=void 0,s&&(n[l]=s)),e.result}},simulate:function(e,t,n){var r=S.extend(new S.Event,n,{type:e,isSimulated:!0});S.event.trigger(r,null,t)}}),S.fn.extend({trigger:function(e,t){return this.each((function(){S.event.trigger(e,t,this)}))},triggerHandler:function(e,t){var n=this[0];if(n)return S.event.trigger(e,t,n,!0)}});var Ot=/\[\]$/,Pt=/\r?\n/g,Rt=/^(?:submit|button|image|reset|file)$/i,Mt=/^(?:input|select|textarea|keygen)/i;function It(e,t,n,r){var i;if(Array.isArray(t))S.each(t,(function(t,i){n||Ot.test(e)?r(e,i):It(e+"["+("object"==typeof i&&null!=i?t:"")+"]",i,n,r)}));else if(n||"object"!==T(t))r(e,t);else for(i in t)It(e+"["+i+"]",t[i],n,r)}S.param=function(e,t){var n,r=[],i=function(e,t){var n=y(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(null==e)return"";if(Array.isArray(e)||e.jquery&&!S.isPlainObject(e))S.each(e,(function(){i(this.name,this.value)}));else for(n in e)It(n,e[n],t,i);return r.join("&")},S.fn.extend({serialize:function(){return S.param(this.serializeArray())},serializeArray:function(){return this.map((function(){var e=S.prop(this,"elements");return e?S.makeArray(e):this})).filter((function(){var e=this.type;return this.name&&!S(this).is(":disabled")&&Mt.test(this.nodeName)&&!Rt.test(e)&&(this.checked||!Se.test(e))})).map((function(e,t){var n=S(this).val();return null==n?null:Array.isArray(n)?S.map(n,(function(e){return{name:t.name,value:e.replace(Pt,"\r\n")}})):{name:t.name,value:n.replace(Pt,"\r\n")}})).get()}});var Wt=/%20/g,Ft=/#.*$/,$t=/([?&])_=[^&]*/,_t=/^(.*?):[ \t]*([^\r\n]*)$/gm,Bt=/^(?:GET|HEAD)$/,Xt=/^\/\//,Ut={},zt={},Vt="*/".concat("*"),Gt=x.createElement("a");function Yt(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var r,i=0,o=t.toLowerCase().match(V)||[];if(y(n))for(;r=o[i++];)"+"===r[0]?(r=r.slice(1)||"*",(e[r]=e[r]||[]).unshift(n)):(e[r]=e[r]||[]).push(n)}}function Qt(e,t,n,r){var i={},o=e===zt;function a(s){var u;return i[s]=!0,S.each(e[s]||[],(function(e,s){var l=s(t,n,r);return"string"!=typeof l||o||i[l]?o?!(u=l):void 0:(t.dataTypes.unshift(l),a(l),!1)})),u}return a(t.dataTypes[0])||!i["*"]&&a("*")}function Jt(e,t){var n,r,i=S.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&S.extend(!0,e,r),e}Gt.href=Dt.href,S.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Dt.href,type:"GET",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(Dt.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Vt,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":S.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?Jt(Jt(e,S.ajaxSettings),t):Jt(S.ajaxSettings,e)},ajaxPrefilter:Yt(Ut),ajaxTransport:Yt(zt),ajax:function(e,t){"object"==typeof e&&(t=e,e=void 0),t=t||{};var n,i,o,a,s,u,l,c,f,p,d=S.ajaxSetup({},t),h=d.context||d,g=d.context&&(h.nodeType||h.jquery)?S(h):S.event,v=S.Deferred(),y=S.Callbacks("once memory"),m=d.statusCode||{},b={},w={},T="canceled",C={readyState:0,getResponseHeader:function(e){var t;if(l){if(!a)for(a={};t=_t.exec(o);)a[t[1].toLowerCase()+" "]=(a[t[1].toLowerCase()+" "]||[]).concat(t[2]);t=a[e.toLowerCase()+" "]}return null==t?null:t.join(", ")},getAllResponseHeaders:function(){return l?o:null},setRequestHeader:function(e,t){return null==l&&(e=w[e.toLowerCase()]=w[e.toLowerCase()]||e,b[e]=t),this},overrideMimeType:function(e){return null==l&&(d.mimeType=e),this},statusCode:function(e){var t;if(e)if(l)C.always(e[C.status]);else for(t in e)m[t]=[m[t],e[t]];return this},abort:function(e){var t=e||T;return n&&n.abort(t),k(0,t),this}};if(v.promise(C),d.url=((e||d.url||Dt.href)+"").replace(Xt,Dt.protocol+"//"),d.type=t.method||t.type||d.method||d.type,d.dataTypes=(d.dataType||"*").toLowerCase().match(V)||[""],null==d.crossDomain){u=x.createElement("a");try{u.href=d.url,u.href=u.href,d.crossDomain=Gt.protocol+"//"+Gt.host!=u.protocol+"//"+u.host}catch(e){d.crossDomain=!0}}if(d.data&&d.processData&&"string"!=typeof d.data&&(d.data=S.param(d.data,d.traditional)),Qt(Ut,d,t,C),l)return C;for(f in(c=S.event&&d.global)&&0==S.active++&&S.event.trigger("ajaxStart"),d.type=d.type.toUpperCase(),d.hasContent=!Bt.test(d.type),i=d.url.replace(Ft,""),d.hasContent?d.data&&d.processData&&0===(d.contentType||"").indexOf("application/x-www-form-urlencoded")&&(d.data=d.data.replace(Wt,"+")):(p=d.url.slice(i.length),d.data&&(d.processData||"string"==typeof d.data)&&(i+=(qt.test(i)?"&":"?")+d.data,delete d.data),!1===d.cache&&(i=i.replace($t,"$1"),p=(qt.test(i)?"&":"?")+"_="+Nt.guid+++p),d.url=i+p),d.ifModified&&(S.lastModified[i]&&C.setRequestHeader("If-Modified-Since",S.lastModified[i]),S.etag[i]&&C.setRequestHeader("If-None-Match",S.etag[i])),(d.data&&d.hasContent&&!1!==d.contentType||t.contentType)&&C.setRequestHeader("Content-Type",d.contentType),C.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+("*"!==d.dataTypes[0]?", "+Vt+"; q=0.01":""):d.accepts["*"]),d.headers)C.setRequestHeader(f,d.headers[f]);if(d.beforeSend&&(!1===d.beforeSend.call(h,C,d)||l))return C.abort();if(T="abort",y.add(d.complete),C.done(d.success),C.fail(d.error),n=Qt(zt,d,t,C)){if(C.readyState=1,c&&g.trigger("ajaxSend",[C,d]),l)return C;d.async&&d.timeout>0&&(s=r.setTimeout((function(){C.abort("timeout")}),d.timeout));try{l=!1,n.send(b,k)}catch(e){if(l)throw e;k(-1,e)}}else k(-1,"No Transport");function k(e,t,a,u){var f,p,x,b,w,T=t;l||(l=!0,s&&r.clearTimeout(s),n=void 0,o=u||"",C.readyState=e>0?4:0,f=e>=200&&e<300||304===e,a&&(b=function(e,t,n){for(var r,i,o,a,s=e.contents,u=e.dataTypes;"*"===u[0];)u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in s)if(s[i]&&s[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+" "+u[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==u[0]&&u.unshift(o),n[o]}(d,C,a)),!f&&S.inArray("script",d.dataTypes)>-1&&S.inArray("json",d.dataTypes)<0&&(d.converters["text script"]=function(){}),b=function(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];for(o=c.shift();o;)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(!(a=l[u+" "+o]||l["* "+o]))for(i in l)if((s=i.split(" "))[1]===o&&(a=l[u+" "+s[0]]||l["* "+s[0]])){!0===a?a=l[i]:!0!==l[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e.throws)t=a(t);else try{t=a(t)}catch(e){return{state:"parsererror",error:a?e:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}(d,b,C,f),f?(d.ifModified&&((w=C.getResponseHeader("Last-Modified"))&&(S.lastModified[i]=w),(w=C.getResponseHeader("etag"))&&(S.etag[i]=w)),204===e||"HEAD"===d.type?T="nocontent":304===e?T="notmodified":(T=b.state,p=b.data,f=!(x=b.error))):(x=T,!e&&T||(T="error",e<0&&(e=0))),C.status=e,C.statusText=(t||T)+"",f?v.resolveWith(h,[p,T,C]):v.rejectWith(h,[C,T,x]),C.statusCode(m),m=void 0,c&&g.trigger(f?"ajaxSuccess":"ajaxError",[C,d,f?p:x]),y.fireWith(h,[C,T]),c&&(g.trigger("ajaxComplete",[C,d]),--S.active||S.event.trigger("ajaxStop")))}return C},getJSON:function(e,t,n){return S.get(e,t,n,"json")},getScript:function(e,t){return S.get(e,void 0,t,"script")}}),S.each(["get","post"],(function(e,t){S[t]=function(e,n,r,i){return y(n)&&(i=i||r,r=n,n=void 0),S.ajax(S.extend({url:e,type:t,dataType:i,data:n,success:r},S.isPlainObject(e)&&e))}})),S.ajaxPrefilter((function(e){var t;for(t in e.headers)"content-type"===t.toLowerCase()&&(e.contentType=e.headers[t]||"")})),S._evalUrl=function(e,t,n){return S.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,converters:{"text script":function(){}},dataFilter:function(e){S.globalEval(e,t,n)}})},S.fn.extend({wrapAll:function(e){var t;return this[0]&&(y(e)&&(e=e.call(this[0])),t=S(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map((function(){for(var e=this;e.firstElementChild;)e=e.firstElementChild;return e})).append(this)),this},wrapInner:function(e){return y(e)?this.each((function(t){S(this).wrapInner(e.call(this,t))})):this.each((function(){var t=S(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)}))},wrap:function(e){var t=y(e);return this.each((function(n){S(this).wrapAll(t?e.call(this,n):e)}))},unwrap:function(e){return this.parent(e).not("body").each((function(){S(this).replaceWith(this.childNodes)})),this}}),S.expr.pseudos.hidden=function(e){return!S.expr.pseudos.visible(e)},S.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},S.ajaxSettings.xhr=function(){try{return new r.XMLHttpRequest}catch(e){}};var Kt={0:200,1223:204},Zt=S.ajaxSettings.xhr();v.cors=!!Zt&&"withCredentials"in Zt,v.ajax=Zt=!!Zt,S.ajaxTransport((function(e){var t,n;if(v.cors||Zt&&!e.crossDomain)return{send:function(i,o){var a,s=e.xhr();if(s.open(e.type,e.url,e.async,e.username,e.password),e.xhrFields)for(a in e.xhrFields)s[a]=e.xhrFields[a];for(a in e.mimeType&&s.overrideMimeType&&s.overrideMimeType(e.mimeType),e.crossDomain||i["X-Requested-With"]||(i["X-Requested-With"]="XMLHttpRequest"),i)s.setRequestHeader(a,i[a]);t=function(e){return function(){t&&(t=n=s.onload=s.onerror=s.onabort=s.ontimeout=s.onreadystatechange=null,"abort"===e?s.abort():"error"===e?"number"!=typeof s.status?o(0,"error"):o(s.status,s.statusText):o(Kt[s.status]||s.status,s.statusText,"text"!==(s.responseType||"text")||"string"!=typeof s.responseText?{binary:s.response}:{text:s.responseText},s.getAllResponseHeaders()))}},s.onload=t(),n=s.onerror=s.ontimeout=t("error"),void 0!==s.onabort?s.onabort=n:s.onreadystatechange=function(){4===s.readyState&&r.setTimeout((function(){t&&n()}))},t=t("abort");try{s.send(e.hasContent&&e.data||null)}catch(e){if(t)throw e}},abort:function(){t&&t()}}})),S.ajaxPrefilter((function(e){e.crossDomain&&(e.contents.script=!1)})),S.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return S.globalEval(e),e}}}),S.ajaxPrefilter("script",(function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")})),S.ajaxTransport("script",(function(e){var t,n;if(e.crossDomain||e.scriptAttrs)return{send:function(r,i){t=S(" + + + + + diff --git a/_static/jupyter-lite.ipynb b/_static/jupyter-lite.ipynb new file mode 100644 index 0000000..c4a4922 --- /dev/null +++ b/_static/jupyter-lite.ipynb @@ -0,0 +1,55 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "dea14a34-4803-44da-ae14-88b2c87a6f12", + "metadata": {}, + "source": [ + "# jupyter-lite.ipynb\n", + "\n", + "This notebook is the preferred source of site-specific runtime [configuration](https://jupyterlite.readthedocs.io/en/latest/configuring.html) for a JupyterLite app, and will override any configuration in [`jupyter-lite.json`](./jupyter-lite.json)." + ] + }, + { + "cell_type": "markdown", + "id": "6d19715a-0a8c-4600-9ff1-e82ba667e2d3", + "metadata": {}, + "source": [ + "## Editing Configuration\n", + "\n", + "The configuration is stored in this Notebook's metadata under the `jupyter-lite` key. To edit the configuration in JupyterLab.\n", + "\n", + "- open the _Property Inspector_ sidebar\n", + "- expand the _Advanced Tools_ section\n", + "- edit the `jupyter-lite` metadata sub-key\n", + "- press the \"check\" icon\n", + "- save the notebook" + ] + } + ], + "metadata": { + "jupyter-lite": { + "jupyter-config-data": {}, + "jupyter-lite-schema-version": 0 + }, + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.10" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/_static/jupyter-lite.json b/_static/jupyter-lite.json new file mode 100644 index 0000000..ce3239b --- /dev/null +++ b/_static/jupyter-lite.json @@ -0,0 +1,342 @@ +{ + "jupyter-config-data": { + "appName": "JupyterLite", + "appUrl": "./lab", + "appVersion": "0.1.2", + "baseUrl": "./", + "defaultKernelName": "python", + "faviconUrl": "./lab/favicon.ico", + "federated_extensions": [ + { + "extension": "./extension", + "liteExtension": false, + "load": "static/remoteEntry.98b8a827bfc5f86e95d2.js", + "name": "@jupyter-widgets/jupyterlab-manager" + }, + { + "extension": "./extension", + "liteExtension": true, + "load": "static/remoteEntry.e75039073a726197e847.js", + "name": "@jupyterlite/javascript-kernel-extension" + }, + { + "extension": "./extension", + "liteExtension": true, + "load": "static/remoteEntry.1c8491cf58b5de6123d1.js", + "name": "@jupyterlite/pyodide-kernel-extension" + }, + { + "extension": "./extension", + "liteExtension": false, + "load": "static/remoteEntry.ade722230aea9b7793b2.js", + "name": "bqplot" + }, + { + "extension": "./extension", + "liteExtension": false, + "load": "static/remoteEntry.61e8508824209171af0b.js", + "name": "ipydatagrid" + }, + { + "extension": "./extension", + "liteExtension": false, + "load": "static/remoteEntry.1c9b77c557d03a2498f4.js", + "name": "ipylab", + "style": "./style" + }, + { + "extension": "./extension", + "liteExtension": false, + "load": "static/remoteEntry.aa1060b2d1221f8e5688.js", + "name": "jupyterlab_pygments", + "style": "./style" + } + ], + "fileTypes": { + "css": { + "extensions": [ + ".css" + ], + "fileFormat": "text", + "mimeTypes": [ + "text/css" + ], + "name": "css" + }, + "csv": { + "extensions": [ + ".csv" + ], + "fileFormat": "text", + "mimeTypes": [ + "text/csv" + ], + "name": "csv" + }, + "fasta": { + "extensions": [ + ".fasta" + ], + "fileFormat": "text", + "mimeTypes": [ + "text/plain" + ], + "name": "fasta" + }, + "geojson": { + "extensions": [ + ".geojson" + ], + "fileFormat": "json", + "mimeTypes": [ + "application/geo+json" + ], + "name": "geojson" + }, + "gzip": { + "extensions": [ + ".tgz", + ".gz", + ".gzip" + ], + "fileFormat": "base64", + "mimeTypes": [ + "application/gzip" + ], + "name": "gzip" + }, + "html": { + "extensions": [ + ".html" + ], + "fileFormat": "text", + "mimeTypes": [ + "text/html" + ], + "name": "html" + }, + "ical": { + "extensions": [ + ".ical", + ".ics", + ".ifb", + ".icalendar" + ], + "fileFormat": "text", + "mimeTypes": [ + "text/calendar" + ], + "name": "ical" + }, + "ico": { + "extensions": [ + ".ico" + ], + "fileFormat": "base64", + "mimeTypes": [ + "image/x-icon" + ], + "name": "ico" + }, + "ipynb": { + "extensions": [ + ".ipynb" + ], + "fileFormat": "json", + "mimeTypes": [ + "application/x-ipynb+json" + ], + "name": "ipynb" + }, + "jpeg": { + "extensions": [ + ".jpeg", + ".jpg" + ], + "fileFormat": "base64", + "mimeTypes": [ + "image/jpeg" + ], + "name": "jpeg" + }, + "js": { + "extensions": [ + ".js", + ".mjs" + ], + "fileFormat": "text", + "mimeTypes": [ + "application/javascript" + ], + "name": "js" + }, + "jsmap": { + "extensions": [ + ".map" + ], + "fileFormat": "json", + "mimeTypes": [ + "application/json" + ], + "name": "jsmap" + }, + "json": { + "extensions": [ + ".json" + ], + "fileFormat": "json", + "mimeTypes": [ + "application/json" + ], + "name": "json" + }, + "manifest": { + "extensions": [ + ".manifest" + ], + "fileFormat": "text", + "mimeTypes": [ + "text/cache-manifest" + ], + "name": "manifest" + }, + "md": { + "extensions": [ + ".md", + ".markdown" + ], + "fileFormat": "text", + "mimeTypes": [ + "text/markdown" + ], + "name": "md" + }, + "pdf": { + "extensions": [ + ".pdf" + ], + "fileFormat": "base64", + "mimeTypes": [ + "application/pdf" + ], + "name": "pdf" + }, + "plain": { + "extensions": [ + ".txt" + ], + "fileFormat": "text", + "mimeTypes": [ + "text/plain" + ], + "name": "plain" + }, + "png": { + "extensions": [ + ".png" + ], + "fileFormat": "base64", + "mimeTypes": [ + "image/png" + ], + "name": "png" + }, + "py": { + "extensions": [ + ".py" + ], + "fileFormat": "text", + "mimeTypes": [ + "text/x-python", + "application/x-python-code" + ], + "name": "py" + }, + "svg": { + "extensions": [ + ".svg" + ], + "fileFormat": "text", + "mimeTypes": [ + "image/svg+xml" + ], + "name": "svg" + }, + "toml": { + "extensions": [ + ".toml" + ], + "fileFormat": "text", + "mimeTypes": [ + "application/toml" + ], + "name": "toml" + }, + "vue": { + "extensions": [ + ".vue" + ], + "fileFormat": "text", + "mimeTypes": [ + "text/plain" + ], + "name": "vue" + }, + "wasm": { + "extensions": [ + ".wasm" + ], + "fileFormat": "base64", + "mimeTypes": [ + "application/wasm" + ], + "name": "wasm" + }, + "wheel": { + "extensions": [ + ".whl" + ], + "fileFormat": "base64", + "mimeTypes": [ + "octet/stream", + "application/x-wheel+zip" + ], + "name": "wheel" + }, + "xml": { + "extensions": [ + ".xml" + ], + "fileFormat": "text", + "mimeTypes": [ + "application/xml" + ], + "name": "xml" + }, + "yaml": { + "extensions": [ + ".yaml", + ".yml" + ], + "fileFormat": "text", + "mimeTypes": [ + "application/x-yaml" + ], + "name": "yaml" + } + }, + "fullLabextensionsUrl": "./extensions", + "fullMathjaxUrl": "https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js", + "fullStaticUrl": "./build", + "licensesUrl": "./lab/api/licenses", + "litePluginSettings": { + "@jupyterlite/pyodide-kernel-extension:kernel": { + "pipliteUrls": [ + "./extensions/@jupyterlite/pyodide-kernel-extension/static/pypi/all.json?sha256=5e9ce9e49c39bfa29aa60dbee0e272614a3111b97116f8902630cf36bdc58634" + ] + } + }, + "mathjaxConfig": "TeX-AMS_CHTML-full,Safe" + }, + "jupyter-lite-schema-version": 0 +} \ No newline at end of file diff --git a/_static/jupyterlite.schema.v0.json b/_static/jupyterlite.schema.v0.json new file mode 100644 index 0000000..288793c --- /dev/null +++ b/_static/jupyterlite.schema.v0.json @@ -0,0 +1,331 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema", + "$id": "https://jupyterlite.readthedocs.org/en/latest/reference/schema-v0.html#", + "title": "JupyterLite Schema v0", + "description": "a schema for user-serviceable customizaton of a JupyterLite", + "$ref": "#/definitions/top", + "definitions": { + "top": { + "title": "JupyterLite Configuration", + "description": "a user-serviceable file for customizing a JupyterLite site", + "properties": { + "jupyter-lite-schema-version": { + "type": "integer", + "description": "version of the schema to which the instance conforms", + "enum": [0] + }, + "jupyter-config-data": { + "$ref": "#/definitions/jupyter-config-data" + } + } + }, + "jupyterlab-settings-overrides": { + "title": "JupyterLab Settings Overrides", + "description": "A map of config objects keyed by `@org/pkg:plugin` which override the default settings. See https://jupyterlab.readthedocs.io/en/stable/user/directories.html#overridesjson", + "type": "object", + "patternProperties": { + "^(@[a-z0-9-~][a-z0-9-._~]*/)?[a-z0-9-~][a-z0-9-._~]*:(.*)$": { + "description": "A valid configuration which must conform to the plugin's defined schema", + "type": "object" + } + } + }, + "jupyter-config-data": { + "title": "Jupyter Config Data", + "description": "contents of a jupyter-config-data ` + + + diff --git a/_static/lab/jupyter-lite.ipynb b/_static/lab/jupyter-lite.ipynb new file mode 100644 index 0000000..c4a4922 --- /dev/null +++ b/_static/lab/jupyter-lite.ipynb @@ -0,0 +1,55 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "dea14a34-4803-44da-ae14-88b2c87a6f12", + "metadata": {}, + "source": [ + "# jupyter-lite.ipynb\n", + "\n", + "This notebook is the preferred source of site-specific runtime [configuration](https://jupyterlite.readthedocs.io/en/latest/configuring.html) for a JupyterLite app, and will override any configuration in [`jupyter-lite.json`](./jupyter-lite.json)." + ] + }, + { + "cell_type": "markdown", + "id": "6d19715a-0a8c-4600-9ff1-e82ba667e2d3", + "metadata": {}, + "source": [ + "## Editing Configuration\n", + "\n", + "The configuration is stored in this Notebook's metadata under the `jupyter-lite` key. To edit the configuration in JupyterLab.\n", + "\n", + "- open the _Property Inspector_ sidebar\n", + "- expand the _Advanced Tools_ section\n", + "- edit the `jupyter-lite` metadata sub-key\n", + "- press the \"check\" icon\n", + "- save the notebook" + ] + } + ], + "metadata": { + "jupyter-lite": { + "jupyter-config-data": {}, + "jupyter-lite-schema-version": 0 + }, + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.10" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/_static/lab/jupyter-lite.json b/_static/lab/jupyter-lite.json new file mode 100644 index 0000000..222730a --- /dev/null +++ b/_static/lab/jupyter-lite.json @@ -0,0 +1,7 @@ +{ + "jupyter-lite-schema-version": 0, + "jupyter-config-data": { + "settingsUrl": "../build/schemas", + "themesUrl": "./build/themes" + } +} diff --git a/_static/lab/package.json b/_static/lab/package.json new file mode 100644 index 0000000..87c5deb --- /dev/null +++ b/_static/lab/package.json @@ -0,0 +1,265 @@ +{ + "name": "@jupyterlite/app-lab", + "version": "0.1.2", + "private": true, + "resolutions": { + "@jupyterlab/application": "~3.5.3", + "@jupyterlab/application-extension": "~3.5.3", + "@jupyterlab/apputils": "~3.5.3", + "@jupyterlab/apputils-extension": "~3.5.3", + "@jupyterlab/attachments": "~3.5.3", + "@jupyterlab/cell-toolbar": "~3.5.3", + "@jupyterlab/cell-toolbar-extension": "~3.5.3", + "@jupyterlab/celltags-extension": "~3.5.3", + "@jupyterlab/codeeditor": "~3.5.3", + "@jupyterlab/codemirror": "~3.5.3", + "@jupyterlab/codemirror-extension": "~3.5.3", + "@jupyterlab/completer": "~3.5.3", + "@jupyterlab/completer-extension": "~3.5.3", + "@jupyterlab/console": "~3.5.3", + "@jupyterlab/console-extension": "~3.5.3", + "@jupyterlab/coreutils": "~5.5.3", + "@jupyterlab/csvviewer-extension": "~3.5.3", + "@jupyterlab/docmanager": "~3.5.3", + "@jupyterlab/docmanager-extension": "~3.5.3", + "@jupyterlab/docprovider": "~3.5.3", + "@jupyterlab/documentsearch": "~3.5.3", + "@jupyterlab/documentsearch-extension": "~3.5.3", + "@jupyterlab/filebrowser": "~3.5.3", + "@jupyterlab/filebrowser-extension": "~3.5.3", + "@jupyterlab/fileeditor": "~3.5.3", + "@jupyterlab/fileeditor-extension": "~3.5.3", + "@jupyterlab/help-extension": "~3.5.3", + "@jupyterlab/htmlviewer-extension": "~3.5.3", + "@jupyterlab/imageviewer": "~3.5.3", + "@jupyterlab/imageviewer-extension": "~3.5.3", + "@jupyterlab/inspector": "~3.5.3", + "@jupyterlab/inspector-extension": "~3.5.3", + "@jupyterlab/javascript-extension": "~3.5.3", + "@jupyterlab/json-extension": "~3.5.3", + "@jupyterlab/launcher": "~3.5.3", + "@jupyterlab/launcher-extension": "~3.5.3", + "@jupyterlab/logconsole": "~3.5.3", + "@jupyterlab/logconsole-extension": "~3.5.3", + "@jupyterlab/mainmenu": "~3.5.3", + "@jupyterlab/mainmenu-extension": "~3.5.3", + "@jupyterlab/markdownviewer": "~3.5.3", + "@jupyterlab/markdownviewer-extension": "~3.5.3", + "@jupyterlab/mathjax2-extension": "~3.5.3", + "@jupyterlab/notebook": "~3.5.3", + "@jupyterlab/notebook-extension": "~3.5.3", + "@jupyterlab/outputarea": "~3.5.3", + "@jupyterlab/pdf-extension": "~3.5.3", + "@jupyterlab/rendermime": "~3.5.3", + "@jupyterlab/rendermime-extension": "~3.5.3", + "@jupyterlab/rendermime-interfaces": "~3.5.3", + "@jupyterlab/running-extension": "~3.5.3", + "@jupyterlab/services": "~6.5.3", + "@jupyterlab/settingeditor": "~3.5.3", + "@jupyterlab/settingeditor-extension": "~3.5.3", + "@jupyterlab/settingregistry": "~3.5.3", + "@jupyterlab/shared-models": "~3.5.3", + "@jupyterlab/shortcuts-extension": "~3.5.3", + "@jupyterlab/statedb": "~3.5.3", + "@jupyterlab/statusbar": "~3.5.3", + "@jupyterlab/statusbar-extension": "~3.5.3", + "@jupyterlab/theme-dark-extension": "~3.5.3", + "@jupyterlab/theme-light-extension": "~3.5.3", + "@jupyterlab/toc-extension": "~5.5.3", + "@jupyterlab/tooltip": "~3.5.3", + "@jupyterlab/tooltip-extension": "~3.5.3", + "@jupyterlab/translation": "~3.5.3", + "@jupyterlab/translation-extension": "~3.5.3", + "@jupyterlab/ui-components": "~3.5.3", + "@jupyterlab/ui-components-extension": "~3.5.3", + "@jupyterlab/vega5-extension": "~3.5.3", + "@jupyterlite/application-extension": "~0.1.2", + "@jupyterlite/contents": "~0.1.2", + "@jupyterlite/iframe-extension": "~0.1.2", + "@jupyterlite/kernel": "~0.1.2", + "@jupyterlite/licenses": "~0.1.2", + "@jupyterlite/localforage": "~0.1.2", + "@jupyterlite/server": "~0.1.2", + "@jupyterlite/server-extension": "~0.1.2", + "@jupyterlite/types": "~0.1.2", + "@jupyterlite/ui-components": "~0.1.2", + "@lumino/algorithm": "~1.9.2", + "@lumino/application": "~1.31.3", + "@lumino/commands": "~1.21.1", + "@lumino/coreutils": "~1.12.1", + "@lumino/disposable": "~1.10.4", + "@lumino/domutils": "~1.8.2", + "@lumino/dragdrop": "~1.14.4", + "@lumino/messaging": "~1.10.3", + "@lumino/properties": "~1.8.2", + "@lumino/signaling": "~1.11.1", + "@lumino/virtualdom": "~1.14.3", + "@lumino/widgets": "~1.37.1", + "es6-promise": "^4.2.8", + "react": "^17.0.2", + "react-dom": "^17.0.2", + "yjs": "^13.5.43" + }, + "dependencies": { + "@jupyterlab/application": "~3.5.3", + "@jupyterlab/application-extension": "~3.5.3", + "@jupyterlab/apputils-extension": "~3.5.3", + "@jupyterlab/attachments": "~3.5.3", + "@jupyterlab/cell-toolbar-extension": "~3.5.3", + "@jupyterlab/celltags-extension": "~3.5.3", + "@jupyterlab/codemirror-extension": "~3.5.3", + "@jupyterlab/completer-extension": "~3.5.3", + "@jupyterlab/console-extension": "~3.5.3", + "@jupyterlab/csvviewer-extension": "~3.5.3", + "@jupyterlab/docmanager-extension": "~3.5.3", + "@jupyterlab/documentsearch-extension": "~3.5.3", + "@jupyterlab/filebrowser-extension": "~3.5.3", + "@jupyterlab/fileeditor-extension": "~3.5.3", + "@jupyterlab/help-extension": "~3.5.3", + "@jupyterlab/htmlviewer-extension": "~3.5.3", + "@jupyterlab/imageviewer-extension": "~3.5.3", + "@jupyterlab/inspector-extension": "~3.5.3", + "@jupyterlab/javascript-extension": "~3.5.3", + "@jupyterlab/json-extension": "~3.5.3", + "@jupyterlab/launcher-extension": "~3.5.3", + "@jupyterlab/logconsole-extension": "~3.5.3", + "@jupyterlab/mainmenu-extension": "~3.5.3", + "@jupyterlab/markdownviewer-extension": "~3.5.3", + "@jupyterlab/mathjax2-extension": "~3.5.3", + "@jupyterlab/notebook-extension": "~3.5.3", + "@jupyterlab/pdf-extension": "~3.5.3", + "@jupyterlab/rendermime-extension": "~3.5.3", + "@jupyterlab/running-extension": "~3.5.3", + "@jupyterlab/settingeditor-extension": "~3.5.3", + "@jupyterlab/shortcuts-extension": "~3.5.3", + "@jupyterlab/statusbar-extension": "~3.5.3", + "@jupyterlab/theme-dark-extension": "~3.5.3", + "@jupyterlab/theme-light-extension": "~3.5.3", + "@jupyterlab/toc-extension": "~5.5.3", + "@jupyterlab/tooltip-extension": "~3.5.3", + "@jupyterlab/translation-extension": "~3.5.3", + "@jupyterlab/ui-components-extension": "~3.5.3", + "@jupyterlab/vega5-extension": "~3.5.3", + "@jupyterlite/application-extension": "^0.1.2", + "@jupyterlite/iframe-extension": "^0.1.2", + "@jupyterlite/licenses": "^0.1.2", + "@jupyterlite/localforage": "^0.1.2", + "@jupyterlite/server": "^0.1.2", + "@jupyterlite/server-extension": "^0.1.2", + "@jupyterlite/types": "^0.1.2", + "@jupyterlite/ui-components": "^0.1.2", + "es6-promise": "~4.2.8", + "react": "^17.0.1", + "react-dom": "^17.0.1", + "yjs": "^13.5.6" + }, + "jupyterlab": { + "extensions": [ + "@jupyterlab/application-extension", + "@jupyterlab/apputils-extension", + "@jupyterlab/celltags-extension", + "@jupyterlab/cell-toolbar-extension", + "@jupyterlab/codemirror-extension", + "@jupyterlab/completer-extension", + "@jupyterlab/console-extension", + "@jupyterlab/csvviewer-extension", + "@jupyterlab/docmanager-extension", + "@jupyterlab/documentsearch-extension", + "@jupyterlab/filebrowser-extension", + "@jupyterlab/fileeditor-extension", + "@jupyterlab/help-extension", + "@jupyterlab/htmlviewer-extension", + "@jupyterlab/imageviewer-extension", + "@jupyterlab/inspector-extension", + "@jupyterlab/json-extension", + "@jupyterlab/javascript-extension", + "@jupyterlab/launcher-extension", + "@jupyterlab/logconsole-extension", + "@jupyterlab/mainmenu-extension", + "@jupyterlab/markdownviewer-extension", + "@jupyterlab/mathjax2-extension", + "@jupyterlab/notebook-extension", + "@jupyterlab/pdf-extension", + "@jupyterlab/rendermime-extension", + "@jupyterlab/running-extension", + "@jupyterlab/settingeditor-extension", + "@jupyterlab/shortcuts-extension", + "@jupyterlab/statusbar-extension", + "@jupyterlab/theme-dark-extension", + "@jupyterlab/theme-light-extension", + "@jupyterlab/toc-extension", + "@jupyterlab/tooltip-extension", + "@jupyterlab/translation-extension", + "@jupyterlab/ui-components-extension", + "@jupyterlab/vega5-extension", + "@jupyterlite/application-extension", + "@jupyterlite/iframe-extension", + "@jupyterlite/server-extension" + ], + "singletonPackages": [ + "@jupyterlab/application", + "@jupyterlab/apputils", + "@jupyterlab/cell-toolbar", + "@jupyterlab/codeeditor", + "@jupyterlab/codemirror", + "@jupyterlab/completer", + "@jupyterlab/console", + "@jupyterlab/coreutils", + "@jupyterlab/docmanager", + "@jupyterlab/docprovider", + "@jupyterlab/documentsearch", + "@jupyterlab/filebrowser", + "@jupyterlab/fileeditor", + "@jupyterlab/imageviewer", + "@jupyterlab/inspector", + "@jupyterlab/launcher", + "@jupyterlab/logconsole", + "@jupyterlab/mainmenu", + "@jupyterlab/markdownviewer", + "@jupyterlab/notebook", + "@jupyterlab/outputarea", + "@jupyterlab/rendermime", + "@jupyterlab/rendermime-interfaces", + "@jupyterlab/services", + "@jupyterlab/settingeditor", + "@jupyterlab/settingregistry", + "@jupyterlab/shared-models", + "@jupyterlab/statedb", + "@jupyterlab/statusbar", + "@jupyterlab/tooltip", + "@jupyterlab/translation", + "@jupyterlab/ui-components", + "@jupyterlite/contents", + "@jupyterlite/kernel", + "@jupyterlite/licenses", + "@jupyterlite/localforage", + "@jupyterlite/types", + "@lumino/algorithm", + "@lumino/application", + "@lumino/commands", + "@lumino/coreutils", + "@lumino/disposable", + "@lumino/domutils", + "@lumino/dragdrop", + "@lumino/messaging", + "@lumino/properties", + "@lumino/signaling", + "@lumino/virtualdom", + "@lumino/widgets", + "react", + "react-dom", + "yjs" + ], + "mimeExtensions": { + "@jupyterlab/javascript-extension": "", + "@jupyterlab/json-extension": "", + "@jupyterlab/vega5-extension": "" + }, + "linkedPackages": {} + }, + "jupyterlite": { + "pages": [ + "index" + ] + } +} diff --git a/_static/lab/tree/index.html b/_static/lab/tree/index.html new file mode 100644 index 0000000..961e460 --- /dev/null +++ b/_static/lab/tree/index.html @@ -0,0 +1,14 @@ + + + + + + diff --git a/_static/lab/workspaces/index.html b/_static/lab/workspaces/index.html new file mode 100644 index 0000000..1358c21 --- /dev/null +++ b/_static/lab/workspaces/index.html @@ -0,0 +1,14 @@ + + + + + + diff --git a/_static/manifest.webmanifest b/_static/manifest.webmanifest new file mode 100644 index 0000000..3077e6f --- /dev/null +++ b/_static/manifest.webmanifest @@ -0,0 +1,32 @@ +{ + "short_name": "JupyterLite", + "name": "JupyterLite", + "description": "WASM powered JupyterLite app", + "icons": [ + { + "src": "./icon-120x120.png", + "type": "image/png", + "sizes": "120x120" + }, { + "src": "./icon-512x512.png", + "type": "image/png", + "sizes": "512x512" + } + ], + "start_url": "./", + "background_color": "#fff", + "display": "standalone", + "scope": "./", + "shortcuts" : [ + { + "name": "JupyterLite", + "url": "/lab", + "description": "The main JupyterLite application" + }, + { + "name": "Replite", + "url": "/repl?toolbar=1", + "description": "A single-cell interface for JupyterLite" + } + ] +} diff --git a/_static/package.json b/_static/package.json new file mode 100644 index 0000000..c81228a --- /dev/null +++ b/_static/package.json @@ -0,0 +1,50 @@ +{ + "name": "@jupyterlite/app", + "version": "0.1.2", + "private": true, + "homepage": "https://github.com/jupyterlite/jupyterlite", + "bugs": { + "url": "https://github.com/jupyterlite/jupyterlite/issues" + }, + "repository": { + "type": "git", + "url": "https://github.com/jupyterlite/jupyterlite" + }, + "license": "BSD-3-Clause", + "author": "JupyterLite Contributors", + "scripts": { + "build": "webpack", + "build:prod": "yarn clean && yarn build --mode=production", + "clean": "rimraf build **/build", + "watch": "webpack --config webpack.config.watch.js" + }, + "devDependencies": { + "@jupyterlab/builder": "~3.5.3", + "css-loader": "^6.6.0", + "file-loader": "^6.2.0", + "fs-extra": "^9.0.1", + "glob": "^7.2.0", + "handlebars": "^4.5.3", + "html-webpack-plugin": "^5.5.0", + "ignore-loader": "^0.1.2", + "json-loader": "^0.5.7", + "mini-css-extract-plugin": "^2.5.3", + "raw-loader": "^4.0.2", + "rimraf": "^3.0.2", + "source-map-loader": "^4.0.1", + "style-loader": "^3.3.1", + "svg-url-loader": "^7.1.1", + "url-loader": "^4.1.1", + "webpack": "^5.68.0", + "webpack-bundle-analyzer": "^4.5.0", + "webpack-cli": "^4.9.2", + "webpack-merge": "^5.8.0" + }, + "jupyterlite": { + "apps": [ + "lab", + "repl", + "retro" + ] + } +} diff --git a/_static/repl/index.html b/_static/repl/index.html new file mode 100644 index 0000000..fd76c40 --- /dev/null +++ b/_static/repl/index.html @@ -0,0 +1,36 @@ + + + + JupyterLite + + + + + + + + + diff --git a/_static/repl/jupyter-lite.ipynb b/_static/repl/jupyter-lite.ipynb new file mode 100644 index 0000000..c4a4922 --- /dev/null +++ b/_static/repl/jupyter-lite.ipynb @@ -0,0 +1,55 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "dea14a34-4803-44da-ae14-88b2c87a6f12", + "metadata": {}, + "source": [ + "# jupyter-lite.ipynb\n", + "\n", + "This notebook is the preferred source of site-specific runtime [configuration](https://jupyterlite.readthedocs.io/en/latest/configuring.html) for a JupyterLite app, and will override any configuration in [`jupyter-lite.json`](./jupyter-lite.json)." + ] + }, + { + "cell_type": "markdown", + "id": "6d19715a-0a8c-4600-9ff1-e82ba667e2d3", + "metadata": {}, + "source": [ + "## Editing Configuration\n", + "\n", + "The configuration is stored in this Notebook's metadata under the `jupyter-lite` key. To edit the configuration in JupyterLab.\n", + "\n", + "- open the _Property Inspector_ sidebar\n", + "- expand the _Advanced Tools_ section\n", + "- edit the `jupyter-lite` metadata sub-key\n", + "- press the \"check\" icon\n", + "- save the notebook" + ] + } + ], + "metadata": { + "jupyter-lite": { + "jupyter-config-data": {}, + "jupyter-lite-schema-version": 0 + }, + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.10" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/_static/repl/jupyter-lite.json b/_static/repl/jupyter-lite.json new file mode 100644 index 0000000..222730a --- /dev/null +++ b/_static/repl/jupyter-lite.json @@ -0,0 +1,7 @@ +{ + "jupyter-lite-schema-version": 0, + "jupyter-config-data": { + "settingsUrl": "../build/schemas", + "themesUrl": "./build/themes" + } +} diff --git a/_static/repl/package.json b/_static/repl/package.json new file mode 100644 index 0000000..a20c215 --- /dev/null +++ b/_static/repl/package.json @@ -0,0 +1,207 @@ +{ + "name": "@jupyterlite/app-repl", + "version": "0.1.2", + "private": true, + "resolutions": { + "@jupyterlab/application": "~3.5.3", + "@jupyterlab/application-extension": "~3.5.3", + "@jupyterlab/apputils": "~3.5.3", + "@jupyterlab/apputils-extension": "~3.5.3", + "@jupyterlab/attachments": "~3.5.3", + "@jupyterlab/codeeditor": "~3.5.3", + "@jupyterlab/codemirror": "~3.5.3", + "@jupyterlab/codemirror-extension": "~3.5.3", + "@jupyterlab/completer": "~3.5.3", + "@jupyterlab/completer-extension": "~3.5.3", + "@jupyterlab/console": "~3.5.3", + "@jupyterlab/console-extension": "~3.5.3", + "@jupyterlab/coreutils": "~5.5.3", + "@jupyterlab/docmanager": "~3.5.3", + "@jupyterlab/docmanager-extension": "~3.5.3", + "@jupyterlab/docprovider": "~3.5.3", + "@jupyterlab/documentsearch": "~3.5.3", + "@jupyterlab/filebrowser": "~3.5.3", + "@jupyterlab/fileeditor": "~3.5.3", + "@jupyterlab/imageviewer": "~3.5.3", + "@jupyterlab/imageviewer-extension": "~3.5.3", + "@jupyterlab/inspector": "~3.5.3", + "@jupyterlab/inspector-extension": "~3.5.3", + "@jupyterlab/javascript-extension": "~3.5.3", + "@jupyterlab/json-extension": "~3.5.3", + "@jupyterlab/launcher": "~3.5.3", + "@jupyterlab/logconsole": "~3.5.3", + "@jupyterlab/mainmenu": "~3.5.3", + "@jupyterlab/markdownviewer": "~3.5.3", + "@jupyterlab/markdownviewer-extension": "~3.5.3", + "@jupyterlab/mathjax2-extension": "~3.5.3", + "@jupyterlab/notebook": "~3.5.3", + "@jupyterlab/outputarea": "~3.5.3", + "@jupyterlab/pdf-extension": "~3.5.3", + "@jupyterlab/rendermime": "~3.5.3", + "@jupyterlab/rendermime-extension": "~3.5.3", + "@jupyterlab/rendermime-interfaces": "~3.5.3", + "@jupyterlab/services": "~6.5.3", + "@jupyterlab/settingregistry": "~3.5.3", + "@jupyterlab/shared-models": "~3.5.3", + "@jupyterlab/shortcuts-extension": "~3.5.3", + "@jupyterlab/statedb": "~3.5.3", + "@jupyterlab/statusbar": "~3.5.3", + "@jupyterlab/theme-dark-extension": "~3.5.3", + "@jupyterlab/theme-light-extension": "~3.5.3", + "@jupyterlab/tooltip": "~3.5.3", + "@jupyterlab/tooltip-extension": "~3.5.3", + "@jupyterlab/translation": "~3.5.3", + "@jupyterlab/translation-extension": "~3.5.3", + "@jupyterlab/ui-components": "~3.5.3", + "@jupyterlab/vega5-extension": "~3.5.3", + "@jupyterlite/application": "~0.1.2", + "@jupyterlite/application-extension": "~0.1.2", + "@jupyterlite/contents": "~0.1.2", + "@jupyterlite/iframe-extension": "~0.1.2", + "@jupyterlite/kernel": "~0.1.2", + "@jupyterlite/server": "~0.1.2", + "@jupyterlite/server-extension": "~0.1.2", + "@jupyterlite/ui-components": "~0.1.2", + "@lumino/algorithm": "~1.9.2", + "@lumino/application": "~1.31.3", + "@lumino/commands": "~1.21.1", + "@lumino/coreutils": "~1.12.1", + "@lumino/disposable": "~1.10.4", + "@lumino/domutils": "~1.8.2", + "@lumino/dragdrop": "~1.14.4", + "@lumino/messaging": "~1.10.3", + "@lumino/properties": "~1.8.2", + "@lumino/signaling": "~1.11.1", + "@lumino/virtualdom": "~1.14.3", + "@lumino/widgets": "~1.37.1", + "@retrolab/application-extension": "~0.3.21", + "es6-promise": "^4.2.8", + "react": "^17.0.2", + "react-dom": "^17.0.2", + "yjs": "^13.5.43" + }, + "dependencies": { + "@jupyterlab/application": "~3.5.3", + "@jupyterlab/application-extension": "~3.5.3", + "@jupyterlab/apputils-extension": "~3.5.3", + "@jupyterlab/attachments": "~3.5.3", + "@jupyterlab/codemirror-extension": "~3.5.3", + "@jupyterlab/completer-extension": "~3.5.3", + "@jupyterlab/console-extension": "~3.5.3", + "@jupyterlab/docmanager-extension": "~3.5.3", + "@jupyterlab/imageviewer-extension": "~3.5.3", + "@jupyterlab/inspector-extension": "~3.5.3", + "@jupyterlab/javascript-extension": "~3.5.3", + "@jupyterlab/json-extension": "~3.5.3", + "@jupyterlab/markdownviewer-extension": "~3.5.3", + "@jupyterlab/mathjax2-extension": "~3.5.3", + "@jupyterlab/pdf-extension": "~3.5.3", + "@jupyterlab/rendermime-extension": "~3.5.3", + "@jupyterlab/shortcuts-extension": "~3.5.3", + "@jupyterlab/theme-dark-extension": "~3.5.3", + "@jupyterlab/theme-light-extension": "~3.5.3", + "@jupyterlab/tooltip-extension": "~3.5.3", + "@jupyterlab/translation-extension": "~3.5.3", + "@jupyterlab/vega5-extension": "~3.5.3", + "@jupyterlite/application": "^0.1.2", + "@jupyterlite/application-extension": "^0.1.2", + "@jupyterlite/iframe-extension": "^0.1.2", + "@jupyterlite/server": "^0.1.2", + "@jupyterlite/server-extension": "^0.1.2", + "@jupyterlite/ui-components": "^0.1.2", + "@retrolab/application-extension": "^0.3.21", + "es6-promise": "~4.2.8", + "react": "^17.0.1", + "react-dom": "^17.0.1", + "yjs": "^13.5.6" + }, + "jupyterlab": { + "extensions": [ + "@jupyterlab/application-extension", + "@jupyterlab/apputils-extension", + "@jupyterlab/codemirror-extension", + "@jupyterlab/completer-extension", + "@jupyterlab/console-extension", + "@jupyterlab/docmanager-extension", + "@jupyterlab/imageviewer-extension", + "@jupyterlab/inspector-extension", + "@jupyterlab/json-extension", + "@jupyterlab/javascript-extension", + "@jupyterlab/markdownviewer-extension", + "@jupyterlab/mathjax2-extension", + "@jupyterlab/pdf-extension", + "@jupyterlab/rendermime-extension", + "@jupyterlab/shortcuts-extension", + "@jupyterlab/theme-dark-extension", + "@jupyterlab/theme-light-extension", + "@jupyterlab/tooltip-extension", + "@jupyterlab/translation-extension", + "@jupyterlab/vega5-extension", + "@jupyterlite/application-extension", + "@jupyterlite/repl-extension", + "@jupyterlite/iframe-extension", + "@jupyterlite/server-extension", + "@retrolab/application-extension" + ], + "singletonPackages": [ + "@jupyterlab/application", + "@jupyterlab/apputils", + "@jupyterlab/codeeditor", + "@jupyterlab/codemirror", + "@jupyterlab/completer", + "@jupyterlab/console", + "@jupyterlab/coreutils", + "@jupyterlab/docmanager", + "@jupyterlab/docprovider", + "@jupyterlab/documentsearch", + "@jupyterlab/filebrowser", + "@jupyterlab/fileeditor", + "@jupyterlab/imageviewer", + "@jupyterlab/inspector", + "@jupyterlab/launcher", + "@jupyterlab/logconsole", + "@jupyterlab/mainmenu", + "@jupyterlab/markdownviewer", + "@jupyterlab/notebook", + "@jupyterlab/outputarea", + "@jupyterlab/rendermime", + "@jupyterlab/rendermime-interfaces", + "@jupyterlab/services", + "@jupyterlab/settingregistry", + "@jupyterlab/shared-models", + "@jupyterlab/statedb", + "@jupyterlab/statusbar", + "@jupyterlab/tooltip", + "@jupyterlab/translation", + "@jupyterlab/ui-components", + "@jupyterlite/contents", + "@jupyterlite/kernel", + "@lumino/algorithm", + "@lumino/application", + "@lumino/commands", + "@lumino/coreutils", + "@lumino/disposable", + "@lumino/domutils", + "@lumino/dragdrop", + "@lumino/messaging", + "@lumino/properties", + "@lumino/signaling", + "@lumino/virtualdom", + "@lumino/widgets", + "react", + "react-dom", + "yjs" + ], + "mimeExtensions": { + "@jupyterlab/javascript-extension": "", + "@jupyterlab/json-extension": "", + "@jupyterlab/vega5-extension": "" + }, + "linkedPackages": {} + }, + "jupyterlite": { + "pages": [ + "index" + ] + } +} diff --git a/_static/retro/consoles/favicon.ico b/_static/retro/consoles/favicon.ico new file mode 100644 index 0000000..97fcfd5 Binary files /dev/null and b/_static/retro/consoles/favicon.ico differ diff --git a/_static/retro/consoles/index.html b/_static/retro/consoles/index.html new file mode 100644 index 0000000..721c768 --- /dev/null +++ b/_static/retro/consoles/index.html @@ -0,0 +1,35 @@ + + + + JupyterLite Retro - Console + + + + + + + diff --git a/_static/retro/consoles/jupyter-lite.ipynb b/_static/retro/consoles/jupyter-lite.ipynb new file mode 100644 index 0000000..c4a4922 --- /dev/null +++ b/_static/retro/consoles/jupyter-lite.ipynb @@ -0,0 +1,55 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "dea14a34-4803-44da-ae14-88b2c87a6f12", + "metadata": {}, + "source": [ + "# jupyter-lite.ipynb\n", + "\n", + "This notebook is the preferred source of site-specific runtime [configuration](https://jupyterlite.readthedocs.io/en/latest/configuring.html) for a JupyterLite app, and will override any configuration in [`jupyter-lite.json`](./jupyter-lite.json)." + ] + }, + { + "cell_type": "markdown", + "id": "6d19715a-0a8c-4600-9ff1-e82ba667e2d3", + "metadata": {}, + "source": [ + "## Editing Configuration\n", + "\n", + "The configuration is stored in this Notebook's metadata under the `jupyter-lite` key. To edit the configuration in JupyterLab.\n", + "\n", + "- open the _Property Inspector_ sidebar\n", + "- expand the _Advanced Tools_ section\n", + "- edit the `jupyter-lite` metadata sub-key\n", + "- press the \"check\" icon\n", + "- save the notebook" + ] + } + ], + "metadata": { + "jupyter-lite": { + "jupyter-config-data": {}, + "jupyter-lite-schema-version": 0 + }, + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.10" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/_static/retro/consoles/jupyter-lite.json b/_static/retro/consoles/jupyter-lite.json new file mode 100644 index 0000000..c9b76eb --- /dev/null +++ b/_static/retro/consoles/jupyter-lite.json @@ -0,0 +1,8 @@ +{ + "jupyter-lite-schema-version": 0, + "jupyter-config-data": { + "retroPage": "consoles", + "faviconUrl": "./favicon.ico", + "fullStaticUrl": "../../build" + } +} diff --git a/_static/retro/edit/favicon.ico b/_static/retro/edit/favicon.ico new file mode 100644 index 0000000..8167018 Binary files /dev/null and b/_static/retro/edit/favicon.ico differ diff --git a/_static/retro/edit/index.html b/_static/retro/edit/index.html new file mode 100644 index 0000000..a3bfbb4 --- /dev/null +++ b/_static/retro/edit/index.html @@ -0,0 +1,35 @@ + + + + JupyterLite Retro - Edit + + + + + + + diff --git a/_static/retro/edit/jupyter-lite.ipynb b/_static/retro/edit/jupyter-lite.ipynb new file mode 100644 index 0000000..c4a4922 --- /dev/null +++ b/_static/retro/edit/jupyter-lite.ipynb @@ -0,0 +1,55 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "dea14a34-4803-44da-ae14-88b2c87a6f12", + "metadata": {}, + "source": [ + "# jupyter-lite.ipynb\n", + "\n", + "This notebook is the preferred source of site-specific runtime [configuration](https://jupyterlite.readthedocs.io/en/latest/configuring.html) for a JupyterLite app, and will override any configuration in [`jupyter-lite.json`](./jupyter-lite.json)." + ] + }, + { + "cell_type": "markdown", + "id": "6d19715a-0a8c-4600-9ff1-e82ba667e2d3", + "metadata": {}, + "source": [ + "## Editing Configuration\n", + "\n", + "The configuration is stored in this Notebook's metadata under the `jupyter-lite` key. To edit the configuration in JupyterLab.\n", + "\n", + "- open the _Property Inspector_ sidebar\n", + "- expand the _Advanced Tools_ section\n", + "- edit the `jupyter-lite` metadata sub-key\n", + "- press the \"check\" icon\n", + "- save the notebook" + ] + } + ], + "metadata": { + "jupyter-lite": { + "jupyter-config-data": {}, + "jupyter-lite-schema-version": 0 + }, + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.10" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/_static/retro/edit/jupyter-lite.json b/_static/retro/edit/jupyter-lite.json new file mode 100644 index 0000000..b8a2258 --- /dev/null +++ b/_static/retro/edit/jupyter-lite.json @@ -0,0 +1,8 @@ +{ + "jupyter-lite-schema-version": 0, + "jupyter-config-data": { + "retroPage": "edit", + "faviconUrl": "./favicon.ico", + "fullStaticUrl": "../../build" + } +} diff --git a/_static/retro/favicon.ico b/_static/retro/favicon.ico new file mode 100644 index 0000000..2d1bcff Binary files /dev/null and b/_static/retro/favicon.ico differ diff --git a/_static/retro/index.html b/_static/retro/index.html new file mode 100644 index 0000000..da5a93c --- /dev/null +++ b/_static/retro/index.html @@ -0,0 +1,20 @@ + + + + + + + diff --git a/_static/retro/jupyter-lite.ipynb b/_static/retro/jupyter-lite.ipynb new file mode 100644 index 0000000..c4a4922 --- /dev/null +++ b/_static/retro/jupyter-lite.ipynb @@ -0,0 +1,55 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "dea14a34-4803-44da-ae14-88b2c87a6f12", + "metadata": {}, + "source": [ + "# jupyter-lite.ipynb\n", + "\n", + "This notebook is the preferred source of site-specific runtime [configuration](https://jupyterlite.readthedocs.io/en/latest/configuring.html) for a JupyterLite app, and will override any configuration in [`jupyter-lite.json`](./jupyter-lite.json)." + ] + }, + { + "cell_type": "markdown", + "id": "6d19715a-0a8c-4600-9ff1-e82ba667e2d3", + "metadata": {}, + "source": [ + "## Editing Configuration\n", + "\n", + "The configuration is stored in this Notebook's metadata under the `jupyter-lite` key. To edit the configuration in JupyterLab.\n", + "\n", + "- open the _Property Inspector_ sidebar\n", + "- expand the _Advanced Tools_ section\n", + "- edit the `jupyter-lite` metadata sub-key\n", + "- press the \"check\" icon\n", + "- save the notebook" + ] + } + ], + "metadata": { + "jupyter-lite": { + "jupyter-config-data": {}, + "jupyter-lite-schema-version": 0 + }, + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.10" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/_static/retro/jupyter-lite.json b/_static/retro/jupyter-lite.json new file mode 100644 index 0000000..59bf929 --- /dev/null +++ b/_static/retro/jupyter-lite.json @@ -0,0 +1,8 @@ +{ + "jupyter-lite-schema-version": 0, + "jupyter-config-data": { + "fullStaticUrl": "../build", + "settingsUrl": "../../build/schemas", + "themesUrl": "./build/themes" + } +} diff --git a/_static/retro/notebooks/favicon.ico b/_static/retro/notebooks/favicon.ico new file mode 100644 index 0000000..4537e2d Binary files /dev/null and b/_static/retro/notebooks/favicon.ico differ diff --git a/_static/retro/notebooks/index.html b/_static/retro/notebooks/index.html new file mode 100644 index 0000000..4270ad1 --- /dev/null +++ b/_static/retro/notebooks/index.html @@ -0,0 +1,36 @@ + + + + JupyterLite Retro - Notebook + + + + + + + + diff --git a/_static/retro/notebooks/jupyter-lite.ipynb b/_static/retro/notebooks/jupyter-lite.ipynb new file mode 100644 index 0000000..c4a4922 --- /dev/null +++ b/_static/retro/notebooks/jupyter-lite.ipynb @@ -0,0 +1,55 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "dea14a34-4803-44da-ae14-88b2c87a6f12", + "metadata": {}, + "source": [ + "# jupyter-lite.ipynb\n", + "\n", + "This notebook is the preferred source of site-specific runtime [configuration](https://jupyterlite.readthedocs.io/en/latest/configuring.html) for a JupyterLite app, and will override any configuration in [`jupyter-lite.json`](./jupyter-lite.json)." + ] + }, + { + "cell_type": "markdown", + "id": "6d19715a-0a8c-4600-9ff1-e82ba667e2d3", + "metadata": {}, + "source": [ + "## Editing Configuration\n", + "\n", + "The configuration is stored in this Notebook's metadata under the `jupyter-lite` key. To edit the configuration in JupyterLab.\n", + "\n", + "- open the _Property Inspector_ sidebar\n", + "- expand the _Advanced Tools_ section\n", + "- edit the `jupyter-lite` metadata sub-key\n", + "- press the \"check\" icon\n", + "- save the notebook" + ] + } + ], + "metadata": { + "jupyter-lite": { + "jupyter-config-data": {}, + "jupyter-lite-schema-version": 0 + }, + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.10" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/_static/retro/notebooks/jupyter-lite.json b/_static/retro/notebooks/jupyter-lite.json new file mode 100644 index 0000000..7248800 --- /dev/null +++ b/_static/retro/notebooks/jupyter-lite.json @@ -0,0 +1,8 @@ +{ + "jupyter-lite-schema-version": 0, + "jupyter-config-data": { + "retroPage": "notebooks", + "faviconUrl": "./favicon.ico", + "fullStaticUrl": "../../build" + } +} diff --git a/_static/retro/package.json b/_static/retro/package.json new file mode 100644 index 0000000..c50d4b0 --- /dev/null +++ b/_static/retro/package.json @@ -0,0 +1,232 @@ +{ + "name": "@jupyterlite/app-retro", + "version": "0.1.2", + "private": true, + "resolutions": { + "@jupyterlab/application": "~3.5.3", + "@jupyterlab/application-extension": "~3.5.3", + "@jupyterlab/apputils": "~3.5.3", + "@jupyterlab/apputils-extension": "~3.5.3", + "@jupyterlab/attachments": "~3.5.3", + "@jupyterlab/cell-toolbar": "~3.5.3", + "@jupyterlab/cell-toolbar-extension": "~3.5.3", + "@jupyterlab/celltags": "~3.5.3", + "@jupyterlab/codeeditor": "~3.5.3", + "@jupyterlab/codemirror": "~3.5.3", + "@jupyterlab/codemirror-extension": "~3.5.3", + "@jupyterlab/completer": "~3.5.3", + "@jupyterlab/completer-extension": "~3.5.3", + "@jupyterlab/console": "~3.5.3", + "@jupyterlab/console-extension": "~3.5.3", + "@jupyterlab/coreutils": "~5.5.3", + "@jupyterlab/docmanager": "~3.5.3", + "@jupyterlab/docmanager-extension": "~3.5.3", + "@jupyterlab/docprovider": "~3.5.3", + "@jupyterlab/documentsearch": "~3.5.3", + "@jupyterlab/filebrowser": "~3.5.3", + "@jupyterlab/filebrowser-extension": "~3.5.3", + "@jupyterlab/fileeditor": "~3.5.3", + "@jupyterlab/fileeditor-extension": "~3.5.3", + "@jupyterlab/imageviewer": "~3.5.3", + "@jupyterlab/inspector": "~3.5.3", + "@jupyterlab/javascript-extension": "~3.5.3", + "@jupyterlab/json-extension": "~3.5.3", + "@jupyterlab/launcher": "~3.5.3", + "@jupyterlab/logconsole": "~3.5.3", + "@jupyterlab/mainmenu": "~3.5.3", + "@jupyterlab/mainmenu-extension": "~3.5.3", + "@jupyterlab/markdownviewer": "~3.5.3", + "@jupyterlab/mathjax2-extension": "~3.5.3", + "@jupyterlab/notebook": "~3.5.3", + "@jupyterlab/notebook-extension": "~3.5.3", + "@jupyterlab/outputarea": "~3.5.3", + "@jupyterlab/rendermime": "~3.5.3", + "@jupyterlab/rendermime-extension": "~3.5.3", + "@jupyterlab/rendermime-interfaces": "~3.5.3", + "@jupyterlab/services": "~6.5.3", + "@jupyterlab/settingeditor": "~3.5.3", + "@jupyterlab/settingregistry": "~3.5.3", + "@jupyterlab/shared-models": "~3.5.3", + "@jupyterlab/shortcuts-extension": "~3.5.3", + "@jupyterlab/statedb": "~3.5.3", + "@jupyterlab/statusbar": "~3.5.3", + "@jupyterlab/theme-dark-extension": "~3.5.3", + "@jupyterlab/theme-light-extension": "~3.5.3", + "@jupyterlab/tooltip": "~3.5.3", + "@jupyterlab/tooltip-extension": "~3.5.3", + "@jupyterlab/translation": "~3.5.3", + "@jupyterlab/translation-extension": "~3.5.3", + "@jupyterlab/ui-components": "~3.5.3", + "@jupyterlite/application-extension": "~0.1.2", + "@jupyterlite/contents": "~0.1.2", + "@jupyterlite/iframe-extension": "~0.1.2", + "@jupyterlite/kernel": "~0.1.2", + "@jupyterlite/localforage": "~0.1.2", + "@jupyterlite/retro-application-extension": "~0.1.2", + "@jupyterlite/server": "~0.1.2", + "@jupyterlite/server-extension": "~0.1.2", + "@jupyterlite/types": "~0.1.2", + "@lumino/algorithm": "~1.9.2", + "@lumino/application": "~1.31.3", + "@lumino/commands": "~1.21.1", + "@lumino/coreutils": "~1.12.1", + "@lumino/disposable": "~1.10.4", + "@lumino/domutils": "~1.8.2", + "@lumino/dragdrop": "~1.14.4", + "@lumino/messaging": "~1.10.3", + "@lumino/properties": "~1.8.2", + "@lumino/signaling": "~1.11.1", + "@lumino/virtualdom": "~1.14.3", + "@lumino/widgets": "~1.37.1", + "@retrolab/application": "~0.3.21", + "@retrolab/application-extension": "~0.3.21", + "@retrolab/docmanager-extension": "~0.3.21", + "@retrolab/help-extension": "~0.3.21", + "@retrolab/notebook-extension": "~0.3.21", + "@retrolab/tree-extension": "~0.3.21", + "@retrolab/ui-components": "~0.3.21", + "es6-promise": "^4.2.8", + "react": "^17.0.2", + "react-dom": "^17.0.2", + "yjs": "^13.5.43" + }, + "dependencies": { + "@jupyterlab/application-extension": "~3.5.3", + "@jupyterlab/apputils-extension": "~3.5.3", + "@jupyterlab/attachments": "~3.5.3", + "@jupyterlab/cell-toolbar-extension": "~3.5.3", + "@jupyterlab/celltags": "~3.5.3", + "@jupyterlab/codemirror-extension": "~3.5.3", + "@jupyterlab/completer-extension": "~3.5.3", + "@jupyterlab/console-extension": "~3.5.3", + "@jupyterlab/coreutils": "~5.5.3", + "@jupyterlab/docmanager-extension": "~3.5.3", + "@jupyterlab/filebrowser-extension": "~3.5.3", + "@jupyterlab/fileeditor-extension": "~3.5.3", + "@jupyterlab/javascript-extension": "~3.5.3", + "@jupyterlab/json-extension": "~3.5.3", + "@jupyterlab/mainmenu-extension": "~3.5.3", + "@jupyterlab/mathjax2-extension": "~3.5.3", + "@jupyterlab/notebook-extension": "~3.5.3", + "@jupyterlab/rendermime-extension": "~3.5.3", + "@jupyterlab/shortcuts-extension": "~3.5.3", + "@jupyterlab/theme-dark-extension": "~3.5.3", + "@jupyterlab/theme-light-extension": "~3.5.3", + "@jupyterlab/tooltip-extension": "~3.5.3", + "@jupyterlab/translation-extension": "~3.5.3", + "@jupyterlite/application-extension": "^0.1.2", + "@jupyterlite/iframe-extension": "^0.1.2", + "@jupyterlite/localforage": "^0.1.2", + "@jupyterlite/retro-application-extension": "^0.1.2", + "@jupyterlite/server": "^0.1.2", + "@jupyterlite/server-extension": "^0.1.2", + "@jupyterlite/types": "^0.1.2", + "@retrolab/application": "^0.3.21", + "@retrolab/application-extension": "^0.3.21", + "@retrolab/docmanager-extension": "^0.3.21", + "@retrolab/help-extension": "^0.3.21", + "@retrolab/notebook-extension": "^0.3.21", + "@retrolab/tree-extension": "^0.3.21", + "@retrolab/ui-components": "^0.3.21", + "es6-promise": "~4.2.8", + "react": "^17.0.1", + "react-dom": "^17.0.1" + }, + "jupyterlab": { + "extensions": [ + "@retrolab/application-extension", + "@retrolab/docmanager-extension", + "@retrolab/help-extension", + "@retrolab/notebook-extension", + "@retrolab/tree-extension", + "@jupyterlab/application-extension", + "@jupyterlab/apputils-extension", + "@jupyterlab/cell-toolbar-extension", + "@jupyterlab/codemirror-extension", + "@jupyterlab/completer-extension", + "@jupyterlab/console-extension", + "@jupyterlab/docmanager-extension", + "@jupyterlab/filebrowser-extension", + "@jupyterlab/fileeditor-extension", + "@jupyterlab/javascript-extension", + "@jupyterlab/json-extension", + "@jupyterlab/mainmenu-extension", + "@jupyterlab/mathjax2-extension", + "@jupyterlab/notebook-extension", + "@jupyterlab/rendermime-extension", + "@jupyterlab/shortcuts-extension", + "@jupyterlab/theme-dark-extension", + "@jupyterlab/theme-light-extension", + "@jupyterlab/tooltip-extension", + "@jupyterlab/translation-extension", + "@jupyterlab/vega5-extension", + "@jupyterlite/application-extension", + "@jupyterlite/iframe-extension", + "@jupyterlite/retro-application-extension", + "@jupyterlite/server-extension" + ], + "singletonPackages": [ + "@jupyterlab/application", + "@jupyterlab/apputils", + "@jupyterlab/cell-toolbar", + "@jupyterlab/codeeditor", + "@jupyterlab/codemirror", + "@jupyterlab/completer", + "@jupyterlab/console", + "@jupyterlab/coreutils", + "@jupyterlab/docmanager", + "@jupyterlab/docprovider", + "@jupyterlab/documentsearch", + "@jupyterlab/filebrowser", + "@jupyterlab/fileeditor", + "@jupyterlab/imageviewer", + "@jupyterlab/inspector", + "@jupyterlab/launcher", + "@jupyterlab/logconsole", + "@jupyterlab/mainmenu", + "@jupyterlab/markdownviewer", + "@jupyterlab/notebook", + "@jupyterlab/outputarea", + "@jupyterlab/rendermime", + "@jupyterlab/rendermime-interfaces", + "@jupyterlab/services", + "@jupyterlab/settingeditor", + "@jupyterlab/settingregistry", + "@jupyterlab/shared-models", + "@jupyterlab/statedb", + "@jupyterlab/statusbar", + "@jupyterlab/tooltip", + "@jupyterlab/translation", + "@jupyterlab/ui-components", + "@jupyterlite/contents", + "@jupyterlite/kernel", + "@jupyterlite/localforage", + "@jupyterlite/types", + "@lumino/algorithm", + "@lumino/application", + "@lumino/commands", + "@lumino/coreutils", + "@lumino/disposable", + "@lumino/domutils", + "@lumino/dragdrop", + "@lumino/messaging", + "@lumino/properties", + "@lumino/signaling", + "@lumino/virtualdom", + "@lumino/widgets", + "react", + "react-dom", + "yjs" + ], + "mimeExtensions": {}, + "linkedPackages": {} + }, + "jupyterlite": { + "pages": [ + "consoles/index", + "edit/index", + "notebooks/index", + "tree/index" + ] + } +} diff --git a/_static/retro/tree/index.html b/_static/retro/tree/index.html new file mode 100644 index 0000000..954234b --- /dev/null +++ b/_static/retro/tree/index.html @@ -0,0 +1,35 @@ + + + + JupyterLite Retro - Tree + + + + + + + diff --git a/_static/retro/tree/jupyter-lite.ipynb b/_static/retro/tree/jupyter-lite.ipynb new file mode 100644 index 0000000..c4a4922 --- /dev/null +++ b/_static/retro/tree/jupyter-lite.ipynb @@ -0,0 +1,55 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "dea14a34-4803-44da-ae14-88b2c87a6f12", + "metadata": {}, + "source": [ + "# jupyter-lite.ipynb\n", + "\n", + "This notebook is the preferred source of site-specific runtime [configuration](https://jupyterlite.readthedocs.io/en/latest/configuring.html) for a JupyterLite app, and will override any configuration in [`jupyter-lite.json`](./jupyter-lite.json)." + ] + }, + { + "cell_type": "markdown", + "id": "6d19715a-0a8c-4600-9ff1-e82ba667e2d3", + "metadata": {}, + "source": [ + "## Editing Configuration\n", + "\n", + "The configuration is stored in this Notebook's metadata under the `jupyter-lite` key. To edit the configuration in JupyterLab.\n", + "\n", + "- open the _Property Inspector_ sidebar\n", + "- expand the _Advanced Tools_ section\n", + "- edit the `jupyter-lite` metadata sub-key\n", + "- press the \"check\" icon\n", + "- save the notebook" + ] + } + ], + "metadata": { + "jupyter-lite": { + "jupyter-config-data": {}, + "jupyter-lite-schema-version": 0 + }, + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.10" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/_static/retro/tree/jupyter-lite.json b/_static/retro/tree/jupyter-lite.json new file mode 100644 index 0000000..b7f616e --- /dev/null +++ b/_static/retro/tree/jupyter-lite.json @@ -0,0 +1,7 @@ +{ + "jupyter-lite-schema-version": 0, + "jupyter-config-data": { + "retroPage": "tree", + "fullStaticUrl": "../../build" + } +} diff --git a/_static/service-worker-f7de73d.js b/_static/service-worker-f7de73d.js new file mode 100644 index 0000000..b536db8 --- /dev/null +++ b/_static/service-worker-f7de73d.js @@ -0,0 +1 @@ +"use strict";const CACHE="precache",broadcast=new BroadcastChannel("/api/drive.v1");function onInstall(t){self.skipWaiting(),t.waitUntil(cacheAll())}function onActivate(t){t.waitUntil(self.clients.claim())}async function onFetch(t){const{request:a}=t,n=new URL(t.request.url);let e=null;shouldBroadcast(n)?e=broadcastOne(a):shouldDrop(a,n)||(e=maybeFromCache(t)),e&&t.respondWith(e)}async function maybeFromCache(t){const{request:a}=t;let n=await fromCache(a);return n?t.waitUntil(refetch(a)):(n=await fetch(a),t.waitUntil(updateCache(a,n.clone()))),n}async function fromCache(t){const a=await openCache(),n=await a.match(t);return n&&404!==n.status?n:null}async function refetch(t){const a=await fetch(t);return await updateCache(t,a),a}function shouldBroadcast(t){return t.origin===location.origin&&t.pathname.includes("/api/drive")}function shouldDrop(t,a){return"GET"!==t.method||null===a.origin.match(/^http/)||a.pathname.includes("/api/")}async function broadcastOne(t){const a=new Promise((t=>{broadcast.onmessage=a=>{t(new Response(JSON.stringify(a.data)))}})),n=await t.json();return n.receiver="broadcast.ts",broadcast.postMessage(n),await a}async function openCache(){return await caches.open(CACHE)}async function updateCache(t,a){return(await openCache()).put(t,a)}async function cacheAll(){const t=await openCache();return await t.addAll([])}self.addEventListener("install",onInstall),self.addEventListener("activate",onActivate),self.addEventListener("fetch",onFetch); \ No newline at end of file diff --git a/_static/tree/index.html b/_static/tree/index.html new file mode 100644 index 0000000..3a954bb --- /dev/null +++ b/_static/tree/index.html @@ -0,0 +1,14 @@ + + + + + + diff --git a/content.opf b/content.opf index fd1fb7d..bc8ff41 100644 --- a/content.opf +++ b/content.opf @@ -37,14 +37,120 @@ - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/pyproject.toml b/pyproject.toml index 66f90bc..d0a610e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -60,6 +60,7 @@ docs_deps_all = [ "::md_all", "::source_date_epoch", "::docs_deps_static", + "::lite_sha256sums", ] docs_deps_static = [":rglob::docs/_static::*.css::*.svg"] epub = ["build/docs/epub/${PY_NAME}-${PY_VERSION}.epub"]