diff --git a/dist/css/app.41ef781b.css b/dist/css/app.41ef781b.css deleted file mode 100644 index 140fb5b..0000000 --- a/dist/css/app.41ef781b.css +++ /dev/null @@ -1 +0,0 @@ -@import url(https://fonts.googleapis.com/css2?family=Roboto:wght@300;700&display=swap);.nav[data-v-317ef896]{background-color:hsla(0,0%,100%,.9)}.nav__md .row[data-v-317ef896]{flex-direction:row;background:hsla(0,0%,100%,.9);justify-content:start;padding:2em 2em 2em 4em}.nav__lg .wrapper[data-v-317ef896]{padding:2em 2em 2em 10em}.wrapper a[data-v-317ef896]{display:block;padding:0 1em;color:#fff}.row[data-v-317ef896]{display:flex;flex-direction:column;justify-content:center;align-items:center;padding:2em}.row .app-title[data-v-317ef896]{margin:1rem 0 1rem 0;font-size:2rem;letter-spacing:.13rem;font-weight:700;color:#454a54}.row .logo[data-v-317ef896]{background:url(../img/logo-sciencemesh.59cc7159.svg) no-repeat;width:190px;height:70px}h1[data-v-4342b242]{font-size:8rem}h3[data-v-4342b242]{font-size:2rem}.not-found[data-v-4342b242]{display:flex;flex-direction:column;justify-content:center;height:100%}.not-found .wrapper[data-v-4342b242]{letter-spacing:.3rem;padding-top:10rem;padding-bottom:10rem}svg[data-v-73fce820]{display:none}.provider-details[data-v-73fce820]{background:#23252a;width:100%;height:100%;max-height:0;display:flex;flex-direction:column;justify-content:space-between;position:absolute;top:0;left:0;overflow:hidden;z-index:999;transition:max-height .3s ease-out;border-radius:3px}.provider-details .provider-title[data-v-73fce820]{padding-top:0}.provider-details .provider-detail-label[data-v-73fce820]{padding:1rem 0 0 0;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.05rem;opacity:.6}.provider-details .provider-detail-home[data-v-73fce820]{color:#1f91cc}.provider-details .close-btn[data-v-73fce820]{padding:0 .5rem .2rem .5rem;position:absolute;top:10px;right:20px;font-weight:700;font-size:2rem;color:#686f7e}.provider-details .close-btn[data-v-73fce820]:hover{background:#fff;border-radius:150px;transition:all .4s ease-in-out}.provider-details .text-description[data-v-73fce820]{padding:1em 1em 1em 1em}.provider-details .accept-btn[data-v-73fce820]{font-size:1.2em;font-weight:700;letter-spacing:.2em;padding:2rem 0 2rem 0;background:#df810a;color:#f5f5f5}.provider-details .accept-btn[data-v-73fce820]:hover{background:#965707}.provider-details__open[data-v-73fce820]{padding:2rem 0 0 0;max-height:100%}.provider-details__md[data-v-73fce820]{background:#0b3347}.provider-details__md .close-btn[data-v-73fce820]{color:#686f7e}#scroll-container[data-v-73fce820]{overflow:hidden;max-width:100%;margin:auto;position:relative;min-height:200px;z-index:0}#scroll-container .scroll-icon[data-v-73fce820]{display:inline-block;position:absolute;left:49%;transform:scaleX(1.3)}#scroll-container .scroll-icon__top[data-v-73fce820]{top:25px}#scroll-container .scroll-icon__bottom[data-v-73fce820]{bottom:25px}.wrap-container[data-v-73fce820]{width:100%;height:100%;top:0;left:0;position:relative;max-height:300px;max-width:100%;margin:auto;overflow:auto;-webkit-mask:url(#masking);mask:url(#masking);-webkit-mask-image:-webkit-gradient(linear,left bottom,left top,color-stop(.1,transparent),color-stop(.5,#000),color-stop(.9,transparent))}.wrap-container.provider-details__open[data-v-73fce820]{-webkit-mask:unset;mask:unset;-webkit-mask-image:unset}#scroll-container[data-v-73fce820]::-webkit-scrollbar,.ul-scroll[data-v-73fce820]::-webkit-scrollbar,.wrap-container[data-v-73fce820]::-webkit-scrollbar{display:none}#scroll-container[data-v-73fce820],.ul-scroll[data-v-73fce820],.wrap-container[data-v-73fce820]{-ms-overflow-style:none;scrollbar-width:none;height:100%}.wrap-container ul[data-v-73fce820]{list-style:none;position:relative;transition:transform .3s;top:50px}.wrap-container ul[data-v-73fce820],.wrap-container ul li[data-v-73fce820]{margin:0;padding:0;text-align:center}.wrap-container ul li[data-v-73fce820]{height:50px;line-height:50px;transition:transform .3s;overflow:hidden;font-size:.9em;cursor:pointer}.wrap-container ul li.provider-details__open[data-v-73fce820]{cursor:none;height:100%}.wrap-container ul li[data-v-73fce820]:first-of-type{margin-top:150px}.wrap-container ul li:first-of-type.provider-details__open[data-v-73fce820]{margin-top:0}.wrap-container ul li[data-v-73fce820]:last-of-type{padding-bottom:150px}.wrap-container ul li:last-of-type.provider-details__open[data-v-73fce820]{padding-bottom:0}.wrap-container ul li.active .item[data-v-73fce820]{transform:scale(1.9)}.active[data-v-73fce820]{opacity:1;color:#fff;border-bottom:1px solid #072331;border-radius:10px;font-weight:700}.wrap-container ul li .item[data-v-73fce820]{position:relative;text-wrap:normal;transition:transform .2s;display:inline-block}.bg-primary-blue[data-v-258d5688]{background-color:#1f91cc}.bg-primary-grey[data-v-258d5688]{background-color:#454a54}.text-title[data-v-258d5688]{font-family:Roboto,-apple-system,BlinkMacSystemFont,segoe ui,helvetica neue,Arial,sans-serif,apple color emoji,segoe ui emoji,segoe ui symbol}.text-description[data-v-258d5688]{font-family:Calibri,Roboto,-apple-system,BlinkMacSystemFont,segoe ui,helvetica neue,Arial,sans-serif,apple color emoji,segoe ui emoji,segoe ui symbol}.provider-title[data-v-258d5688]{padding:2rem 0 2rem 0;font-size:2rem;letter-spacing:.05rem;opacity:.6}body[data-v-258d5688]{text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;height:100vh;width:100vw;font-family:Roboto,-apple-system,BlinkMacSystemFont,segoe ui,helvetica neue,Arial,sans-serif,apple color emoji,segoe ui emoji,segoe ui symbol;font-style:normal;font-size:1rem}ul[data-v-258d5688]{list-style-type:none}a[data-v-258d5688]{text-decoration:none}img[data-v-258d5688]{width:100%}#app[data-v-258d5688]{height:100%}.center-align[data-v-258d5688]{margin:auto}.container[data-v-258d5688]{background:#2e3138;color:#abb0ba;text-align:center;padding:2.5em;opacity:.6}.container .footer-logo[data-v-258d5688]{filter:drop-shadow(2px 2px 6px black);background:url(../img/project-logo.f710a49c.svg) no-repeat;width:300px;height:160px}.container .footer-resource-links[data-v-258d5688]{color:#fff;padding-bottom:1.2em}.container .footer-resource-links h4[data-v-258d5688]{font-weight:700;letter-spacing:.1em;padding:.3em 0 .7em 0;font-size:1.1em}.container .footer-resource-links a[data-v-258d5688]{color:unset;text-decoration:underline}.container .footer-resource-links ul li[data-v-258d5688]{justify-content:flex-start;padding:.4em 0 .4em 0}.container .footer-resource-links ul li .link-icon[data-v-258d5688]{margin-right:.7em}.container .funding a[data-v-258d5688]{color:#fff;text-decoration:underline}.container__md .row[data-v-258d5688]{display:flex;flex-direction:row;justify-content:space-around}.container__md .footer-resource-links[data-v-258d5688]{text-align:left}.container__md .footer-resource-links ul li[data-v-258d5688]{display:grid;grid-template-columns:25% auto}.container__md .col[data-v-258d5688]{display:flex;flex-direction:column}.links-header[data-v-77527f7a]{display:none}.links-header__md[data-v-77527f7a]{background:#e9e7e3;padding:2em 4em 2em 2em;display:flex;flex-direction:row;align-items:center}.links-header__md .row[data-v-77527f7a]{width:100%;display:flex;flex-direction:row;justify-content:flex-end}.links-header__md ul[data-v-77527f7a]{display:flex;justify-content:space-between;width:7em;float:right}.links-header__md ul li[data-v-77527f7a]{cursor:pointer;color:#fff;background:#c77309;margin:0 .3em 0 1em;padding:.5em .2em .5em .2em;border-radius:25px;display:inline-block;opacity:.7;height:100%}.links-header__md ul li[data-v-77527f7a]:hover{background:#2b2823}.links-header__md ul li.outlined[data-v-77527f7a]{background:#554f45}.links-header__md ul li.outlined[data-v-77527f7a]:hover{background:#1c1001}.links-header__md ul a[data-v-77527f7a]{color:#fff;line-height:1;height:100%;padding:.6rem 1.2rem .4rem .9rem;display:block}.links-header__md ul .link-label[data-v-77527f7a]{display:inline-block;align-self:center;font-weight:700;font-size:.8rem;padding-left:.8rem;vertical-align:super;letter-spacing:.11rem}.bg-primary-blue{background-color:#1f91cc}.bg-primary-grey{background-color:#454a54}.text-title{font-family:Roboto,-apple-system,BlinkMacSystemFont,segoe ui,helvetica neue,Arial,sans-serif,apple color emoji,segoe ui emoji,segoe ui symbol}.text-description{font-family:Calibri,Roboto,-apple-system,BlinkMacSystemFont,segoe ui,helvetica neue,Arial,sans-serif,apple color emoji,segoe ui emoji,segoe ui symbol}.provider-title{padding:2rem 0 2rem 0;font-size:2rem;letter-spacing:.05rem;opacity:.6}body{text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;height:100vh;width:100vw;font-family:Roboto,-apple-system,BlinkMacSystemFont,segoe ui,helvetica neue,Arial,sans-serif,apple color emoji,segoe ui emoji,segoe ui symbol;font-style:normal;font-size:1rem}ul{list-style-type:none}a{text-decoration:none}img{width:100%}#app{height:100%}.main{background:#454a54;overflow:hidden;transition:background-color 1s}.main .subtitle{padding:3rem 0 1rem 0;font-size:1.1rem}.main .hero{padding-bottom:5rem;filter:drop-shadow(0 5px 5px #23252a)}.main__md{background:#3a3e46}.main__md .nav-container{filter:drop-shadow(0 0 5px #0c0c0e)}.main__md .hero,.main__md .nav-container{display:grid;grid-template-columns:66% auto}.main__md .hero{background:#1c81b6;padding:0}.main__md .hero .meshselect{background:#15628a;padding:0 2em 0 2em}.hero{display:grid}.full,.hero{color:#fff;text-align:center;height:100%} \ No newline at end of file diff --git a/dist/css/app.bbd6e6b5.css b/dist/css/app.bbd6e6b5.css new file mode 100644 index 0000000..adc4947 --- /dev/null +++ b/dist/css/app.bbd6e6b5.css @@ -0,0 +1 @@ +@import url(https://fonts.googleapis.com/css2?family=Roboto:wght@300;700&display=swap);.nav[data-v-317ef896]{background-color:hsla(0,0%,100%,.9)}.nav__md .row[data-v-317ef896]{flex-direction:row;background:hsla(0,0%,100%,.9);justify-content:start;padding:2em 2em 2em 4em}.nav__lg .wrapper[data-v-317ef896]{padding:2em 2em 2em 10em}.wrapper a[data-v-317ef896]{display:block;padding:0 1em;color:#fff}.row[data-v-317ef896]{display:flex;flex-direction:column;justify-content:center;align-items:center;padding:2em}.row .app-title[data-v-317ef896]{margin:1rem 0 1rem 0;font-size:2rem;letter-spacing:.13rem;font-weight:700;color:#454a54}.row .logo[data-v-317ef896]{background:url(../img/logo-sciencemesh.59cc7159.svg) no-repeat;width:190px;height:70px}h1[data-v-4342b242]{font-size:8rem}h3[data-v-4342b242]{font-size:2rem}.not-found[data-v-4342b242]{display:flex;flex-direction:column;justify-content:center;height:100%}.not-found .wrapper[data-v-4342b242]{letter-spacing:.3rem;padding-top:10rem;padding-bottom:10rem}@-webkit-keyframes marching-ants-4be4a566{0%[data-v-4be4a566]{stroke-dashoffset:0}to[data-v-4be4a566]{stroke-dashoffset:1000}}@keyframes marching-ants-4be4a566{0%[data-v-4be4a566]{stroke-dashoffset:0}to[data-v-4be4a566]{stroke-dashoffset:1000}}@-webkit-keyframes staggered-opacity-4be4a566{0%[data-v-4be4a566]{opacity:0}to[data-v-4be4a566]{opacity:.5}}@keyframes staggered-opacity-4be4a566{0%[data-v-4be4a566]{opacity:0}to[data-v-4be4a566]{opacity:.5}}@-webkit-keyframes spin-4be4a566{to[data-v-4be4a566]{-webkit-transform:rotate(1turn)}}@keyframes spin-4be4a566{to[data-v-4be4a566]{transform:rotate(1turn)}}.loading[data-v-4be4a566]{position:relative;width:100%;height:100%}.loading .loading-spinner[data-v-4be4a566]{display:block;font-size:5rem;position:absolute;left:50%;margin:1rem auto 0 -2.5rem;animation:"spin" 1s ease-in-out infinite;-moz-animation:"spin" 1s ease-in-out infinite;-webkit-animation:"spin" 1s ease-in-out infinite;-o-animation:"spin" 1s ease-in-out infinite;-ms-animation:"spin" 1s ease-in-out infinite}svg[data-v-808a9ede]{display:none}.provider-details[data-v-808a9ede]{background:#23252a;width:100%;height:100%;max-height:0;display:flex;flex-direction:column;justify-content:space-between;position:absolute;top:0;left:0;overflow:hidden;z-index:999;transition:max-height .3s ease-out;border-radius:3px}.provider-details .provider-title[data-v-808a9ede]{padding-top:0}.provider-details .provider-detail-label[data-v-808a9ede]{padding:1rem 0 0 0;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.05rem;opacity:.6}.provider-details .provider-detail-home[data-v-808a9ede]{color:#1f91cc}.provider-details .close-btn[data-v-808a9ede]{padding:0 .5rem .2rem .5rem;position:absolute;top:10px;right:20px;font-weight:700;font-size:2rem;color:#686f7e}.provider-details .close-btn[data-v-808a9ede]:hover{background:#fff;border-radius:150px;transition:all .4s ease-in-out}.provider-details .text-description[data-v-808a9ede]{padding:1em 1em 1em 1em}.provider-details .accept-btn[data-v-808a9ede]{font-size:1.2em;font-weight:700;letter-spacing:.2em;padding:2rem 0 2rem 0;background:#df810a;color:#f5f5f5}.provider-details .accept-btn[data-v-808a9ede]:hover{background:#965707}.provider-details__open[data-v-808a9ede]{padding:2rem 0 0 0;max-height:100%}.provider-details__md[data-v-808a9ede]{background:#0b3347}.provider-details__md .close-btn[data-v-808a9ede]{color:#686f7e}#scroll-container[data-v-808a9ede]{overflow:hidden;max-width:100%;margin:auto;position:relative;min-height:200px;z-index:0}#scroll-container .scroll-icon[data-v-808a9ede]{display:inline-block;position:absolute;left:49%;transform:scaleX(1.3)}#scroll-container .scroll-icon__top[data-v-808a9ede]{top:25px}#scroll-container .scroll-icon__bottom[data-v-808a9ede]{bottom:25px}.wrap-container[data-v-808a9ede]{width:100%;height:100%;top:0;left:0;position:relative;max-height:300px;max-width:100%;margin:auto;overflow:auto;-webkit-mask:url(#masking);mask:url(#masking);-webkit-mask-image:-webkit-gradient(linear,left bottom,left top,color-stop(.1,transparent),color-stop(.5,#000),color-stop(.9,transparent))}.wrap-container.provider-details__open[data-v-808a9ede]{-webkit-mask:unset;mask:unset;-webkit-mask-image:unset}#scroll-container[data-v-808a9ede]::-webkit-scrollbar,.ul-scroll[data-v-808a9ede]::-webkit-scrollbar,.wrap-container[data-v-808a9ede]::-webkit-scrollbar{display:none}#scroll-container[data-v-808a9ede],.ul-scroll[data-v-808a9ede],.wrap-container[data-v-808a9ede]{-ms-overflow-style:none;scrollbar-width:none;height:100%}.wrap-container ul[data-v-808a9ede]{list-style:none;position:relative;transition:transform .3s;top:50px}.wrap-container ul[data-v-808a9ede],.wrap-container ul li[data-v-808a9ede]{margin:0;padding:0;text-align:center}.wrap-container ul li[data-v-808a9ede]{height:50px;line-height:50px;transition:transform .3s;overflow:hidden;font-size:.9em;cursor:pointer}.wrap-container ul li.provider-details__open[data-v-808a9ede]{cursor:none;height:100%}.wrap-container ul li[data-v-808a9ede]:first-of-type{margin-top:150px}.wrap-container ul li:first-of-type.provider-details__open[data-v-808a9ede]{margin-top:0}.wrap-container ul li[data-v-808a9ede]:last-of-type{padding-bottom:150px}.wrap-container ul li:last-of-type.provider-details__open[data-v-808a9ede]{padding-bottom:0}.wrap-container ul li.active .item[data-v-808a9ede]{transform:scale(1.9)}.active[data-v-808a9ede]{opacity:1;color:#fff;border-bottom:1px solid #072331;border-radius:10px;font-weight:700}.wrap-container ul li .item[data-v-808a9ede]{position:relative;text-wrap:normal;transition:transform .2s;display:inline-block}.bg-primary-blue[data-v-258d5688]{background-color:#1f91cc}.bg-primary-grey[data-v-258d5688]{background-color:#454a54}.text-title[data-v-258d5688]{font-family:Roboto,-apple-system,BlinkMacSystemFont,segoe ui,helvetica neue,Arial,sans-serif,apple color emoji,segoe ui emoji,segoe ui symbol}.text-description[data-v-258d5688]{font-family:Calibri,Roboto,-apple-system,BlinkMacSystemFont,segoe ui,helvetica neue,Arial,sans-serif,apple color emoji,segoe ui emoji,segoe ui symbol}.provider-title[data-v-258d5688]{padding:2rem 0 2rem 0;font-size:2rem;letter-spacing:.05rem;opacity:.6}body[data-v-258d5688]{text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;height:100vh;width:100vw;font-family:Roboto,-apple-system,BlinkMacSystemFont,segoe ui,helvetica neue,Arial,sans-serif,apple color emoji,segoe ui emoji,segoe ui symbol;font-style:normal;font-size:1rem}ul[data-v-258d5688]{list-style-type:none}a[data-v-258d5688]{text-decoration:none}img[data-v-258d5688]{width:100%}#app[data-v-258d5688]{height:100%}.center-align[data-v-258d5688]{margin:auto}.container[data-v-258d5688]{background:#2e3138;color:#abb0ba;text-align:center;padding:2.5em;opacity:.6}.container .footer-logo[data-v-258d5688]{filter:drop-shadow(2px 2px 6px black);background:url(../img/project-logo.f710a49c.svg) no-repeat;width:300px;height:160px}.container .footer-resource-links[data-v-258d5688]{color:#fff;padding-bottom:1.2em}.container .footer-resource-links h4[data-v-258d5688]{font-weight:700;letter-spacing:.1em;padding:.3em 0 .7em 0;font-size:1.1em}.container .footer-resource-links a[data-v-258d5688]{color:unset;text-decoration:underline}.container .footer-resource-links ul li[data-v-258d5688]{justify-content:flex-start;padding:.4em 0 .4em 0}.container .footer-resource-links ul li .link-icon[data-v-258d5688]{margin-right:.7em}.container .funding a[data-v-258d5688]{color:#fff;text-decoration:underline}.container__md .row[data-v-258d5688]{display:flex;flex-direction:row;justify-content:space-around}.container__md .footer-resource-links[data-v-258d5688]{text-align:left}.container__md .footer-resource-links ul li[data-v-258d5688]{display:grid;grid-template-columns:25% auto}.container__md .col[data-v-258d5688]{display:flex;flex-direction:column}.links-header[data-v-77527f7a]{display:none}.links-header__md[data-v-77527f7a]{background:#e9e7e3;padding:2em 4em 2em 2em;display:flex;flex-direction:row;align-items:center}.links-header__md .row[data-v-77527f7a]{width:100%;display:flex;flex-direction:row;justify-content:flex-end}.links-header__md ul[data-v-77527f7a]{display:flex;justify-content:space-between;width:7em;float:right}.links-header__md ul li[data-v-77527f7a]{cursor:pointer;color:#fff;background:#c77309;margin:0 .3em 0 1em;padding:.5em .2em .5em .2em;border-radius:25px;display:inline-block;opacity:.7;height:100%}.links-header__md ul li[data-v-77527f7a]:hover{background:#2b2823}.links-header__md ul li.outlined[data-v-77527f7a]{background:#554f45}.links-header__md ul li.outlined[data-v-77527f7a]:hover{background:#1c1001}.links-header__md ul a[data-v-77527f7a]{color:#fff;line-height:1;height:100%;padding:.6rem 1.2rem .4rem .9rem;display:block}.links-header__md ul .link-label[data-v-77527f7a]{display:inline-block;align-self:center;font-weight:700;font-size:.8rem;padding-left:.8rem;vertical-align:super;letter-spacing:.11rem}.bg-primary-blue{background-color:#1f91cc}.bg-primary-grey{background-color:#454a54}.text-title{font-family:Roboto,-apple-system,BlinkMacSystemFont,segoe ui,helvetica neue,Arial,sans-serif,apple color emoji,segoe ui emoji,segoe ui symbol}.text-description{font-family:Calibri,Roboto,-apple-system,BlinkMacSystemFont,segoe ui,helvetica neue,Arial,sans-serif,apple color emoji,segoe ui emoji,segoe ui symbol}.provider-title{padding:2rem 0 2rem 0;font-size:2rem;letter-spacing:.05rem;opacity:.6}body{text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;height:100vh;width:100vw;font-family:Roboto,-apple-system,BlinkMacSystemFont,segoe ui,helvetica neue,Arial,sans-serif,apple color emoji,segoe ui emoji,segoe ui symbol;font-style:normal;font-size:1rem}ul{list-style-type:none}a{text-decoration:none}img{width:100%}#app{height:100%}.main{background:#454a54;overflow:hidden;transition:background-color 1s}.main .subtitle{padding:3rem 0 1rem 0;font-size:1.1rem}.main .hero{padding-bottom:5rem;filter:drop-shadow(0 5px 5px #23252a)}.main__md{background:#3a3e46}.main__md .nav-container{filter:drop-shadow(0 0 5px #0c0c0e)}.main__md .hero,.main__md .nav-container{display:grid;grid-template-columns:66% auto}.main__md .hero{background:#1c81b6;padding:0}.main__md .hero .meshselect{background:#15628a;padding:0 2em 0 2em}.hero{display:grid}.full,.hero{color:#fff;text-align:center;height:100%} \ No newline at end of file diff --git a/dist/css/chunk-6c78f41b.6e5d0d98.css b/dist/css/chunk-6c78f41b.6e5d0d98.css new file mode 100644 index 0000000..92602df --- /dev/null +++ b/dist/css/chunk-6c78f41b.6e5d0d98.css @@ -0,0 +1 @@ +@import url(https://fonts.googleapis.com/css2?family=Roboto:wght@300;700&display=swap);@-webkit-keyframes marching-ants{0%{stroke-dashoffset:0}to{stroke-dashoffset:1000}}@keyframes marching-ants{0%{stroke-dashoffset:0}to{stroke-dashoffset:1000}}@-webkit-keyframes staggered-opacity{0%{opacity:0}to{opacity:.5}}@keyframes staggered-opacity{0%{opacity:0}to{opacity:.5}}@-webkit-keyframes spin{to{-webkit-transform:rotate(1turn)}}@keyframes spin{to{transform:rotate(1turn)}}.map-container{position:relative;min-height:350px}.mesh-map{display:block;max-width:100%;overflow:hidden;background-color:#1f91cc;opacity:1;background:radial-gradient(circle,transparent 20%,#1f91cc 0,#1f91cc 80%,transparent 0,transparent),radial-gradient(circle,transparent 20%,#1f91cc 0,#1f91cc 80%,transparent 0,transparent) 30px 30px,linear-gradient(#15628a 2.4px,transparent 0) 0 -1.2px,linear-gradient(90deg,#15628a 2.4px,#1f91cc 0) -1.2px 0;background-size:23px 33px,33px 23px}.mesh-map .mesh-states{stroke:#1872a0;stroke-width:2;stroke-dasharray:.5em;fill:#0b3347;filter:drop-shadow(12px 12px 13px #125273)}.mesh-map .provider{fill:#fff;stroke-width:2;stroke:transparent;transition:stroke .3s linear}.mesh-map .provider:hover{stroke:hsla(0,0%,100%,.3)}.mesh-map .provider__button{fill:transparent;cursor:pointer}.mesh-map .provider__tooltip{fill:transparent}.mesh-map .provider__originator{fill:#df810a;transform:scaleZ(2);stroke:hsla(0,0%,100%,.3)}.mesh-map .provider-connector{fill:none;opacity:.8;stroke:#abdaf2;stroke-width:2px;stroke-linecap:round;stroke-dasharray:2 8;pointer-events:none;z-index:-1}.mesh-map .provider-connector path{opacity:0;-webkit-animation-name:staggered-opacity;animation-name:staggered-opacity;-webkit-animation-duration:1.5s;animation-duration:1.5s;-webkit-animation-delay:calc(var(--animation-order)*2200ms);animation-delay:calc(var(--animation-order)*2200ms);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-animation-iteration-count:59;animation-iteration-count:59;-webkit-animation-direction:alternate;animation-direction:alternate;-webkit-animation-fill-mode:both;animation-fill-mode:both}.mesh-map .provider-connector__active{stroke-width:8px;opacity:1;stroke:#fff;stroke-dasharray:10 4;stroke-linecap:butt;-webkit-animation-delay:0s;animation-delay:0s;animation:marching-ants 50s linear 1s infinite;-moz-animation:marching-ants 50s linear 1s infinite;-webkit-animation:marching-ants 50s linear 1s infinite;-o-animation:marching-ants 50s linear 1s infinite;-ms-animation:marching-ants 50s linear 1s infinite}.mesh-map .marker-fade-enter-active,.mesh-map .marker-fade-leave-active{transition:opacity .3s linear}.mesh-map .marker-fade-enter,.mesh-map .marker-fade-leave-to{opacity:0}.mesh-map .marker{fill:#df810a;stroke:#341e02;stroke-width:3;cursor:pointer;transition:opacity .3s linear;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;box-shadow:inset 0 0 10px #000}.mesh-map .marker>*{transition:transform .3s cubic-bezier(.6,0,.5,1)}.mesh-map .marker path{filter:drop-shadow(1px 5px 3px #17191c)}.mesh-map .marker text{stroke:none;fill:#fff;font-family:inherit;font-weight:700;font-size:.8rem}.mesh-map .marker__origin{fill:#1f91cc;stroke:#072331;pointer-events:none;cursor:pointer}.mesh-map .marker__origin path,.mesh-map .marker__origin text{transform:scale(.7)}.mesh-map .marker__current{opacity:.6}.mesh-map .marker__current>*{transform:scale(.8)}.map-help{padding:15px;background-color:#454a54;position:absolute;left:0;bottom:0;font-size:smaller;display:block;border-top-right-radius:5px;opacity:.8}.map-help .fa-info-circle{margin-right:1em} \ No newline at end of file diff --git a/dist/css/chunk-d3df6968.1a1cab6a.css b/dist/css/chunk-d3df6968.1a1cab6a.css deleted file mode 100644 index 9c782bf..0000000 --- a/dist/css/chunk-d3df6968.1a1cab6a.css +++ /dev/null @@ -1 +0,0 @@ -@import url(https://fonts.googleapis.com/css2?family=Roboto:wght@300;700&display=swap);@-webkit-keyframes marching-ants{0%{stroke-dashoffset:0}to{stroke-dashoffset:1000}}@keyframes marching-ants{0%{stroke-dashoffset:0}to{stroke-dashoffset:1000}}@-webkit-keyframes staggered-marching-ants{0%{opacity:0;stroke-dashoffset:0}20%{opacity:1}45%{opacity:0}50%{opacity:1;stroke-dashoffset:1000}70%{opacity:0}90%{opacity:1}to{opacity:0;stroke-dashoffset:0}}@keyframes staggered-marching-ants{0%{opacity:0;stroke-dashoffset:0}20%{opacity:1}45%{opacity:0}50%{opacity:1;stroke-dashoffset:1000}70%{opacity:0}90%{opacity:1}to{opacity:0;stroke-dashoffset:0}}.map-container{position:relative}.mesh-map{display:block;max-width:100%;overflow:hidden;background-color:#1f91cc;opacity:1;background:radial-gradient(circle,transparent 20%,#1f91cc 0,#1f91cc 80%,transparent 0,transparent),radial-gradient(circle,transparent 20%,#1f91cc 0,#1f91cc 80%,transparent 0,transparent) 30px 30px,linear-gradient(#15628a 2.4px,transparent 0) 0 -1.2px,linear-gradient(90deg,#15628a 2.4px,#1f91cc 0) -1.2px 0;background-size:23px 33px,33px 23px}.mesh-map .mesh-states{stroke:#1872a0;stroke-width:2;stroke-dasharray:.5em;fill:#0b3347;filter:drop-shadow(12px 12px 13px #125273)}.mesh-map .provider{fill:#fff;stroke-width:2;stroke:transparent;transition:stroke .3s linear}.mesh-map .provider:hover{stroke:hsla(0,0%,100%,.3)}.mesh-map .provider__button{fill:transparent;cursor:pointer}.mesh-map .provider__tooltip{fill:transparent}.mesh-map .provider__originator{fill:#df810a;transform:scaleZ(2);stroke:hsla(0,0%,100%,.3)}.mesh-map .provider-connector{fill:none;opacity:.8;stroke:#656d7b;stroke-width:4px;stroke-linecap:round;stroke-dasharray:70 70;pointer-events:none;z-index:-1}.mesh-map .provider-connector path{opacity:0;-webkit-animation-name:staggered-marching-ants;animation-name:staggered-marching-ants;-webkit-animation-duration:30s;animation-duration:30s;-webkit-animation-delay:calc(var(--animation-order)*3200ms);animation-delay:calc(var(--animation-order)*3200ms);-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.mesh-map .provider-connector__active{stroke-width:8px;opacity:1;stroke:#fff;stroke-dasharray:10 4;stroke-linecap:butt;-webkit-animation-delay:0s;animation-delay:0s;animation:marching-ants 50s linear 1s infinite;-moz-animation:marching-ants 50s linear 1s infinite;-webkit-animation:marching-ants 50s linear 1s infinite;-o-animation:marching-ants 50s linear 1s infinite;-ms-animation:marching-ants 50s linear 1s infinite}.mesh-map .marker-fade-enter-active,.mesh-map .marker-fade-leave-active{transition:opacity .3s linear}.mesh-map .marker-fade-enter,.mesh-map .marker-fade-leave-to{opacity:0}.mesh-map .marker{fill:#df810a;stroke:#341e02;stroke-width:3;cursor:pointer;transition:opacity .3s linear;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;box-shadow:inset 0 0 10px #000}.mesh-map .marker>*{transition:transform .3s cubic-bezier(.6,0,.5,1)}.mesh-map .marker path{filter:drop-shadow(1px 5px 3px #17191c)}.mesh-map .marker text{stroke:none;fill:#fff;font-family:inherit;font-weight:700;font-size:.8rem}.mesh-map .marker__origin{fill:#1f91cc;stroke:#072331;pointer-events:none;cursor:pointer}.mesh-map .marker__origin path,.mesh-map .marker__origin text{transform:scale(.7)}.mesh-map .marker__current{opacity:.6}.mesh-map .marker__current>*{transform:scale(.8)}.map-help{padding:15px;background-color:#454a54;position:absolute;left:0;bottom:0;font-size:smaller;display:block;border-top-right-radius:5px}.map-help .fa-info-circle{margin-right:1em} \ No newline at end of file diff --git a/dist/index.html b/dist/index.html index dc6b25b..3ec2a78 100644 --- a/dist/index.html +++ b/dist/index.html @@ -1 +1 @@ -Mesh Directory | ScienceMesh
\ No newline at end of file +Mesh Directory | ScienceMesh
\ No newline at end of file diff --git a/dist/js/app.1f1c457e.js b/dist/js/app.1f1c457e.js new file mode 100644 index 0000000..5389c6f --- /dev/null +++ b/dist/js/app.1f1c457e.js @@ -0,0 +1,2 @@ +(function(e){function t(t){for(var a,c,o=t[0],l=t[1],u=t[2],s=0,d=[];sc.internalProviders.length/3]]),Object(a["i"])("div",{ref:"wrapScroll",class:[[c.detailsExpanded?"provider-details__open":""],"wrap-container"],style:{maxHeight:"".concat(n.wrapHeight,"px"),minHeight:"".concat(n.wrapHeight,"px")}},[Object(a["i"])("ul",P,[(Object(a["p"])(!0),Object(a["f"])(a["a"],null,Object(a["t"])(c.internalProviders,(function(e,t){var n;return Object(a["z"])((Object(a["p"])(),Object(a["f"])("li",{key:e.name,ref:function(e){e&&(c.providerOptions[t]=e)},class:[e.name===(null===(n=c.target)||void 0===n?void 0:n.name)?"active":""],onClick:function(t){return c.showDetails(e)}},[Object(a["i"])("span",N,Object(a["v"])(e.full_name),1)],10,["onClick"])),[[a["w"],!c.detailsExpanded]])})),128))],512),Object(a["i"])("div",{class:[[c.detailsExpanded?"provider-details__open":"",c.md?"provider-details__md":""],"provider-details"]},[Object(a["i"])("div",D,[Object(a["i"])("button",{onClick:t[1]||(t[1]=function(){return c.closeDetails&&c.closeDetails.apply(c,arguments)})},[I])]),Object(a["i"])("div",B,[Object(a["i"])("p",A,Object(a["v"])(null===(o=c.target)||void 0===o?void 0:o.full_name),1),Object(a["i"])("p",null,Object(a["v"])(null===(l=c.target)||void 0===l?void 0:l.description),1),U,Object(a["i"])("p",null,Object(a["v"])(null===(u=c.target)||void 0===u?void 0:u.organization),1),null!==(s=c.target)&&void 0!==s&&s.homepage?(Object(a["p"])(),Object(a["f"])("a",{key:0,href:null===(d=c.target)||void 0===d?void 0:d.homepage,class:"provider-detail-home",target:"_new"},Object(a["v"])(c.target.homepage),9,["href"])):Object(a["g"])("",!0)]),Object(a["i"])("a",{href:c.targetLink,class:"accept-btn"},"Accept",8,["href"])],2)],6),Object(a["z"])(Object(a["i"])(b,{class:"scroll-icon scroll-icon__bottom",icon:"angle-down"},null,512),[[a["w"],c.scrollIndex0&&p.value){var e=g.value/p.value.clientHeight;return Math.round(e*Math.abs(w.value.length))}return 0}));function x(e){return w.value.findIndex((function(t){return t.name===e.name}))}function L(e){var t=k.value[e];t&&h(t.clientTop+t.offsetTop)}function S(e){L(x(e))}function C(){S(n.value)}function E(e){c(e),e.name===(null===n||void 0===n?void 0:n.value.name)&&(o.value=!0)}function T(){u(),Object(a["m"])((function(){C()}))}return Object(a["n"])((function(){k.value=[]})),Object(a["o"])((function(){o.value||Object(a["m"])((function(){L(Math.floor(w.value.length/2))}))})),Object(a["x"])([n],(function(){C()})),Object(a["x"])([w],(function(){Object(a["m"])((function(){L(Math.floor(w.value.length/2))}))})),Object(a["x"])([g],(function(){var e;if(!o.value)if(f.value)f.value=!1;else{var t=w.value[_.value];t&&t.name!==(null===(e=n.value)||void 0===e?void 0:e.name)&&c(t)}})),{internalProviders:w,target:n,scrollTop:g,wrapScroll:p,scrollIndex:_,providerOptions:k,providerFilter:y,detailsExpanded:o,expandDetails:l,hideDetails:u,showDetails:E,closeDetails:T,targetLink:i,md:b,loaded:s}}};n("4da7");q.render=M,q.__scopeId="data-v-808a9ede";var F=q,z=Object(a["B"])("data-v-258d5688");Object(a["r"])("data-v-258d5688");var G={class:"row"},J=Object(a["i"])("div",{class:"col"},[Object(a["i"])("div",{class:"footer-logo center-align"})],-1),W={class:"footer-resource-links col-md-3 col-xs-12"},$=Object(a["i"])("h4",null,"Resources",-1),K=Object(a["i"])("div",{class:"row"},[Object(a["i"])("div",{class:"col center-align funding"},[Object(a["i"])("p",null,[Object(a["i"])("a",{href:"https://cs3mesh4eosc.eu/",target:"_new"},"CS3MESH4EOSC"),Object(a["h"])(" has received funding from the European Union's Horizon 2020 research and innovation programme under the Grant Agreement no 863353 ")])])],-1);Object(a["q"])();var Y=z((function(e,t,n,c,i,r){var o=Object(a["u"])("fa-icon");return Object(a["p"])(),Object(a["f"])("footer",null,[Object(a["i"])("div",{class:[[c.md?"container__md":""],"container"]},[Object(a["i"])("div",G,[J,Object(a["i"])("div",W,[$,Object(a["i"])("ul",null,[(Object(a["p"])(!0),Object(a["f"])(a["a"],null,Object(a["t"])(c.resourcesLinks,(function(e){return Object(a["p"])(),Object(a["f"])("li",{key:e.name},[Object(a["i"])(o,{class:"link-icon",icon:e.icon},null,8,["icon"]),Object(a["i"])("a",{href:e.target,target:"_new"},Object(a["v"])(e.name),9,["href"])])})),128))])])]),K],2)])})),Q={name:"MeshFooter",setup:function(){var e=m(),t=e.md,n=Object(a["s"])([{name:"GitHub",target:"https://github.com/sciencemesh/sciencemesh",icon:["fab","github"]},{name:"Gitter",target:"https://gitter.im/sciencemesh/community",icon:["fab","gitter"]},{name:"Documentation",target:"https://developer.sciencemesh.io/docs/",icon:"book"},{name:"Deploy",target:"https://developer.sciencemesh.io/docs/iop/deployment/",icon:"rocket"}]);return{md:t,resourcesLinks:n}}};n("cd3c");Q.render=Y,Q.__scopeId="data-v-258d5688";var V=Q,X=Object(a["B"])("data-v-77527f7a");Object(a["r"])("data-v-77527f7a");var Z={class:"row"},ee={class:"row"},te={class:"link-label"};Object(a["q"])();var ne=X((function(e,t,n,c,i,r){var o=Object(a["u"])("fa-icon");return Object(a["p"])(),Object(a["f"])("div",{class:[[c.md?"links-header__md":"",c.lg?"links-header__lg":""],"links-header"]},[Object(a["i"])("ul",Z,[(Object(a["p"])(!0),Object(a["f"])(a["a"],null,Object(a["t"])(c.navLinks,(function(e){return Object(a["p"])(),Object(a["f"])("li",{key:e.name,class:e.class},[Object(a["i"])("a",{href:e.target,target:"_new"},[Object(a["i"])("div",ee,[Object(a["i"])(o,{icon:e.icon},null,8,["icon"]),Object(a["i"])("span",te,Object(a["v"])(e.name),1)])],8,["href"])],2)})),128))])],2)})),ae={name:"NavbarLinks",setup:function(){var e=m(),t=e.md,n=e.lg,c=Object(a["s"])([{icon:"sign-in-alt",name:"JOIN",target:"https://developer.sciencemesh.io/docs/how-to-join-sciencemesh/",class:""},{icon:"book",name:"DOCS",target:"https://developer.sciencemesh.io/docs/",class:"outlined"}]);return{md:t,lg:n,navLinks:c}}};n("52d0");ae.render=ne,ae.__scopeId="data-v-77527f7a";var ce=ae,ie=Object(a["j"])((function(){return n.e("chunk-6c78f41b").then(n.bind(null,"eb22"))})),re={name:"App",components:{NavbarLinks:ce,MeshFooter:V,ProviderSelect:F,LinkInvalid:S,Navbar:h,MeshMap:ie},setup:function(){var e=Object(v["a"])(),t=e.fetchProviders,n=e.fetchLocations,a=e.providers,c=e.originator,i=Object(k["a"])(),r=i.validLink,o=i.baseUrl,l=m(),u=l.md,s=l.lg;return t("".concat(o.value,"providers")),n(),{originator:c,validLink:r,providers:a,md:u,lg:s}}};n("6682");re.render=b;var oe=re,le=n("ecee"),ue=n("c074"),se=n("f2d1"),de=n("ad3d");le["c"].add(ue["c"],ue["f"],ue["e"],ue["b"],ue["a"],ue["d"],ue["g"],se["a"],se["b"]);var be=Object(a["e"])(oe);be.component("fa-icon",de["a"]),be.mount("#app")},6682:function(e,t,n){"use strict";n("2a36")},"6d5e":function(e,t,n){},"7b57":function(e,t,n){"use strict";n("7c5e")},"7c5e":function(e,t,n){},"9b23":function(e,t,n){"use strict";n("6d5e")},"9f67":function(e,t,n){"use strict";n.d(t,"a",(function(){return O}));n("7db0"),n("2b3d"),n("d3b7"),n("3ca3"),n("ddb0"),n("25f0"),n("5319"),n("ac1f"),n("b0c0");var a=n("7a23"),c=n("ba28");function i(){function e(e,t){fetch(e,{headers:{Accept:"application/json"}}).then((function(e){e.json().then((function(e){t(e)}))})).catch((function(e){console.log(e)}))}return{load:e}}var r=Object(c["a"])(),o=r.searchParams,l=r.validLink,u=i(),s=u.load,d=Object(a["s"])(!1),b=Object(a["s"])([]),v=Object(a["s"])([]),f=Object(a["s"])(null),p=Object(a["s"])(!1);function O(){var e=b,t=v,c=f,i=d,r=Object(a["s"])(!1),u=Object(a["s"])(!1),O=Object(a["d"])((function(){var t=e.value.find((function(e){return e.domain===o.value.get("providerDomain")}));return t||{full_name:""}})),j=Object(a["d"])((function(){return c.value&&l?new URL("?".concat(encodeURI(o.value.toString())),new URL("invites/forward",new URL(m.value.endpoint.path.replace(/\/?$/,"/")))):"#"})),m=Object(a["d"])((function(){var e;return null===(e=c.value)||void 0===e?void 0:e.services.find((function(e){return"OCM"===e.endpoint.type.name}))}));function g(t){s(t,(function(t){e.value=t,r.value=!0,u.value&&(i.value=!0)}))}function h(){t.value=n("3116"),u.value=!0,i.value=!0}function k(t){return Object(a["s"])(e.value.find((function(e){return e.name===t.key})))}function y(e){return Object(a["s"])(t.value.find((function(t){return t.key===e.value.name})))}function w(){p.value=!0}function _(){p.value=!1}function x(e){c.value=e}return{providers:Object(a["d"])((function(){return e.value})),locations:Object(a["d"])((function(){return t.value})),target:Object(a["d"])((function(){return c.value})),targetLink:j,originator:O,detailsExpanded:p,providersLoaded:Object(a["d"])((function(){return r.value})),locationsLoaded:Object(a["d"])((function(){return u.value})),loaded:Object(a["d"])((function(){return i.value})),fetchProviders:g,fetchLocations:h,getLocation:y,setTarget:x,getProvider:k,expandDetails:w,hideDetails:_}}},ba28:function(e,t,n){"use strict";n.d(t,"a",(function(){return c}));n("2b3d"),n("d3b7"),n("3ca3"),n("ddb0"),n("841c"),n("ac1f"),n("5319");var a=n("7a23");function c(){var e=Object(a["d"])((function(){return new URLSearchParams(window.location.search)})),t=Object(a["d"])((function(){return window.location.pathname.replace(/\/?$/,"/")})),n=Object(a["d"])((function(){return e.value.has("providerDomain")&&e.value.has("token")}));return{searchParams:e,validLink:n,baseUrl:t}}},cd3c:function(e,t,n){"use strict";n("d8bc")},d76c:function(e,t,n){"use strict";var a=n("7a23"),c=Object(a["B"])("data-v-4be4a566");Object(a["r"])("data-v-4be4a566");var i={class:"loading"};Object(a["q"])();var r=c((function(e,t,n,c,r,o){var l=Object(a["u"])("fa-icon");return Object(a["p"])(),Object(a["f"])("div",i,[Object(a["i"])(l,{class:"loading-spinner",icon:"spinner"})])})),o={name:"LoadingSpinner"};n("f850");o.render=r,o.__scopeId="data-v-4be4a566";t["a"]=o},d8bc:function(e,t,n){},f850:function(e,t,n){"use strict";n("1bfd")}}); +//# sourceMappingURL=app.1f1c457e.js.map \ No newline at end of file diff --git a/dist/js/app.1f1c457e.js.map b/dist/js/app.1f1c457e.js.map new file mode 100644 index 0000000..961772d --- /dev/null +++ b/dist/js/app.1f1c457e.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/components/ProviderSelect.vue?ee33","webpack:///./src/components/NavbarLinks.vue?4f57","webpack:///./src/App.vue","webpack:///./src/components/Navbar.vue","webpack:///./src/use/breakpoints.js","webpack:///./src/components/Navbar.vue?59c0","webpack:///./src/components/LinkInvalid.vue","webpack:///./src/components/LinkInvalid.vue?2d6a","webpack:///./src/components/ProviderSelect.vue","webpack:///./src/components/ProviderSelect.vue?85c5","webpack:///./src/components/MeshFooter.vue","webpack:///./src/components/MeshFooter.vue?90e2","webpack:///./src/components/NavbarLinks.vue","webpack:///./src/components/NavbarLinks.vue?2e0b","webpack:///./src/App.vue?dfb6","webpack:///./src/main.js","webpack:///./src/App.vue?0430","webpack:///./src/components/Navbar.vue?26dd","webpack:///./src/components/LinkInvalid.vue?3330","webpack:///./src/use/fetch.js","webpack:///./src/use/providers.js","webpack:///./src/use/query.js","webpack:///./src/components/MeshFooter.vue?6047","webpack:///./src/components/LoadingSpinner.vue","webpack:///./src/components/LoadingSpinner.vue?a280","webpack:///./src/components/LoadingSpinner.vue?6b92"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","installedCssChunks","jsonpScriptSrc","p","exports","module","l","e","promises","cssChunks","Promise","resolve","reject","href","fullhref","existingLinkTags","document","getElementsByTagName","tag","dataHref","getAttribute","rel","existingStyleTags","linkTag","createElement","type","onload","onerror","event","request","target","src","err","Error","code","parentNode","removeChild","head","appendChild","then","installedChunkData","promise","onScriptComplete","script","charset","timeout","nc","setAttribute","error","clearTimeout","chunk","errorType","realSrc","message","name","undefined","setTimeout","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","console","jsonpArray","window","oldJsonpFunction","slice","class","md","lg","validLink","originator","full_name","useBreakpoints","breakpoints","xs","sm","xl","useBreakpoint","current","setup","render","__scopeId","id","ref","x1","x2","y1","y2","offset","stop-color","maskContentUnits","maskUnits","fill","height","width","y","loaded","icon","scrollIndex","internalProviders","detailsExpanded","style","wrapHeight","provider","el","providerOptions","showDetails","closeDetails","description","organization","homepage","targetLink","components","LoadingSpinner","props","Number","default","providers","setTarget","expandDetails","hideDetails","loading","wrapScroll","scrollTop","scrollTopTo","providerFilter","filter","toLowerCase","includes","scrollPercentage","clientHeight","Math","round","abs","providerIndex","findIndex","scrollToIndex","index","targetEl","clientTop","offsetTop","scrollToProvider","onTargetChanged","floor","resourcesLinks","link","navLinks","MeshMap","NavbarLinks","MeshFooter","ProviderSelect","LinkInvalid","Navbar","fetchProviders","fetchLocations","baseUrl","library","add","faBook","faSignInAlt","faRocket","faAngleUp","faAngleDown","faInfoCircle","faSpinner","faGithub","faGitter","app","createApp","App","component","FontAwesomeIcon","mount","useFetch","load","uri","fetch","headers","response","json","res","catch","log","useUrl","searchParams","meshProviders","meshLocations","meshTarget","useProviders","locations","allLoaded","providersLoaded","locationsLoaded","computed","originProvider","find","domain","URL","encodeURI","toString","targetOCMService","endpoint","path","replace","services","providersUri","require","getProvider","location","getLocation","URLSearchParams","search","pathname","has"],"mappings":"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","file":"js/app.1f1c457e.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded CSS chunks\n \tvar installedCssChunks = {\n \t\t\"app\": 0\n \t}\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"js/\" + ({}[chunkId]||chunkId) + \".\" + {\"chunk-6c78f41b\":\"b10b230d\"}[chunkId] + \".js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// mini-css-extract-plugin CSS loading\n \t\tvar cssChunks = {\"chunk-6c78f41b\":1};\n \t\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n \t\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n \t\t\tpromises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {\n \t\t\t\tvar href = \"css/\" + ({}[chunkId]||chunkId) + \".\" + {\"chunk-6c78f41b\":\"6e5d0d98\"}[chunkId] + \".css\";\n \t\t\t\tvar fullhref = __webpack_require__.p + href;\n \t\t\t\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n \t\t\t\tfor(var i = 0; i < existingLinkTags.length; i++) {\n \t\t\t\t\tvar tag = existingLinkTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n \t\t\t\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return resolve();\n \t\t\t\t}\n \t\t\t\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n \t\t\t\tfor(var i = 0; i < existingStyleTags.length; i++) {\n \t\t\t\t\tvar tag = existingStyleTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\");\n \t\t\t\t\tif(dataHref === href || dataHref === fullhref) return resolve();\n \t\t\t\t}\n \t\t\t\tvar linkTag = document.createElement(\"link\");\n \t\t\t\tlinkTag.rel = \"stylesheet\";\n \t\t\t\tlinkTag.type = \"text/css\";\n \t\t\t\tlinkTag.onload = resolve;\n \t\t\t\tlinkTag.onerror = function(event) {\n \t\t\t\t\tvar request = event && event.target && event.target.src || fullhref;\n \t\t\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + request + \")\");\n \t\t\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n \t\t\t\t\terr.request = request;\n \t\t\t\t\tdelete installedCssChunks[chunkId]\n \t\t\t\t\tlinkTag.parentNode.removeChild(linkTag)\n \t\t\t\t\treject(err);\n \t\t\t\t};\n \t\t\t\tlinkTag.href = fullhref;\n\n \t\t\t\tvar head = document.getElementsByTagName(\"head\")[0];\n \t\t\t\thead.appendChild(linkTag);\n \t\t\t}).then(function() {\n \t\t\t\tinstalledCssChunks[chunkId] = 0;\n \t\t\t}));\n \t\t}\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./ProviderSelect.vue?vue&type=style&index=0&id=808a9ede&lang=scss&scoped=true\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./NavbarLinks.vue?vue&type=style&index=0&id=77527f7a&lang=scss&scoped=true\"","\n\n\n\n\n","\n\n\n\n","import {useBreakpoint} from \"vue-composable\";\n\nexport default function useBreakpoints() {\n const breakpoints = {\n xs:\t1,\n sm:\t599,\n md: 1024,\n lg: 1439,\n xl:\t1920\n }\n\n const { current, xs, sm, md, lg, xl } = useBreakpoint(breakpoints)\n return { current, xs, sm, md, lg, xl }\n}\n","import { render } from \"./Navbar.vue?vue&type=template&id=317ef896&scoped=true\"\nimport script from \"./Navbar.vue?vue&type=script&lang=js\"\nexport * from \"./Navbar.vue?vue&type=script&lang=js\"\n\nimport \"./Navbar.vue?vue&type=style&index=0&id=317ef896&lang=scss&scoped=true\"\nscript.render = render\nscript.__scopeId = \"data-v-317ef896\"\n\nexport default script","\n\n\n\n\n","import { render } from \"./LinkInvalid.vue?vue&type=template&id=4342b242&scoped=true\"\nimport script from \"./LinkInvalid.vue?vue&type=script&lang=js\"\nexport * from \"./LinkInvalid.vue?vue&type=script&lang=js\"\n\nimport \"./LinkInvalid.vue?vue&type=style&index=0&id=4342b242&lang=scss&scoped=true\"\nscript.render = render\nscript.__scopeId = \"data-v-4342b242\"\n\nexport default script","\n\n\n","import { render } from \"./ProviderSelect.vue?vue&type=template&id=808a9ede&scoped=true\"\nimport script from \"./ProviderSelect.vue?vue&type=script&lang=js\"\nexport * from \"./ProviderSelect.vue?vue&type=script&lang=js\"\n\nimport \"./ProviderSelect.vue?vue&type=style&index=0&id=808a9ede&lang=scss&scoped=true\"\nscript.render = render\nscript.__scopeId = \"data-v-808a9ede\"\n\nexport default script","\n\n\n\n\n","import { render } from \"./MeshFooter.vue?vue&type=template&id=258d5688&scoped=true\"\nimport script from \"./MeshFooter.vue?vue&type=script&lang=js\"\nexport * from \"./MeshFooter.vue?vue&type=script&lang=js\"\n\nimport \"./MeshFooter.vue?vue&type=style&index=0&id=258d5688&lang=scss&scoped=true\"\nscript.render = render\nscript.__scopeId = \"data-v-258d5688\"\n\nexport default script","\n\n\n\n\n","import { render } from \"./NavbarLinks.vue?vue&type=template&id=77527f7a&scoped=true\"\nimport script from \"./NavbarLinks.vue?vue&type=script&lang=js\"\nexport * from \"./NavbarLinks.vue?vue&type=script&lang=js\"\n\nimport \"./NavbarLinks.vue?vue&type=style&index=0&id=77527f7a&lang=scss&scoped=true\"\nscript.render = render\nscript.__scopeId = \"data-v-77527f7a\"\n\nexport default script","import { render } from \"./App.vue?vue&type=template&id=33cd6156\"\nimport script from \"./App.vue?vue&type=script&lang=js\"\nexport * from \"./App.vue?vue&type=script&lang=js\"\n\nimport \"./App.vue?vue&type=style&index=0&id=33cd6156&lang=scss\"\nscript.render = render\n\nexport default script","import {createApp} from 'vue'\nimport App from './App.vue'\n\nimport {library} from '@fortawesome/fontawesome-svg-core'\nimport {\n faBook,\n faSignInAlt,\n faRocket,\n faAngleUp,\n faAngleDown,\n faInfoCircle,\n faSpinner\n} from '@fortawesome/free-solid-svg-icons'\nimport {faGithub, faGitter} from \"@fortawesome/free-brands-svg-icons\";\nimport {FontAwesomeIcon} from '@fortawesome/vue-fontawesome'\n\nlibrary.add(\n faBook, faSignInAlt, faRocket, faAngleUp, faAngleDown, faInfoCircle, faSpinner,\n faGithub, faGitter\n)\n\nconst app = createApp(App)\n\napp.component('fa-icon', FontAwesomeIcon)\n\napp.mount('#app')\n","export * from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../node_modules/vue-loader-v16/dist/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./App.vue?vue&type=style&index=0&id=33cd6156&lang=scss\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Navbar.vue?vue&type=style&index=0&id=317ef896&lang=scss&scoped=true\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./LinkInvalid.vue?vue&type=style&index=0&id=4342b242&lang=scss&scoped=true\"","export default function useFetch() {\n\n function load(uri, resolve) {\n fetch(uri, {\n headers: {\n 'Accept': 'application/json',\n }\n }).then(response => {\n response.json()\n .then((res) => {\n resolve(res)\n })\n })\n .catch(err => {\n console.log(err)\n })\n }\n return {load}\n}\n","import {computed, ref} from 'vue'\nimport useUrl from '@/use/query'\nimport useFetch from '@/use/fetch'\n\nconst {searchParams, validLink} = useUrl()\nconst {load} = useFetch()\n\nconst loaded = ref(false)\nconst meshProviders = ref([])\nconst meshLocations = ref([])\nconst meshTarget = ref(null)\nconst detailsExpanded = ref(false)\n\nexport default function useProviders() {\n const providers = meshProviders\n const locations = meshLocations\n const target = meshTarget\n const allLoaded = loaded\n const providersLoaded = ref(false)\n const locationsLoaded = ref(false)\n\n const originator = computed(() => {\n const originProvider = providers.value.find(p => {\n return p.domain === searchParams.value.get('providerDomain')\n })\n return originProvider || {'full_name': ''}\n })\n\n const targetLink = computed(() => {\n if (!target.value || !validLink) {\n return '#'\n }\n return new URL(\n `?${encodeURI(searchParams.value.toString())}`,\n new URL('invites/forward',\n new URL(targetOCMService.value.endpoint.path.replace(/\\/?$/, '/'))\n )\n )\n })\n\n const targetOCMService = computed(() => {\n return target.value?.services.find(s => {\n return s.endpoint.type.name === 'OCM'\n })\n })\n\n function fetchProviders(providersUri) {\n if (process.env.NODE_ENV === 'development') {\n providers.value = require('../../demo/providers.json')\n providersLoaded.value = true\n allLoaded.value = true\n return\n }\n\n load(providersUri, (res) => {\n providers.value = res\n providersLoaded.value = true\n\n if (locationsLoaded.value) {\n allLoaded.value = true\n }\n })\n }\n\n function fetchLocations() {\n locations.value = require('../assets/data/providers.loc.json')\n locationsLoaded.value = true\n allLoaded.value = true\n // TODO: uncomment when mentix locations provider is in IOP\n // load(locationsUri, (res) => {\n // locations.value = res\n // locationsLoaded.value = true\n // if (providersLoaded.value) {\n // loaded.value = true\n // }\n // })\n }\n\n function getProvider(location) {\n return ref(providers.value.find(p => {\n return p.name === location.key\n }))\n }\n\n function getLocation(provider) {\n return ref(locations.value.find(l => {\n return l.key === provider.value.name\n }))\n }\n\n function expandDetails() {\n detailsExpanded.value = true\n }\n\n function hideDetails() {\n detailsExpanded.value = false\n }\n\n function setTarget(provider) {\n target.value = provider\n }\n\n return {\n providers: computed(() => providers.value),\n locations: computed(() => locations.value),\n target: computed(() => target.value),\n targetLink,\n originator,\n detailsExpanded,\n providersLoaded: computed(() => providersLoaded.value),\n locationsLoaded: computed(() => locationsLoaded.value),\n loaded: computed(() => allLoaded.value),\n fetchProviders, fetchLocations, getLocation, setTarget, getProvider,\n expandDetails, hideDetails\n }\n}\n","import {computed} from 'vue'\n\nexport default function useUrl() {\n const searchParams = computed(() => {\n return new URLSearchParams(window.location.search)\n })\n\n const baseUrl = computed(() => {\n return window.location.pathname.replace(/\\/?$/, '/')\n })\n\n const validLink = computed(() => {\n return searchParams.value.has('providerDomain')\n && searchParams.value.has('token')\n })\n\n return {searchParams, validLink, baseUrl}\n}\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./MeshFooter.vue?vue&type=style&index=0&id=258d5688&lang=scss&scoped=true\"","\n\n\n\n\n","import { render } from \"./LoadingSpinner.vue?vue&type=template&id=4be4a566&scoped=true\"\nimport script from \"./LoadingSpinner.vue?vue&type=script&lang=js\"\nexport * from \"./LoadingSpinner.vue?vue&type=script&lang=js\"\n\nimport \"./LoadingSpinner.vue?vue&type=style&index=0&id=4be4a566&lang=scss&scoped=true\"\nscript.render = render\nscript.__scopeId = \"data-v-4be4a566\"\n\nexport default script","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./LoadingSpinner.vue?vue&type=style&index=0&id=4be4a566&lang=scss&scoped=true\""],"sourceRoot":""} \ No newline at end of file diff --git a/dist/js/app.b445e61e.js b/dist/js/app.b445e61e.js deleted file mode 100644 index 837e27b..0000000 --- a/dist/js/app.b445e61e.js +++ /dev/null @@ -1,2 +0,0 @@ -(function(e){function t(t){for(var a,c,o=t[0],l=t[1],u=t[2],s=0,d=[];sc.internalProviders.length/3]]),Object(a["i"])("div",{ref:"wrapScroll",class:[[c.detailsExpanded?"provider-details__open":""],"wrap-container"],style:{maxHeight:"".concat(n.wrapHeight,"px"),minHeight:"".concat(n.wrapHeight,"px")}},[Object(a["i"])("ul",P,[(Object(a["p"])(!0),Object(a["f"])(a["a"],null,Object(a["t"])(c.internalProviders,(function(e,t){var n;return Object(a["z"])((Object(a["p"])(),Object(a["f"])("li",{key:e.name,ref:function(e){e&&(c.providerOptions[t]=e)},class:[e.name===(null===(n=c.target)||void 0===n?void 0:n.name)?"active":""],onClick:function(t){return c.showDetails(e)}},[Object(a["i"])("span",N,Object(a["v"])(e.full_name),1)],10,["onClick"])),[[a["w"],!c.detailsExpanded]])})),128))],512),Object(a["i"])("div",{class:[[c.detailsExpanded?"provider-details__open":"",c.md?"provider-details__md":""],"provider-details"]},[Object(a["i"])("div",D,[Object(a["i"])("button",{onClick:t[1]||(t[1]=function(){return c.closeDetails&&c.closeDetails.apply(c,arguments)})},[I])]),Object(a["i"])("div",A,[Object(a["i"])("p",B,Object(a["v"])(null===(o=c.target)||void 0===o?void 0:o.full_name),1),Object(a["i"])("p",null,Object(a["v"])(null===(l=c.target)||void 0===l?void 0:l.description),1),U,Object(a["i"])("p",null,Object(a["v"])(null===(u=c.target)||void 0===u?void 0:u.organization),1),null!==(s=c.target)&&void 0!==s&&s.homepage?(Object(a["p"])(),Object(a["f"])("a",{key:0,href:null===(d=c.target)||void 0===d?void 0:d.homepage,class:"provider-detail-home",target:"_new"},Object(a["v"])(c.target.homepage),9,["href"])):Object(a["g"])("",!0)]),Object(a["i"])("a",{href:c.targetLink,class:"accept-btn"},"Accept",8,["href"])],2)],6),Object(a["z"])(Object(a["i"])(b,{class:"scroll-icon scroll-icon__bottom",icon:"angle-down"},null,512),[[a["w"],c.scrollIndex0){var e=O.value/f.value.clientHeight;return Math.round(e*Math.abs(y.value.length))}return 0}));function _(e){return y.value.findIndex((function(t){return t.name===e.name}))}function x(e){var t=h.value[e];t&&g(t.clientTop+t.offsetTop)}function L(e){x(_(e))}function S(){L(n.value)}function C(e){c(e),e.name===(null===n||void 0===n?void 0:n.value.name)&&(o.value=!0)}function E(){u(),Object(a["m"])((function(){S()}))}return Object(a["n"])((function(){h.value=[]})),Object(a["o"])((function(){o.value||x(Math.floor(y.value.length/2))})),Object(a["x"])([n],(function(){S()})),Object(a["x"])([O],(function(){var e;if(!o.value)if(b.value)b.value=!1;else{var t=y.value[w.value];t&&t.name!==(null===(e=n.value)||void 0===e?void 0:e.name)&&c(t)}})),{internalProviders:y,target:n,scrollTop:O,wrapScroll:f,scrollIndex:w,providerOptions:h,providerFilter:k,detailsExpanded:o,expandDetails:l,hideDetails:u,showDetails:C,closeDetails:E,targetLink:i,md:d}}});n("2cae");H.render=M,H.__scopeId="data-v-73fce820";var q=H,F=Object(a["B"])("data-v-258d5688");Object(a["r"])("data-v-258d5688");var z={class:"row"},G=Object(a["i"])("div",{class:"col"},[Object(a["i"])("div",{class:"footer-logo center-align"})],-1),J={class:"footer-resource-links col-md-3 col-xs-12"},W=Object(a["i"])("h4",null,"Resources",-1),$=Object(a["i"])("div",{class:"row"},[Object(a["i"])("div",{class:"col center-align funding"},[Object(a["i"])("p",null,[Object(a["i"])("a",{href:"https://cs3mesh4eosc.eu/",target:"_new"},"CS3MESH4EOSC"),Object(a["h"])(" has received funding from the European Union's Horizon 2020 research and innovation programme under the Grant Agreement no 863353 ")])])],-1);Object(a["q"])();var K=F((function(e,t,n,c,i,r){var o=Object(a["u"])("fa-icon");return Object(a["p"])(),Object(a["f"])("footer",null,[Object(a["i"])("div",{class:[[c.md?"container__md":""],"container"]},[Object(a["i"])("div",z,[G,Object(a["i"])("div",J,[W,Object(a["i"])("ul",null,[(Object(a["p"])(!0),Object(a["f"])(a["a"],null,Object(a["t"])(c.resourcesLinks,(function(e){return Object(a["p"])(),Object(a["f"])("li",{key:e.name},[Object(a["i"])(o,{class:"link-icon",icon:e.icon},null,8,["icon"]),Object(a["i"])("a",{href:e.target,target:"_new"},Object(a["v"])(e.name),9,["href"])])})),128))])])]),$],2)])})),Y={name:"MeshFooter",setup:function(){var e=m(),t=e.md,n=Object(a["s"])([{name:"GitHub",target:"https://github.com/sciencemesh/sciencemesh",icon:["fab","github"]},{name:"Gitter",target:"https://gitter.im/sciencemesh/community",icon:["fab","gitter"]},{name:"Documentation",target:"https://developer.sciencemesh.io/docs/",icon:"book"},{name:"Deploy",target:"https://developer.sciencemesh.io/docs/iop/deployment/",icon:"rocket"}]);return{md:t,resourcesLinks:n}}};n("cd3c");Y.render=K,Y.__scopeId="data-v-258d5688";var Q=Y,V=Object(a["B"])("data-v-77527f7a");Object(a["r"])("data-v-77527f7a");var X={class:"row"},Z={class:"row"},ee={class:"link-label"};Object(a["q"])();var te=V((function(e,t,n,c,i,r){var o=Object(a["u"])("fa-icon");return Object(a["p"])(),Object(a["f"])("div",{class:[[c.md?"links-header__md":"",c.lg?"links-header__lg":""],"links-header"]},[Object(a["i"])("ul",X,[(Object(a["p"])(!0),Object(a["f"])(a["a"],null,Object(a["t"])(c.navLinks,(function(e){return Object(a["p"])(),Object(a["f"])("li",{key:e.name,class:e.class},[Object(a["i"])("a",{href:e.target,target:"_new"},[Object(a["i"])("div",Z,[Object(a["i"])(o,{icon:e.icon},null,8,["icon"]),Object(a["i"])("span",ee,Object(a["v"])(e.name),1)])],8,["href"])],2)})),128))])],2)})),ne={name:"NavbarLinks",setup:function(){var e=m(),t=e.md,n=e.lg,c=Object(a["s"])([{icon:"sign-in-alt",name:"JOIN",target:"https://developer.sciencemesh.io/docs/how-to-join-sciencemesh/",class:""},{icon:"book",name:"DOCS",target:"https://developer.sciencemesh.io/docs/",class:"outlined"}]);return{md:t,lg:n,navLinks:c}}};n("52d0");ne.render=te,ne.__scopeId="data-v-77527f7a";var ae=ne,ce=Object(a["j"])((function(){return n.e("chunk-d3df6968").then(n.bind(null,"eb22"))})),ie={name:"App",components:{NavbarLinks:ae,MeshFooter:Q,ProviderSelect:q,LinkInvalid:S,Navbar:h,MeshMap:ce},setup:function(){var e=Object(v["a"])(),t=e.fetchProviders,n=e.fetchLocations,a=e.loaded,c=e.providers,i=e.originator,r=Object(k["a"])(),o=r.validLink,l=r.baseUrl,u=m(),s=u.md,d=u.lg;return t("".concat(l.value,"providers")),n(),{originator:i,loaded:a,validLink:o,providers:c,md:s,lg:d}}};n("0910");ie.render=b;var re=ie,oe=n("ecee"),le=n("c074"),ue=n("f2d1"),se=n("ad3d");oe["c"].add(le["c"],le["f"],le["e"],le["b"],le["a"],le["d"],ue["a"],ue["b"]);var de=Object(a["e"])(re);de.component("fa-icon",se["a"]),de.mount("#app")},"6d5e":function(e,t,n){},"75de":function(e,t,n){},"7b57":function(e,t,n){"use strict";n("7c5e")},"7c5e":function(e,t,n){},"9b23":function(e,t,n){"use strict";n("6d5e")},"9f67":function(e,t,n){"use strict";n.d(t,"a",(function(){return p}));n("7db0"),n("2b3d"),n("d3b7"),n("3ca3"),n("ddb0"),n("25f0"),n("5319"),n("ac1f"),n("b0c0");var a=n("7a23"),c=n("ba28");function i(){function e(e,t){fetch(e,{headers:{Accept:"application/json"}}).then((function(e){e.json().then((function(e){t(e)}))})).catch((function(e){console.log(e)}))}return{load:e}}var r=Object(c["a"])(),o=r.searchParams,l=r.validLink,u=i(),s=u.load,d=Object(a["s"])([]),b=Object(a["s"])([]),v=Object(a["s"])(null),f=Object(a["s"])(!1);function p(){var e=d,t=b,c=v,i=Object(a["s"])(!1),r=Object(a["s"])(!1),u=Object(a["s"])(!1),p=Object(a["d"])((function(){var t=e.value.find((function(e){return e.domain===o.value.get("providerDomain")}));return t||{full_name:""}})),O=Object(a["d"])((function(){return c.value&&l?new URL("?".concat(encodeURI(o.value.toString())),new URL("invites/forward",new URL(j.value.endpoint.path.replace(/\/?$/,"/")))):"#"})),j=Object(a["d"])((function(){var e;return null===(e=c.value)||void 0===e?void 0:e.services.find((function(e){return"OCM"===e.endpoint.type.name}))}));function m(t){s(t,(function(t){e.value=t,r.value=!0,u.value&&(i.value=!0)}))}function g(){t.value=n("3116"),u.value=!0,i.value=!0}function h(t){return Object(a["s"])(e.value.find((function(e){return e.name===t.key})))}function k(e){return Object(a["s"])(t.value.find((function(t){return t.key===e.value.name})))}function y(){f.value=!0}function w(){f.value=!1}function _(e){c.value=e}return{providers:Object(a["d"])((function(){return e.value})),locations:Object(a["d"])((function(){return t.value})),target:Object(a["d"])((function(){return c.value})),targetLink:O,originator:p,detailsExpanded:f,providersLoaded:Object(a["d"])((function(){return r.value})),locationsLoaded:Object(a["d"])((function(){return u.value})),loaded:Object(a["d"])((function(){return i.value})),fetchProviders:m,fetchLocations:g,getLocation:k,setTarget:_,getProvider:h,expandDetails:y,hideDetails:w}}},ba28:function(e,t,n){"use strict";n.d(t,"a",(function(){return c}));n("2b3d"),n("d3b7"),n("3ca3"),n("ddb0"),n("841c"),n("ac1f"),n("5319");var a=n("7a23");function c(){var e=Object(a["d"])((function(){return new URLSearchParams(window.location.search)})),t=Object(a["d"])((function(){return window.location.pathname.replace(/\/?$/,"/")})),n=Object(a["d"])((function(){return e.value.has("providerDomain")&&e.value.has("token")}));return{searchParams:e,validLink:n,baseUrl:t}}},cd3c:function(e,t,n){"use strict";n("d8bc")},d8bc:function(e,t,n){}}); -//# sourceMappingURL=app.b445e61e.js.map \ No newline at end of file diff --git a/dist/js/app.b445e61e.js.map b/dist/js/app.b445e61e.js.map deleted file mode 100644 index e46215b..0000000 --- a/dist/js/app.b445e61e.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/App.vue?e627","webpack:///./src/components/ProviderSelect.vue?d36f","webpack:///./src/components/NavbarLinks.vue?4f57","webpack:///./src/App.vue","webpack:///./src/components/Navbar.vue","webpack:///./src/use/breakpoints.js","webpack:///./src/components/Navbar.vue?59c0","webpack:///./src/components/LinkInvalid.vue","webpack:///./src/components/LinkInvalid.vue?2d6a","webpack:///./src/components/ProviderSelect.vue","webpack:///./src/components/ProviderSelect.vue?85c5","webpack:///./src/components/MeshFooter.vue","webpack:///./src/components/MeshFooter.vue?90e2","webpack:///./src/components/NavbarLinks.vue","webpack:///./src/components/NavbarLinks.vue?2e0b","webpack:///./src/App.vue?dfb6","webpack:///./src/main.js","webpack:///./src/components/Navbar.vue?26dd","webpack:///./src/components/LinkInvalid.vue?3330","webpack:///./src/use/fetch.js","webpack:///./src/use/providers.js","webpack:///./src/use/query.js","webpack:///./src/components/MeshFooter.vue?6047"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","installedCssChunks","jsonpScriptSrc","p","exports","module","l","e","promises","cssChunks","Promise","resolve","reject","href","fullhref","existingLinkTags","document","getElementsByTagName","tag","dataHref","getAttribute","rel","existingStyleTags","linkTag","createElement","type","onload","onerror","event","request","target","src","err","Error","code","parentNode","removeChild","head","appendChild","then","installedChunkData","promise","onScriptComplete","script","charset","timeout","nc","setAttribute","error","clearTimeout","chunk","errorType","realSrc","message","name","undefined","setTimeout","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","console","jsonpArray","window","oldJsonpFunction","slice","class","md","lg","validLink","loaded","originator","full_name","useBreakpoints","breakpoints","xs","sm","xl","useBreakpoint","current","setup","render","__scopeId","id","ref","x1","x2","y1","y2","offset","stop-color","maskContentUnits","maskUnits","fill","height","width","y","icon","scrollIndex","internalProviders","detailsExpanded","style","wrapHeight","provider","el","providerOptions","showDetails","closeDetails","description","organization","homepage","targetLink","props","Number","default","providers","setTarget","expandDetails","hideDetails","loading","wrapScroll","scrollTop","scrollTopTo","providerFilter","filter","toLowerCase","includes","scrollPercentage","clientHeight","Math","round","abs","providerIndex","findIndex","scrollToIndex","index","targetEl","clientTop","offsetTop","scrollToProvider","onTargetChanged","floor","resourcesLinks","link","navLinks","MeshMap","components","NavbarLinks","MeshFooter","ProviderSelect","LinkInvalid","Navbar","fetchProviders","fetchLocations","baseUrl","library","add","faBook","faSignInAlt","faRocket","faAngleUp","faAngleDown","faInfoCircle","faGithub","faGitter","app","createApp","App","component","FontAwesomeIcon","mount","useFetch","load","uri","fetch","headers","response","json","res","catch","log","useUrl","searchParams","meshProviders","meshLocations","meshTarget","useProviders","locations","providersLoaded","locationsLoaded","computed","originProvider","find","domain","URL","encodeURI","toString","targetOCMService","endpoint","path","replace","services","providersUri","require","getProvider","location","getLocation","URLSearchParams","search","pathname","has"],"mappings":"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","file":"js/app.b445e61e.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded CSS chunks\n \tvar installedCssChunks = {\n \t\t\"app\": 0\n \t}\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"js/\" + ({}[chunkId]||chunkId) + \".\" + {\"chunk-d3df6968\":\"0c83f36f\"}[chunkId] + \".js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// mini-css-extract-plugin CSS loading\n \t\tvar cssChunks = {\"chunk-d3df6968\":1};\n \t\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n \t\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n \t\t\tpromises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {\n \t\t\t\tvar href = \"css/\" + ({}[chunkId]||chunkId) + \".\" + {\"chunk-d3df6968\":\"1a1cab6a\"}[chunkId] + \".css\";\n \t\t\t\tvar fullhref = __webpack_require__.p + href;\n \t\t\t\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n \t\t\t\tfor(var i = 0; i < existingLinkTags.length; i++) {\n \t\t\t\t\tvar tag = existingLinkTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n \t\t\t\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return resolve();\n \t\t\t\t}\n \t\t\t\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n \t\t\t\tfor(var i = 0; i < existingStyleTags.length; i++) {\n \t\t\t\t\tvar tag = existingStyleTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\");\n \t\t\t\t\tif(dataHref === href || dataHref === fullhref) return resolve();\n \t\t\t\t}\n \t\t\t\tvar linkTag = document.createElement(\"link\");\n \t\t\t\tlinkTag.rel = \"stylesheet\";\n \t\t\t\tlinkTag.type = \"text/css\";\n \t\t\t\tlinkTag.onload = resolve;\n \t\t\t\tlinkTag.onerror = function(event) {\n \t\t\t\t\tvar request = event && event.target && event.target.src || fullhref;\n \t\t\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + request + \")\");\n \t\t\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n \t\t\t\t\terr.request = request;\n \t\t\t\t\tdelete installedCssChunks[chunkId]\n \t\t\t\t\tlinkTag.parentNode.removeChild(linkTag)\n \t\t\t\t\treject(err);\n \t\t\t\t};\n \t\t\t\tlinkTag.href = fullhref;\n\n \t\t\t\tvar head = document.getElementsByTagName(\"head\")[0];\n \t\t\t\thead.appendChild(linkTag);\n \t\t\t}).then(function() {\n \t\t\t\tinstalledCssChunks[chunkId] = 0;\n \t\t\t}));\n \t\t}\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","export * from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../node_modules/vue-loader-v16/dist/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./App.vue?vue&type=style&index=0&id=5d735b5e&lang=scss\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./ProviderSelect.vue?vue&type=style&index=0&id=73fce820&lang=scss&scoped=true\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./NavbarLinks.vue?vue&type=style&index=0&id=77527f7a&lang=scss&scoped=true\"","\n\n\n\n\n","\n\n\n\n","import {useBreakpoint} from \"vue-composable\";\n\nexport default function useBreakpoints() {\n const breakpoints = {\n xs:\t1,\n sm:\t599,\n md: 1024,\n lg: 1439,\n xl:\t1920\n }\n\n const { current, xs, sm, md, lg, xl } = useBreakpoint(breakpoints)\n return { current, xs, sm, md, lg, xl }\n}\n","import { render } from \"./Navbar.vue?vue&type=template&id=317ef896&scoped=true\"\nimport script from \"./Navbar.vue?vue&type=script&lang=js\"\nexport * from \"./Navbar.vue?vue&type=script&lang=js\"\n\nimport \"./Navbar.vue?vue&type=style&index=0&id=317ef896&lang=scss&scoped=true\"\nscript.render = render\nscript.__scopeId = \"data-v-317ef896\"\n\nexport default script","\n\n\n\n\n","import { render } from \"./LinkInvalid.vue?vue&type=template&id=4342b242&scoped=true\"\nimport script from \"./LinkInvalid.vue?vue&type=script&lang=js\"\nexport * from \"./LinkInvalid.vue?vue&type=script&lang=js\"\n\nimport \"./LinkInvalid.vue?vue&type=style&index=0&id=4342b242&lang=scss&scoped=true\"\nscript.render = render\nscript.__scopeId = \"data-v-4342b242\"\n\nexport default script","\n\n\n","import { render } from \"./ProviderSelect.vue?vue&type=template&id=73fce820&scoped=true\"\nimport script from \"./ProviderSelect.vue?vue&type=script&lang=js\"\nexport * from \"./ProviderSelect.vue?vue&type=script&lang=js\"\n\nimport \"./ProviderSelect.vue?vue&type=style&index=0&id=73fce820&lang=scss&scoped=true\"\nscript.render = render\nscript.__scopeId = \"data-v-73fce820\"\n\nexport default script","\n\n\n\n\n","import { render } from \"./MeshFooter.vue?vue&type=template&id=258d5688&scoped=true\"\nimport script from \"./MeshFooter.vue?vue&type=script&lang=js\"\nexport * from \"./MeshFooter.vue?vue&type=script&lang=js\"\n\nimport \"./MeshFooter.vue?vue&type=style&index=0&id=258d5688&lang=scss&scoped=true\"\nscript.render = render\nscript.__scopeId = \"data-v-258d5688\"\n\nexport default script","\n\n\n\n\n","import { render } from \"./NavbarLinks.vue?vue&type=template&id=77527f7a&scoped=true\"\nimport script from \"./NavbarLinks.vue?vue&type=script&lang=js\"\nexport * from \"./NavbarLinks.vue?vue&type=script&lang=js\"\n\nimport \"./NavbarLinks.vue?vue&type=style&index=0&id=77527f7a&lang=scss&scoped=true\"\nscript.render = render\nscript.__scopeId = \"data-v-77527f7a\"\n\nexport default script","import { render } from \"./App.vue?vue&type=template&id=5d735b5e\"\nimport script from \"./App.vue?vue&type=script&lang=js\"\nexport * from \"./App.vue?vue&type=script&lang=js\"\n\nimport \"./App.vue?vue&type=style&index=0&id=5d735b5e&lang=scss\"\nscript.render = render\n\nexport default script","import { createApp } from 'vue'\nimport App from './App.vue'\n\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport { faBook, faSignInAlt, faRocket, faAngleUp, faAngleDown, faInfoCircle } from '@fortawesome/free-solid-svg-icons'\nimport { faGithub, faGitter } from \"@fortawesome/free-brands-svg-icons\";\nimport { FontAwesomeIcon } from '@fortawesome/vue-fontawesome'\n\nlibrary.add(\n faBook, faSignInAlt, faRocket, faAngleUp, faAngleDown, faInfoCircle,\n faGithub, faGitter)\n\nconst app = createApp(App)\n\napp.component('fa-icon', FontAwesomeIcon)\n\napp.mount('#app')\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Navbar.vue?vue&type=style&index=0&id=317ef896&lang=scss&scoped=true\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./LinkInvalid.vue?vue&type=style&index=0&id=4342b242&lang=scss&scoped=true\"","export default function useFetch() {\n\n function load(uri, resolve) {\n fetch(uri, {\n headers: {\n 'Accept': 'application/json',\n }\n }).then(response => {\n response.json()\n .then((res) => {\n resolve(res)\n })\n })\n .catch(err => {\n console.log(err)\n })\n }\n return {load}\n}\n","import {computed, ref} from 'vue'\nimport useUrl from '@/use/query'\nimport useFetch from '@/use/fetch'\n\nconst {searchParams, validLink} = useUrl()\nconst {load} = useFetch()\n\nconst meshProviders = ref([])\nconst meshLocations = ref([])\nconst meshTarget = ref(null)\nconst detailsExpanded = ref(false)\n\nexport default function useProviders() {\n const providers = meshProviders\n const locations = meshLocations\n const target = meshTarget\n const loaded = ref(false)\n const providersLoaded = ref(false)\n const locationsLoaded = ref(false)\n\n const originator = computed(() => {\n const originProvider = providers.value.find(p => {\n return p.domain === searchParams.value.get('providerDomain')\n })\n return originProvider || {'full_name': ''}\n })\n\n const targetLink = computed(() => {\n if (!target.value || !validLink) {\n return '#'\n }\n return new URL(\n `?${encodeURI(searchParams.value.toString())}`,\n new URL('invites/forward',\n new URL(targetOCMService.value.endpoint.path.replace(/\\/?$/, '/'))\n )\n )\n })\n\n const targetOCMService = computed(() => {\n return target.value?.services.find(s => {\n return s.endpoint.type.name === 'OCM'\n })\n })\n\n function fetchProviders(providersUri) {\n if (process.env.NODE_ENV === 'development') {\n providers.value = require('../../demo/providers.json')\n providersLoaded.value = true\n loaded.value = true\n return\n }\n\n load(providersUri, (res) => {\n providers.value = res\n providersLoaded.value = true\n\n if (locationsLoaded.value) {\n loaded.value = true\n }\n })\n }\n\n function fetchLocations() {\n locations.value = require('../assets/data/providers.loc.json')\n locationsLoaded.value = true\n loaded.value = true\n // TODO: uncomment when mentix locations provider is in IOP\n // load(locationsUri, (res) => {\n // locations.value = res\n // locationsLoaded.value = true\n // if (providersLoaded.value) {\n // loaded.value = true\n // }\n // })\n }\n\n function getProvider(location) {\n return ref(providers.value.find(p => {\n return p.name === location.key\n }))\n }\n\n function getLocation(provider) {\n return ref(locations.value.find(l => {\n return l.key === provider.value.name\n }))\n }\n\n function expandDetails() {\n detailsExpanded.value = true\n }\n\n function hideDetails() {\n detailsExpanded.value = false\n }\n\n function setTarget(provider) {\n target.value = provider\n }\n\n return {\n providers: computed(() => providers.value),\n locations: computed(() => locations.value),\n target: computed(() => target.value),\n targetLink,\n originator,\n detailsExpanded,\n providersLoaded: computed(() => providersLoaded.value),\n locationsLoaded: computed(() => locationsLoaded.value),\n loaded: computed(() => loaded.value),\n fetchProviders, fetchLocations, getLocation, setTarget, getProvider,\n expandDetails, hideDetails\n }\n}\n","import {computed} from 'vue'\n\nexport default function useUrl() {\n const searchParams = computed(() => {\n return new URLSearchParams(window.location.search)\n })\n\n const baseUrl = computed(() => {\n return window.location.pathname.replace(/\\/?$/, '/')\n })\n\n const validLink = computed(() => {\n return searchParams.value.has('providerDomain')\n && searchParams.value.has('token')\n })\n\n return {searchParams, validLink, baseUrl}\n}\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./MeshFooter.vue?vue&type=style&index=0&id=258d5688&lang=scss&scoped=true\""],"sourceRoot":""} \ No newline at end of file diff --git a/dist/js/chunk-d3df6968.0c83f36f.js b/dist/js/chunk-6c78f41b.b10b230d.js similarity index 64% rename from dist/js/chunk-d3df6968.0c83f36f.js rename to dist/js/chunk-6c78f41b.b10b230d.js index 106d6c6..7567505 100644 --- a/dist/js/chunk-d3df6968.0c83f36f.js +++ b/dist/js/chunk-6c78f41b.b10b230d.js @@ -1,2 +1,2 @@ -(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-d3df6968"],{"154a":function(n){n.exports=JSON.parse('{"type":"FeatureCollection","features":[{"type":"Feature","properties":{"scalerank":1,"featurecla":"Admin-0 country","labelrank":5,"sovereignt":"Czech Republic","sov_a3":"CZE","adm0_dif":0,"level":2,"type":"Sovereign country","admin":"Czech Republic","adm0_a3":"CZE","geou_dif":0,"geounit":"Czech Republic","gu_a3":"CZE","su_dif":0,"subunit":"Czech Republic","su_a3":"CZE","brk_diff":0,"name":"Czech Rep.","name_long":"Czech Republic","brk_a3":"CZE","brk_name":"Czech Rep.","brk_group":null,"abbrev":"Cz. Rep.","postal":"CZ","formal_en":"Czech Republic","formal_fr":null,"note_adm0":null,"note_brk":null,"name_sort":"Czech Republic","name_alt":null,"mapcolor7":1,"mapcolor8":1,"mapcolor9":2,"mapcolor13":6,"pop_est":10211904,"gdp_md_est":265200,"pop_year":-99,"lastcensus":2011,"gdp_year":-99,"economy":"2. Developed region: nonG7","income_grp":"1. High income: OECD","wikipedia":-99,"fips_10":null,"iso_a2":"CZ","iso_a3":"CZE","iso_n3":"203","un_a3":"203","wb_a2":"CZ","wb_a3":"CZE","woe_id":-99,"adm0_a3_is":"CZE","adm0_a3_us":"CZE","adm0_a3_un":-99,"adm0_a3_wb":-99,"continent":"Europe","region_un":"Europe","subregion":"Eastern Europe","region_wb":"Europe & Central Asia","name_len":10,"long_len":14,"abbrev_len":8,"tiny":-99,"homepart":1,"filename":"CZE.geojson"},"geometry":{"type":"Polygon","coordinates":[[[16.960288120194576,48.5969823268506],[16.49928266771877,48.78580801044511],[16.02964725105022,48.73389903420793],[15.253415561593982,49.039074205107575],[14.901447381254057,48.964401760445824],[14.33889773932472,48.5553052842072],[13.595945672264437,48.87717194273715],[13.031328973043431,49.30706818297324],[12.521024204161192,49.547415269562734],[12.415190870827445,49.96912079528057],[12.240111118222558,50.266337795607285],[12.966836785543194,50.484076443069085],[13.338131951560285,50.73323436136435],[14.056227654688172,50.92691762959429],[14.307013380600637,51.117267767941414],[14.570718214586066,51.002339382524276],[15.01699588385867,51.10667409932158],[15.490972120839727,50.78472992614321],[16.23862674323857,50.69773265237984],[16.176253289462267,50.42260732685791],[16.719475945714436,50.21574656839354],[16.868769158605655,50.47397370055603],[17.55456709155112,50.36214590107641],[17.64944502123899,50.049038397819956],[18.392913852622172,49.98862864847075],[18.853144158613617,49.49622976337764],[18.554971144289482,49.49501536721878],[18.399993523846177,49.31500051533004],[18.170498488037964,49.271514797556435],[18.104972771891852,49.04398346617531],[17.913511590250465,48.996492824899086],[17.88648481616181,48.90347524677371],[17.545006951577108,48.80001902932537],[17.101984897538898,48.81696889911711],[16.960288120194576,48.5969823268506]]]}},{"type":"Feature","properties":{"scalerank":1,"featurecla":"Admin-0 country","labelrank":4,"sovereignt":"Switzerland","sov_a3":"CHE","adm0_dif":0,"level":2,"type":"Sovereign country","admin":"Switzerland","adm0_a3":"CHE","geou_dif":0,"geounit":"Switzerland","gu_a3":"CHE","su_dif":0,"subunit":"Switzerland","su_a3":"CHE","brk_diff":0,"name":"Switzerland","name_long":"Switzerland","brk_a3":"CHE","brk_name":"Switzerland","brk_group":null,"abbrev":"Switz.","postal":"CH","formal_en":"Swiss Confederation","formal_fr":null,"note_adm0":null,"note_brk":null,"name_sort":"Switzerland","name_alt":null,"mapcolor7":5,"mapcolor8":2,"mapcolor9":7,"mapcolor13":3,"pop_est":7604467,"gdp_md_est":316700,"pop_year":-99,"lastcensus":2010,"gdp_year":-99,"economy":"2. Developed region: nonG7","income_grp":"1. High income: OECD","wikipedia":-99,"fips_10":null,"iso_a2":"CH","iso_a3":"CHE","iso_n3":"756","un_a3":"756","wb_a2":"CH","wb_a3":"CHE","woe_id":-99,"adm0_a3_is":"CHE","adm0_a3_us":"CHE","adm0_a3_un":-99,"adm0_a3_wb":-99,"continent":"Europe","region_un":"Europe","subregion":"Western Europe","region_wb":"Europe & Central Asia","name_len":11,"long_len":11,"abbrev_len":6,"tiny":-99,"homepart":1,"filename":"CHE.geojson"},"geometry":{"type":"Polygon","coordinates":[[[9.59422610844635,47.52505809182027],[9.632931756232978,47.34760122332999],[9.479969516649021,47.10280996356337],[9.932448357796659,46.92072805438296],[10.44270145024663,46.89354625099743],[10.363378126678612,46.48357127540986],[9.92283654139038,46.31489940040919],[9.182881707403055,46.44021474871698],[8.966305779667806,46.036931871111186],[8.489952426801324,46.005150865251686],[8.31662967289438,46.16364248309086],[7.755992058959833,45.82449005795931],[7.273850945676656,45.776947740250776],[6.843592970414504,45.99114655210061],[6.500099724970425,46.42967275652944],[6.022609490593537,46.27298981382047],[6.037388950229001,46.725778713561866],[6.768713820023606,47.2877082383037],[6.736571079138059,47.541801255882845],[7.192202182655507,47.44976552997102],[7.46675906742223,47.62058197691181],[8.317301466514152,47.61357982033626],[8.522611932009765,47.830827541691285],[9.59422610844635,47.52505809182027]]]}},{"type":"Feature","properties":{"scalerank":1,"featurecla":"Admin-0 country","labelrank":5,"sovereignt":"Bosnia and Herzegovina","sov_a3":"BIH","adm0_dif":0,"level":2,"type":"Sovereign country","admin":"Bosnia and Herzegovina","adm0_a3":"BIH","geou_dif":0,"geounit":"Bosnia and Herzegovina","gu_a3":"BIH","su_dif":0,"subunit":"Bosnia and Herzegovina","su_a3":"BIH","brk_diff":0,"name":"Bosnia and Herz.","name_long":"Bosnia and Herzegovina","brk_a3":"BIH","brk_name":"Bosnia and Herz.","brk_group":null,"abbrev":"B.H.","postal":"BiH","formal_en":"Bosnia and Herzegovina","formal_fr":null,"note_adm0":null,"note_brk":null,"name_sort":"Bosnia and Herzegovina","name_alt":null,"mapcolor7":1,"mapcolor8":1,"mapcolor9":1,"mapcolor13":2,"pop_est":4613414,"gdp_md_est":29700,"pop_year":-99,"lastcensus":1991,"gdp_year":-99,"economy":"6. Developing region","income_grp":"3. Upper middle income","wikipedia":-99,"fips_10":null,"iso_a2":"BA","iso_a3":"BIH","iso_n3":"070","un_a3":"070","wb_a2":"BA","wb_a3":"BIH","woe_id":-99,"adm0_a3_is":"BIH","adm0_a3_us":"BIH","adm0_a3_un":-99,"adm0_a3_wb":-99,"continent":"Europe","region_un":"Europe","subregion":"Southern Europe","region_wb":"Europe & Central Asia","name_len":16,"long_len":22,"abbrev_len":4,"tiny":-99,"homepart":1,"filename":"BIH.geojson"},"geometry":{"type":"Polygon","coordinates":[[[19.00548628101012,44.86023366960916],[19.36803,44.863],[19.11761,44.42307000000011],[19.59976,44.03847],[19.454,43.56810000000013],[19.21852,43.52384],[19.03165,43.43253],[18.70648,43.20011],[18.56,42.65],[17.674921502358984,43.02856252702361],[17.297373488034452,43.44634064388736],[16.91615644701733,43.66772247982567],[16.456442905348865,44.04123973243128],[16.23966027188453,44.35114329688571],[15.750026075918981,44.81871165626256],[15.959367303133376,45.233776760430935],[16.318156772535872,45.00412669532591],[16.534939406000206,45.21160757097772],[17.002146030351014,45.233776760430935],[17.861783481526402,45.067740383477144],[18.553214145591653,45.08158966733145],[19.00548628101012,44.86023366960916]]]}},{"type":"Feature","properties":{"scalerank":1,"featurecla":"Admin-0 country","labelrank":4,"sovereignt":"Belarus","sov_a3":"BLR","adm0_dif":0,"level":2,"type":"Sovereign country","admin":"Belarus","adm0_a3":"BLR","geou_dif":0,"geounit":"Belarus","gu_a3":"BLR","su_dif":0,"subunit":"Belarus","su_a3":"BLR","brk_diff":0,"name":"Belarus","name_long":"Belarus","brk_a3":"BLR","brk_name":"Belarus","brk_group":null,"abbrev":"Bela.","postal":"BY","formal_en":"Republic of Belarus","formal_fr":null,"note_adm0":null,"note_brk":null,"name_sort":"Belarus","name_alt":null,"mapcolor7":1,"mapcolor8":1,"mapcolor9":5,"mapcolor13":11,"pop_est":9648533,"gdp_md_est":114100,"pop_year":-99,"lastcensus":2009,"gdp_year":-99,"economy":"6. Developing region","income_grp":"3. Upper middle income","wikipedia":-99,"fips_10":null,"iso_a2":"BY","iso_a3":"BLR","iso_n3":"112","un_a3":"112","wb_a2":"BY","wb_a3":"BLR","woe_id":-99,"adm0_a3_is":"BLR","adm0_a3_us":"BLR","adm0_a3_un":-99,"adm0_a3_wb":-99,"continent":"Europe","region_un":"Europe","subregion":"Eastern Europe","region_wb":"Europe & Central Asia","name_len":7,"long_len":7,"abbrev_len":5,"tiny":-99,"homepart":1,"filename":"BLR.geojson"},"geometry":{"type":"Polygon","coordinates":[[[23.48412763844985,53.91249766704114],[24.450683628037037,53.905702216194754],[25.536353794056993,54.28242340760253],[25.7684326514798,54.84696259217509],[26.58827924979039,55.16717560487167],[26.494331495883753,55.615106919977634],[27.10245975109453,55.783313707087686],[28.176709425577993,56.16912995057881],[29.229513380660308,55.918344224666356],[29.371571893030673,55.670090643936184],[29.896294386522356,55.78946320253041],[30.873909132620007,55.55097646750341],[30.971835971813135,55.08154775656404],[30.757533807098717,54.81177094178432],[31.38447228366374,54.157056382862436],[31.79142418796224,53.97463857687212],[31.731272820774507,53.79402944601202],[32.405598585751164,53.618045355842035],[32.69364301934604,53.35142080343212],[32.304519484188226,53.1327261419729],[31.49764367038293,53.1674268662569],[31.305200636528014,53.07399587667321],[31.54001834486226,52.74205231384636],[31.785998162571587,52.101677964885454],[30.927549269338982,52.04235342061438],[30.619454380014844,51.822806098022376],[30.555117221811457,51.31950348571566],[30.157363722460897,51.41613841410147],[29.254938185347925,51.368234361366895],[28.99283532076353,51.602044379271476],[28.61761274589225,51.42771393493484],[28.24161502453657,51.57222707783907],[27.454066196408434,51.59230337178447],[26.337958611768556,51.83228872334793],[25.327787713327005,51.91065603291855],[24.553106316839518,51.888461005249184],[24.00507775238421,51.61744395609446],[23.52707075368437,51.57845408793023],[23.508002150168693,52.02364655212473],[23.199493849386187,52.486977444053664],[23.799198846133375,52.69109935160657],[23.80493493011778,53.089731350306074],[23.527535841575002,53.470121568406555],[23.48412763844985,53.91249766704114]]]}},{"type":"Feature","properties":{"scalerank":1,"featurecla":"Admin-0 country","labelrank":4,"sovereignt":"Bulgaria","sov_a3":"BGR","adm0_dif":0,"level":2,"type":"Sovereign country","admin":"Bulgaria","adm0_a3":"BGR","geou_dif":0,"geounit":"Bulgaria","gu_a3":"BGR","su_dif":0,"subunit":"Bulgaria","su_a3":"BGR","brk_diff":0,"name":"Bulgaria","name_long":"Bulgaria","brk_a3":"BGR","brk_name":"Bulgaria","brk_group":null,"abbrev":"Bulg.","postal":"BG","formal_en":"Republic of Bulgaria","formal_fr":null,"note_adm0":null,"note_brk":null,"name_sort":"Bulgaria","name_alt":null,"mapcolor7":4,"mapcolor8":5,"mapcolor9":1,"mapcolor13":8,"pop_est":7204687,"gdp_md_est":93750,"pop_year":-99,"lastcensus":2011,"gdp_year":-99,"economy":"2. Developed region: nonG7","income_grp":"3. Upper middle income","wikipedia":-99,"fips_10":null,"iso_a2":"BG","iso_a3":"BGR","iso_n3":"100","un_a3":"100","wb_a2":"BG","wb_a3":"BGR","woe_id":-99,"adm0_a3_is":"BGR","adm0_a3_us":"BGR","adm0_a3_un":-99,"adm0_a3_wb":-99,"continent":"Europe","region_un":"Europe","subregion":"Eastern Europe","region_wb":"Europe & Central Asia","name_len":8,"long_len":8,"abbrev_len":5,"tiny":-99,"homepart":1,"filename":"BGR.geojson"},"geometry":{"type":"Polygon","coordinates":[[[22.65714969248299,44.23492300066128],[22.944832391051847,43.82378530534713],[23.33230228037632,43.89701080990471],[24.100679152124172,43.74105133724785],[25.569271681426926,43.68844472917472],[26.065158725699746,43.94349376075126],[27.242399529740908,44.175986029632405],[27.970107049275075,43.81246816667521],[28.558081495891997,43.70746165625813],[28.03909508638472,43.293171698574184],[27.67389773937805,42.577892361006214],[27.99672041190539,42.00735871028779],[27.135739373490477,42.14148489030134],[26.117041863720797,41.82690460872456],[26.106138136507212,41.32889883072778],[25.197201368925445,41.23448598893053],[24.49264489105803,41.583896185872035],[23.692073601992348,41.30908091894385],[22.952377150166452,41.33799388281115],[22.88137373219743,41.99929718685026],[22.380525750424592,42.32025950781509],[22.54501183440962,42.46136200618804],[22.43659467946128,42.580321153323936],[22.60480146657133,42.898518785161144],[22.986018507588483,43.211161200526966],[22.50015669118028,43.64281443946099],[22.410446404721597,44.00806346289995],[22.65714969248299,44.23492300066128]]]}},{"type":"Feature","properties":{"scalerank":1,"featurecla":"Admin-0 country","labelrank":4,"sovereignt":"Austria","sov_a3":"AUT","adm0_dif":0,"level":2,"type":"Sovereign country","admin":"Austria","adm0_a3":"AUT","geou_dif":0,"geounit":"Austria","gu_a3":"AUT","su_dif":0,"subunit":"Austria","su_a3":"AUT","brk_diff":0,"name":"Austria","name_long":"Austria","brk_a3":"AUT","brk_name":"Austria","brk_group":null,"abbrev":"Aust.","postal":"A","formal_en":"Republic of Austria","formal_fr":null,"note_adm0":null,"note_brk":null,"name_sort":"Austria","name_alt":null,"mapcolor7":3,"mapcolor8":1,"mapcolor9":3,"mapcolor13":4,"pop_est":8210281,"gdp_md_est":329500,"pop_year":-99,"lastcensus":2011,"gdp_year":-99,"economy":"2. Developed region: nonG7","income_grp":"1. High income: OECD","wikipedia":-99,"fips_10":null,"iso_a2":"AT","iso_a3":"AUT","iso_n3":"040","un_a3":"040","wb_a2":"AT","wb_a3":"AUT","woe_id":-99,"adm0_a3_is":"AUT","adm0_a3_us":"AUT","adm0_a3_un":-99,"adm0_a3_wb":-99,"continent":"Europe","region_un":"Europe","subregion":"Western Europe","region_wb":"Europe & Central Asia","name_len":7,"long_len":7,"abbrev_len":5,"tiny":-99,"homepart":1,"filename":"AUT.geojson"},"geometry":{"type":"Polygon","coordinates":[[[16.979666782304037,48.123497015976305],[16.90375410326726,47.71486562762833],[16.340584344150415,47.71290192320123],[16.534267612380376,47.49617096616912],[16.202298211337364,46.85238597267696],[16.011663852612656,46.6836107448117],[15.137091912504985,46.65870270444703],[14.63247155117483,46.43181732846955],[13.806475457421527,46.509306138691215],[12.376485223040817,46.76755910906985],[12.153088006243054,47.11539317482645],[11.16482791509327,46.94157949481273],[11.048555942436536,46.75135854754634],[10.44270145024663,46.89354625099743],[9.932448357796659,46.92072805438296],[9.479969516649021,47.10280996356337],[9.632931756232978,47.34760122332999],[9.59422610844635,47.52505809182027],[9.896068149463188,47.580196845075704],[10.402083774465211,47.30248769793916],[10.544504021861627,47.56639923765377],[11.426414015354737,47.523766181012974],[12.141357456112788,47.703083401065776],[12.620759718484491,47.67238760028441],[12.932626987365948,47.467645575544],[13.02585127122049,47.637583523135824],[12.884102817443903,48.28914581968792],[13.243357374737,48.416114813829054],[13.595945672264437,48.87717194273715],[14.33889773932472,48.5553052842072],[14.901447381254057,48.964401760445824],[15.253415561593982,49.039074205107575],[16.02964725105022,48.73389903420793],[16.49928266771877,48.78580801044511],[16.960288120194576,48.5969823268506],[16.879982944413,48.47001333270947],[16.979666782304037,48.123497015976305]]]}},{"type":"Feature","properties":{"scalerank":1,"featurecla":"Admin-0 country","labelrank":2,"sovereignt":"Belgium","sov_a3":"BEL","adm0_dif":0,"level":2,"type":"Sovereign country","admin":"Belgium","adm0_a3":"BEL","geou_dif":0,"geounit":"Belgium","gu_a3":"BEL","su_dif":0,"subunit":"Belgium","su_a3":"BEL","brk_diff":0,"name":"Belgium","name_long":"Belgium","brk_a3":"BEL","brk_name":"Belgium","brk_group":null,"abbrev":"Belg.","postal":"B","formal_en":"Kingdom of Belgium","formal_fr":null,"note_adm0":null,"note_brk":null,"name_sort":"Belgium","name_alt":null,"mapcolor7":3,"mapcolor8":2,"mapcolor9":1,"mapcolor13":8,"pop_est":10414336,"gdp_md_est":389300,"pop_year":-99,"lastcensus":2011,"gdp_year":-99,"economy":"2. Developed region: nonG7","income_grp":"1. High income: OECD","wikipedia":-99,"fips_10":null,"iso_a2":"BE","iso_a3":"BEL","iso_n3":"056","un_a3":"056","wb_a2":"BE","wb_a3":"BEL","woe_id":-99,"adm0_a3_is":"BEL","adm0_a3_us":"BEL","adm0_a3_un":-99,"adm0_a3_wb":-99,"continent":"Europe","region_un":"Europe","subregion":"Western Europe","region_wb":"Europe & Central Asia","name_len":7,"long_len":7,"abbrev_len":5,"tiny":-99,"homepart":1,"filename":"BEL.geojson"},"geometry":{"type":"Polygon","coordinates":[[[3.314971144228537,51.345780951536085],[4.047071160507527,51.26725861266857],[4.973991326526914,51.475023708698124],[5.606975945670001,51.037298488969775],[6.156658155958779,50.80372101501058],[6.043073357781111,50.128051662794235],[5.782417433300906,50.09032786722122],[5.674051954784829,49.529483547557504],[4.799221632515809,49.985373033236385],[4.286022983425084,49.907496649772554],[3.588184441755686,50.37899241800358],[3.123251580425801,50.780363267614575],[2.658422071960274,50.79684804951574],[2.513573032246143,51.14850617126183],[3.314971144228537,51.345780951536085]]]}},{"type":"Feature","properties":{"scalerank":1,"featurecla":"Admin-0 country","labelrank":6,"sovereignt":"Albania","sov_a3":"ALB","adm0_dif":0,"level":2,"type":"Sovereign country","admin":"Albania","adm0_a3":"ALB","geou_dif":0,"geounit":"Albania","gu_a3":"ALB","su_dif":0,"subunit":"Albania","su_a3":"ALB","brk_diff":0,"name":"Albania","name_long":"Albania","brk_a3":"ALB","brk_name":"Albania","brk_group":null,"abbrev":"Alb.","postal":"AL","formal_en":"Republic of Albania","formal_fr":null,"note_adm0":null,"note_brk":null,"name_sort":"Albania","name_alt":null,"mapcolor7":1,"mapcolor8":4,"mapcolor9":1,"mapcolor13":6,"pop_est":3639453,"gdp_md_est":21810,"pop_year":-99,"lastcensus":2001,"gdp_year":-99,"economy":"6. Developing region","income_grp":"4. Lower middle income","wikipedia":-99,"fips_10":null,"iso_a2":"AL","iso_a3":"ALB","iso_n3":"008","un_a3":"008","wb_a2":"AL","wb_a3":"ALB","woe_id":-99,"adm0_a3_is":"ALB","adm0_a3_us":"ALB","adm0_a3_un":-99,"adm0_a3_wb":-99,"continent":"Europe","region_un":"Europe","subregion":"Southern Europe","region_wb":"Europe & Central Asia","name_len":7,"long_len":7,"abbrev_len":4,"tiny":-99,"homepart":1,"filename":"ALB.geojson"},"geometry":{"type":"Polygon","coordinates":[[[20.590247430104906,41.855404161133606],[20.463175083099202,41.51508901627533],[20.605181919037364,41.08622630468522],[21.0200403174764,40.84272695572588],[20.999989861747224,40.58000397395397],[20.674996779063633,40.43499990494303],[20.615000441172754,40.11000682225938],[20.15001590341052,39.62499766698397],[19.980000441170144,39.69499339452341],[19.960001661873207,39.91500580500605],[19.406081984136733,40.250773423822466],[19.319058872157143,40.72723012955356],[19.40354983895429,41.40956574153546],[19.540027296637106,41.71998607031276],[19.37176883309496,41.877547512370654],[19.304486118250793,42.19574514420782],[19.738051385179627,42.688247382165564],[19.801613396898688,42.50009349219084],[20.0707,42.58863],[20.283754510181893,42.32025950781508],[20.52295,42.21787],[20.590247430104906,41.855404161133606]]]}},{"type":"Feature","properties":{"scalerank":1,"featurecla":"Admin-0 country","labelrank":2,"sovereignt":"Germany","sov_a3":"DEU","adm0_dif":0,"level":2,"type":"Sovereign country","admin":"Germany","adm0_a3":"DEU","geou_dif":0,"geounit":"Germany","gu_a3":"DEU","su_dif":0,"subunit":"Germany","su_a3":"DEU","brk_diff":0,"name":"Germany","name_long":"Germany","brk_a3":"DEU","brk_name":"Germany","brk_group":null,"abbrev":"Ger.","postal":"D","formal_en":"Federal Republic of Germany","formal_fr":null,"note_adm0":null,"note_brk":null,"name_sort":"Germany","name_alt":null,"mapcolor7":2,"mapcolor8":5,"mapcolor9":5,"mapcolor13":1,"pop_est":82329758,"gdp_md_est":2918000,"pop_year":-99,"lastcensus":2011,"gdp_year":-99,"economy":"1. Developed region: G7","income_grp":"1. High income: OECD","wikipedia":-99,"fips_10":null,"iso_a2":"DE","iso_a3":"DEU","iso_n3":"276","un_a3":"276","wb_a2":"DE","wb_a3":"DEU","woe_id":-99,"adm0_a3_is":"DEU","adm0_a3_us":"DEU","adm0_a3_un":-99,"adm0_a3_wb":-99,"continent":"Europe","region_un":"Europe","subregion":"Western Europe","region_wb":"Europe & Central Asia","name_len":7,"long_len":7,"abbrev_len":4,"tiny":-99,"homepart":1,"filename":"DEU.geojson"},"geometry":{"type":"Polygon","coordinates":[[[9.921906365609232,54.983104153048025],[9.9395797054529,54.596641954153256],[10.950112338920519,54.363607082733154],[10.939466993868448,54.00869334575258],[11.956252475643282,54.19648550070116],[12.518440382546714,54.47037059184799],[13.647467075259499,54.0755109727059],[14.119686313542559,53.75702912049103],[14.353315463934168,53.248171291713106],[14.074521111719434,52.98126251892535],[14.4375997250022,52.624850165408304],[14.685026482815713,52.089947414755216],[14.607098422919648,51.745188096719964],[15.016995883858781,51.10667409932171],[14.570718214586122,51.00233938252438],[14.307013380600665,51.11726776794137],[14.056227654688314,50.92691762959435],[13.338131951560397,50.73323436136428],[12.96683678554325,50.48407644306917],[12.240111118222671,50.26633779560723],[12.415190870827473,49.96912079528062],[12.521024204161336,49.54741526956275],[13.031328973043514,49.30706818297324],[13.595945672264577,48.877171942737164],[13.243357374737116,48.41611481382903],[12.884102817443873,48.28914581968786],[13.025851271220517,47.63758352313595],[12.932626987366064,47.467645575544],[12.620759718484521,47.672387600284424],[12.141357456112871,47.70308340106578],[11.426414015354851,47.52376618101306],[10.544504021861597,47.5663992376538],[10.402083774465325,47.30248769793916],[9.896068149463188,47.580196845075704],[9.594226108446376,47.5250580918202],[8.522611932009795,47.83082754169135],[8.317301466514095,47.61357982033627],[7.466759067422288,47.62058197691192],[7.593676385131062,48.33301911070373],[8.099278598674855,49.01778351500343],[6.658229607783709,49.20195831969164],[6.186320428094177,49.463802802114515],[6.242751092156993,49.90222565367873],[6.043073357781111,50.128051662794235],[6.156658155958779,50.80372101501058],[5.988658074577813,51.851615709025054],[6.589396599970826,51.852029120483394],[6.842869500362383,52.22844025329755],[7.092053256873896,53.14404328064489],[6.905139601274129,53.48216217713064],[7.100424838905268,53.69393219666267],[7.936239454793962,53.74829580343379],[8.121706170289485,53.52779246684429],[8.800734490604668,54.020785630908904],[8.572117954145368,54.39564647075405],[8.526229282270208,54.96274363872516],[9.282048780971136,54.83086538351631],[9.921906365609232,54.983104153048025]]]}},{"type":"Feature","properties":{"scalerank":1,"featurecla":"Admin-0 country","labelrank":4,"sovereignt":"Denmark","sov_a3":"DN1","adm0_dif":1,"level":2,"type":"Country","admin":"Denmark","adm0_a3":"DNK","geou_dif":0,"geounit":"Denmark","gu_a3":"DNK","su_dif":0,"subunit":"Denmark","su_a3":"DNK","brk_diff":0,"name":"Denmark","name_long":"Denmark","brk_a3":"DNK","brk_name":"Denmark","brk_group":null,"abbrev":"Den.","postal":"DK","formal_en":"Kingdom of Denmark","formal_fr":null,"note_adm0":null,"note_brk":null,"name_sort":"Denmark","name_alt":null,"mapcolor7":4,"mapcolor8":1,"mapcolor9":3,"mapcolor13":12,"pop_est":5500510,"gdp_md_est":203600,"pop_year":-99,"lastcensus":2011,"gdp_year":-99,"economy":"2. Developed region: nonG7","income_grp":"1. High income: OECD","wikipedia":-99,"fips_10":null,"iso_a2":"DK","iso_a3":"DNK","iso_n3":"208","un_a3":"208","wb_a2":"DK","wb_a3":"DNK","woe_id":-99,"adm0_a3_is":"DNK","adm0_a3_us":"DNK","adm0_a3_un":-99,"adm0_a3_wb":-99,"continent":"Europe","region_un":"Europe","subregion":"Northern Europe","region_wb":"Europe & Central Asia","name_len":7,"long_len":7,"abbrev_len":4,"tiny":-99,"homepart":1,"filename":"DNK.geojson"},"geometry":{"type":"MultiPolygon","coordinates":[[[[12.69000613775563,55.609990953180784],[12.089991082414741,54.80001455343793],[11.043543328504228,55.364863796604254],[10.903913608451631,55.77995473898875],[12.370904168353292,56.111407375708836],[12.69000613775563,55.609990953180784]]],[[[10.912181837618363,56.458621324277914],[10.667803989309988,56.08138336854722],[10.369992710011985,56.19000722922473],[9.649984978889307,55.469999498102055],[9.921906365609175,54.98310415304806],[9.282048780971136,54.83086538351616],[8.526229282270236,54.96274363872499],[8.120310906617588,55.517722683323626],[8.08997684086225,56.540011705137594],[8.256581658571264,56.8099693874303],[8.543437534223386,57.110002753316905],[9.42446902836761,57.17206614849948],[9.775558709358563,57.447940782289656],[10.580005730846153,57.73001658795485],[10.546105991262692,57.215732733786155],[10.250000034230226,56.89001618105047],[10.369992710011985,56.609981594460834],[10.912181837618363,56.458621324277914]]]]}},{"type":"Feature","properties":{"scalerank":1,"featurecla":"Admin-0 country","labelrank":6,"sovereignt":"Estonia","sov_a3":"EST","adm0_dif":0,"level":2,"type":"Sovereign country","admin":"Estonia","adm0_a3":"EST","geou_dif":0,"geounit":"Estonia","gu_a3":"EST","su_dif":0,"subunit":"Estonia","su_a3":"EST","brk_diff":0,"name":"Estonia","name_long":"Estonia","brk_a3":"EST","brk_name":"Estonia","brk_group":null,"abbrev":"Est.","postal":"EST","formal_en":"Republic of Estonia","formal_fr":null,"note_adm0":null,"note_brk":null,"name_sort":"Estonia","name_alt":null,"mapcolor7":3,"mapcolor8":2,"mapcolor9":1,"mapcolor13":10,"pop_est":1299371,"gdp_md_est":27410,"pop_year":-99,"lastcensus":2000,"gdp_year":-99,"economy":"2. Developed region: nonG7","income_grp":"1. High income: OECD","wikipedia":-99,"fips_10":null,"iso_a2":"EE","iso_a3":"EST","iso_n3":"233","un_a3":"233","wb_a2":"EE","wb_a3":"EST","woe_id":-99,"adm0_a3_is":"EST","adm0_a3_us":"EST","adm0_a3_un":-99,"adm0_a3_wb":-99,"continent":"Europe","region_un":"Europe","subregion":"Northern Europe","region_wb":"Europe & Central Asia","name_len":7,"long_len":7,"abbrev_len":4,"tiny":-99,"homepart":1,"filename":"EST.geojson"},"geometry":{"type":"Polygon","coordinates":[[[24.312862583114622,57.79342357037698],[24.42892785004216,58.38341339785328],[24.061198357853186,58.25737457949341],[23.42656009287668,58.612753404364625],[23.339795363058645,59.18724030215338],[24.604214308376182,59.46585378685502],[25.86418908051664,59.61109039981134],[26.949135776484525,59.445803331125774],[27.981114129353244,59.47538808861287],[28.13169925305175,59.30082510033092],[27.42016645682494,58.72458120384424],[27.71668582531572,57.79189911562437],[27.28818484875151,57.47452830670383],[26.463532342237787,57.47638865826633],[25.602809685984365,57.84752879498657],[25.16459354014927,57.97015696881519],[24.312862583114622,57.79342357037698]]]}},{"type":"Feature","properties":{"scalerank":1,"featurecla":"Admin-0 country","labelrank":2,"sovereignt":"Spain","sov_a3":"ESP","adm0_dif":0,"level":2,"type":"Sovereign country","admin":"Spain","adm0_a3":"ESP","geou_dif":0,"geounit":"Spain","gu_a3":"ESP","su_dif":0,"subunit":"Spain","su_a3":"ESP","brk_diff":0,"name":"Spain","name_long":"Spain","brk_a3":"ESP","brk_name":"Spain","brk_group":null,"abbrev":"Sp.","postal":"E","formal_en":"Kingdom of Spain","formal_fr":null,"note_adm0":null,"note_brk":null,"name_sort":"Spain","name_alt":null,"mapcolor7":4,"mapcolor8":5,"mapcolor9":5,"mapcolor13":5,"pop_est":40525002,"gdp_md_est":1403000,"pop_year":-99,"lastcensus":2001,"gdp_year":-99,"economy":"2. Developed region: nonG7","income_grp":"1. High income: OECD","wikipedia":-99,"fips_10":null,"iso_a2":"ES","iso_a3":"ESP","iso_n3":"724","un_a3":"724","wb_a2":"ES","wb_a3":"ESP","woe_id":-99,"adm0_a3_is":"ESP","adm0_a3_us":"ESP","adm0_a3_un":-99,"adm0_a3_wb":-99,"continent":"Europe","region_un":"Europe","subregion":"Southern Europe","region_wb":"Europe & Central Asia","name_len":5,"long_len":5,"abbrev_len":3,"tiny":-99,"homepart":1,"filename":"ESP.geojson"},"geometry":{"type":"Polygon","coordinates":[[[-9.034817674180246,41.88057058365967],[-8.984433152695672,42.59277517350627],[-9.392883673530648,43.0266246608127],[-7.978189663108309,43.748337714200986],[-6.754491746436756,43.567909450853925],[-5.411886359061596,43.574239813809676],[-4.347842779955783,43.40344920508504],[-3.51753170410609,43.4559007838613],[-1.901351284177764,43.42280202897834],[-1.502770961910528,43.03401439063043],[0.338046909190581,42.57954600683954],[0.701590610363894,42.7957343613326],[1.826793247087153,42.34338471126569],[2.985998976258458,42.47301504166986],[3.039484083680549,41.892120266276905],[2.091841668312185,41.22608856868309],[0.810524529635188,41.01473196060934],[0.721331007499401,40.678318386389236],[0.106691521819869,40.12393362076202],[-0.278711310212941,39.30997813573272],[0.111290724293838,38.73851430923303],[-0.467123582349103,38.29236583104115],[-0.683389451490598,37.642353827457825],[-1.438382127274849,37.443063666324214],[-2.146452602538119,36.67414419203728],[-3.415780808923387,36.65889964451118],[-4.368900926114719,36.677839056946155],[-4.995219285492211,36.32470815687964],[-5.377159796561457,35.946850083961465],[-5.866432257500904,36.02981659600606],[-6.236693894872175,36.367677110330334],[-6.520190802425404,36.94291331638732],[-7.453725551778092,37.09778758396607],[-7.537105475281024,37.42890432387623],[-7.166507941099865,37.803894354802225],[-7.029281175148796,38.07576406508977],[-7.374092169616318,38.37305858006492],[-7.098036668313128,39.03007274022378],[-7.498632371439725,39.62957103124181],[-7.066591559263529,39.71189158788277],[-7.026413133156595,40.184524237624245],[-6.864019944679385,40.33087189387483],[-6.851126674822552,41.11108266861753],[-6.389087693700915,41.381815497394655],[-6.668605515967656,41.883386949219584],[-7.251308966490824,41.91834605566505],[-7.422512986673795,41.79207469335983],[-8.013174607769912,41.790886135417125],[-8.263856980817792,42.28046865495034],[-8.67194576662672,42.13468943945496],[-9.034817674180246,41.88057058365967]]]}},{"type":"Feature","properties":{"scalerank":1,"featurecla":"Admin-0 country","labelrank":3,"sovereignt":"Finland","sov_a3":"FI1","adm0_dif":1,"level":2,"type":"Country","admin":"Finland","adm0_a3":"FIN","geou_dif":0,"geounit":"Finland","gu_a3":"FIN","su_dif":0,"subunit":"Finland","su_a3":"FIN","brk_diff":0,"name":"Finland","name_long":"Finland","brk_a3":"FIN","brk_name":"Finland","brk_group":null,"abbrev":"Fin.","postal":"FIN","formal_en":"Republic of Finland","formal_fr":null,"note_adm0":null,"note_brk":null,"name_sort":"Finland","name_alt":null,"mapcolor7":4,"mapcolor8":1,"mapcolor9":4,"mapcolor13":6,"pop_est":5250275,"gdp_md_est":193500,"pop_year":-99,"lastcensus":2010,"gdp_year":-99,"economy":"2. Developed region: nonG7","income_grp":"1. High income: OECD","wikipedia":-99,"fips_10":null,"iso_a2":"FI","iso_a3":"FIN","iso_n3":"246","un_a3":"246","wb_a2":"FI","wb_a3":"FIN","woe_id":-99,"adm0_a3_is":"FIN","adm0_a3_us":"FIN","adm0_a3_un":-99,"adm0_a3_wb":-99,"continent":"Europe","region_un":"Europe","subregion":"Northern Europe","region_wb":"Europe & Central Asia","name_len":7,"long_len":7,"abbrev_len":4,"tiny":-99,"homepart":1,"filename":"FIN.geojson"},"geometry":{"type":"Polygon","coordinates":[[[28.591929559043194,69.06477692328666],[28.445943637818658,68.36461294216404],[29.977426385220607,67.69829702419266],[29.054588657352326,66.94428620062193],[30.21765,65.80598],[29.544429559046986,64.94867157659048],[30.44468468600371,64.20445343693909],[30.035872430142714,63.55281362573855],[31.51609215671112,62.86768748641288],[31.139991082490894,62.35769277612441],[30.211107212044446,61.78002777774969],[28.069997592895277,60.503516547275844],[26.25517296723697,60.4239606797625],[24.496623976344523,60.05731639265165],[22.869694858499457,59.846373196036225],[22.290763787533592,60.39192129174154],[21.322244093519316,60.72016998965952],[21.544866163832694,61.7053294948718],[21.05921105315369,62.60739329695874],[21.536029493910803,63.18973501245587],[22.442744174903993,63.81781037053129],[24.730511508897536,64.90234365504082],[25.398067661243942,65.11142650009373],[25.294043003040404,65.53434642197045],[23.903378533633802,66.00692739527962],[23.565879754335583,66.39605093043743],[23.53947309743444,67.93600861273525],[21.978534783626117,68.6168456081807],[20.645592889089528,69.10624726020087],[21.244936150810673,69.37044302029307],[22.356237827247412,68.84174144151491],[23.66204959483076,68.89124746365054],[24.735679152126725,68.64955678982146],[25.68921268077636,69.09211375596904],[26.17962202322624,69.82529897732614],[27.732292107867863,70.16419302029625],[29.01557295097197,69.76649119737799],[28.591929559043194,69.06477692328666]]]}},{"type":"Feature","properties":{"scalerank":1,"featurecla":"Admin-0 country","labelrank":2,"sovereignt":"France","sov_a3":"FR1","adm0_dif":1,"level":2,"type":"Country","admin":"France","adm0_a3":"FRA","geou_dif":0,"geounit":"France","gu_a3":"FRA","su_dif":0,"subunit":"France","su_a3":"FRA","brk_diff":0,"name":"France","name_long":"France","brk_a3":"FRA","brk_name":"France","brk_group":null,"abbrev":"Fr.","postal":"F","formal_en":"French Republic","formal_fr":null,"note_adm0":null,"note_brk":null,"name_sort":"France","name_alt":null,"mapcolor7":7,"mapcolor8":5,"mapcolor9":9,"mapcolor13":11,"pop_est":64057792,"gdp_md_est":2128000,"pop_year":-99,"lastcensus":-99,"gdp_year":-99,"economy":"1. Developed region: G7","income_grp":"1. High income: OECD","wikipedia":-99,"fips_10":null,"iso_a2":"FR","iso_a3":"FRA","iso_n3":"250","un_a3":"250","wb_a2":"FR","wb_a3":"FRA","woe_id":-99,"adm0_a3_is":"FRA","adm0_a3_us":"FRA","adm0_a3_un":-99,"adm0_a3_wb":-99,"continent":"Europe","region_un":"Europe","subregion":"Western Europe","region_wb":"Europe & Central Asia","name_len":6,"long_len":6,"abbrev_len":3,"tiny":-99,"homepart":1,"filename":"FRA.geojson"},"geometry":{"type":"MultiPolygon","coordinates":[[[[-52.55642473001839,2.504705308437053],[-52.93965715189498,2.124857692875622],[-53.418465135295264,2.053389187016037],[-53.554839240113495,2.334896551925965],[-53.77852067728889,2.376702785650053],[-54.08806250671728,2.105556545414629],[-54.52475419779975,2.311848863123785],[-54.27122962097578,2.738747870286943],[-54.18428402364474,3.194172268075235],[-54.01150387227682,3.622569891774858],[-54.399542202356514,4.212611395683481],[-54.47863298197922,4.896755682795643],[-53.95804460307093,5.756548163267809],[-53.618452928264844,5.646529038918402],[-52.88214128275408,5.409850979021599],[-51.82334286152593,4.565768133966145],[-51.65779741067888,4.156232408053029],[-52.24933753112398,3.241094468596287],[-52.55642473001839,2.504705308437053]]],[[[9.560016310269134,42.15249197037957],[9.229752231491773,41.38000682226445],[8.77572309737536,41.58361196549444],[8.54421268070783,42.25651662858308],[8.746009148807588,42.62812185319396],[9.390000848028905,43.00998484961474],[9.560016310269134,42.15249197037957]]],[[[3.588184441755715,50.37899241800358],[4.28602298342514,49.907496649772554],[4.799221632515753,49.98537303323633],[5.674051954784885,49.52948354755745],[5.897759230176376,49.44266714130717],[6.186320428094206,49.46380280211446],[6.658229607783539,49.20195831969155],[8.099278598674772,49.01778351500337],[7.593676385131062,48.33301911070373],[7.46675906742223,47.620581976911865],[7.192202182655535,47.44976552997099],[6.736571079138088,47.54180125588289],[6.768713820023634,47.28770823830368],[6.037388950228972,46.72577871356191],[6.022609490593567,46.272989813820516],[6.500099724970454,46.42967275652944],[6.843592970414562,45.99114655210067],[6.802355177445662,45.70857982032867],[7.096652459347837,45.333098863295874],[6.749955275101711,45.02851797136759],[7.007562290076663,44.25476675066139],[7.549596388386163,44.12790110938482],[7.435184767291843,43.69384491634918],[6.529245232783068,43.12889232031836],[4.556962517931396,43.39965098731158],[3.10041059735272,43.075200507167125],[2.985998976258486,42.47301504166989],[1.826793247087181,42.34338471126566],[0.701590610363922,42.79573436133265],[0.338046909190581,42.579546006839564],[-1.502770961910471,43.03401439063049],[-1.901351284177735,43.42280202897834],[-1.384225226232957,44.02261037859017],[-1.193797573237362,46.014917710954876],[-2.225724249673789,47.06436269793821],[-2.963276129559574,47.570326646507965],[-4.491554938159481,47.95495433205642],[-4.592349819344747,48.68416046812695],[-3.295813971357745,48.901692409859635],[-1.616510789384932,48.644421291694584],[-1.933494025063254,49.776341864615766],[-0.98946895995536,49.347375800160876],[1.338761020522753,50.12717316344526],[1.6390010921385,50.946606350297515],[2.513573032246171,51.14850617126185],[2.658422071960331,50.79684804951566],[3.123251580425716,50.78036326761452],[3.588184441755715,50.37899241800358]]]]}},{"type":"Feature","properties":{"scalerank":1,"featurecla":"Admin-0 country","labelrank":2,"sovereignt":"United Kingdom","sov_a3":"GB1","adm0_dif":1,"level":2,"type":"Country","admin":"United Kingdom","adm0_a3":"GBR","geou_dif":0,"geounit":"United Kingdom","gu_a3":"GBR","su_dif":0,"subunit":"United Kingdom","su_a3":"GBR","brk_diff":0,"name":"United Kingdom","name_long":"United Kingdom","brk_a3":"GBR","brk_name":"United Kingdom","brk_group":null,"abbrev":"U.K.","postal":"GB","formal_en":"United Kingdom of Great Britain and Northern Ireland","formal_fr":null,"note_adm0":null,"note_brk":null,"name_sort":"United Kingdom","name_alt":null,"mapcolor7":6,"mapcolor8":6,"mapcolor9":6,"mapcolor13":3,"pop_est":62262000,"gdp_md_est":1977704,"pop_year":0,"lastcensus":2011,"gdp_year":2009,"economy":"1. Developed region: G7","income_grp":"1. High income: OECD","wikipedia":-99,"fips_10":null,"iso_a2":"GB","iso_a3":"GBR","iso_n3":"826","un_a3":"826","wb_a2":"GB","wb_a3":"GBR","woe_id":-99,"adm0_a3_is":"GBR","adm0_a3_us":"GBR","adm0_a3_un":-99,"adm0_a3_wb":-99,"continent":"Europe","region_un":"Europe","subregion":"Northern Europe","region_wb":"Europe & Central Asia","name_len":14,"long_len":14,"abbrev_len":4,"tiny":-99,"homepart":1,"filename":"GBR.geojson"},"geometry":{"type":"MultiPolygon","coordinates":[[[[-5.661948614921897,54.55460317648385],[-6.197884894220977,53.86756500916334],[-6.953730231137996,54.073702297575636],[-7.572167934591079,54.05995636658599],[-7.366030646178785,54.595840969452695],[-7.572167934591079,55.1316222194549],[-6.733847011736145,55.1728600124238],[-5.661948614921897,54.55460317648385]]],[[[-3.005004848635281,58.63500010846633],[-4.073828497728016,57.55302480735525],[-3.055001796877661,57.69001902936095],[-1.959280564776918,57.68479970969951],[-2.219988165689301,56.87001740175353],[-3.119003058271118,55.973793036515474],[-2.085009324543023,55.90999848085127],[-2.005675679673857,55.80490285035023],[-1.11499101399221,54.62498647726539],[-0.4304849918542,54.46437612570216],[0.184981316742039,53.32501414653103],[0.469976840831777,52.92999949809197],[1.681530795914739,52.739520168664],[1.559987827164377,52.09999848083601],[1.050561557630914,51.806760565795685],[1.449865349950301,51.28942780212196],[0.550333693045502,50.765738837275876],[-0.78751746255864,50.77498891865622],[-2.489997524414377,50.50001862243124],[-2.956273972984036,50.696879991247016],[-3.617448085942328,50.22835561787272],[-4.542507900399244,50.34183706318566],[-5.245023159191135,49.95999990498108],[-5.776566941745301,50.15967763935682],[-4.309989793301838,51.21000112568916],[-3.414850633142123,51.42600861266925],[-3.422719467108323,51.42684816740609],[-4.984367234710874,51.593466091510976],[-5.267295701508885,51.99140045837458],[-4.222346564134853,52.301355699261364],[-4.770013393564113,52.840004991255626],[-4.579999152026915,53.49500377055517],[-3.093830673788659,53.404547400669685],[-3.092079637047106,53.404440822963544],[-2.945008510744344,53.984999701546684],[-3.614700825433034,54.600936773292574],[-3.63000545898933,54.615012925833014],[-4.844169073903004,54.790971177786844],[-5.082526617849226,55.06160065369937],[-4.719112107756644,55.50847260194348],[-5.047980922862109,55.78398550070752],[-5.586397670911139,55.31114614523682],[-5.644998745130181,56.275014960344805],[-6.149980841486354,56.78500967063354],[-5.786824713555291,57.81884837506465],[-5.009998745127575,58.63001333275005],[-4.211494513353557,58.55084503847917],[-3.005004848635281,58.63500010846633]]]]}},{"type":"Feature","properties":{"scalerank":1,"featurecla":"Admin-0 country","labelrank":2,"sovereignt":"Italy","sov_a3":"ITA","adm0_dif":0,"level":2,"type":"Sovereign country","admin":"Italy","adm0_a3":"ITA","geou_dif":0,"geounit":"Italy","gu_a3":"ITA","su_dif":0,"subunit":"Italy","su_a3":"ITA","brk_diff":0,"name":"Italy","name_long":"Italy","brk_a3":"ITA","brk_name":"Italy","brk_group":null,"abbrev":"Italy","postal":"I","formal_en":"Italian Republic","formal_fr":null,"note_adm0":null,"note_brk":null,"name_sort":"Italy","name_alt":null,"mapcolor7":6,"mapcolor8":7,"mapcolor9":8,"mapcolor13":7,"pop_est":58126212,"gdp_md_est":1823000,"pop_year":-99,"lastcensus":2012,"gdp_year":-99,"economy":"1. Developed region: G7","income_grp":"1. High income: OECD","wikipedia":-99,"fips_10":null,"iso_a2":"IT","iso_a3":"ITA","iso_n3":"380","un_a3":"380","wb_a2":"IT","wb_a3":"ITA","woe_id":-99,"adm0_a3_is":"ITA","adm0_a3_us":"ITA","adm0_a3_un":-99,"adm0_a3_wb":-99,"continent":"Europe","region_un":"Europe","subregion":"Southern Europe","region_wb":"Europe & Central Asia","name_len":5,"long_len":5,"abbrev_len":5,"tiny":-99,"homepart":1,"filename":"ITA.geojson"},"geometry":{"type":"MultiPolygon","coordinates":[[[[15.520376010813834,38.23115509699147],[15.160242954171736,37.44404551853782],[15.309897902089006,37.1342194687318],[15.099988234119449,36.6199872909954],[14.335228712632016,36.996630967754754],[13.826732618879928,37.10453135838019],[12.431003859108813,37.61294993748381],[12.570943637755136,38.12638113051968],[13.741156447004585,38.03496552179536],[14.76124922044616,38.143873602850505],[15.520376010813834,38.23115509699147]]],[[[9.210011834356266,41.20999136002422],[9.809975213264977,40.5000088567661],[9.669518670295673,39.177376410471794],[9.21481774255949,39.240473334300134],[8.80693566247973,38.90661774347847],[8.428302443077115,39.17184703221662],[8.38825320805094,40.378310858718805],[8.15999840661766,40.95000722916379],[8.709990675500109,40.89998444270523],[9.210011834356266,41.20999136002422]]],[[[12.376485223040843,46.76755910906987],[13.806475457421556,46.50930613869119],[13.698109978905478,46.016778062517375],[13.937630242578335,45.591015936864665],[13.141606479554298,45.73669179949541],[12.328581170306306,45.38177806251485],[12.383874952858605,44.88537425391908],[12.261453484759159,44.600482082694015],[12.589237094786483,44.091365871754476],[13.526905958722494,43.5877273626379],[14.029820997787027,42.76100779883248],[15.142569614327956,41.955139675456905],[15.926191033601896,41.96131500911574],[16.169897088290412,41.74029490820342],[15.889345737377797,41.5410822617182],[16.785001661860576,41.179605617836586],[17.519168735431208,40.87714345963224],[18.376687452882575,40.35562490494266],[18.4802470231954,40.168866278639825],[18.293385044028096,39.81077444107325],[17.738380161213286,40.2776710068303],[16.869595981522338,40.44223460546385],[16.448743116937322,39.79540070246648],[17.1714896989715,39.42469981542072],[17.05284061042934,38.9028712021373],[16.635088331781844,38.8435724960824],[16.100960727613057,37.98589874933418],[15.684086948314501,37.90884918878703],[15.687962680736321,38.214592800441864],[15.891981235424707,38.750942491199226],[16.109332309644312,38.96454702407769],[15.718813510814641,39.544072374014945],[15.413612501698822,40.04835683853517],[14.998495721098237,40.17294871679093],[14.70326826341477,40.604550279292624],[14.060671827865264,40.78634796809544],[13.627985060285397,41.188287258461656],[12.88808190273042,41.25308950455562],[12.10668257004491,41.70453481705741],[11.191906365614187,42.35542531998967],[10.511947869517797,42.931462510747224],[10.200028924204048,43.920006822274615],[9.702488234097814,44.03627879493132],[8.88894616052687,44.36633616797954],[8.428560825238577,44.23122813575242],[7.850766635783201,43.76714793555524],[7.435184767291843,43.69384491634918],[7.549596388386163,44.12790110938482],[7.007562290076663,44.25476675066139],[6.749955275101711,45.02851797136759],[7.096652459347837,45.333098863295874],[6.802355177445662,45.70857982032867],[6.843592970414562,45.99114655210067],[7.273850945676685,45.77694774025076],[7.755992058959833,45.82449005795928],[8.31662967289438,46.163642483090854],[8.489952426801295,46.00515086525175],[8.966305779667834,46.036931871111165],[9.182881707403112,46.44021474871698],[9.922836541390353,46.31489940040919],[10.363378126678668,46.483571275409844],[10.442701450246602,46.893546250997446],[11.048555942436508,46.7513585475464],[11.164827915093326,46.94157949481274],[12.153088006243081,47.11539317482644],[12.376485223040843,46.76755910906987]]]]}},{"type":"Feature","properties":{"scalerank":1,"featurecla":"Admin-0 country","labelrank":6,"sovereignt":"Kosovo","sov_a3":"KOS","adm0_dif":0,"level":2,"type":"Sovereign country","admin":"Kosovo","adm0_a3":"KOS","geou_dif":0,"geounit":"Kosovo","gu_a3":"KOS","su_dif":0,"subunit":"Kosovo","su_a3":"KOS","brk_diff":1,"name":"Kosovo","name_long":"Kosovo","brk_a3":"B57","brk_name":"Kosovo","brk_group":null,"abbrev":"Kos.","postal":"KO","formal_en":"Republic of Kosovo","formal_fr":null,"note_adm0":null,"note_brk":"Self admin.; Claimed by Serbia","name_sort":"Kosovo","name_alt":null,"mapcolor7":2,"mapcolor8":2,"mapcolor9":3,"mapcolor13":11,"pop_est":1804838,"gdp_md_est":5352,"pop_year":-99,"lastcensus":1981,"gdp_year":-99,"economy":"6. Developing region","income_grp":"4. Lower middle income","wikipedia":-99,"fips_10":null,"iso_a2":"-99","iso_a3":"-99","iso_n3":"-99","un_a3":"-099","wb_a2":"KV","wb_a3":"KSV","woe_id":-99,"adm0_a3_is":"SRB","adm0_a3_us":"KOS","adm0_a3_un":-99,"adm0_a3_wb":-99,"continent":"Europe","region_un":"Europe","subregion":"Southern Europe","region_wb":"Europe & Central Asia","name_len":6,"long_len":6,"abbrev_len":4,"tiny":-99,"homepart":1,"filename":"KOS.geojson"},"geometry":{"type":"Polygon","coordinates":[[[20.76216,42.05186],[20.71731000000011,41.84711],[20.59023,41.85541],[20.52295,42.21787],[20.28374,42.3202500000001],[20.0707,42.58863],[20.25758,42.81275000000011],[20.49679,42.88469],[20.63508,43.21671],[20.81448,43.27205],[20.95651,43.13094],[21.143395,43.06868500000012],[21.27421,42.90959],[21.43866,42.86255],[21.63302,42.67717],[21.77505,42.6827],[21.66292,42.43922],[21.54332,42.3202500000001],[21.57663598940212,42.24522439706186],[21.35270000000014,42.2068],[20.76216,42.05186]]]}},{"type":"Feature","properties":{"scalerank":1,"featurecla":"Admin-0 country","labelrank":3,"sovereignt":"Greece","sov_a3":"GRC","adm0_dif":0,"level":2,"type":"Sovereign country","admin":"Greece","adm0_a3":"GRC","geou_dif":0,"geounit":"Greece","gu_a3":"GRC","su_dif":0,"subunit":"Greece","su_a3":"GRC","brk_diff":0,"name":"Greece","name_long":"Greece","brk_a3":"GRC","brk_name":"Greece","brk_group":null,"abbrev":"Greece","postal":"GR","formal_en":"Hellenic Republic","formal_fr":null,"note_adm0":null,"note_brk":null,"name_sort":"Greece","name_alt":null,"mapcolor7":2,"mapcolor8":2,"mapcolor9":2,"mapcolor13":9,"pop_est":10737428,"gdp_md_est":343000,"pop_year":-99,"lastcensus":2011,"gdp_year":-99,"economy":"2. Developed region: nonG7","income_grp":"1. High income: OECD","wikipedia":-99,"fips_10":null,"iso_a2":"GR","iso_a3":"GRC","iso_n3":"300","un_a3":"300","wb_a2":"GR","wb_a3":"GRC","woe_id":-99,"adm0_a3_is":"GRC","adm0_a3_us":"GRC","adm0_a3_un":-99,"adm0_a3_wb":-99,"continent":"Europe","region_un":"Europe","subregion":"Southern Europe","region_wb":"Europe & Central Asia","name_len":6,"long_len":6,"abbrev_len":6,"tiny":-99,"homepart":1,"filename":"GRC.geojson"},"geometry":{"type":"MultiPolygon","coordinates":[[[[23.699980096133004,35.70500438083553],[24.24666507334868,35.368022365860156],[25.02501549652888,35.42499563246198],[25.769207797964185,35.35401805270908],[25.745023227651586,35.179997666966216],[26.290002882601723,35.29999034274792],[26.16499759288766,35.004995429009796],[24.724982130642303,34.91998769788961],[24.735007358506945,35.08499054619759],[23.51497846852811,35.27999156345098],[23.699980096133004,35.70500438083553]]],[[[26.604195590936282,41.562114569661105],[26.29460208507578,40.93626129817426],[26.056942172965506,40.824123440100834],[25.447677036244187,40.85254547786147],[24.92584842296094,40.94706167252323],[23.714811232200816,40.687129218095116],[24.407998894964066,40.1249929876241],[23.899967889102584,39.96200552017558],[23.3429993018608,39.96099782974579],[22.81398766448896,40.476005153966554],[22.62629886240478,40.25656118423919],[22.849747755634805,39.65931081802577],[23.3500272966526,39.19001129816726],[22.973099399515547,38.97090322524966],[23.530016310324953,38.51000112563847],[24.025024855248944,38.21999298761645],[24.040011020613605,37.655014553369426],[23.115002882589152,37.92001129816222],[23.409971958111072,37.409990749657396],[22.774971958108633,37.30501007745656],[23.15422529469862,36.422505804992056],[22.490028110451107,36.41000010837746],[21.670026482843696,36.8449864771942],[21.295010613701574,37.644989325504696],[21.120034213961333,38.31032339126273],[20.730032179454582,38.769985256498785],[20.217712029712857,39.340234686839636],[20.15001590341052,39.62499766698403],[20.615000441172782,40.11000682225943],[20.674996779063633,40.434999904943055],[20.99998986174728,40.58000397395397],[21.02004031747643,40.84272695572588],[21.674160597426976,40.93127452245798],[22.05537763844427,41.14986583105269],[22.597308383889015,41.130487168943205],[22.76177,41.3048],[22.952377150166566,41.33799388281122],[23.692073601992462,41.30908091894386],[24.49264489105803,41.58389618587205],[25.197201368925533,41.23448598893066],[26.106138136507184,41.32889883072784],[26.117041863720914,41.82690460872473],[26.604195590936282,41.562114569661105]]]]}},{"type":"Feature","properties":{"scalerank":1,"featurecla":"Admin-0 country","labelrank":6,"sovereignt":"Croatia","sov_a3":"HRV","adm0_dif":0,"level":2,"type":"Sovereign country","admin":"Croatia","adm0_a3":"HRV","geou_dif":0,"geounit":"Croatia","gu_a3":"HRV","su_dif":0,"subunit":"Croatia","su_a3":"HRV","brk_diff":0,"name":"Croatia","name_long":"Croatia","brk_a3":"HRV","brk_name":"Croatia","brk_group":null,"abbrev":"Cro.","postal":"HR","formal_en":"Republic of Croatia","formal_fr":null,"note_adm0":null,"note_brk":null,"name_sort":"Croatia","name_alt":null,"mapcolor7":5,"mapcolor8":4,"mapcolor9":5,"mapcolor13":1,"pop_est":4489409,"gdp_md_est":82390,"pop_year":-99,"lastcensus":2011,"gdp_year":-99,"economy":"2. Developed region: nonG7","income_grp":"2. High income: nonOECD","wikipedia":-99,"fips_10":null,"iso_a2":"HR","iso_a3":"HRV","iso_n3":"191","un_a3":"191","wb_a2":"HR","wb_a3":"HRV","woe_id":-99,"adm0_a3_is":"HRV","adm0_a3_us":"HRV","adm0_a3_un":-99,"adm0_a3_wb":-99,"continent":"Europe","region_un":"Europe","subregion":"Southern Europe","region_wb":"Europe & Central Asia","name_len":7,"long_len":7,"abbrev_len":4,"tiny":-99,"homepart":1,"filename":"HRV.geojson"},"geometry":{"type":"Polygon","coordinates":[[[18.829838087650046,45.908877671891844],[19.072768995854176,45.52151113543209],[19.39047570158459,45.236515611342384],[19.00548628101012,44.86023366960916],[18.553214145591653,45.08158966733145],[17.861783481526402,45.067740383477144],[17.002146030351014,45.233776760430935],[16.534939406000206,45.21160757097772],[16.318156772535872,45.00412669532591],[15.959367303133376,45.233776760430935],[15.750026075918981,44.81871165626256],[16.23966027188453,44.35114329688571],[16.456442905348865,44.04123973243128],[16.91615644701733,43.66772247982567],[17.297373488034452,43.44634064388736],[17.674921502358984,43.02856252702361],[18.56,42.65],[18.450016310304818,42.47999136002932],[17.509970330483327,42.849994615239154],[16.930005730871642,43.20999848080038],[16.015384555737683,43.50721548112722],[15.174453973052096,44.243191229827914],[15.376250441151795,44.31791535092208],[14.920309279040508,44.73848399512946],[14.901602410550877,45.07606028907611],[14.258747592839995,45.233776760430935],[13.952254672917034,44.80212352149687],[13.656975538801191,45.13693512631596],[13.67940311041582,45.48414907488501],[13.715059848697251,45.500323798192426],[14.4119682145855,45.46616567644742],[14.595109490627918,45.63494090431282],[14.935243767972963,45.471695054702764],[15.327674594797427,45.452316392593325],[15.323953891672431,45.731782538427694],[15.671529575267641,45.8341535507979],[15.768732944408612,46.23810822202353],[16.564808383864943,46.50375092221981],[16.882515089595415,46.38063182228444],[17.630066359129557,45.9517691106941],[18.45606245288286,45.75948110613615],[18.829838087650046,45.908877671891844]]]}},{"type":"Feature","properties":{"scalerank":1,"featurecla":"Admin-0 country","labelrank":5,"sovereignt":"Hungary","sov_a3":"HUN","adm0_dif":0,"level":2,"type":"Sovereign country","admin":"Hungary","adm0_a3":"HUN","geou_dif":0,"geounit":"Hungary","gu_a3":"HUN","su_dif":0,"subunit":"Hungary","su_a3":"HUN","brk_diff":0,"name":"Hungary","name_long":"Hungary","brk_a3":"HUN","brk_name":"Hungary","brk_group":null,"abbrev":"Hun.","postal":"HU","formal_en":"Republic of Hungary","formal_fr":null,"note_adm0":null,"note_brk":null,"name_sort":"Hungary","name_alt":null,"mapcolor7":4,"mapcolor8":6,"mapcolor9":1,"mapcolor13":5,"pop_est":9905596,"gdp_md_est":196600,"pop_year":-99,"lastcensus":2001,"gdp_year":-99,"economy":"2. Developed region: nonG7","income_grp":"1. High income: OECD","wikipedia":-99,"fips_10":null,"iso_a2":"HU","iso_a3":"HUN","iso_n3":"348","un_a3":"348","wb_a2":"HU","wb_a3":"HUN","woe_id":-99,"adm0_a3_is":"HUN","adm0_a3_us":"HUN","adm0_a3_un":-99,"adm0_a3_wb":-99,"continent":"Europe","region_un":"Europe","subregion":"Eastern Europe","region_wb":"Europe & Central Asia","name_len":7,"long_len":7,"abbrev_len":4,"tiny":-99,"homepart":1,"filename":"HUN.geojson"},"geometry":{"type":"Polygon","coordinates":[[[16.202298211337364,46.85238597267696],[16.534267612380376,47.49617096616912],[16.340584344150415,47.71290192320123],[16.90375410326726,47.71486562762833],[16.979666782304037,48.123497015976305],[17.48847293464982,47.86746613218621],[17.857132602620027,47.758428860050365],[18.696512892336926,47.880953681014404],[18.77702477384767,48.081768296900634],[19.17436486173989,48.11137889260387],[19.661363559658497,48.26661489520866],[19.769470656013112,48.202691148463614],[20.239054396249347,48.32756724709692],[20.473562045989866,48.56285004332181],[20.801293979584926,48.623854071642384],[21.872236362401736,48.31997081155002],[22.08560835133485,48.42226430927179],[22.640819939878753,48.15023956968735],[22.710531447040495,47.88219391538941],[22.099767693782834,47.6724392767167],[21.62651492685387,46.99423777931816],[21.02195234547125,46.3160879583519],[20.220192498462836,46.127468980486555],[19.596044549241583,46.17172984474454],[18.82983808764996,45.90887767189193],[18.45606245288286,45.759481106136136],[17.630066359129557,45.95176911069419],[16.8825150895953,46.38063182228444],[16.564808383864857,46.50375092221983],[16.370504998447416,46.8413272161665],[16.202298211337364,46.85238597267696]]]}},{"type":"Feature","properties":{"scalerank":1,"featurecla":"Admin-0 country","labelrank":3,"sovereignt":"Ireland","sov_a3":"IRL","adm0_dif":0,"level":2,"type":"Sovereign country","admin":"Ireland","adm0_a3":"IRL","geou_dif":0,"geounit":"Ireland","gu_a3":"IRL","su_dif":0,"subunit":"Ireland","su_a3":"IRL","brk_diff":0,"name":"Ireland","name_long":"Ireland","brk_a3":"IRL","brk_name":"Ireland","brk_group":null,"abbrev":"Ire.","postal":"IRL","formal_en":"Ireland","formal_fr":null,"note_adm0":null,"note_brk":null,"name_sort":"Ireland","name_alt":null,"mapcolor7":2,"mapcolor8":3,"mapcolor9":2,"mapcolor13":2,"pop_est":4203200,"gdp_md_est":188400,"pop_year":-99,"lastcensus":2011,"gdp_year":-99,"economy":"2. Developed region: nonG7","income_grp":"1. High income: OECD","wikipedia":-99,"fips_10":null,"iso_a2":"IE","iso_a3":"IRL","iso_n3":"372","un_a3":"372","wb_a2":"IE","wb_a3":"IRL","woe_id":-99,"adm0_a3_is":"IRL","adm0_a3_us":"IRL","adm0_a3_un":-99,"adm0_a3_wb":-99,"continent":"Europe","region_un":"Europe","subregion":"Northern Europe","region_wb":"Europe & Central Asia","name_len":7,"long_len":7,"abbrev_len":4,"tiny":-99,"homepart":1,"filename":"IRL.geojson"},"geometry":{"type":"Polygon","coordinates":[[[-6.197884894220991,53.86756500916336],[-6.03298539877761,53.15316417094435],[-6.788856573910849,52.260117906292336],[-8.56161658368356,51.669301255899356],[-9.977085740590269,51.82045482035307],[-9.16628251793078,52.86462881124268],[-9.688524542672454,53.8813626165853],[-8.327987433292009,54.66451894796863],[-7.572167934591064,55.13162221945487],[-7.366030646178785,54.59584096945272],[-7.572167934591064,54.059956366586],[-6.953730231138067,54.073702297575636],[-6.197884894220991,53.86756500916336]]]}},{"type":"Feature","properties":{"scalerank":1,"featurecla":"Admin-0 country","labelrank":3,"sovereignt":"Iceland","sov_a3":"ISL","adm0_dif":0,"level":2,"type":"Sovereign country","admin":"Iceland","adm0_a3":"ISL","geou_dif":0,"geounit":"Iceland","gu_a3":"ISL","su_dif":0,"subunit":"Iceland","su_a3":"ISL","brk_diff":0,"name":"Iceland","name_long":"Iceland","brk_a3":"ISL","brk_name":"Iceland","brk_group":null,"abbrev":"Iceland","postal":"IS","formal_en":"Republic of Iceland","formal_fr":null,"note_adm0":null,"note_brk":null,"name_sort":"Iceland","name_alt":null,"mapcolor7":1,"mapcolor8":4,"mapcolor9":4,"mapcolor13":9,"pop_est":306694,"gdp_md_est":12710,"pop_year":-99,"lastcensus":-99,"gdp_year":-99,"economy":"2. Developed region: nonG7","income_grp":"1. High income: OECD","wikipedia":-99,"fips_10":null,"iso_a2":"IS","iso_a3":"ISL","iso_n3":"352","un_a3":"352","wb_a2":"IS","wb_a3":"ISL","woe_id":-99,"adm0_a3_is":"ISL","adm0_a3_us":"ISL","adm0_a3_un":-99,"adm0_a3_wb":-99,"continent":"Europe","region_un":"Europe","subregion":"Northern Europe","region_wb":"Europe & Central Asia","name_len":7,"long_len":7,"abbrev_len":7,"tiny":-99,"homepart":1,"filename":"ISL.geojson"},"geometry":{"type":"Polygon","coordinates":[[[-14.508695441129236,66.45589223903141],[-14.739637417041605,65.8087482774403],[-13.60973222497981,65.12667104761987],[-14.909833746794902,64.36408193628868],[-17.794438035543422,63.67874909123385],[-18.656245896874992,63.49638296167582],[-19.97275468594276,63.64363495549153],[-22.762971971110158,63.960178941495386],[-21.778484259517683,64.40211579045551],[-23.95504391121911,64.89112986923348],[-22.184402635170358,65.0849681667603],[-22.227423265053332,65.37859365504272],[-24.326184047939336,65.61118927678847],[-23.65051469572309,66.26251902939522],[-22.134922451250883,66.41046865504687],[-20.57628373867955,65.73211212835143],[-19.05684160000159,66.27660085719477],[-17.79862382655905,65.99385325790978],[-16.167818976292125,66.52679230413587],[-14.508695441129236,66.45589223903141]]]}},{"type":"Feature","properties":{"scalerank":1,"featurecla":"Admin-0 country","labelrank":5,"sovereignt":"Lithuania","sov_a3":"LTU","adm0_dif":0,"level":2,"type":"Sovereign country","admin":"Lithuania","adm0_a3":"LTU","geou_dif":0,"geounit":"Lithuania","gu_a3":"LTU","su_dif":0,"subunit":"Lithuania","su_a3":"LTU","brk_diff":0,"name":"Lithuania","name_long":"Lithuania","brk_a3":"LTU","brk_name":"Lithuania","brk_group":null,"abbrev":"Lith.","postal":"LT","formal_en":"Republic of Lithuania","formal_fr":null,"note_adm0":null,"note_brk":null,"name_sort":"Lithuania","name_alt":null,"mapcolor7":6,"mapcolor8":3,"mapcolor9":3,"mapcolor13":9,"pop_est":3555179,"gdp_md_est":63330,"pop_year":-99,"lastcensus":2011,"gdp_year":-99,"economy":"2. Developed region: nonG7","income_grp":"3. Upper middle income","wikipedia":-99,"fips_10":null,"iso_a2":"LT","iso_a3":"LTU","iso_n3":"440","un_a3":"440","wb_a2":"LT","wb_a3":"LTU","woe_id":-99,"adm0_a3_is":"LTU","adm0_a3_us":"LTU","adm0_a3_un":-99,"adm0_a3_wb":-99,"continent":"Europe","region_un":"Europe","subregion":"Northern Europe","region_wb":"Europe & Central Asia","name_len":9,"long_len":9,"abbrev_len":5,"tiny":-99,"homepart":1,"filename":"LTU.geojson"},"geometry":{"type":"Polygon","coordinates":[[[22.731098667092652,54.327536932993326],[22.65105187347254,54.582740993866736],[22.75776370615526,54.85657440858138],[22.315723504330577,55.015298570365864],[21.268448927503467,55.190481675835315],[21.055800408622414,56.03107636171106],[22.201156853939494,56.33780182557948],[23.878263787539964,56.273671373105266],[24.860684441840757,56.37252838807963],[25.000934279080894,56.16453074810484],[25.533046502390334,56.10029694276603],[26.494331495883753,55.615106919977634],[26.58827924979039,55.16717560487167],[25.7684326514798,54.84696259217509],[25.536353794056993,54.28242340760253],[24.450683628037037,53.905702216194754],[23.48412763844985,53.91249766704114],[23.24398725758951,54.22056671814914],[22.731098667092652,54.327536932993326]]]}},{"type":"Feature","properties":{"scalerank":1,"featurecla":"Admin-0 country","labelrank":5,"sovereignt":"Latvia","sov_a3":"LVA","adm0_dif":0,"level":2,"type":"Sovereign country","admin":"Latvia","adm0_a3":"LVA","geou_dif":0,"geounit":"Latvia","gu_a3":"LVA","su_dif":0,"subunit":"Latvia","su_a3":"LVA","brk_diff":0,"name":"Latvia","name_long":"Latvia","brk_a3":"LVA","brk_name":"Latvia","brk_group":null,"abbrev":"Lat.","postal":"LV","formal_en":"Republic of Latvia","formal_fr":null,"note_adm0":null,"note_brk":null,"name_sort":"Latvia","name_alt":null,"mapcolor7":4,"mapcolor8":7,"mapcolor9":6,"mapcolor13":13,"pop_est":2231503,"gdp_md_est":38860,"pop_year":-99,"lastcensus":2011,"gdp_year":-99,"economy":"2. Developed region: nonG7","income_grp":"3. Upper middle income","wikipedia":-99,"fips_10":null,"iso_a2":"LV","iso_a3":"LVA","iso_n3":"428","un_a3":"428","wb_a2":"LV","wb_a3":"LVA","woe_id":-99,"adm0_a3_is":"LVA","adm0_a3_us":"LVA","adm0_a3_un":-99,"adm0_a3_wb":-99,"continent":"Europe","region_un":"Europe","subregion":"Northern Europe","region_wb":"Europe & Central Asia","name_len":6,"long_len":6,"abbrev_len":4,"tiny":-99,"homepart":1,"filename":"LVA.geojson"},"geometry":{"type":"Polygon","coordinates":[[[21.055800408622414,56.03107636171106],[21.09042361825797,56.78387278912293],[21.581866489353672,57.41187063254993],[22.524341261492875,57.75337433535076],[23.318452996522097,57.00623647727487],[24.12072960785343,57.02569265403277],[24.312862583114622,57.79342357037698],[25.16459354014927,57.97015696881519],[25.602809685984365,57.84752879498657],[26.463532342237787,57.47638865826633],[27.28818484875151,57.47452830670383],[27.77001590344093,57.24425812441123],[27.855282016722526,56.75932648378429],[28.176709425577993,56.16912995057881],[27.10245975109453,55.783313707087686],[26.494331495883753,55.615106919977634],[25.533046502390334,56.10029694276603],[25.000934279080894,56.16453074810484],[24.860684441840757,56.37252838807963],[23.878263787539964,56.273671373105266],[22.201156853939494,56.33780182557948],[21.055800408622414,56.03107636171106]]]}},{"type":"Feature","properties":{"scalerank":1,"featurecla":"Admin-0 country","labelrank":6,"sovereignt":"Luxembourg","sov_a3":"LUX","adm0_dif":0,"level":2,"type":"Sovereign country","admin":"Luxembourg","adm0_a3":"LUX","geou_dif":0,"geounit":"Luxembourg","gu_a3":"LUX","su_dif":0,"subunit":"Luxembourg","su_a3":"LUX","brk_diff":0,"name":"Luxembourg","name_long":"Luxembourg","brk_a3":"LUX","brk_name":"Luxembourg","brk_group":null,"abbrev":"Lux.","postal":"L","formal_en":"Grand Duchy of Luxembourg","formal_fr":null,"note_adm0":null,"note_brk":null,"name_sort":"Luxembourg","name_alt":null,"mapcolor7":1,"mapcolor8":7,"mapcolor9":3,"mapcolor13":7,"pop_est":491775,"gdp_md_est":39370,"pop_year":-99,"lastcensus":2011,"gdp_year":-99,"economy":"2. Developed region: nonG7","income_grp":"1. High income: OECD","wikipedia":-99,"fips_10":null,"iso_a2":"LU","iso_a3":"LUX","iso_n3":"442","un_a3":"442","wb_a2":"LU","wb_a3":"LUX","woe_id":-99,"adm0_a3_is":"LUX","adm0_a3_us":"LUX","adm0_a3_un":-99,"adm0_a3_wb":-99,"continent":"Europe","region_un":"Europe","subregion":"Western Europe","region_wb":"Europe & Central Asia","name_len":10,"long_len":10,"abbrev_len":4,"tiny":5,"homepart":1,"filename":"LUX.geojson"},"geometry":{"type":"Polygon","coordinates":[[[6.043073357781111,50.128051662794235],[6.242751092156993,49.90222565367873],[6.186320428094177,49.463802802114515],[5.897759230176405,49.44266714130703],[5.674051954784829,49.529483547557504],[5.782417433300906,50.09032786722122],[6.043073357781111,50.128051662794235]]]}},{"type":"Feature","properties":{"scalerank":1,"featurecla":"Admin-0 country","labelrank":6,"sovereignt":"Macedonia","sov_a3":"MKD","adm0_dif":0,"level":2,"type":"Sovereign country","admin":"Macedonia","adm0_a3":"MKD","geou_dif":0,"geounit":"Macedonia","gu_a3":"MKD","su_dif":0,"subunit":"Macedonia","su_a3":"MKD","brk_diff":0,"name":"Macedonia","name_long":"Macedonia","brk_a3":"MKD","brk_name":"Macedonia","brk_group":null,"abbrev":"Mkd.","postal":"MK","formal_en":"Former Yugoslav Republic of Macedonia","formal_fr":null,"note_adm0":null,"note_brk":null,"name_sort":"Macedonia, FYR","name_alt":null,"mapcolor7":5,"mapcolor8":3,"mapcolor9":7,"mapcolor13":3,"pop_est":2066718,"gdp_md_est":18780,"pop_year":-99,"lastcensus":2010,"gdp_year":-99,"economy":"6. Developing region","income_grp":"3. Upper middle income","wikipedia":-99,"fips_10":null,"iso_a2":"MK","iso_a3":"MKD","iso_n3":"807","un_a3":"807","wb_a2":"MK","wb_a3":"MKD","woe_id":-99,"adm0_a3_is":"MKD","adm0_a3_us":"MKD","adm0_a3_un":-99,"adm0_a3_wb":-99,"continent":"Europe","region_un":"Europe","subregion":"Southern Europe","region_wb":"Europe & Central Asia","name_len":9,"long_len":9,"abbrev_len":4,"tiny":-99,"homepart":1,"filename":"MKD.geojson"},"geometry":{"type":"Polygon","coordinates":[[[20.59023,41.85541],[20.71731000000011,41.84711],[20.76216,42.05186],[21.35270000000014,42.2068],[21.57663598940212,42.24522439706186],[21.917080000000112,42.30364],[22.38052575042468,42.32025950781508],[22.881373732197346,41.999297186850356],[22.952377150166512,41.33799388281119],[22.76177,41.3048],[22.597308383889015,41.130487168943205],[22.05537763844427,41.14986583105269],[21.674160597426976,40.93127452245795],[21.0200403174764,40.84272695572588],[20.60518,41.08622],[20.46315,41.5150900000001],[20.59023,41.85541]]]}},{"type":"Feature","properties":{"scalerank":1,"featurecla":"Admin-0 country","labelrank":6,"sovereignt":"Moldova","sov_a3":"MDA","adm0_dif":0,"level":2,"type":"Sovereign country","admin":"Moldova","adm0_a3":"MDA","geou_dif":0,"geounit":"Moldova","gu_a3":"MDA","su_dif":0,"subunit":"Moldova","su_a3":"MDA","brk_diff":0,"name":"Moldova","name_long":"Moldova","brk_a3":"MDA","brk_name":"Moldova","brk_group":null,"abbrev":"Mda.","postal":"MD","formal_en":"Republic of Moldova","formal_fr":null,"note_adm0":null,"note_brk":null,"name_sort":"Moldova","name_alt":null,"mapcolor7":3,"mapcolor8":5,"mapcolor9":4,"mapcolor13":12,"pop_est":4320748,"gdp_md_est":10670,"pop_year":-99,"lastcensus":2004,"gdp_year":-99,"economy":"6. Developing region","income_grp":"4. Lower middle income","wikipedia":-99,"fips_10":null,"iso_a2":"MD","iso_a3":"MDA","iso_n3":"498","un_a3":"498","wb_a2":"MD","wb_a3":"MDA","woe_id":-99,"adm0_a3_is":"MDA","adm0_a3_us":"MDA","adm0_a3_un":-99,"adm0_a3_wb":-99,"continent":"Europe","region_un":"Europe","subregion":"Eastern Europe","region_wb":"Europe & Central Asia","name_len":7,"long_len":7,"abbrev_len":4,"tiny":-99,"homepart":1,"filename":"MDA.geojson"},"geometry":{"type":"Polygon","coordinates":[[[26.619336785597795,48.22072622333347],[26.857823520624805,48.368210761094495],[27.522537469195154,48.467119452501116],[28.259546746541844,48.15556224221342],[28.670891147585163,48.1181485052341],[29.12269819511303,47.84909516050646],[29.05086795422733,47.51022695575249],[29.41513512545274,47.34664520933257],[29.559674106573112,46.928582872091326],[29.908851759569302,46.67436066343146],[29.838210076626297,46.52532583270169],[30.02465864433537,46.42393667254503],[29.75997195813639,46.34998769793536],[29.170653924279886,46.3792623968287],[29.072106967899295,46.517677720722496],[28.862972446414062,46.43788930926383],[28.93371748222162,46.2588304713725],[28.659987420371575,45.93998688413164],[28.485269402792767,45.5969070501459],[28.233553501099042,45.48828318946837],[28.0544429867754,45.944586086605625],[28.160017937947714,46.37156260841722],[28.128030226359044,46.810476386088254],[27.551166212684848,47.40511709247083],[27.233872918412743,47.82677094175638],[26.924176059687568,48.123264472030996],[26.619336785597795,48.22072622333347]]]}},{"type":"Feature","properties":{"scalerank":1,"featurecla":"Admin-0 country","labelrank":6,"sovereignt":"Montenegro","sov_a3":"MNE","adm0_dif":0,"level":2,"type":"Sovereign country","admin":"Montenegro","adm0_a3":"MNE","geou_dif":0,"geounit":"Montenegro","gu_a3":"MNE","su_dif":0,"subunit":"Montenegro","su_a3":"MNE","brk_diff":0,"name":"Montenegro","name_long":"Montenegro","brk_a3":"MNE","brk_name":"Montenegro","brk_group":null,"abbrev":"Mont.","postal":"ME","formal_en":"Montenegro","formal_fr":null,"note_adm0":null,"note_brk":null,"name_sort":"Montenegro","name_alt":null,"mapcolor7":4,"mapcolor8":1,"mapcolor9":4,"mapcolor13":5,"pop_est":672180,"gdp_md_est":6816,"pop_year":-99,"lastcensus":2011,"gdp_year":-99,"economy":"6. Developing region","income_grp":"3. Upper middle income","wikipedia":-99,"fips_10":null,"iso_a2":"ME","iso_a3":"MNE","iso_n3":"499","un_a3":"499","wb_a2":"ME","wb_a3":"MNE","woe_id":-99,"adm0_a3_is":"MNE","adm0_a3_us":"MNE","adm0_a3_un":-99,"adm0_a3_wb":-99,"continent":"Europe","region_un":"Europe","subregion":"Southern Europe","region_wb":"Europe & Central Asia","name_len":10,"long_len":10,"abbrev_len":5,"tiny":-99,"homepart":1,"filename":"MNE.geojson"},"geometry":{"type":"Polygon","coordinates":[[[19.801613396898688,42.50009349219084],[19.738051385179627,42.688247382165564],[19.3044900000001,42.19574],[19.37177000000014,41.87755],[19.16246,41.95502],[18.88214,42.28151],[18.45,42.48],[18.56,42.65],[18.70648,43.20011],[19.03165,43.43253],[19.21852,43.52384],[19.48389,43.35229],[19.63,43.21377997027054],[19.95857,43.10604],[20.3398,42.89852],[20.25758,42.81275000000011],[20.0707,42.58863],[19.801613396898688,42.50009349219084]]]}},{"type":"Feature","properties":{"scalerank":1,"featurecla":"Admin-0 country","labelrank":5,"sovereignt":"Netherlands","sov_a3":"NL1","adm0_dif":1,"level":2,"type":"Country","admin":"Netherlands","adm0_a3":"NLD","geou_dif":0,"geounit":"Netherlands","gu_a3":"NLD","su_dif":0,"subunit":"Netherlands","su_a3":"NLD","brk_diff":0,"name":"Netherlands","name_long":"Netherlands","brk_a3":"NLD","brk_name":"Netherlands","brk_group":null,"abbrev":"Neth.","postal":"NL","formal_en":"Kingdom of the Netherlands","formal_fr":null,"note_adm0":null,"note_brk":null,"name_sort":"Netherlands","name_alt":null,"mapcolor7":4,"mapcolor8":2,"mapcolor9":2,"mapcolor13":9,"pop_est":16715999,"gdp_md_est":672000,"pop_year":-99,"lastcensus":2011,"gdp_year":-99,"economy":"2. Developed region: nonG7","income_grp":"1. High income: OECD","wikipedia":-99,"fips_10":null,"iso_a2":"NL","iso_a3":"NLD","iso_n3":"528","un_a3":"528","wb_a2":"NL","wb_a3":"NLD","woe_id":-99,"adm0_a3_is":"NLD","adm0_a3_us":"NLD","adm0_a3_un":-99,"adm0_a3_wb":-99,"continent":"Europe","region_un":"Europe","subregion":"Western Europe","region_wb":"Europe & Central Asia","name_len":11,"long_len":11,"abbrev_len":5,"tiny":-99,"homepart":1,"filename":"NLD.geojson"},"geometry":{"type":"Polygon","coordinates":[[[6.074182570020923,53.510403347378144],[6.905139601274129,53.48216217713064],[7.092053256873896,53.14404328064489],[6.842869500362383,52.22844025329755],[6.589396599970826,51.852029120483394],[5.988658074577813,51.851615709025054],[6.156658155958779,50.80372101501058],[5.606975945670001,51.037298488969775],[4.973991326526914,51.475023708698124],[4.047071160507527,51.26725861266857],[3.314971144228537,51.34575511331991],[3.830288527043137,51.62054454203195],[4.705997348661185,53.09179840759776],[6.074182570020923,53.510403347378144]]]}},{"type":"Feature","properties":{"scalerank":1,"featurecla":"Admin-0 country","labelrank":3,"sovereignt":"Norway","sov_a3":"NOR","adm0_dif":0,"level":2,"type":"Sovereign country","admin":"Norway","adm0_a3":"NOR","geou_dif":0,"geounit":"Norway","gu_a3":"NOR","su_dif":0,"subunit":"Norway","su_a3":"NOR","brk_diff":0,"name":"Norway","name_long":"Norway","brk_a3":"NOR","brk_name":"Norway","brk_group":null,"abbrev":"Nor.","postal":"N","formal_en":"Kingdom of Norway","formal_fr":null,"note_adm0":null,"note_brk":null,"name_sort":"Norway","name_alt":null,"mapcolor7":5,"mapcolor8":3,"mapcolor9":8,"mapcolor13":12,"pop_est":4676305,"gdp_md_est":276400,"pop_year":-99,"lastcensus":2001,"gdp_year":-99,"economy":"2. Developed region: nonG7","income_grp":"1. High income: OECD","wikipedia":-99,"fips_10":null,"iso_a2":"NO","iso_a3":"NOR","iso_n3":"578","un_a3":"578","wb_a2":"NO","wb_a3":"NOR","woe_id":-99,"adm0_a3_is":"NOR","adm0_a3_us":"NOR","adm0_a3_un":-99,"adm0_a3_wb":-99,"continent":"Europe","region_un":"Europe","subregion":"Northern Europe","region_wb":"Europe & Central Asia","name_len":6,"long_len":6,"abbrev_len":4,"tiny":-99,"homepart":1,"filename":"NOR.geojson"},"geometry":{"type":"MultiPolygon","coordinates":[[[[28.165547316202915,71.18547435168051],[31.29341840996548,70.45378774685992],[30.005435011522792,70.1862588568849],[31.10107872897512,69.55808014594486],[29.399580519332886,69.15691600206307],[28.591929559043194,69.0647769232867],[29.01557295097197,69.76649119737797],[27.73229210786789,70.16419302029628],[26.1796220232263,69.82529897732616],[25.68921268077639,69.09211375596902],[24.73567915212672,68.64955678982145],[23.662049594830762,68.89124746365053],[22.356237827247412,68.84174144151494],[21.24493615081073,69.37044302029312],[20.64559288908958,69.10624726020085],[20.025268995857914,69.06513865831272],[19.878559604581255,68.40719432237262],[17.99386844246439,68.56739126247734],[17.729181756265348,68.01055186631623],[16.76887861498554,68.01393667263139],[16.108712192456835,67.3024555528369],[15.108411492583059,66.19386688909543],[13.55568973150909,64.78702769638147],[13.919905226302205,64.44542064071611],[13.57191613124877,64.04911408146967],[12.57993533697393,64.06621898055835],[11.93056928879423,63.128317572676984],[11.992064243221535,61.800362453856565],[12.631146681375242,61.29357168237009],[12.3003658382749,60.11793284773006],[11.468271925511175,59.432393296946],[11.027368605196926,58.856149400459394],[10.356556837616097,59.46980703392538],[8.382000359743643,58.31328847923328],[7.048748406613299,58.07888418235728],[5.665835402050419,58.58815542259367],[5.308234490590735,59.66323191999382],[4.992078077829007,61.970998033284275],[5.912900424837885,62.614472968182696],[8.553411085655766,63.45400828719647],[10.527709181366788,64.48603831649748],[12.358346795306375,65.87972585719316],[14.761145867581604,67.81064158799515],[16.43592736172897,68.56320547146169],[19.184028354578516,69.81744415961782],[21.378416375420613,70.25516937934606],[23.023742303161583,70.20207184516626],[24.546543409938522,71.03049673123724],[26.370049676221807,70.98626170519537],[28.165547316202915,71.18547435168051]]],[[[24.72412,77.85385],[22.49032,77.44493],[20.72601,77.67704],[21.41611,77.93504],[20.8119,78.25463],[22.88426,78.45494],[23.28134,78.07954],[24.72412,77.85385]]],[[[18.25183,79.70175],[21.54383,78.95611],[19.02737,78.5626],[18.47172,77.82669],[17.59441,77.63796],[17.1182,76.80941],[15.91315,76.77045],[13.76259,77.38035],[14.66956,77.73565],[13.1706,78.02493],[11.22231,78.8693],[10.44453,79.65239],[13.17077,80.01046],[13.71852,79.66039],[15.14282,79.67431],[15.52255,80.01608],[16.99085,80.05086],[18.25183,79.70175]]],[[[25.447625359811894,80.40734039989451],[27.4075057309135,80.05640574820046],[25.92465050629818,79.51783397085455],[23.02446577321362,79.4000117052291],[20.075188429451885,79.56682322866726],[19.897266473070914,79.84236196564751],[18.462263624757924,79.85988027619442],[17.368015170977458,80.31889618602702],[20.455992059010697,80.59815562613224],[21.9079447771154,80.35767934846209],[22.919252557067438,80.65714427359349],[25.447625359811894,80.40734039989451]]]]}},{"type":"Feature","properties":{"scalerank":1,"featurecla":"Admin-0 country","labelrank":2,"sovereignt":"Russia","sov_a3":"RUS","adm0_dif":0,"level":2,"type":"Sovereign country","admin":"Russia","adm0_a3":"RUS","geou_dif":0,"geounit":"Russia","gu_a3":"RUS","su_dif":0,"subunit":"Russia","su_a3":"RUS","brk_diff":0,"name":"Russia","name_long":"Russian Federation","brk_a3":"RUS","brk_name":"Russia","brk_group":null,"abbrev":"Rus.","postal":"RUS","formal_en":"Russian Federation","formal_fr":null,"note_adm0":null,"note_brk":null,"name_sort":"Russian Federation","name_alt":null,"mapcolor7":2,"mapcolor8":5,"mapcolor9":7,"mapcolor13":7,"pop_est":140041247,"gdp_md_est":2266000,"pop_year":-99,"lastcensus":2010,"gdp_year":-99,"economy":"3. Emerging region: BRIC","income_grp":"3. Upper middle income","wikipedia":-99,"fips_10":null,"iso_a2":"RU","iso_a3":"RUS","iso_n3":"643","un_a3":"643","wb_a2":"RU","wb_a3":"RUS","woe_id":-99,"adm0_a3_is":"RUS","adm0_a3_us":"RUS","adm0_a3_un":-99,"adm0_a3_wb":-99,"continent":"Europe","region_un":"Europe","subregion":"Eastern Europe","region_wb":"Europe & Central Asia","name_len":6,"long_len":18,"abbrev_len":4,"tiny":-99,"homepart":1,"filename":"RUS.geojson"},"geometry":{"type":"MultiPolygon","coordinates":[[[[143.64800744036287,50.74760040954151],[144.65414757708564,48.976390692737596],[143.17392785051723,49.30655141865037],[142.5586682476501,47.861575018904915],[143.53349246640406,46.83672801369249],[143.5052771343726,46.13790761980948],[142.74770063697392,46.74076487892657],[142.0920300640545,45.96675527605879],[141.90692508358504,46.80592886004655],[142.0184428244709,47.780132961612935],[141.90444461483506,48.85918854429956],[142.13580000220568,49.61516307229746],[142.1799833518153,50.95234243428192],[141.59407596249002,51.93543488220254],[141.68254601457366,53.30196645772878],[142.60693403541075,53.762145087287905],[142.2097489768154,54.22547597921687],[142.654786411713,54.36588084575388],[142.91461551327657,53.704577541714734],[143.26084760963207,52.74076040303905],[143.23526777564766,51.75666026468875],[143.64800744036287,50.74760040954151]]],[[[22.731098667092652,54.327536932993326],[20.892244500418652,54.312524929412575],[19.660640089606403,54.426083889373984],[19.888481479581344,54.8661603867715],[21.2684489275035,55.19048167583528],[22.315723504330606,55.0152985703659],[22.757763706155288,54.85657440858142],[22.651051873472568,54.58274099386671],[22.731098667092652,54.327536932993326]]],[[[-175.01425,66.58435],[-174.33983,66.33556],[-174.57182,67.06219],[-171.85731,66.91308],[-169.89958,65.97724],[-170.89107,65.54139],[-172.53025,65.43791],[-172.555,64.46079],[-172.95533,64.25269],[-173.89184,64.2826],[-174.65392,64.63125],[-175.98353,64.92288],[-176.20716,65.35667],[-177.22266,65.52024],[-178.35993,65.39052],[-178.90332,65.74044],[-178.68611,66.11211],[-179.88377,65.87456],[-179.43268,65.40411],[-180,64.97970870219837],[-180,68.96363636363635],[-177.55,68.2],[-174.92825,67.20589],[-175.01425,66.58435]]],[[[180.00000000000014,70.83219920854668],[178.9034250000001,70.78114],[178.7253,71.0988],[180.00000000000014,71.51571433642826],[180.00000000000014,70.83219920854668]]],[[[-178.69378,70.89302],[-180,70.83219920854668],[-180,71.51571433642826],[-179.871875,71.55762],[-179.02433,71.55553],[-177.577945,71.26948],[-177.663575,71.13277],[-178.69378,70.89302]]],[[[143.60385,73.21244],[142.08763,73.20544],[140.038155,73.31692],[139.86312,73.36983],[140.81171,73.76506],[142.06207,73.85758],[143.48283,73.47525],[143.60385,73.21244]]],[[[150.73167,75.08406],[149.575925,74.68892],[147.977465,74.778355],[146.11919,75.17298],[146.358485,75.49682],[148.22223,75.345845],[150.73167,75.08406]]],[[[145.086285,75.562625],[144.3,74.82],[140.61381,74.84768],[138.95544,74.61148],[136.97439,75.26167],[137.51176,75.94917],[138.831075,76.13676],[141.471615,76.09289],[145.086285,75.562625]]],[[[57.5356925799924,70.72046397570216],[56.94497928246395,70.63274323188668],[53.6773751157842,70.76265778266847],[53.41201663596539,71.2066616889202],[51.60189456564572,71.47475901965049],[51.45575361512422,72.01488108996514],[52.47827518088357,72.22944163684096],[52.444168735570855,72.77473135038485],[54.42761355979766,73.62754751249759],[53.50828982932515,73.74981395130015],[55.90245893740766,74.62748647734533],[55.631932814359715,75.08141225859717],[57.86864383324885,75.60939036732321],[61.170044386647504,76.25188345000814],[64.49836836127022,76.43905548776928],[66.2109770038551,76.80978221303124],[68.15705976753483,76.93969676381292],[68.85221113472512,76.54481130645462],[68.18057254422766,76.23364166940911],[64.637326287703,75.73775462513623],[61.58350752141476,75.2608845079468],[58.47708214705338,74.30905630156283],[56.98678551618801,73.33304352486624],[55.419335971910954,72.37126760526598],[55.622837762276305,71.54059479439033],[57.5356925799924,70.72046397570216]]],[[[106.97013000000013,76.97419],[107.24000000000015,76.48],[108.1538,76.72335000000015],[111.07726000000017,76.71],[113.33151,76.22224],[114.13417,75.84764],[113.88539,75.32779000000014],[112.77918,75.03186],[110.1512500000002,74.47673],[109.4,74.18],[110.64,74.04],[112.11919,73.78774000000011],[113.01954000000026,73.97693000000015],[113.52958000000032,73.33505000000011],[113.96881,73.59488],[115.56782,73.75285],[118.77633000000023,73.58772],[119.02,73.12],[123.20066000000011,72.97122],[123.25777000000018,73.73503000000011],[125.38000000000018,73.56],[126.97644,73.56549],[128.59126,73.03871],[129.05157,72.39872],[128.46000000000012,71.98],[129.7159900000002,71.19304],[131.28858000000028,70.78699000000012],[132.25350000000017,71.83630000000011],[133.85766000000032,71.38642000000016],[135.56193,71.65525000000014],[137.49755,71.34763],[138.23409000000018,71.62803],[139.86983000000012,71.48783000000014],[139.14791,72.4161900000001],[140.46817,72.84941000000013],[149.5,72.2],[150.3511800000002,71.60643],[152.96890000000022,70.84222],[157.00688,71.03141],[158.99779,70.86672],[159.83031000000025,70.45324],[159.70866,69.72198],[160.94053000000034,69.4372800000001],[162.27907000000013,69.64204],[164.05248000000014,69.66823],[165.94037000000023,69.47199],[167.83567,69.58269],[169.5776300000002,68.6938],[170.81688000000028,69.01363],[170.0082000000002,69.65276],[170.4534500000003,70.09703],[173.64391000000026,69.81743],[175.72403000000023,69.87725000000023],[178.6,69.4],[180.00000000000014,68.96363636363657],[180.00000000000014,64.97970870219848],[179.99281,64.97433],[178.70720000000026,64.53493],[177.41128000000018,64.60821],[178.31300000000024,64.07593],[178.9082500000002,63.251970000000135],[179.37034,62.982620000000104],[179.48636,62.56894],[179.22825000000014,62.30410000000015],[177.3643,62.5219],[174.56929000000022,61.76915],[173.68013,61.65261],[172.15,60.95],[170.6985000000001,60.33618],[170.3308500000003,59.88177],[168.90046,60.57355],[166.29498000000032,59.788550000000214],[165.84000000000023,60.16],[164.87674,59.7316],[163.53929000000014,59.86871],[163.21711000000025,59.21101],[162.0173300000001,58.24328],[162.05297,57.83912],[163.19191,57.61503000000011],[163.05794000000017,56.159240000000125],[162.12958000000023,56.12219],[161.70146,55.285680000000156],[162.11749000000017,54.85514],[160.36877000000032,54.34433],[160.02173000000022,53.20257],[158.5309400000002,52.958680000000236],[158.23118,51.94269],[156.7897900000003,51.01105],[156.42000000000016,51.7],[155.99182,53.15895],[155.43366000000012,55.38103000000012],[155.91442000000032,56.767920000000146],[156.75815,57.3647],[156.8103500000001,57.83204],[158.3643300000002,58.05575],[160.15064000000012,59.31477000000012],[161.87204,60.34300000000013],[163.66969,61.1409],[164.47355000000013,62.55061],[163.2584200000002,62.46627],[162.65791,61.6425],[160.1214800000001,60.54423],[159.30232,61.77396],[156.7206800000001,61.43442],[154.21806000000035,59.75818000000013],[155.04375,59.14495],[152.81185,58.88385],[151.26573000000025,58.78089],[151.33815000000013,59.50396],[149.78371,59.65573000000014],[148.54481,59.16448],[145.48722,59.33637],[142.19782000000018,59.03998],[138.95848000000032,57.08805],[135.12619,54.72959],[136.70171,54.603550000000126],[137.19342,53.97732],[138.1647,53.755010000000254],[138.80463,54.25455000000011],[139.90151,54.18968000000018],[141.34531,53.08957000000012],[141.37923,52.23877],[140.5974200000002,51.2396700000001],[140.51308,50.04553000000013],[140.06193000000022,48.44671000000017],[138.5547200000002,46.99965],[138.21971,46.30795],[136.86232,45.14350000000019],[135.5153500000002,43.989],[134.86939000000027,43.39821],[133.53687000000028,42.81147],[132.90627000000015,42.79849],[132.27807000000027,43.28456000000011],[130.93587000000014,42.55274],[130.78,42.22000000000019],[130.64000000000019,42.395],[130.6338664084098,42.90301463477056],[131.144687941615,42.92998973242695],[131.28855512911562,44.111519680348266],[131.02519000000026,44.96796],[131.8834542176596,45.32116160743652],[133.09712000000022,45.14409],[133.7696439963132,46.116926988299156],[134.1123500000002,47.21248000000014],[134.50081,47.578450000000146],[135.0263114767868,48.47822988544391],[133.37359581922803,48.18344167743484],[132.50669000000013,47.78896],[130.98726000000013,47.79013],[130.58229332898267,48.729687404976204],[129.3978178244205,49.440600084015614],[127.65740000000038,49.76027],[127.28745568248493,50.73979726826545],[126.93915652883786,51.3538941514059],[126.56439904185699,51.7842554795327],[125.94634891164647,52.79279857035695],[125.06821129771045,53.161044826868924],[123.57147,53.4588],[122.24574791879307,53.43172597921369],[121.00308475147037,53.25140106873124],[120.1770886577169,52.75388621684121],[120.725789015792,52.51622630473091],[120.7382,51.96411],[120.18208000000018,51.64355],[119.27939,50.58292],[119.28846072802585,50.14288279886196],[117.8792444194265,49.51098338479704],[116.67880089728621,49.888531399121405],[115.48569542853144,49.80517731383475],[114.96210981655038,50.14024730081513],[114.36245649623534,50.248302720737485],[112.89773969935439,49.54356537535699],[111.58123091028668,49.37796824807767],[110.66201053267886,49.13012807880585],[109.40244917199672,49.29296051695769],[108.47516727095127,49.28254771585071],[107.86817589725112,49.79370514586588],[106.88880415245532,50.27429596618029],[105.8865914245869,50.406019192092174],[104.62158,50.275320000000164],[103.67654544476036,50.089966132195144],[102.25589000000011,50.51056000000011],[102.06521,51.25991],[100.88948042196265,51.51685578063842],[99.98173221232356,51.63400625264395],[98.8614905131005,52.04736603454671],[97.82573978067452,51.01099518493325],[98.23176150919173,50.42240062112873],[97.25976000000023,49.72605],[95.81402000000017,49.977460000000114],[94.81594933469879,50.01343333597088],[94.14756635943561,50.48053660745716],[93.10421,50.49529],[92.23471154171969,50.80217072204175],[90.71366743364078,50.331811835321105],[88.80556684769559,49.47052073831247],[87.75126427607685,49.29719798440556],[87.35997033076269,49.21498078062916],[86.82935672398966,49.82667470966813],[85.5412699726825,49.69285858824816],[85.11555952346211,50.11730296487763],[84.41637739455304,50.311399644565824],[83.93511478061893,50.88924551045358],[83.38300377801247,51.069182847693895],[81.94598554883994,50.81219594990633],[80.56844689323546,51.38833649352844],[80.03555952344172,50.864750881547224],[77.80091556184433,53.40441498474754],[76.52517947785478,54.177003485727134],[76.89110029491346,54.49052440044193],[74.38482000000013,53.54685000000011],[73.42567874542053,53.489810289109755],[73.50851606638437,54.035616766976595],[72.22415001820221,54.37665538188679],[71.1801310566095,54.133285224008254],[70.86526655465516,55.169733588270105],[69.06816694527289,55.3852501491435],[68.1691003762589,54.97039175070438],[65.6668700000001,54.601250000000164],[65.17853356309595,54.35422781027208],[61.43660000000013,54.00625],[60.97806644068325,53.66499339457914],[61.699986199800634,52.97999644633427],[60.739993117114544,52.71998647725775],[60.92726850774025,52.447548326215006],[59.96753380721557,51.960420437215674],[61.58800337102414,51.272658799843185],[61.33742435084101,50.79907013610426],[59.93280724471557,50.842194118851836],[59.64228234237057,50.545442206415714],[58.36332000000013,51.06364],[56.77798,51.04355],[55.71694000000011,50.62171000000015],[54.532878452376195,51.02623973245937],[52.32872358583106,51.718652248738096],[50.76664839051219,51.69276235615987],[48.702381626181044,50.60512848571284],[48.577841424357615,49.874759629915644],[47.549480421749394,50.454698391311126],[46.75159630716277,49.35600576435374],[47.0436715024766,49.152038886097586],[46.46644575377629,48.39415233010493],[47.31524000000016,47.71585],[48.05725,47.74377],[48.694733514201886,47.0756281601779],[48.593250000000154,46.561040000000105],[49.101160000000135,46.39933],[48.64541000000011,45.80629],[47.67591,45.64149000000012],[46.68201,44.6092000000001],[47.59094,43.66016000000013],[47.49252,42.98658],[48.58437000000018,41.80888],[47.98728315612604,41.4058192001944],[47.81566572448466,41.151416124021345],[47.373315464066394,41.21973236751114],[46.686070591016716,41.827137152669906],[46.40495079934894,41.860675157227426],[45.7764,42.09244000000024],[45.470279168485916,42.50278066667005],[44.53762291848207,42.711992702803684],[43.93121000000011,42.5549600000001],[43.755990000000196,42.74083],[42.39440000000016,43.2203],[40.92219000000014,43.38215000000014],[40.07696495947985,43.553104153002494],[39.955008579271095,43.434997666999294],[38.68,44.28],[37.53912000000011,44.65721],[36.67546000000013,45.24469],[37.40317,45.4045100000001],[38.23295,46.24087],[37.67372,46.63657],[39.14767,47.04475000000013],[39.12120000000013,47.26336],[38.22353803889948,47.10218984637598],[38.25511233902981,47.54640045835697],[38.77057,47.82562000000024],[39.738277622238996,47.89893707945208],[39.89562000000015,48.23241],[39.67465,48.783820000000134],[40.08078901546949,49.30742991799937],[40.069040000000115,49.60105],[38.59498823421356,49.92646190042373],[38.010631137857075,49.91566152607473],[37.39345950699524,50.38395335550368],[36.626167840325394,50.225590928745135],[35.35611616388812,50.57719737405915],[35.37791,50.77394],[35.02218305841794,51.2075723333715],[34.2248157081544,51.255993150428935],[34.14197838719061,51.566413479206204],[34.39173058445723,51.768881740925906],[33.75269982273588,52.33507457133166],[32.71576053236716,52.23846548116216],[32.41205813978777,52.28869497334977],[32.15944000000022,52.061250000000115],[31.78597,52.10168],[31.54001834486226,52.74205231384644],[31.30520063652798,53.0739958766733],[31.49764,53.16743000000014],[32.304519484188376,53.132726141972846],[32.693643019346126,53.35142080343214],[32.405598585751164,53.618045355842014],[31.731272820774592,53.79402944601202],[31.791424187962406,53.974638576872195],[31.384472283663822,54.15705638286238],[30.75753380709878,54.811770941784395],[30.971835971813245,55.081547756564134],[30.87390913262007,55.55097646750351],[29.89629438652244,55.7894632025305],[29.37157189303079,55.67009064393628],[29.22951338066039,55.91834422466641],[28.17670942557794,56.16912995057879],[27.855282016722526,56.75932648378438],[27.770015903440992,57.244258124411196],[27.288184848751655,57.47452830670392],[27.71668582531578,57.79189911562445],[27.420150000000202,58.72457000000014],[28.131699253051863,59.300825100331],[27.98112,59.47537],[29.1177,60.02805000000012],[28.07,60.50352000000015],[30.211107212044652,61.78002777774969],[31.139991082491036,62.357692776124445],[31.51609215671127,62.867687486412905],[30.035872430142803,63.552813625738565],[30.444684686003736,64.20445343693908],[29.544429559047018,64.94867157659056],[30.21765,65.80598],[29.054588657352383,66.94428620062203],[29.977426385220696,67.69829702419275],[28.44594363781877,68.36461294216399],[28.591929559043365,69.0647769232867],[29.39955,69.15692000000018],[31.10108000000011,69.55811],[32.13272000000026,69.90595000000025],[33.77547,69.30142000000012],[36.51396,69.06342],[40.292340000000166,67.9324],[41.059870000000124,67.4571300000001],[41.12595000000019,66.79158000000012],[40.01583,66.26618000000013],[38.38295,65.9995300000001],[33.918710000000175,66.75961],[33.18444,66.63253],[34.81477,65.90015000000014],[34.87857425307877,65.4362128770482],[34.94391000000015,64.41437000000016],[36.23129,64.10945],[37.01273000000012,63.84983000000011],[37.14197000000016,64.33471],[36.539579035089815,64.76446],[37.17604000000014,65.14322000000013],[39.59345,64.52079000000018],[40.43560000000011,64.76446],[39.76260000000016,65.49682],[42.0930900000001,66.47623],[43.01604000000012,66.41858],[43.94975000000014,66.06908],[44.53226,66.75634000000014],[43.69839,67.35245],[44.18795000000014,67.95051],[43.45282,68.57079],[46.25000000000014,68.25],[46.82134000000016,67.68997],[45.55517,67.56652],[45.5620200000001,67.01005000000019],[46.34915000000015,66.6676700000001],[47.894160000000255,66.88455000000016],[48.13876,67.52238],[50.22766000000016,67.99867000000013],[53.71743000000018,68.85738000000012],[54.47171,68.80815],[53.48582000000013,68.20131],[54.72628,68.09702],[55.44268000000014,68.43866],[57.317020000000156,68.46628],[58.80200000000021,68.88082],[59.94142000000019,68.2784400000001],[61.07784000000018,68.94069],[60.03,69.52],[60.55,69.85],[63.50400000000016,69.54739],[64.888115,69.23483500000013],[68.51216000000014,68.09233000000017],[69.18068,68.61563000000012],[68.16444,69.14436],[68.13522,69.35649],[66.93008000000012,69.45461000000012],[67.25976,69.92873],[66.72492000000014,70.70889000000014],[66.69466,71.02897000000024],[68.54006000000011,71.93450000000024],[69.19636000000011,72.84336000000016],[69.94,73.04000000000013],[72.58754,72.7762900000001],[72.79603,72.22006],[71.8481100000001,71.40898],[72.47011,71.09019],[72.79188,70.39114],[72.56470000000022,69.02085],[73.66787,68.4079],[73.2387,67.7404],[71.28000000000011,66.32000000000016],[72.42301000000018,66.17267000000018],[72.82077,66.53267],[73.92099000000016,66.78946000000013],[74.1865100000002,67.28429],[75.052,67.76047000000017],[74.46926000000016,68.32899],[74.93584000000013,68.98918],[73.84236,69.07146],[73.60187000000022,69.62763],[74.3998,70.63175],[73.1011,71.44717000000026],[74.89082000000022,72.12119],[74.65926,72.83227],[75.15801000000019,72.85497000000011],[75.68351,72.30056000000013],[75.28898000000012,71.33556],[76.35911,71.15287000000015],[75.90313000000017,71.87401],[77.57665000000011,72.26717],[79.65202000000014,72.32011],[81.5,71.75],[80.61071000000013,72.58285000000012],[80.51109,73.6482],[82.25,73.85000000000011],[84.65526,73.80591000000018],[86.82230000000024,73.93688],[86.00956,74.45967000000014],[87.16682000000017,75.11643],[88.31571000000011,75.14393],[90.26,75.64],[92.90058,75.77333],[93.23421000000016,76.0472],[95.86000000000016,76.14],[96.67821,75.91548],[98.92254000000023,76.44689],[100.75967000000023,76.43028],[101.03532,76.86189],[101.99084000000013,77.2875400000002],[104.3516000000001,77.69792],[106.06664000000013,77.37389],[104.70500000000024,77.1274],[106.97013000000013,76.97419]]],[[[105.07547,78.30689],[99.43814,77.921],[101.2649,79.23399],[102.08635,79.34641],[102.837815,79.28129],[105.37243,78.71334],[105.07547,78.30689]]],[[[51.13618655783128,80.54728017854093],[49.79368452332071,80.4154277615482],[48.89441124857754,80.3395667589437],[48.754936557821765,80.17546824820084],[47.586119012244154,80.01018117951533],[46.502825962109654,80.24724681265437],[47.07245527526291,80.55942414012945],[44.846958042181114,80.58980988231718],[46.79913862487123,80.77191762971364],[48.318477410684665,80.78400991486996],[48.522806023966695,80.51456899690015],[49.09718956889091,80.75398590770843],[50.03976769389462,80.91888540315182],[51.52293297710369,80.6997256538019],[51.13618655783128,80.54728017854093]]],[[[99.93976,78.88094],[97.75794,78.7562],[94.97259,79.044745],[93.31288,79.4265],[92.5454,80.14379],[91.18107,80.34146],[93.77766,81.0246],[95.940895,81.2504],[97.88385,80.746975],[100.186655,79.780135],[99.93976,78.88094]]]]}},{"type":"Feature","properties":{"scalerank":1,"featurecla":"Admin-0 country","labelrank":6,"sovereignt":"Slovakia","sov_a3":"SVK","adm0_dif":0,"level":2,"type":"Sovereign country","admin":"Slovakia","adm0_a3":"SVK","geou_dif":0,"geounit":"Slovakia","gu_a3":"SVK","su_dif":0,"subunit":"Slovakia","su_a3":"SVK","brk_diff":0,"name":"Slovakia","name_long":"Slovakia","brk_a3":"SVK","brk_name":"Slovakia","brk_group":null,"abbrev":"Svk.","postal":"SK","formal_en":"Slovak Republic","formal_fr":null,"note_adm0":null,"note_brk":null,"name_sort":"Slovak Republic","name_alt":null,"mapcolor7":2,"mapcolor8":4,"mapcolor9":4,"mapcolor13":9,"pop_est":5463046,"gdp_md_est":119500,"pop_year":-99,"lastcensus":2011,"gdp_year":-99,"economy":"2. Developed region: nonG7","income_grp":"1. High income: OECD","wikipedia":-99,"fips_10":null,"iso_a2":"SK","iso_a3":"SVK","iso_n3":"703","un_a3":"703","wb_a2":"SK","wb_a3":"SVK","woe_id":-99,"adm0_a3_is":"SVK","adm0_a3_us":"SVK","adm0_a3_un":-99,"adm0_a3_wb":-99,"continent":"Europe","region_un":"Europe","subregion":"Eastern Europe","region_wb":"Europe & Central Asia","name_len":8,"long_len":8,"abbrev_len":4,"tiny":-99,"homepart":1,"filename":"SVK.geojson"},"geometry":{"type":"Polygon","coordinates":[[[18.853144158613617,49.49622976337764],[18.909574822676316,49.435845852244576],[19.320712517990472,49.571574001659194],[19.825022820726872,49.21712535256923],[20.41583947111985,49.43145335549977],[20.887955356538413,49.32877228453583],[21.607808058364213,49.47010732685409],[22.558137648211755,49.085738023467144],[22.28084191253356,48.82539215758067],[22.08560835133485,48.42226430927179],[21.872236362401736,48.31997081155002],[20.801293979584926,48.623854071642384],[20.473562045989866,48.56285004332181],[20.239054396249347,48.32756724709692],[19.769470656013112,48.202691148463614],[19.661363559658497,48.26661489520866],[19.17436486173989,48.11137889260387],[18.77702477384767,48.081768296900634],[18.696512892336926,47.880953681014404],[17.857132602620027,47.758428860050365],[17.48847293464982,47.86746613218621],[16.979666782304037,48.123497015976305],[16.879982944413,48.47001333270947],[16.960288120194576,48.5969823268506],[17.101984897538898,48.81696889911711],[17.545006951577108,48.80001902932537],[17.88648481616181,48.90347524677371],[17.913511590250465,48.996492824899086],[18.104972771891852,49.04398346617531],[18.170498488037964,49.271514797556435],[18.399993523846177,49.31500051533004],[18.554971144289482,49.49501536721878],[18.853144158613617,49.49622976337764]]]}},{"type":"Feature","properties":{"scalerank":1,"featurecla":"Admin-0 country","labelrank":6,"sovereignt":"Slovenia","sov_a3":"SVN","adm0_dif":0,"level":2,"type":"Sovereign country","admin":"Slovenia","adm0_a3":"SVN","geou_dif":0,"geounit":"Slovenia","gu_a3":"SVN","su_dif":0,"subunit":"Slovenia","su_a3":"SVN","brk_diff":0,"name":"Slovenia","name_long":"Slovenia","brk_a3":"SVN","brk_name":"Slovenia","brk_group":null,"abbrev":"Slo.","postal":"SLO","formal_en":"Republic of Slovenia","formal_fr":null,"note_adm0":null,"note_brk":null,"name_sort":"Slovenia","name_alt":null,"mapcolor7":2,"mapcolor8":3,"mapcolor9":2,"mapcolor13":12,"pop_est":2005692,"gdp_md_est":59340,"pop_year":-99,"lastcensus":2011,"gdp_year":-99,"economy":"2. Developed region: nonG7","income_grp":"1. High income: OECD","wikipedia":-99,"fips_10":null,"iso_a2":"SI","iso_a3":"SVN","iso_n3":"705","un_a3":"705","wb_a2":"SI","wb_a3":"SVN","woe_id":-99,"adm0_a3_is":"SVN","adm0_a3_us":"SVN","adm0_a3_un":-99,"adm0_a3_wb":-99,"continent":"Europe","region_un":"Europe","subregion":"Southern Europe","region_wb":"Europe & Central Asia","name_len":8,"long_len":8,"abbrev_len":4,"tiny":-99,"homepart":1,"filename":"SVN.geojson"},"geometry":{"type":"Polygon","coordinates":[[[13.806475457421527,46.509306138691215],[14.63247155117483,46.43181732846955],[15.137091912504985,46.65870270444703],[16.011663852612656,46.6836107448117],[16.202298211337364,46.85238597267696],[16.370504998447416,46.8413272161665],[16.564808383864857,46.50375092221983],[15.768732944408551,46.23810822202345],[15.671529575267556,45.83415355079788],[15.323953891672403,45.73178253842768],[15.327674594797427,45.45231639259323],[14.935243767972935,45.471695054702685],[14.595109490627804,45.634940904312714],[14.411968214585414,45.46616567644746],[13.715059848697221,45.50032379819237],[13.937630242578306,45.59101593686462],[13.698109978905478,46.01677806251735],[13.806475457421527,46.509306138691215]]]}},{"type":"Feature","properties":{"scalerank":1,"featurecla":"Admin-0 country","labelrank":3,"sovereignt":"Ukraine","sov_a3":"UKR","adm0_dif":0,"level":2,"type":"Sovereign country","admin":"Ukraine","adm0_a3":"UKR","geou_dif":0,"geounit":"Ukraine","gu_a3":"UKR","su_dif":0,"subunit":"Ukraine","su_a3":"UKR","brk_diff":0,"name":"Ukraine","name_long":"Ukraine","brk_a3":"UKR","brk_name":"Ukraine","brk_group":null,"abbrev":"Ukr.","postal":"UA","formal_en":"Ukraine","formal_fr":null,"note_adm0":null,"note_brk":null,"name_sort":"Ukraine","name_alt":null,"mapcolor7":5,"mapcolor8":1,"mapcolor9":6,"mapcolor13":3,"pop_est":45700395,"gdp_md_est":339800,"pop_year":-99,"lastcensus":2001,"gdp_year":-99,"economy":"6. Developing region","income_grp":"4. Lower middle income","wikipedia":-99,"fips_10":null,"iso_a2":"UA","iso_a3":"UKR","iso_n3":"804","un_a3":"804","wb_a2":"UA","wb_a3":"UKR","woe_id":-99,"adm0_a3_is":"UKR","adm0_a3_us":"UKR","adm0_a3_un":-99,"adm0_a3_wb":-99,"continent":"Europe","region_un":"Europe","subregion":"Eastern Europe","region_wb":"Europe & Central Asia","name_len":7,"long_len":7,"abbrev_len":4,"tiny":-99,"homepart":1,"filename":"UKR.geojson"},"geometry":{"type":"Polygon","coordinates":[[[31.785998162571587,52.101677964885454],[32.15941206231267,52.06126699483322],[32.41205813978763,52.28869497334975],[32.71576053236697,52.23846548116205],[33.7526998227357,52.335074571331695],[34.39173058445701,51.76888174092579],[34.14197838719039,51.56641347920623],[34.22481570815427,51.25599315042895],[35.02218305841788,51.20757233337145],[35.37792361831512,50.77395539001034],[35.35611616388795,50.577197374059054],[36.62616784032534,50.225590928745135],[37.39345950699507,50.38395335550359],[38.010631137856905,49.91566152607463],[38.59498823421342,49.92646190042363],[40.06905846533911,49.6010554062817],[40.08078901546935,49.307429917999286],[39.67466393408753,48.78381846780187],[39.89563235856758,48.23240509703143],[39.738277622238826,47.89893707945198],[38.7705847511412,47.825608222029814],[38.25511233902975,47.546400458356814],[38.22353803889942,47.10218984637588],[37.42513715998999,47.022220567404204],[36.75985477066439,46.698700263040934],[35.82368452326483,46.64596446388707],[34.96234174982388,46.27319651954964],[35.020787794745985,45.65121898048466],[35.51000857925317,45.40999339454619],[36.52999799983016,45.46998973243706],[36.33471276219916,45.113215643893966],[35.23999922052812,44.939996242851606],[33.882511020652885,44.36147858334407],[33.326420932760044,44.56487702084489],[33.54692426934946,45.03477081967489],[32.4541744321055,45.32746613217608],[32.630804477679135,45.519185695978905],[33.58816206231839,45.85156850848024],[33.29856733575471,46.080598456397844],[31.74414025241518,46.333347886737386],[31.675307244602408,46.70624502215554],[30.748748813609097,46.583100084004],[30.377608676888883,46.03241018328567],[29.603289015427432,45.293308010431126],[29.149724969201653,45.46492544207245],[28.679779493939378,45.304030870131704],[28.233553501099042,45.48828318946837],[28.485269402792767,45.5969070501459],[28.659987420371575,45.93998688413164],[28.93371748222162,46.2588304713725],[28.862972446414062,46.43788930926383],[29.072106967899295,46.517677720722496],[29.170653924279886,46.3792623968287],[29.75997195813639,46.34998769793536],[30.02465864433537,46.42393667254503],[29.838210076626297,46.52532583270169],[29.908851759569302,46.67436066343146],[29.559674106573112,46.928582872091326],[29.41513512545274,47.34664520933257],[29.05086795422733,47.51022695575249],[29.12269819511303,47.84909516050646],[28.670891147585163,48.1181485052341],[28.259546746541844,48.15556224221342],[27.522537469195154,48.467119452501116],[26.857823520624805,48.368210761094495],[26.619336785597795,48.22072622333347],[26.19745039236693,48.22088125263035],[25.9459411964024,47.987148749374214],[25.20774336111299,47.89105642352747],[24.866317172960578,47.73752574318831],[24.40205610525038,47.98187775328042],[23.76095828623741,47.985598456405455],[23.142236362406802,48.09634105080695],[22.710531447040495,47.88219391538941],[22.640819939878753,48.15023956968735],[22.08560835133485,48.42226430927179],[22.28084191253356,48.82539215758067],[22.558137648211755,49.085738023467144],[22.776418898212626,49.02739533140962],[22.518450148211603,49.47677358661974],[23.426508416444392,50.30850576435745],[23.922757195743262,50.42488108987875],[24.029985792748903,50.70540660257518],[23.52707075368437,51.57845408793023],[24.00507775238421,51.61744395609446],[24.553106316839518,51.888461005249184],[25.327787713327005,51.91065603291855],[26.337958611768556,51.83228872334793],[27.454066196408434,51.59230337178447],[28.24161502453657,51.57222707783907],[28.61761274589225,51.42771393493484],[28.99283532076353,51.602044379271476],[29.254938185347925,51.368234361366895],[30.157363722460897,51.41613841410147],[30.555117221811457,51.31950348571566],[30.619454380014844,51.822806098022376],[30.927549269338982,52.04235342061438],[31.785998162571587,52.101677964885454]]]}},{"type":"Feature","properties":{"scalerank":1,"featurecla":"Admin-0 country","labelrank":3,"sovereignt":"Sweden","sov_a3":"SWE","adm0_dif":0,"level":2,"type":"Sovereign country","admin":"Sweden","adm0_a3":"SWE","geou_dif":0,"geounit":"Sweden","gu_a3":"SWE","su_dif":0,"subunit":"Sweden","su_a3":"SWE","brk_diff":0,"name":"Sweden","name_long":"Sweden","brk_a3":"SWE","brk_name":"Sweden","brk_group":null,"abbrev":"Swe.","postal":"S","formal_en":"Kingdom of Sweden","formal_fr":null,"note_adm0":null,"note_brk":null,"name_sort":"Sweden","name_alt":null,"mapcolor7":1,"mapcolor8":4,"mapcolor9":2,"mapcolor13":4,"pop_est":9059651,"gdp_md_est":344300,"pop_year":-99,"lastcensus":-99,"gdp_year":-99,"economy":"2. Developed region: nonG7","income_grp":"1. High income: OECD","wikipedia":-99,"fips_10":null,"iso_a2":"SE","iso_a3":"SWE","iso_n3":"752","un_a3":"752","wb_a2":"SE","wb_a3":"SWE","woe_id":-99,"adm0_a3_is":"SWE","adm0_a3_us":"SWE","adm0_a3_un":-99,"adm0_a3_wb":-99,"continent":"Europe","region_un":"Europe","subregion":"Northern Europe","region_wb":"Europe & Central Asia","name_len":6,"long_len":6,"abbrev_len":4,"tiny":-99,"homepart":1,"filename":"SWE.geojson"},"geometry":{"type":"Polygon","coordinates":[[[22.183173455501926,65.72374054632017],[21.21351687997722,65.02600535751527],[21.369631381930958,64.41358795842429],[19.77887576669022,63.60955434839504],[17.84777916837521,62.74940013289681],[17.119554884518124,61.34116567651097],[17.83134606290639,60.63658336042741],[18.78772179533209,60.081914374422595],[17.86922488777634,58.9537661810587],[16.829185011470088,58.71982697207339],[16.447709588291474,57.041118069071885],[15.879785597403783,56.10430186626866],[14.666681349352075,56.200885118222175],[14.100721062891465,55.40778107362265],[12.942910597392057,55.36173737245058],[12.625100538797028,56.30708018658197],[11.787942335668674,57.44181712506307],[11.027368605196866,58.85614940045936],[11.468271925511146,59.43239329694604],[12.3003658382749,60.11793284773003],[12.631146681375183,61.293571682370136],[11.992064243221563,61.80036245385656],[11.93056928879423,63.12831757267698],[12.579935336973932,64.06621898055833],[13.571916131248711,64.04911408146971],[13.919905226302204,64.44542064071608],[13.55568973150909,64.78702769638151],[15.108411492583002,66.19386688909547],[16.108712192456778,67.30245555283689],[16.768878614985482,68.01393667263139],[17.729181756265348,68.01055186631628],[17.993868442464333,68.56739126247736],[19.878559604581255,68.40719432237258],[20.025268995857886,69.0651386583127],[20.645592889089528,69.10624726020087],[21.978534783626117,68.6168456081807],[23.53947309743444,67.93600861273525],[23.565879754335583,66.39605093043743],[23.903378533633802,66.00692739527962],[22.183173455501926,65.72374054632017]]]}},{"type":"Feature","properties":{"scalerank":1,"featurecla":"Admin-0 country","labelrank":3,"sovereignt":"Poland","sov_a3":"POL","adm0_dif":0,"level":2,"type":"Sovereign country","admin":"Poland","adm0_a3":"POL","geou_dif":0,"geounit":"Poland","gu_a3":"POL","su_dif":0,"subunit":"Poland","su_a3":"POL","brk_diff":0,"name":"Poland","name_long":"Poland","brk_a3":"POL","brk_name":"Poland","brk_group":null,"abbrev":"Pol.","postal":"PL","formal_en":"Republic of Poland","formal_fr":null,"note_adm0":null,"note_brk":null,"name_sort":"Poland","name_alt":null,"mapcolor7":3,"mapcolor8":7,"mapcolor9":1,"mapcolor13":2,"pop_est":38482919,"gdp_md_est":667900,"pop_year":-99,"lastcensus":2011,"gdp_year":-99,"economy":"2. Developed region: nonG7","income_grp":"1. High income: OECD","wikipedia":-99,"fips_10":null,"iso_a2":"PL","iso_a3":"POL","iso_n3":"616","un_a3":"616","wb_a2":"PL","wb_a3":"POL","woe_id":-99,"adm0_a3_is":"POL","adm0_a3_us":"POL","adm0_a3_un":-99,"adm0_a3_wb":-99,"continent":"Europe","region_un":"Europe","subregion":"Eastern Europe","region_wb":"Europe & Central Asia","name_len":6,"long_len":6,"abbrev_len":4,"tiny":-99,"homepart":1,"filename":"POL.geojson"},"geometry":{"type":"Polygon","coordinates":[[[15.01699588385867,51.10667409932158],[14.607098422919535,51.745188096719964],[14.685026482815688,52.0899474147552],[14.4375997250022,52.62485016540838],[14.074521111719491,52.98126251892543],[14.353315463934138,53.24817129171297],[14.119686313542587,53.75702912049103],[14.802900424873458,54.05070628520575],[16.36347700365573,54.513158677785725],[17.622831658608675,54.85153595643291],[18.62085859546164,54.68260569927078],[18.696254510175464,54.43871877706929],[19.660640089606403,54.42608388937393],[20.892244500418624,54.31252492941253],[22.731098667092652,54.327536932993326],[23.24398725758951,54.22056671814914],[23.48412763844985,53.91249766704114],[23.527535841575002,53.470121568406555],[23.80493493011778,53.089731350306074],[23.799198846133375,52.69109935160657],[23.199493849386187,52.486977444053664],[23.508002150168693,52.02364655212473],[23.52707075368437,51.57845408793023],[24.029985792748903,50.70540660257518],[23.922757195743262,50.42488108987875],[23.426508416444392,50.30850576435745],[22.518450148211603,49.47677358661974],[22.776418898212626,49.02739533140962],[22.558137648211755,49.085738023467144],[21.607808058364213,49.47010732685409],[20.887955356538413,49.32877228453583],[20.41583947111985,49.43145335549977],[19.825022820726872,49.21712535256923],[19.320712517990472,49.571574001659194],[18.909574822676316,49.435845852244576],[18.853144158613617,49.49622976337764],[18.392913852622172,49.98862864847075],[17.64944502123899,50.049038397819956],[17.55456709155112,50.36214590107641],[16.868769158605655,50.47397370055603],[16.719475945714436,50.21574656839354],[16.176253289462267,50.42260732685791],[16.23862674323857,50.69773265237984],[15.490972120839727,50.78472992614321],[15.01699588385867,51.10667409932158]]]}},{"type":"Feature","properties":{"scalerank":1,"featurecla":"Admin-0 country","labelrank":2,"sovereignt":"Portugal","sov_a3":"PRT","adm0_dif":0,"level":2,"type":"Sovereign country","admin":"Portugal","adm0_a3":"PRT","geou_dif":0,"geounit":"Portugal","gu_a3":"PRT","su_dif":1,"subunit":"Portugal","su_a3":"PR1","brk_diff":0,"name":"Portugal","name_long":"Portugal","brk_a3":"PR1","brk_name":"Portugal","brk_group":null,"abbrev":"Port.","postal":"P","formal_en":"Portuguese Republic","formal_fr":null,"note_adm0":null,"note_brk":null,"name_sort":"Portugal","name_alt":null,"mapcolor7":1,"mapcolor8":7,"mapcolor9":1,"mapcolor13":4,"pop_est":10707924,"gdp_md_est":208627,"pop_year":-99,"lastcensus":2011,"gdp_year":0,"economy":"2. Developed region: nonG7","income_grp":"1. High income: OECD","wikipedia":-99,"fips_10":null,"iso_a2":"PT","iso_a3":"PRT","iso_n3":"620","un_a3":"620","wb_a2":"PT","wb_a3":"PRT","woe_id":-99,"adm0_a3_is":"PRT","adm0_a3_us":"PRT","adm0_a3_un":-99,"adm0_a3_wb":-99,"continent":"Europe","region_un":"Europe","subregion":"Southern Europe","region_wb":"Europe & Central Asia","name_len":8,"long_len":8,"abbrev_len":5,"tiny":-99,"homepart":1,"filename":"PRT.geojson"},"geometry":{"type":"Polygon","coordinates":[[[-9.034817674180246,41.88057058365967],[-8.67194576662672,42.13468943945496],[-8.263856980817792,42.28046865495034],[-8.013174607769912,41.790886135417125],[-7.422512986673795,41.79207469335983],[-7.251308966490824,41.91834605566505],[-6.668605515967656,41.883386949219584],[-6.389087693700915,41.381815497394655],[-6.851126674822552,41.11108266861753],[-6.864019944679385,40.33087189387483],[-7.026413133156595,40.184524237624245],[-7.066591559263529,39.71189158788277],[-7.498632371439725,39.62957103124181],[-7.098036668313128,39.03007274022378],[-7.374092169616318,38.37305858006492],[-7.029281175148796,38.07576406508977],[-7.166507941099865,37.803894354802225],[-7.537105475281024,37.42890432387623],[-7.453725551778092,37.09778758396607],[-7.855613165711985,36.83826854099627],[-8.382816127953689,36.97888011326246],[-8.898856980820327,36.86880931248078],[-8.746101446965554,37.65134552667661],[-8.839997524439879,38.26624339451761],[-9.287463751655224,38.3584858261586],[-9.526570603869715,38.73742910415491],[-9.446988898140232,39.39206614842837],[-9.048305223008427,39.75509308527877],[-8.977353481471681,40.15930613866581],[-8.768684047877102,40.76063894303019],[-8.79085323733031,41.18433401139126],[-8.99078935386757,41.54345937760364],[-9.034817674180246,41.88057058365967]]]}},{"type":"Feature","properties":{"scalerank":1,"featurecla":"Admin-0 country","labelrank":3,"sovereignt":"Romania","sov_a3":"ROU","adm0_dif":0,"level":2,"type":"Sovereign country","admin":"Romania","adm0_a3":"ROU","geou_dif":0,"geounit":"Romania","gu_a3":"ROU","su_dif":0,"subunit":"Romania","su_a3":"ROU","brk_diff":0,"name":"Romania","name_long":"Romania","brk_a3":"ROU","brk_name":"Romania","brk_group":null,"abbrev":"Rom.","postal":"RO","formal_en":"Romania","formal_fr":null,"note_adm0":null,"note_brk":null,"name_sort":"Romania","name_alt":null,"mapcolor7":1,"mapcolor8":4,"mapcolor9":3,"mapcolor13":13,"pop_est":22215421,"gdp_md_est":271400,"pop_year":-99,"lastcensus":2011,"gdp_year":-99,"economy":"2. Developed region: nonG7","income_grp":"3. Upper middle income","wikipedia":-99,"fips_10":null,"iso_a2":"RO","iso_a3":"ROU","iso_n3":"642","un_a3":"642","wb_a2":"RO","wb_a3":"ROM","woe_id":-99,"adm0_a3_is":"ROU","adm0_a3_us":"ROU","adm0_a3_un":-99,"adm0_a3_wb":-99,"continent":"Europe","region_un":"Europe","subregion":"Eastern Europe","region_wb":"Europe & Central Asia","name_len":7,"long_len":7,"abbrev_len":4,"tiny":-99,"homepart":1,"filename":"ROU.geojson"},"geometry":{"type":"Polygon","coordinates":[[[22.710531447040495,47.88219391538941],[23.142236362406802,48.09634105080695],[23.76095828623741,47.985598456405455],[24.40205610525038,47.98187775328042],[24.866317172960578,47.73752574318831],[25.20774336111299,47.89105642352747],[25.9459411964024,47.987148749374214],[26.19745039236693,48.22088125263035],[26.619336785597795,48.22072622333347],[26.924176059687568,48.123264472030996],[27.233872918412743,47.82677094175638],[27.551166212684848,47.40511709247083],[28.128030226359044,46.810476386088254],[28.160017937947714,46.37156260841722],[28.0544429867754,45.944586086605625],[28.233553501099042,45.48828318946837],[28.679779493939378,45.304030870131704],[29.149724969201653,45.46492544207245],[29.603289015427432,45.293308010431126],[29.626543409958767,45.03539093686239],[29.141611769331835,44.82021027279904],[28.837857700320203,44.913873806328056],[28.558081495891997,43.70746165625813],[27.970107049275075,43.81246816667521],[27.242399529740908,44.175986029632405],[26.065158725699746,43.94349376075126],[25.569271681426926,43.68844472917472],[24.100679152124172,43.74105133724785],[23.33230228037632,43.89701080990471],[22.944832391051847,43.82378530534713],[22.65714969248299,44.23492300066128],[22.4740084164406,44.40922760678177],[22.705725538837356,44.57800283464702],[22.459022251075936,44.7025171982543],[22.14508792490281,44.47842234962059],[21.562022739353605,44.7689472519655],[21.483526238702233,45.18117015235778],[20.874312778413355,45.416375433934235],[20.762174920339987,45.734573065771436],[20.220192498462836,46.127468980486555],[21.02195234547125,46.3160879583519],[21.62651492685387,46.99423777931816],[22.099767693782834,47.6724392767167],[22.710531447040495,47.88219391538941]]]}},{"type":"Feature","properties":{"scalerank":1,"featurecla":"Admin-0 country","labelrank":5,"sovereignt":"Republic of Serbia","sov_a3":"SRB","adm0_dif":0,"level":2,"type":"Sovereign country","admin":"Republic of Serbia","adm0_a3":"SRB","geou_dif":0,"geounit":"Republic of Serbia","gu_a3":"SRB","su_dif":0,"subunit":"Republic of Serbia","su_a3":"SRB","brk_diff":0,"name":"Serbia","name_long":"Serbia","brk_a3":"SRB","brk_name":"Serbia","brk_group":null,"abbrev":"Serb.","postal":"RS","formal_en":"Republic of Serbia","formal_fr":null,"note_adm0":null,"note_brk":null,"name_sort":"Serbia","name_alt":null,"mapcolor7":3,"mapcolor8":3,"mapcolor9":2,"mapcolor13":10,"pop_est":7379339,"gdp_md_est":80340,"pop_year":-99,"lastcensus":2011,"gdp_year":-99,"economy":"6. Developing region","income_grp":"3. Upper middle income","wikipedia":-99,"fips_10":null,"iso_a2":"RS","iso_a3":"SRB","iso_n3":"688","un_a3":"688","wb_a2":"YF","wb_a3":"SRB","woe_id":-99,"adm0_a3_is":"SRB","adm0_a3_us":"SRB","adm0_a3_un":-99,"adm0_a3_wb":-99,"continent":"Europe","region_un":"Europe","subregion":"Southern Europe","region_wb":"Europe & Central Asia","name_len":6,"long_len":6,"abbrev_len":5,"tiny":-99,"homepart":1,"filename":"SRB.geojson"},"geometry":{"type":"Polygon","coordinates":[[[20.87431277841341,45.41637543393432],[21.48352623870221,45.18117015235788],[21.562022739353722,44.76894725196564],[22.145087924902896,44.47842234962059],[22.459022251075965,44.70251719825444],[22.70572553883744,44.57800283464701],[22.474008416440654,44.40922760678177],[22.657149692483074,44.234923000661354],[22.410446404721597,44.008063462900054],[22.500156691180223,43.642814439461006],[22.986018507588483,43.2111612005271],[22.60480146657136,42.898518785161116],[22.43659467946139,42.58032115332394],[22.54501183440965,42.46136200618804],[22.38052575042468,42.32025950781508],[21.917080000000112,42.30364],[21.57663598940212,42.24522439706186],[21.54332,42.3202500000001],[21.66292,42.43922],[21.77505,42.6827],[21.63302,42.67717],[21.43866,42.86255],[21.27421,42.90959],[21.143395,43.06868500000012],[20.95651,43.13094],[20.81448,43.27205],[20.63508,43.21671],[20.49679,42.88469],[20.25758,42.81275000000011],[20.3398,42.89852],[19.95857,43.10604],[19.63,43.21377997027054],[19.48389,43.35229],[19.21852,43.52384],[19.454,43.56810000000013],[19.59976,44.03847],[19.11761,44.42307000000011],[19.36803,44.863],[19.00548,44.86023],[19.39047570158459,45.236515611342384],[19.072768995854176,45.52151113543209],[18.82982,45.90888],[19.59604454924164,46.171729844744554],[20.220192498462893,46.12746898048658],[20.762174920339987,45.734573065771485],[20.87431277841341,45.41637543393432]]]}},{"type":"Feature","properties":{"scalerank":1,"featurecla":"Admin-0 country","labelrank":2,"sovereignt":"Turkey","sov_a3":"TUR","adm0_dif":0,"level":2,"type":"Sovereign country","admin":"Turkey","adm0_a3":"TUR","geou_dif":0,"geounit":"Turkey","gu_a3":"TUR","su_dif":0,"subunit":"Turkey","su_a3":"TUR","brk_diff":0,"name":"Turkey","name_long":"Turkey","brk_a3":"TUR","brk_name":"Turkey","brk_group":null,"abbrev":"Tur.","postal":"TR","formal_en":"Republic of Turkey","formal_fr":null,"note_adm0":null,"note_brk":null,"name_sort":"Turkey","name_alt":null,"mapcolor7":6,"mapcolor8":3,"mapcolor9":8,"mapcolor13":4,"pop_est":76805524,"gdp_md_est":902700,"pop_year":-99,"lastcensus":2000,"gdp_year":-99,"economy":"4. Emerging region: MIKT","income_grp":"3. Upper middle income","wikipedia":-99,"fips_10":null,"iso_a2":"TR","iso_a3":"TUR","iso_n3":"792","un_a3":"792","wb_a2":"TR","wb_a3":"TUR","woe_id":-99,"adm0_a3_is":"TUR","adm0_a3_us":"TUR","adm0_a3_un":-99,"adm0_a3_wb":-99,"continent":"Asia","region_un":"Asia","subregion":"Western Asia","region_wb":"Europe & Central Asia","name_len":6,"long_len":6,"abbrev_len":4,"tiny":-99,"homepart":1,"filename":"TUR.geojson"},"geometry":{"type":"MultiPolygon","coordinates":[[[[36.91312706884215,41.335358384764305],[38.34766482926452,40.94858612727572],[39.51260664242025,41.102762763018575],[40.373432651538245,41.01367259374734],[41.554084100110714,41.53565623632761],[42.619548781104555,41.58317271581993],[43.58274580259271,41.09214325618257],[43.7526579119685,40.74020091405882],[43.65643639504096,40.25356395116617],[44.400008579288766,40.00500031184231],[44.793989699082005,39.713002631177034],[44.109225294782355,39.428136298168056],[44.4214026222576,38.28128123631453],[44.22575564960053,37.97158437758935],[44.77269900897775,37.17044464776845],[44.29345177590286,37.00151439060635],[43.94225874204736,37.256227525372935],[42.77912560402186,37.38526357680581],[42.34959109881177,37.22987254490411],[41.21208947120303,37.07435232192173],[40.673259311695716,37.09127635349736],[39.52258019385252,36.71605377862602],[38.69989139176593,36.71292735447233],[38.16772749202416,36.90121043552779],[37.06676110204583,36.62303620050062],[36.739494256341374,36.817520453431115],[36.68538903173183,36.259699205056506],[36.41755008316309,36.0406169703551],[36.14976281102659,35.82153473565367],[35.782084995269855,36.274995429014915],[36.160821567537056,36.650605577128374],[35.55093631362834,36.56544281671134],[34.714553256984374,36.795532131490916],[34.02689497247647,36.21996002862397],[32.5091581560641,36.1075637883892],[31.699595167779567,36.64427521417261],[30.62162479017107,36.677864895162315],[30.39109622571712,36.26298065850698],[29.699975620245567,36.144357408181],[28.73290286633539,36.67683136651644],[27.64118655773737,36.658822129862756],[27.048767937943296,37.65336090753601],[26.318218214633045,38.208133246405396],[26.804700148228733,38.98576019953356],[26.17078535330438,39.463612168936464],[27.280019972449395,40.42001373957831],[28.819977654747216,40.46001129817221],[29.24000369641558,41.21999074967269],[31.145933872204434,41.08762156835706],[32.34797936374579,41.73626414648464],[33.51328291192752,42.018960069337304],[35.16770389175187,42.04022492122544],[36.91312706884215,41.335358384764305]]],[[[27.192376743282406,40.690565700842455],[26.35800906749779,40.15199392349649],[26.04335127127254,40.61775360774317],[26.056942172965336,40.82412344010075],[26.29460208507569,40.93626129817417],[26.604195590936282,41.56211456966102],[26.117041863720825,41.82690460872456],[27.135739373490505,42.14148489030131],[27.996720411905414,42.00735871028777],[28.115524529744444,41.622886054036286],[28.988442824018787,41.29993419042819],[28.80643842948675,41.05496206314854],[27.61901736828412,40.99982330989312],[27.192376743282406,40.690565700842455]]]]}}]}')},"5a59":function(n,e,t){},"81d5":function(n,e,t){"use strict";var r=t("7b0b"),o=t("23cb"),a=t("50c4");n.exports=function(n){var e=r(this),t=a(e.length),i=arguments.length,l=o(i>1?arguments[1]:void 0,t),u=i>2?arguments[2]:void 0,s=void 0===u?t:o(u,t);while(s>l)e[l++]=n;return e}},"99af":function(n,e,t){"use strict";var r=t("23e7"),o=t("d039"),a=t("e8b5"),i=t("861d"),l=t("7b0b"),u=t("50c4"),s=t("8418"),_=t("65f0"),c=t("1dde"),p=t("b622"),f=t("2d00"),m=p("isConcatSpreadable"),d=9007199254740991,g="Maximum allowed index exceeded",h=f>=51||!o((function(){var n=[];return n[m]=!1,n.concat()[0]!==n})),b=c("concat"),v=function(n){if(!i(n))return!1;var e=n[m];return void 0!==e?!!e:a(n)},y=!h||!b;r({target:"Array",proto:!0,forced:y},{concat:function(n){var e,t,r,o,a,i=l(this),c=_(i,0),p=0;for(e=-1,r=arguments.length;ed)throw TypeError(g);for(t=0;t=d)throw TypeError(g);s(c,p++,a)}return c.length=p,c}})},a434:function(n,e,t){"use strict";var r=t("23e7"),o=t("23cb"),a=t("a691"),i=t("50c4"),l=t("7b0b"),u=t("65f0"),s=t("8418"),_=t("1dde"),c=_("splice"),p=Math.max,f=Math.min,m=9007199254740991,d="Maximum allowed length exceeded";r({target:"Array",proto:!0,forced:!c},{splice:function(n,e){var t,r,_,c,g,h,b=l(this),v=i(b.length),y=o(n,v),w=arguments.length;if(0===w?t=r=0:1===w?(t=0,r=v-y):(t=w-2,r=f(p(a(e),0),v-y)),v+t-r>m)throw TypeError(d);for(_=u(b,r),c=0;cv-r+t;c--)delete b[c-1]}else if(t>r)for(c=v-r;c>y;c--)g=c+r-1,h=c+t-1,g in b?b[h]=b[g]:delete b[h];for(c=0;cn.length)&&(e=n.length);for(var t=0,r=new Array(e);t{}};function y(){for(var n,e=0,t=arguments.length,r={};e=0&&(t=n.slice(r+1),n=n.slice(0,r)),n&&!e.hasOwnProperty(n))throw new Error("unknown type: "+n);return{type:n,name:t}}))}function E(n,e){for(var t,r=0,o=n.length;r0)for(var t,r,o=new Array(t),a=0;a=w&&(w=y+1);while(!(v=g[w])&&++w=0;)(r=o[a])&&(i&&4^r.compareDocumentPosition(i)&&i.parentNode.insertBefore(r,i),i=r);return this},rn=function(n){function e(e,t){return e&&t?n(e.__data__,t.__data__):!e-!t}n||(n=on);for(var t=this._groups,r=t.length,o=new Array(r),a=0;ae?1:n>=e?0:NaN}var an=function(){var n=arguments[0];return arguments[0]=this,n.apply(null,arguments),this},ln=function(){return Array.from(this)},un=function(){for(var n=this._groups,e=0,t=n.length;e=0&&"xmlns"!==(e=n.slice(0,t))&&(n=n.slice(t+1)),fn.hasOwnProperty(e)?{space:fn[e],local:n}:n};function dn(n){return function(){this.removeAttribute(n)}}function gn(n){return function(){this.removeAttributeNS(n.space,n.local)}}function hn(n,e){return function(){this.setAttribute(n,e)}}function bn(n,e){return function(){this.setAttributeNS(n.space,n.local,e)}}function vn(n,e){return function(){var t=e.apply(this,arguments);null==t?this.removeAttribute(n):this.setAttribute(n,t)}}function yn(n,e){return function(){var t=e.apply(this,arguments);null==t?this.removeAttributeNS(n.space,n.local):this.setAttributeNS(n.space,n.local,t)}}var wn=function(n,e){var t=mn(n);if(arguments.length<2){var r=this.node();return t.local?r.getAttributeNS(t.space,t.local):r.getAttribute(t)}return this.each((null==e?t.local?gn:dn:"function"===typeof e?t.local?yn:vn:t.local?bn:hn)(t,e))},kn=function(n){return n.ownerDocument&&n.ownerDocument.defaultView||n.document&&n||n.defaultView};function En(n){return function(){this.style.removeProperty(n)}}function Sn(n,e,t){return function(){this.style.setProperty(n,e,t)}}function An(n,e,t){return function(){var r=e.apply(this,arguments);null==r?this.style.removeProperty(n):this.style.setProperty(n,r,t)}}var Rn=function(n,e,t){return arguments.length>1?this.each((null==e?En:"function"===typeof e?An:Sn)(n,e,null==t?"":t)):xn(this.node(),n)};function xn(n,e){return n.style.getPropertyValue(e)||kn(n).getComputedStyle(n,null).getPropertyValue(e)}function Mn(n){return function(){delete this[n]}}function Nn(n,e){return function(){this[n]=e}}function Ln(n,e){return function(){var t=e.apply(this,arguments);null==t?delete this[n]:this[n]=t}}var Cn=function(n,e){return arguments.length>1?this.each((null==e?Mn:"function"===typeof e?Ln:Nn)(n,e)):this.node()[n]};function On(n){return n.trim().split(/^|\s+/)}function Dn(n){return n.classList||new Bn(n)}function Bn(n){this._node=n,this._names=On(n.getAttribute("class")||"")}function Un(n,e){var t=Dn(n),r=-1,o=e.length;while(++r=0&&(this._names.splice(e,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(n){return this._names.indexOf(n)>=0}};var Hn=function(n,e){var t=On(n+"");if(arguments.length<2){var r=Dn(this.node()),o=-1,a=t.length;while(++o=0&&(e=n.slice(t+1),n=n.slice(0,t)),{type:n,name:e}}))}function fe(n){return function(){var e=this.__on;if(e){for(var t,r=0,o=-1,a=e.length;r>8&15|e>>4&240,e>>4&15|240&e,(15&e)<<4|15&e,1):8===t?Ye(e>>24&255,e>>16&255,e>>8&255,(255&e)/255):4===t?Ye(e>>12&15|e>>8&240,e>>8&15|e>>4&240,e>>4&15|240&e,((15&e)<<4|15&e)/255):null):(e=Pe.exec(n))?new $e(e[1],e[2],e[3],1):(e=je.exec(n))?new $e(255*e[1]/100,255*e[2]/100,255*e[3]/100,1):(e=Ie.exec(n))?Ye(e[1],e[2],e[3],e[4]):(e=Te.exec(n))?Ye(255*e[1]/100,255*e[2]/100,255*e[3]/100,e[4]):(e=He.exec(n))?et(e[1],e[2]/100,e[3]/100,1):(e=Fe.exec(n))?et(e[1],e[2]/100,e[3]/100,e[4]):Ge.hasOwnProperty(n)?qe(Ge[n]):"transparent"===n?new $e(NaN,NaN,NaN,0):null}function qe(n){return new $e(n>>16&255,n>>8&255,255&n,1)}function Ye(n,e,t,r){return r<=0&&(n=e=t=NaN),new $e(n,e,t,r)}function We(n){return n instanceof Ne||(n=Xe(n)),n?(n=n.rgb(),new $e(n.r,n.g,n.b,n.opacity)):new $e}function Ze(n,e,t,r){return 1===arguments.length?We(n):new $e(n,e,t,null==r?1:r)}function $e(n,e,t,r){this.r=+n,this.g=+e,this.b=+t,this.opacity=+r}function Je(){return"#"+nt(this.r)+nt(this.g)+nt(this.b)}function Qe(){var n=this.opacity;return n=isNaN(n)?1:Math.max(0,Math.min(1,n)),(1===n?"rgb(":"rgba(")+Math.max(0,Math.min(255,Math.round(this.r)||0))+", "+Math.max(0,Math.min(255,Math.round(this.g)||0))+", "+Math.max(0,Math.min(255,Math.round(this.b)||0))+(1===n?")":", "+n+")")}function nt(n){return n=Math.max(0,Math.min(255,Math.round(n)||0)),(n<16?"0":"")+n.toString(16)}function et(n,e,t,r){return r<=0?n=e=t=NaN:t<=0||t>=1?n=e=NaN:e<=0&&(n=NaN),new ot(n,e,t,r)}function tt(n){if(n instanceof ot)return new ot(n.h,n.s,n.l,n.opacity);if(n instanceof Ne||(n=Xe(n)),!n)return new ot;if(n instanceof ot)return n;n=n.rgb();var e=n.r/255,t=n.g/255,r=n.b/255,o=Math.min(e,t,r),a=Math.max(e,t,r),i=NaN,l=a-o,u=(a+o)/2;return l?(i=e===a?(t-r)/l+6*(t0&&u<1?0:i,new ot(i,l,u,n.opacity)}function rt(n,e,t,r){return 1===arguments.length?tt(n):new ot(n,e,t,null==r?1:r)}function ot(n,e,t,r){this.h=+n,this.s=+e,this.l=+t,this.opacity=+r}function at(n,e,t){return 255*(n<60?e+(t-e)*n/60:n<180?t:n<240?e+(t-e)*(240-n)/60:e)}function it(n,e,t,r,o){var a=n*n,i=a*n;return((1-3*n+3*a-i)*e+(4-6*a+3*i)*t+(1+3*n+3*a-3*i)*r+i*o)/6}xe(Ne,Xe,{copy:function(n){return Object.assign(new this.constructor,this,n)},displayable:function(){return this.rgb().displayable()},hex:Ke,formatHex:Ke,formatHsl:Ve,formatRgb:ze,toString:ze}),xe($e,Ze,Me(Ne,{brighter:function(n){return n=null==n?Ce:Math.pow(Ce,n),new $e(this.r*n,this.g*n,this.b*n,this.opacity)},darker:function(n){return n=null==n?Le:Math.pow(Le,n),new $e(this.r*n,this.g*n,this.b*n,this.opacity)},rgb:function(){return this},displayable:function(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:Je,formatHex:Je,formatRgb:Qe,toString:Qe})),xe(ot,rt,Me(Ne,{brighter:function(n){return n=null==n?Ce:Math.pow(Ce,n),new ot(this.h,this.s,this.l*n,this.opacity)},darker:function(n){return n=null==n?Le:Math.pow(Le,n),new ot(this.h,this.s,this.l*n,this.opacity)},rgb:function(){var n=this.h%360+360*(this.h<0),e=isNaN(n)||isNaN(this.s)?0:this.s,t=this.l,r=t+(t<.5?t:1-t)*e,o=2*t-r;return new $e(at(n>=240?n-240:n+120,o,r),at(n,o,r),at(n<120?n+240:n-120,o,r),this.opacity)},displayable:function(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl:function(){var n=this.opacity;return n=isNaN(n)?1:Math.max(0,Math.min(1,n)),(1===n?"hsl(":"hsla(")+(this.h||0)+", "+100*(this.s||0)+"%, "+100*(this.l||0)+"%"+(1===n?")":", "+n+")")}}));var lt=function(n){var e=n.length-1;return function(t){var r=t<=0?t=0:t>=1?(t=1,e-1):Math.floor(t*e),o=n[r],a=n[r+1],i=r>0?n[r-1]:2*o-a,l=r()=>n;function _t(n,e){return function(t){return n+t*e}}function ct(n,e,t){return n=Math.pow(n,t),e=Math.pow(e,t)-n,t=1/t,function(r){return Math.pow(n+r*e,t)}}function pt(n){return 1===(n=+n)?ft:function(e,t){return t-e?ct(e,t,n):st(isNaN(e)?t:e)}}function ft(n,e){var t=e-n;return t?_t(n,t):st(isNaN(n)?e:n)}var mt=function n(e){var t=pt(e);function r(n,e){var r=t((n=Ze(n)).r,(e=Ze(e)).r),o=t(n.g,e.g),a=t(n.b,e.b),i=ft(n.opacity,e.opacity);return function(e){return n.r=r(e),n.g=o(e),n.b=a(e),n.opacity=i(e),n+""}}return r.gamma=n,r}(1);function dt(n){return function(e){var t,r,o=e.length,a=new Array(o),i=new Array(o),l=new Array(o);for(t=0;ta&&(o=e.slice(a,o),l[i]?l[i]+=o:l[++i]=o),(t=t[0])===(r=r[0])?l[i]?l[i]+=r:l[++i]=r:(l[++i]=null,u.push({i:i,x:gt(t,r)})),a=bt.lastIndex;return a=0&&e._call.call(null,n),e=e._next;--Rt}function Ht(){Ct=(Lt=Dt.now())+Ot,Rt=xt=0;try{Tt()}finally{Rt=0,Gt(),Ct=0}}function Ft(){var n=Dt.now(),e=n-Lt;e>Nt&&(Ot-=e,Lt=n)}function Gt(){var n,e,t=wt,r=1/0;while(t)t._call?(r>t._time&&(r=t._time),n=t,t=t._next):(e=t._next,t._next=null,t=n?n._next=e:wt=e);kt=n,Kt(r)}function Kt(n){if(!Rt){xt&&(xt=clearTimeout(xt));var e=n-Ct;e>24?(n<1/0&&(xt=setTimeout(Ht,n-Dt.now()-Ot)),Mt&&(Mt=clearInterval(Mt))):(Mt||(Lt=Dt.now(),Mt=setInterval(Ft,Nt)),Rt=1,Bt(Ht))}}jt.prototype=It.prototype={constructor:jt,restart:function(n,e,t){if("function"!==typeof n)throw new TypeError("callback is not a function");t=(null==t?Ut():+t)+(null==e?0:+e),this._next||kt===this||(kt?kt._next=this:wt=this,kt=this),this._call=n,this._time=t,Kt()},stop:function(){this._call&&(this._call=null,this._time=1/0,Kt())}};var Vt=function(n,e,t){var r=new jt;return e=null==e?0:+e,r.restart(t=>{r.stop(),n(t+e)},e,t),r},zt=A("start","end","cancel","interrupt"),Xt=[],qt=0,Yt=1,Wt=2,Zt=3,$t=4,Jt=5,Qt=6,nr=function(n,e,t,r,o,a){var i=n.__transition;if(i){if(t in i)return}else n.__transition={};or(n,t,{name:e,index:r,group:o,on:zt,tween:Xt,time:a.time,delay:a.delay,duration:a.duration,ease:a.ease,timer:null,state:qt})};function er(n,e){var t=rr(n,e);if(t.state>qt)throw new Error("too late; already scheduled");return t}function tr(n,e){var t=rr(n,e);if(t.state>Zt)throw new Error("too late; already running");return t}function rr(n,e){var t=n.__transition;if(!t||!(t=t[e]))throw new Error("transition not found");return t}function or(n,e,t){var r,o=n.__transition;function a(n){t.state=Yt,t.timer.restart(i,t.delay,t.time),t.delay<=n&&i(n-t.delay)}function i(a){var s,_,c,p;if(t.state!==Yt)return u();for(s in o)if(p=o[s],p.name===t.name){if(p.state===Zt)return Vt(i);p.state===$t?(p.state=Qt,p.timer.stop(),p.on.call("interrupt",n,n.__data__,p.index,p.group),delete o[s]):+sWt&&t.state180?e+=360:e-n>180&&(n+=360),a.push({i:t.push(o(t)+"rotate(",null,r)-2,x:gt(n,e)})):e&&t.push(o(t)+"rotate("+e+r)}function l(n,e,t,a){n!==e?a.push({i:t.push(o(t)+"skewX(",null,r)-2,x:gt(n,e)}):e&&t.push(o(t)+"skewX("+e+r)}function u(n,e,t,r,a,i){if(n!==t||e!==r){var l=a.push(o(a)+"scale(",null,",",null,")");i.push({i:l-4,x:gt(n,t)},{i:l-2,x:gt(e,r)})}else 1===t&&1===r||a.push(o(a)+"scale("+t+","+r+")")}return function(e,t){var r=[],o=[];return e=n(e),t=n(t),a(e.translateX,e.translateY,t.translateX,t.translateY,r,o),i(e.rotate,t.rotate,r,o),l(e.skewX,t.skewX,r,o),u(e.scaleX,e.scaleY,t.scaleX,t.scaleY,r,o),e=t=null,function(n){var e,t=-1,a=o.length;while(++t=0&&(n=n.slice(0,e)),!n||"start"===n}))}function Xr(n,e,t){var r,o,a=zr(e)?er:tr;return function(){var i=a(this,n),l=i.on;l!==r&&(o=(r=l).copy()).on(e,t),i.on=o}}var qr=function(n,e){var t=this._id;return arguments.length<2?rr(this.node(),t).on.on(n):this.each(Xr(t,n,e))};function Yr(n){return function(){var e=this.parentNode;for(var t in this.__transition)if(+t!==n)return;e&&e.removeChild(this)}}var Wr=function(){return this.on("end.remove",Yr(this._id))},Zr=function(n){var e=this._name,t=this._id;"function"!==typeof n&&(n=x(n));for(var r=this._groups,o=r.length,a=new Array(o),i=0;in;function Bo(n,e){n&&Po.hasOwnProperty(n.type)&&Po[n.type](n,e)}var Uo={Feature:function(n,e){Bo(n.geometry,e)},FeatureCollection:function(n,e){var t=n.features,r=-1,o=t.length;while(++r0){a=n[--o];while(o>0)if(e=a,t=n[--o],a=e+t,r=t-(a-e),r)break;o>0&&(r<0&&n[o-1]<0||r>0&&n[o-1]>0)&&(t=2*r,e=a+t,t==e-a&&(a=e))}return a}}var Fo=1e-6,Go=1e-12,Ko=Math.PI,Vo=Ko/2,zo=Ko/4,Xo=2*Ko,qo=180/Ko,Yo=Ko/180,Wo=Math.abs,Zo=Math.atan,$o=Math.atan2,Jo=Math.cos,Qo=(Math.ceil,Math.exp),na=(Math.floor,Math.hypot,Math.log),ea=(Math.pow,Math.sin),ta=Math.sign||function(n){return n>0?1:n<0?-1:0},ra=Math.sqrt,oa=Math.tan;function aa(n){return n>1?0:n<-1?Ko:Math.acos(n)}function ia(n){return n>1?Vo:n<-1?-Vo:Math.asin(n)}function la(){}var ua,sa,_a,ca,pa=new Ho,fa=new Ho,ma={point:la,lineStart:la,lineEnd:la,polygonStart:function(){ma.lineStart=da,ma.lineEnd=ba},polygonEnd:function(){ma.lineStart=ma.lineEnd=ma.point=la,pa.add(Wo(fa)),fa=new Ho},result:function(){var n=pa/2;return pa=new Ho,n}};function da(){ma.point=ga}function ga(n,e){ma.point=ha,ua=_a=n,sa=ca=e}function ha(n,e){fa.add(ca*n-_a*e),_a=n,ca=e}function ba(){ha(ua,sa)}var va=ma,ya=1/0,wa=ya,ka=-ya,Ea=ka,Sa={point:Aa,lineStart:la,lineEnd:la,polygonStart:la,polygonEnd:la,result:function(){var n=[[ya,wa],[ka,Ea]];return ka=Ea=-(wa=ya=1/0),n}};function Aa(n,e){nka&&(ka=n),eEa&&(Ea=e)}var Ra,xa,Ma,Na,La=Sa,Ca=0,Oa=0,Da=0,Ba=0,Ua=0,Pa=0,ja=0,Ia=0,Ta=0,Ha={point:Fa,lineStart:Ga,lineEnd:za,polygonStart:function(){Ha.lineStart=Xa,Ha.lineEnd=qa},polygonEnd:function(){Ha.point=Fa,Ha.lineStart=Ga,Ha.lineEnd=za},result:function(){var n=Ta?[ja/Ta,Ia/Ta]:Pa?[Ba/Pa,Ua/Pa]:Da?[Ca/Da,Oa/Da]:[NaN,NaN];return Ca=Oa=Da=Ba=Ua=Pa=ja=Ia=Ta=0,n}};function Fa(n,e){Ca+=n,Oa+=e,++Da}function Ga(){Ha.point=Ka}function Ka(n,e){Ha.point=Va,Fa(Ma=n,Na=e)}function Va(n,e){var t=n-Ma,r=e-Na,o=ra(t*t+r*r);Ba+=o*(Ma+n)/2,Ua+=o*(Na+e)/2,Pa+=o,Fa(Ma=n,Na=e)}function za(){Ha.point=Fa}function Xa(){Ha.point=Ya}function qa(){Wa(Ra,xa)}function Ya(n,e){Ha.point=Wa,Fa(Ra=Ma=n,xa=Na=e)}function Wa(n,e){var t=n-Ma,r=e-Na,o=ra(t*t+r*r);Ba+=o*(Ma+n)/2,Ua+=o*(Na+e)/2,Pa+=o,o=Na*n-Ma*e,ja+=o*(Ma+n),Ia+=o*(Na+e),Ta+=3*o,Fa(Ma=n,Na=e)}var Za=Ha;function $a(n){this._context=n}$a.prototype={_radius:4.5,pointRadius:function(n){return this._radius=n,this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){0===this._line&&this._context.closePath(),this._point=NaN},point:function(n,e){switch(this._point){case 0:this._context.moveTo(n,e),this._point=1;break;case 1:this._context.lineTo(n,e);break;default:this._context.moveTo(n+this._radius,e),this._context.arc(n,e,this._radius,0,Xo);break}},result:la};var Ja,Qa,ni,ei,ti,ri=new Ho,oi={point:la,lineStart:function(){oi.point=ai},lineEnd:function(){Ja&&ii(Qa,ni),oi.point=la},polygonStart:function(){Ja=!0},polygonEnd:function(){Ja=null},result:function(){var n=+ri;return ri=new Ho,n}};function ai(n,e){oi.point=ii,Qa=ei=n,ni=ti=e}function ii(n,e){ei-=n,ti-=e,ri.add(ra(ei*ei+ti*ti)),ei=n,ti=e}var li=oi;function ui(){this._string=[]}function si(n){return"m0,"+n+"a"+n+","+n+" 0 1,1 0,"+-2*n+"a"+n+","+n+" 0 1,1 0,"+2*n+"z"}ui.prototype={_radius:4.5,_circle:si(4.5),pointRadius:function(n){return(n=+n)!==this._radius&&(this._radius=n,this._circle=null),this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){0===this._line&&this._string.push("Z"),this._point=NaN},point:function(n,e){switch(this._point){case 0:this._string.push("M",n,",",e),this._point=1;break;case 1:this._string.push("L",n,",",e);break;default:null==this._circle&&(this._circle=si(this._radius)),this._string.push("M",n,",",e,this._circle);break}},result:function(){if(this._string.length){var n=this._string.join("");return this._string=[],n}return null}};var _i=function(n,e){var t,r,o=4.5;function a(n){return n&&("function"===typeof o&&r.pointRadius(+o.apply(this,arguments)),To(n,t(r))),r.result()}return a.area=function(n){return To(n,t(va)),va.result()},a.measure=function(n){return To(n,t(li)),li.result()},a.bounds=function(n){return To(n,t(La)),La.result()},a.centroid=function(n){return To(n,t(Za)),Za.result()},a.projection=function(e){return arguments.length?(t=null==e?(n=null,Do):(n=e).stream,a):n},a.context=function(n){return arguments.length?(r=null==n?(e=null,new ui):new $a(e=n),"function"!==typeof o&&r.pointRadius(o),a):e},a.pointRadius=function(n){return arguments.length?(o="function"===typeof n?n:(r.pointRadius(+n),+n),a):o},a.projection(n).context(e)},ci=function(n,e){function t(t,r){return t=n(t,r),e(t[0],t[1])}return n.invert&&e.invert&&(t.invert=function(t,r){return t=e.invert(t,r),t&&n.invert(t[0],t[1])}),t};function pi(n,e){return[Wo(n)>Ko?n+Math.round(-n/Xo)*Xo:n,e]}function fi(n,e,t){return(n%=Xo)?e||t?ci(di(n),gi(e,t)):di(n):e||t?gi(e,t):pi}function mi(n){return function(e,t){return e+=n,[e>Ko?e-Xo:e<-Ko?e+Xo:e,t]}}function di(n){var e=mi(n);return e.invert=mi(-n),e}function gi(n,e){var t=Jo(n),r=ea(n),o=Jo(e),a=ea(e);function i(n,e){var i=Jo(e),l=Jo(n)*i,u=ea(n)*i,s=ea(e),_=s*t+l*r;return[$o(u*o-_*a,l*t-s*r),ia(_*o+u*a)]}return i.invert=function(n,e){var i=Jo(e),l=Jo(n)*i,u=ea(n)*i,s=ea(e),_=s*o-u*a;return[$o(u*o+s*a,l*t+_*r),ia(_*t-l*r)]},i}pi.invert=pi;var hi=function(n){function e(e){return e=n(e[0]*Yo,e[1]*Yo),e[0]*=qo,e[1]*=qo,e}return n=fi(n[0]*Yo,n[1]*Yo,n.length>2?n[2]*Yo:0),e.invert=function(e){return e=n.invert(e[0]*Yo,e[1]*Yo),e[0]*=qo,e[1]*=qo,e},e},bi=function(){var n,e=[];return{point:function(e,t,r){n.push([e,t,r])},lineStart:function(){e.push(n=[])},lineEnd:la,rejoin:function(){e.length>1&&e.push(e.pop().concat(e.shift()))},result:function(){var t=e;return e=[],n=null,t}}},vi=function(n,e){return Wo(n[0]-e[0])=0;--a)o.point((_=s[a])[0],_[1]);else r(p.x,p.p.x,-1,o);p=p.p}p=p.o,s=p.z,f=!f}while(!p.v);o.lineEnd()}}};function ki(n){if(e=n.length){var e,t,r=0,o=n[0];while(++r=0?1:-1,R=A*S,x=R>Ko,M=g*k;if(u.add($o(M*A*ea(R),h*E+M*Jo(R))),i+=x?S+A*Xo:S,x^m>=t^y>=t){var N=Ri(Si(f),Si(v));Ni(N);var L=Ri(a,N);Ni(L);var C=(x^S>=0?-1:1)*ia(L[2]);(r>C||r===C&&(N[0]||N[1]))&&(l+=x^S>=0?1:-1)}}return(i<-Fo||i0){for(c||(o.polygonStart(),c=!0),o.lineStart(),n=0;n1&&2&u&&p.push(p.pop().concat(p.shift())),i.push(p.filter(Ui))}return p}};function Ui(n){return n.length>1}function Pi(n,e){return((n=n.x)[0]<0?n[1]-Vo-Fo:Vo-n[1])-((e=e.x)[0]<0?e[1]-Vo-Fo:Vo-e[1])}var ji=Bi((function(){return!0}),Ii,Hi,[-Ko,-Vo]);function Ii(n){var e,t=NaN,r=NaN,o=NaN;return{lineStart:function(){n.lineStart(),e=1},point:function(a,i){var l=a>0?Ko:-Ko,u=Wo(a-t);Wo(u-Ko)0?Vo:-Vo),n.point(o,r),n.lineEnd(),n.lineStart(),n.point(l,r),n.point(a,r),e=0):o!==l&&u>=Ko&&(Wo(t-o)Fo?Zo((ea(e)*(a=Jo(r))*ea(t)-ea(r)*(o=Jo(e))*ea(n))/(o*a*i)):(e+r)/2}function Hi(n,e,t,r){var o;if(null==n)o=t*Vo,r.point(-Ko,o),r.point(0,o),r.point(Ko,o),r.point(Ko,0),r.point(Ko,-o),r.point(0,-o),r.point(-Ko,-o),r.point(-Ko,0),r.point(-Ko,o);else if(Wo(n[0]-e[0])>Fo){var a=n[0]0?oa)&&(o+=r*Xo));for(var s,_=o;r>0?_>a:_0,o=Wo(e)>Fo;function a(e,r,o,a){Fi(a,n,t,o,e,r)}function i(n,t){return Jo(n)*Jo(t)>e}function l(n){var e,t,a,l,_;return{lineStart:function(){l=a=!1,_=1},point:function(c,p){var f,m=[c,p],d=i(c,p),g=r?d?0:s(c,p):d?s(c+(c<0?Ko:-Ko),p):0;if(!e&&(l=a=d)&&n.lineStart(),d!==a&&(f=u(e,m),(!f||vi(e,f)||vi(m,f))&&(m[2]=1)),d!==a)_=0,d?(n.lineStart(),f=u(m,e),n.point(f[0],f[1])):(f=u(e,m),n.point(f[0],f[1],2),n.lineEnd()),e=f;else if(o&&e&&r^d){var h;g&t||!(h=u(m,e,!0))||(_=0,r?(n.lineStart(),n.point(h[0][0],h[0][1]),n.point(h[1][0],h[1][1]),n.lineEnd()):(n.point(h[1][0],h[1][1]),n.lineEnd(),n.lineStart(),n.point(h[0][0],h[0][1],3)))}!d||e&&vi(e,m)||n.point(m[0],m[1]),e=m,a=d,t=g},lineEnd:function(){a&&n.lineEnd(),e=null},clean:function(){return _|(l&&a)<<1}}}function u(n,t,r){var o=Si(n),a=Si(t),i=[1,0,0],l=Ri(o,a),u=Ai(l,l),s=l[0],_=u-s*s;if(!_)return!r&&n;var c=e*u/_,p=-e*s/_,f=Ri(i,l),m=Mi(i,c),d=Mi(l,p);xi(m,d);var g=f,h=Ai(m,g),b=Ai(g,g),v=h*h-b*(Ai(m,m)-1);if(!(v<0)){var y=ra(v),w=Mi(g,(-h-y)/b);if(xi(w,m),w=Ei(w),!r)return w;var k,E=n[0],S=t[0],A=n[1],R=t[1];S0^w[1]<(Wo(w[0]-E)Ko^(E<=w[0]&&w[0]<=S)){var L=Mi(g,(-h+y)/b);return xi(L,m),[w,Ei(L)]}}}function s(e,t){var o=r?n:Ko-n,a=0;return e<-o?a|=1:e>o&&(a|=2),t<-o?a|=4:t>o&&(a|=8),a}return Bi(i,l,a,r?[0,-n]:[-Ko,n-Ko])},Vi=function(n,e,t,r,o,a){var i,l=n[0],u=n[1],s=e[0],_=e[1],c=0,p=1,f=s-l,m=_-u;if(i=t-l,f||!(i>0)){if(i/=f,f<0){if(i0){if(i>p)return;i>c&&(c=i)}if(i=o-l,f||!(i<0)){if(i/=f,f<0){if(i>p)return;i>c&&(c=i)}else if(f>0){if(i0)){if(i/=m,m<0){if(i0){if(i>p)return;i>c&&(c=i)}if(i=a-u,m||!(i<0)){if(i/=m,m<0){if(i>p)return;i>c&&(c=i)}else if(m>0){if(i0&&(n[0]=l+c*f,n[1]=u+c*m),p<1&&(e[0]=l+p*f,e[1]=u+p*m),!0}}}}},zi=1e9,Xi=-zi;function qi(n,e,t,r){function o(o,a){return n<=o&&o<=t&&e<=a&&a<=r}function a(o,a,l,s){var _=0,c=0;if(null==o||(_=i(o,l))!==(c=i(a,l))||u(o,a)<0^l>0)do{s.point(0===_||3===_?n:t,_>1?r:e)}while((_=(_+l+4)%4)!==c);else s.point(a[0],a[1])}function i(r,o){return Wo(r[0]-n)0?0:3:Wo(r[0]-t)0?2:1:Wo(r[1]-e)0?1:0:o>0?3:2}function l(n,e){return u(n.x,e.x)}function u(n,e){var t=i(n,1),r=i(e,1);return t!==r?t-r:0===t?e[1]-n[1]:1===t?n[0]-e[0]:2===t?n[1]-e[1]:e[0]-n[0]}return function(i){var u,s,_,c,p,f,m,d,g,h,b,v=i,y=bi(),w={point:k,lineStart:R,lineEnd:x,polygonStart:S,polygonEnd:A};function k(n,e){o(n,e)&&v.point(n,e)}function E(){for(var e=0,t=0,o=s.length;tr&&(p-a)*(r-i)>(f-i)*(n-a)&&++e:f<=r&&(p-a)*(r-i)<(f-i)*(n-a)&&--e;return e}function S(){v=y,u=[],s=[],b=!0}function A(){var n=E(),e=b&&n,t=(u=Di(u)).length;(e||t)&&(i.polygonStart(),e&&(i.lineStart(),a(null,null,1,i),i.lineEnd()),t&&wi(u,l,n,a,i),i.polygonEnd()),v=i,u=s=_=null}function R(){w.point=M,s&&s.push(_=[]),h=!0,g=!1,m=d=NaN}function x(){u&&(M(c,p),f&&g&&y.rejoin(),u.push(y.result())),w.point=k,g&&v.lineEnd()}function M(a,i){var l=o(a,i);if(s&&_.push([a,i]),h)c=a,p=i,f=l,h=!1,l&&(v.lineStart(),v.point(a,i));else if(l&&g)v.point(a,i);else{var u=[m=Math.max(Xi,Math.min(zi,m)),d=Math.max(Xi,Math.min(zi,d))],y=[a=Math.max(Xi,Math.min(zi,a)),i=Math.max(Xi,Math.min(zi,i))];Vi(u,y,n,e,t,r)?(g||(v.lineStart(),v.point(u[0],u[1])),v.point(y[0],y[1]),l||v.lineEnd(),b=!1):l&&(v.lineStart(),v.point(a,i),b=!1)}m=a,d=i,g=l}return w}}function Yi(n){return function(e){var t=new Wi;for(var r in n)t[r]=n[r];return t.stream=e,t}}function Wi(){}function Zi(n,e,t){var r=n.clipExtent&&n.clipExtent();return n.scale(150).translate([0,0]),null!=r&&n.clipExtent(null),To(t,n.stream(La)),e(La.result()),null!=r&&n.clipExtent(r),n}function $i(n,e,t){return Zi(n,(function(t){var r=e[1][0]-e[0][0],o=e[1][1]-e[0][1],a=Math.min(r/(t[1][0]-t[0][0]),o/(t[1][1]-t[0][1])),i=+e[0][0]+(r-a*(t[1][0]+t[0][0]))/2,l=+e[0][1]+(o-a*(t[1][1]+t[0][1]))/2;n.scale(150*a).translate([i,l])}),t)}function Ji(n,e,t){return $i(n,[[0,0],e],t)}function Qi(n,e,t){return Zi(n,(function(t){var r=+e,o=r/(t[1][0]-t[0][0]),a=(r-o*(t[1][0]+t[0][0]))/2,i=-o*t[0][1];n.scale(150*o).translate([a,i])}),t)}function nl(n,e,t){return Zi(n,(function(t){var r=+e,o=r/(t[1][1]-t[0][1]),a=-o*t[0][0],i=(r-o*(t[1][1]+t[0][1]))/2;n.scale(150*o).translate([a,i])}),t)}Wi.prototype={constructor:Wi,point:function(n,e){this.stream.point(n,e)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}};var el=16,tl=Jo(30*Yo),rl=function(n,e){return+e?al(n,e):ol(n)};function ol(n){return Yi({point:function(e,t){e=n(e,t),this.stream.point(e[0],e[1])}})}function al(n,e){function t(r,o,a,i,l,u,s,_,c,p,f,m,d,g){var h=s-r,b=_-o,v=h*h+b*b;if(v>4*e&&d--){var y=i+p,w=l+f,k=u+m,E=ra(y*y+w*w+k*k),S=ia(k/=E),A=Wo(Wo(k)-1)e||Wo((h*N+b*L)/v-.5)>.3||i*p+l*f+u*m2?n[2]%360*Yo:0,N()):[g*qo,h*qo,b*qo]},x.angle=function(n){return arguments.length?(v=n%360*Yo,N()):v*qo},x.reflectX=function(n){return arguments.length?(y=n?-1:1,N()):y<0},x.reflectY=function(n){return arguments.length?(w=n?-1:1,N()):w<0},x.precision=function(n){return arguments.length?(i=rl(l,R=n*n),L()):ra(R)},x.fitExtent=function(n,e){return $i(x,n,e)},x.fitSize=function(n,e){return Ji(x,n,e)},x.fitWidth=function(n,e){return Qi(x,n,e)},x.fitHeight=function(n,e){return nl(x,n,e)},function(){return e=n.apply(this,arguments),x.invert=e.invert&&M,N()}}function pl(n,e){return[n,na(oa((Vo+e)/2))]}pl.invert=function(n,e){return[n,2*Zo(Qo(e))-Vo]};var fl=function(){return ml(pl).scale(961/Xo)};function ml(n){var e,t,r,o=_l(n),a=o.center,i=o.scale,l=o.translate,u=o.clipExtent,s=null;function _(){var a=Ko*i(),l=o(hi(o.rotate()).invert([0,0]));return u(null==s?[[l[0]-a,l[1]-a],[l[0]+a,l[1]+a]]:n===pl?[[Math.max(l[0]-a,s),e],[Math.min(l[0]+a,t),r]]:[[s,Math.max(l[1]-a,e)],[t,Math.min(l[1]+a,r)]])}return o.scale=function(n){return arguments.length?(i(n),_()):i()},o.translate=function(n){return arguments.length?(l(n),_()):l()},o.center=function(n){return arguments.length?(a(n),_()):a()},o.clipExtent=function(n){return arguments.length?(null==n?s=e=t=r=null:(s=+n[0][0],e=+n[0][1],t=+n[1][0],r=+n[1][1]),_()):null==s?null:[[s,e],[t,r]]},_()}var dl=1e-12;function gl(n){return((n=Math.exp(n))+1/n)/2}function hl(n){return((n=Math.exp(n))-1/n)/2}function bl(n){return((n=Math.exp(2*n))-1)/(n+1)}(function n(e,t,r){function o(n,o){var a,i,l=n[0],u=n[1],s=n[2],_=o[0],c=o[1],p=o[2],f=_-l,m=c-u,d=f*f+m*m;if(d1?arguments[1]:void 0,t),u=i>2?arguments[2]:void 0,s=void 0===u?t:o(u,t);while(s>l)e[l++]=n;return e}},"99af":function(n,e,t){"use strict";var r=t("23e7"),o=t("d039"),a=t("e8b5"),i=t("861d"),l=t("7b0b"),u=t("50c4"),s=t("8418"),_=t("65f0"),c=t("1dde"),p=t("b622"),f=t("2d00"),m=p("isConcatSpreadable"),d=9007199254740991,g="Maximum allowed index exceeded",h=f>=51||!o((function(){var n=[];return n[m]=!1,n.concat()[0]!==n})),b=c("concat"),v=function(n){if(!i(n))return!1;var e=n[m];return void 0!==e?!!e:a(n)},y=!h||!b;r({target:"Array",proto:!0,forced:y},{concat:function(n){var e,t,r,o,a,i=l(this),c=_(i,0),p=0;for(e=-1,r=arguments.length;ed)throw TypeError(g);for(t=0;t=d)throw TypeError(g);s(c,p++,a)}return c.length=p,c}})},a434:function(n,e,t){"use strict";var r=t("23e7"),o=t("23cb"),a=t("a691"),i=t("50c4"),l=t("7b0b"),u=t("65f0"),s=t("8418"),_=t("1dde"),c=_("splice"),p=Math.max,f=Math.min,m=9007199254740991,d="Maximum allowed length exceeded";r({target:"Array",proto:!0,forced:!c},{splice:function(n,e){var t,r,_,c,g,h,b=l(this),v=i(b.length),y=o(n,v),w=arguments.length;if(0===w?t=r=0:1===w?(t=0,r=v-y):(t=w-2,r=f(p(a(e),0),v-y)),v+t-r>m)throw TypeError(d);for(_=u(b,r),c=0;cv-r+t;c--)delete b[c-1]}else if(t>r)for(c=v-r;c>y;c--)g=c+r-1,h=c+t-1,g in b?b[h]=b[g]:delete b[h];for(c=0;cn.length)&&(e=n.length);for(var t=0,r=new Array(e);t{}};function y(){for(var n,e=0,t=arguments.length,r={};e=0&&(t=n.slice(r+1),n=n.slice(0,r)),n&&!e.hasOwnProperty(n))throw new Error("unknown type: "+n);return{type:n,name:t}}))}function E(n,e){for(var t,r=0,o=n.length;r0)for(var t,r,o=new Array(t),a=0;a=w&&(w=y+1);while(!(v=g[w])&&++w=0;)(r=o[a])&&(i&&4^r.compareDocumentPosition(i)&&i.parentNode.insertBefore(r,i),i=r);return this},rn=function(n){function e(e,t){return e&&t?n(e.__data__,t.__data__):!e-!t}n||(n=on);for(var t=this._groups,r=t.length,o=new Array(r),a=0;ae?1:n>=e?0:NaN}var an=function(){var n=arguments[0];return arguments[0]=this,n.apply(null,arguments),this},ln=function(){return Array.from(this)},un=function(){for(var n=this._groups,e=0,t=n.length;e=0&&"xmlns"!==(e=n.slice(0,t))&&(n=n.slice(t+1)),fn.hasOwnProperty(e)?{space:fn[e],local:n}:n};function dn(n){return function(){this.removeAttribute(n)}}function gn(n){return function(){this.removeAttributeNS(n.space,n.local)}}function hn(n,e){return function(){this.setAttribute(n,e)}}function bn(n,e){return function(){this.setAttributeNS(n.space,n.local,e)}}function vn(n,e){return function(){var t=e.apply(this,arguments);null==t?this.removeAttribute(n):this.setAttribute(n,t)}}function yn(n,e){return function(){var t=e.apply(this,arguments);null==t?this.removeAttributeNS(n.space,n.local):this.setAttributeNS(n.space,n.local,t)}}var wn=function(n,e){var t=mn(n);if(arguments.length<2){var r=this.node();return t.local?r.getAttributeNS(t.space,t.local):r.getAttribute(t)}return this.each((null==e?t.local?gn:dn:"function"===typeof e?t.local?yn:vn:t.local?bn:hn)(t,e))},kn=function(n){return n.ownerDocument&&n.ownerDocument.defaultView||n.document&&n||n.defaultView};function En(n){return function(){this.style.removeProperty(n)}}function Sn(n,e,t){return function(){this.style.setProperty(n,e,t)}}function An(n,e,t){return function(){var r=e.apply(this,arguments);null==r?this.style.removeProperty(n):this.style.setProperty(n,r,t)}}var Rn=function(n,e,t){return arguments.length>1?this.each((null==e?En:"function"===typeof e?An:Sn)(n,e,null==t?"":t)):xn(this.node(),n)};function xn(n,e){return n.style.getPropertyValue(e)||kn(n).getComputedStyle(n,null).getPropertyValue(e)}function Mn(n){return function(){delete this[n]}}function Nn(n,e){return function(){this[n]=e}}function Ln(n,e){return function(){var t=e.apply(this,arguments);null==t?delete this[n]:this[n]=t}}var Cn=function(n,e){return arguments.length>1?this.each((null==e?Mn:"function"===typeof e?Ln:Nn)(n,e)):this.node()[n]};function On(n){return n.trim().split(/^|\s+/)}function Dn(n){return n.classList||new Bn(n)}function Bn(n){this._node=n,this._names=On(n.getAttribute("class")||"")}function Un(n,e){var t=Dn(n),r=-1,o=e.length;while(++r=0&&(this._names.splice(e,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(n){return this._names.indexOf(n)>=0}};var Hn=function(n,e){var t=On(n+"");if(arguments.length<2){var r=Dn(this.node()),o=-1,a=t.length;while(++o=0&&(e=n.slice(t+1),n=n.slice(0,t)),{type:n,name:e}}))}function fe(n){return function(){var e=this.__on;if(e){for(var t,r=0,o=-1,a=e.length;r>8&15|e>>4&240,e>>4&15|240&e,(15&e)<<4|15&e,1):8===t?Ye(e>>24&255,e>>16&255,e>>8&255,(255&e)/255):4===t?Ye(e>>12&15|e>>8&240,e>>8&15|e>>4&240,e>>4&15|240&e,((15&e)<<4|15&e)/255):null):(e=Pe.exec(n))?new $e(e[1],e[2],e[3],1):(e=je.exec(n))?new $e(255*e[1]/100,255*e[2]/100,255*e[3]/100,1):(e=Ie.exec(n))?Ye(e[1],e[2],e[3],e[4]):(e=Te.exec(n))?Ye(255*e[1]/100,255*e[2]/100,255*e[3]/100,e[4]):(e=He.exec(n))?et(e[1],e[2]/100,e[3]/100,1):(e=Fe.exec(n))?et(e[1],e[2]/100,e[3]/100,e[4]):Ge.hasOwnProperty(n)?qe(Ge[n]):"transparent"===n?new $e(NaN,NaN,NaN,0):null}function qe(n){return new $e(n>>16&255,n>>8&255,255&n,1)}function Ye(n,e,t,r){return r<=0&&(n=e=t=NaN),new $e(n,e,t,r)}function We(n){return n instanceof Ne||(n=Xe(n)),n?(n=n.rgb(),new $e(n.r,n.g,n.b,n.opacity)):new $e}function Ze(n,e,t,r){return 1===arguments.length?We(n):new $e(n,e,t,null==r?1:r)}function $e(n,e,t,r){this.r=+n,this.g=+e,this.b=+t,this.opacity=+r}function Je(){return"#"+nt(this.r)+nt(this.g)+nt(this.b)}function Qe(){var n=this.opacity;return n=isNaN(n)?1:Math.max(0,Math.min(1,n)),(1===n?"rgb(":"rgba(")+Math.max(0,Math.min(255,Math.round(this.r)||0))+", "+Math.max(0,Math.min(255,Math.round(this.g)||0))+", "+Math.max(0,Math.min(255,Math.round(this.b)||0))+(1===n?")":", "+n+")")}function nt(n){return n=Math.max(0,Math.min(255,Math.round(n)||0)),(n<16?"0":"")+n.toString(16)}function et(n,e,t,r){return r<=0?n=e=t=NaN:t<=0||t>=1?n=e=NaN:e<=0&&(n=NaN),new ot(n,e,t,r)}function tt(n){if(n instanceof ot)return new ot(n.h,n.s,n.l,n.opacity);if(n instanceof Ne||(n=Xe(n)),!n)return new ot;if(n instanceof ot)return n;n=n.rgb();var e=n.r/255,t=n.g/255,r=n.b/255,o=Math.min(e,t,r),a=Math.max(e,t,r),i=NaN,l=a-o,u=(a+o)/2;return l?(i=e===a?(t-r)/l+6*(t0&&u<1?0:i,new ot(i,l,u,n.opacity)}function rt(n,e,t,r){return 1===arguments.length?tt(n):new ot(n,e,t,null==r?1:r)}function ot(n,e,t,r){this.h=+n,this.s=+e,this.l=+t,this.opacity=+r}function at(n,e,t){return 255*(n<60?e+(t-e)*n/60:n<180?t:n<240?e+(t-e)*(240-n)/60:e)}function it(n,e,t,r,o){var a=n*n,i=a*n;return((1-3*n+3*a-i)*e+(4-6*a+3*i)*t+(1+3*n+3*a-3*i)*r+i*o)/6}xe(Ne,Xe,{copy:function(n){return Object.assign(new this.constructor,this,n)},displayable:function(){return this.rgb().displayable()},hex:Ke,formatHex:Ke,formatHsl:Ve,formatRgb:ze,toString:ze}),xe($e,Ze,Me(Ne,{brighter:function(n){return n=null==n?Ce:Math.pow(Ce,n),new $e(this.r*n,this.g*n,this.b*n,this.opacity)},darker:function(n){return n=null==n?Le:Math.pow(Le,n),new $e(this.r*n,this.g*n,this.b*n,this.opacity)},rgb:function(){return this},displayable:function(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:Je,formatHex:Je,formatRgb:Qe,toString:Qe})),xe(ot,rt,Me(Ne,{brighter:function(n){return n=null==n?Ce:Math.pow(Ce,n),new ot(this.h,this.s,this.l*n,this.opacity)},darker:function(n){return n=null==n?Le:Math.pow(Le,n),new ot(this.h,this.s,this.l*n,this.opacity)},rgb:function(){var n=this.h%360+360*(this.h<0),e=isNaN(n)||isNaN(this.s)?0:this.s,t=this.l,r=t+(t<.5?t:1-t)*e,o=2*t-r;return new $e(at(n>=240?n-240:n+120,o,r),at(n,o,r),at(n<120?n+240:n-120,o,r),this.opacity)},displayable:function(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl:function(){var n=this.opacity;return n=isNaN(n)?1:Math.max(0,Math.min(1,n)),(1===n?"hsl(":"hsla(")+(this.h||0)+", "+100*(this.s||0)+"%, "+100*(this.l||0)+"%"+(1===n?")":", "+n+")")}}));var lt=function(n){var e=n.length-1;return function(t){var r=t<=0?t=0:t>=1?(t=1,e-1):Math.floor(t*e),o=n[r],a=n[r+1],i=r>0?n[r-1]:2*o-a,l=r()=>n;function _t(n,e){return function(t){return n+t*e}}function ct(n,e,t){return n=Math.pow(n,t),e=Math.pow(e,t)-n,t=1/t,function(r){return Math.pow(n+r*e,t)}}function pt(n){return 1===(n=+n)?ft:function(e,t){return t-e?ct(e,t,n):st(isNaN(e)?t:e)}}function ft(n,e){var t=e-n;return t?_t(n,t):st(isNaN(n)?e:n)}var mt=function n(e){var t=pt(e);function r(n,e){var r=t((n=Ze(n)).r,(e=Ze(e)).r),o=t(n.g,e.g),a=t(n.b,e.b),i=ft(n.opacity,e.opacity);return function(e){return n.r=r(e),n.g=o(e),n.b=a(e),n.opacity=i(e),n+""}}return r.gamma=n,r}(1);function dt(n){return function(e){var t,r,o=e.length,a=new Array(o),i=new Array(o),l=new Array(o);for(t=0;ta&&(o=e.slice(a,o),l[i]?l[i]+=o:l[++i]=o),(t=t[0])===(r=r[0])?l[i]?l[i]+=r:l[++i]=r:(l[++i]=null,u.push({i:i,x:gt(t,r)})),a=bt.lastIndex;return a=0&&e._call.call(null,n),e=e._next;--Rt}function Ht(){Ct=(Lt=Dt.now())+Ot,Rt=xt=0;try{Tt()}finally{Rt=0,Gt(),Ct=0}}function Ft(){var n=Dt.now(),e=n-Lt;e>Nt&&(Ot-=e,Lt=n)}function Gt(){var n,e,t=wt,r=1/0;while(t)t._call?(r>t._time&&(r=t._time),n=t,t=t._next):(e=t._next,t._next=null,t=n?n._next=e:wt=e);kt=n,Kt(r)}function Kt(n){if(!Rt){xt&&(xt=clearTimeout(xt));var e=n-Ct;e>24?(n<1/0&&(xt=setTimeout(Ht,n-Dt.now()-Ot)),Mt&&(Mt=clearInterval(Mt))):(Mt||(Lt=Dt.now(),Mt=setInterval(Ft,Nt)),Rt=1,Bt(Ht))}}jt.prototype=It.prototype={constructor:jt,restart:function(n,e,t){if("function"!==typeof n)throw new TypeError("callback is not a function");t=(null==t?Ut():+t)+(null==e?0:+e),this._next||kt===this||(kt?kt._next=this:wt=this,kt=this),this._call=n,this._time=t,Kt()},stop:function(){this._call&&(this._call=null,this._time=1/0,Kt())}};var Vt=function(n,e,t){var r=new jt;return e=null==e?0:+e,r.restart(t=>{r.stop(),n(t+e)},e,t),r},zt=A("start","end","cancel","interrupt"),Xt=[],qt=0,Yt=1,Wt=2,Zt=3,$t=4,Jt=5,Qt=6,nr=function(n,e,t,r,o,a){var i=n.__transition;if(i){if(t in i)return}else n.__transition={};or(n,t,{name:e,index:r,group:o,on:zt,tween:Xt,time:a.time,delay:a.delay,duration:a.duration,ease:a.ease,timer:null,state:qt})};function er(n,e){var t=rr(n,e);if(t.state>qt)throw new Error("too late; already scheduled");return t}function tr(n,e){var t=rr(n,e);if(t.state>Zt)throw new Error("too late; already running");return t}function rr(n,e){var t=n.__transition;if(!t||!(t=t[e]))throw new Error("transition not found");return t}function or(n,e,t){var r,o=n.__transition;function a(n){t.state=Yt,t.timer.restart(i,t.delay,t.time),t.delay<=n&&i(n-t.delay)}function i(a){var s,_,c,p;if(t.state!==Yt)return u();for(s in o)if(p=o[s],p.name===t.name){if(p.state===Zt)return Vt(i);p.state===$t?(p.state=Qt,p.timer.stop(),p.on.call("interrupt",n,n.__data__,p.index,p.group),delete o[s]):+sWt&&t.state180?e+=360:e-n>180&&(n+=360),a.push({i:t.push(o(t)+"rotate(",null,r)-2,x:gt(n,e)})):e&&t.push(o(t)+"rotate("+e+r)}function l(n,e,t,a){n!==e?a.push({i:t.push(o(t)+"skewX(",null,r)-2,x:gt(n,e)}):e&&t.push(o(t)+"skewX("+e+r)}function u(n,e,t,r,a,i){if(n!==t||e!==r){var l=a.push(o(a)+"scale(",null,",",null,")");i.push({i:l-4,x:gt(n,t)},{i:l-2,x:gt(e,r)})}else 1===t&&1===r||a.push(o(a)+"scale("+t+","+r+")")}return function(e,t){var r=[],o=[];return e=n(e),t=n(t),a(e.translateX,e.translateY,t.translateX,t.translateY,r,o),i(e.rotate,t.rotate,r,o),l(e.skewX,t.skewX,r,o),u(e.scaleX,e.scaleY,t.scaleX,t.scaleY,r,o),e=t=null,function(n){var e,t=-1,a=o.length;while(++t=0&&(n=n.slice(0,e)),!n||"start"===n}))}function Xr(n,e,t){var r,o,a=zr(e)?er:tr;return function(){var i=a(this,n),l=i.on;l!==r&&(o=(r=l).copy()).on(e,t),i.on=o}}var qr=function(n,e){var t=this._id;return arguments.length<2?rr(this.node(),t).on.on(n):this.each(Xr(t,n,e))};function Yr(n){return function(){var e=this.parentNode;for(var t in this.__transition)if(+t!==n)return;e&&e.removeChild(this)}}var Wr=function(){return this.on("end.remove",Yr(this._id))},Zr=function(n){var e=this._name,t=this._id;"function"!==typeof n&&(n=x(n));for(var r=this._groups,o=r.length,a=new Array(o),i=0;in;function Bo(n,e){n&&Po.hasOwnProperty(n.type)&&Po[n.type](n,e)}var Uo={Feature:function(n,e){Bo(n.geometry,e)},FeatureCollection:function(n,e){var t=n.features,r=-1,o=t.length;while(++r0){a=n[--o];while(o>0)if(e=a,t=n[--o],a=e+t,r=t-(a-e),r)break;o>0&&(r<0&&n[o-1]<0||r>0&&n[o-1]>0)&&(t=2*r,e=a+t,t==e-a&&(a=e))}return a}}var Fo=1e-6,Go=1e-12,Ko=Math.PI,Vo=Ko/2,zo=Ko/4,Xo=2*Ko,qo=180/Ko,Yo=Ko/180,Wo=Math.abs,Zo=Math.atan,$o=Math.atan2,Jo=Math.cos,Qo=(Math.ceil,Math.exp),na=(Math.floor,Math.hypot,Math.log),ea=(Math.pow,Math.sin),ta=Math.sign||function(n){return n>0?1:n<0?-1:0},ra=Math.sqrt,oa=Math.tan;function aa(n){return n>1?0:n<-1?Ko:Math.acos(n)}function ia(n){return n>1?Vo:n<-1?-Vo:Math.asin(n)}function la(){}var ua,sa,_a,ca,pa=new Ho,fa=new Ho,ma={point:la,lineStart:la,lineEnd:la,polygonStart:function(){ma.lineStart=da,ma.lineEnd=ba},polygonEnd:function(){ma.lineStart=ma.lineEnd=ma.point=la,pa.add(Wo(fa)),fa=new Ho},result:function(){var n=pa/2;return pa=new Ho,n}};function da(){ma.point=ga}function ga(n,e){ma.point=ha,ua=_a=n,sa=ca=e}function ha(n,e){fa.add(ca*n-_a*e),_a=n,ca=e}function ba(){ha(ua,sa)}var va=ma,ya=1/0,wa=ya,ka=-ya,Ea=ka,Sa={point:Aa,lineStart:la,lineEnd:la,polygonStart:la,polygonEnd:la,result:function(){var n=[[ya,wa],[ka,Ea]];return ka=Ea=-(wa=ya=1/0),n}};function Aa(n,e){nka&&(ka=n),eEa&&(Ea=e)}var Ra,xa,Ma,Na,La=Sa,Ca=0,Oa=0,Da=0,Ba=0,Ua=0,Pa=0,ja=0,Ia=0,Ta=0,Ha={point:Fa,lineStart:Ga,lineEnd:za,polygonStart:function(){Ha.lineStart=Xa,Ha.lineEnd=qa},polygonEnd:function(){Ha.point=Fa,Ha.lineStart=Ga,Ha.lineEnd=za},result:function(){var n=Ta?[ja/Ta,Ia/Ta]:Pa?[Ba/Pa,Ua/Pa]:Da?[Ca/Da,Oa/Da]:[NaN,NaN];return Ca=Oa=Da=Ba=Ua=Pa=ja=Ia=Ta=0,n}};function Fa(n,e){Ca+=n,Oa+=e,++Da}function Ga(){Ha.point=Ka}function Ka(n,e){Ha.point=Va,Fa(Ma=n,Na=e)}function Va(n,e){var t=n-Ma,r=e-Na,o=ra(t*t+r*r);Ba+=o*(Ma+n)/2,Ua+=o*(Na+e)/2,Pa+=o,Fa(Ma=n,Na=e)}function za(){Ha.point=Fa}function Xa(){Ha.point=Ya}function qa(){Wa(Ra,xa)}function Ya(n,e){Ha.point=Wa,Fa(Ra=Ma=n,xa=Na=e)}function Wa(n,e){var t=n-Ma,r=e-Na,o=ra(t*t+r*r);Ba+=o*(Ma+n)/2,Ua+=o*(Na+e)/2,Pa+=o,o=Na*n-Ma*e,ja+=o*(Ma+n),Ia+=o*(Na+e),Ta+=3*o,Fa(Ma=n,Na=e)}var Za=Ha;function $a(n){this._context=n}$a.prototype={_radius:4.5,pointRadius:function(n){return this._radius=n,this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){0===this._line&&this._context.closePath(),this._point=NaN},point:function(n,e){switch(this._point){case 0:this._context.moveTo(n,e),this._point=1;break;case 1:this._context.lineTo(n,e);break;default:this._context.moveTo(n+this._radius,e),this._context.arc(n,e,this._radius,0,Xo);break}},result:la};var Ja,Qa,ni,ei,ti,ri=new Ho,oi={point:la,lineStart:function(){oi.point=ai},lineEnd:function(){Ja&&ii(Qa,ni),oi.point=la},polygonStart:function(){Ja=!0},polygonEnd:function(){Ja=null},result:function(){var n=+ri;return ri=new Ho,n}};function ai(n,e){oi.point=ii,Qa=ei=n,ni=ti=e}function ii(n,e){ei-=n,ti-=e,ri.add(ra(ei*ei+ti*ti)),ei=n,ti=e}var li=oi;function ui(){this._string=[]}function si(n){return"m0,"+n+"a"+n+","+n+" 0 1,1 0,"+-2*n+"a"+n+","+n+" 0 1,1 0,"+2*n+"z"}ui.prototype={_radius:4.5,_circle:si(4.5),pointRadius:function(n){return(n=+n)!==this._radius&&(this._radius=n,this._circle=null),this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){0===this._line&&this._string.push("Z"),this._point=NaN},point:function(n,e){switch(this._point){case 0:this._string.push("M",n,",",e),this._point=1;break;case 1:this._string.push("L",n,",",e);break;default:null==this._circle&&(this._circle=si(this._radius)),this._string.push("M",n,",",e,this._circle);break}},result:function(){if(this._string.length){var n=this._string.join("");return this._string=[],n}return null}};var _i=function(n,e){var t,r,o=4.5;function a(n){return n&&("function"===typeof o&&r.pointRadius(+o.apply(this,arguments)),To(n,t(r))),r.result()}return a.area=function(n){return To(n,t(va)),va.result()},a.measure=function(n){return To(n,t(li)),li.result()},a.bounds=function(n){return To(n,t(La)),La.result()},a.centroid=function(n){return To(n,t(Za)),Za.result()},a.projection=function(e){return arguments.length?(t=null==e?(n=null,Do):(n=e).stream,a):n},a.context=function(n){return arguments.length?(r=null==n?(e=null,new ui):new $a(e=n),"function"!==typeof o&&r.pointRadius(o),a):e},a.pointRadius=function(n){return arguments.length?(o="function"===typeof n?n:(r.pointRadius(+n),+n),a):o},a.projection(n).context(e)},ci=function(n,e){function t(t,r){return t=n(t,r),e(t[0],t[1])}return n.invert&&e.invert&&(t.invert=function(t,r){return t=e.invert(t,r),t&&n.invert(t[0],t[1])}),t};function pi(n,e){return[Wo(n)>Ko?n+Math.round(-n/Xo)*Xo:n,e]}function fi(n,e,t){return(n%=Xo)?e||t?ci(di(n),gi(e,t)):di(n):e||t?gi(e,t):pi}function mi(n){return function(e,t){return e+=n,[e>Ko?e-Xo:e<-Ko?e+Xo:e,t]}}function di(n){var e=mi(n);return e.invert=mi(-n),e}function gi(n,e){var t=Jo(n),r=ea(n),o=Jo(e),a=ea(e);function i(n,e){var i=Jo(e),l=Jo(n)*i,u=ea(n)*i,s=ea(e),_=s*t+l*r;return[$o(u*o-_*a,l*t-s*r),ia(_*o+u*a)]}return i.invert=function(n,e){var i=Jo(e),l=Jo(n)*i,u=ea(n)*i,s=ea(e),_=s*o-u*a;return[$o(u*o+s*a,l*t+_*r),ia(_*t-l*r)]},i}pi.invert=pi;var hi=function(n){function e(e){return e=n(e[0]*Yo,e[1]*Yo),e[0]*=qo,e[1]*=qo,e}return n=fi(n[0]*Yo,n[1]*Yo,n.length>2?n[2]*Yo:0),e.invert=function(e){return e=n.invert(e[0]*Yo,e[1]*Yo),e[0]*=qo,e[1]*=qo,e},e},bi=function(){var n,e=[];return{point:function(e,t,r){n.push([e,t,r])},lineStart:function(){e.push(n=[])},lineEnd:la,rejoin:function(){e.length>1&&e.push(e.pop().concat(e.shift()))},result:function(){var t=e;return e=[],n=null,t}}},vi=function(n,e){return Wo(n[0]-e[0])=0;--a)o.point((_=s[a])[0],_[1]);else r(p.x,p.p.x,-1,o);p=p.p}p=p.o,s=p.z,f=!f}while(!p.v);o.lineEnd()}}};function ki(n){if(e=n.length){var e,t,r=0,o=n[0];while(++r=0?1:-1,R=A*S,x=R>Ko,M=g*k;if(u.add($o(M*A*ea(R),h*E+M*Jo(R))),i+=x?S+A*Xo:S,x^m>=t^y>=t){var N=Ri(Si(f),Si(v));Ni(N);var L=Ri(a,N);Ni(L);var C=(x^S>=0?-1:1)*ia(L[2]);(r>C||r===C&&(N[0]||N[1]))&&(l+=x^S>=0?1:-1)}}return(i<-Fo||i0){for(c||(o.polygonStart(),c=!0),o.lineStart(),n=0;n1&&2&u&&p.push(p.pop().concat(p.shift())),i.push(p.filter(Ui))}return p}};function Ui(n){return n.length>1}function Pi(n,e){return((n=n.x)[0]<0?n[1]-Vo-Fo:Vo-n[1])-((e=e.x)[0]<0?e[1]-Vo-Fo:Vo-e[1])}var ji=Bi((function(){return!0}),Ii,Hi,[-Ko,-Vo]);function Ii(n){var e,t=NaN,r=NaN,o=NaN;return{lineStart:function(){n.lineStart(),e=1},point:function(a,i){var l=a>0?Ko:-Ko,u=Wo(a-t);Wo(u-Ko)0?Vo:-Vo),n.point(o,r),n.lineEnd(),n.lineStart(),n.point(l,r),n.point(a,r),e=0):o!==l&&u>=Ko&&(Wo(t-o)Fo?Zo((ea(e)*(a=Jo(r))*ea(t)-ea(r)*(o=Jo(e))*ea(n))/(o*a*i)):(e+r)/2}function Hi(n,e,t,r){var o;if(null==n)o=t*Vo,r.point(-Ko,o),r.point(0,o),r.point(Ko,o),r.point(Ko,0),r.point(Ko,-o),r.point(0,-o),r.point(-Ko,-o),r.point(-Ko,0),r.point(-Ko,o);else if(Wo(n[0]-e[0])>Fo){var a=n[0]0?oa)&&(o+=r*Xo));for(var s,_=o;r>0?_>a:_0,o=Wo(e)>Fo;function a(e,r,o,a){Fi(a,n,t,o,e,r)}function i(n,t){return Jo(n)*Jo(t)>e}function l(n){var e,t,a,l,_;return{lineStart:function(){l=a=!1,_=1},point:function(c,p){var f,m=[c,p],d=i(c,p),g=r?d?0:s(c,p):d?s(c+(c<0?Ko:-Ko),p):0;if(!e&&(l=a=d)&&n.lineStart(),d!==a&&(f=u(e,m),(!f||vi(e,f)||vi(m,f))&&(m[2]=1)),d!==a)_=0,d?(n.lineStart(),f=u(m,e),n.point(f[0],f[1])):(f=u(e,m),n.point(f[0],f[1],2),n.lineEnd()),e=f;else if(o&&e&&r^d){var h;g&t||!(h=u(m,e,!0))||(_=0,r?(n.lineStart(),n.point(h[0][0],h[0][1]),n.point(h[1][0],h[1][1]),n.lineEnd()):(n.point(h[1][0],h[1][1]),n.lineEnd(),n.lineStart(),n.point(h[0][0],h[0][1],3)))}!d||e&&vi(e,m)||n.point(m[0],m[1]),e=m,a=d,t=g},lineEnd:function(){a&&n.lineEnd(),e=null},clean:function(){return _|(l&&a)<<1}}}function u(n,t,r){var o=Si(n),a=Si(t),i=[1,0,0],l=Ri(o,a),u=Ai(l,l),s=l[0],_=u-s*s;if(!_)return!r&&n;var c=e*u/_,p=-e*s/_,f=Ri(i,l),m=Mi(i,c),d=Mi(l,p);xi(m,d);var g=f,h=Ai(m,g),b=Ai(g,g),v=h*h-b*(Ai(m,m)-1);if(!(v<0)){var y=ra(v),w=Mi(g,(-h-y)/b);if(xi(w,m),w=Ei(w),!r)return w;var k,E=n[0],S=t[0],A=n[1],R=t[1];S0^w[1]<(Wo(w[0]-E)Ko^(E<=w[0]&&w[0]<=S)){var L=Mi(g,(-h+y)/b);return xi(L,m),[w,Ei(L)]}}}function s(e,t){var o=r?n:Ko-n,a=0;return e<-o?a|=1:e>o&&(a|=2),t<-o?a|=4:t>o&&(a|=8),a}return Bi(i,l,a,r?[0,-n]:[-Ko,n-Ko])},Vi=function(n,e,t,r,o,a){var i,l=n[0],u=n[1],s=e[0],_=e[1],c=0,p=1,f=s-l,m=_-u;if(i=t-l,f||!(i>0)){if(i/=f,f<0){if(i0){if(i>p)return;i>c&&(c=i)}if(i=o-l,f||!(i<0)){if(i/=f,f<0){if(i>p)return;i>c&&(c=i)}else if(f>0){if(i0)){if(i/=m,m<0){if(i0){if(i>p)return;i>c&&(c=i)}if(i=a-u,m||!(i<0)){if(i/=m,m<0){if(i>p)return;i>c&&(c=i)}else if(m>0){if(i0&&(n[0]=l+c*f,n[1]=u+c*m),p<1&&(e[0]=l+p*f,e[1]=u+p*m),!0}}}}},zi=1e9,Xi=-zi;function qi(n,e,t,r){function o(o,a){return n<=o&&o<=t&&e<=a&&a<=r}function a(o,a,l,s){var _=0,c=0;if(null==o||(_=i(o,l))!==(c=i(a,l))||u(o,a)<0^l>0)do{s.point(0===_||3===_?n:t,_>1?r:e)}while((_=(_+l+4)%4)!==c);else s.point(a[0],a[1])}function i(r,o){return Wo(r[0]-n)0?0:3:Wo(r[0]-t)0?2:1:Wo(r[1]-e)0?1:0:o>0?3:2}function l(n,e){return u(n.x,e.x)}function u(n,e){var t=i(n,1),r=i(e,1);return t!==r?t-r:0===t?e[1]-n[1]:1===t?n[0]-e[0]:2===t?n[1]-e[1]:e[0]-n[0]}return function(i){var u,s,_,c,p,f,m,d,g,h,b,v=i,y=bi(),w={point:k,lineStart:R,lineEnd:x,polygonStart:S,polygonEnd:A};function k(n,e){o(n,e)&&v.point(n,e)}function E(){for(var e=0,t=0,o=s.length;tr&&(p-a)*(r-i)>(f-i)*(n-a)&&++e:f<=r&&(p-a)*(r-i)<(f-i)*(n-a)&&--e;return e}function S(){v=y,u=[],s=[],b=!0}function A(){var n=E(),e=b&&n,t=(u=Di(u)).length;(e||t)&&(i.polygonStart(),e&&(i.lineStart(),a(null,null,1,i),i.lineEnd()),t&&wi(u,l,n,a,i),i.polygonEnd()),v=i,u=s=_=null}function R(){w.point=M,s&&s.push(_=[]),h=!0,g=!1,m=d=NaN}function x(){u&&(M(c,p),f&&g&&y.rejoin(),u.push(y.result())),w.point=k,g&&v.lineEnd()}function M(a,i){var l=o(a,i);if(s&&_.push([a,i]),h)c=a,p=i,f=l,h=!1,l&&(v.lineStart(),v.point(a,i));else if(l&&g)v.point(a,i);else{var u=[m=Math.max(Xi,Math.min(zi,m)),d=Math.max(Xi,Math.min(zi,d))],y=[a=Math.max(Xi,Math.min(zi,a)),i=Math.max(Xi,Math.min(zi,i))];Vi(u,y,n,e,t,r)?(g||(v.lineStart(),v.point(u[0],u[1])),v.point(y[0],y[1]),l||v.lineEnd(),b=!1):l&&(v.lineStart(),v.point(a,i),b=!1)}m=a,d=i,g=l}return w}}function Yi(n){return function(e){var t=new Wi;for(var r in n)t[r]=n[r];return t.stream=e,t}}function Wi(){}function Zi(n,e,t){var r=n.clipExtent&&n.clipExtent();return n.scale(150).translate([0,0]),null!=r&&n.clipExtent(null),To(t,n.stream(La)),e(La.result()),null!=r&&n.clipExtent(r),n}function $i(n,e,t){return Zi(n,(function(t){var r=e[1][0]-e[0][0],o=e[1][1]-e[0][1],a=Math.min(r/(t[1][0]-t[0][0]),o/(t[1][1]-t[0][1])),i=+e[0][0]+(r-a*(t[1][0]+t[0][0]))/2,l=+e[0][1]+(o-a*(t[1][1]+t[0][1]))/2;n.scale(150*a).translate([i,l])}),t)}function Ji(n,e,t){return $i(n,[[0,0],e],t)}function Qi(n,e,t){return Zi(n,(function(t){var r=+e,o=r/(t[1][0]-t[0][0]),a=(r-o*(t[1][0]+t[0][0]))/2,i=-o*t[0][1];n.scale(150*o).translate([a,i])}),t)}function nl(n,e,t){return Zi(n,(function(t){var r=+e,o=r/(t[1][1]-t[0][1]),a=-o*t[0][0],i=(r-o*(t[1][1]+t[0][1]))/2;n.scale(150*o).translate([a,i])}),t)}Wi.prototype={constructor:Wi,point:function(n,e){this.stream.point(n,e)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}};var el=16,tl=Jo(30*Yo),rl=function(n,e){return+e?al(n,e):ol(n)};function ol(n){return Yi({point:function(e,t){e=n(e,t),this.stream.point(e[0],e[1])}})}function al(n,e){function t(r,o,a,i,l,u,s,_,c,p,f,m,d,g){var h=s-r,b=_-o,v=h*h+b*b;if(v>4*e&&d--){var y=i+p,w=l+f,k=u+m,E=ra(y*y+w*w+k*k),S=ia(k/=E),A=Wo(Wo(k)-1)e||Wo((h*N+b*L)/v-.5)>.3||i*p+l*f+u*m2?n[2]%360*Yo:0,N()):[g*qo,h*qo,b*qo]},x.angle=function(n){return arguments.length?(v=n%360*Yo,N()):v*qo},x.reflectX=function(n){return arguments.length?(y=n?-1:1,N()):y<0},x.reflectY=function(n){return arguments.length?(w=n?-1:1,N()):w<0},x.precision=function(n){return arguments.length?(i=rl(l,R=n*n),L()):ra(R)},x.fitExtent=function(n,e){return $i(x,n,e)},x.fitSize=function(n,e){return Ji(x,n,e)},x.fitWidth=function(n,e){return Qi(x,n,e)},x.fitHeight=function(n,e){return nl(x,n,e)},function(){return e=n.apply(this,arguments),x.invert=e.invert&&M,N()}}function pl(n,e){return[n,na(oa((Vo+e)/2))]}pl.invert=function(n,e){return[n,2*Zo(Qo(e))-Vo]};var fl=function(){return ml(pl).scale(961/Xo)};function ml(n){var e,t,r,o=_l(n),a=o.center,i=o.scale,l=o.translate,u=o.clipExtent,s=null;function _(){var a=Ko*i(),l=o(hi(o.rotate()).invert([0,0]));return u(null==s?[[l[0]-a,l[1]-a],[l[0]+a,l[1]+a]]:n===pl?[[Math.max(l[0]-a,s),e],[Math.min(l[0]+a,t),r]]:[[s,Math.max(l[1]-a,e)],[t,Math.min(l[1]+a,r)]])}return o.scale=function(n){return arguments.length?(i(n),_()):i()},o.translate=function(n){return arguments.length?(l(n),_()):l()},o.center=function(n){return arguments.length?(a(n),_()):a()},o.clipExtent=function(n){return arguments.length?(null==n?s=e=t=r=null:(s=+n[0][0],e=+n[0][1],t=+n[1][0],r=+n[1][1]),_()):null==s?null:[[s,e],[t,r]]},_()}var dl=1e-12;function gl(n){return((n=Math.exp(n))+1/n)/2}function hl(n){return((n=Math.exp(n))-1/n)/2}function bl(n){return((n=Math.exp(2*n))-1)/(n+1)}(function n(e,t,r){function o(n,o){var a,i,l=n[0],u=n[1],s=n[2],_=o[0],c=o[1],p=o[2],f=_-l,m=c-u,d=f*f+m*m;if(d 1 ? arguments[1] : undefined, length);\n var end = argumentsLength > 2 ? arguments[2] : undefined;\n var endPos = end === undefined ? length : toAbsoluteIndex(end, length);\n while (endPos > index) O[index++] = value;\n return O;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar isArray = require('../internals/is-array');\nvar isObject = require('../internals/is-object');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar createProperty = require('../internals/create-property');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable');\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;\nvar MAXIMUM_ALLOWED_INDEX_EXCEEDED = 'Maximum allowed index exceeded';\n\n// We can't use this feature detection in V8 since it causes\n// deoptimization and serious performance degradation\n// https://github.com/zloirock/core-js/issues/679\nvar IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION >= 51 || !fails(function () {\n var array = [];\n array[IS_CONCAT_SPREADABLE] = false;\n return array.concat()[0] !== array;\n});\n\nvar SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('concat');\n\nvar isConcatSpreadable = function (O) {\n if (!isObject(O)) return false;\n var spreadable = O[IS_CONCAT_SPREADABLE];\n return spreadable !== undefined ? !!spreadable : isArray(O);\n};\n\nvar FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !SPECIES_SUPPORT;\n\n// `Array.prototype.concat` method\n// https://tc39.es/ecma262/#sec-array.prototype.concat\n// with adding support of @@isConcatSpreadable and @@species\n$({ target: 'Array', proto: true, forced: FORCED }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n concat: function concat(arg) {\n var O = toObject(this);\n var A = arraySpeciesCreate(O, 0);\n var n = 0;\n var i, k, length, len, E;\n for (i = -1, length = arguments.length; i < length; i++) {\n E = i === -1 ? O : arguments[i];\n if (isConcatSpreadable(E)) {\n len = toLength(E.length);\n if (n + len > MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]);\n } else {\n if (n >= MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n createProperty(A, n++, E);\n }\n }\n A.length = n;\n return A;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toInteger = require('../internals/to-integer');\nvar toLength = require('../internals/to-length');\nvar toObject = require('../internals/to-object');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar createProperty = require('../internals/create-property');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('splice');\n\nvar max = Math.max;\nvar min = Math.min;\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;\nvar MAXIMUM_ALLOWED_LENGTH_EXCEEDED = 'Maximum allowed length exceeded';\n\n// `Array.prototype.splice` method\n// https://tc39.es/ecma262/#sec-array.prototype.splice\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n splice: function splice(start, deleteCount /* , ...items */) {\n var O = toObject(this);\n var len = toLength(O.length);\n var actualStart = toAbsoluteIndex(start, len);\n var argumentsLength = arguments.length;\n var insertCount, actualDeleteCount, A, k, from, to;\n if (argumentsLength === 0) {\n insertCount = actualDeleteCount = 0;\n } else if (argumentsLength === 1) {\n insertCount = 0;\n actualDeleteCount = len - actualStart;\n } else {\n insertCount = argumentsLength - 2;\n actualDeleteCount = min(max(toInteger(deleteCount), 0), len - actualStart);\n }\n if (len + insertCount - actualDeleteCount > MAX_SAFE_INTEGER) {\n throw TypeError(MAXIMUM_ALLOWED_LENGTH_EXCEEDED);\n }\n A = arraySpeciesCreate(O, actualDeleteCount);\n for (k = 0; k < actualDeleteCount; k++) {\n from = actualStart + k;\n if (from in O) createProperty(A, k, O[from]);\n }\n A.length = actualDeleteCount;\n if (insertCount < actualDeleteCount) {\n for (k = actualStart; k < len - actualDeleteCount; k++) {\n from = k + actualDeleteCount;\n to = k + insertCount;\n if (from in O) O[to] = O[from];\n else delete O[to];\n }\n for (k = len; k > len - actualDeleteCount + insertCount; k--) delete O[k - 1];\n } else if (insertCount > actualDeleteCount) {\n for (k = len - actualDeleteCount; k > actualStart; k--) {\n from = k + actualDeleteCount - 1;\n to = k + insertCount - 1;\n if (from in O) O[to] = O[from];\n else delete O[to];\n }\n }\n for (k = 0; k < insertCount; k++) {\n O[k + actualStart] = arguments[k + 2];\n }\n O.length = len - actualDeleteCount + insertCount;\n return A;\n }\n});\n","var $ = require('../internals/export');\nvar from = require('../internals/array-from');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\n\nvar INCORRECT_ITERATION = !checkCorrectnessOfIteration(function (iterable) {\n Array.from(iterable);\n});\n\n// `Array.from` method\n// https://tc39.es/ecma262/#sec-array.from\n$({ target: 'Array', stat: true, forced: INCORRECT_ITERATION }, {\n from: from\n});\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./MeshMap.vue?vue&type=style&index=0&id=59d5eebf&lang=scss\"","var $ = require('../internals/export');\nvar fill = require('../internals/array-fill');\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// `Array.prototype.fill` method\n// https://tc39.es/ecma262/#sec-array.prototype.fill\n$({ target: 'Array', proto: true }, {\n fill: fill\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('fill');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.iterator` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.iterator\ndefineWellKnownSymbol('iterator');\n","\n\n\n\n\n","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}","import arrayLikeToArray from \"../arrayLikeToArray/_index.mjs\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}","import arrayLikeToArray from \"../arrayLikeToArray/_index.mjs\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import arrayWithoutHoles from \"../arrayWithoutHoles/_index.mjs\";\nimport iterableToArray from \"../iterableToArray/_index.mjs\";\nimport unsupportedIterableToArray from \"../unsupportedIterableToArray/_index.mjs\";\nimport nonIterableSpread from \"../nonIterableSpread/_index.mjs\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","var noop = {value: () => {}};\n\nfunction dispatch() {\n for (var i = 0, n = arguments.length, _ = {}, t; i < n; ++i) {\n if (!(t = arguments[i] + \"\") || (t in _) || /[\\s.]/.test(t)) throw new Error(\"illegal type: \" + t);\n _[t] = [];\n }\n return new Dispatch(_);\n}\n\nfunction Dispatch(_) {\n this._ = _;\n}\n\nfunction parseTypenames(typenames, types) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n if (t && !types.hasOwnProperty(t)) throw new Error(\"unknown type: \" + t);\n return {type: t, name: name};\n });\n}\n\nDispatch.prototype = dispatch.prototype = {\n constructor: Dispatch,\n on: function(typename, callback) {\n var _ = this._,\n T = parseTypenames(typename + \"\", _),\n t,\n i = -1,\n n = T.length;\n\n // If no callback was specified, return the callback of the given type and name.\n if (arguments.length < 2) {\n while (++i < n) if ((t = (typename = T[i]).type) && (t = get(_[t], typename.name))) return t;\n return;\n }\n\n // If a type was specified, set the callback for the given type and name.\n // Otherwise, if a null callback was specified, remove callbacks of the given name.\n if (callback != null && typeof callback !== \"function\") throw new Error(\"invalid callback: \" + callback);\n while (++i < n) {\n if (t = (typename = T[i]).type) _[t] = set(_[t], typename.name, callback);\n else if (callback == null) for (t in _) _[t] = set(_[t], typename.name, null);\n }\n\n return this;\n },\n copy: function() {\n var copy = {}, _ = this._;\n for (var t in _) copy[t] = _[t].slice();\n return new Dispatch(copy);\n },\n call: function(type, that) {\n if ((n = arguments.length - 2) > 0) for (var args = new Array(n), i = 0, n, t; i < n; ++i) args[i] = arguments[i + 2];\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n },\n apply: function(type, that, args) {\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (var t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n }\n};\n\nfunction get(type, name) {\n for (var i = 0, n = type.length, c; i < n; ++i) {\n if ((c = type[i]).name === name) {\n return c.value;\n }\n }\n}\n\nfunction set(type, name, callback) {\n for (var i = 0, n = type.length; i < n; ++i) {\n if (type[i].name === name) {\n type[i] = noop, type = type.slice(0, i).concat(type.slice(i + 1));\n break;\n }\n }\n if (callback != null) type.push({name: name, value: callback});\n return type;\n}\n\nexport default dispatch;\n","function none() {}\n\nexport default function(selector) {\n return selector == null ? none : function() {\n return this.querySelector(selector);\n };\n}\n","import {Selection} from \"./index.js\";\nimport selector from \"../selector.js\";\n\nexport default function(select) {\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}\n","export default function(x) {\n return typeof x === \"object\" && \"length\" in x\n ? x // Array, TypedArray, NodeList, array-like\n : Array.from(x); // Map, Set, iterable, string, or anything else\n}\n","function empty() {\n return [];\n}\n\nexport default function(selector) {\n return selector == null ? empty : function() {\n return this.querySelectorAll(selector);\n };\n}\n","import {Selection} from \"./index.js\";\nimport array from \"../array.js\";\nimport selectorAll from \"../selectorAll.js\";\n\nfunction arrayAll(select) {\n return function() {\n var group = select.apply(this, arguments);\n return group == null ? [] : array(group);\n };\n}\n\nexport default function(select) {\n if (typeof select === \"function\") select = arrayAll(select);\n else select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n subgroups.push(select.call(node, node.__data__, i, group));\n parents.push(node);\n }\n }\n }\n\n return new Selection(subgroups, parents);\n}\n","export default function(selector) {\n return function() {\n return this.matches(selector);\n };\n}\n\nexport function childMatcher(selector) {\n return function(node) {\n return node.matches(selector);\n };\n}\n\n","import {childMatcher} from \"../matcher.js\";\n\nvar find = Array.prototype.find;\n\nfunction childFind(match) {\n return function() {\n return find.call(this.children, match);\n };\n}\n\nfunction childFirst() {\n return this.firstElementChild;\n}\n\nexport default function(match) {\n return this.select(match == null ? childFirst\n : childFind(typeof match === \"function\" ? match : childMatcher(match)));\n}\n","import {childMatcher} from \"../matcher.js\";\n\nvar filter = Array.prototype.filter;\n\nfunction children() {\n return this.children;\n}\n\nfunction childrenFilter(match) {\n return function() {\n return filter.call(this.children, match);\n };\n}\n\nexport default function(match) {\n return this.selectAll(match == null ? children\n : childrenFilter(typeof match === \"function\" ? match : childMatcher(match)));\n}\n","import {Selection} from \"./index.js\";\nimport matcher from \"../matcher.js\";\n\nexport default function(match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}\n","export default function(update) {\n return new Array(update.length);\n}\n","import sparse from \"./sparse.js\";\nimport {Selection} from \"./index.js\";\n\nexport default function() {\n return new Selection(this._enter || this._groups.map(sparse), this._parents);\n}\n\nexport function EnterNode(parent, datum) {\n this.ownerDocument = parent.ownerDocument;\n this.namespaceURI = parent.namespaceURI;\n this._next = null;\n this._parent = parent;\n this.__data__ = datum;\n}\n\nEnterNode.prototype = {\n constructor: EnterNode,\n appendChild: function(child) { return this._parent.insertBefore(child, this._next); },\n insertBefore: function(child, next) { return this._parent.insertBefore(child, next); },\n querySelector: function(selector) { return this._parent.querySelector(selector); },\n querySelectorAll: function(selector) { return this._parent.querySelectorAll(selector); }\n};\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","import {Selection} from \"./index.js\";\nimport {EnterNode} from \"./enter.js\";\nimport array from \"../array.js\";\nimport constant from \"../constant.js\";\n\nfunction bindIndex(parent, group, enter, update, exit, data) {\n var i = 0,\n node,\n groupLength = group.length,\n dataLength = data.length;\n\n // Put any non-null nodes that fit into update.\n // Put any null nodes into enter.\n // Put any remaining data into enter.\n for (; i < dataLength; ++i) {\n if (node = group[i]) {\n node.__data__ = data[i];\n update[i] = node;\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Put any non-null nodes that don’t fit into exit.\n for (; i < groupLength; ++i) {\n if (node = group[i]) {\n exit[i] = node;\n }\n }\n}\n\nfunction bindKey(parent, group, enter, update, exit, data, key) {\n var i,\n node,\n nodeByKeyValue = new Map,\n groupLength = group.length,\n dataLength = data.length,\n keyValues = new Array(groupLength),\n keyValue;\n\n // Compute the key for each node.\n // If multiple nodes have the same key, the duplicates are added to exit.\n for (i = 0; i < groupLength; ++i) {\n if (node = group[i]) {\n keyValues[i] = keyValue = key.call(node, node.__data__, i, group) + \"\";\n if (nodeByKeyValue.has(keyValue)) {\n exit[i] = node;\n } else {\n nodeByKeyValue.set(keyValue, node);\n }\n }\n }\n\n // Compute the key for each datum.\n // If there a node associated with this key, join and add it to update.\n // If there is not (or the key is a duplicate), add it to enter.\n for (i = 0; i < dataLength; ++i) {\n keyValue = key.call(parent, data[i], i, data) + \"\";\n if (node = nodeByKeyValue.get(keyValue)) {\n update[i] = node;\n node.__data__ = data[i];\n nodeByKeyValue.delete(keyValue);\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Add any remaining nodes that were not bound to data to exit.\n for (i = 0; i < groupLength; ++i) {\n if ((node = group[i]) && (nodeByKeyValue.get(keyValues[i]) === node)) {\n exit[i] = node;\n }\n }\n}\n\nfunction datum(node) {\n return node.__data__;\n}\n\nexport default function(value, key) {\n if (!arguments.length) return Array.from(this, datum);\n\n var bind = key ? bindKey : bindIndex,\n parents = this._parents,\n groups = this._groups;\n\n if (typeof value !== \"function\") value = constant(value);\n\n for (var m = groups.length, update = new Array(m), enter = new Array(m), exit = new Array(m), j = 0; j < m; ++j) {\n var parent = parents[j],\n group = groups[j],\n groupLength = group.length,\n data = array(value.call(parent, parent && parent.__data__, j, parents)),\n dataLength = data.length,\n enterGroup = enter[j] = new Array(dataLength),\n updateGroup = update[j] = new Array(dataLength),\n exitGroup = exit[j] = new Array(groupLength);\n\n bind(parent, group, enterGroup, updateGroup, exitGroup, data, key);\n\n // Now connect the enter nodes to their following update node, such that\n // appendChild can insert the materialized enter node before this node,\n // rather than at the end of the parent node.\n for (var i0 = 0, i1 = 0, previous, next; i0 < dataLength; ++i0) {\n if (previous = enterGroup[i0]) {\n if (i0 >= i1) i1 = i0 + 1;\n while (!(next = updateGroup[i1]) && ++i1 < dataLength);\n previous._next = next || null;\n }\n }\n }\n\n update = new Selection(update, parents);\n update._enter = enter;\n update._exit = exit;\n return update;\n}\n","import sparse from \"./sparse.js\";\nimport {Selection} from \"./index.js\";\n\nexport default function() {\n return new Selection(this._exit || this._groups.map(sparse), this._parents);\n}\n","export default function(onenter, onupdate, onexit) {\n var enter = this.enter(), update = this, exit = this.exit();\n enter = typeof onenter === \"function\" ? onenter(enter) : enter.append(onenter + \"\");\n if (onupdate != null) update = onupdate(update);\n if (onexit == null) exit.remove(); else onexit(exit);\n return enter && update ? enter.merge(update).order() : update;\n}\n","import {Selection} from \"./index.js\";\n\nexport default function(selection) {\n if (!(selection instanceof Selection)) throw new Error(\"invalid merge\");\n\n for (var groups0 = this._groups, groups1 = selection._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Selection(merges, this._parents);\n}\n","export default function() {\n\n for (var groups = this._groups, j = -1, m = groups.length; ++j < m;) {\n for (var group = groups[j], i = group.length - 1, next = group[i], node; --i >= 0;) {\n if (node = group[i]) {\n if (next && node.compareDocumentPosition(next) ^ 4) next.parentNode.insertBefore(node, next);\n next = node;\n }\n }\n }\n\n return this;\n}\n","import {Selection} from \"./index.js\";\n\nexport default function(compare) {\n if (!compare) compare = ascending;\n\n function compareNode(a, b) {\n return a && b ? compare(a.__data__, b.__data__) : !a - !b;\n }\n\n for (var groups = this._groups, m = groups.length, sortgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, sortgroup = sortgroups[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n sortgroup[i] = node;\n }\n }\n sortgroup.sort(compareNode);\n }\n\n return new Selection(sortgroups, this._parents).order();\n}\n\nfunction ascending(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","export default function() {\n var callback = arguments[0];\n arguments[0] = this;\n callback.apply(null, arguments);\n return this;\n}\n","export default function() {\n return Array.from(this);\n}\n","export default function() {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length; i < n; ++i) {\n var node = group[i];\n if (node) return node;\n }\n }\n\n return null;\n}\n","export default function() {\n let size = 0;\n for (const node of this) ++size; // eslint-disable-line no-unused-vars\n return size;\n}\n","export default function() {\n return !this.node();\n}\n","export default function(callback) {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i]) callback.call(node, node.__data__, i, group);\n }\n }\n\n return this;\n}\n","export var xhtml = \"http://www.w3.org/1999/xhtml\";\n\nexport default {\n svg: \"http://www.w3.org/2000/svg\",\n xhtml: xhtml,\n xlink: \"http://www.w3.org/1999/xlink\",\n xml: \"http://www.w3.org/XML/1998/namespace\",\n xmlns: \"http://www.w3.org/2000/xmlns/\"\n};\n","import namespaces from \"./namespaces.js\";\n\nexport default function(name) {\n var prefix = name += \"\", i = prefix.indexOf(\":\");\n if (i >= 0 && (prefix = name.slice(0, i)) !== \"xmlns\") name = name.slice(i + 1);\n return namespaces.hasOwnProperty(prefix) ? {space: namespaces[prefix], local: name} : name; // eslint-disable-line no-prototype-builtins\n}\n","import namespace from \"../namespace.js\";\n\nfunction attrRemove(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, value) {\n return function() {\n this.setAttribute(name, value);\n };\n}\n\nfunction attrConstantNS(fullname, value) {\n return function() {\n this.setAttributeNS(fullname.space, fullname.local, value);\n };\n}\n\nfunction attrFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttribute(name);\n else this.setAttribute(name, v);\n };\n}\n\nfunction attrFunctionNS(fullname, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttributeNS(fullname.space, fullname.local);\n else this.setAttributeNS(fullname.space, fullname.local, v);\n };\n}\n\nexport default function(name, value) {\n var fullname = namespace(name);\n\n if (arguments.length < 2) {\n var node = this.node();\n return fullname.local\n ? node.getAttributeNS(fullname.space, fullname.local)\n : node.getAttribute(fullname);\n }\n\n return this.each((value == null\n ? (fullname.local ? attrRemoveNS : attrRemove) : (typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS : attrFunction)\n : (fullname.local ? attrConstantNS : attrConstant)))(fullname, value));\n}\n","export default function(node) {\n return (node.ownerDocument && node.ownerDocument.defaultView) // node is a Node\n || (node.document && node) // node is a Window\n || node.defaultView; // node is a Document\n}\n","import defaultView from \"../window.js\";\n\nfunction styleRemove(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, value, priority) {\n return function() {\n this.style.setProperty(name, value, priority);\n };\n}\n\nfunction styleFunction(name, value, priority) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.style.removeProperty(name);\n else this.style.setProperty(name, v, priority);\n };\n}\n\nexport default function(name, value, priority) {\n return arguments.length > 1\n ? this.each((value == null\n ? styleRemove : typeof value === \"function\"\n ? styleFunction\n : styleConstant)(name, value, priority == null ? \"\" : priority))\n : styleValue(this.node(), name);\n}\n\nexport function styleValue(node, name) {\n return node.style.getPropertyValue(name)\n || defaultView(node).getComputedStyle(node, null).getPropertyValue(name);\n}\n","function propertyRemove(name) {\n return function() {\n delete this[name];\n };\n}\n\nfunction propertyConstant(name, value) {\n return function() {\n this[name] = value;\n };\n}\n\nfunction propertyFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) delete this[name];\n else this[name] = v;\n };\n}\n\nexport default function(name, value) {\n return arguments.length > 1\n ? this.each((value == null\n ? propertyRemove : typeof value === \"function\"\n ? propertyFunction\n : propertyConstant)(name, value))\n : this.node()[name];\n}\n","function classArray(string) {\n return string.trim().split(/^|\\s+/);\n}\n\nfunction classList(node) {\n return node.classList || new ClassList(node);\n}\n\nfunction ClassList(node) {\n this._node = node;\n this._names = classArray(node.getAttribute(\"class\") || \"\");\n}\n\nClassList.prototype = {\n add: function(name) {\n var i = this._names.indexOf(name);\n if (i < 0) {\n this._names.push(name);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n remove: function(name) {\n var i = this._names.indexOf(name);\n if (i >= 0) {\n this._names.splice(i, 1);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n contains: function(name) {\n return this._names.indexOf(name) >= 0;\n }\n};\n\nfunction classedAdd(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.add(names[i]);\n}\n\nfunction classedRemove(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.remove(names[i]);\n}\n\nfunction classedTrue(names) {\n return function() {\n classedAdd(this, names);\n };\n}\n\nfunction classedFalse(names) {\n return function() {\n classedRemove(this, names);\n };\n}\n\nfunction classedFunction(names, value) {\n return function() {\n (value.apply(this, arguments) ? classedAdd : classedRemove)(this, names);\n };\n}\n\nexport default function(name, value) {\n var names = classArray(name + \"\");\n\n if (arguments.length < 2) {\n var list = classList(this.node()), i = -1, n = names.length;\n while (++i < n) if (!list.contains(names[i])) return false;\n return true;\n }\n\n return this.each((typeof value === \"function\"\n ? classedFunction : value\n ? classedTrue\n : classedFalse)(names, value));\n}\n","function textRemove() {\n this.textContent = \"\";\n}\n\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.textContent = v == null ? \"\" : v;\n };\n}\n\nexport default function(value) {\n return arguments.length\n ? this.each(value == null\n ? textRemove : (typeof value === \"function\"\n ? textFunction\n : textConstant)(value))\n : this.node().textContent;\n}\n","function htmlRemove() {\n this.innerHTML = \"\";\n}\n\nfunction htmlConstant(value) {\n return function() {\n this.innerHTML = value;\n };\n}\n\nfunction htmlFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.innerHTML = v == null ? \"\" : v;\n };\n}\n\nexport default function(value) {\n return arguments.length\n ? this.each(value == null\n ? htmlRemove : (typeof value === \"function\"\n ? htmlFunction\n : htmlConstant)(value))\n : this.node().innerHTML;\n}\n","function raise() {\n if (this.nextSibling) this.parentNode.appendChild(this);\n}\n\nexport default function() {\n return this.each(raise);\n}\n","function lower() {\n if (this.previousSibling) this.parentNode.insertBefore(this, this.parentNode.firstChild);\n}\n\nexport default function() {\n return this.each(lower);\n}\n","import namespace from \"./namespace.js\";\nimport {xhtml} from \"./namespaces.js\";\n\nfunction creatorInherit(name) {\n return function() {\n var document = this.ownerDocument,\n uri = this.namespaceURI;\n return uri === xhtml && document.documentElement.namespaceURI === xhtml\n ? document.createElement(name)\n : document.createElementNS(uri, name);\n };\n}\n\nfunction creatorFixed(fullname) {\n return function() {\n return this.ownerDocument.createElementNS(fullname.space, fullname.local);\n };\n}\n\nexport default function(name) {\n var fullname = namespace(name);\n return (fullname.local\n ? creatorFixed\n : creatorInherit)(fullname);\n}\n","import creator from \"../creator.js\";\n\nexport default function(name) {\n var create = typeof name === \"function\" ? name : creator(name);\n return this.select(function() {\n return this.appendChild(create.apply(this, arguments));\n });\n}\n","import creator from \"../creator.js\";\nimport selector from \"../selector.js\";\n\nfunction constantNull() {\n return null;\n}\n\nexport default function(name, before) {\n var create = typeof name === \"function\" ? name : creator(name),\n select = before == null ? constantNull : typeof before === \"function\" ? before : selector(before);\n return this.select(function() {\n return this.insertBefore(create.apply(this, arguments), select.apply(this, arguments) || null);\n });\n}\n","function remove() {\n var parent = this.parentNode;\n if (parent) parent.removeChild(this);\n}\n\nexport default function() {\n return this.each(remove);\n}\n","function selection_cloneShallow() {\n var clone = this.cloneNode(false), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nfunction selection_cloneDeep() {\n var clone = this.cloneNode(true), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nexport default function(deep) {\n return this.select(deep ? selection_cloneDeep : selection_cloneShallow);\n}\n","export default function(value) {\n return arguments.length\n ? this.property(\"__data__\", value)\n : this.node().__data__;\n}\n","function contextListener(listener) {\n return function(event) {\n listener.call(this, event, this.__data__);\n };\n}\n\nfunction parseTypenames(typenames) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n return {type: t, name: name};\n });\n}\n\nfunction onRemove(typename) {\n return function() {\n var on = this.__on;\n if (!on) return;\n for (var j = 0, i = -1, m = on.length, o; j < m; ++j) {\n if (o = on[j], (!typename.type || o.type === typename.type) && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.options);\n } else {\n on[++i] = o;\n }\n }\n if (++i) on.length = i;\n else delete this.__on;\n };\n}\n\nfunction onAdd(typename, value, options) {\n return function() {\n var on = this.__on, o, listener = contextListener(value);\n if (on) for (var j = 0, m = on.length; j < m; ++j) {\n if ((o = on[j]).type === typename.type && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.options);\n this.addEventListener(o.type, o.listener = listener, o.options = options);\n o.value = value;\n return;\n }\n }\n this.addEventListener(typename.type, listener, options);\n o = {type: typename.type, name: typename.name, value: value, listener: listener, options: options};\n if (!on) this.__on = [o];\n else on.push(o);\n };\n}\n\nexport default function(typename, value, options) {\n var typenames = parseTypenames(typename + \"\"), i, n = typenames.length, t;\n\n if (arguments.length < 2) {\n var on = this.node().__on;\n if (on) for (var j = 0, m = on.length, o; j < m; ++j) {\n for (i = 0, o = on[j]; i < n; ++i) {\n if ((t = typenames[i]).type === o.type && t.name === o.name) {\n return o.value;\n }\n }\n }\n return;\n }\n\n on = value ? onAdd : onRemove;\n for (i = 0; i < n; ++i) this.each(on(typenames[i], value, options));\n return this;\n}\n","import defaultView from \"../window.js\";\n\nfunction dispatchEvent(node, type, params) {\n var window = defaultView(node),\n event = window.CustomEvent;\n\n if (typeof event === \"function\") {\n event = new event(type, params);\n } else {\n event = window.document.createEvent(\"Event\");\n if (params) event.initEvent(type, params.bubbles, params.cancelable), event.detail = params.detail;\n else event.initEvent(type, false, false);\n }\n\n node.dispatchEvent(event);\n}\n\nfunction dispatchConstant(type, params) {\n return function() {\n return dispatchEvent(this, type, params);\n };\n}\n\nfunction dispatchFunction(type, params) {\n return function() {\n return dispatchEvent(this, type, params.apply(this, arguments));\n };\n}\n\nexport default function(type, params) {\n return this.each((typeof params === \"function\"\n ? dispatchFunction\n : dispatchConstant)(type, params));\n}\n","export default function*() {\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i]) yield node;\n }\n }\n}\n","import selection_select from \"./select.js\";\nimport selection_selectAll from \"./selectAll.js\";\nimport selection_selectChild from \"./selectChild.js\";\nimport selection_selectChildren from \"./selectChildren.js\";\nimport selection_filter from \"./filter.js\";\nimport selection_data from \"./data.js\";\nimport selection_enter from \"./enter.js\";\nimport selection_exit from \"./exit.js\";\nimport selection_join from \"./join.js\";\nimport selection_merge from \"./merge.js\";\nimport selection_order from \"./order.js\";\nimport selection_sort from \"./sort.js\";\nimport selection_call from \"./call.js\";\nimport selection_nodes from \"./nodes.js\";\nimport selection_node from \"./node.js\";\nimport selection_size from \"./size.js\";\nimport selection_empty from \"./empty.js\";\nimport selection_each from \"./each.js\";\nimport selection_attr from \"./attr.js\";\nimport selection_style from \"./style.js\";\nimport selection_property from \"./property.js\";\nimport selection_classed from \"./classed.js\";\nimport selection_text from \"./text.js\";\nimport selection_html from \"./html.js\";\nimport selection_raise from \"./raise.js\";\nimport selection_lower from \"./lower.js\";\nimport selection_append from \"./append.js\";\nimport selection_insert from \"./insert.js\";\nimport selection_remove from \"./remove.js\";\nimport selection_clone from \"./clone.js\";\nimport selection_datum from \"./datum.js\";\nimport selection_on from \"./on.js\";\nimport selection_dispatch from \"./dispatch.js\";\nimport selection_iterator from \"./iterator.js\";\n\nexport var root = [null];\n\nexport function Selection(groups, parents) {\n this._groups = groups;\n this._parents = parents;\n}\n\nfunction selection() {\n return new Selection([[document.documentElement]], root);\n}\n\nfunction selection_selection() {\n return this;\n}\n\nSelection.prototype = selection.prototype = {\n constructor: Selection,\n select: selection_select,\n selectAll: selection_selectAll,\n selectChild: selection_selectChild,\n selectChildren: selection_selectChildren,\n filter: selection_filter,\n data: selection_data,\n enter: selection_enter,\n exit: selection_exit,\n join: selection_join,\n merge: selection_merge,\n selection: selection_selection,\n order: selection_order,\n sort: selection_sort,\n call: selection_call,\n nodes: selection_nodes,\n node: selection_node,\n size: selection_size,\n empty: selection_empty,\n each: selection_each,\n attr: selection_attr,\n style: selection_style,\n property: selection_property,\n classed: selection_classed,\n text: selection_text,\n html: selection_html,\n raise: selection_raise,\n lower: selection_lower,\n append: selection_append,\n insert: selection_insert,\n remove: selection_remove,\n clone: selection_clone,\n datum: selection_datum,\n on: selection_on,\n dispatch: selection_dispatch,\n [Symbol.iterator]: selection_iterator\n};\n\nexport default selection;\n","import {Selection, root} from \"./selection/index.js\";\n\nexport default function(selector) {\n return typeof selector === \"string\"\n ? new Selection([[document.querySelector(selector)]], [document.documentElement])\n : new Selection([[selector]], root);\n}\n","export default function(constructor, factory, prototype) {\n constructor.prototype = factory.prototype = prototype;\n prototype.constructor = constructor;\n}\n\nexport function extend(parent, definition) {\n var prototype = Object.create(parent.prototype);\n for (var key in definition) prototype[key] = definition[key];\n return prototype;\n}\n","import define, {extend} from \"./define.js\";\n\nexport function Color() {}\n\nexport var darker = 0.7;\nexport var brighter = 1 / darker;\n\nvar reI = \"\\\\s*([+-]?\\\\d+)\\\\s*\",\n reN = \"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",\n reP = \"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",\n reHex = /^#([0-9a-f]{3,8})$/,\n reRgbInteger = new RegExp(\"^rgb\\\\(\" + [reI, reI, reI] + \"\\\\)$\"),\n reRgbPercent = new RegExp(\"^rgb\\\\(\" + [reP, reP, reP] + \"\\\\)$\"),\n reRgbaInteger = new RegExp(\"^rgba\\\\(\" + [reI, reI, reI, reN] + \"\\\\)$\"),\n reRgbaPercent = new RegExp(\"^rgba\\\\(\" + [reP, reP, reP, reN] + \"\\\\)$\"),\n reHslPercent = new RegExp(\"^hsl\\\\(\" + [reN, reP, reP] + \"\\\\)$\"),\n reHslaPercent = new RegExp(\"^hsla\\\\(\" + [reN, reP, reP, reN] + \"\\\\)$\");\n\nvar named = {\n aliceblue: 0xf0f8ff,\n antiquewhite: 0xfaebd7,\n aqua: 0x00ffff,\n aquamarine: 0x7fffd4,\n azure: 0xf0ffff,\n beige: 0xf5f5dc,\n bisque: 0xffe4c4,\n black: 0x000000,\n blanchedalmond: 0xffebcd,\n blue: 0x0000ff,\n blueviolet: 0x8a2be2,\n brown: 0xa52a2a,\n burlywood: 0xdeb887,\n cadetblue: 0x5f9ea0,\n chartreuse: 0x7fff00,\n chocolate: 0xd2691e,\n coral: 0xff7f50,\n cornflowerblue: 0x6495ed,\n cornsilk: 0xfff8dc,\n crimson: 0xdc143c,\n cyan: 0x00ffff,\n darkblue: 0x00008b,\n darkcyan: 0x008b8b,\n darkgoldenrod: 0xb8860b,\n darkgray: 0xa9a9a9,\n darkgreen: 0x006400,\n darkgrey: 0xa9a9a9,\n darkkhaki: 0xbdb76b,\n darkmagenta: 0x8b008b,\n darkolivegreen: 0x556b2f,\n darkorange: 0xff8c00,\n darkorchid: 0x9932cc,\n darkred: 0x8b0000,\n darksalmon: 0xe9967a,\n darkseagreen: 0x8fbc8f,\n darkslateblue: 0x483d8b,\n darkslategray: 0x2f4f4f,\n darkslategrey: 0x2f4f4f,\n darkturquoise: 0x00ced1,\n darkviolet: 0x9400d3,\n deeppink: 0xff1493,\n deepskyblue: 0x00bfff,\n dimgray: 0x696969,\n dimgrey: 0x696969,\n dodgerblue: 0x1e90ff,\n firebrick: 0xb22222,\n floralwhite: 0xfffaf0,\n forestgreen: 0x228b22,\n fuchsia: 0xff00ff,\n gainsboro: 0xdcdcdc,\n ghostwhite: 0xf8f8ff,\n gold: 0xffd700,\n goldenrod: 0xdaa520,\n gray: 0x808080,\n green: 0x008000,\n greenyellow: 0xadff2f,\n grey: 0x808080,\n honeydew: 0xf0fff0,\n hotpink: 0xff69b4,\n indianred: 0xcd5c5c,\n indigo: 0x4b0082,\n ivory: 0xfffff0,\n khaki: 0xf0e68c,\n lavender: 0xe6e6fa,\n lavenderblush: 0xfff0f5,\n lawngreen: 0x7cfc00,\n lemonchiffon: 0xfffacd,\n lightblue: 0xadd8e6,\n lightcoral: 0xf08080,\n lightcyan: 0xe0ffff,\n lightgoldenrodyellow: 0xfafad2,\n lightgray: 0xd3d3d3,\n lightgreen: 0x90ee90,\n lightgrey: 0xd3d3d3,\n lightpink: 0xffb6c1,\n lightsalmon: 0xffa07a,\n lightseagreen: 0x20b2aa,\n lightskyblue: 0x87cefa,\n lightslategray: 0x778899,\n lightslategrey: 0x778899,\n lightsteelblue: 0xb0c4de,\n lightyellow: 0xffffe0,\n lime: 0x00ff00,\n limegreen: 0x32cd32,\n linen: 0xfaf0e6,\n magenta: 0xff00ff,\n maroon: 0x800000,\n mediumaquamarine: 0x66cdaa,\n mediumblue: 0x0000cd,\n mediumorchid: 0xba55d3,\n mediumpurple: 0x9370db,\n mediumseagreen: 0x3cb371,\n mediumslateblue: 0x7b68ee,\n mediumspringgreen: 0x00fa9a,\n mediumturquoise: 0x48d1cc,\n mediumvioletred: 0xc71585,\n midnightblue: 0x191970,\n mintcream: 0xf5fffa,\n mistyrose: 0xffe4e1,\n moccasin: 0xffe4b5,\n navajowhite: 0xffdead,\n navy: 0x000080,\n oldlace: 0xfdf5e6,\n olive: 0x808000,\n olivedrab: 0x6b8e23,\n orange: 0xffa500,\n orangered: 0xff4500,\n orchid: 0xda70d6,\n palegoldenrod: 0xeee8aa,\n palegreen: 0x98fb98,\n paleturquoise: 0xafeeee,\n palevioletred: 0xdb7093,\n papayawhip: 0xffefd5,\n peachpuff: 0xffdab9,\n peru: 0xcd853f,\n pink: 0xffc0cb,\n plum: 0xdda0dd,\n powderblue: 0xb0e0e6,\n purple: 0x800080,\n rebeccapurple: 0x663399,\n red: 0xff0000,\n rosybrown: 0xbc8f8f,\n royalblue: 0x4169e1,\n saddlebrown: 0x8b4513,\n salmon: 0xfa8072,\n sandybrown: 0xf4a460,\n seagreen: 0x2e8b57,\n seashell: 0xfff5ee,\n sienna: 0xa0522d,\n silver: 0xc0c0c0,\n skyblue: 0x87ceeb,\n slateblue: 0x6a5acd,\n slategray: 0x708090,\n slategrey: 0x708090,\n snow: 0xfffafa,\n springgreen: 0x00ff7f,\n steelblue: 0x4682b4,\n tan: 0xd2b48c,\n teal: 0x008080,\n thistle: 0xd8bfd8,\n tomato: 0xff6347,\n turquoise: 0x40e0d0,\n violet: 0xee82ee,\n wheat: 0xf5deb3,\n white: 0xffffff,\n whitesmoke: 0xf5f5f5,\n yellow: 0xffff00,\n yellowgreen: 0x9acd32\n};\n\ndefine(Color, color, {\n copy: function(channels) {\n return Object.assign(new this.constructor, this, channels);\n },\n displayable: function() {\n return this.rgb().displayable();\n },\n hex: color_formatHex, // Deprecated! Use color.formatHex.\n formatHex: color_formatHex,\n formatHsl: color_formatHsl,\n formatRgb: color_formatRgb,\n toString: color_formatRgb\n});\n\nfunction color_formatHex() {\n return this.rgb().formatHex();\n}\n\nfunction color_formatHsl() {\n return hslConvert(this).formatHsl();\n}\n\nfunction color_formatRgb() {\n return this.rgb().formatRgb();\n}\n\nexport default function color(format) {\n var m, l;\n format = (format + \"\").trim().toLowerCase();\n return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) // #ff0000\n : l === 3 ? new Rgb((m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1) // #f00\n : l === 8 ? rgba(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000\n : l === 4 ? rgba((m >> 12 & 0xf) | (m >> 8 & 0xf0), (m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), (((m & 0xf) << 4) | (m & 0xf)) / 0xff) // #f000\n : null) // invalid hex\n : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)\n : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)\n : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)\n : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)\n : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)\n : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)\n : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins\n : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0)\n : null;\n}\n\nfunction rgbn(n) {\n return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);\n}\n\nfunction rgba(r, g, b, a) {\n if (a <= 0) r = g = b = NaN;\n return new Rgb(r, g, b, a);\n}\n\nexport function rgbConvert(o) {\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Rgb;\n o = o.rgb();\n return new Rgb(o.r, o.g, o.b, o.opacity);\n}\n\nexport function rgb(r, g, b, opacity) {\n return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n}\n\nexport function Rgb(r, g, b, opacity) {\n this.r = +r;\n this.g = +g;\n this.b = +b;\n this.opacity = +opacity;\n}\n\ndefine(Rgb, rgb, extend(Color, {\n brighter: function(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n darker: function(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n rgb: function() {\n return this;\n },\n displayable: function() {\n return (-0.5 <= this.r && this.r < 255.5)\n && (-0.5 <= this.g && this.g < 255.5)\n && (-0.5 <= this.b && this.b < 255.5)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n hex: rgb_formatHex, // Deprecated! Use color.formatHex.\n formatHex: rgb_formatHex,\n formatRgb: rgb_formatRgb,\n toString: rgb_formatRgb\n}));\n\nfunction rgb_formatHex() {\n return \"#\" + hex(this.r) + hex(this.g) + hex(this.b);\n}\n\nfunction rgb_formatRgb() {\n var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n return (a === 1 ? \"rgb(\" : \"rgba(\")\n + Math.max(0, Math.min(255, Math.round(this.r) || 0)) + \", \"\n + Math.max(0, Math.min(255, Math.round(this.g) || 0)) + \", \"\n + Math.max(0, Math.min(255, Math.round(this.b) || 0))\n + (a === 1 ? \")\" : \", \" + a + \")\");\n}\n\nfunction hex(value) {\n value = Math.max(0, Math.min(255, Math.round(value) || 0));\n return (value < 16 ? \"0\" : \"\") + value.toString(16);\n}\n\nfunction hsla(h, s, l, a) {\n if (a <= 0) h = s = l = NaN;\n else if (l <= 0 || l >= 1) h = s = NaN;\n else if (s <= 0) h = NaN;\n return new Hsl(h, s, l, a);\n}\n\nexport function hslConvert(o) {\n if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Hsl;\n if (o instanceof Hsl) return o;\n o = o.rgb();\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n min = Math.min(r, g, b),\n max = Math.max(r, g, b),\n h = NaN,\n s = max - min,\n l = (max + min) / 2;\n if (s) {\n if (r === max) h = (g - b) / s + (g < b) * 6;\n else if (g === max) h = (b - r) / s + 2;\n else h = (r - g) / s + 4;\n s /= l < 0.5 ? max + min : 2 - max - min;\n h *= 60;\n } else {\n s = l > 0 && l < 1 ? 0 : h;\n }\n return new Hsl(h, s, l, o.opacity);\n}\n\nexport function hsl(h, s, l, opacity) {\n return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);\n}\n\nfunction Hsl(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Hsl, hsl, extend(Color, {\n brighter: function(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n darker: function(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n rgb: function() {\n var h = this.h % 360 + (this.h < 0) * 360,\n s = isNaN(h) || isNaN(this.s) ? 0 : this.s,\n l = this.l,\n m2 = l + (l < 0.5 ? l : 1 - l) * s,\n m1 = 2 * l - m2;\n return new Rgb(\n hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),\n hsl2rgb(h, m1, m2),\n hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),\n this.opacity\n );\n },\n displayable: function() {\n return (0 <= this.s && this.s <= 1 || isNaN(this.s))\n && (0 <= this.l && this.l <= 1)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n formatHsl: function() {\n var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n return (a === 1 ? \"hsl(\" : \"hsla(\")\n + (this.h || 0) + \", \"\n + (this.s || 0) * 100 + \"%, \"\n + (this.l || 0) * 100 + \"%\"\n + (a === 1 ? \")\" : \", \" + a + \")\");\n }\n}));\n\n/* From FvD 13.37, CSS Color Module Level 3 */\nfunction hsl2rgb(h, m1, m2) {\n return (h < 60 ? m1 + (m2 - m1) * h / 60\n : h < 180 ? m2\n : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60\n : m1) * 255;\n}\n","export function basis(t1, v0, v1, v2, v3) {\n var t2 = t1 * t1, t3 = t2 * t1;\n return ((1 - 3 * t1 + 3 * t2 - t3) * v0\n + (4 - 6 * t2 + 3 * t3) * v1\n + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2\n + t3 * v3) / 6;\n}\n\nexport default function(values) {\n var n = values.length - 1;\n return function(t) {\n var i = t <= 0 ? (t = 0) : t >= 1 ? (t = 1, n - 1) : Math.floor(t * n),\n v1 = values[i],\n v2 = values[i + 1],\n v0 = i > 0 ? values[i - 1] : 2 * v1 - v2,\n v3 = i < n - 1 ? values[i + 2] : 2 * v2 - v1;\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n","import {basis} from \"./basis.js\";\n\nexport default function(values) {\n var n = values.length;\n return function(t) {\n var i = Math.floor(((t %= 1) < 0 ? ++t : t) * n),\n v0 = values[(i + n - 1) % n],\n v1 = values[i % n],\n v2 = values[(i + 1) % n],\n v3 = values[(i + 2) % n];\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n","export default x => () => x;\n","import constant from \"./constant.js\";\n\nfunction linear(a, d) {\n return function(t) {\n return a + t * d;\n };\n}\n\nfunction exponential(a, b, y) {\n return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) {\n return Math.pow(a + t * b, y);\n };\n}\n\nexport function hue(a, b) {\n var d = b - a;\n return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant(isNaN(a) ? b : a);\n}\n\nexport function gamma(y) {\n return (y = +y) === 1 ? nogamma : function(a, b) {\n return b - a ? exponential(a, b, y) : constant(isNaN(a) ? b : a);\n };\n}\n\nexport default function nogamma(a, b) {\n var d = b - a;\n return d ? linear(a, d) : constant(isNaN(a) ? b : a);\n}\n","import {rgb as colorRgb} from \"d3-color\";\nimport basis from \"./basis.js\";\nimport basisClosed from \"./basisClosed.js\";\nimport nogamma, {gamma} from \"./color.js\";\n\nexport default (function rgbGamma(y) {\n var color = gamma(y);\n\n function rgb(start, end) {\n var r = color((start = colorRgb(start)).r, (end = colorRgb(end)).r),\n g = color(start.g, end.g),\n b = color(start.b, end.b),\n opacity = nogamma(start.opacity, end.opacity);\n return function(t) {\n start.r = r(t);\n start.g = g(t);\n start.b = b(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n rgb.gamma = rgbGamma;\n\n return rgb;\n})(1);\n\nfunction rgbSpline(spline) {\n return function(colors) {\n var n = colors.length,\n r = new Array(n),\n g = new Array(n),\n b = new Array(n),\n i, color;\n for (i = 0; i < n; ++i) {\n color = colorRgb(colors[i]);\n r[i] = color.r || 0;\n g[i] = color.g || 0;\n b[i] = color.b || 0;\n }\n r = spline(r);\n g = spline(g);\n b = spline(b);\n color.opacity = 1;\n return function(t) {\n color.r = r(t);\n color.g = g(t);\n color.b = b(t);\n return color + \"\";\n };\n };\n}\n\nexport var rgbBasis = rgbSpline(basis);\nexport var rgbBasisClosed = rgbSpline(basisClosed);\n","export default function(a, b) {\n var d = new Date;\n return a = +a, b = +b, function(t) {\n return d.setTime(a * (1 - t) + b * t), d;\n };\n}\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return a * (1 - t) + b * t;\n };\n}\n","import number from \"./number.js\";\n\nvar reA = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g,\n reB = new RegExp(reA.source, \"g\");\n\nfunction zero(b) {\n return function() {\n return b;\n };\n}\n\nfunction one(b) {\n return function(t) {\n return b(t) + \"\";\n };\n}\n\nexport default function(a, b) {\n var bi = reA.lastIndex = reB.lastIndex = 0, // scan index for next number in b\n am, // current match in a\n bm, // current match in b\n bs, // string preceding current number in b, if any\n i = -1, // index in s\n s = [], // string constants and placeholders\n q = []; // number interpolators\n\n // Coerce inputs to strings.\n a = a + \"\", b = b + \"\";\n\n // Interpolate pairs of numbers in a & b.\n while ((am = reA.exec(a))\n && (bm = reB.exec(b))) {\n if ((bs = bm.index) > bi) { // a string precedes the next number in b\n bs = b.slice(bi, bs);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n if ((am = am[0]) === (bm = bm[0])) { // numbers in a & b match\n if (s[i]) s[i] += bm; // coalesce with previous string\n else s[++i] = bm;\n } else { // interpolate non-matching numbers\n s[++i] = null;\n q.push({i: i, x: number(am, bm)});\n }\n bi = reB.lastIndex;\n }\n\n // Add remains of b.\n if (bi < b.length) {\n bs = b.slice(bi);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n\n // Special optimization for only a single match.\n // Otherwise, interpolate each of the numbers and rejoin the string.\n return s.length < 2 ? (q[0]\n ? one(q[0].x)\n : zero(b))\n : (b = q.length, function(t) {\n for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n });\n}\n","var frame = 0, // is an animation frame pending?\n timeout = 0, // is a timeout pending?\n interval = 0, // are any timers active?\n pokeDelay = 1000, // how frequently we check for clock skew\n taskHead,\n taskTail,\n clockLast = 0,\n clockNow = 0,\n clockSkew = 0,\n clock = typeof performance === \"object\" && performance.now ? performance : Date,\n setFrame = typeof window === \"object\" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function(f) { setTimeout(f, 17); };\n\nexport function now() {\n return clockNow || (setFrame(clearNow), clockNow = clock.now() + clockSkew);\n}\n\nfunction clearNow() {\n clockNow = 0;\n}\n\nexport function Timer() {\n this._call =\n this._time =\n this._next = null;\n}\n\nTimer.prototype = timer.prototype = {\n constructor: Timer,\n restart: function(callback, delay, time) {\n if (typeof callback !== \"function\") throw new TypeError(\"callback is not a function\");\n time = (time == null ? now() : +time) + (delay == null ? 0 : +delay);\n if (!this._next && taskTail !== this) {\n if (taskTail) taskTail._next = this;\n else taskHead = this;\n taskTail = this;\n }\n this._call = callback;\n this._time = time;\n sleep();\n },\n stop: function() {\n if (this._call) {\n this._call = null;\n this._time = Infinity;\n sleep();\n }\n }\n};\n\nexport function timer(callback, delay, time) {\n var t = new Timer;\n t.restart(callback, delay, time);\n return t;\n}\n\nexport function timerFlush() {\n now(); // Get the current time, if not already set.\n ++frame; // Pretend we’ve set an alarm, if we haven’t already.\n var t = taskHead, e;\n while (t) {\n if ((e = clockNow - t._time) >= 0) t._call.call(null, e);\n t = t._next;\n }\n --frame;\n}\n\nfunction wake() {\n clockNow = (clockLast = clock.now()) + clockSkew;\n frame = timeout = 0;\n try {\n timerFlush();\n } finally {\n frame = 0;\n nap();\n clockNow = 0;\n }\n}\n\nfunction poke() {\n var now = clock.now(), delay = now - clockLast;\n if (delay > pokeDelay) clockSkew -= delay, clockLast = now;\n}\n\nfunction nap() {\n var t0, t1 = taskHead, t2, time = Infinity;\n while (t1) {\n if (t1._call) {\n if (time > t1._time) time = t1._time;\n t0 = t1, t1 = t1._next;\n } else {\n t2 = t1._next, t1._next = null;\n t1 = t0 ? t0._next = t2 : taskHead = t2;\n }\n }\n taskTail = t0;\n sleep(time);\n}\n\nfunction sleep(time) {\n if (frame) return; // Soonest alarm already set, or will be.\n if (timeout) timeout = clearTimeout(timeout);\n var delay = time - clockNow; // Strictly less than if we recomputed clockNow.\n if (delay > 24) {\n if (time < Infinity) timeout = setTimeout(wake, time - clock.now() - clockSkew);\n if (interval) interval = clearInterval(interval);\n } else {\n if (!interval) clockLast = clock.now(), interval = setInterval(poke, pokeDelay);\n frame = 1, setFrame(wake);\n }\n}\n","export default function(event) {\n let sourceEvent;\n while (sourceEvent = event.sourceEvent) event = sourceEvent;\n return event;\n}\n","import sourceEvent from \"./sourceEvent.js\";\n\nexport default function(event, node) {\n event = sourceEvent(event);\n if (node === undefined) node = event.currentTarget;\n if (node) {\n var svg = node.ownerSVGElement || node;\n if (svg.createSVGPoint) {\n var point = svg.createSVGPoint();\n point.x = event.clientX, point.y = event.clientY;\n point = point.matrixTransform(node.getScreenCTM().inverse());\n return [point.x, point.y];\n }\n if (node.getBoundingClientRect) {\n var rect = node.getBoundingClientRect();\n return [event.clientX - rect.left - node.clientLeft, event.clientY - rect.top - node.clientTop];\n }\n }\n return [event.pageX, event.pageY];\n}\n","import {Timer} from \"./timer.js\";\n\nexport default function(callback, delay, time) {\n var t = new Timer;\n delay = delay == null ? 0 : +delay;\n t.restart(elapsed => {\n t.stop();\n callback(elapsed + delay);\n }, delay, time);\n return t;\n}\n","import {dispatch} from \"d3-dispatch\";\nimport {timer, timeout} from \"d3-timer\";\n\nvar emptyOn = dispatch(\"start\", \"end\", \"cancel\", \"interrupt\");\nvar emptyTween = [];\n\nexport var CREATED = 0;\nexport var SCHEDULED = 1;\nexport var STARTING = 2;\nexport var STARTED = 3;\nexport var RUNNING = 4;\nexport var ENDING = 5;\nexport var ENDED = 6;\n\nexport default function(node, name, id, index, group, timing) {\n var schedules = node.__transition;\n if (!schedules) node.__transition = {};\n else if (id in schedules) return;\n create(node, id, {\n name: name,\n index: index, // For context during callback.\n group: group, // For context during callback.\n on: emptyOn,\n tween: emptyTween,\n time: timing.time,\n delay: timing.delay,\n duration: timing.duration,\n ease: timing.ease,\n timer: null,\n state: CREATED\n });\n}\n\nexport function init(node, id) {\n var schedule = get(node, id);\n if (schedule.state > CREATED) throw new Error(\"too late; already scheduled\");\n return schedule;\n}\n\nexport function set(node, id) {\n var schedule = get(node, id);\n if (schedule.state > STARTED) throw new Error(\"too late; already running\");\n return schedule;\n}\n\nexport function get(node, id) {\n var schedule = node.__transition;\n if (!schedule || !(schedule = schedule[id])) throw new Error(\"transition not found\");\n return schedule;\n}\n\nfunction create(node, id, self) {\n var schedules = node.__transition,\n tween;\n\n // Initialize the self timer when the transition is created.\n // Note the actual delay is not known until the first callback!\n schedules[id] = self;\n self.timer = timer(schedule, 0, self.time);\n\n function schedule(elapsed) {\n self.state = SCHEDULED;\n self.timer.restart(start, self.delay, self.time);\n\n // If the elapsed delay is less than our first sleep, start immediately.\n if (self.delay <= elapsed) start(elapsed - self.delay);\n }\n\n function start(elapsed) {\n var i, j, n, o;\n\n // If the state is not SCHEDULED, then we previously errored on start.\n if (self.state !== SCHEDULED) return stop();\n\n for (i in schedules) {\n o = schedules[i];\n if (o.name !== self.name) continue;\n\n // While this element already has a starting transition during this frame,\n // defer starting an interrupting transition until that transition has a\n // chance to tick (and possibly end); see d3/d3-transition#54!\n if (o.state === STARTED) return timeout(start);\n\n // Interrupt the active transition, if any.\n if (o.state === RUNNING) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"interrupt\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n }\n\n // Cancel any pre-empted transitions.\n else if (+i < id) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"cancel\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n }\n }\n\n // Defer the first tick to end of the current frame; see d3/d3#1576.\n // Note the transition may be canceled after start and before the first tick!\n // Note this must be scheduled before the start event; see d3/d3-transition#16!\n // Assuming this is successful, subsequent callbacks go straight to tick.\n timeout(function() {\n if (self.state === STARTED) {\n self.state = RUNNING;\n self.timer.restart(tick, self.delay, self.time);\n tick(elapsed);\n }\n });\n\n // Dispatch the start event.\n // Note this must be done before the tween are initialized.\n self.state = STARTING;\n self.on.call(\"start\", node, node.__data__, self.index, self.group);\n if (self.state !== STARTING) return; // interrupted\n self.state = STARTED;\n\n // Initialize the tween, deleting null tween.\n tween = new Array(n = self.tween.length);\n for (i = 0, j = -1; i < n; ++i) {\n if (o = self.tween[i].value.call(node, node.__data__, self.index, self.group)) {\n tween[++j] = o;\n }\n }\n tween.length = j + 1;\n }\n\n function tick(elapsed) {\n var t = elapsed < self.duration ? self.ease.call(null, elapsed / self.duration) : (self.timer.restart(stop), self.state = ENDING, 1),\n i = -1,\n n = tween.length;\n\n while (++i < n) {\n tween[i].call(node, t);\n }\n\n // Dispatch the end event.\n if (self.state === ENDING) {\n self.on.call(\"end\", node, node.__data__, self.index, self.group);\n stop();\n }\n }\n\n function stop() {\n self.state = ENDED;\n self.timer.stop();\n delete schedules[id];\n for (var i in schedules) return; // eslint-disable-line no-unused-vars\n delete node.__transition;\n }\n}\n","import {STARTING, ENDING, ENDED} from \"./transition/schedule.js\";\n\nexport default function(node, name) {\n var schedules = node.__transition,\n schedule,\n active,\n empty = true,\n i;\n\n if (!schedules) return;\n\n name = name == null ? null : name + \"\";\n\n for (i in schedules) {\n if ((schedule = schedules[i]).name !== name) { empty = false; continue; }\n active = schedule.state > STARTING && schedule.state < ENDING;\n schedule.state = ENDED;\n schedule.timer.stop();\n schedule.on.call(active ? \"interrupt\" : \"cancel\", node, node.__data__, schedule.index, schedule.group);\n delete schedules[i];\n }\n\n if (empty) delete node.__transition;\n}\n","import decompose, {identity} from \"./decompose.js\";\n\nvar svgNode;\n\n/* eslint-disable no-undef */\nexport function parseCss(value) {\n const m = new (typeof DOMMatrix === \"function\" ? DOMMatrix : WebKitCSSMatrix)(value + \"\");\n return m.isIdentity ? identity : decompose(m.a, m.b, m.c, m.d, m.e, m.f);\n}\n\nexport function parseSvg(value) {\n if (value == null) return identity;\n if (!svgNode) svgNode = document.createElementNS(\"http://www.w3.org/2000/svg\", \"g\");\n svgNode.setAttribute(\"transform\", value);\n if (!(value = svgNode.transform.baseVal.consolidate())) return identity;\n value = value.matrix;\n return decompose(value.a, value.b, value.c, value.d, value.e, value.f);\n}\n","import interrupt from \"../interrupt.js\";\n\nexport default function(name) {\n return this.each(function() {\n interrupt(this, name);\n });\n}\n","var degrees = 180 / Math.PI;\n\nexport var identity = {\n translateX: 0,\n translateY: 0,\n rotate: 0,\n skewX: 0,\n scaleX: 1,\n scaleY: 1\n};\n\nexport default function(a, b, c, d, e, f) {\n var scaleX, scaleY, skewX;\n if (scaleX = Math.sqrt(a * a + b * b)) a /= scaleX, b /= scaleX;\n if (skewX = a * c + b * d) c -= a * skewX, d -= b * skewX;\n if (scaleY = Math.sqrt(c * c + d * d)) c /= scaleY, d /= scaleY, skewX /= scaleY;\n if (a * d < b * c) a = -a, b = -b, skewX = -skewX, scaleX = -scaleX;\n return {\n translateX: e,\n translateY: f,\n rotate: Math.atan2(b, a) * degrees,\n skewX: Math.atan(skewX) * degrees,\n scaleX: scaleX,\n scaleY: scaleY\n };\n}\n","import number from \"../number.js\";\nimport {parseCss, parseSvg} from \"./parse.js\";\n\nfunction interpolateTransform(parse, pxComma, pxParen, degParen) {\n\n function pop(s) {\n return s.length ? s.pop() + \" \" : \"\";\n }\n\n function translate(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(\"translate(\", null, pxComma, null, pxParen);\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb || yb) {\n s.push(\"translate(\" + xb + pxComma + yb + pxParen);\n }\n }\n\n function rotate(a, b, s, q) {\n if (a !== b) {\n if (a - b > 180) b += 360; else if (b - a > 180) a += 360; // shortest path\n q.push({i: s.push(pop(s) + \"rotate(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"rotate(\" + b + degParen);\n }\n }\n\n function skewX(a, b, s, q) {\n if (a !== b) {\n q.push({i: s.push(pop(s) + \"skewX(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"skewX(\" + b + degParen);\n }\n }\n\n function scale(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(pop(s) + \"scale(\", null, \",\", null, \")\");\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb !== 1 || yb !== 1) {\n s.push(pop(s) + \"scale(\" + xb + \",\" + yb + \")\");\n }\n }\n\n return function(a, b) {\n var s = [], // string constants and placeholders\n q = []; // number interpolators\n a = parse(a), b = parse(b);\n translate(a.translateX, a.translateY, b.translateX, b.translateY, s, q);\n rotate(a.rotate, b.rotate, s, q);\n skewX(a.skewX, b.skewX, s, q);\n scale(a.scaleX, a.scaleY, b.scaleX, b.scaleY, s, q);\n a = b = null; // gc\n return function(t) {\n var i = -1, n = q.length, o;\n while (++i < n) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n };\n };\n}\n\nexport var interpolateTransformCss = interpolateTransform(parseCss, \"px, \", \"px)\", \"deg)\");\nexport var interpolateTransformSvg = interpolateTransform(parseSvg, \", \", \")\", \")\");\n","import {get, set} from \"./schedule.js\";\n\nfunction tweenRemove(id, name) {\n var tween0, tween1;\n return function() {\n var schedule = set(this, id),\n tween = schedule.tween;\n\n // If this node shared tween with the previous node,\n // just assign the updated shared tween and we’re done!\n // Otherwise, copy-on-write.\n if (tween !== tween0) {\n tween1 = tween0 = tween;\n for (var i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1 = tween1.slice();\n tween1.splice(i, 1);\n break;\n }\n }\n }\n\n schedule.tween = tween1;\n };\n}\n\nfunction tweenFunction(id, name, value) {\n var tween0, tween1;\n if (typeof value !== \"function\") throw new Error;\n return function() {\n var schedule = set(this, id),\n tween = schedule.tween;\n\n // If this node shared tween with the previous node,\n // just assign the updated shared tween and we’re done!\n // Otherwise, copy-on-write.\n if (tween !== tween0) {\n tween1 = (tween0 = tween).slice();\n for (var t = {name: name, value: value}, i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1[i] = t;\n break;\n }\n }\n if (i === n) tween1.push(t);\n }\n\n schedule.tween = tween1;\n };\n}\n\nexport default function(name, value) {\n var id = this._id;\n\n name += \"\";\n\n if (arguments.length < 2) {\n var tween = get(this.node(), id).tween;\n for (var i = 0, n = tween.length, t; i < n; ++i) {\n if ((t = tween[i]).name === name) {\n return t.value;\n }\n }\n return null;\n }\n\n return this.each((value == null ? tweenRemove : tweenFunction)(id, name, value));\n}\n\nexport function tweenValue(transition, name, value) {\n var id = transition._id;\n\n transition.each(function() {\n var schedule = set(this, id);\n (schedule.value || (schedule.value = {}))[name] = value.apply(this, arguments);\n });\n\n return function(node) {\n return get(node, id).value[name];\n };\n}\n","import {color} from \"d3-color\";\nimport {interpolateNumber, interpolateRgb, interpolateString} from \"d3-interpolate\";\n\nexport default function(a, b) {\n var c;\n return (typeof b === \"number\" ? interpolateNumber\n : b instanceof color ? interpolateRgb\n : (c = color(b)) ? (b = c, interpolateRgb)\n : interpolateString)(a, b);\n}\n","import {interpolateTransformSvg as interpolateTransform} from \"d3-interpolate\";\nimport {namespace} from \"d3-selection\";\nimport {tweenValue} from \"./tween.js\";\nimport interpolate from \"./interpolate.js\";\n\nfunction attrRemove(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = this.getAttribute(name);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction attrConstantNS(fullname, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = this.getAttributeNS(fullname.space, fullname.local);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction attrFunction(name, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0, value1 = value(this), string1;\n if (value1 == null) return void this.removeAttribute(name);\n string0 = this.getAttribute(name);\n string1 = value1 + \"\";\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nfunction attrFunctionNS(fullname, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0, value1 = value(this), string1;\n if (value1 == null) return void this.removeAttributeNS(fullname.space, fullname.local);\n string0 = this.getAttributeNS(fullname.space, fullname.local);\n string1 = value1 + \"\";\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nexport default function(name, value) {\n var fullname = namespace(name), i = fullname === \"transform\" ? interpolateTransform : interpolate;\n return this.attrTween(name, typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS : attrFunction)(fullname, i, tweenValue(this, \"attr.\" + name, value))\n : value == null ? (fullname.local ? attrRemoveNS : attrRemove)(fullname)\n : (fullname.local ? attrConstantNS : attrConstant)(fullname, i, value));\n}\n","import {namespace} from \"d3-selection\";\n\nfunction attrInterpolate(name, i) {\n return function(t) {\n this.setAttribute(name, i.call(this, t));\n };\n}\n\nfunction attrInterpolateNS(fullname, i) {\n return function(t) {\n this.setAttributeNS(fullname.space, fullname.local, i.call(this, t));\n };\n}\n\nfunction attrTweenNS(fullname, value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && attrInterpolateNS(fullname, i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nfunction attrTween(name, value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && attrInterpolate(name, i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(name, value) {\n var key = \"attr.\" + name;\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n var fullname = namespace(name);\n return this.tween(key, (fullname.local ? attrTweenNS : attrTween)(fullname, value));\n}\n","import {get, init} from \"./schedule.js\";\n\nfunction delayFunction(id, value) {\n return function() {\n init(this, id).delay = +value.apply(this, arguments);\n };\n}\n\nfunction delayConstant(id, value) {\n return value = +value, function() {\n init(this, id).delay = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each((typeof value === \"function\"\n ? delayFunction\n : delayConstant)(id, value))\n : get(this.node(), id).delay;\n}\n","import {get, set} from \"./schedule.js\";\n\nfunction durationFunction(id, value) {\n return function() {\n set(this, id).duration = +value.apply(this, arguments);\n };\n}\n\nfunction durationConstant(id, value) {\n return value = +value, function() {\n set(this, id).duration = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each((typeof value === \"function\"\n ? durationFunction\n : durationConstant)(id, value))\n : get(this.node(), id).duration;\n}\n","import {get, set} from \"./schedule.js\";\n\nfunction easeConstant(id, value) {\n if (typeof value !== \"function\") throw new Error;\n return function() {\n set(this, id).ease = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each(easeConstant(id, value))\n : get(this.node(), id).ease;\n}\n","import {set} from \"./schedule.js\";\n\nfunction easeVarying(id, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (typeof v !== \"function\") throw new Error;\n set(this, id).ease = v;\n };\n}\n\nexport default function(value) {\n if (typeof value !== \"function\") throw new Error;\n return this.each(easeVarying(this._id, value));\n}\n","import {matcher} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\n\nexport default function(match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Transition(subgroups, this._parents, this._name, this._id);\n}\n","import {Transition} from \"./index.js\";\n\nexport default function(transition) {\n if (transition._id !== this._id) throw new Error;\n\n for (var groups0 = this._groups, groups1 = transition._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Transition(merges, this._parents, this._name, this._id);\n}\n","import {get, set, init} from \"./schedule.js\";\n\nfunction start(name) {\n return (name + \"\").trim().split(/^|\\s+/).every(function(t) {\n var i = t.indexOf(\".\");\n if (i >= 0) t = t.slice(0, i);\n return !t || t === \"start\";\n });\n}\n\nfunction onFunction(id, name, listener) {\n var on0, on1, sit = start(name) ? init : set;\n return function() {\n var schedule = sit(this, id),\n on = schedule.on;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0) (on1 = (on0 = on).copy()).on(name, listener);\n\n schedule.on = on1;\n };\n}\n\nexport default function(name, listener) {\n var id = this._id;\n\n return arguments.length < 2\n ? get(this.node(), id).on.on(name)\n : this.each(onFunction(id, name, listener));\n}\n","function removeFunction(id) {\n return function() {\n var parent = this.parentNode;\n for (var i in this.__transition) if (+i !== id) return;\n if (parent) parent.removeChild(this);\n };\n}\n\nexport default function() {\n return this.on(\"end.remove\", removeFunction(this._id));\n}\n","import {selector} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function(select) {\n var name = this._name,\n id = this._id;\n\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n schedule(subgroup[i], name, id, i, subgroup, get(node, id));\n }\n }\n }\n\n return new Transition(subgroups, this._parents, name, id);\n}\n","import {selectorAll} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function(select) {\n var name = this._name,\n id = this._id;\n\n if (typeof select !== \"function\") select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n for (var children = select.call(node, node.__data__, i, group), child, inherit = get(node, id), k = 0, l = children.length; k < l; ++k) {\n if (child = children[k]) {\n schedule(child, name, id, k, children, inherit);\n }\n }\n subgroups.push(children);\n parents.push(node);\n }\n }\n }\n\n return new Transition(subgroups, parents, name, id);\n}\n","import {selection} from \"d3-selection\";\n\nvar Selection = selection.prototype.constructor;\n\nexport default function() {\n return new Selection(this._groups, this._parents);\n}\n","import {interpolateTransformCss as interpolateTransform} from \"d3-interpolate\";\nimport {style} from \"d3-selection\";\nimport {set} from \"./schedule.js\";\nimport {tweenValue} from \"./tween.js\";\nimport interpolate from \"./interpolate.js\";\n\nfunction styleNull(name, interpolate) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0 = style(this, name),\n string1 = (this.style.removeProperty(name), style(this, name));\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, string10 = string1);\n };\n}\n\nfunction styleRemove(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = style(this, name);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction styleFunction(name, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0 = style(this, name),\n value1 = value(this),\n string1 = value1 + \"\";\n if (value1 == null) string1 = value1 = (this.style.removeProperty(name), style(this, name));\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nfunction styleMaybeRemove(id, name) {\n var on0, on1, listener0, key = \"style.\" + name, event = \"end.\" + key, remove;\n return function() {\n var schedule = set(this, id),\n on = schedule.on,\n listener = schedule.value[key] == null ? remove || (remove = styleRemove(name)) : undefined;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0 || listener0 !== listener) (on1 = (on0 = on).copy()).on(event, listener0 = listener);\n\n schedule.on = on1;\n };\n}\n\nexport default function(name, value, priority) {\n var i = (name += \"\") === \"transform\" ? interpolateTransform : interpolate;\n return value == null ? this\n .styleTween(name, styleNull(name, i))\n .on(\"end.style.\" + name, styleRemove(name))\n : typeof value === \"function\" ? this\n .styleTween(name, styleFunction(name, i, tweenValue(this, \"style.\" + name, value)))\n .each(styleMaybeRemove(this._id, name))\n : this\n .styleTween(name, styleConstant(name, i, value), priority)\n .on(\"end.style.\" + name, null);\n}\n","function styleInterpolate(name, i, priority) {\n return function(t) {\n this.style.setProperty(name, i.call(this, t), priority);\n };\n}\n\nfunction styleTween(name, value, priority) {\n var t, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t = (i0 = i) && styleInterpolate(name, i, priority);\n return t;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(name, value, priority) {\n var key = \"style.\" + (name += \"\");\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n return this.tween(key, styleTween(name, value, priority == null ? \"\" : priority));\n}\n","import {tweenValue} from \"./tween.js\";\n\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function() {\n var value1 = value(this);\n this.textContent = value1 == null ? \"\" : value1;\n };\n}\n\nexport default function(value) {\n return this.tween(\"text\", typeof value === \"function\"\n ? textFunction(tweenValue(this, \"text\", value))\n : textConstant(value == null ? \"\" : value + \"\"));\n}\n","function textInterpolate(i) {\n return function(t) {\n this.textContent = i.call(this, t);\n };\n}\n\nfunction textTween(value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && textInterpolate(i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(value) {\n var key = \"text\";\n if (arguments.length < 1) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n return this.tween(key, textTween(value));\n}\n","import {Transition, newId} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function() {\n var name = this._name,\n id0 = this._id,\n id1 = newId();\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n var inherit = get(node, id0);\n schedule(node, name, id1, i, group, {\n time: inherit.time + inherit.delay + inherit.duration,\n delay: 0,\n duration: inherit.duration,\n ease: inherit.ease\n });\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id1);\n}\n","import {set} from \"./schedule.js\";\n\nexport default function() {\n var on0, on1, that = this, id = that._id, size = that.size();\n return new Promise(function(resolve, reject) {\n var cancel = {value: reject},\n end = {value: function() { if (--size === 0) resolve(); }};\n\n that.each(function() {\n var schedule = set(this, id),\n on = schedule.on;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0) {\n on1 = (on0 = on).copy();\n on1._.cancel.push(cancel);\n on1._.interrupt.push(cancel);\n on1._.end.push(end);\n }\n\n schedule.on = on1;\n });\n\n // The selection was empty, resolve end immediately\n if (size === 0) resolve();\n });\n}\n","import {selection} from \"d3-selection\";\nimport transition_attr from \"./attr.js\";\nimport transition_attrTween from \"./attrTween.js\";\nimport transition_delay from \"./delay.js\";\nimport transition_duration from \"./duration.js\";\nimport transition_ease from \"./ease.js\";\nimport transition_easeVarying from \"./easeVarying.js\";\nimport transition_filter from \"./filter.js\";\nimport transition_merge from \"./merge.js\";\nimport transition_on from \"./on.js\";\nimport transition_remove from \"./remove.js\";\nimport transition_select from \"./select.js\";\nimport transition_selectAll from \"./selectAll.js\";\nimport transition_selection from \"./selection.js\";\nimport transition_style from \"./style.js\";\nimport transition_styleTween from \"./styleTween.js\";\nimport transition_text from \"./text.js\";\nimport transition_textTween from \"./textTween.js\";\nimport transition_transition from \"./transition.js\";\nimport transition_tween from \"./tween.js\";\nimport transition_end from \"./end.js\";\n\nvar id = 0;\n\nexport function Transition(groups, parents, name, id) {\n this._groups = groups;\n this._parents = parents;\n this._name = name;\n this._id = id;\n}\n\nexport default function transition(name) {\n return selection().transition(name);\n}\n\nexport function newId() {\n return ++id;\n}\n\nvar selection_prototype = selection.prototype;\n\nTransition.prototype = transition.prototype = {\n constructor: Transition,\n select: transition_select,\n selectAll: transition_selectAll,\n filter: transition_filter,\n merge: transition_merge,\n selection: transition_selection,\n transition: transition_transition,\n call: selection_prototype.call,\n nodes: selection_prototype.nodes,\n node: selection_prototype.node,\n size: selection_prototype.size,\n empty: selection_prototype.empty,\n each: selection_prototype.each,\n on: transition_on,\n attr: transition_attr,\n attrTween: transition_attrTween,\n style: transition_style,\n styleTween: transition_styleTween,\n text: transition_text,\n textTween: transition_textTween,\n remove: transition_remove,\n tween: transition_tween,\n delay: transition_delay,\n duration: transition_duration,\n ease: transition_ease,\n easeVarying: transition_easeVarying,\n end: transition_end,\n [Symbol.iterator]: selection_prototype[Symbol.iterator]\n};\n","export function cubicIn(t) {\n return t * t * t;\n}\n\nexport function cubicOut(t) {\n return --t * t * t + 1;\n}\n\nexport function cubicInOut(t) {\n return ((t *= 2) <= 1 ? t * t * t : (t -= 2) * t * t + 2) / 2;\n}\n","import {Transition, newId} from \"../transition/index.js\";\nimport schedule from \"../transition/schedule.js\";\nimport {easeCubicInOut} from \"d3-ease\";\nimport {now} from \"d3-timer\";\n\nvar defaultTiming = {\n time: null, // Set on use.\n delay: 0,\n duration: 250,\n ease: easeCubicInOut\n};\n\nfunction inherit(node, id) {\n var timing;\n while (!(timing = node.__transition) || !(timing = timing[id])) {\n if (!(node = node.parentNode)) {\n throw new Error(`transition ${id} not found`);\n }\n }\n return timing;\n}\n\nexport default function(name) {\n var id,\n timing;\n\n if (name instanceof Transition) {\n id = name._id, name = name._name;\n } else {\n id = newId(), (timing = defaultTiming).time = now(), name = name == null ? null : name + \"\";\n }\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n schedule(node, name, id, i, group, timing || inherit(node, id));\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id);\n}\n","import {selection} from \"d3-selection\";\nimport selection_interrupt from \"./interrupt.js\";\nimport selection_transition from \"./transition.js\";\n\nselection.prototype.interrupt = selection_interrupt;\nselection.prototype.transition = selection_transition;\n","import {dispatch} from \"d3-dispatch\";\nimport {dragDisable, dragEnable} from \"d3-drag\";\nimport {interpolate} from \"d3-interpolate\";\nimport {pointer, select} from \"d3-selection\";\nimport {interrupt} from \"d3-transition\";\nimport constant from \"./constant.js\";\nimport BrushEvent from \"./event.js\";\nimport noevent, {nopropagation} from \"./noevent.js\";\n\nvar MODE_DRAG = {name: \"drag\"},\n MODE_SPACE = {name: \"space\"},\n MODE_HANDLE = {name: \"handle\"},\n MODE_CENTER = {name: \"center\"};\n\nconst {abs, max, min} = Math;\n\nfunction number1(e) {\n return [+e[0], +e[1]];\n}\n\nfunction number2(e) {\n return [number1(e[0]), number1(e[1])];\n}\n\nvar X = {\n name: \"x\",\n handles: [\"w\", \"e\"].map(type),\n input: function(x, e) { return x == null ? null : [[+x[0], e[0][1]], [+x[1], e[1][1]]]; },\n output: function(xy) { return xy && [xy[0][0], xy[1][0]]; }\n};\n\nvar Y = {\n name: \"y\",\n handles: [\"n\", \"s\"].map(type),\n input: function(y, e) { return y == null ? null : [[e[0][0], +y[0]], [e[1][0], +y[1]]]; },\n output: function(xy) { return xy && [xy[0][1], xy[1][1]]; }\n};\n\nvar XY = {\n name: \"xy\",\n handles: [\"n\", \"w\", \"e\", \"s\", \"nw\", \"ne\", \"sw\", \"se\"].map(type),\n input: function(xy) { return xy == null ? null : number2(xy); },\n output: function(xy) { return xy; }\n};\n\nvar cursors = {\n overlay: \"crosshair\",\n selection: \"move\",\n n: \"ns-resize\",\n e: \"ew-resize\",\n s: \"ns-resize\",\n w: \"ew-resize\",\n nw: \"nwse-resize\",\n ne: \"nesw-resize\",\n se: \"nwse-resize\",\n sw: \"nesw-resize\"\n};\n\nvar flipX = {\n e: \"w\",\n w: \"e\",\n nw: \"ne\",\n ne: \"nw\",\n se: \"sw\",\n sw: \"se\"\n};\n\nvar flipY = {\n n: \"s\",\n s: \"n\",\n nw: \"sw\",\n ne: \"se\",\n se: \"ne\",\n sw: \"nw\"\n};\n\nvar signsX = {\n overlay: +1,\n selection: +1,\n n: null,\n e: +1,\n s: null,\n w: -1,\n nw: -1,\n ne: +1,\n se: +1,\n sw: -1\n};\n\nvar signsY = {\n overlay: +1,\n selection: +1,\n n: -1,\n e: null,\n s: +1,\n w: null,\n nw: -1,\n ne: -1,\n se: +1,\n sw: +1\n};\n\nfunction type(t) {\n return {type: t};\n}\n\n// Ignore right-click, since that should open the context menu.\nfunction defaultFilter(event) {\n return !event.ctrlKey && !event.button;\n}\n\nfunction defaultExtent() {\n var svg = this.ownerSVGElement || this;\n if (svg.hasAttribute(\"viewBox\")) {\n svg = svg.viewBox.baseVal;\n return [[svg.x, svg.y], [svg.x + svg.width, svg.y + svg.height]];\n }\n return [[0, 0], [svg.width.baseVal.value, svg.height.baseVal.value]];\n}\n\nfunction defaultTouchable() {\n return navigator.maxTouchPoints || (\"ontouchstart\" in this);\n}\n\n// Like d3.local, but with the name “__brush” rather than auto-generated.\nfunction local(node) {\n while (!node.__brush) if (!(node = node.parentNode)) return;\n return node.__brush;\n}\n\nfunction empty(extent) {\n return extent[0][0] === extent[1][0]\n || extent[0][1] === extent[1][1];\n}\n\nexport function brushSelection(node) {\n var state = node.__brush;\n return state ? state.dim.output(state.selection) : null;\n}\n\nexport function brushX() {\n return brush(X);\n}\n\nexport function brushY() {\n return brush(Y);\n}\n\nexport default function() {\n return brush(XY);\n}\n\nfunction brush(dim) {\n var extent = defaultExtent,\n filter = defaultFilter,\n touchable = defaultTouchable,\n keys = true,\n listeners = dispatch(\"start\", \"brush\", \"end\"),\n handleSize = 6,\n touchending;\n\n function brush(group) {\n var overlay = group\n .property(\"__brush\", initialize)\n .selectAll(\".overlay\")\n .data([type(\"overlay\")]);\n\n overlay.enter().append(\"rect\")\n .attr(\"class\", \"overlay\")\n .attr(\"pointer-events\", \"all\")\n .attr(\"cursor\", cursors.overlay)\n .merge(overlay)\n .each(function() {\n var extent = local(this).extent;\n select(this)\n .attr(\"x\", extent[0][0])\n .attr(\"y\", extent[0][1])\n .attr(\"width\", extent[1][0] - extent[0][0])\n .attr(\"height\", extent[1][1] - extent[0][1]);\n });\n\n group.selectAll(\".selection\")\n .data([type(\"selection\")])\n .enter().append(\"rect\")\n .attr(\"class\", \"selection\")\n .attr(\"cursor\", cursors.selection)\n .attr(\"fill\", \"#777\")\n .attr(\"fill-opacity\", 0.3)\n .attr(\"stroke\", \"#fff\")\n .attr(\"shape-rendering\", \"crispEdges\");\n\n var handle = group.selectAll(\".handle\")\n .data(dim.handles, function(d) { return d.type; });\n\n handle.exit().remove();\n\n handle.enter().append(\"rect\")\n .attr(\"class\", function(d) { return \"handle handle--\" + d.type; })\n .attr(\"cursor\", function(d) { return cursors[d.type]; });\n\n group\n .each(redraw)\n .attr(\"fill\", \"none\")\n .attr(\"pointer-events\", \"all\")\n .on(\"mousedown.brush\", started)\n .filter(touchable)\n .on(\"touchstart.brush\", started)\n .on(\"touchmove.brush\", touchmoved)\n .on(\"touchend.brush touchcancel.brush\", touchended)\n .style(\"touch-action\", \"none\")\n .style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\");\n }\n\n brush.move = function(group, selection) {\n if (group.tween) {\n group\n .on(\"start.brush\", function(event) { emitter(this, arguments).beforestart().start(event); })\n .on(\"interrupt.brush end.brush\", function(event) { emitter(this, arguments).end(event); })\n .tween(\"brush\", function() {\n var that = this,\n state = that.__brush,\n emit = emitter(that, arguments),\n selection0 = state.selection,\n selection1 = dim.input(typeof selection === \"function\" ? selection.apply(this, arguments) : selection, state.extent),\n i = interpolate(selection0, selection1);\n\n function tween(t) {\n state.selection = t === 1 && selection1 === null ? null : i(t);\n redraw.call(that);\n emit.brush();\n }\n\n return selection0 !== null && selection1 !== null ? tween : tween(1);\n });\n } else {\n group\n .each(function() {\n var that = this,\n args = arguments,\n state = that.__brush,\n selection1 = dim.input(typeof selection === \"function\" ? selection.apply(that, args) : selection, state.extent),\n emit = emitter(that, args).beforestart();\n\n interrupt(that);\n state.selection = selection1 === null ? null : selection1;\n redraw.call(that);\n emit.start().brush().end();\n });\n }\n };\n\n brush.clear = function(group) {\n brush.move(group, null);\n };\n\n function redraw() {\n var group = select(this),\n selection = local(this).selection;\n\n if (selection) {\n group.selectAll(\".selection\")\n .style(\"display\", null)\n .attr(\"x\", selection[0][0])\n .attr(\"y\", selection[0][1])\n .attr(\"width\", selection[1][0] - selection[0][0])\n .attr(\"height\", selection[1][1] - selection[0][1]);\n\n group.selectAll(\".handle\")\n .style(\"display\", null)\n .attr(\"x\", function(d) { return d.type[d.type.length - 1] === \"e\" ? selection[1][0] - handleSize / 2 : selection[0][0] - handleSize / 2; })\n .attr(\"y\", function(d) { return d.type[0] === \"s\" ? selection[1][1] - handleSize / 2 : selection[0][1] - handleSize / 2; })\n .attr(\"width\", function(d) { return d.type === \"n\" || d.type === \"s\" ? selection[1][0] - selection[0][0] + handleSize : handleSize; })\n .attr(\"height\", function(d) { return d.type === \"e\" || d.type === \"w\" ? selection[1][1] - selection[0][1] + handleSize : handleSize; });\n }\n\n else {\n group.selectAll(\".selection,.handle\")\n .style(\"display\", \"none\")\n .attr(\"x\", null)\n .attr(\"y\", null)\n .attr(\"width\", null)\n .attr(\"height\", null);\n }\n }\n\n function emitter(that, args, clean) {\n var emit = that.__brush.emitter;\n return emit && (!clean || !emit.clean) ? emit : new Emitter(that, args, clean);\n }\n\n function Emitter(that, args, clean) {\n this.that = that;\n this.args = args;\n this.state = that.__brush;\n this.active = 0;\n this.clean = clean;\n }\n\n Emitter.prototype = {\n beforestart: function() {\n if (++this.active === 1) this.state.emitter = this, this.starting = true;\n return this;\n },\n start: function(event, mode) {\n if (this.starting) this.starting = false, this.emit(\"start\", event, mode);\n else this.emit(\"brush\", event);\n return this;\n },\n brush: function(event, mode) {\n this.emit(\"brush\", event, mode);\n return this;\n },\n end: function(event, mode) {\n if (--this.active === 0) delete this.state.emitter, this.emit(\"end\", event, mode);\n return this;\n },\n emit: function(type, event, mode) {\n var d = select(this.that).datum();\n listeners.call(\n type,\n this.that,\n new BrushEvent(type, {\n sourceEvent: event,\n target: brush,\n selection: dim.output(this.state.selection),\n mode,\n dispatch: listeners\n }),\n d\n );\n }\n };\n\n function started(event) {\n if (touchending && !event.touches) return;\n if (!filter.apply(this, arguments)) return;\n\n var that = this,\n type = event.target.__data__.type,\n mode = (keys && event.metaKey ? type = \"overlay\" : type) === \"selection\" ? MODE_DRAG : (keys && event.altKey ? MODE_CENTER : MODE_HANDLE),\n signX = dim === Y ? null : signsX[type],\n signY = dim === X ? null : signsY[type],\n state = local(that),\n extent = state.extent,\n selection = state.selection,\n W = extent[0][0], w0, w1,\n N = extent[0][1], n0, n1,\n E = extent[1][0], e0, e1,\n S = extent[1][1], s0, s1,\n dx = 0,\n dy = 0,\n moving,\n shifting = signX && signY && keys && event.shiftKey,\n lockX,\n lockY,\n points = Array.from(event.touches || [event], t => {\n const i = t.identifier;\n t = pointer(t, that);\n t.point0 = t.slice();\n t.identifier = i;\n return t;\n });\n\n if (type === \"overlay\") {\n if (selection) moving = true;\n const pts = [points[0], points[1] || points[0]];\n state.selection = selection = [[\n w0 = dim === Y ? W : min(pts[0][0], pts[1][0]),\n n0 = dim === X ? N : min(pts[0][1], pts[1][1])\n ], [\n e0 = dim === Y ? E : max(pts[0][0], pts[1][0]),\n s0 = dim === X ? S : max(pts[0][1], pts[1][1])\n ]];\n if (points.length > 1) move();\n } else {\n w0 = selection[0][0];\n n0 = selection[0][1];\n e0 = selection[1][0];\n s0 = selection[1][1];\n }\n\n w1 = w0;\n n1 = n0;\n e1 = e0;\n s1 = s0;\n\n var group = select(that)\n .attr(\"pointer-events\", \"none\");\n\n var overlay = group.selectAll(\".overlay\")\n .attr(\"cursor\", cursors[type]);\n\n interrupt(that);\n var emit = emitter(that, arguments, true).beforestart();\n\n if (event.touches) {\n emit.moved = moved;\n emit.ended = ended;\n } else {\n var view = select(event.view)\n .on(\"mousemove.brush\", moved, true)\n .on(\"mouseup.brush\", ended, true);\n if (keys) view\n .on(\"keydown.brush\", keydowned, true)\n .on(\"keyup.brush\", keyupped, true)\n\n dragDisable(event.view);\n }\n\n redraw.call(that);\n emit.start(event, mode.name);\n\n function moved(event) {\n for (const p of event.changedTouches || [event]) {\n for (const d of points)\n if (d.identifier === p.identifier) d.cur = pointer(p, that);\n }\n if (shifting && !lockX && !lockY && points.length === 1) {\n const point = points[0];\n if (abs(point.cur[0] - point[0]) > abs(point.cur[1] - point[1]))\n lockY = true;\n else\n lockX = true;\n }\n for (const point of points)\n if (point.cur) point[0] = point.cur[0], point[1] = point.cur[1];\n moving = true;\n noevent(event);\n move(event);\n }\n\n function move(event) {\n const point = points[0], point0 = point.point0;\n var t;\n\n dx = point[0] - point0[0];\n dy = point[1] - point0[1];\n\n switch (mode) {\n case MODE_SPACE:\n case MODE_DRAG: {\n if (signX) dx = max(W - w0, min(E - e0, dx)), w1 = w0 + dx, e1 = e0 + dx;\n if (signY) dy = max(N - n0, min(S - s0, dy)), n1 = n0 + dy, s1 = s0 + dy;\n break;\n }\n case MODE_HANDLE: {\n if (points[1]) {\n if (signX) w1 = max(W, min(E, points[0][0])), e1 = max(W, min(E, points[1][0])), signX = 1;\n if (signY) n1 = max(N, min(S, points[0][1])), s1 = max(N, min(S, points[1][1])), signY = 1;\n } else {\n if (signX < 0) dx = max(W - w0, min(E - w0, dx)), w1 = w0 + dx, e1 = e0;\n else if (signX > 0) dx = max(W - e0, min(E - e0, dx)), w1 = w0, e1 = e0 + dx;\n if (signY < 0) dy = max(N - n0, min(S - n0, dy)), n1 = n0 + dy, s1 = s0;\n else if (signY > 0) dy = max(N - s0, min(S - s0, dy)), n1 = n0, s1 = s0 + dy;\n }\n break;\n }\n case MODE_CENTER: {\n if (signX) w1 = max(W, min(E, w0 - dx * signX)), e1 = max(W, min(E, e0 + dx * signX));\n if (signY) n1 = max(N, min(S, n0 - dy * signY)), s1 = max(N, min(S, s0 + dy * signY));\n break;\n }\n }\n\n if (e1 < w1) {\n signX *= -1;\n t = w0, w0 = e0, e0 = t;\n t = w1, w1 = e1, e1 = t;\n if (type in flipX) overlay.attr(\"cursor\", cursors[type = flipX[type]]);\n }\n\n if (s1 < n1) {\n signY *= -1;\n t = n0, n0 = s0, s0 = t;\n t = n1, n1 = s1, s1 = t;\n if (type in flipY) overlay.attr(\"cursor\", cursors[type = flipY[type]]);\n }\n\n if (state.selection) selection = state.selection; // May be set by brush.move!\n if (lockX) w1 = selection[0][0], e1 = selection[1][0];\n if (lockY) n1 = selection[0][1], s1 = selection[1][1];\n\n if (selection[0][0] !== w1\n || selection[0][1] !== n1\n || selection[1][0] !== e1\n || selection[1][1] !== s1) {\n state.selection = [[w1, n1], [e1, s1]];\n redraw.call(that);\n emit.brush(event, mode.name);\n }\n }\n\n function ended(event) {\n nopropagation(event);\n if (event.touches) {\n if (event.touches.length) return;\n if (touchending) clearTimeout(touchending);\n touchending = setTimeout(function() { touchending = null; }, 500); // Ghost clicks are delayed!\n } else {\n dragEnable(event.view, moving);\n view.on(\"keydown.brush keyup.brush mousemove.brush mouseup.brush\", null);\n }\n group.attr(\"pointer-events\", \"all\");\n overlay.attr(\"cursor\", cursors.overlay);\n if (state.selection) selection = state.selection; // May be set by brush.move (on start)!\n if (empty(selection)) state.selection = null, redraw.call(that);\n emit.end(event, mode.name);\n }\n\n function keydowned(event) {\n switch (event.keyCode) {\n case 16: { // SHIFT\n shifting = signX && signY;\n break;\n }\n case 18: { // ALT\n if (mode === MODE_HANDLE) {\n if (signX) e0 = e1 - dx * signX, w0 = w1 + dx * signX;\n if (signY) s0 = s1 - dy * signY, n0 = n1 + dy * signY;\n mode = MODE_CENTER;\n move();\n }\n break;\n }\n case 32: { // SPACE; takes priority over ALT\n if (mode === MODE_HANDLE || mode === MODE_CENTER) {\n if (signX < 0) e0 = e1 - dx; else if (signX > 0) w0 = w1 - dx;\n if (signY < 0) s0 = s1 - dy; else if (signY > 0) n0 = n1 - dy;\n mode = MODE_SPACE;\n overlay.attr(\"cursor\", cursors.selection);\n move();\n }\n break;\n }\n default: return;\n }\n noevent(event);\n }\n\n function keyupped(event) {\n switch (event.keyCode) {\n case 16: { // SHIFT\n if (shifting) {\n lockX = lockY = shifting = false;\n move();\n }\n break;\n }\n case 18: { // ALT\n if (mode === MODE_CENTER) {\n if (signX < 0) e0 = e1; else if (signX > 0) w0 = w1;\n if (signY < 0) s0 = s1; else if (signY > 0) n0 = n1;\n mode = MODE_HANDLE;\n move();\n }\n break;\n }\n case 32: { // SPACE\n if (mode === MODE_SPACE) {\n if (event.altKey) {\n if (signX) e0 = e1 - dx * signX, w0 = w1 + dx * signX;\n if (signY) s0 = s1 - dy * signY, n0 = n1 + dy * signY;\n mode = MODE_CENTER;\n } else {\n if (signX < 0) e0 = e1; else if (signX > 0) w0 = w1;\n if (signY < 0) s0 = s1; else if (signY > 0) n0 = n1;\n mode = MODE_HANDLE;\n }\n overlay.attr(\"cursor\", cursors[type]);\n move();\n }\n break;\n }\n default: return;\n }\n noevent(event);\n }\n }\n\n function touchmoved(event) {\n emitter(this, arguments).moved(event);\n }\n\n function touchended(event) {\n emitter(this, arguments).ended(event);\n }\n\n function initialize() {\n var state = this.__brush || {selection: null};\n state.extent = number2(extent.apply(this, arguments));\n state.dim = dim;\n return state;\n }\n\n brush.extent = function(_) {\n return arguments.length ? (extent = typeof _ === \"function\" ? _ : constant(number2(_)), brush) : extent;\n };\n\n brush.filter = function(_) {\n return arguments.length ? (filter = typeof _ === \"function\" ? _ : constant(!!_), brush) : filter;\n };\n\n brush.touchable = function(_) {\n return arguments.length ? (touchable = typeof _ === \"function\" ? _ : constant(!!_), brush) : touchable;\n };\n\n brush.handleSize = function(_) {\n return arguments.length ? (handleSize = +_, brush) : handleSize;\n };\n\n brush.keyModifiers = function(_) {\n return arguments.length ? (keys = !!_, brush) : keys;\n };\n\n brush.on = function() {\n var value = listeners.on.apply(listeners, arguments);\n return value === listeners ? brush : value;\n };\n\n return brush;\n}\n","export default x => x;\n","function streamGeometry(geometry, stream) {\n if (geometry && streamGeometryType.hasOwnProperty(geometry.type)) {\n streamGeometryType[geometry.type](geometry, stream);\n }\n}\n\nvar streamObjectType = {\n Feature: function(object, stream) {\n streamGeometry(object.geometry, stream);\n },\n FeatureCollection: function(object, stream) {\n var features = object.features, i = -1, n = features.length;\n while (++i < n) streamGeometry(features[i].geometry, stream);\n }\n};\n\nvar streamGeometryType = {\n Sphere: function(object, stream) {\n stream.sphere();\n },\n Point: function(object, stream) {\n object = object.coordinates;\n stream.point(object[0], object[1], object[2]);\n },\n MultiPoint: function(object, stream) {\n var coordinates = object.coordinates, i = -1, n = coordinates.length;\n while (++i < n) object = coordinates[i], stream.point(object[0], object[1], object[2]);\n },\n LineString: function(object, stream) {\n streamLine(object.coordinates, stream, 0);\n },\n MultiLineString: function(object, stream) {\n var coordinates = object.coordinates, i = -1, n = coordinates.length;\n while (++i < n) streamLine(coordinates[i], stream, 0);\n },\n Polygon: function(object, stream) {\n streamPolygon(object.coordinates, stream);\n },\n MultiPolygon: function(object, stream) {\n var coordinates = object.coordinates, i = -1, n = coordinates.length;\n while (++i < n) streamPolygon(coordinates[i], stream);\n },\n GeometryCollection: function(object, stream) {\n var geometries = object.geometries, i = -1, n = geometries.length;\n while (++i < n) streamGeometry(geometries[i], stream);\n }\n};\n\nfunction streamLine(coordinates, stream, closed) {\n var i = -1, n = coordinates.length - closed, coordinate;\n stream.lineStart();\n while (++i < n) coordinate = coordinates[i], stream.point(coordinate[0], coordinate[1], coordinate[2]);\n stream.lineEnd();\n}\n\nfunction streamPolygon(coordinates, stream) {\n var i = -1, n = coordinates.length;\n stream.polygonStart();\n while (++i < n) streamLine(coordinates[i], stream, 1);\n stream.polygonEnd();\n}\n\nexport default function(object, stream) {\n if (object && streamObjectType.hasOwnProperty(object.type)) {\n streamObjectType[object.type](object, stream);\n } else {\n streamGeometry(object, stream);\n }\n}\n","// https://github.com/python/cpython/blob/a74eea238f5baba15797e2e8b570d153bc8690a7/Modules/mathmodule.c#L1423\nexport class Adder {\n constructor() {\n this._partials = new Float64Array(32);\n this._n = 0;\n }\n add(x) {\n const p = this._partials;\n let i = 0;\n for (let j = 0; j < this._n && j < 32; j++) {\n const y = p[j],\n hi = x + y,\n lo = Math.abs(x) < Math.abs(y) ? x - (hi - y) : y - (hi - x);\n if (lo) p[i++] = lo;\n x = hi;\n }\n p[i] = x;\n this._n = i + 1;\n return this;\n }\n valueOf() {\n const p = this._partials;\n let n = this._n, x, y, lo, hi = 0;\n if (n > 0) {\n hi = p[--n];\n while (n > 0) {\n x = hi;\n y = p[--n];\n hi = x + y;\n lo = y - (hi - x);\n if (lo) break;\n }\n if (n > 0 && ((lo < 0 && p[n - 1] < 0) || (lo > 0 && p[n - 1] > 0))) {\n y = lo * 2;\n x = hi + y;\n if (y == x - hi) hi = x;\n }\n }\n return hi;\n }\n}\n\nexport default function(values, valueof) {\n const adder = new Adder();\n if (valueof === undefined) {\n for (let value of values) {\n if (value = +value) {\n adder.add(value);\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if (value = +valueof(value, ++index, values)) {\n adder.add(value);\n }\n }\n }\n return +adder;\n}\n","export var epsilon = 1e-6;\nexport var epsilon2 = 1e-12;\nexport var pi = Math.PI;\nexport var halfPi = pi / 2;\nexport var quarterPi = pi / 4;\nexport var tau = pi * 2;\n\nexport var degrees = 180 / pi;\nexport var radians = pi / 180;\n\nexport var abs = Math.abs;\nexport var atan = Math.atan;\nexport var atan2 = Math.atan2;\nexport var cos = Math.cos;\nexport var ceil = Math.ceil;\nexport var exp = Math.exp;\nexport var floor = Math.floor;\nexport var hypot = Math.hypot;\nexport var log = Math.log;\nexport var pow = Math.pow;\nexport var sin = Math.sin;\nexport var sign = Math.sign || function(x) { return x > 0 ? 1 : x < 0 ? -1 : 0; };\nexport var sqrt = Math.sqrt;\nexport var tan = Math.tan;\n\nexport function acos(x) {\n return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);\n}\n\nexport function asin(x) {\n return x > 1 ? halfPi : x < -1 ? -halfPi : Math.asin(x);\n}\n\nexport function haversin(x) {\n return (x = sin(x / 2)) * x;\n}\n","export default function noop() {}\n","import {Adder} from \"d3-array\";\nimport {abs} from \"../math.js\";\nimport noop from \"../noop.js\";\n\nvar areaSum = new Adder(),\n areaRingSum = new Adder(),\n x00,\n y00,\n x0,\n y0;\n\nvar areaStream = {\n point: noop,\n lineStart: noop,\n lineEnd: noop,\n polygonStart: function() {\n areaStream.lineStart = areaRingStart;\n areaStream.lineEnd = areaRingEnd;\n },\n polygonEnd: function() {\n areaStream.lineStart = areaStream.lineEnd = areaStream.point = noop;\n areaSum.add(abs(areaRingSum));\n areaRingSum = new Adder();\n },\n result: function() {\n var area = areaSum / 2;\n areaSum = new Adder();\n return area;\n }\n};\n\nfunction areaRingStart() {\n areaStream.point = areaPointFirst;\n}\n\nfunction areaPointFirst(x, y) {\n areaStream.point = areaPoint;\n x00 = x0 = x, y00 = y0 = y;\n}\n\nfunction areaPoint(x, y) {\n areaRingSum.add(y0 * x - x0 * y);\n x0 = x, y0 = y;\n}\n\nfunction areaRingEnd() {\n areaPoint(x00, y00);\n}\n\nexport default areaStream;\n","import noop from \"../noop.js\";\n\nvar x0 = Infinity,\n y0 = x0,\n x1 = -x0,\n y1 = x1;\n\nvar boundsStream = {\n point: boundsPoint,\n lineStart: noop,\n lineEnd: noop,\n polygonStart: noop,\n polygonEnd: noop,\n result: function() {\n var bounds = [[x0, y0], [x1, y1]];\n x1 = y1 = -(y0 = x0 = Infinity);\n return bounds;\n }\n};\n\nfunction boundsPoint(x, y) {\n if (x < x0) x0 = x;\n if (x > x1) x1 = x;\n if (y < y0) y0 = y;\n if (y > y1) y1 = y;\n}\n\nexport default boundsStream;\n","import {sqrt} from \"../math.js\";\n\n// TODO Enforce positive area for exterior, negative area for interior?\n\nvar X0 = 0,\n Y0 = 0,\n Z0 = 0,\n X1 = 0,\n Y1 = 0,\n Z1 = 0,\n X2 = 0,\n Y2 = 0,\n Z2 = 0,\n x00,\n y00,\n x0,\n y0;\n\nvar centroidStream = {\n point: centroidPoint,\n lineStart: centroidLineStart,\n lineEnd: centroidLineEnd,\n polygonStart: function() {\n centroidStream.lineStart = centroidRingStart;\n centroidStream.lineEnd = centroidRingEnd;\n },\n polygonEnd: function() {\n centroidStream.point = centroidPoint;\n centroidStream.lineStart = centroidLineStart;\n centroidStream.lineEnd = centroidLineEnd;\n },\n result: function() {\n var centroid = Z2 ? [X2 / Z2, Y2 / Z2]\n : Z1 ? [X1 / Z1, Y1 / Z1]\n : Z0 ? [X0 / Z0, Y0 / Z0]\n : [NaN, NaN];\n X0 = Y0 = Z0 =\n X1 = Y1 = Z1 =\n X2 = Y2 = Z2 = 0;\n return centroid;\n }\n};\n\nfunction centroidPoint(x, y) {\n X0 += x;\n Y0 += y;\n ++Z0;\n}\n\nfunction centroidLineStart() {\n centroidStream.point = centroidPointFirstLine;\n}\n\nfunction centroidPointFirstLine(x, y) {\n centroidStream.point = centroidPointLine;\n centroidPoint(x0 = x, y0 = y);\n}\n\nfunction centroidPointLine(x, y) {\n var dx = x - x0, dy = y - y0, z = sqrt(dx * dx + dy * dy);\n X1 += z * (x0 + x) / 2;\n Y1 += z * (y0 + y) / 2;\n Z1 += z;\n centroidPoint(x0 = x, y0 = y);\n}\n\nfunction centroidLineEnd() {\n centroidStream.point = centroidPoint;\n}\n\nfunction centroidRingStart() {\n centroidStream.point = centroidPointFirstRing;\n}\n\nfunction centroidRingEnd() {\n centroidPointRing(x00, y00);\n}\n\nfunction centroidPointFirstRing(x, y) {\n centroidStream.point = centroidPointRing;\n centroidPoint(x00 = x0 = x, y00 = y0 = y);\n}\n\nfunction centroidPointRing(x, y) {\n var dx = x - x0,\n dy = y - y0,\n z = sqrt(dx * dx + dy * dy);\n\n X1 += z * (x0 + x) / 2;\n Y1 += z * (y0 + y) / 2;\n Z1 += z;\n\n z = y0 * x - x0 * y;\n X2 += z * (x0 + x);\n Y2 += z * (y0 + y);\n Z2 += z * 3;\n centroidPoint(x0 = x, y0 = y);\n}\n\nexport default centroidStream;\n","import {tau} from \"../math.js\";\nimport noop from \"../noop.js\";\n\nexport default function PathContext(context) {\n this._context = context;\n}\n\nPathContext.prototype = {\n _radius: 4.5,\n pointRadius: function(_) {\n return this._radius = _, this;\n },\n polygonStart: function() {\n this._line = 0;\n },\n polygonEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line === 0) this._context.closePath();\n this._point = NaN;\n },\n point: function(x, y) {\n switch (this._point) {\n case 0: {\n this._context.moveTo(x, y);\n this._point = 1;\n break;\n }\n case 1: {\n this._context.lineTo(x, y);\n break;\n }\n default: {\n this._context.moveTo(x + this._radius, y);\n this._context.arc(x, y, this._radius, 0, tau);\n break;\n }\n }\n },\n result: noop\n};\n","import {Adder} from \"d3-array\";\nimport {sqrt} from \"../math.js\";\nimport noop from \"../noop.js\";\n\nvar lengthSum = new Adder(),\n lengthRing,\n x00,\n y00,\n x0,\n y0;\n\nvar lengthStream = {\n point: noop,\n lineStart: function() {\n lengthStream.point = lengthPointFirst;\n },\n lineEnd: function() {\n if (lengthRing) lengthPoint(x00, y00);\n lengthStream.point = noop;\n },\n polygonStart: function() {\n lengthRing = true;\n },\n polygonEnd: function() {\n lengthRing = null;\n },\n result: function() {\n var length = +lengthSum;\n lengthSum = new Adder();\n return length;\n }\n};\n\nfunction lengthPointFirst(x, y) {\n lengthStream.point = lengthPoint;\n x00 = x0 = x, y00 = y0 = y;\n}\n\nfunction lengthPoint(x, y) {\n x0 -= x, y0 -= y;\n lengthSum.add(sqrt(x0 * x0 + y0 * y0));\n x0 = x, y0 = y;\n}\n\nexport default lengthStream;\n","export default function PathString() {\n this._string = [];\n}\n\nPathString.prototype = {\n _radius: 4.5,\n _circle: circle(4.5),\n pointRadius: function(_) {\n if ((_ = +_) !== this._radius) this._radius = _, this._circle = null;\n return this;\n },\n polygonStart: function() {\n this._line = 0;\n },\n polygonEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line === 0) this._string.push(\"Z\");\n this._point = NaN;\n },\n point: function(x, y) {\n switch (this._point) {\n case 0: {\n this._string.push(\"M\", x, \",\", y);\n this._point = 1;\n break;\n }\n case 1: {\n this._string.push(\"L\", x, \",\", y);\n break;\n }\n default: {\n if (this._circle == null) this._circle = circle(this._radius);\n this._string.push(\"M\", x, \",\", y, this._circle);\n break;\n }\n }\n },\n result: function() {\n if (this._string.length) {\n var result = this._string.join(\"\");\n this._string = [];\n return result;\n } else {\n return null;\n }\n }\n};\n\nfunction circle(radius) {\n return \"m0,\" + radius\n + \"a\" + radius + \",\" + radius + \" 0 1,1 0,\" + -2 * radius\n + \"a\" + radius + \",\" + radius + \" 0 1,1 0,\" + 2 * radius\n + \"z\";\n}\n","import identity from \"../identity.js\";\nimport stream from \"../stream.js\";\nimport pathArea from \"./area.js\";\nimport pathBounds from \"./bounds.js\";\nimport pathCentroid from \"./centroid.js\";\nimport PathContext from \"./context.js\";\nimport pathMeasure from \"./measure.js\";\nimport PathString from \"./string.js\";\n\nexport default function(projection, context) {\n var pointRadius = 4.5,\n projectionStream,\n contextStream;\n\n function path(object) {\n if (object) {\n if (typeof pointRadius === \"function\") contextStream.pointRadius(+pointRadius.apply(this, arguments));\n stream(object, projectionStream(contextStream));\n }\n return contextStream.result();\n }\n\n path.area = function(object) {\n stream(object, projectionStream(pathArea));\n return pathArea.result();\n };\n\n path.measure = function(object) {\n stream(object, projectionStream(pathMeasure));\n return pathMeasure.result();\n };\n\n path.bounds = function(object) {\n stream(object, projectionStream(pathBounds));\n return pathBounds.result();\n };\n\n path.centroid = function(object) {\n stream(object, projectionStream(pathCentroid));\n return pathCentroid.result();\n };\n\n path.projection = function(_) {\n return arguments.length ? (projectionStream = _ == null ? (projection = null, identity) : (projection = _).stream, path) : projection;\n };\n\n path.context = function(_) {\n if (!arguments.length) return context;\n contextStream = _ == null ? (context = null, new PathString) : new PathContext(context = _);\n if (typeof pointRadius !== \"function\") contextStream.pointRadius(pointRadius);\n return path;\n };\n\n path.pointRadius = function(_) {\n if (!arguments.length) return pointRadius;\n pointRadius = typeof _ === \"function\" ? _ : (contextStream.pointRadius(+_), +_);\n return path;\n };\n\n return path.projection(projection).context(context);\n}\n","export default function(a, b) {\n\n function compose(x, y) {\n return x = a(x, y), b(x[0], x[1]);\n }\n\n if (a.invert && b.invert) compose.invert = function(x, y) {\n return x = b.invert(x, y), x && a.invert(x[0], x[1]);\n };\n\n return compose;\n}\n","import compose from \"./compose.js\";\nimport {abs, asin, atan2, cos, degrees, pi, radians, sin, tau} from \"./math.js\";\n\nfunction rotationIdentity(lambda, phi) {\n return [abs(lambda) > pi ? lambda + Math.round(-lambda / tau) * tau : lambda, phi];\n}\n\nrotationIdentity.invert = rotationIdentity;\n\nexport function rotateRadians(deltaLambda, deltaPhi, deltaGamma) {\n return (deltaLambda %= tau) ? (deltaPhi || deltaGamma ? compose(rotationLambda(deltaLambda), rotationPhiGamma(deltaPhi, deltaGamma))\n : rotationLambda(deltaLambda))\n : (deltaPhi || deltaGamma ? rotationPhiGamma(deltaPhi, deltaGamma)\n : rotationIdentity);\n}\n\nfunction forwardRotationLambda(deltaLambda) {\n return function(lambda, phi) {\n return lambda += deltaLambda, [lambda > pi ? lambda - tau : lambda < -pi ? lambda + tau : lambda, phi];\n };\n}\n\nfunction rotationLambda(deltaLambda) {\n var rotation = forwardRotationLambda(deltaLambda);\n rotation.invert = forwardRotationLambda(-deltaLambda);\n return rotation;\n}\n\nfunction rotationPhiGamma(deltaPhi, deltaGamma) {\n var cosDeltaPhi = cos(deltaPhi),\n sinDeltaPhi = sin(deltaPhi),\n cosDeltaGamma = cos(deltaGamma),\n sinDeltaGamma = sin(deltaGamma);\n\n function rotation(lambda, phi) {\n var cosPhi = cos(phi),\n x = cos(lambda) * cosPhi,\n y = sin(lambda) * cosPhi,\n z = sin(phi),\n k = z * cosDeltaPhi + x * sinDeltaPhi;\n return [\n atan2(y * cosDeltaGamma - k * sinDeltaGamma, x * cosDeltaPhi - z * sinDeltaPhi),\n asin(k * cosDeltaGamma + y * sinDeltaGamma)\n ];\n }\n\n rotation.invert = function(lambda, phi) {\n var cosPhi = cos(phi),\n x = cos(lambda) * cosPhi,\n y = sin(lambda) * cosPhi,\n z = sin(phi),\n k = z * cosDeltaGamma - y * sinDeltaGamma;\n return [\n atan2(y * cosDeltaGamma + z * sinDeltaGamma, x * cosDeltaPhi + k * sinDeltaPhi),\n asin(k * cosDeltaPhi - x * sinDeltaPhi)\n ];\n };\n\n return rotation;\n}\n\nexport default function(rotate) {\n rotate = rotateRadians(rotate[0] * radians, rotate[1] * radians, rotate.length > 2 ? rotate[2] * radians : 0);\n\n function forward(coordinates) {\n coordinates = rotate(coordinates[0] * radians, coordinates[1] * radians);\n return coordinates[0] *= degrees, coordinates[1] *= degrees, coordinates;\n }\n\n forward.invert = function(coordinates) {\n coordinates = rotate.invert(coordinates[0] * radians, coordinates[1] * radians);\n return coordinates[0] *= degrees, coordinates[1] *= degrees, coordinates;\n };\n\n return forward;\n}\n","import noop from \"../noop.js\";\n\nexport default function() {\n var lines = [],\n line;\n return {\n point: function(x, y, m) {\n line.push([x, y, m]);\n },\n lineStart: function() {\n lines.push(line = []);\n },\n lineEnd: noop,\n rejoin: function() {\n if (lines.length > 1) lines.push(lines.pop().concat(lines.shift()));\n },\n result: function() {\n var result = lines;\n lines = [];\n line = null;\n return result;\n }\n };\n}\n","import {abs, epsilon} from \"./math.js\";\n\nexport default function(a, b) {\n return abs(a[0] - b[0]) < epsilon && abs(a[1] - b[1]) < epsilon;\n}\n","import pointEqual from \"../pointEqual.js\";\nimport {epsilon} from \"../math.js\";\n\nfunction Intersection(point, points, other, entry) {\n this.x = point;\n this.z = points;\n this.o = other; // another intersection\n this.e = entry; // is an entry?\n this.v = false; // visited\n this.n = this.p = null; // next & previous\n}\n\n// A generalized polygon clipping algorithm: given a polygon that has been cut\n// into its visible line segments, and rejoins the segments by interpolating\n// along the clip edge.\nexport default function(segments, compareIntersection, startInside, interpolate, stream) {\n var subject = [],\n clip = [],\n i,\n n;\n\n segments.forEach(function(segment) {\n if ((n = segment.length - 1) <= 0) return;\n var n, p0 = segment[0], p1 = segment[n], x;\n\n if (pointEqual(p0, p1)) {\n if (!p0[2] && !p1[2]) {\n stream.lineStart();\n for (i = 0; i < n; ++i) stream.point((p0 = segment[i])[0], p0[1]);\n stream.lineEnd();\n return;\n }\n // handle degenerate cases by moving the point\n p1[0] += 2 * epsilon;\n }\n\n subject.push(x = new Intersection(p0, segment, null, true));\n clip.push(x.o = new Intersection(p0, null, x, false));\n subject.push(x = new Intersection(p1, segment, null, false));\n clip.push(x.o = new Intersection(p1, null, x, true));\n });\n\n if (!subject.length) return;\n\n clip.sort(compareIntersection);\n link(subject);\n link(clip);\n\n for (i = 0, n = clip.length; i < n; ++i) {\n clip[i].e = startInside = !startInside;\n }\n\n var start = subject[0],\n points,\n point;\n\n while (1) {\n // Find first unvisited intersection.\n var current = start,\n isSubject = true;\n while (current.v) if ((current = current.n) === start) return;\n points = current.z;\n stream.lineStart();\n do {\n current.v = current.o.v = true;\n if (current.e) {\n if (isSubject) {\n for (i = 0, n = points.length; i < n; ++i) stream.point((point = points[i])[0], point[1]);\n } else {\n interpolate(current.x, current.n.x, 1, stream);\n }\n current = current.n;\n } else {\n if (isSubject) {\n points = current.p.z;\n for (i = points.length - 1; i >= 0; --i) stream.point((point = points[i])[0], point[1]);\n } else {\n interpolate(current.x, current.p.x, -1, stream);\n }\n current = current.p;\n }\n current = current.o;\n points = current.z;\n isSubject = !isSubject;\n } while (!current.v);\n stream.lineEnd();\n }\n}\n\nfunction link(array) {\n if (!(n = array.length)) return;\n var n,\n i = 0,\n a = array[0],\n b;\n while (++i < n) {\n a.n = b = array[i];\n b.p = a;\n a = b;\n }\n a.n = b = array[0];\n b.p = a;\n}\n","import {asin, atan2, cos, sin, sqrt} from \"./math.js\";\n\nexport function spherical(cartesian) {\n return [atan2(cartesian[1], cartesian[0]), asin(cartesian[2])];\n}\n\nexport function cartesian(spherical) {\n var lambda = spherical[0], phi = spherical[1], cosPhi = cos(phi);\n return [cosPhi * cos(lambda), cosPhi * sin(lambda), sin(phi)];\n}\n\nexport function cartesianDot(a, b) {\n return a[0] * b[0] + a[1] * b[1] + a[2] * b[2];\n}\n\nexport function cartesianCross(a, b) {\n return [a[1] * b[2] - a[2] * b[1], a[2] * b[0] - a[0] * b[2], a[0] * b[1] - a[1] * b[0]];\n}\n\n// TODO return a\nexport function cartesianAddInPlace(a, b) {\n a[0] += b[0], a[1] += b[1], a[2] += b[2];\n}\n\nexport function cartesianScale(vector, k) {\n return [vector[0] * k, vector[1] * k, vector[2] * k];\n}\n\n// TODO return d\nexport function cartesianNormalizeInPlace(d) {\n var l = sqrt(d[0] * d[0] + d[1] * d[1] + d[2] * d[2]);\n d[0] /= l, d[1] /= l, d[2] /= l;\n}\n","import {Adder} from \"d3-array\";\nimport {cartesian, cartesianCross, cartesianNormalizeInPlace} from \"./cartesian.js\";\nimport {abs, asin, atan2, cos, epsilon, epsilon2, halfPi, pi, quarterPi, sign, sin, tau} from \"./math.js\";\n\nfunction longitude(point) {\n if (abs(point[0]) <= pi)\n return point[0];\n else\n return sign(point[0]) * ((abs(point[0]) + pi) % tau - pi);\n}\n\nexport default function(polygon, point) {\n var lambda = longitude(point),\n phi = point[1],\n sinPhi = sin(phi),\n normal = [sin(lambda), -cos(lambda), 0],\n angle = 0,\n winding = 0;\n\n var sum = new Adder();\n\n if (sinPhi === 1) phi = halfPi + epsilon;\n else if (sinPhi === -1) phi = -halfPi - epsilon;\n\n for (var i = 0, n = polygon.length; i < n; ++i) {\n if (!(m = (ring = polygon[i]).length)) continue;\n var ring,\n m,\n point0 = ring[m - 1],\n lambda0 = longitude(point0),\n phi0 = point0[1] / 2 + quarterPi,\n sinPhi0 = sin(phi0),\n cosPhi0 = cos(phi0);\n\n for (var j = 0; j < m; ++j, lambda0 = lambda1, sinPhi0 = sinPhi1, cosPhi0 = cosPhi1, point0 = point1) {\n var point1 = ring[j],\n lambda1 = longitude(point1),\n phi1 = point1[1] / 2 + quarterPi,\n sinPhi1 = sin(phi1),\n cosPhi1 = cos(phi1),\n delta = lambda1 - lambda0,\n sign = delta >= 0 ? 1 : -1,\n absDelta = sign * delta,\n antimeridian = absDelta > pi,\n k = sinPhi0 * sinPhi1;\n\n sum.add(atan2(k * sign * sin(absDelta), cosPhi0 * cosPhi1 + k * cos(absDelta)));\n angle += antimeridian ? delta + sign * tau : delta;\n\n // Are the longitudes either side of the point’s meridian (lambda),\n // and are the latitudes smaller than the parallel (phi)?\n if (antimeridian ^ lambda0 >= lambda ^ lambda1 >= lambda) {\n var arc = cartesianCross(cartesian(point0), cartesian(point1));\n cartesianNormalizeInPlace(arc);\n var intersection = cartesianCross(normal, arc);\n cartesianNormalizeInPlace(intersection);\n var phiArc = (antimeridian ^ delta >= 0 ? -1 : 1) * asin(intersection[2]);\n if (phi > phiArc || phi === phiArc && (arc[0] || arc[1])) {\n winding += antimeridian ^ delta >= 0 ? 1 : -1;\n }\n }\n }\n }\n\n // First, determine whether the South pole is inside or outside:\n //\n // It is inside if:\n // * the polygon winds around it in a clockwise direction.\n // * the polygon does not (cumulatively) wind around it, but has a negative\n // (counter-clockwise) area.\n //\n // Second, count the (signed) number of times a segment crosses a lambda\n // from the point to the South pole. If it is zero, then the point is the\n // same side as the South pole.\n\n return (angle < -epsilon || angle < epsilon && sum < -epsilon2) ^ (winding & 1);\n}\n","function* flatten(arrays) {\n for (const array of arrays) {\n yield* array;\n }\n}\n\nexport default function merge(arrays) {\n return Array.from(flatten(arrays));\n}\n","import clipBuffer from \"./buffer.js\";\nimport clipRejoin from \"./rejoin.js\";\nimport {epsilon, halfPi} from \"../math.js\";\nimport polygonContains from \"../polygonContains.js\";\nimport {merge} from \"d3-array\";\n\nexport default function(pointVisible, clipLine, interpolate, start) {\n return function(sink) {\n var line = clipLine(sink),\n ringBuffer = clipBuffer(),\n ringSink = clipLine(ringBuffer),\n polygonStarted = false,\n polygon,\n segments,\n ring;\n\n var clip = {\n point: point,\n lineStart: lineStart,\n lineEnd: lineEnd,\n polygonStart: function() {\n clip.point = pointRing;\n clip.lineStart = ringStart;\n clip.lineEnd = ringEnd;\n segments = [];\n polygon = [];\n },\n polygonEnd: function() {\n clip.point = point;\n clip.lineStart = lineStart;\n clip.lineEnd = lineEnd;\n segments = merge(segments);\n var startInside = polygonContains(polygon, start);\n if (segments.length) {\n if (!polygonStarted) sink.polygonStart(), polygonStarted = true;\n clipRejoin(segments, compareIntersection, startInside, interpolate, sink);\n } else if (startInside) {\n if (!polygonStarted) sink.polygonStart(), polygonStarted = true;\n sink.lineStart();\n interpolate(null, null, 1, sink);\n sink.lineEnd();\n }\n if (polygonStarted) sink.polygonEnd(), polygonStarted = false;\n segments = polygon = null;\n },\n sphere: function() {\n sink.polygonStart();\n sink.lineStart();\n interpolate(null, null, 1, sink);\n sink.lineEnd();\n sink.polygonEnd();\n }\n };\n\n function point(lambda, phi) {\n if (pointVisible(lambda, phi)) sink.point(lambda, phi);\n }\n\n function pointLine(lambda, phi) {\n line.point(lambda, phi);\n }\n\n function lineStart() {\n clip.point = pointLine;\n line.lineStart();\n }\n\n function lineEnd() {\n clip.point = point;\n line.lineEnd();\n }\n\n function pointRing(lambda, phi) {\n ring.push([lambda, phi]);\n ringSink.point(lambda, phi);\n }\n\n function ringStart() {\n ringSink.lineStart();\n ring = [];\n }\n\n function ringEnd() {\n pointRing(ring[0][0], ring[0][1]);\n ringSink.lineEnd();\n\n var clean = ringSink.clean(),\n ringSegments = ringBuffer.result(),\n i, n = ringSegments.length, m,\n segment,\n point;\n\n ring.pop();\n polygon.push(ring);\n ring = null;\n\n if (!n) return;\n\n // No intersections.\n if (clean & 1) {\n segment = ringSegments[0];\n if ((m = segment.length - 1) > 0) {\n if (!polygonStarted) sink.polygonStart(), polygonStarted = true;\n sink.lineStart();\n for (i = 0; i < m; ++i) sink.point((point = segment[i])[0], point[1]);\n sink.lineEnd();\n }\n return;\n }\n\n // Rejoin connected segments.\n // TODO reuse ringBuffer.rejoin()?\n if (n > 1 && clean & 2) ringSegments.push(ringSegments.pop().concat(ringSegments.shift()));\n\n segments.push(ringSegments.filter(validSegment));\n }\n\n return clip;\n };\n}\n\nfunction validSegment(segment) {\n return segment.length > 1;\n}\n\n// Intersections are sorted along the clip edge. For both antimeridian cutting\n// and circle clipping, the same comparison is used.\nfunction compareIntersection(a, b) {\n return ((a = a.x)[0] < 0 ? a[1] - halfPi - epsilon : halfPi - a[1])\n - ((b = b.x)[0] < 0 ? b[1] - halfPi - epsilon : halfPi - b[1]);\n}\n","import clip from \"./index.js\";\nimport {abs, atan, cos, epsilon, halfPi, pi, sin} from \"../math.js\";\n\nexport default clip(\n function() { return true; },\n clipAntimeridianLine,\n clipAntimeridianInterpolate,\n [-pi, -halfPi]\n);\n\n// Takes a line and cuts into visible segments. Return values: 0 - there were\n// intersections or the line was empty; 1 - no intersections; 2 - there were\n// intersections, and the first and last segments should be rejoined.\nfunction clipAntimeridianLine(stream) {\n var lambda0 = NaN,\n phi0 = NaN,\n sign0 = NaN,\n clean; // no intersections\n\n return {\n lineStart: function() {\n stream.lineStart();\n clean = 1;\n },\n point: function(lambda1, phi1) {\n var sign1 = lambda1 > 0 ? pi : -pi,\n delta = abs(lambda1 - lambda0);\n if (abs(delta - pi) < epsilon) { // line crosses a pole\n stream.point(lambda0, phi0 = (phi0 + phi1) / 2 > 0 ? halfPi : -halfPi);\n stream.point(sign0, phi0);\n stream.lineEnd();\n stream.lineStart();\n stream.point(sign1, phi0);\n stream.point(lambda1, phi0);\n clean = 0;\n } else if (sign0 !== sign1 && delta >= pi) { // line crosses antimeridian\n if (abs(lambda0 - sign0) < epsilon) lambda0 -= sign0 * epsilon; // handle degeneracies\n if (abs(lambda1 - sign1) < epsilon) lambda1 -= sign1 * epsilon;\n phi0 = clipAntimeridianIntersect(lambda0, phi0, lambda1, phi1);\n stream.point(sign0, phi0);\n stream.lineEnd();\n stream.lineStart();\n stream.point(sign1, phi0);\n clean = 0;\n }\n stream.point(lambda0 = lambda1, phi0 = phi1);\n sign0 = sign1;\n },\n lineEnd: function() {\n stream.lineEnd();\n lambda0 = phi0 = NaN;\n },\n clean: function() {\n return 2 - clean; // if intersections, rejoin first and last segments\n }\n };\n}\n\nfunction clipAntimeridianIntersect(lambda0, phi0, lambda1, phi1) {\n var cosPhi0,\n cosPhi1,\n sinLambda0Lambda1 = sin(lambda0 - lambda1);\n return abs(sinLambda0Lambda1) > epsilon\n ? atan((sin(phi0) * (cosPhi1 = cos(phi1)) * sin(lambda1)\n - sin(phi1) * (cosPhi0 = cos(phi0)) * sin(lambda0))\n / (cosPhi0 * cosPhi1 * sinLambda0Lambda1))\n : (phi0 + phi1) / 2;\n}\n\nfunction clipAntimeridianInterpolate(from, to, direction, stream) {\n var phi;\n if (from == null) {\n phi = direction * halfPi;\n stream.point(-pi, phi);\n stream.point(0, phi);\n stream.point(pi, phi);\n stream.point(pi, 0);\n stream.point(pi, -phi);\n stream.point(0, -phi);\n stream.point(-pi, -phi);\n stream.point(-pi, 0);\n stream.point(-pi, phi);\n } else if (abs(from[0] - to[0]) > epsilon) {\n var lambda = from[0] < to[0] ? pi : -pi;\n phi = direction * lambda / 2;\n stream.point(-lambda, phi);\n stream.point(0, phi);\n stream.point(lambda, phi);\n } else {\n stream.point(to[0], to[1]);\n }\n}\n","import {cartesian, cartesianNormalizeInPlace, spherical} from \"./cartesian.js\";\nimport constant from \"./constant.js\";\nimport {acos, cos, degrees, epsilon, radians, sin, tau} from \"./math.js\";\nimport {rotateRadians} from \"./rotation.js\";\n\n// Generates a circle centered at [0°, 0°], with a given radius and precision.\nexport function circleStream(stream, radius, delta, direction, t0, t1) {\n if (!delta) return;\n var cosRadius = cos(radius),\n sinRadius = sin(radius),\n step = direction * delta;\n if (t0 == null) {\n t0 = radius + direction * tau;\n t1 = radius - step / 2;\n } else {\n t0 = circleRadius(cosRadius, t0);\n t1 = circleRadius(cosRadius, t1);\n if (direction > 0 ? t0 < t1 : t0 > t1) t0 += direction * tau;\n }\n for (var point, t = t0; direction > 0 ? t > t1 : t < t1; t -= step) {\n point = spherical([cosRadius, -sinRadius * cos(t), -sinRadius * sin(t)]);\n stream.point(point[0], point[1]);\n }\n}\n\n// Returns the signed angle of a cartesian point relative to [cosRadius, 0, 0].\nfunction circleRadius(cosRadius, point) {\n point = cartesian(point), point[0] -= cosRadius;\n cartesianNormalizeInPlace(point);\n var radius = acos(-point[1]);\n return ((-point[2] < 0 ? -radius : radius) + tau - epsilon) % tau;\n}\n\nexport default function() {\n var center = constant([0, 0]),\n radius = constant(90),\n precision = constant(6),\n ring,\n rotate,\n stream = {point: point};\n\n function point(x, y) {\n ring.push(x = rotate(x, y));\n x[0] *= degrees, x[1] *= degrees;\n }\n\n function circle() {\n var c = center.apply(this, arguments),\n r = radius.apply(this, arguments) * radians,\n p = precision.apply(this, arguments) * radians;\n ring = [];\n rotate = rotateRadians(-c[0] * radians, -c[1] * radians, 0).invert;\n circleStream(stream, r, p, 1);\n c = {type: \"Polygon\", coordinates: [ring]};\n ring = rotate = null;\n return c;\n }\n\n circle.center = function(_) {\n return arguments.length ? (center = typeof _ === \"function\" ? _ : constant([+_[0], +_[1]]), circle) : center;\n };\n\n circle.radius = function(_) {\n return arguments.length ? (radius = typeof _ === \"function\" ? _ : constant(+_), circle) : radius;\n };\n\n circle.precision = function(_) {\n return arguments.length ? (precision = typeof _ === \"function\" ? _ : constant(+_), circle) : precision;\n };\n\n return circle;\n}\n","import {cartesian, cartesianAddInPlace, cartesianCross, cartesianDot, cartesianScale, spherical} from \"../cartesian.js\";\nimport {circleStream} from \"../circle.js\";\nimport {abs, cos, epsilon, pi, radians, sqrt} from \"../math.js\";\nimport pointEqual from \"../pointEqual.js\";\nimport clip from \"./index.js\";\n\nexport default function(radius) {\n var cr = cos(radius),\n delta = 6 * radians,\n smallRadius = cr > 0,\n notHemisphere = abs(cr) > epsilon; // TODO optimise for this common case\n\n function interpolate(from, to, direction, stream) {\n circleStream(stream, radius, delta, direction, from, to);\n }\n\n function visible(lambda, phi) {\n return cos(lambda) * cos(phi) > cr;\n }\n\n // Takes a line and cuts into visible segments. Return values used for polygon\n // clipping: 0 - there were intersections or the line was empty; 1 - no\n // intersections 2 - there were intersections, and the first and last segments\n // should be rejoined.\n function clipLine(stream) {\n var point0, // previous point\n c0, // code for previous point\n v0, // visibility of previous point\n v00, // visibility of first point\n clean; // no intersections\n return {\n lineStart: function() {\n v00 = v0 = false;\n clean = 1;\n },\n point: function(lambda, phi) {\n var point1 = [lambda, phi],\n point2,\n v = visible(lambda, phi),\n c = smallRadius\n ? v ? 0 : code(lambda, phi)\n : v ? code(lambda + (lambda < 0 ? pi : -pi), phi) : 0;\n if (!point0 && (v00 = v0 = v)) stream.lineStart();\n if (v !== v0) {\n point2 = intersect(point0, point1);\n if (!point2 || pointEqual(point0, point2) || pointEqual(point1, point2))\n point1[2] = 1;\n }\n if (v !== v0) {\n clean = 0;\n if (v) {\n // outside going in\n stream.lineStart();\n point2 = intersect(point1, point0);\n stream.point(point2[0], point2[1]);\n } else {\n // inside going out\n point2 = intersect(point0, point1);\n stream.point(point2[0], point2[1], 2);\n stream.lineEnd();\n }\n point0 = point2;\n } else if (notHemisphere && point0 && smallRadius ^ v) {\n var t;\n // If the codes for two points are different, or are both zero,\n // and there this segment intersects with the small circle.\n if (!(c & c0) && (t = intersect(point1, point0, true))) {\n clean = 0;\n if (smallRadius) {\n stream.lineStart();\n stream.point(t[0][0], t[0][1]);\n stream.point(t[1][0], t[1][1]);\n stream.lineEnd();\n } else {\n stream.point(t[1][0], t[1][1]);\n stream.lineEnd();\n stream.lineStart();\n stream.point(t[0][0], t[0][1], 3);\n }\n }\n }\n if (v && (!point0 || !pointEqual(point0, point1))) {\n stream.point(point1[0], point1[1]);\n }\n point0 = point1, v0 = v, c0 = c;\n },\n lineEnd: function() {\n if (v0) stream.lineEnd();\n point0 = null;\n },\n // Rejoin first and last segments if there were intersections and the first\n // and last points were visible.\n clean: function() {\n return clean | ((v00 && v0) << 1);\n }\n };\n }\n\n // Intersects the great circle between a and b with the clip circle.\n function intersect(a, b, two) {\n var pa = cartesian(a),\n pb = cartesian(b);\n\n // We have two planes, n1.p = d1 and n2.p = d2.\n // Find intersection line p(t) = c1 n1 + c2 n2 + t (n1 ⨯ n2).\n var n1 = [1, 0, 0], // normal\n n2 = cartesianCross(pa, pb),\n n2n2 = cartesianDot(n2, n2),\n n1n2 = n2[0], // cartesianDot(n1, n2),\n determinant = n2n2 - n1n2 * n1n2;\n\n // Two polar points.\n if (!determinant) return !two && a;\n\n var c1 = cr * n2n2 / determinant,\n c2 = -cr * n1n2 / determinant,\n n1xn2 = cartesianCross(n1, n2),\n A = cartesianScale(n1, c1),\n B = cartesianScale(n2, c2);\n cartesianAddInPlace(A, B);\n\n // Solve |p(t)|^2 = 1.\n var u = n1xn2,\n w = cartesianDot(A, u),\n uu = cartesianDot(u, u),\n t2 = w * w - uu * (cartesianDot(A, A) - 1);\n\n if (t2 < 0) return;\n\n var t = sqrt(t2),\n q = cartesianScale(u, (-w - t) / uu);\n cartesianAddInPlace(q, A);\n q = spherical(q);\n\n if (!two) return q;\n\n // Two intersection points.\n var lambda0 = a[0],\n lambda1 = b[0],\n phi0 = a[1],\n phi1 = b[1],\n z;\n\n if (lambda1 < lambda0) z = lambda0, lambda0 = lambda1, lambda1 = z;\n\n var delta = lambda1 - lambda0,\n polar = abs(delta - pi) < epsilon,\n meridian = polar || delta < epsilon;\n\n if (!polar && phi1 < phi0) z = phi0, phi0 = phi1, phi1 = z;\n\n // Check that the first point is between a and b.\n if (meridian\n ? polar\n ? phi0 + phi1 > 0 ^ q[1] < (abs(q[0] - lambda0) < epsilon ? phi0 : phi1)\n : phi0 <= q[1] && q[1] <= phi1\n : delta > pi ^ (lambda0 <= q[0] && q[0] <= lambda1)) {\n var q1 = cartesianScale(u, (-w + t) / uu);\n cartesianAddInPlace(q1, A);\n return [q, spherical(q1)];\n }\n }\n\n // Generates a 4-bit vector representing the location of a point relative to\n // the small circle's bounding box.\n function code(lambda, phi) {\n var r = smallRadius ? radius : pi - radius,\n code = 0;\n if (lambda < -r) code |= 1; // left\n else if (lambda > r) code |= 2; // right\n if (phi < -r) code |= 4; // below\n else if (phi > r) code |= 8; // above\n return code;\n }\n\n return clip(visible, clipLine, interpolate, smallRadius ? [0, -radius] : [-pi, radius - pi]);\n}\n","export default function(a, b, x0, y0, x1, y1) {\n var ax = a[0],\n ay = a[1],\n bx = b[0],\n by = b[1],\n t0 = 0,\n t1 = 1,\n dx = bx - ax,\n dy = by - ay,\n r;\n\n r = x0 - ax;\n if (!dx && r > 0) return;\n r /= dx;\n if (dx < 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n } else if (dx > 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n }\n\n r = x1 - ax;\n if (!dx && r < 0) return;\n r /= dx;\n if (dx < 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n } else if (dx > 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n }\n\n r = y0 - ay;\n if (!dy && r > 0) return;\n r /= dy;\n if (dy < 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n } else if (dy > 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n }\n\n r = y1 - ay;\n if (!dy && r < 0) return;\n r /= dy;\n if (dy < 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n } else if (dy > 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n }\n\n if (t0 > 0) a[0] = ax + t0 * dx, a[1] = ay + t0 * dy;\n if (t1 < 1) b[0] = ax + t1 * dx, b[1] = ay + t1 * dy;\n return true;\n}\n","import {abs, epsilon} from \"../math.js\";\nimport clipBuffer from \"./buffer.js\";\nimport clipLine from \"./line.js\";\nimport clipRejoin from \"./rejoin.js\";\nimport {merge} from \"d3-array\";\n\nvar clipMax = 1e9, clipMin = -clipMax;\n\n// TODO Use d3-polygon’s polygonContains here for the ring check?\n// TODO Eliminate duplicate buffering in clipBuffer and polygon.push?\n\nexport default function clipRectangle(x0, y0, x1, y1) {\n\n function visible(x, y) {\n return x0 <= x && x <= x1 && y0 <= y && y <= y1;\n }\n\n function interpolate(from, to, direction, stream) {\n var a = 0, a1 = 0;\n if (from == null\n || (a = corner(from, direction)) !== (a1 = corner(to, direction))\n || comparePoint(from, to) < 0 ^ direction > 0) {\n do stream.point(a === 0 || a === 3 ? x0 : x1, a > 1 ? y1 : y0);\n while ((a = (a + direction + 4) % 4) !== a1);\n } else {\n stream.point(to[0], to[1]);\n }\n }\n\n function corner(p, direction) {\n return abs(p[0] - x0) < epsilon ? direction > 0 ? 0 : 3\n : abs(p[0] - x1) < epsilon ? direction > 0 ? 2 : 1\n : abs(p[1] - y0) < epsilon ? direction > 0 ? 1 : 0\n : direction > 0 ? 3 : 2; // abs(p[1] - y1) < epsilon\n }\n\n function compareIntersection(a, b) {\n return comparePoint(a.x, b.x);\n }\n\n function comparePoint(a, b) {\n var ca = corner(a, 1),\n cb = corner(b, 1);\n return ca !== cb ? ca - cb\n : ca === 0 ? b[1] - a[1]\n : ca === 1 ? a[0] - b[0]\n : ca === 2 ? a[1] - b[1]\n : b[0] - a[0];\n }\n\n return function(stream) {\n var activeStream = stream,\n bufferStream = clipBuffer(),\n segments,\n polygon,\n ring,\n x__, y__, v__, // first point\n x_, y_, v_, // previous point\n first,\n clean;\n\n var clipStream = {\n point: point,\n lineStart: lineStart,\n lineEnd: lineEnd,\n polygonStart: polygonStart,\n polygonEnd: polygonEnd\n };\n\n function point(x, y) {\n if (visible(x, y)) activeStream.point(x, y);\n }\n\n function polygonInside() {\n var winding = 0;\n\n for (var i = 0, n = polygon.length; i < n; ++i) {\n for (var ring = polygon[i], j = 1, m = ring.length, point = ring[0], a0, a1, b0 = point[0], b1 = point[1]; j < m; ++j) {\n a0 = b0, a1 = b1, point = ring[j], b0 = point[0], b1 = point[1];\n if (a1 <= y1) { if (b1 > y1 && (b0 - a0) * (y1 - a1) > (b1 - a1) * (x0 - a0)) ++winding; }\n else { if (b1 <= y1 && (b0 - a0) * (y1 - a1) < (b1 - a1) * (x0 - a0)) --winding; }\n }\n }\n\n return winding;\n }\n\n // Buffer geometry within a polygon and then clip it en masse.\n function polygonStart() {\n activeStream = bufferStream, segments = [], polygon = [], clean = true;\n }\n\n function polygonEnd() {\n var startInside = polygonInside(),\n cleanInside = clean && startInside,\n visible = (segments = merge(segments)).length;\n if (cleanInside || visible) {\n stream.polygonStart();\n if (cleanInside) {\n stream.lineStart();\n interpolate(null, null, 1, stream);\n stream.lineEnd();\n }\n if (visible) {\n clipRejoin(segments, compareIntersection, startInside, interpolate, stream);\n }\n stream.polygonEnd();\n }\n activeStream = stream, segments = polygon = ring = null;\n }\n\n function lineStart() {\n clipStream.point = linePoint;\n if (polygon) polygon.push(ring = []);\n first = true;\n v_ = false;\n x_ = y_ = NaN;\n }\n\n // TODO rather than special-case polygons, simply handle them separately.\n // Ideally, coincident intersection points should be jittered to avoid\n // clipping issues.\n function lineEnd() {\n if (segments) {\n linePoint(x__, y__);\n if (v__ && v_) bufferStream.rejoin();\n segments.push(bufferStream.result());\n }\n clipStream.point = point;\n if (v_) activeStream.lineEnd();\n }\n\n function linePoint(x, y) {\n var v = visible(x, y);\n if (polygon) ring.push([x, y]);\n if (first) {\n x__ = x, y__ = y, v__ = v;\n first = false;\n if (v) {\n activeStream.lineStart();\n activeStream.point(x, y);\n }\n } else {\n if (v && v_) activeStream.point(x, y);\n else {\n var a = [x_ = Math.max(clipMin, Math.min(clipMax, x_)), y_ = Math.max(clipMin, Math.min(clipMax, y_))],\n b = [x = Math.max(clipMin, Math.min(clipMax, x)), y = Math.max(clipMin, Math.min(clipMax, y))];\n if (clipLine(a, b, x0, y0, x1, y1)) {\n if (!v_) {\n activeStream.lineStart();\n activeStream.point(a[0], a[1]);\n }\n activeStream.point(b[0], b[1]);\n if (!v) activeStream.lineEnd();\n clean = false;\n } else if (v) {\n activeStream.lineStart();\n activeStream.point(x, y);\n clean = false;\n }\n }\n }\n x_ = x, y_ = y, v_ = v;\n }\n\n return clipStream;\n };\n}\n","export default function(methods) {\n return {\n stream: transformer(methods)\n };\n}\n\nexport function transformer(methods) {\n return function(stream) {\n var s = new TransformStream;\n for (var key in methods) s[key] = methods[key];\n s.stream = stream;\n return s;\n };\n}\n\nfunction TransformStream() {}\n\nTransformStream.prototype = {\n constructor: TransformStream,\n point: function(x, y) { this.stream.point(x, y); },\n sphere: function() { this.stream.sphere(); },\n lineStart: function() { this.stream.lineStart(); },\n lineEnd: function() { this.stream.lineEnd(); },\n polygonStart: function() { this.stream.polygonStart(); },\n polygonEnd: function() { this.stream.polygonEnd(); }\n};\n","import {default as geoStream} from \"../stream.js\";\nimport boundsStream from \"../path/bounds.js\";\n\nfunction fit(projection, fitBounds, object) {\n var clip = projection.clipExtent && projection.clipExtent();\n projection.scale(150).translate([0, 0]);\n if (clip != null) projection.clipExtent(null);\n geoStream(object, projection.stream(boundsStream));\n fitBounds(boundsStream.result());\n if (clip != null) projection.clipExtent(clip);\n return projection;\n}\n\nexport function fitExtent(projection, extent, object) {\n return fit(projection, function(b) {\n var w = extent[1][0] - extent[0][0],\n h = extent[1][1] - extent[0][1],\n k = Math.min(w / (b[1][0] - b[0][0]), h / (b[1][1] - b[0][1])),\n x = +extent[0][0] + (w - k * (b[1][0] + b[0][0])) / 2,\n y = +extent[0][1] + (h - k * (b[1][1] + b[0][1])) / 2;\n projection.scale(150 * k).translate([x, y]);\n }, object);\n}\n\nexport function fitSize(projection, size, object) {\n return fitExtent(projection, [[0, 0], size], object);\n}\n\nexport function fitWidth(projection, width, object) {\n return fit(projection, function(b) {\n var w = +width,\n k = w / (b[1][0] - b[0][0]),\n x = (w - k * (b[1][0] + b[0][0])) / 2,\n y = -k * b[0][1];\n projection.scale(150 * k).translate([x, y]);\n }, object);\n}\n\nexport function fitHeight(projection, height, object) {\n return fit(projection, function(b) {\n var h = +height,\n k = h / (b[1][1] - b[0][1]),\n x = -k * b[0][0],\n y = (h - k * (b[1][1] + b[0][1])) / 2;\n projection.scale(150 * k).translate([x, y]);\n }, object);\n}\n","import {cartesian} from \"../cartesian.js\";\nimport {abs, asin, atan2, cos, epsilon, radians, sqrt} from \"../math.js\";\nimport {transformer} from \"../transform.js\";\n\nvar maxDepth = 16, // maximum depth of subdivision\n cosMinDistance = cos(30 * radians); // cos(minimum angular distance)\n\nexport default function(project, delta2) {\n return +delta2 ? resample(project, delta2) : resampleNone(project);\n}\n\nfunction resampleNone(project) {\n return transformer({\n point: function(x, y) {\n x = project(x, y);\n this.stream.point(x[0], x[1]);\n }\n });\n}\n\nfunction resample(project, delta2) {\n\n function resampleLineTo(x0, y0, lambda0, a0, b0, c0, x1, y1, lambda1, a1, b1, c1, depth, stream) {\n var dx = x1 - x0,\n dy = y1 - y0,\n d2 = dx * dx + dy * dy;\n if (d2 > 4 * delta2 && depth--) {\n var a = a0 + a1,\n b = b0 + b1,\n c = c0 + c1,\n m = sqrt(a * a + b * b + c * c),\n phi2 = asin(c /= m),\n lambda2 = abs(abs(c) - 1) < epsilon || abs(lambda0 - lambda1) < epsilon ? (lambda0 + lambda1) / 2 : atan2(b, a),\n p = project(lambda2, phi2),\n x2 = p[0],\n y2 = p[1],\n dx2 = x2 - x0,\n dy2 = y2 - y0,\n dz = dy * dx2 - dx * dy2;\n if (dz * dz / d2 > delta2 // perpendicular projected distance\n || abs((dx * dx2 + dy * dy2) / d2 - 0.5) > 0.3 // midpoint close to an end\n || a0 * a1 + b0 * b1 + c0 * c1 < cosMinDistance) { // angular distance\n resampleLineTo(x0, y0, lambda0, a0, b0, c0, x2, y2, lambda2, a /= m, b /= m, c, depth, stream);\n stream.point(x2, y2);\n resampleLineTo(x2, y2, lambda2, a, b, c, x1, y1, lambda1, a1, b1, c1, depth, stream);\n }\n }\n }\n return function(stream) {\n var lambda00, x00, y00, a00, b00, c00, // first point\n lambda0, x0, y0, a0, b0, c0; // previous point\n\n var resampleStream = {\n point: point,\n lineStart: lineStart,\n lineEnd: lineEnd,\n polygonStart: function() { stream.polygonStart(); resampleStream.lineStart = ringStart; },\n polygonEnd: function() { stream.polygonEnd(); resampleStream.lineStart = lineStart; }\n };\n\n function point(x, y) {\n x = project(x, y);\n stream.point(x[0], x[1]);\n }\n\n function lineStart() {\n x0 = NaN;\n resampleStream.point = linePoint;\n stream.lineStart();\n }\n\n function linePoint(lambda, phi) {\n var c = cartesian([lambda, phi]), p = project(lambda, phi);\n resampleLineTo(x0, y0, lambda0, a0, b0, c0, x0 = p[0], y0 = p[1], lambda0 = lambda, a0 = c[0], b0 = c[1], c0 = c[2], maxDepth, stream);\n stream.point(x0, y0);\n }\n\n function lineEnd() {\n resampleStream.point = point;\n stream.lineEnd();\n }\n\n function ringStart() {\n lineStart();\n resampleStream.point = ringPoint;\n resampleStream.lineEnd = ringEnd;\n }\n\n function ringPoint(lambda, phi) {\n linePoint(lambda00 = lambda, phi), x00 = x0, y00 = y0, a00 = a0, b00 = b0, c00 = c0;\n resampleStream.point = linePoint;\n }\n\n function ringEnd() {\n resampleLineTo(x0, y0, lambda0, a0, b0, c0, x00, y00, lambda00, a00, b00, c00, maxDepth, stream);\n resampleStream.lineEnd = lineEnd;\n lineEnd();\n }\n\n return resampleStream;\n };\n}\n","import clipAntimeridian from \"../clip/antimeridian.js\";\nimport clipCircle from \"../clip/circle.js\";\nimport clipRectangle from \"../clip/rectangle.js\";\nimport compose from \"../compose.js\";\nimport identity from \"../identity.js\";\nimport {cos, degrees, radians, sin, sqrt} from \"../math.js\";\nimport {rotateRadians} from \"../rotation.js\";\nimport {transformer} from \"../transform.js\";\nimport {fitExtent, fitSize, fitWidth, fitHeight} from \"./fit.js\";\nimport resample from \"./resample.js\";\n\nvar transformRadians = transformer({\n point: function(x, y) {\n this.stream.point(x * radians, y * radians);\n }\n});\n\nfunction transformRotate(rotate) {\n return transformer({\n point: function(x, y) {\n var r = rotate(x, y);\n return this.stream.point(r[0], r[1]);\n }\n });\n}\n\nfunction scaleTranslate(k, dx, dy, sx, sy) {\n function transform(x, y) {\n x *= sx; y *= sy;\n return [dx + k * x, dy - k * y];\n }\n transform.invert = function(x, y) {\n return [(x - dx) / k * sx, (dy - y) / k * sy];\n };\n return transform;\n}\n\nfunction scaleTranslateRotate(k, dx, dy, sx, sy, alpha) {\n if (!alpha) return scaleTranslate(k, dx, dy, sx, sy);\n var cosAlpha = cos(alpha),\n sinAlpha = sin(alpha),\n a = cosAlpha * k,\n b = sinAlpha * k,\n ai = cosAlpha / k,\n bi = sinAlpha / k,\n ci = (sinAlpha * dy - cosAlpha * dx) / k,\n fi = (sinAlpha * dx + cosAlpha * dy) / k;\n function transform(x, y) {\n x *= sx; y *= sy;\n return [a * x - b * y + dx, dy - b * x - a * y];\n }\n transform.invert = function(x, y) {\n return [sx * (ai * x - bi * y + ci), sy * (fi - bi * x - ai * y)];\n };\n return transform;\n}\n\nexport default function projection(project) {\n return projectionMutator(function() { return project; })();\n}\n\nexport function projectionMutator(projectAt) {\n var project,\n k = 150, // scale\n x = 480, y = 250, // translate\n lambda = 0, phi = 0, // center\n deltaLambda = 0, deltaPhi = 0, deltaGamma = 0, rotate, // pre-rotate\n alpha = 0, // post-rotate angle\n sx = 1, // reflectX\n sy = 1, // reflectX\n theta = null, preclip = clipAntimeridian, // pre-clip angle\n x0 = null, y0, x1, y1, postclip = identity, // post-clip extent\n delta2 = 0.5, // precision\n projectResample,\n projectTransform,\n projectRotateTransform,\n cache,\n cacheStream;\n\n function projection(point) {\n return projectRotateTransform(point[0] * radians, point[1] * radians);\n }\n\n function invert(point) {\n point = projectRotateTransform.invert(point[0], point[1]);\n return point && [point[0] * degrees, point[1] * degrees];\n }\n\n projection.stream = function(stream) {\n return cache && cacheStream === stream ? cache : cache = transformRadians(transformRotate(rotate)(preclip(projectResample(postclip(cacheStream = stream)))));\n };\n\n projection.preclip = function(_) {\n return arguments.length ? (preclip = _, theta = undefined, reset()) : preclip;\n };\n\n projection.postclip = function(_) {\n return arguments.length ? (postclip = _, x0 = y0 = x1 = y1 = null, reset()) : postclip;\n };\n\n projection.clipAngle = function(_) {\n return arguments.length ? (preclip = +_ ? clipCircle(theta = _ * radians) : (theta = null, clipAntimeridian), reset()) : theta * degrees;\n };\n\n projection.clipExtent = function(_) {\n return arguments.length ? (postclip = _ == null ? (x0 = y0 = x1 = y1 = null, identity) : clipRectangle(x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1]), reset()) : x0 == null ? null : [[x0, y0], [x1, y1]];\n };\n\n projection.scale = function(_) {\n return arguments.length ? (k = +_, recenter()) : k;\n };\n\n projection.translate = function(_) {\n return arguments.length ? (x = +_[0], y = +_[1], recenter()) : [x, y];\n };\n\n projection.center = function(_) {\n return arguments.length ? (lambda = _[0] % 360 * radians, phi = _[1] % 360 * radians, recenter()) : [lambda * degrees, phi * degrees];\n };\n\n projection.rotate = function(_) {\n return arguments.length ? (deltaLambda = _[0] % 360 * radians, deltaPhi = _[1] % 360 * radians, deltaGamma = _.length > 2 ? _[2] % 360 * radians : 0, recenter()) : [deltaLambda * degrees, deltaPhi * degrees, deltaGamma * degrees];\n };\n\n projection.angle = function(_) {\n return arguments.length ? (alpha = _ % 360 * radians, recenter()) : alpha * degrees;\n };\n\n projection.reflectX = function(_) {\n return arguments.length ? (sx = _ ? -1 : 1, recenter()) : sx < 0;\n };\n\n projection.reflectY = function(_) {\n return arguments.length ? (sy = _ ? -1 : 1, recenter()) : sy < 0;\n };\n\n projection.precision = function(_) {\n return arguments.length ? (projectResample = resample(projectTransform, delta2 = _ * _), reset()) : sqrt(delta2);\n };\n\n projection.fitExtent = function(extent, object) {\n return fitExtent(projection, extent, object);\n };\n\n projection.fitSize = function(size, object) {\n return fitSize(projection, size, object);\n };\n\n projection.fitWidth = function(width, object) {\n return fitWidth(projection, width, object);\n };\n\n projection.fitHeight = function(height, object) {\n return fitHeight(projection, height, object);\n };\n\n function recenter() {\n var center = scaleTranslateRotate(k, 0, 0, sx, sy, alpha).apply(null, project(lambda, phi)),\n transform = scaleTranslateRotate(k, x - center[0], y - center[1], sx, sy, alpha);\n rotate = rotateRadians(deltaLambda, deltaPhi, deltaGamma);\n projectTransform = compose(project, transform);\n projectRotateTransform = compose(rotate, projectTransform);\n projectResample = resample(projectTransform, delta2);\n return reset();\n }\n\n function reset() {\n cache = cacheStream = null;\n return projection;\n }\n\n return function() {\n project = projectAt.apply(this, arguments);\n projection.invert = project.invert && invert;\n return recenter();\n };\n}\n","import {atan, exp, halfPi, log, pi, tan, tau} from \"../math.js\";\nimport rotation from \"../rotation.js\";\nimport projection from \"./index.js\";\n\nexport function mercatorRaw(lambda, phi) {\n return [lambda, log(tan((halfPi + phi) / 2))];\n}\n\nmercatorRaw.invert = function(x, y) {\n return [x, 2 * atan(exp(y)) - halfPi];\n};\n\nexport default function() {\n return mercatorProjection(mercatorRaw)\n .scale(961 / tau);\n}\n\nexport function mercatorProjection(project) {\n var m = projection(project),\n center = m.center,\n scale = m.scale,\n translate = m.translate,\n clipExtent = m.clipExtent,\n x0 = null, y0, x1, y1; // clip extent\n\n m.scale = function(_) {\n return arguments.length ? (scale(_), reclip()) : scale();\n };\n\n m.translate = function(_) {\n return arguments.length ? (translate(_), reclip()) : translate();\n };\n\n m.center = function(_) {\n return arguments.length ? (center(_), reclip()) : center();\n };\n\n m.clipExtent = function(_) {\n return arguments.length ? ((_ == null ? x0 = y0 = x1 = y1 = null : (x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1])), reclip()) : x0 == null ? null : [[x0, y0], [x1, y1]];\n };\n\n function reclip() {\n var k = pi * scale(),\n t = m(rotation(m.rotate()).invert([0, 0]));\n return clipExtent(x0 == null\n ? [[t[0] - k, t[1] - k], [t[0] + k, t[1] + k]] : project === mercatorRaw\n ? [[Math.max(t[0] - k, x0), y0], [Math.min(t[0] + k, x1), y1]]\n : [[x0, Math.max(t[1] - k, y0)], [x1, Math.min(t[1] + k, y1)]]);\n }\n\n return reclip();\n}\n","var epsilon2 = 1e-12;\n\nfunction cosh(x) {\n return ((x = Math.exp(x)) + 1 / x) / 2;\n}\n\nfunction sinh(x) {\n return ((x = Math.exp(x)) - 1 / x) / 2;\n}\n\nfunction tanh(x) {\n return ((x = Math.exp(2 * x)) - 1) / (x + 1);\n}\n\nexport default (function zoomRho(rho, rho2, rho4) {\n\n // p0 = [ux0, uy0, w0]\n // p1 = [ux1, uy1, w1]\n function zoom(p0, p1) {\n var ux0 = p0[0], uy0 = p0[1], w0 = p0[2],\n ux1 = p1[0], uy1 = p1[1], w1 = p1[2],\n dx = ux1 - ux0,\n dy = uy1 - uy0,\n d2 = dx * dx + dy * dy,\n i,\n S;\n\n // Special case for u0 ≅ u1.\n if (d2 < epsilon2) {\n S = Math.log(w1 / w0) / rho;\n i = function(t) {\n return [\n ux0 + t * dx,\n uy0 + t * dy,\n w0 * Math.exp(rho * t * S)\n ];\n }\n }\n\n // General case.\n else {\n var d1 = Math.sqrt(d2),\n b0 = (w1 * w1 - w0 * w0 + rho4 * d2) / (2 * w0 * rho2 * d1),\n b1 = (w1 * w1 - w0 * w0 - rho4 * d2) / (2 * w1 * rho2 * d1),\n r0 = Math.log(Math.sqrt(b0 * b0 + 1) - b0),\n r1 = Math.log(Math.sqrt(b1 * b1 + 1) - b1);\n S = (r1 - r0) / rho;\n i = function(t) {\n var s = t * S,\n coshr0 = cosh(r0),\n u = w0 / (rho2 * d1) * (coshr0 * tanh(rho * s + r0) - sinh(r0));\n return [\n ux0 + u * dx,\n uy0 + u * dy,\n w0 * coshr0 / cosh(rho * s + r0)\n ];\n }\n }\n\n i.duration = S * 1000 * rho / Math.SQRT2;\n\n return i;\n }\n\n zoom.rho = function(_) {\n var _1 = Math.max(1e-3, +_), _2 = _1 * _1, _4 = _2 * _2;\n return zoomRho(_1, _2, _4);\n };\n\n return zoom;\n})(Math.SQRT2, 2, 4);\n","export function Transform(k, x, y) {\n this.k = k;\n this.x = x;\n this.y = y;\n}\n\nTransform.prototype = {\n constructor: Transform,\n scale: function(k) {\n return k === 1 ? this : new Transform(this.k * k, this.x, this.y);\n },\n translate: function(x, y) {\n return x === 0 & y === 0 ? this : new Transform(this.k, this.x + this.k * x, this.y + this.k * y);\n },\n apply: function(point) {\n return [point[0] * this.k + this.x, point[1] * this.k + this.y];\n },\n applyX: function(x) {\n return x * this.k + this.x;\n },\n applyY: function(y) {\n return y * this.k + this.y;\n },\n invert: function(location) {\n return [(location[0] - this.x) / this.k, (location[1] - this.y) / this.k];\n },\n invertX: function(x) {\n return (x - this.x) / this.k;\n },\n invertY: function(y) {\n return (y - this.y) / this.k;\n },\n rescaleX: function(x) {\n return x.copy().domain(x.range().map(this.invertX, this).map(x.invert, x));\n },\n rescaleY: function(y) {\n return y.copy().domain(y.range().map(this.invertY, this).map(y.invert, y));\n },\n toString: function() {\n return \"translate(\" + this.x + \",\" + this.y + \") scale(\" + this.k + \")\";\n }\n};\n\nexport var identity = new Transform(1, 0, 0);\n\ntransform.prototype = Transform.prototype;\n\nexport default function transform(node) {\n while (!node.__zoom) if (!(node = node.parentNode)) return identity;\n return node.__zoom;\n}\n","import {dispatch} from \"d3-dispatch\";\nimport {dragDisable, dragEnable} from \"d3-drag\";\nimport {interpolateZoom} from \"d3-interpolate\";\nimport {select, pointer} from \"d3-selection\";\nimport {interrupt} from \"d3-transition\";\nimport constant from \"./constant.js\";\nimport ZoomEvent from \"./event.js\";\nimport {Transform, identity} from \"./transform.js\";\nimport noevent, {nopropagation} from \"./noevent.js\";\n\n// Ignore right-click, since that should open the context menu.\n// except for pinch-to-zoom, which is sent as a wheel+ctrlKey event\nfunction defaultFilter(event) {\n return (!event.ctrlKey || event.type === 'wheel') && !event.button;\n}\n\nfunction defaultExtent() {\n var e = this;\n if (e instanceof SVGElement) {\n e = e.ownerSVGElement || e;\n if (e.hasAttribute(\"viewBox\")) {\n e = e.viewBox.baseVal;\n return [[e.x, e.y], [e.x + e.width, e.y + e.height]];\n }\n return [[0, 0], [e.width.baseVal.value, e.height.baseVal.value]];\n }\n return [[0, 0], [e.clientWidth, e.clientHeight]];\n}\n\nfunction defaultTransform() {\n return this.__zoom || identity;\n}\n\nfunction defaultWheelDelta(event) {\n return -event.deltaY * (event.deltaMode === 1 ? 0.05 : event.deltaMode ? 1 : 0.002) * (event.ctrlKey ? 10 : 1);\n}\n\nfunction defaultTouchable() {\n return navigator.maxTouchPoints || (\"ontouchstart\" in this);\n}\n\nfunction defaultConstrain(transform, extent, translateExtent) {\n var dx0 = transform.invertX(extent[0][0]) - translateExtent[0][0],\n dx1 = transform.invertX(extent[1][0]) - translateExtent[1][0],\n dy0 = transform.invertY(extent[0][1]) - translateExtent[0][1],\n dy1 = transform.invertY(extent[1][1]) - translateExtent[1][1];\n return transform.translate(\n dx1 > dx0 ? (dx0 + dx1) / 2 : Math.min(0, dx0) || Math.max(0, dx1),\n dy1 > dy0 ? (dy0 + dy1) / 2 : Math.min(0, dy0) || Math.max(0, dy1)\n );\n}\n\nexport default function() {\n var filter = defaultFilter,\n extent = defaultExtent,\n constrain = defaultConstrain,\n wheelDelta = defaultWheelDelta,\n touchable = defaultTouchable,\n scaleExtent = [0, Infinity],\n translateExtent = [[-Infinity, -Infinity], [Infinity, Infinity]],\n duration = 250,\n interpolate = interpolateZoom,\n listeners = dispatch(\"start\", \"zoom\", \"end\"),\n touchstarting,\n touchfirst,\n touchending,\n touchDelay = 500,\n wheelDelay = 150,\n clickDistance2 = 0,\n tapDistance = 10;\n\n function zoom(selection) {\n selection\n .property(\"__zoom\", defaultTransform)\n .on(\"wheel.zoom\", wheeled)\n .on(\"mousedown.zoom\", mousedowned)\n .on(\"dblclick.zoom\", dblclicked)\n .filter(touchable)\n .on(\"touchstart.zoom\", touchstarted)\n .on(\"touchmove.zoom\", touchmoved)\n .on(\"touchend.zoom touchcancel.zoom\", touchended)\n .style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\");\n }\n\n zoom.transform = function(collection, transform, point, event) {\n var selection = collection.selection ? collection.selection() : collection;\n selection.property(\"__zoom\", defaultTransform);\n if (collection !== selection) {\n schedule(collection, transform, point, event);\n } else {\n selection.interrupt().each(function() {\n gesture(this, arguments)\n .event(event)\n .start()\n .zoom(null, typeof transform === \"function\" ? transform.apply(this, arguments) : transform)\n .end();\n });\n }\n };\n\n zoom.scaleBy = function(selection, k, p, event) {\n zoom.scaleTo(selection, function() {\n var k0 = this.__zoom.k,\n k1 = typeof k === \"function\" ? k.apply(this, arguments) : k;\n return k0 * k1;\n }, p, event);\n };\n\n zoom.scaleTo = function(selection, k, p, event) {\n zoom.transform(selection, function() {\n var e = extent.apply(this, arguments),\n t0 = this.__zoom,\n p0 = p == null ? centroid(e) : typeof p === \"function\" ? p.apply(this, arguments) : p,\n p1 = t0.invert(p0),\n k1 = typeof k === \"function\" ? k.apply(this, arguments) : k;\n return constrain(translate(scale(t0, k1), p0, p1), e, translateExtent);\n }, p, event);\n };\n\n zoom.translateBy = function(selection, x, y, event) {\n zoom.transform(selection, function() {\n return constrain(this.__zoom.translate(\n typeof x === \"function\" ? x.apply(this, arguments) : x,\n typeof y === \"function\" ? y.apply(this, arguments) : y\n ), extent.apply(this, arguments), translateExtent);\n }, null, event);\n };\n\n zoom.translateTo = function(selection, x, y, p, event) {\n zoom.transform(selection, function() {\n var e = extent.apply(this, arguments),\n t = this.__zoom,\n p0 = p == null ? centroid(e) : typeof p === \"function\" ? p.apply(this, arguments) : p;\n return constrain(identity.translate(p0[0], p0[1]).scale(t.k).translate(\n typeof x === \"function\" ? -x.apply(this, arguments) : -x,\n typeof y === \"function\" ? -y.apply(this, arguments) : -y\n ), e, translateExtent);\n }, p, event);\n };\n\n function scale(transform, k) {\n k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], k));\n return k === transform.k ? transform : new Transform(k, transform.x, transform.y);\n }\n\n function translate(transform, p0, p1) {\n var x = p0[0] - p1[0] * transform.k, y = p0[1] - p1[1] * transform.k;\n return x === transform.x && y === transform.y ? transform : new Transform(transform.k, x, y);\n }\n\n function centroid(extent) {\n return [(+extent[0][0] + +extent[1][0]) / 2, (+extent[0][1] + +extent[1][1]) / 2];\n }\n\n function schedule(transition, transform, point, event) {\n transition\n .on(\"start.zoom\", function() { gesture(this, arguments).event(event).start(); })\n .on(\"interrupt.zoom end.zoom\", function() { gesture(this, arguments).event(event).end(); })\n .tween(\"zoom\", function() {\n var that = this,\n args = arguments,\n g = gesture(that, args).event(event),\n e = extent.apply(that, args),\n p = point == null ? centroid(e) : typeof point === \"function\" ? point.apply(that, args) : point,\n w = Math.max(e[1][0] - e[0][0], e[1][1] - e[0][1]),\n a = that.__zoom,\n b = typeof transform === \"function\" ? transform.apply(that, args) : transform,\n i = interpolate(a.invert(p).concat(w / a.k), b.invert(p).concat(w / b.k));\n return function(t) {\n if (t === 1) t = b; // Avoid rounding error on end.\n else { var l = i(t), k = w / l[2]; t = new Transform(k, p[0] - l[0] * k, p[1] - l[1] * k); }\n g.zoom(null, t);\n };\n });\n }\n\n function gesture(that, args, clean) {\n return (!clean && that.__zooming) || new Gesture(that, args);\n }\n\n function Gesture(that, args) {\n this.that = that;\n this.args = args;\n this.active = 0;\n this.sourceEvent = null;\n this.extent = extent.apply(that, args);\n this.taps = 0;\n }\n\n Gesture.prototype = {\n event: function(event) {\n if (event) this.sourceEvent = event;\n return this;\n },\n start: function() {\n if (++this.active === 1) {\n this.that.__zooming = this;\n this.emit(\"start\");\n }\n return this;\n },\n zoom: function(key, transform) {\n if (this.mouse && key !== \"mouse\") this.mouse[1] = transform.invert(this.mouse[0]);\n if (this.touch0 && key !== \"touch\") this.touch0[1] = transform.invert(this.touch0[0]);\n if (this.touch1 && key !== \"touch\") this.touch1[1] = transform.invert(this.touch1[0]);\n this.that.__zoom = transform;\n this.emit(\"zoom\");\n return this;\n },\n end: function() {\n if (--this.active === 0) {\n delete this.that.__zooming;\n this.emit(\"end\");\n }\n return this;\n },\n emit: function(type) {\n var d = select(this.that).datum();\n listeners.call(\n type,\n this.that,\n new ZoomEvent(type, {\n sourceEvent: this.sourceEvent,\n target: zoom,\n type,\n transform: this.that.__zoom,\n dispatch: listeners\n }),\n d\n );\n }\n };\n\n function wheeled(event, ...args) {\n if (!filter.apply(this, arguments)) return;\n var g = gesture(this, args).event(event),\n t = this.__zoom,\n k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], t.k * Math.pow(2, wheelDelta.apply(this, arguments)))),\n p = pointer(event);\n\n // If the mouse is in the same location as before, reuse it.\n // If there were recent wheel events, reset the wheel idle timeout.\n if (g.wheel) {\n if (g.mouse[0][0] !== p[0] || g.mouse[0][1] !== p[1]) {\n g.mouse[1] = t.invert(g.mouse[0] = p);\n }\n clearTimeout(g.wheel);\n }\n\n // If this wheel event won’t trigger a transform change, ignore it.\n else if (t.k === k) return;\n\n // Otherwise, capture the mouse point and location at the start.\n else {\n g.mouse = [p, t.invert(p)];\n interrupt(this);\n g.start();\n }\n\n noevent(event);\n g.wheel = setTimeout(wheelidled, wheelDelay);\n g.zoom(\"mouse\", constrain(translate(scale(t, k), g.mouse[0], g.mouse[1]), g.extent, translateExtent));\n\n function wheelidled() {\n g.wheel = null;\n g.end();\n }\n }\n\n function mousedowned(event, ...args) {\n if (touchending || !filter.apply(this, arguments)) return;\n var g = gesture(this, args, true).event(event),\n v = select(event.view).on(\"mousemove.zoom\", mousemoved, true).on(\"mouseup.zoom\", mouseupped, true),\n p = pointer(event, currentTarget),\n currentTarget = event.currentTarget,\n x0 = event.clientX,\n y0 = event.clientY;\n\n dragDisable(event.view);\n nopropagation(event);\n g.mouse = [p, this.__zoom.invert(p)];\n interrupt(this);\n g.start();\n\n function mousemoved(event) {\n noevent(event);\n if (!g.moved) {\n var dx = event.clientX - x0, dy = event.clientY - y0;\n g.moved = dx * dx + dy * dy > clickDistance2;\n }\n g.event(event)\n .zoom(\"mouse\", constrain(translate(g.that.__zoom, g.mouse[0] = pointer(event, currentTarget), g.mouse[1]), g.extent, translateExtent));\n }\n\n function mouseupped(event) {\n v.on(\"mousemove.zoom mouseup.zoom\", null);\n dragEnable(event.view, g.moved);\n noevent(event);\n g.event(event).end();\n }\n }\n\n function dblclicked(event, ...args) {\n if (!filter.apply(this, arguments)) return;\n var t0 = this.__zoom,\n p0 = pointer(event.changedTouches ? event.changedTouches[0] : event, this),\n p1 = t0.invert(p0),\n k1 = t0.k * (event.shiftKey ? 0.5 : 2),\n t1 = constrain(translate(scale(t0, k1), p0, p1), extent.apply(this, args), translateExtent);\n\n noevent(event);\n if (duration > 0) select(this).transition().duration(duration).call(schedule, t1, p0, event);\n else select(this).call(zoom.transform, t1, p0, event);\n }\n\n function touchstarted(event, ...args) {\n if (!filter.apply(this, arguments)) return;\n var touches = event.touches,\n n = touches.length,\n g = gesture(this, args, event.changedTouches.length === n).event(event),\n started, i, t, p;\n\n nopropagation(event);\n for (i = 0; i < n; ++i) {\n t = touches[i], p = pointer(t, this);\n p = [p, this.__zoom.invert(p), t.identifier];\n if (!g.touch0) g.touch0 = p, started = true, g.taps = 1 + !!touchstarting;\n else if (!g.touch1 && g.touch0[2] !== p[2]) g.touch1 = p, g.taps = 0;\n }\n\n if (touchstarting) touchstarting = clearTimeout(touchstarting);\n\n if (started) {\n if (g.taps < 2) touchfirst = p[0], touchstarting = setTimeout(function() { touchstarting = null; }, touchDelay);\n interrupt(this);\n g.start();\n }\n }\n\n function touchmoved(event, ...args) {\n if (!this.__zooming) return;\n var g = gesture(this, args).event(event),\n touches = event.changedTouches,\n n = touches.length, i, t, p, l;\n\n noevent(event);\n for (i = 0; i < n; ++i) {\n t = touches[i], p = pointer(t, this);\n if (g.touch0 && g.touch0[2] === t.identifier) g.touch0[0] = p;\n else if (g.touch1 && g.touch1[2] === t.identifier) g.touch1[0] = p;\n }\n t = g.that.__zoom;\n if (g.touch1) {\n var p0 = g.touch0[0], l0 = g.touch0[1],\n p1 = g.touch1[0], l1 = g.touch1[1],\n dp = (dp = p1[0] - p0[0]) * dp + (dp = p1[1] - p0[1]) * dp,\n dl = (dl = l1[0] - l0[0]) * dl + (dl = l1[1] - l0[1]) * dl;\n t = scale(t, Math.sqrt(dp / dl));\n p = [(p0[0] + p1[0]) / 2, (p0[1] + p1[1]) / 2];\n l = [(l0[0] + l1[0]) / 2, (l0[1] + l1[1]) / 2];\n }\n else if (g.touch0) p = g.touch0[0], l = g.touch0[1];\n else return;\n\n g.zoom(\"touch\", constrain(translate(t, p, l), g.extent, translateExtent));\n }\n\n function touchended(event, ...args) {\n if (!this.__zooming) return;\n var g = gesture(this, args).event(event),\n touches = event.changedTouches,\n n = touches.length, i, t;\n\n nopropagation(event);\n if (touchending) clearTimeout(touchending);\n touchending = setTimeout(function() { touchending = null; }, touchDelay);\n for (i = 0; i < n; ++i) {\n t = touches[i];\n if (g.touch0 && g.touch0[2] === t.identifier) delete g.touch0;\n else if (g.touch1 && g.touch1[2] === t.identifier) delete g.touch1;\n }\n if (g.touch1 && !g.touch0) g.touch0 = g.touch1, delete g.touch1;\n if (g.touch0) g.touch0[1] = this.__zoom.invert(g.touch0[0]);\n else {\n g.end();\n // If this was a dbltap, reroute to the (optional) dblclick.zoom handler.\n if (g.taps === 2) {\n t = pointer(t, this);\n if (Math.hypot(touchfirst[0] - t[0], touchfirst[1] - t[1]) < tapDistance) {\n var p = select(this).on(\"dblclick.zoom\");\n if (p) p.apply(this, arguments);\n }\n }\n }\n }\n\n zoom.wheelDelta = function(_) {\n return arguments.length ? (wheelDelta = typeof _ === \"function\" ? _ : constant(+_), zoom) : wheelDelta;\n };\n\n zoom.filter = function(_) {\n return arguments.length ? (filter = typeof _ === \"function\" ? _ : constant(!!_), zoom) : filter;\n };\n\n zoom.touchable = function(_) {\n return arguments.length ? (touchable = typeof _ === \"function\" ? _ : constant(!!_), zoom) : touchable;\n };\n\n zoom.extent = function(_) {\n return arguments.length ? (extent = typeof _ === \"function\" ? _ : constant([[+_[0][0], +_[0][1]], [+_[1][0], +_[1][1]]]), zoom) : extent;\n };\n\n zoom.scaleExtent = function(_) {\n return arguments.length ? (scaleExtent[0] = +_[0], scaleExtent[1] = +_[1], zoom) : [scaleExtent[0], scaleExtent[1]];\n };\n\n zoom.translateExtent = function(_) {\n return arguments.length ? (translateExtent[0][0] = +_[0][0], translateExtent[1][0] = +_[1][0], translateExtent[0][1] = +_[0][1], translateExtent[1][1] = +_[1][1], zoom) : [[translateExtent[0][0], translateExtent[0][1]], [translateExtent[1][0], translateExtent[1][1]]];\n };\n\n zoom.constrain = function(_) {\n return arguments.length ? (constrain = _, zoom) : constrain;\n };\n\n zoom.duration = function(_) {\n return arguments.length ? (duration = +_, zoom) : duration;\n };\n\n zoom.interpolate = function(_) {\n return arguments.length ? (interpolate = _, zoom) : interpolate;\n };\n\n zoom.on = function() {\n var value = listeners.on.apply(listeners, arguments);\n return value === listeners ? zoom : value;\n };\n\n zoom.clickDistance = function(_) {\n return arguments.length ? (clickDistance2 = (_ = +_) * _, zoom) : Math.sqrt(clickDistance2);\n };\n\n zoom.tapDistance = function(_) {\n return arguments.length ? (tapDistance = +_, zoom) : tapDistance;\n };\n\n return zoom;\n}\n","import {computed, ref, watch} from 'vue'\nimport useProviders from '@/use/providers'\nimport mapData from '../assets/data/europe.geo.json'\nimport * as d3 from 'd3'\n\n\nconst {locations, originator, target, getLocation} = useProviders()\n\nexport default function useMap(center, statesRef, mapRef) {\n const scale = ref(850)\n const projection = computed(() => {\n return d3.geoMercator().scale(scale.value).center(center)\n })\n const path = ref(d3.geoPath(projection.value))\n const markers = ref([])\n const connections = ref([])\n const _locations = [...locations.value]\n const currentMarker = ref(null)\n const targetLoc = computed(() => {\n if (target.value) {\n return getLocation(target)\n }\n return null\n })\n\n function renderStates() {\n d3.select(statesRef.value)\n .selectAll(\"path\")\n .data(mapData.features)\n .enter()\n .append(\"path\")\n .attr(\"d\", path.value)\n }\n\n function renderProviders() {\n let i = _locations.length, d, proj\n\n while (i--) {\n d = _locations[i];\n if (!d.longitude && !d.latitude) {\n // Let's consider this a bad location record\n _locations.splice(i, 1);\n }\n\n proj = projection.value([d.longitude, d.latitude])\n if (proj) {\n d.x = proj[0];\n d.y = proj[1];\n } else {\n _locations.splice(i, 1);\n }\n }\n Array.prototype.pairs = function (func) {\n for (let i = 0; i < this.length - 1; i++) {\n for (let j = i; j < this.length - 1; j++) {\n func([this[i], this[j + 1]]);\n }\n }\n }\n _locations.pairs((pair) => {\n connections.value.push(pair)\n })\n // Pick 10 random connections proportional to number of locations\n connections.value = connections.value\n .sort(() => 0.5 - Math.random())\n .slice(0, Math.ceil((_locations.length % connections.value.length - 1)))\n }\n\n function getProviderPoint(provider) {\n if (provider.value) {\n return _locations.find(l => {\n return l.key === provider.value.key\n })\n }\n }\n\n function addMarker(provider) {\n const providerPoint = getProviderPoint(provider)\n\n if (providerPoint) {\n markers.value.push({\n provider: provider.value,\n x: providerPoint.x,\n y: providerPoint.y\n })\n }\n }\n\n function renderConnection(connection) {\n\n let m1 = connection[1],\n m2 = connection[0];\n\n if (!m1 || !m2) {\n return\n }\n\n if (m1.x < m2.x) {\n m1 = connection[0];\n m2 = connection[1];\n }\n\n var dx = m2.x - m1.x,\n dy = m2.y - m1.y,\n dr = Math.sqrt(dx * dx + dy * dy);\n\n return \"M\" + m2.x + \",\" + m2.y + \"A\" + dr + \",\" + dr + \" 0 0,1 \" + m1.x + \",\" + m1.y;\n }\n\n function renderMarkers() {\n markers.value = []\n addMarker(getLocation(originator))\n if (targetLoc.value) {\n addMarker(targetLoc.value)\n }\n }\n\n watch([target], () => renderMarkers())\n\n function markerSet(e, marker, index) {\n if (e) {\n e.preventDefault()\n }\n const m = markers.value[index]\n m.provider = null\n m.current = true\n m.startX = m.x\n m.startY = m.y\n currentMarker.value = m\n document.addEventListener('mousemove', markerDrag)\n document.addEventListener('mouseup', markerStop)\n mapRef.value.addEventListener('mouseleave', markerLeave)\n }\n\n function markerDrag(e) {\n currentMarker.value.provider = targetLoc.value\n let mouse = d3.pointer(e)\n currentMarker.value.x = mouse[0]\n currentMarker.value.y = mouse[1] - 141\n }\n\n function markerLeave() {\n currentMarker.value.x = currentMarker.value.startX;\n currentMarker.value.y = currentMarker.value.startY;\n\n markerStop();\n }\n\n function markerStop() {\n document.removeEventListener('mousemove', markerDrag);\n document.removeEventListener('mouseup', markerStop);\n mapRef.value.removeEventListener('mouseleave', markerLeave);\n\n currentMarker.value.current = false;\n currentMarker.value = null;\n }\n\n\n function render() {\n renderStates()\n renderProviders()\n renderMarkers()\n }\n\n function isOrigin(markerProvider) {\n return markerProvider === getLocation(originator).value\n }\n\n return {\n markers,\n projection: computed(() => projection.value),\n providerConnections: computed(() => connections.value),\n providerPoints: computed(() => _locations),\n render, renderConnection, isOrigin, markerSet\n }\n}\n","import { render } from \"./MeshMap.vue?vue&type=template&id=59d5eebf\"\nimport script from \"./MeshMap.vue?vue&type=script&lang=js\"\nexport * from \"./MeshMap.vue?vue&type=script&lang=js\"\n\nimport \"./MeshMap.vue?vue&type=style&index=0&id=59d5eebf&lang=scss\"\nscript.render = render\n\nexport default script","'use strict';\nvar $ = require('../internals/export');\nvar isObject = require('../internals/is-object');\nvar isArray = require('../internals/is-array');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toLength = require('../internals/to-length');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar createProperty = require('../internals/create-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('slice');\n\nvar SPECIES = wellKnownSymbol('species');\nvar nativeSlice = [].slice;\nvar max = Math.max;\n\n// `Array.prototype.slice` method\n// https://tc39.es/ecma262/#sec-array.prototype.slice\n// fallback for not array-like ES3 strings and DOM objects\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n slice: function slice(start, end) {\n var O = toIndexedObject(this);\n var length = toLength(O.length);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n // inline `ArraySpeciesCreate` for usage native `Array#slice` where it's possible\n var Constructor, result, n;\n if (isArray(O)) {\n Constructor = O.constructor;\n // cross-realm fallback\n if (typeof Constructor == 'function' && (Constructor === Array || isArray(Constructor.prototype))) {\n Constructor = undefined;\n } else if (isObject(Constructor)) {\n Constructor = Constructor[SPECIES];\n if (Constructor === null) Constructor = undefined;\n }\n if (Constructor === Array || Constructor === undefined) {\n return nativeSlice.call(O, k, fin);\n }\n }\n result = new (Constructor === undefined ? Array : Constructor)(max(fin - k, 0));\n for (n = 0; k < fin; k++, n++) if (k in O) createProperty(result, n, O[k]);\n result.length = n;\n return result;\n }\n});\n"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/js/chunk-d3df6968.0c83f36f.js.map b/dist/js/chunk-d3df6968.0c83f36f.js.map deleted file mode 100644 index d0eb2c8..0000000 --- a/dist/js/chunk-d3df6968.0c83f36f.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["webpack:///./node_modules/core-js/internals/array-fill.js","webpack:///./node_modules/core-js/modules/es.array.concat.js","webpack:///./node_modules/core-js/modules/es.array.splice.js","webpack:///./node_modules/core-js/modules/es.array.from.js","webpack:///./node_modules/core-js/modules/es.array.fill.js","webpack:///./src/components/MeshMap.vue?d045","webpack:///./node_modules/core-js/modules/es.symbol.iterator.js","webpack:///./src/components/MeshMap.vue","webpack:///./node_modules/@babel/runtime/helpers/arrayLikeToArray/_index.mjs","webpack:///./node_modules/@babel/runtime/helpers/arrayWithoutHoles/_index.mjs","webpack:///./node_modules/@babel/runtime/helpers/iterableToArray/_index.mjs","webpack:///./node_modules/@babel/runtime/helpers/unsupportedIterableToArray/_index.mjs","webpack:///./node_modules/@babel/runtime/helpers/nonIterableSpread/_index.mjs","webpack:///./node_modules/@babel/runtime/helpers/toConsumableArray/_index.mjs","webpack:///./node_modules/d3-dispatch/src/dispatch.js","webpack:///./node_modules/d3-selection/src/selector.js","webpack:///./node_modules/d3-selection/src/selection/select.js","webpack:///./node_modules/d3-selection/src/array.js","webpack:///./node_modules/d3-selection/src/selectorAll.js","webpack:///./node_modules/d3-selection/src/selection/selectAll.js","webpack:///./node_modules/d3-selection/src/matcher.js","webpack:///./node_modules/d3-selection/src/selection/selectChild.js","webpack:///./node_modules/d3-selection/src/selection/selectChildren.js","webpack:///./node_modules/d3-selection/src/selection/filter.js","webpack:///./node_modules/d3-selection/src/selection/sparse.js","webpack:///./node_modules/d3-selection/src/selection/enter.js","webpack:///./node_modules/d3-selection/src/constant.js","webpack:///./node_modules/d3-selection/src/selection/data.js","webpack:///./node_modules/d3-selection/src/selection/exit.js","webpack:///./node_modules/d3-selection/src/selection/join.js","webpack:///./node_modules/d3-selection/src/selection/merge.js","webpack:///./node_modules/d3-selection/src/selection/order.js","webpack:///./node_modules/d3-selection/src/selection/sort.js","webpack:///./node_modules/d3-selection/src/selection/call.js","webpack:///./node_modules/d3-selection/src/selection/nodes.js","webpack:///./node_modules/d3-selection/src/selection/node.js","webpack:///./node_modules/d3-selection/src/selection/size.js","webpack:///./node_modules/d3-selection/src/selection/empty.js","webpack:///./node_modules/d3-selection/src/selection/each.js","webpack:///./node_modules/d3-selection/src/namespaces.js","webpack:///./node_modules/d3-selection/src/namespace.js","webpack:///./node_modules/d3-selection/src/selection/attr.js","webpack:///./node_modules/d3-selection/src/window.js","webpack:///./node_modules/d3-selection/src/selection/style.js","webpack:///./node_modules/d3-selection/src/selection/property.js","webpack:///./node_modules/d3-selection/src/selection/classed.js","webpack:///./node_modules/d3-selection/src/selection/text.js","webpack:///./node_modules/d3-selection/src/selection/html.js","webpack:///./node_modules/d3-selection/src/selection/raise.js","webpack:///./node_modules/d3-selection/src/selection/lower.js","webpack:///./node_modules/d3-selection/src/creator.js","webpack:///./node_modules/d3-selection/src/selection/append.js","webpack:///./node_modules/d3-selection/src/selection/insert.js","webpack:///./node_modules/d3-selection/src/selection/remove.js","webpack:///./node_modules/d3-selection/src/selection/clone.js","webpack:///./node_modules/d3-selection/src/selection/datum.js","webpack:///./node_modules/d3-selection/src/selection/on.js","webpack:///./node_modules/d3-selection/src/selection/dispatch.js","webpack:///./node_modules/d3-selection/src/selection/iterator.js","webpack:///./node_modules/d3-selection/src/selection/index.js","webpack:///./node_modules/d3-selection/src/select.js","webpack:///./node_modules/d3-color/src/define.js","webpack:///./node_modules/d3-color/src/color.js","webpack:///./node_modules/d3-interpolate/src/basis.js","webpack:///./node_modules/d3-interpolate/src/basisClosed.js","webpack:///./node_modules/d3-interpolate/src/constant.js","webpack:///./node_modules/d3-interpolate/src/color.js","webpack:///./node_modules/d3-interpolate/src/rgb.js","webpack:///./node_modules/d3-interpolate/src/date.js","webpack:///./node_modules/d3-interpolate/src/number.js","webpack:///./node_modules/d3-interpolate/src/string.js","webpack:///./node_modules/d3-timer/src/timer.js","webpack:///./node_modules/d3-selection/src/sourceEvent.js","webpack:///./node_modules/d3-selection/src/pointer.js","webpack:///./node_modules/d3-timer/src/timeout.js","webpack:///./node_modules/d3-transition/src/transition/schedule.js","webpack:///./node_modules/d3-transition/src/interrupt.js","webpack:///./node_modules/d3-interpolate/src/transform/parse.js","webpack:///./node_modules/d3-transition/src/selection/interrupt.js","webpack:///./node_modules/d3-interpolate/src/transform/decompose.js","webpack:///./node_modules/d3-interpolate/src/transform/index.js","webpack:///./node_modules/d3-transition/src/transition/tween.js","webpack:///./node_modules/d3-transition/src/transition/interpolate.js","webpack:///./node_modules/d3-transition/src/transition/attr.js","webpack:///./node_modules/d3-transition/src/transition/attrTween.js","webpack:///./node_modules/d3-transition/src/transition/delay.js","webpack:///./node_modules/d3-transition/src/transition/duration.js","webpack:///./node_modules/d3-transition/src/transition/ease.js","webpack:///./node_modules/d3-transition/src/transition/easeVarying.js","webpack:///./node_modules/d3-transition/src/transition/filter.js","webpack:///./node_modules/d3-transition/src/transition/merge.js","webpack:///./node_modules/d3-transition/src/transition/on.js","webpack:///./node_modules/d3-transition/src/transition/remove.js","webpack:///./node_modules/d3-transition/src/transition/select.js","webpack:///./node_modules/d3-transition/src/transition/selectAll.js","webpack:///./node_modules/d3-transition/src/transition/selection.js","webpack:///./node_modules/d3-transition/src/transition/style.js","webpack:///./node_modules/d3-transition/src/transition/styleTween.js","webpack:///./node_modules/d3-transition/src/transition/text.js","webpack:///./node_modules/d3-transition/src/transition/textTween.js","webpack:///./node_modules/d3-transition/src/transition/transition.js","webpack:///./node_modules/d3-transition/src/transition/end.js","webpack:///./node_modules/d3-transition/src/transition/index.js","webpack:///./node_modules/d3-ease/src/cubic.js","webpack:///./node_modules/d3-transition/src/selection/transition.js","webpack:///./node_modules/d3-transition/src/selection/index.js","webpack:///./node_modules/d3-brush/src/brush.js","webpack:///./node_modules/d3-geo/src/identity.js","webpack:///./node_modules/d3-geo/src/stream.js","webpack:///./node_modules/d3-array/src/fsum.js","webpack:///./node_modules/d3-geo/src/math.js","webpack:///./node_modules/d3-geo/src/noop.js","webpack:///./node_modules/d3-geo/src/path/area.js","webpack:///./node_modules/d3-geo/src/path/bounds.js","webpack:///./node_modules/d3-geo/src/path/centroid.js","webpack:///./node_modules/d3-geo/src/path/context.js","webpack:///./node_modules/d3-geo/src/path/measure.js","webpack:///./node_modules/d3-geo/src/path/string.js","webpack:///./node_modules/d3-geo/src/path/index.js","webpack:///./node_modules/d3-geo/src/compose.js","webpack:///./node_modules/d3-geo/src/rotation.js","webpack:///./node_modules/d3-geo/src/clip/buffer.js","webpack:///./node_modules/d3-geo/src/pointEqual.js","webpack:///./node_modules/d3-geo/src/clip/rejoin.js","webpack:///./node_modules/d3-geo/src/cartesian.js","webpack:///./node_modules/d3-geo/src/polygonContains.js","webpack:///./node_modules/d3-array/src/merge.js","webpack:///./node_modules/d3-geo/src/clip/index.js","webpack:///./node_modules/d3-geo/src/clip/antimeridian.js","webpack:///./node_modules/d3-geo/src/circle.js","webpack:///./node_modules/d3-geo/src/clip/circle.js","webpack:///./node_modules/d3-geo/src/clip/line.js","webpack:///./node_modules/d3-geo/src/clip/rectangle.js","webpack:///./node_modules/d3-geo/src/transform.js","webpack:///./node_modules/d3-geo/src/projection/fit.js","webpack:///./node_modules/d3-geo/src/projection/resample.js","webpack:///./node_modules/d3-geo/src/projection/index.js","webpack:///./node_modules/d3-geo/src/projection/mercator.js","webpack:///./node_modules/d3-interpolate/src/zoom.js","webpack:///./node_modules/d3-zoom/src/transform.js","webpack:///./node_modules/d3-zoom/src/zoom.js","webpack:///./src/use/map.js","webpack:///./src/components/MeshMap.vue?13bb","webpack:///./node_modules/core-js/modules/es.array.slice.js"],"names":["toObject","toAbsoluteIndex","toLength","module","exports","value","O","this","length","argumentsLength","arguments","index","undefined","end","endPos","$","fails","isArray","isObject","createProperty","arraySpeciesCreate","arrayMethodHasSpeciesSupport","wellKnownSymbol","V8_VERSION","IS_CONCAT_SPREADABLE","MAX_SAFE_INTEGER","MAXIMUM_ALLOWED_INDEX_EXCEEDED","IS_CONCAT_SPREADABLE_SUPPORT","array","concat","SPECIES_SUPPORT","isConcatSpreadable","spreadable","FORCED","target","proto","forced","arg","i","k","len","E","A","n","TypeError","toInteger","HAS_SPECIES_SUPPORT","max","Math","min","MAXIMUM_ALLOWED_LENGTH_EXCEEDED","splice","start","deleteCount","insertCount","actualDeleteCount","from","to","actualStart","checkCorrectnessOfIteration","INCORRECT_ITERATION","iterable","Array","stat","fill","addToUnscopables","defineWellKnownSymbol","class","ref","text-anchor","x","y","viewBox","height","width","providerConnections","connection","key","d","renderConnection","style","markers","providerPoints","provider","name","originator","cx","cy","r","setTargetProvider","marker","isOrigin","current","transform","markerSet","$event","icon","_arrayLikeToArray","arr","arr2","_arrayWithoutHoles","arrayLikeToArray","_iterableToArray","iter","Symbol","iterator","Object","_unsupportedIterableToArray","o","minLen","prototype","toString","call","slice","constructor","test","_nonIterableSpread","_toConsumableArray","arrayWithoutHoles","iterableToArray","unsupportedIterableToArray","nonIterableSpread","noop","dispatch","t","_","Error","Dispatch","parseTypenames","typenames","types","trim","split","map","indexOf","hasOwnProperty","type","get","c","set","callback","push","on","typename","T","copy","that","args","apply","none","selector","querySelector","select","groups","_groups","m","subgroups","j","node","subnode","group","subgroup","__data__","Selection","_parents","querySelectorAll","arrayAll","selectorAll","parents","matches","childMatcher","find","childFind","match","children","childFirst","firstElementChild","filter","childrenFilter","selectAll","matcher","update","_enter","sparse","EnterNode","parent","datum","ownerDocument","namespaceURI","_next","_parent","appendChild","child","insertBefore","next","bindIndex","enter","exit","data","groupLength","dataLength","bindKey","keyValue","nodeByKeyValue","Map","keyValues","has","delete","bind","constant","enterGroup","updateGroup","exitGroup","previous","i0","i1","_exit","onenter","append","onupdate","onexit","remove","merge","order","selection","groups0","groups1","m0","m1","merges","group0","group1","compareDocumentPosition","parentNode","compareNode","a","b","compare","ascending","sortgroups","sortgroup","sort","NaN","size","xhtml","svg","xlink","xml","xmlns","prefix","namespaces","space","local","attrRemove","removeAttribute","attrRemoveNS","fullname","removeAttributeNS","attrConstant","setAttribute","attrConstantNS","setAttributeNS","attrFunction","v","attrFunctionNS","namespace","getAttributeNS","getAttribute","each","defaultView","document","styleRemove","removeProperty","styleConstant","priority","setProperty","styleFunction","styleValue","getPropertyValue","getComputedStyle","propertyRemove","propertyConstant","propertyFunction","classArray","string","classList","ClassList","_node","_names","classedAdd","names","list","add","classedRemove","classedTrue","classedFalse","classedFunction","join","contains","textRemove","textContent","textConstant","textFunction","htmlRemove","innerHTML","htmlConstant","htmlFunction","raise","nextSibling","lower","previousSibling","firstChild","creatorInherit","uri","documentElement","createElement","createElementNS","creatorFixed","create","creator","constantNull","before","removeChild","selection_cloneShallow","clone","cloneNode","selection_cloneDeep","deep","property","contextListener","listener","event","onRemove","__on","removeEventListener","options","onAdd","addEventListener","dispatchEvent","params","window","CustomEvent","createEvent","initEvent","bubbles","cancelable","detail","dispatchConstant","dispatchFunction","selection_select","selectChild","selectChildren","selection_filter","selection_data","selection_enter","selection_exit","selection_merge","nodes","selection_node","selection_size","empty","selection_empty","attr","classed","text","selection_text","html","selection_raise","selection_lower","insert","selection_remove","selection_datum","selection_on","selection_dispatch","factory","extend","definition","Color","darker","brighter","reI","reN","reP","reHex","reRgbInteger","RegExp","reRgbPercent","reRgbaInteger","reRgbaPercent","reHslPercent","reHslaPercent","named","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","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","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","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","color_formatHex","rgb","formatHex","color_formatHsl","hslConvert","formatHsl","color_formatRgb","formatRgb","format","l","toLowerCase","exec","parseInt","rgbn","Rgb","rgba","hsla","g","rgbConvert","opacity","rgb_formatHex","hex","rgb_formatRgb","isNaN","round","h","s","Hsl","hsl","hsl2rgb","m2","basis","t1","v0","v1","v2","v3","t2","t3","define","channels","assign","displayable","pow","values","floor","linear","exponential","gamma","nogamma","color","rgbGamma","rgbSpline","spline","colors","basisClosed","reA","reB","source","zero","one","taskHead","taskTail","am","bm","bs","bi","lastIndex","q","number","sourceEvent","currentTarget","ownerSVGElement","createSVGPoint","point","clientX","clientY","matrixTransform","getScreenCTM","inverse","getBoundingClientRect","rect","left","clientLeft","top","clientTop","pageX","pageY","timeout","interval","pokeDelay","clockLast","clockNow","clockSkew","clock","performance","now","Date","setFrame","requestAnimationFrame","f","setTimeout","clearNow","Timer","_call","_time","timer","delay","time","restart","timerFlush","e","wake","nap","poke","t0","Infinity","sleep","clearTimeout","clearInterval","setInterval","stop","elapsed","emptyOn","emptyTween","CREATED","SCHEDULED","STARTING","STARTED","RUNNING","ENDING","ENDED","schedules","__transition","id","tween","timing","duration","ease","state","init","schedule","self","tick","svgNode","active","interrupt","degrees","PI","identity","translateX","translateY","rotate","skewX","scaleX","scaleY","sqrt","atan2","atan","parseCss","DOMMatrix","WebKitCSSMatrix","isIdentity","decompose","parseSvg","baseVal","consolidate","matrix","interpolateTransform","parse","pxComma","pxParen","degParen","pop","translate","xa","ya","xb","yb","scale","interpolateTransformCss","interpolateTransformSvg","tweenRemove","tween0","tween1","tweenFunction","_id","tweenValue","transition","interpolate","value1","string00","interpolate0","string1","string0","string10","attrTween","attrInterpolate","attrInterpolateNS","attrTweenNS","_value","delayFunction","delayConstant","durationFunction","durationConstant","easeConstant","easeVarying","Transition","_name","every","onFunction","on0","on1","sit","removeFunction","inherit","styleNull","styleMaybeRemove","listener0","styleTween","styleInterpolate","textInterpolate","textTween","id0","id1","newId","Promise","resolve","reject","cancel","selection_prototype","cubicInOut","transition_select","transition_selectAll","transition_filter","transition_merge","transition_selection","transition_transition","transition_on","transition_attr","transition_attrTween","transition_style","transition_styleTween","transition_text","transition_textTween","transition_remove","transition_tween","transition_delay","transition_duration","transition_easeVarying","transition_end","defaultTiming","selection_interrupt","selection_transition","abs","number1","number2","streamGeometry","geometry","stream","streamGeometryType","streamObjectType","Feature","object","FeatureCollection","features","Sphere","sphere","Point","coordinates","MultiPoint","LineString","streamLine","MultiLineString","Polygon","streamPolygon","MultiPolygon","GeometryCollection","geometries","closed","coordinate","lineStart","lineEnd","polygonStart","polygonEnd","Adder","_partials","Float64Array","_n","p","hi","lo","epsilon","epsilon2","pi","halfPi","quarterPi","tau","radians","cos","exp","ceil","log","hypot","sin","sign","acos","asin","areaSum","areaRingSum","areaStream","areaRingStart","areaRingEnd","result","area","areaPointFirst","areaPoint","boundsStream","boundsPoint","bounds","X0","Y0","Z0","X1","Y1","Z1","X2","Y2","Z2","centroidStream","centroidPoint","centroidLineStart","centroidLineEnd","centroidRingStart","centroidRingEnd","centroid","centroidPointFirstLine","centroidPointLine","dx","dy","z","centroidPointFirstRing","centroidPointRing","PathContext","context","_context","_radius","pointRadius","_line","_point","closePath","moveTo","lineTo","arc","lengthRing","lengthSum","lengthStream","lengthPointFirst","lengthPoint","PathString","_string","radius","_circle","projectionStream","contextStream","path","measure","projection","compose","invert","rotationIdentity","lambda","phi","rotateRadians","deltaLambda","deltaPhi","deltaGamma","rotationLambda","rotationPhiGamma","forwardRotationLambda","rotation","cosDeltaPhi","sinDeltaPhi","cosDeltaGamma","sinDeltaGamma","cosPhi","forward","line","lines","rejoin","shift","Intersection","points","other","entry","subject","clip","segments","forEach","segment","p0","p1","pointEqual","compareIntersection","startInside","isSubject","cartesian","spherical","cartesianDot","cartesianCross","cartesianAddInPlace","cartesianScale","vector","cartesianNormalizeInPlace","longitude","sinPhi","normal","angle","winding","sum","polygon","ring","point0","lambda0","phi0","sinPhi0","cosPhi0","lambda1","sinPhi1","cosPhi1","point1","phi1","delta","absDelta","antimeridian","intersection","phiArc","flatten","arrays","sink","clipLine","ringBuffer","ringSink","polygonStarted","pointRing","ringStart","ringEnd","polygonContains","pointVisible","pointLine","clean","ringSegments","validSegment","clipAntimeridianLine","clipAntimeridianInterpolate","sign0","sign1","clipAntimeridianIntersect","sinLambda0Lambda1","direction","circleStream","cosRadius","sinRadius","step","circleRadius","cr","smallRadius","notHemisphere","visible","c0","v00","point2","code","intersect","two","pa","pb","n1","n2","n2n2","n1n2","determinant","c1","c2","n1xn2","B","u","w","uu","polar","meridian","q1","ax","ay","bx","by","x0","x1","y0","y1","clipMax","clipMin","clipRectangle","a1","corner","comparePoint","ca","cb","x__","y__","v__","x_","y_","v_","first","activeStream","bufferStream","clipStream","polygonInside","a0","b0","b1","cleanInside","linePoint","transformer","methods","TransformStream","fit","fitBounds","clipExtent","fitExtent","extent","fitSize","fitWidth","fitHeight","maxDepth","cosMinDistance","delta2","project","resampleNone","resampleLineTo","depth","d2","phi2","lambda2","x2","y2","dx2","dy2","dz","lambda00","x00","y00","a00","b00","c00","resampleStream","ringPoint","transformRadians","transformRotate","scaleTranslate","sx","sy","scaleTranslateRotate","alpha","cosAlpha","sinAlpha","ai","ci","fi","projectionMutator","projectAt","projectResample","projectTransform","projectRotateTransform","cache","cacheStream","theta","preclip","postclip","recenter","center","resample","reset","clipAngle","reflectX","reflectY","precision","mercatorRaw","mercatorProjection","reclip","cosh","sinh","tanh","zoom","S","ux0","uy0","w0","ux1","uy1","w1","rho","d1","rho4","rho2","r0","r1","coshr0","SQRT2","_1","_2","_4","zoomRho","Transform","applyX","applyY","location","invertX","invertY","rescaleX","domain","range","rescaleY","__zoom","useProviders","locations","getLocation","useMap","statesRef","mapRef","computed","d3","connections","_locations","currentMarker","targetLoc","renderStates","mapData","renderProviders","proj","latitude","pairs","func","pair","random","getProviderPoint","addMarker","providerPoint","dr","renderMarkers","preventDefault","startX","startY","markerDrag","markerStop","markerLeave","mouse","render","markerProvider","watch","setup","states","providers","expandDetails","loaded","getProvider","setTarget","clientWidth","clientHeight","toIndexedObject","SPECIES","nativeSlice","Constructor","fin"],"mappings":"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","file":"js/chunk-d3df6968.0c83f36f.js","sourcesContent":["'use strict';\nvar toObject = require('../internals/to-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toLength = require('../internals/to-length');\n\n// `Array.prototype.fill` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.fill\nmodule.exports = function fill(value /* , start = 0, end = @length */) {\n var O = toObject(this);\n var length = toLength(O.length);\n var argumentsLength = arguments.length;\n var index = toAbsoluteIndex(argumentsLength > 1 ? arguments[1] : undefined, length);\n var end = argumentsLength > 2 ? arguments[2] : undefined;\n var endPos = end === undefined ? length : toAbsoluteIndex(end, length);\n while (endPos > index) O[index++] = value;\n return O;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar isArray = require('../internals/is-array');\nvar isObject = require('../internals/is-object');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar createProperty = require('../internals/create-property');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable');\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;\nvar MAXIMUM_ALLOWED_INDEX_EXCEEDED = 'Maximum allowed index exceeded';\n\n// We can't use this feature detection in V8 since it causes\n// deoptimization and serious performance degradation\n// https://github.com/zloirock/core-js/issues/679\nvar IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION >= 51 || !fails(function () {\n var array = [];\n array[IS_CONCAT_SPREADABLE] = false;\n return array.concat()[0] !== array;\n});\n\nvar SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('concat');\n\nvar isConcatSpreadable = function (O) {\n if (!isObject(O)) return false;\n var spreadable = O[IS_CONCAT_SPREADABLE];\n return spreadable !== undefined ? !!spreadable : isArray(O);\n};\n\nvar FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !SPECIES_SUPPORT;\n\n// `Array.prototype.concat` method\n// https://tc39.es/ecma262/#sec-array.prototype.concat\n// with adding support of @@isConcatSpreadable and @@species\n$({ target: 'Array', proto: true, forced: FORCED }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n concat: function concat(arg) {\n var O = toObject(this);\n var A = arraySpeciesCreate(O, 0);\n var n = 0;\n var i, k, length, len, E;\n for (i = -1, length = arguments.length; i < length; i++) {\n E = i === -1 ? O : arguments[i];\n if (isConcatSpreadable(E)) {\n len = toLength(E.length);\n if (n + len > MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]);\n } else {\n if (n >= MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n createProperty(A, n++, E);\n }\n }\n A.length = n;\n return A;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toInteger = require('../internals/to-integer');\nvar toLength = require('../internals/to-length');\nvar toObject = require('../internals/to-object');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar createProperty = require('../internals/create-property');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('splice');\n\nvar max = Math.max;\nvar min = Math.min;\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;\nvar MAXIMUM_ALLOWED_LENGTH_EXCEEDED = 'Maximum allowed length exceeded';\n\n// `Array.prototype.splice` method\n// https://tc39.es/ecma262/#sec-array.prototype.splice\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n splice: function splice(start, deleteCount /* , ...items */) {\n var O = toObject(this);\n var len = toLength(O.length);\n var actualStart = toAbsoluteIndex(start, len);\n var argumentsLength = arguments.length;\n var insertCount, actualDeleteCount, A, k, from, to;\n if (argumentsLength === 0) {\n insertCount = actualDeleteCount = 0;\n } else if (argumentsLength === 1) {\n insertCount = 0;\n actualDeleteCount = len - actualStart;\n } else {\n insertCount = argumentsLength - 2;\n actualDeleteCount = min(max(toInteger(deleteCount), 0), len - actualStart);\n }\n if (len + insertCount - actualDeleteCount > MAX_SAFE_INTEGER) {\n throw TypeError(MAXIMUM_ALLOWED_LENGTH_EXCEEDED);\n }\n A = arraySpeciesCreate(O, actualDeleteCount);\n for (k = 0; k < actualDeleteCount; k++) {\n from = actualStart + k;\n if (from in O) createProperty(A, k, O[from]);\n }\n A.length = actualDeleteCount;\n if (insertCount < actualDeleteCount) {\n for (k = actualStart; k < len - actualDeleteCount; k++) {\n from = k + actualDeleteCount;\n to = k + insertCount;\n if (from in O) O[to] = O[from];\n else delete O[to];\n }\n for (k = len; k > len - actualDeleteCount + insertCount; k--) delete O[k - 1];\n } else if (insertCount > actualDeleteCount) {\n for (k = len - actualDeleteCount; k > actualStart; k--) {\n from = k + actualDeleteCount - 1;\n to = k + insertCount - 1;\n if (from in O) O[to] = O[from];\n else delete O[to];\n }\n }\n for (k = 0; k < insertCount; k++) {\n O[k + actualStart] = arguments[k + 2];\n }\n O.length = len - actualDeleteCount + insertCount;\n return A;\n }\n});\n","var $ = require('../internals/export');\nvar from = require('../internals/array-from');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\n\nvar INCORRECT_ITERATION = !checkCorrectnessOfIteration(function (iterable) {\n Array.from(iterable);\n});\n\n// `Array.from` method\n// https://tc39.es/ecma262/#sec-array.from\n$({ target: 'Array', stat: true, forced: INCORRECT_ITERATION }, {\n from: from\n});\n","var $ = require('../internals/export');\nvar fill = require('../internals/array-fill');\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// `Array.prototype.fill` method\n// https://tc39.es/ecma262/#sec-array.prototype.fill\n$({ target: 'Array', proto: true }, {\n fill: fill\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('fill');\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./MeshMap.vue?vue&type=style&index=0&id=63d3559b&lang=scss\"","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.iterator` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.iterator\ndefineWellKnownSymbol('iterator');\n","\n\n\n\n\n","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}","import arrayLikeToArray from \"../arrayLikeToArray/_index.mjs\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}","import arrayLikeToArray from \"../arrayLikeToArray/_index.mjs\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import arrayWithoutHoles from \"../arrayWithoutHoles/_index.mjs\";\nimport iterableToArray from \"../iterableToArray/_index.mjs\";\nimport unsupportedIterableToArray from \"../unsupportedIterableToArray/_index.mjs\";\nimport nonIterableSpread from \"../nonIterableSpread/_index.mjs\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","var noop = {value: () => {}};\n\nfunction dispatch() {\n for (var i = 0, n = arguments.length, _ = {}, t; i < n; ++i) {\n if (!(t = arguments[i] + \"\") || (t in _) || /[\\s.]/.test(t)) throw new Error(\"illegal type: \" + t);\n _[t] = [];\n }\n return new Dispatch(_);\n}\n\nfunction Dispatch(_) {\n this._ = _;\n}\n\nfunction parseTypenames(typenames, types) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n if (t && !types.hasOwnProperty(t)) throw new Error(\"unknown type: \" + t);\n return {type: t, name: name};\n });\n}\n\nDispatch.prototype = dispatch.prototype = {\n constructor: Dispatch,\n on: function(typename, callback) {\n var _ = this._,\n T = parseTypenames(typename + \"\", _),\n t,\n i = -1,\n n = T.length;\n\n // If no callback was specified, return the callback of the given type and name.\n if (arguments.length < 2) {\n while (++i < n) if ((t = (typename = T[i]).type) && (t = get(_[t], typename.name))) return t;\n return;\n }\n\n // If a type was specified, set the callback for the given type and name.\n // Otherwise, if a null callback was specified, remove callbacks of the given name.\n if (callback != null && typeof callback !== \"function\") throw new Error(\"invalid callback: \" + callback);\n while (++i < n) {\n if (t = (typename = T[i]).type) _[t] = set(_[t], typename.name, callback);\n else if (callback == null) for (t in _) _[t] = set(_[t], typename.name, null);\n }\n\n return this;\n },\n copy: function() {\n var copy = {}, _ = this._;\n for (var t in _) copy[t] = _[t].slice();\n return new Dispatch(copy);\n },\n call: function(type, that) {\n if ((n = arguments.length - 2) > 0) for (var args = new Array(n), i = 0, n, t; i < n; ++i) args[i] = arguments[i + 2];\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n },\n apply: function(type, that, args) {\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (var t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n }\n};\n\nfunction get(type, name) {\n for (var i = 0, n = type.length, c; i < n; ++i) {\n if ((c = type[i]).name === name) {\n return c.value;\n }\n }\n}\n\nfunction set(type, name, callback) {\n for (var i = 0, n = type.length; i < n; ++i) {\n if (type[i].name === name) {\n type[i] = noop, type = type.slice(0, i).concat(type.slice(i + 1));\n break;\n }\n }\n if (callback != null) type.push({name: name, value: callback});\n return type;\n}\n\nexport default dispatch;\n","function none() {}\n\nexport default function(selector) {\n return selector == null ? none : function() {\n return this.querySelector(selector);\n };\n}\n","import {Selection} from \"./index.js\";\nimport selector from \"../selector.js\";\n\nexport default function(select) {\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}\n","export default function(x) {\n return typeof x === \"object\" && \"length\" in x\n ? x // Array, TypedArray, NodeList, array-like\n : Array.from(x); // Map, Set, iterable, string, or anything else\n}\n","function empty() {\n return [];\n}\n\nexport default function(selector) {\n return selector == null ? empty : function() {\n return this.querySelectorAll(selector);\n };\n}\n","import {Selection} from \"./index.js\";\nimport array from \"../array.js\";\nimport selectorAll from \"../selectorAll.js\";\n\nfunction arrayAll(select) {\n return function() {\n var group = select.apply(this, arguments);\n return group == null ? [] : array(group);\n };\n}\n\nexport default function(select) {\n if (typeof select === \"function\") select = arrayAll(select);\n else select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n subgroups.push(select.call(node, node.__data__, i, group));\n parents.push(node);\n }\n }\n }\n\n return new Selection(subgroups, parents);\n}\n","export default function(selector) {\n return function() {\n return this.matches(selector);\n };\n}\n\nexport function childMatcher(selector) {\n return function(node) {\n return node.matches(selector);\n };\n}\n\n","import {childMatcher} from \"../matcher.js\";\n\nvar find = Array.prototype.find;\n\nfunction childFind(match) {\n return function() {\n return find.call(this.children, match);\n };\n}\n\nfunction childFirst() {\n return this.firstElementChild;\n}\n\nexport default function(match) {\n return this.select(match == null ? childFirst\n : childFind(typeof match === \"function\" ? match : childMatcher(match)));\n}\n","import {childMatcher} from \"../matcher.js\";\n\nvar filter = Array.prototype.filter;\n\nfunction children() {\n return this.children;\n}\n\nfunction childrenFilter(match) {\n return function() {\n return filter.call(this.children, match);\n };\n}\n\nexport default function(match) {\n return this.selectAll(match == null ? children\n : childrenFilter(typeof match === \"function\" ? match : childMatcher(match)));\n}\n","import {Selection} from \"./index.js\";\nimport matcher from \"../matcher.js\";\n\nexport default function(match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}\n","export default function(update) {\n return new Array(update.length);\n}\n","import sparse from \"./sparse.js\";\nimport {Selection} from \"./index.js\";\n\nexport default function() {\n return new Selection(this._enter || this._groups.map(sparse), this._parents);\n}\n\nexport function EnterNode(parent, datum) {\n this.ownerDocument = parent.ownerDocument;\n this.namespaceURI = parent.namespaceURI;\n this._next = null;\n this._parent = parent;\n this.__data__ = datum;\n}\n\nEnterNode.prototype = {\n constructor: EnterNode,\n appendChild: function(child) { return this._parent.insertBefore(child, this._next); },\n insertBefore: function(child, next) { return this._parent.insertBefore(child, next); },\n querySelector: function(selector) { return this._parent.querySelector(selector); },\n querySelectorAll: function(selector) { return this._parent.querySelectorAll(selector); }\n};\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","import {Selection} from \"./index.js\";\nimport {EnterNode} from \"./enter.js\";\nimport array from \"../array.js\";\nimport constant from \"../constant.js\";\n\nfunction bindIndex(parent, group, enter, update, exit, data) {\n var i = 0,\n node,\n groupLength = group.length,\n dataLength = data.length;\n\n // Put any non-null nodes that fit into update.\n // Put any null nodes into enter.\n // Put any remaining data into enter.\n for (; i < dataLength; ++i) {\n if (node = group[i]) {\n node.__data__ = data[i];\n update[i] = node;\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Put any non-null nodes that don’t fit into exit.\n for (; i < groupLength; ++i) {\n if (node = group[i]) {\n exit[i] = node;\n }\n }\n}\n\nfunction bindKey(parent, group, enter, update, exit, data, key) {\n var i,\n node,\n nodeByKeyValue = new Map,\n groupLength = group.length,\n dataLength = data.length,\n keyValues = new Array(groupLength),\n keyValue;\n\n // Compute the key for each node.\n // If multiple nodes have the same key, the duplicates are added to exit.\n for (i = 0; i < groupLength; ++i) {\n if (node = group[i]) {\n keyValues[i] = keyValue = key.call(node, node.__data__, i, group) + \"\";\n if (nodeByKeyValue.has(keyValue)) {\n exit[i] = node;\n } else {\n nodeByKeyValue.set(keyValue, node);\n }\n }\n }\n\n // Compute the key for each datum.\n // If there a node associated with this key, join and add it to update.\n // If there is not (or the key is a duplicate), add it to enter.\n for (i = 0; i < dataLength; ++i) {\n keyValue = key.call(parent, data[i], i, data) + \"\";\n if (node = nodeByKeyValue.get(keyValue)) {\n update[i] = node;\n node.__data__ = data[i];\n nodeByKeyValue.delete(keyValue);\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Add any remaining nodes that were not bound to data to exit.\n for (i = 0; i < groupLength; ++i) {\n if ((node = group[i]) && (nodeByKeyValue.get(keyValues[i]) === node)) {\n exit[i] = node;\n }\n }\n}\n\nfunction datum(node) {\n return node.__data__;\n}\n\nexport default function(value, key) {\n if (!arguments.length) return Array.from(this, datum);\n\n var bind = key ? bindKey : bindIndex,\n parents = this._parents,\n groups = this._groups;\n\n if (typeof value !== \"function\") value = constant(value);\n\n for (var m = groups.length, update = new Array(m), enter = new Array(m), exit = new Array(m), j = 0; j < m; ++j) {\n var parent = parents[j],\n group = groups[j],\n groupLength = group.length,\n data = array(value.call(parent, parent && parent.__data__, j, parents)),\n dataLength = data.length,\n enterGroup = enter[j] = new Array(dataLength),\n updateGroup = update[j] = new Array(dataLength),\n exitGroup = exit[j] = new Array(groupLength);\n\n bind(parent, group, enterGroup, updateGroup, exitGroup, data, key);\n\n // Now connect the enter nodes to their following update node, such that\n // appendChild can insert the materialized enter node before this node,\n // rather than at the end of the parent node.\n for (var i0 = 0, i1 = 0, previous, next; i0 < dataLength; ++i0) {\n if (previous = enterGroup[i0]) {\n if (i0 >= i1) i1 = i0 + 1;\n while (!(next = updateGroup[i1]) && ++i1 < dataLength);\n previous._next = next || null;\n }\n }\n }\n\n update = new Selection(update, parents);\n update._enter = enter;\n update._exit = exit;\n return update;\n}\n","import sparse from \"./sparse.js\";\nimport {Selection} from \"./index.js\";\n\nexport default function() {\n return new Selection(this._exit || this._groups.map(sparse), this._parents);\n}\n","export default function(onenter, onupdate, onexit) {\n var enter = this.enter(), update = this, exit = this.exit();\n enter = typeof onenter === \"function\" ? onenter(enter) : enter.append(onenter + \"\");\n if (onupdate != null) update = onupdate(update);\n if (onexit == null) exit.remove(); else onexit(exit);\n return enter && update ? enter.merge(update).order() : update;\n}\n","import {Selection} from \"./index.js\";\n\nexport default function(selection) {\n if (!(selection instanceof Selection)) throw new Error(\"invalid merge\");\n\n for (var groups0 = this._groups, groups1 = selection._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Selection(merges, this._parents);\n}\n","export default function() {\n\n for (var groups = this._groups, j = -1, m = groups.length; ++j < m;) {\n for (var group = groups[j], i = group.length - 1, next = group[i], node; --i >= 0;) {\n if (node = group[i]) {\n if (next && node.compareDocumentPosition(next) ^ 4) next.parentNode.insertBefore(node, next);\n next = node;\n }\n }\n }\n\n return this;\n}\n","import {Selection} from \"./index.js\";\n\nexport default function(compare) {\n if (!compare) compare = ascending;\n\n function compareNode(a, b) {\n return a && b ? compare(a.__data__, b.__data__) : !a - !b;\n }\n\n for (var groups = this._groups, m = groups.length, sortgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, sortgroup = sortgroups[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n sortgroup[i] = node;\n }\n }\n sortgroup.sort(compareNode);\n }\n\n return new Selection(sortgroups, this._parents).order();\n}\n\nfunction ascending(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","export default function() {\n var callback = arguments[0];\n arguments[0] = this;\n callback.apply(null, arguments);\n return this;\n}\n","export default function() {\n return Array.from(this);\n}\n","export default function() {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length; i < n; ++i) {\n var node = group[i];\n if (node) return node;\n }\n }\n\n return null;\n}\n","export default function() {\n let size = 0;\n for (const node of this) ++size; // eslint-disable-line no-unused-vars\n return size;\n}\n","export default function() {\n return !this.node();\n}\n","export default function(callback) {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i]) callback.call(node, node.__data__, i, group);\n }\n }\n\n return this;\n}\n","export var xhtml = \"http://www.w3.org/1999/xhtml\";\n\nexport default {\n svg: \"http://www.w3.org/2000/svg\",\n xhtml: xhtml,\n xlink: \"http://www.w3.org/1999/xlink\",\n xml: \"http://www.w3.org/XML/1998/namespace\",\n xmlns: \"http://www.w3.org/2000/xmlns/\"\n};\n","import namespaces from \"./namespaces.js\";\n\nexport default function(name) {\n var prefix = name += \"\", i = prefix.indexOf(\":\");\n if (i >= 0 && (prefix = name.slice(0, i)) !== \"xmlns\") name = name.slice(i + 1);\n return namespaces.hasOwnProperty(prefix) ? {space: namespaces[prefix], local: name} : name; // eslint-disable-line no-prototype-builtins\n}\n","import namespace from \"../namespace.js\";\n\nfunction attrRemove(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, value) {\n return function() {\n this.setAttribute(name, value);\n };\n}\n\nfunction attrConstantNS(fullname, value) {\n return function() {\n this.setAttributeNS(fullname.space, fullname.local, value);\n };\n}\n\nfunction attrFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttribute(name);\n else this.setAttribute(name, v);\n };\n}\n\nfunction attrFunctionNS(fullname, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttributeNS(fullname.space, fullname.local);\n else this.setAttributeNS(fullname.space, fullname.local, v);\n };\n}\n\nexport default function(name, value) {\n var fullname = namespace(name);\n\n if (arguments.length < 2) {\n var node = this.node();\n return fullname.local\n ? node.getAttributeNS(fullname.space, fullname.local)\n : node.getAttribute(fullname);\n }\n\n return this.each((value == null\n ? (fullname.local ? attrRemoveNS : attrRemove) : (typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS : attrFunction)\n : (fullname.local ? attrConstantNS : attrConstant)))(fullname, value));\n}\n","export default function(node) {\n return (node.ownerDocument && node.ownerDocument.defaultView) // node is a Node\n || (node.document && node) // node is a Window\n || node.defaultView; // node is a Document\n}\n","import defaultView from \"../window.js\";\n\nfunction styleRemove(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, value, priority) {\n return function() {\n this.style.setProperty(name, value, priority);\n };\n}\n\nfunction styleFunction(name, value, priority) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.style.removeProperty(name);\n else this.style.setProperty(name, v, priority);\n };\n}\n\nexport default function(name, value, priority) {\n return arguments.length > 1\n ? this.each((value == null\n ? styleRemove : typeof value === \"function\"\n ? styleFunction\n : styleConstant)(name, value, priority == null ? \"\" : priority))\n : styleValue(this.node(), name);\n}\n\nexport function styleValue(node, name) {\n return node.style.getPropertyValue(name)\n || defaultView(node).getComputedStyle(node, null).getPropertyValue(name);\n}\n","function propertyRemove(name) {\n return function() {\n delete this[name];\n };\n}\n\nfunction propertyConstant(name, value) {\n return function() {\n this[name] = value;\n };\n}\n\nfunction propertyFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) delete this[name];\n else this[name] = v;\n };\n}\n\nexport default function(name, value) {\n return arguments.length > 1\n ? this.each((value == null\n ? propertyRemove : typeof value === \"function\"\n ? propertyFunction\n : propertyConstant)(name, value))\n : this.node()[name];\n}\n","function classArray(string) {\n return string.trim().split(/^|\\s+/);\n}\n\nfunction classList(node) {\n return node.classList || new ClassList(node);\n}\n\nfunction ClassList(node) {\n this._node = node;\n this._names = classArray(node.getAttribute(\"class\") || \"\");\n}\n\nClassList.prototype = {\n add: function(name) {\n var i = this._names.indexOf(name);\n if (i < 0) {\n this._names.push(name);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n remove: function(name) {\n var i = this._names.indexOf(name);\n if (i >= 0) {\n this._names.splice(i, 1);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n contains: function(name) {\n return this._names.indexOf(name) >= 0;\n }\n};\n\nfunction classedAdd(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.add(names[i]);\n}\n\nfunction classedRemove(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.remove(names[i]);\n}\n\nfunction classedTrue(names) {\n return function() {\n classedAdd(this, names);\n };\n}\n\nfunction classedFalse(names) {\n return function() {\n classedRemove(this, names);\n };\n}\n\nfunction classedFunction(names, value) {\n return function() {\n (value.apply(this, arguments) ? classedAdd : classedRemove)(this, names);\n };\n}\n\nexport default function(name, value) {\n var names = classArray(name + \"\");\n\n if (arguments.length < 2) {\n var list = classList(this.node()), i = -1, n = names.length;\n while (++i < n) if (!list.contains(names[i])) return false;\n return true;\n }\n\n return this.each((typeof value === \"function\"\n ? classedFunction : value\n ? classedTrue\n : classedFalse)(names, value));\n}\n","function textRemove() {\n this.textContent = \"\";\n}\n\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.textContent = v == null ? \"\" : v;\n };\n}\n\nexport default function(value) {\n return arguments.length\n ? this.each(value == null\n ? textRemove : (typeof value === \"function\"\n ? textFunction\n : textConstant)(value))\n : this.node().textContent;\n}\n","function htmlRemove() {\n this.innerHTML = \"\";\n}\n\nfunction htmlConstant(value) {\n return function() {\n this.innerHTML = value;\n };\n}\n\nfunction htmlFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.innerHTML = v == null ? \"\" : v;\n };\n}\n\nexport default function(value) {\n return arguments.length\n ? this.each(value == null\n ? htmlRemove : (typeof value === \"function\"\n ? htmlFunction\n : htmlConstant)(value))\n : this.node().innerHTML;\n}\n","function raise() {\n if (this.nextSibling) this.parentNode.appendChild(this);\n}\n\nexport default function() {\n return this.each(raise);\n}\n","function lower() {\n if (this.previousSibling) this.parentNode.insertBefore(this, this.parentNode.firstChild);\n}\n\nexport default function() {\n return this.each(lower);\n}\n","import namespace from \"./namespace.js\";\nimport {xhtml} from \"./namespaces.js\";\n\nfunction creatorInherit(name) {\n return function() {\n var document = this.ownerDocument,\n uri = this.namespaceURI;\n return uri === xhtml && document.documentElement.namespaceURI === xhtml\n ? document.createElement(name)\n : document.createElementNS(uri, name);\n };\n}\n\nfunction creatorFixed(fullname) {\n return function() {\n return this.ownerDocument.createElementNS(fullname.space, fullname.local);\n };\n}\n\nexport default function(name) {\n var fullname = namespace(name);\n return (fullname.local\n ? creatorFixed\n : creatorInherit)(fullname);\n}\n","import creator from \"../creator.js\";\n\nexport default function(name) {\n var create = typeof name === \"function\" ? name : creator(name);\n return this.select(function() {\n return this.appendChild(create.apply(this, arguments));\n });\n}\n","import creator from \"../creator.js\";\nimport selector from \"../selector.js\";\n\nfunction constantNull() {\n return null;\n}\n\nexport default function(name, before) {\n var create = typeof name === \"function\" ? name : creator(name),\n select = before == null ? constantNull : typeof before === \"function\" ? before : selector(before);\n return this.select(function() {\n return this.insertBefore(create.apply(this, arguments), select.apply(this, arguments) || null);\n });\n}\n","function remove() {\n var parent = this.parentNode;\n if (parent) parent.removeChild(this);\n}\n\nexport default function() {\n return this.each(remove);\n}\n","function selection_cloneShallow() {\n var clone = this.cloneNode(false), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nfunction selection_cloneDeep() {\n var clone = this.cloneNode(true), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nexport default function(deep) {\n return this.select(deep ? selection_cloneDeep : selection_cloneShallow);\n}\n","export default function(value) {\n return arguments.length\n ? this.property(\"__data__\", value)\n : this.node().__data__;\n}\n","function contextListener(listener) {\n return function(event) {\n listener.call(this, event, this.__data__);\n };\n}\n\nfunction parseTypenames(typenames) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n return {type: t, name: name};\n });\n}\n\nfunction onRemove(typename) {\n return function() {\n var on = this.__on;\n if (!on) return;\n for (var j = 0, i = -1, m = on.length, o; j < m; ++j) {\n if (o = on[j], (!typename.type || o.type === typename.type) && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.options);\n } else {\n on[++i] = o;\n }\n }\n if (++i) on.length = i;\n else delete this.__on;\n };\n}\n\nfunction onAdd(typename, value, options) {\n return function() {\n var on = this.__on, o, listener = contextListener(value);\n if (on) for (var j = 0, m = on.length; j < m; ++j) {\n if ((o = on[j]).type === typename.type && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.options);\n this.addEventListener(o.type, o.listener = listener, o.options = options);\n o.value = value;\n return;\n }\n }\n this.addEventListener(typename.type, listener, options);\n o = {type: typename.type, name: typename.name, value: value, listener: listener, options: options};\n if (!on) this.__on = [o];\n else on.push(o);\n };\n}\n\nexport default function(typename, value, options) {\n var typenames = parseTypenames(typename + \"\"), i, n = typenames.length, t;\n\n if (arguments.length < 2) {\n var on = this.node().__on;\n if (on) for (var j = 0, m = on.length, o; j < m; ++j) {\n for (i = 0, o = on[j]; i < n; ++i) {\n if ((t = typenames[i]).type === o.type && t.name === o.name) {\n return o.value;\n }\n }\n }\n return;\n }\n\n on = value ? onAdd : onRemove;\n for (i = 0; i < n; ++i) this.each(on(typenames[i], value, options));\n return this;\n}\n","import defaultView from \"../window.js\";\n\nfunction dispatchEvent(node, type, params) {\n var window = defaultView(node),\n event = window.CustomEvent;\n\n if (typeof event === \"function\") {\n event = new event(type, params);\n } else {\n event = window.document.createEvent(\"Event\");\n if (params) event.initEvent(type, params.bubbles, params.cancelable), event.detail = params.detail;\n else event.initEvent(type, false, false);\n }\n\n node.dispatchEvent(event);\n}\n\nfunction dispatchConstant(type, params) {\n return function() {\n return dispatchEvent(this, type, params);\n };\n}\n\nfunction dispatchFunction(type, params) {\n return function() {\n return dispatchEvent(this, type, params.apply(this, arguments));\n };\n}\n\nexport default function(type, params) {\n return this.each((typeof params === \"function\"\n ? dispatchFunction\n : dispatchConstant)(type, params));\n}\n","export default function*() {\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i]) yield node;\n }\n }\n}\n","import selection_select from \"./select.js\";\nimport selection_selectAll from \"./selectAll.js\";\nimport selection_selectChild from \"./selectChild.js\";\nimport selection_selectChildren from \"./selectChildren.js\";\nimport selection_filter from \"./filter.js\";\nimport selection_data from \"./data.js\";\nimport selection_enter from \"./enter.js\";\nimport selection_exit from \"./exit.js\";\nimport selection_join from \"./join.js\";\nimport selection_merge from \"./merge.js\";\nimport selection_order from \"./order.js\";\nimport selection_sort from \"./sort.js\";\nimport selection_call from \"./call.js\";\nimport selection_nodes from \"./nodes.js\";\nimport selection_node from \"./node.js\";\nimport selection_size from \"./size.js\";\nimport selection_empty from \"./empty.js\";\nimport selection_each from \"./each.js\";\nimport selection_attr from \"./attr.js\";\nimport selection_style from \"./style.js\";\nimport selection_property from \"./property.js\";\nimport selection_classed from \"./classed.js\";\nimport selection_text from \"./text.js\";\nimport selection_html from \"./html.js\";\nimport selection_raise from \"./raise.js\";\nimport selection_lower from \"./lower.js\";\nimport selection_append from \"./append.js\";\nimport selection_insert from \"./insert.js\";\nimport selection_remove from \"./remove.js\";\nimport selection_clone from \"./clone.js\";\nimport selection_datum from \"./datum.js\";\nimport selection_on from \"./on.js\";\nimport selection_dispatch from \"./dispatch.js\";\nimport selection_iterator from \"./iterator.js\";\n\nexport var root = [null];\n\nexport function Selection(groups, parents) {\n this._groups = groups;\n this._parents = parents;\n}\n\nfunction selection() {\n return new Selection([[document.documentElement]], root);\n}\n\nfunction selection_selection() {\n return this;\n}\n\nSelection.prototype = selection.prototype = {\n constructor: Selection,\n select: selection_select,\n selectAll: selection_selectAll,\n selectChild: selection_selectChild,\n selectChildren: selection_selectChildren,\n filter: selection_filter,\n data: selection_data,\n enter: selection_enter,\n exit: selection_exit,\n join: selection_join,\n merge: selection_merge,\n selection: selection_selection,\n order: selection_order,\n sort: selection_sort,\n call: selection_call,\n nodes: selection_nodes,\n node: selection_node,\n size: selection_size,\n empty: selection_empty,\n each: selection_each,\n attr: selection_attr,\n style: selection_style,\n property: selection_property,\n classed: selection_classed,\n text: selection_text,\n html: selection_html,\n raise: selection_raise,\n lower: selection_lower,\n append: selection_append,\n insert: selection_insert,\n remove: selection_remove,\n clone: selection_clone,\n datum: selection_datum,\n on: selection_on,\n dispatch: selection_dispatch,\n [Symbol.iterator]: selection_iterator\n};\n\nexport default selection;\n","import {Selection, root} from \"./selection/index.js\";\n\nexport default function(selector) {\n return typeof selector === \"string\"\n ? new Selection([[document.querySelector(selector)]], [document.documentElement])\n : new Selection([[selector]], root);\n}\n","export default function(constructor, factory, prototype) {\n constructor.prototype = factory.prototype = prototype;\n prototype.constructor = constructor;\n}\n\nexport function extend(parent, definition) {\n var prototype = Object.create(parent.prototype);\n for (var key in definition) prototype[key] = definition[key];\n return prototype;\n}\n","import define, {extend} from \"./define.js\";\n\nexport function Color() {}\n\nexport var darker = 0.7;\nexport var brighter = 1 / darker;\n\nvar reI = \"\\\\s*([+-]?\\\\d+)\\\\s*\",\n reN = \"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",\n reP = \"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",\n reHex = /^#([0-9a-f]{3,8})$/,\n reRgbInteger = new RegExp(\"^rgb\\\\(\" + [reI, reI, reI] + \"\\\\)$\"),\n reRgbPercent = new RegExp(\"^rgb\\\\(\" + [reP, reP, reP] + \"\\\\)$\"),\n reRgbaInteger = new RegExp(\"^rgba\\\\(\" + [reI, reI, reI, reN] + \"\\\\)$\"),\n reRgbaPercent = new RegExp(\"^rgba\\\\(\" + [reP, reP, reP, reN] + \"\\\\)$\"),\n reHslPercent = new RegExp(\"^hsl\\\\(\" + [reN, reP, reP] + \"\\\\)$\"),\n reHslaPercent = new RegExp(\"^hsla\\\\(\" + [reN, reP, reP, reN] + \"\\\\)$\");\n\nvar named = {\n aliceblue: 0xf0f8ff,\n antiquewhite: 0xfaebd7,\n aqua: 0x00ffff,\n aquamarine: 0x7fffd4,\n azure: 0xf0ffff,\n beige: 0xf5f5dc,\n bisque: 0xffe4c4,\n black: 0x000000,\n blanchedalmond: 0xffebcd,\n blue: 0x0000ff,\n blueviolet: 0x8a2be2,\n brown: 0xa52a2a,\n burlywood: 0xdeb887,\n cadetblue: 0x5f9ea0,\n chartreuse: 0x7fff00,\n chocolate: 0xd2691e,\n coral: 0xff7f50,\n cornflowerblue: 0x6495ed,\n cornsilk: 0xfff8dc,\n crimson: 0xdc143c,\n cyan: 0x00ffff,\n darkblue: 0x00008b,\n darkcyan: 0x008b8b,\n darkgoldenrod: 0xb8860b,\n darkgray: 0xa9a9a9,\n darkgreen: 0x006400,\n darkgrey: 0xa9a9a9,\n darkkhaki: 0xbdb76b,\n darkmagenta: 0x8b008b,\n darkolivegreen: 0x556b2f,\n darkorange: 0xff8c00,\n darkorchid: 0x9932cc,\n darkred: 0x8b0000,\n darksalmon: 0xe9967a,\n darkseagreen: 0x8fbc8f,\n darkslateblue: 0x483d8b,\n darkslategray: 0x2f4f4f,\n darkslategrey: 0x2f4f4f,\n darkturquoise: 0x00ced1,\n darkviolet: 0x9400d3,\n deeppink: 0xff1493,\n deepskyblue: 0x00bfff,\n dimgray: 0x696969,\n dimgrey: 0x696969,\n dodgerblue: 0x1e90ff,\n firebrick: 0xb22222,\n floralwhite: 0xfffaf0,\n forestgreen: 0x228b22,\n fuchsia: 0xff00ff,\n gainsboro: 0xdcdcdc,\n ghostwhite: 0xf8f8ff,\n gold: 0xffd700,\n goldenrod: 0xdaa520,\n gray: 0x808080,\n green: 0x008000,\n greenyellow: 0xadff2f,\n grey: 0x808080,\n honeydew: 0xf0fff0,\n hotpink: 0xff69b4,\n indianred: 0xcd5c5c,\n indigo: 0x4b0082,\n ivory: 0xfffff0,\n khaki: 0xf0e68c,\n lavender: 0xe6e6fa,\n lavenderblush: 0xfff0f5,\n lawngreen: 0x7cfc00,\n lemonchiffon: 0xfffacd,\n lightblue: 0xadd8e6,\n lightcoral: 0xf08080,\n lightcyan: 0xe0ffff,\n lightgoldenrodyellow: 0xfafad2,\n lightgray: 0xd3d3d3,\n lightgreen: 0x90ee90,\n lightgrey: 0xd3d3d3,\n lightpink: 0xffb6c1,\n lightsalmon: 0xffa07a,\n lightseagreen: 0x20b2aa,\n lightskyblue: 0x87cefa,\n lightslategray: 0x778899,\n lightslategrey: 0x778899,\n lightsteelblue: 0xb0c4de,\n lightyellow: 0xffffe0,\n lime: 0x00ff00,\n limegreen: 0x32cd32,\n linen: 0xfaf0e6,\n magenta: 0xff00ff,\n maroon: 0x800000,\n mediumaquamarine: 0x66cdaa,\n mediumblue: 0x0000cd,\n mediumorchid: 0xba55d3,\n mediumpurple: 0x9370db,\n mediumseagreen: 0x3cb371,\n mediumslateblue: 0x7b68ee,\n mediumspringgreen: 0x00fa9a,\n mediumturquoise: 0x48d1cc,\n mediumvioletred: 0xc71585,\n midnightblue: 0x191970,\n mintcream: 0xf5fffa,\n mistyrose: 0xffe4e1,\n moccasin: 0xffe4b5,\n navajowhite: 0xffdead,\n navy: 0x000080,\n oldlace: 0xfdf5e6,\n olive: 0x808000,\n olivedrab: 0x6b8e23,\n orange: 0xffa500,\n orangered: 0xff4500,\n orchid: 0xda70d6,\n palegoldenrod: 0xeee8aa,\n palegreen: 0x98fb98,\n paleturquoise: 0xafeeee,\n palevioletred: 0xdb7093,\n papayawhip: 0xffefd5,\n peachpuff: 0xffdab9,\n peru: 0xcd853f,\n pink: 0xffc0cb,\n plum: 0xdda0dd,\n powderblue: 0xb0e0e6,\n purple: 0x800080,\n rebeccapurple: 0x663399,\n red: 0xff0000,\n rosybrown: 0xbc8f8f,\n royalblue: 0x4169e1,\n saddlebrown: 0x8b4513,\n salmon: 0xfa8072,\n sandybrown: 0xf4a460,\n seagreen: 0x2e8b57,\n seashell: 0xfff5ee,\n sienna: 0xa0522d,\n silver: 0xc0c0c0,\n skyblue: 0x87ceeb,\n slateblue: 0x6a5acd,\n slategray: 0x708090,\n slategrey: 0x708090,\n snow: 0xfffafa,\n springgreen: 0x00ff7f,\n steelblue: 0x4682b4,\n tan: 0xd2b48c,\n teal: 0x008080,\n thistle: 0xd8bfd8,\n tomato: 0xff6347,\n turquoise: 0x40e0d0,\n violet: 0xee82ee,\n wheat: 0xf5deb3,\n white: 0xffffff,\n whitesmoke: 0xf5f5f5,\n yellow: 0xffff00,\n yellowgreen: 0x9acd32\n};\n\ndefine(Color, color, {\n copy: function(channels) {\n return Object.assign(new this.constructor, this, channels);\n },\n displayable: function() {\n return this.rgb().displayable();\n },\n hex: color_formatHex, // Deprecated! Use color.formatHex.\n formatHex: color_formatHex,\n formatHsl: color_formatHsl,\n formatRgb: color_formatRgb,\n toString: color_formatRgb\n});\n\nfunction color_formatHex() {\n return this.rgb().formatHex();\n}\n\nfunction color_formatHsl() {\n return hslConvert(this).formatHsl();\n}\n\nfunction color_formatRgb() {\n return this.rgb().formatRgb();\n}\n\nexport default function color(format) {\n var m, l;\n format = (format + \"\").trim().toLowerCase();\n return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) // #ff0000\n : l === 3 ? new Rgb((m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1) // #f00\n : l === 8 ? rgba(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000\n : l === 4 ? rgba((m >> 12 & 0xf) | (m >> 8 & 0xf0), (m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), (((m & 0xf) << 4) | (m & 0xf)) / 0xff) // #f000\n : null) // invalid hex\n : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)\n : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)\n : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)\n : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)\n : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)\n : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)\n : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins\n : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0)\n : null;\n}\n\nfunction rgbn(n) {\n return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);\n}\n\nfunction rgba(r, g, b, a) {\n if (a <= 0) r = g = b = NaN;\n return new Rgb(r, g, b, a);\n}\n\nexport function rgbConvert(o) {\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Rgb;\n o = o.rgb();\n return new Rgb(o.r, o.g, o.b, o.opacity);\n}\n\nexport function rgb(r, g, b, opacity) {\n return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n}\n\nexport function Rgb(r, g, b, opacity) {\n this.r = +r;\n this.g = +g;\n this.b = +b;\n this.opacity = +opacity;\n}\n\ndefine(Rgb, rgb, extend(Color, {\n brighter: function(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n darker: function(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n rgb: function() {\n return this;\n },\n displayable: function() {\n return (-0.5 <= this.r && this.r < 255.5)\n && (-0.5 <= this.g && this.g < 255.5)\n && (-0.5 <= this.b && this.b < 255.5)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n hex: rgb_formatHex, // Deprecated! Use color.formatHex.\n formatHex: rgb_formatHex,\n formatRgb: rgb_formatRgb,\n toString: rgb_formatRgb\n}));\n\nfunction rgb_formatHex() {\n return \"#\" + hex(this.r) + hex(this.g) + hex(this.b);\n}\n\nfunction rgb_formatRgb() {\n var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n return (a === 1 ? \"rgb(\" : \"rgba(\")\n + Math.max(0, Math.min(255, Math.round(this.r) || 0)) + \", \"\n + Math.max(0, Math.min(255, Math.round(this.g) || 0)) + \", \"\n + Math.max(0, Math.min(255, Math.round(this.b) || 0))\n + (a === 1 ? \")\" : \", \" + a + \")\");\n}\n\nfunction hex(value) {\n value = Math.max(0, Math.min(255, Math.round(value) || 0));\n return (value < 16 ? \"0\" : \"\") + value.toString(16);\n}\n\nfunction hsla(h, s, l, a) {\n if (a <= 0) h = s = l = NaN;\n else if (l <= 0 || l >= 1) h = s = NaN;\n else if (s <= 0) h = NaN;\n return new Hsl(h, s, l, a);\n}\n\nexport function hslConvert(o) {\n if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Hsl;\n if (o instanceof Hsl) return o;\n o = o.rgb();\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n min = Math.min(r, g, b),\n max = Math.max(r, g, b),\n h = NaN,\n s = max - min,\n l = (max + min) / 2;\n if (s) {\n if (r === max) h = (g - b) / s + (g < b) * 6;\n else if (g === max) h = (b - r) / s + 2;\n else h = (r - g) / s + 4;\n s /= l < 0.5 ? max + min : 2 - max - min;\n h *= 60;\n } else {\n s = l > 0 && l < 1 ? 0 : h;\n }\n return new Hsl(h, s, l, o.opacity);\n}\n\nexport function hsl(h, s, l, opacity) {\n return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);\n}\n\nfunction Hsl(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Hsl, hsl, extend(Color, {\n brighter: function(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n darker: function(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n rgb: function() {\n var h = this.h % 360 + (this.h < 0) * 360,\n s = isNaN(h) || isNaN(this.s) ? 0 : this.s,\n l = this.l,\n m2 = l + (l < 0.5 ? l : 1 - l) * s,\n m1 = 2 * l - m2;\n return new Rgb(\n hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),\n hsl2rgb(h, m1, m2),\n hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),\n this.opacity\n );\n },\n displayable: function() {\n return (0 <= this.s && this.s <= 1 || isNaN(this.s))\n && (0 <= this.l && this.l <= 1)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n formatHsl: function() {\n var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n return (a === 1 ? \"hsl(\" : \"hsla(\")\n + (this.h || 0) + \", \"\n + (this.s || 0) * 100 + \"%, \"\n + (this.l || 0) * 100 + \"%\"\n + (a === 1 ? \")\" : \", \" + a + \")\");\n }\n}));\n\n/* From FvD 13.37, CSS Color Module Level 3 */\nfunction hsl2rgb(h, m1, m2) {\n return (h < 60 ? m1 + (m2 - m1) * h / 60\n : h < 180 ? m2\n : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60\n : m1) * 255;\n}\n","export function basis(t1, v0, v1, v2, v3) {\n var t2 = t1 * t1, t3 = t2 * t1;\n return ((1 - 3 * t1 + 3 * t2 - t3) * v0\n + (4 - 6 * t2 + 3 * t3) * v1\n + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2\n + t3 * v3) / 6;\n}\n\nexport default function(values) {\n var n = values.length - 1;\n return function(t) {\n var i = t <= 0 ? (t = 0) : t >= 1 ? (t = 1, n - 1) : Math.floor(t * n),\n v1 = values[i],\n v2 = values[i + 1],\n v0 = i > 0 ? values[i - 1] : 2 * v1 - v2,\n v3 = i < n - 1 ? values[i + 2] : 2 * v2 - v1;\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n","import {basis} from \"./basis.js\";\n\nexport default function(values) {\n var n = values.length;\n return function(t) {\n var i = Math.floor(((t %= 1) < 0 ? ++t : t) * n),\n v0 = values[(i + n - 1) % n],\n v1 = values[i % n],\n v2 = values[(i + 1) % n],\n v3 = values[(i + 2) % n];\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n","export default x => () => x;\n","import constant from \"./constant.js\";\n\nfunction linear(a, d) {\n return function(t) {\n return a + t * d;\n };\n}\n\nfunction exponential(a, b, y) {\n return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) {\n return Math.pow(a + t * b, y);\n };\n}\n\nexport function hue(a, b) {\n var d = b - a;\n return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant(isNaN(a) ? b : a);\n}\n\nexport function gamma(y) {\n return (y = +y) === 1 ? nogamma : function(a, b) {\n return b - a ? exponential(a, b, y) : constant(isNaN(a) ? b : a);\n };\n}\n\nexport default function nogamma(a, b) {\n var d = b - a;\n return d ? linear(a, d) : constant(isNaN(a) ? b : a);\n}\n","import {rgb as colorRgb} from \"d3-color\";\nimport basis from \"./basis.js\";\nimport basisClosed from \"./basisClosed.js\";\nimport nogamma, {gamma} from \"./color.js\";\n\nexport default (function rgbGamma(y) {\n var color = gamma(y);\n\n function rgb(start, end) {\n var r = color((start = colorRgb(start)).r, (end = colorRgb(end)).r),\n g = color(start.g, end.g),\n b = color(start.b, end.b),\n opacity = nogamma(start.opacity, end.opacity);\n return function(t) {\n start.r = r(t);\n start.g = g(t);\n start.b = b(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n rgb.gamma = rgbGamma;\n\n return rgb;\n})(1);\n\nfunction rgbSpline(spline) {\n return function(colors) {\n var n = colors.length,\n r = new Array(n),\n g = new Array(n),\n b = new Array(n),\n i, color;\n for (i = 0; i < n; ++i) {\n color = colorRgb(colors[i]);\n r[i] = color.r || 0;\n g[i] = color.g || 0;\n b[i] = color.b || 0;\n }\n r = spline(r);\n g = spline(g);\n b = spline(b);\n color.opacity = 1;\n return function(t) {\n color.r = r(t);\n color.g = g(t);\n color.b = b(t);\n return color + \"\";\n };\n };\n}\n\nexport var rgbBasis = rgbSpline(basis);\nexport var rgbBasisClosed = rgbSpline(basisClosed);\n","export default function(a, b) {\n var d = new Date;\n return a = +a, b = +b, function(t) {\n return d.setTime(a * (1 - t) + b * t), d;\n };\n}\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return a * (1 - t) + b * t;\n };\n}\n","import number from \"./number.js\";\n\nvar reA = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g,\n reB = new RegExp(reA.source, \"g\");\n\nfunction zero(b) {\n return function() {\n return b;\n };\n}\n\nfunction one(b) {\n return function(t) {\n return b(t) + \"\";\n };\n}\n\nexport default function(a, b) {\n var bi = reA.lastIndex = reB.lastIndex = 0, // scan index for next number in b\n am, // current match in a\n bm, // current match in b\n bs, // string preceding current number in b, if any\n i = -1, // index in s\n s = [], // string constants and placeholders\n q = []; // number interpolators\n\n // Coerce inputs to strings.\n a = a + \"\", b = b + \"\";\n\n // Interpolate pairs of numbers in a & b.\n while ((am = reA.exec(a))\n && (bm = reB.exec(b))) {\n if ((bs = bm.index) > bi) { // a string precedes the next number in b\n bs = b.slice(bi, bs);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n if ((am = am[0]) === (bm = bm[0])) { // numbers in a & b match\n if (s[i]) s[i] += bm; // coalesce with previous string\n else s[++i] = bm;\n } else { // interpolate non-matching numbers\n s[++i] = null;\n q.push({i: i, x: number(am, bm)});\n }\n bi = reB.lastIndex;\n }\n\n // Add remains of b.\n if (bi < b.length) {\n bs = b.slice(bi);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n\n // Special optimization for only a single match.\n // Otherwise, interpolate each of the numbers and rejoin the string.\n return s.length < 2 ? (q[0]\n ? one(q[0].x)\n : zero(b))\n : (b = q.length, function(t) {\n for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n });\n}\n","var frame = 0, // is an animation frame pending?\n timeout = 0, // is a timeout pending?\n interval = 0, // are any timers active?\n pokeDelay = 1000, // how frequently we check for clock skew\n taskHead,\n taskTail,\n clockLast = 0,\n clockNow = 0,\n clockSkew = 0,\n clock = typeof performance === \"object\" && performance.now ? performance : Date,\n setFrame = typeof window === \"object\" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function(f) { setTimeout(f, 17); };\n\nexport function now() {\n return clockNow || (setFrame(clearNow), clockNow = clock.now() + clockSkew);\n}\n\nfunction clearNow() {\n clockNow = 0;\n}\n\nexport function Timer() {\n this._call =\n this._time =\n this._next = null;\n}\n\nTimer.prototype = timer.prototype = {\n constructor: Timer,\n restart: function(callback, delay, time) {\n if (typeof callback !== \"function\") throw new TypeError(\"callback is not a function\");\n time = (time == null ? now() : +time) + (delay == null ? 0 : +delay);\n if (!this._next && taskTail !== this) {\n if (taskTail) taskTail._next = this;\n else taskHead = this;\n taskTail = this;\n }\n this._call = callback;\n this._time = time;\n sleep();\n },\n stop: function() {\n if (this._call) {\n this._call = null;\n this._time = Infinity;\n sleep();\n }\n }\n};\n\nexport function timer(callback, delay, time) {\n var t = new Timer;\n t.restart(callback, delay, time);\n return t;\n}\n\nexport function timerFlush() {\n now(); // Get the current time, if not already set.\n ++frame; // Pretend we’ve set an alarm, if we haven’t already.\n var t = taskHead, e;\n while (t) {\n if ((e = clockNow - t._time) >= 0) t._call.call(null, e);\n t = t._next;\n }\n --frame;\n}\n\nfunction wake() {\n clockNow = (clockLast = clock.now()) + clockSkew;\n frame = timeout = 0;\n try {\n timerFlush();\n } finally {\n frame = 0;\n nap();\n clockNow = 0;\n }\n}\n\nfunction poke() {\n var now = clock.now(), delay = now - clockLast;\n if (delay > pokeDelay) clockSkew -= delay, clockLast = now;\n}\n\nfunction nap() {\n var t0, t1 = taskHead, t2, time = Infinity;\n while (t1) {\n if (t1._call) {\n if (time > t1._time) time = t1._time;\n t0 = t1, t1 = t1._next;\n } else {\n t2 = t1._next, t1._next = null;\n t1 = t0 ? t0._next = t2 : taskHead = t2;\n }\n }\n taskTail = t0;\n sleep(time);\n}\n\nfunction sleep(time) {\n if (frame) return; // Soonest alarm already set, or will be.\n if (timeout) timeout = clearTimeout(timeout);\n var delay = time - clockNow; // Strictly less than if we recomputed clockNow.\n if (delay > 24) {\n if (time < Infinity) timeout = setTimeout(wake, time - clock.now() - clockSkew);\n if (interval) interval = clearInterval(interval);\n } else {\n if (!interval) clockLast = clock.now(), interval = setInterval(poke, pokeDelay);\n frame = 1, setFrame(wake);\n }\n}\n","export default function(event) {\n let sourceEvent;\n while (sourceEvent = event.sourceEvent) event = sourceEvent;\n return event;\n}\n","import sourceEvent from \"./sourceEvent.js\";\n\nexport default function(event, node) {\n event = sourceEvent(event);\n if (node === undefined) node = event.currentTarget;\n if (node) {\n var svg = node.ownerSVGElement || node;\n if (svg.createSVGPoint) {\n var point = svg.createSVGPoint();\n point.x = event.clientX, point.y = event.clientY;\n point = point.matrixTransform(node.getScreenCTM().inverse());\n return [point.x, point.y];\n }\n if (node.getBoundingClientRect) {\n var rect = node.getBoundingClientRect();\n return [event.clientX - rect.left - node.clientLeft, event.clientY - rect.top - node.clientTop];\n }\n }\n return [event.pageX, event.pageY];\n}\n","import {Timer} from \"./timer.js\";\n\nexport default function(callback, delay, time) {\n var t = new Timer;\n delay = delay == null ? 0 : +delay;\n t.restart(elapsed => {\n t.stop();\n callback(elapsed + delay);\n }, delay, time);\n return t;\n}\n","import {dispatch} from \"d3-dispatch\";\nimport {timer, timeout} from \"d3-timer\";\n\nvar emptyOn = dispatch(\"start\", \"end\", \"cancel\", \"interrupt\");\nvar emptyTween = [];\n\nexport var CREATED = 0;\nexport var SCHEDULED = 1;\nexport var STARTING = 2;\nexport var STARTED = 3;\nexport var RUNNING = 4;\nexport var ENDING = 5;\nexport var ENDED = 6;\n\nexport default function(node, name, id, index, group, timing) {\n var schedules = node.__transition;\n if (!schedules) node.__transition = {};\n else if (id in schedules) return;\n create(node, id, {\n name: name,\n index: index, // For context during callback.\n group: group, // For context during callback.\n on: emptyOn,\n tween: emptyTween,\n time: timing.time,\n delay: timing.delay,\n duration: timing.duration,\n ease: timing.ease,\n timer: null,\n state: CREATED\n });\n}\n\nexport function init(node, id) {\n var schedule = get(node, id);\n if (schedule.state > CREATED) throw new Error(\"too late; already scheduled\");\n return schedule;\n}\n\nexport function set(node, id) {\n var schedule = get(node, id);\n if (schedule.state > STARTED) throw new Error(\"too late; already running\");\n return schedule;\n}\n\nexport function get(node, id) {\n var schedule = node.__transition;\n if (!schedule || !(schedule = schedule[id])) throw new Error(\"transition not found\");\n return schedule;\n}\n\nfunction create(node, id, self) {\n var schedules = node.__transition,\n tween;\n\n // Initialize the self timer when the transition is created.\n // Note the actual delay is not known until the first callback!\n schedules[id] = self;\n self.timer = timer(schedule, 0, self.time);\n\n function schedule(elapsed) {\n self.state = SCHEDULED;\n self.timer.restart(start, self.delay, self.time);\n\n // If the elapsed delay is less than our first sleep, start immediately.\n if (self.delay <= elapsed) start(elapsed - self.delay);\n }\n\n function start(elapsed) {\n var i, j, n, o;\n\n // If the state is not SCHEDULED, then we previously errored on start.\n if (self.state !== SCHEDULED) return stop();\n\n for (i in schedules) {\n o = schedules[i];\n if (o.name !== self.name) continue;\n\n // While this element already has a starting transition during this frame,\n // defer starting an interrupting transition until that transition has a\n // chance to tick (and possibly end); see d3/d3-transition#54!\n if (o.state === STARTED) return timeout(start);\n\n // Interrupt the active transition, if any.\n if (o.state === RUNNING) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"interrupt\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n }\n\n // Cancel any pre-empted transitions.\n else if (+i < id) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"cancel\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n }\n }\n\n // Defer the first tick to end of the current frame; see d3/d3#1576.\n // Note the transition may be canceled after start and before the first tick!\n // Note this must be scheduled before the start event; see d3/d3-transition#16!\n // Assuming this is successful, subsequent callbacks go straight to tick.\n timeout(function() {\n if (self.state === STARTED) {\n self.state = RUNNING;\n self.timer.restart(tick, self.delay, self.time);\n tick(elapsed);\n }\n });\n\n // Dispatch the start event.\n // Note this must be done before the tween are initialized.\n self.state = STARTING;\n self.on.call(\"start\", node, node.__data__, self.index, self.group);\n if (self.state !== STARTING) return; // interrupted\n self.state = STARTED;\n\n // Initialize the tween, deleting null tween.\n tween = new Array(n = self.tween.length);\n for (i = 0, j = -1; i < n; ++i) {\n if (o = self.tween[i].value.call(node, node.__data__, self.index, self.group)) {\n tween[++j] = o;\n }\n }\n tween.length = j + 1;\n }\n\n function tick(elapsed) {\n var t = elapsed < self.duration ? self.ease.call(null, elapsed / self.duration) : (self.timer.restart(stop), self.state = ENDING, 1),\n i = -1,\n n = tween.length;\n\n while (++i < n) {\n tween[i].call(node, t);\n }\n\n // Dispatch the end event.\n if (self.state === ENDING) {\n self.on.call(\"end\", node, node.__data__, self.index, self.group);\n stop();\n }\n }\n\n function stop() {\n self.state = ENDED;\n self.timer.stop();\n delete schedules[id];\n for (var i in schedules) return; // eslint-disable-line no-unused-vars\n delete node.__transition;\n }\n}\n","import {STARTING, ENDING, ENDED} from \"./transition/schedule.js\";\n\nexport default function(node, name) {\n var schedules = node.__transition,\n schedule,\n active,\n empty = true,\n i;\n\n if (!schedules) return;\n\n name = name == null ? null : name + \"\";\n\n for (i in schedules) {\n if ((schedule = schedules[i]).name !== name) { empty = false; continue; }\n active = schedule.state > STARTING && schedule.state < ENDING;\n schedule.state = ENDED;\n schedule.timer.stop();\n schedule.on.call(active ? \"interrupt\" : \"cancel\", node, node.__data__, schedule.index, schedule.group);\n delete schedules[i];\n }\n\n if (empty) delete node.__transition;\n}\n","import decompose, {identity} from \"./decompose.js\";\n\nvar svgNode;\n\n/* eslint-disable no-undef */\nexport function parseCss(value) {\n const m = new (typeof DOMMatrix === \"function\" ? DOMMatrix : WebKitCSSMatrix)(value + \"\");\n return m.isIdentity ? identity : decompose(m.a, m.b, m.c, m.d, m.e, m.f);\n}\n\nexport function parseSvg(value) {\n if (value == null) return identity;\n if (!svgNode) svgNode = document.createElementNS(\"http://www.w3.org/2000/svg\", \"g\");\n svgNode.setAttribute(\"transform\", value);\n if (!(value = svgNode.transform.baseVal.consolidate())) return identity;\n value = value.matrix;\n return decompose(value.a, value.b, value.c, value.d, value.e, value.f);\n}\n","import interrupt from \"../interrupt.js\";\n\nexport default function(name) {\n return this.each(function() {\n interrupt(this, name);\n });\n}\n","var degrees = 180 / Math.PI;\n\nexport var identity = {\n translateX: 0,\n translateY: 0,\n rotate: 0,\n skewX: 0,\n scaleX: 1,\n scaleY: 1\n};\n\nexport default function(a, b, c, d, e, f) {\n var scaleX, scaleY, skewX;\n if (scaleX = Math.sqrt(a * a + b * b)) a /= scaleX, b /= scaleX;\n if (skewX = a * c + b * d) c -= a * skewX, d -= b * skewX;\n if (scaleY = Math.sqrt(c * c + d * d)) c /= scaleY, d /= scaleY, skewX /= scaleY;\n if (a * d < b * c) a = -a, b = -b, skewX = -skewX, scaleX = -scaleX;\n return {\n translateX: e,\n translateY: f,\n rotate: Math.atan2(b, a) * degrees,\n skewX: Math.atan(skewX) * degrees,\n scaleX: scaleX,\n scaleY: scaleY\n };\n}\n","import number from \"../number.js\";\nimport {parseCss, parseSvg} from \"./parse.js\";\n\nfunction interpolateTransform(parse, pxComma, pxParen, degParen) {\n\n function pop(s) {\n return s.length ? s.pop() + \" \" : \"\";\n }\n\n function translate(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(\"translate(\", null, pxComma, null, pxParen);\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb || yb) {\n s.push(\"translate(\" + xb + pxComma + yb + pxParen);\n }\n }\n\n function rotate(a, b, s, q) {\n if (a !== b) {\n if (a - b > 180) b += 360; else if (b - a > 180) a += 360; // shortest path\n q.push({i: s.push(pop(s) + \"rotate(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"rotate(\" + b + degParen);\n }\n }\n\n function skewX(a, b, s, q) {\n if (a !== b) {\n q.push({i: s.push(pop(s) + \"skewX(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"skewX(\" + b + degParen);\n }\n }\n\n function scale(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(pop(s) + \"scale(\", null, \",\", null, \")\");\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb !== 1 || yb !== 1) {\n s.push(pop(s) + \"scale(\" + xb + \",\" + yb + \")\");\n }\n }\n\n return function(a, b) {\n var s = [], // string constants and placeholders\n q = []; // number interpolators\n a = parse(a), b = parse(b);\n translate(a.translateX, a.translateY, b.translateX, b.translateY, s, q);\n rotate(a.rotate, b.rotate, s, q);\n skewX(a.skewX, b.skewX, s, q);\n scale(a.scaleX, a.scaleY, b.scaleX, b.scaleY, s, q);\n a = b = null; // gc\n return function(t) {\n var i = -1, n = q.length, o;\n while (++i < n) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n };\n };\n}\n\nexport var interpolateTransformCss = interpolateTransform(parseCss, \"px, \", \"px)\", \"deg)\");\nexport var interpolateTransformSvg = interpolateTransform(parseSvg, \", \", \")\", \")\");\n","import {get, set} from \"./schedule.js\";\n\nfunction tweenRemove(id, name) {\n var tween0, tween1;\n return function() {\n var schedule = set(this, id),\n tween = schedule.tween;\n\n // If this node shared tween with the previous node,\n // just assign the updated shared tween and we’re done!\n // Otherwise, copy-on-write.\n if (tween !== tween0) {\n tween1 = tween0 = tween;\n for (var i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1 = tween1.slice();\n tween1.splice(i, 1);\n break;\n }\n }\n }\n\n schedule.tween = tween1;\n };\n}\n\nfunction tweenFunction(id, name, value) {\n var tween0, tween1;\n if (typeof value !== \"function\") throw new Error;\n return function() {\n var schedule = set(this, id),\n tween = schedule.tween;\n\n // If this node shared tween with the previous node,\n // just assign the updated shared tween and we’re done!\n // Otherwise, copy-on-write.\n if (tween !== tween0) {\n tween1 = (tween0 = tween).slice();\n for (var t = {name: name, value: value}, i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1[i] = t;\n break;\n }\n }\n if (i === n) tween1.push(t);\n }\n\n schedule.tween = tween1;\n };\n}\n\nexport default function(name, value) {\n var id = this._id;\n\n name += \"\";\n\n if (arguments.length < 2) {\n var tween = get(this.node(), id).tween;\n for (var i = 0, n = tween.length, t; i < n; ++i) {\n if ((t = tween[i]).name === name) {\n return t.value;\n }\n }\n return null;\n }\n\n return this.each((value == null ? tweenRemove : tweenFunction)(id, name, value));\n}\n\nexport function tweenValue(transition, name, value) {\n var id = transition._id;\n\n transition.each(function() {\n var schedule = set(this, id);\n (schedule.value || (schedule.value = {}))[name] = value.apply(this, arguments);\n });\n\n return function(node) {\n return get(node, id).value[name];\n };\n}\n","import {color} from \"d3-color\";\nimport {interpolateNumber, interpolateRgb, interpolateString} from \"d3-interpolate\";\n\nexport default function(a, b) {\n var c;\n return (typeof b === \"number\" ? interpolateNumber\n : b instanceof color ? interpolateRgb\n : (c = color(b)) ? (b = c, interpolateRgb)\n : interpolateString)(a, b);\n}\n","import {interpolateTransformSvg as interpolateTransform} from \"d3-interpolate\";\nimport {namespace} from \"d3-selection\";\nimport {tweenValue} from \"./tween.js\";\nimport interpolate from \"./interpolate.js\";\n\nfunction attrRemove(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = this.getAttribute(name);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction attrConstantNS(fullname, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = this.getAttributeNS(fullname.space, fullname.local);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction attrFunction(name, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0, value1 = value(this), string1;\n if (value1 == null) return void this.removeAttribute(name);\n string0 = this.getAttribute(name);\n string1 = value1 + \"\";\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nfunction attrFunctionNS(fullname, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0, value1 = value(this), string1;\n if (value1 == null) return void this.removeAttributeNS(fullname.space, fullname.local);\n string0 = this.getAttributeNS(fullname.space, fullname.local);\n string1 = value1 + \"\";\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nexport default function(name, value) {\n var fullname = namespace(name), i = fullname === \"transform\" ? interpolateTransform : interpolate;\n return this.attrTween(name, typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS : attrFunction)(fullname, i, tweenValue(this, \"attr.\" + name, value))\n : value == null ? (fullname.local ? attrRemoveNS : attrRemove)(fullname)\n : (fullname.local ? attrConstantNS : attrConstant)(fullname, i, value));\n}\n","import {namespace} from \"d3-selection\";\n\nfunction attrInterpolate(name, i) {\n return function(t) {\n this.setAttribute(name, i.call(this, t));\n };\n}\n\nfunction attrInterpolateNS(fullname, i) {\n return function(t) {\n this.setAttributeNS(fullname.space, fullname.local, i.call(this, t));\n };\n}\n\nfunction attrTweenNS(fullname, value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && attrInterpolateNS(fullname, i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nfunction attrTween(name, value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && attrInterpolate(name, i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(name, value) {\n var key = \"attr.\" + name;\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n var fullname = namespace(name);\n return this.tween(key, (fullname.local ? attrTweenNS : attrTween)(fullname, value));\n}\n","import {get, init} from \"./schedule.js\";\n\nfunction delayFunction(id, value) {\n return function() {\n init(this, id).delay = +value.apply(this, arguments);\n };\n}\n\nfunction delayConstant(id, value) {\n return value = +value, function() {\n init(this, id).delay = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each((typeof value === \"function\"\n ? delayFunction\n : delayConstant)(id, value))\n : get(this.node(), id).delay;\n}\n","import {get, set} from \"./schedule.js\";\n\nfunction durationFunction(id, value) {\n return function() {\n set(this, id).duration = +value.apply(this, arguments);\n };\n}\n\nfunction durationConstant(id, value) {\n return value = +value, function() {\n set(this, id).duration = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each((typeof value === \"function\"\n ? durationFunction\n : durationConstant)(id, value))\n : get(this.node(), id).duration;\n}\n","import {get, set} from \"./schedule.js\";\n\nfunction easeConstant(id, value) {\n if (typeof value !== \"function\") throw new Error;\n return function() {\n set(this, id).ease = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each(easeConstant(id, value))\n : get(this.node(), id).ease;\n}\n","import {set} from \"./schedule.js\";\n\nfunction easeVarying(id, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (typeof v !== \"function\") throw new Error;\n set(this, id).ease = v;\n };\n}\n\nexport default function(value) {\n if (typeof value !== \"function\") throw new Error;\n return this.each(easeVarying(this._id, value));\n}\n","import {matcher} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\n\nexport default function(match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Transition(subgroups, this._parents, this._name, this._id);\n}\n","import {Transition} from \"./index.js\";\n\nexport default function(transition) {\n if (transition._id !== this._id) throw new Error;\n\n for (var groups0 = this._groups, groups1 = transition._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Transition(merges, this._parents, this._name, this._id);\n}\n","import {get, set, init} from \"./schedule.js\";\n\nfunction start(name) {\n return (name + \"\").trim().split(/^|\\s+/).every(function(t) {\n var i = t.indexOf(\".\");\n if (i >= 0) t = t.slice(0, i);\n return !t || t === \"start\";\n });\n}\n\nfunction onFunction(id, name, listener) {\n var on0, on1, sit = start(name) ? init : set;\n return function() {\n var schedule = sit(this, id),\n on = schedule.on;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0) (on1 = (on0 = on).copy()).on(name, listener);\n\n schedule.on = on1;\n };\n}\n\nexport default function(name, listener) {\n var id = this._id;\n\n return arguments.length < 2\n ? get(this.node(), id).on.on(name)\n : this.each(onFunction(id, name, listener));\n}\n","function removeFunction(id) {\n return function() {\n var parent = this.parentNode;\n for (var i in this.__transition) if (+i !== id) return;\n if (parent) parent.removeChild(this);\n };\n}\n\nexport default function() {\n return this.on(\"end.remove\", removeFunction(this._id));\n}\n","import {selector} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function(select) {\n var name = this._name,\n id = this._id;\n\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n schedule(subgroup[i], name, id, i, subgroup, get(node, id));\n }\n }\n }\n\n return new Transition(subgroups, this._parents, name, id);\n}\n","import {selectorAll} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function(select) {\n var name = this._name,\n id = this._id;\n\n if (typeof select !== \"function\") select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n for (var children = select.call(node, node.__data__, i, group), child, inherit = get(node, id), k = 0, l = children.length; k < l; ++k) {\n if (child = children[k]) {\n schedule(child, name, id, k, children, inherit);\n }\n }\n subgroups.push(children);\n parents.push(node);\n }\n }\n }\n\n return new Transition(subgroups, parents, name, id);\n}\n","import {selection} from \"d3-selection\";\n\nvar Selection = selection.prototype.constructor;\n\nexport default function() {\n return new Selection(this._groups, this._parents);\n}\n","import {interpolateTransformCss as interpolateTransform} from \"d3-interpolate\";\nimport {style} from \"d3-selection\";\nimport {set} from \"./schedule.js\";\nimport {tweenValue} from \"./tween.js\";\nimport interpolate from \"./interpolate.js\";\n\nfunction styleNull(name, interpolate) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0 = style(this, name),\n string1 = (this.style.removeProperty(name), style(this, name));\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, string10 = string1);\n };\n}\n\nfunction styleRemove(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = style(this, name);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction styleFunction(name, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0 = style(this, name),\n value1 = value(this),\n string1 = value1 + \"\";\n if (value1 == null) string1 = value1 = (this.style.removeProperty(name), style(this, name));\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nfunction styleMaybeRemove(id, name) {\n var on0, on1, listener0, key = \"style.\" + name, event = \"end.\" + key, remove;\n return function() {\n var schedule = set(this, id),\n on = schedule.on,\n listener = schedule.value[key] == null ? remove || (remove = styleRemove(name)) : undefined;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0 || listener0 !== listener) (on1 = (on0 = on).copy()).on(event, listener0 = listener);\n\n schedule.on = on1;\n };\n}\n\nexport default function(name, value, priority) {\n var i = (name += \"\") === \"transform\" ? interpolateTransform : interpolate;\n return value == null ? this\n .styleTween(name, styleNull(name, i))\n .on(\"end.style.\" + name, styleRemove(name))\n : typeof value === \"function\" ? this\n .styleTween(name, styleFunction(name, i, tweenValue(this, \"style.\" + name, value)))\n .each(styleMaybeRemove(this._id, name))\n : this\n .styleTween(name, styleConstant(name, i, value), priority)\n .on(\"end.style.\" + name, null);\n}\n","function styleInterpolate(name, i, priority) {\n return function(t) {\n this.style.setProperty(name, i.call(this, t), priority);\n };\n}\n\nfunction styleTween(name, value, priority) {\n var t, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t = (i0 = i) && styleInterpolate(name, i, priority);\n return t;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(name, value, priority) {\n var key = \"style.\" + (name += \"\");\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n return this.tween(key, styleTween(name, value, priority == null ? \"\" : priority));\n}\n","import {tweenValue} from \"./tween.js\";\n\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function() {\n var value1 = value(this);\n this.textContent = value1 == null ? \"\" : value1;\n };\n}\n\nexport default function(value) {\n return this.tween(\"text\", typeof value === \"function\"\n ? textFunction(tweenValue(this, \"text\", value))\n : textConstant(value == null ? \"\" : value + \"\"));\n}\n","function textInterpolate(i) {\n return function(t) {\n this.textContent = i.call(this, t);\n };\n}\n\nfunction textTween(value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && textInterpolate(i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(value) {\n var key = \"text\";\n if (arguments.length < 1) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n return this.tween(key, textTween(value));\n}\n","import {Transition, newId} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function() {\n var name = this._name,\n id0 = this._id,\n id1 = newId();\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n var inherit = get(node, id0);\n schedule(node, name, id1, i, group, {\n time: inherit.time + inherit.delay + inherit.duration,\n delay: 0,\n duration: inherit.duration,\n ease: inherit.ease\n });\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id1);\n}\n","import {set} from \"./schedule.js\";\n\nexport default function() {\n var on0, on1, that = this, id = that._id, size = that.size();\n return new Promise(function(resolve, reject) {\n var cancel = {value: reject},\n end = {value: function() { if (--size === 0) resolve(); }};\n\n that.each(function() {\n var schedule = set(this, id),\n on = schedule.on;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0) {\n on1 = (on0 = on).copy();\n on1._.cancel.push(cancel);\n on1._.interrupt.push(cancel);\n on1._.end.push(end);\n }\n\n schedule.on = on1;\n });\n\n // The selection was empty, resolve end immediately\n if (size === 0) resolve();\n });\n}\n","import {selection} from \"d3-selection\";\nimport transition_attr from \"./attr.js\";\nimport transition_attrTween from \"./attrTween.js\";\nimport transition_delay from \"./delay.js\";\nimport transition_duration from \"./duration.js\";\nimport transition_ease from \"./ease.js\";\nimport transition_easeVarying from \"./easeVarying.js\";\nimport transition_filter from \"./filter.js\";\nimport transition_merge from \"./merge.js\";\nimport transition_on from \"./on.js\";\nimport transition_remove from \"./remove.js\";\nimport transition_select from \"./select.js\";\nimport transition_selectAll from \"./selectAll.js\";\nimport transition_selection from \"./selection.js\";\nimport transition_style from \"./style.js\";\nimport transition_styleTween from \"./styleTween.js\";\nimport transition_text from \"./text.js\";\nimport transition_textTween from \"./textTween.js\";\nimport transition_transition from \"./transition.js\";\nimport transition_tween from \"./tween.js\";\nimport transition_end from \"./end.js\";\n\nvar id = 0;\n\nexport function Transition(groups, parents, name, id) {\n this._groups = groups;\n this._parents = parents;\n this._name = name;\n this._id = id;\n}\n\nexport default function transition(name) {\n return selection().transition(name);\n}\n\nexport function newId() {\n return ++id;\n}\n\nvar selection_prototype = selection.prototype;\n\nTransition.prototype = transition.prototype = {\n constructor: Transition,\n select: transition_select,\n selectAll: transition_selectAll,\n filter: transition_filter,\n merge: transition_merge,\n selection: transition_selection,\n transition: transition_transition,\n call: selection_prototype.call,\n nodes: selection_prototype.nodes,\n node: selection_prototype.node,\n size: selection_prototype.size,\n empty: selection_prototype.empty,\n each: selection_prototype.each,\n on: transition_on,\n attr: transition_attr,\n attrTween: transition_attrTween,\n style: transition_style,\n styleTween: transition_styleTween,\n text: transition_text,\n textTween: transition_textTween,\n remove: transition_remove,\n tween: transition_tween,\n delay: transition_delay,\n duration: transition_duration,\n ease: transition_ease,\n easeVarying: transition_easeVarying,\n end: transition_end,\n [Symbol.iterator]: selection_prototype[Symbol.iterator]\n};\n","export function cubicIn(t) {\n return t * t * t;\n}\n\nexport function cubicOut(t) {\n return --t * t * t + 1;\n}\n\nexport function cubicInOut(t) {\n return ((t *= 2) <= 1 ? t * t * t : (t -= 2) * t * t + 2) / 2;\n}\n","import {Transition, newId} from \"../transition/index.js\";\nimport schedule from \"../transition/schedule.js\";\nimport {easeCubicInOut} from \"d3-ease\";\nimport {now} from \"d3-timer\";\n\nvar defaultTiming = {\n time: null, // Set on use.\n delay: 0,\n duration: 250,\n ease: easeCubicInOut\n};\n\nfunction inherit(node, id) {\n var timing;\n while (!(timing = node.__transition) || !(timing = timing[id])) {\n if (!(node = node.parentNode)) {\n throw new Error(`transition ${id} not found`);\n }\n }\n return timing;\n}\n\nexport default function(name) {\n var id,\n timing;\n\n if (name instanceof Transition) {\n id = name._id, name = name._name;\n } else {\n id = newId(), (timing = defaultTiming).time = now(), name = name == null ? null : name + \"\";\n }\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n schedule(node, name, id, i, group, timing || inherit(node, id));\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id);\n}\n","import {selection} from \"d3-selection\";\nimport selection_interrupt from \"./interrupt.js\";\nimport selection_transition from \"./transition.js\";\n\nselection.prototype.interrupt = selection_interrupt;\nselection.prototype.transition = selection_transition;\n","import {dispatch} from \"d3-dispatch\";\nimport {dragDisable, dragEnable} from \"d3-drag\";\nimport {interpolate} from \"d3-interpolate\";\nimport {pointer, select} from \"d3-selection\";\nimport {interrupt} from \"d3-transition\";\nimport constant from \"./constant.js\";\nimport BrushEvent from \"./event.js\";\nimport noevent, {nopropagation} from \"./noevent.js\";\n\nvar MODE_DRAG = {name: \"drag\"},\n MODE_SPACE = {name: \"space\"},\n MODE_HANDLE = {name: \"handle\"},\n MODE_CENTER = {name: \"center\"};\n\nconst {abs, max, min} = Math;\n\nfunction number1(e) {\n return [+e[0], +e[1]];\n}\n\nfunction number2(e) {\n return [number1(e[0]), number1(e[1])];\n}\n\nvar X = {\n name: \"x\",\n handles: [\"w\", \"e\"].map(type),\n input: function(x, e) { return x == null ? null : [[+x[0], e[0][1]], [+x[1], e[1][1]]]; },\n output: function(xy) { return xy && [xy[0][0], xy[1][0]]; }\n};\n\nvar Y = {\n name: \"y\",\n handles: [\"n\", \"s\"].map(type),\n input: function(y, e) { return y == null ? null : [[e[0][0], +y[0]], [e[1][0], +y[1]]]; },\n output: function(xy) { return xy && [xy[0][1], xy[1][1]]; }\n};\n\nvar XY = {\n name: \"xy\",\n handles: [\"n\", \"w\", \"e\", \"s\", \"nw\", \"ne\", \"sw\", \"se\"].map(type),\n input: function(xy) { return xy == null ? null : number2(xy); },\n output: function(xy) { return xy; }\n};\n\nvar cursors = {\n overlay: \"crosshair\",\n selection: \"move\",\n n: \"ns-resize\",\n e: \"ew-resize\",\n s: \"ns-resize\",\n w: \"ew-resize\",\n nw: \"nwse-resize\",\n ne: \"nesw-resize\",\n se: \"nwse-resize\",\n sw: \"nesw-resize\"\n};\n\nvar flipX = {\n e: \"w\",\n w: \"e\",\n nw: \"ne\",\n ne: \"nw\",\n se: \"sw\",\n sw: \"se\"\n};\n\nvar flipY = {\n n: \"s\",\n s: \"n\",\n nw: \"sw\",\n ne: \"se\",\n se: \"ne\",\n sw: \"nw\"\n};\n\nvar signsX = {\n overlay: +1,\n selection: +1,\n n: null,\n e: +1,\n s: null,\n w: -1,\n nw: -1,\n ne: +1,\n se: +1,\n sw: -1\n};\n\nvar signsY = {\n overlay: +1,\n selection: +1,\n n: -1,\n e: null,\n s: +1,\n w: null,\n nw: -1,\n ne: -1,\n se: +1,\n sw: +1\n};\n\nfunction type(t) {\n return {type: t};\n}\n\n// Ignore right-click, since that should open the context menu.\nfunction defaultFilter(event) {\n return !event.ctrlKey && !event.button;\n}\n\nfunction defaultExtent() {\n var svg = this.ownerSVGElement || this;\n if (svg.hasAttribute(\"viewBox\")) {\n svg = svg.viewBox.baseVal;\n return [[svg.x, svg.y], [svg.x + svg.width, svg.y + svg.height]];\n }\n return [[0, 0], [svg.width.baseVal.value, svg.height.baseVal.value]];\n}\n\nfunction defaultTouchable() {\n return navigator.maxTouchPoints || (\"ontouchstart\" in this);\n}\n\n// Like d3.local, but with the name “__brush” rather than auto-generated.\nfunction local(node) {\n while (!node.__brush) if (!(node = node.parentNode)) return;\n return node.__brush;\n}\n\nfunction empty(extent) {\n return extent[0][0] === extent[1][0]\n || extent[0][1] === extent[1][1];\n}\n\nexport function brushSelection(node) {\n var state = node.__brush;\n return state ? state.dim.output(state.selection) : null;\n}\n\nexport function brushX() {\n return brush(X);\n}\n\nexport function brushY() {\n return brush(Y);\n}\n\nexport default function() {\n return brush(XY);\n}\n\nfunction brush(dim) {\n var extent = defaultExtent,\n filter = defaultFilter,\n touchable = defaultTouchable,\n keys = true,\n listeners = dispatch(\"start\", \"brush\", \"end\"),\n handleSize = 6,\n touchending;\n\n function brush(group) {\n var overlay = group\n .property(\"__brush\", initialize)\n .selectAll(\".overlay\")\n .data([type(\"overlay\")]);\n\n overlay.enter().append(\"rect\")\n .attr(\"class\", \"overlay\")\n .attr(\"pointer-events\", \"all\")\n .attr(\"cursor\", cursors.overlay)\n .merge(overlay)\n .each(function() {\n var extent = local(this).extent;\n select(this)\n .attr(\"x\", extent[0][0])\n .attr(\"y\", extent[0][1])\n .attr(\"width\", extent[1][0] - extent[0][0])\n .attr(\"height\", extent[1][1] - extent[0][1]);\n });\n\n group.selectAll(\".selection\")\n .data([type(\"selection\")])\n .enter().append(\"rect\")\n .attr(\"class\", \"selection\")\n .attr(\"cursor\", cursors.selection)\n .attr(\"fill\", \"#777\")\n .attr(\"fill-opacity\", 0.3)\n .attr(\"stroke\", \"#fff\")\n .attr(\"shape-rendering\", \"crispEdges\");\n\n var handle = group.selectAll(\".handle\")\n .data(dim.handles, function(d) { return d.type; });\n\n handle.exit().remove();\n\n handle.enter().append(\"rect\")\n .attr(\"class\", function(d) { return \"handle handle--\" + d.type; })\n .attr(\"cursor\", function(d) { return cursors[d.type]; });\n\n group\n .each(redraw)\n .attr(\"fill\", \"none\")\n .attr(\"pointer-events\", \"all\")\n .on(\"mousedown.brush\", started)\n .filter(touchable)\n .on(\"touchstart.brush\", started)\n .on(\"touchmove.brush\", touchmoved)\n .on(\"touchend.brush touchcancel.brush\", touchended)\n .style(\"touch-action\", \"none\")\n .style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\");\n }\n\n brush.move = function(group, selection) {\n if (group.tween) {\n group\n .on(\"start.brush\", function(event) { emitter(this, arguments).beforestart().start(event); })\n .on(\"interrupt.brush end.brush\", function(event) { emitter(this, arguments).end(event); })\n .tween(\"brush\", function() {\n var that = this,\n state = that.__brush,\n emit = emitter(that, arguments),\n selection0 = state.selection,\n selection1 = dim.input(typeof selection === \"function\" ? selection.apply(this, arguments) : selection, state.extent),\n i = interpolate(selection0, selection1);\n\n function tween(t) {\n state.selection = t === 1 && selection1 === null ? null : i(t);\n redraw.call(that);\n emit.brush();\n }\n\n return selection0 !== null && selection1 !== null ? tween : tween(1);\n });\n } else {\n group\n .each(function() {\n var that = this,\n args = arguments,\n state = that.__brush,\n selection1 = dim.input(typeof selection === \"function\" ? selection.apply(that, args) : selection, state.extent),\n emit = emitter(that, args).beforestart();\n\n interrupt(that);\n state.selection = selection1 === null ? null : selection1;\n redraw.call(that);\n emit.start().brush().end();\n });\n }\n };\n\n brush.clear = function(group) {\n brush.move(group, null);\n };\n\n function redraw() {\n var group = select(this),\n selection = local(this).selection;\n\n if (selection) {\n group.selectAll(\".selection\")\n .style(\"display\", null)\n .attr(\"x\", selection[0][0])\n .attr(\"y\", selection[0][1])\n .attr(\"width\", selection[1][0] - selection[0][0])\n .attr(\"height\", selection[1][1] - selection[0][1]);\n\n group.selectAll(\".handle\")\n .style(\"display\", null)\n .attr(\"x\", function(d) { return d.type[d.type.length - 1] === \"e\" ? selection[1][0] - handleSize / 2 : selection[0][0] - handleSize / 2; })\n .attr(\"y\", function(d) { return d.type[0] === \"s\" ? selection[1][1] - handleSize / 2 : selection[0][1] - handleSize / 2; })\n .attr(\"width\", function(d) { return d.type === \"n\" || d.type === \"s\" ? selection[1][0] - selection[0][0] + handleSize : handleSize; })\n .attr(\"height\", function(d) { return d.type === \"e\" || d.type === \"w\" ? selection[1][1] - selection[0][1] + handleSize : handleSize; });\n }\n\n else {\n group.selectAll(\".selection,.handle\")\n .style(\"display\", \"none\")\n .attr(\"x\", null)\n .attr(\"y\", null)\n .attr(\"width\", null)\n .attr(\"height\", null);\n }\n }\n\n function emitter(that, args, clean) {\n var emit = that.__brush.emitter;\n return emit && (!clean || !emit.clean) ? emit : new Emitter(that, args, clean);\n }\n\n function Emitter(that, args, clean) {\n this.that = that;\n this.args = args;\n this.state = that.__brush;\n this.active = 0;\n this.clean = clean;\n }\n\n Emitter.prototype = {\n beforestart: function() {\n if (++this.active === 1) this.state.emitter = this, this.starting = true;\n return this;\n },\n start: function(event, mode) {\n if (this.starting) this.starting = false, this.emit(\"start\", event, mode);\n else this.emit(\"brush\", event);\n return this;\n },\n brush: function(event, mode) {\n this.emit(\"brush\", event, mode);\n return this;\n },\n end: function(event, mode) {\n if (--this.active === 0) delete this.state.emitter, this.emit(\"end\", event, mode);\n return this;\n },\n emit: function(type, event, mode) {\n var d = select(this.that).datum();\n listeners.call(\n type,\n this.that,\n new BrushEvent(type, {\n sourceEvent: event,\n target: brush,\n selection: dim.output(this.state.selection),\n mode,\n dispatch: listeners\n }),\n d\n );\n }\n };\n\n function started(event) {\n if (touchending && !event.touches) return;\n if (!filter.apply(this, arguments)) return;\n\n var that = this,\n type = event.target.__data__.type,\n mode = (keys && event.metaKey ? type = \"overlay\" : type) === \"selection\" ? MODE_DRAG : (keys && event.altKey ? MODE_CENTER : MODE_HANDLE),\n signX = dim === Y ? null : signsX[type],\n signY = dim === X ? null : signsY[type],\n state = local(that),\n extent = state.extent,\n selection = state.selection,\n W = extent[0][0], w0, w1,\n N = extent[0][1], n0, n1,\n E = extent[1][0], e0, e1,\n S = extent[1][1], s0, s1,\n dx = 0,\n dy = 0,\n moving,\n shifting = signX && signY && keys && event.shiftKey,\n lockX,\n lockY,\n points = Array.from(event.touches || [event], t => {\n const i = t.identifier;\n t = pointer(t, that);\n t.point0 = t.slice();\n t.identifier = i;\n return t;\n });\n\n if (type === \"overlay\") {\n if (selection) moving = true;\n const pts = [points[0], points[1] || points[0]];\n state.selection = selection = [[\n w0 = dim === Y ? W : min(pts[0][0], pts[1][0]),\n n0 = dim === X ? N : min(pts[0][1], pts[1][1])\n ], [\n e0 = dim === Y ? E : max(pts[0][0], pts[1][0]),\n s0 = dim === X ? S : max(pts[0][1], pts[1][1])\n ]];\n if (points.length > 1) move();\n } else {\n w0 = selection[0][0];\n n0 = selection[0][1];\n e0 = selection[1][0];\n s0 = selection[1][1];\n }\n\n w1 = w0;\n n1 = n0;\n e1 = e0;\n s1 = s0;\n\n var group = select(that)\n .attr(\"pointer-events\", \"none\");\n\n var overlay = group.selectAll(\".overlay\")\n .attr(\"cursor\", cursors[type]);\n\n interrupt(that);\n var emit = emitter(that, arguments, true).beforestart();\n\n if (event.touches) {\n emit.moved = moved;\n emit.ended = ended;\n } else {\n var view = select(event.view)\n .on(\"mousemove.brush\", moved, true)\n .on(\"mouseup.brush\", ended, true);\n if (keys) view\n .on(\"keydown.brush\", keydowned, true)\n .on(\"keyup.brush\", keyupped, true)\n\n dragDisable(event.view);\n }\n\n redraw.call(that);\n emit.start(event, mode.name);\n\n function moved(event) {\n for (const p of event.changedTouches || [event]) {\n for (const d of points)\n if (d.identifier === p.identifier) d.cur = pointer(p, that);\n }\n if (shifting && !lockX && !lockY && points.length === 1) {\n const point = points[0];\n if (abs(point.cur[0] - point[0]) > abs(point.cur[1] - point[1]))\n lockY = true;\n else\n lockX = true;\n }\n for (const point of points)\n if (point.cur) point[0] = point.cur[0], point[1] = point.cur[1];\n moving = true;\n noevent(event);\n move(event);\n }\n\n function move(event) {\n const point = points[0], point0 = point.point0;\n var t;\n\n dx = point[0] - point0[0];\n dy = point[1] - point0[1];\n\n switch (mode) {\n case MODE_SPACE:\n case MODE_DRAG: {\n if (signX) dx = max(W - w0, min(E - e0, dx)), w1 = w0 + dx, e1 = e0 + dx;\n if (signY) dy = max(N - n0, min(S - s0, dy)), n1 = n0 + dy, s1 = s0 + dy;\n break;\n }\n case MODE_HANDLE: {\n if (points[1]) {\n if (signX) w1 = max(W, min(E, points[0][0])), e1 = max(W, min(E, points[1][0])), signX = 1;\n if (signY) n1 = max(N, min(S, points[0][1])), s1 = max(N, min(S, points[1][1])), signY = 1;\n } else {\n if (signX < 0) dx = max(W - w0, min(E - w0, dx)), w1 = w0 + dx, e1 = e0;\n else if (signX > 0) dx = max(W - e0, min(E - e0, dx)), w1 = w0, e1 = e0 + dx;\n if (signY < 0) dy = max(N - n0, min(S - n0, dy)), n1 = n0 + dy, s1 = s0;\n else if (signY > 0) dy = max(N - s0, min(S - s0, dy)), n1 = n0, s1 = s0 + dy;\n }\n break;\n }\n case MODE_CENTER: {\n if (signX) w1 = max(W, min(E, w0 - dx * signX)), e1 = max(W, min(E, e0 + dx * signX));\n if (signY) n1 = max(N, min(S, n0 - dy * signY)), s1 = max(N, min(S, s0 + dy * signY));\n break;\n }\n }\n\n if (e1 < w1) {\n signX *= -1;\n t = w0, w0 = e0, e0 = t;\n t = w1, w1 = e1, e1 = t;\n if (type in flipX) overlay.attr(\"cursor\", cursors[type = flipX[type]]);\n }\n\n if (s1 < n1) {\n signY *= -1;\n t = n0, n0 = s0, s0 = t;\n t = n1, n1 = s1, s1 = t;\n if (type in flipY) overlay.attr(\"cursor\", cursors[type = flipY[type]]);\n }\n\n if (state.selection) selection = state.selection; // May be set by brush.move!\n if (lockX) w1 = selection[0][0], e1 = selection[1][0];\n if (lockY) n1 = selection[0][1], s1 = selection[1][1];\n\n if (selection[0][0] !== w1\n || selection[0][1] !== n1\n || selection[1][0] !== e1\n || selection[1][1] !== s1) {\n state.selection = [[w1, n1], [e1, s1]];\n redraw.call(that);\n emit.brush(event, mode.name);\n }\n }\n\n function ended(event) {\n nopropagation(event);\n if (event.touches) {\n if (event.touches.length) return;\n if (touchending) clearTimeout(touchending);\n touchending = setTimeout(function() { touchending = null; }, 500); // Ghost clicks are delayed!\n } else {\n dragEnable(event.view, moving);\n view.on(\"keydown.brush keyup.brush mousemove.brush mouseup.brush\", null);\n }\n group.attr(\"pointer-events\", \"all\");\n overlay.attr(\"cursor\", cursors.overlay);\n if (state.selection) selection = state.selection; // May be set by brush.move (on start)!\n if (empty(selection)) state.selection = null, redraw.call(that);\n emit.end(event, mode.name);\n }\n\n function keydowned(event) {\n switch (event.keyCode) {\n case 16: { // SHIFT\n shifting = signX && signY;\n break;\n }\n case 18: { // ALT\n if (mode === MODE_HANDLE) {\n if (signX) e0 = e1 - dx * signX, w0 = w1 + dx * signX;\n if (signY) s0 = s1 - dy * signY, n0 = n1 + dy * signY;\n mode = MODE_CENTER;\n move();\n }\n break;\n }\n case 32: { // SPACE; takes priority over ALT\n if (mode === MODE_HANDLE || mode === MODE_CENTER) {\n if (signX < 0) e0 = e1 - dx; else if (signX > 0) w0 = w1 - dx;\n if (signY < 0) s0 = s1 - dy; else if (signY > 0) n0 = n1 - dy;\n mode = MODE_SPACE;\n overlay.attr(\"cursor\", cursors.selection);\n move();\n }\n break;\n }\n default: return;\n }\n noevent(event);\n }\n\n function keyupped(event) {\n switch (event.keyCode) {\n case 16: { // SHIFT\n if (shifting) {\n lockX = lockY = shifting = false;\n move();\n }\n break;\n }\n case 18: { // ALT\n if (mode === MODE_CENTER) {\n if (signX < 0) e0 = e1; else if (signX > 0) w0 = w1;\n if (signY < 0) s0 = s1; else if (signY > 0) n0 = n1;\n mode = MODE_HANDLE;\n move();\n }\n break;\n }\n case 32: { // SPACE\n if (mode === MODE_SPACE) {\n if (event.altKey) {\n if (signX) e0 = e1 - dx * signX, w0 = w1 + dx * signX;\n if (signY) s0 = s1 - dy * signY, n0 = n1 + dy * signY;\n mode = MODE_CENTER;\n } else {\n if (signX < 0) e0 = e1; else if (signX > 0) w0 = w1;\n if (signY < 0) s0 = s1; else if (signY > 0) n0 = n1;\n mode = MODE_HANDLE;\n }\n overlay.attr(\"cursor\", cursors[type]);\n move();\n }\n break;\n }\n default: return;\n }\n noevent(event);\n }\n }\n\n function touchmoved(event) {\n emitter(this, arguments).moved(event);\n }\n\n function touchended(event) {\n emitter(this, arguments).ended(event);\n }\n\n function initialize() {\n var state = this.__brush || {selection: null};\n state.extent = number2(extent.apply(this, arguments));\n state.dim = dim;\n return state;\n }\n\n brush.extent = function(_) {\n return arguments.length ? (extent = typeof _ === \"function\" ? _ : constant(number2(_)), brush) : extent;\n };\n\n brush.filter = function(_) {\n return arguments.length ? (filter = typeof _ === \"function\" ? _ : constant(!!_), brush) : filter;\n };\n\n brush.touchable = function(_) {\n return arguments.length ? (touchable = typeof _ === \"function\" ? _ : constant(!!_), brush) : touchable;\n };\n\n brush.handleSize = function(_) {\n return arguments.length ? (handleSize = +_, brush) : handleSize;\n };\n\n brush.keyModifiers = function(_) {\n return arguments.length ? (keys = !!_, brush) : keys;\n };\n\n brush.on = function() {\n var value = listeners.on.apply(listeners, arguments);\n return value === listeners ? brush : value;\n };\n\n return brush;\n}\n","export default x => x;\n","function streamGeometry(geometry, stream) {\n if (geometry && streamGeometryType.hasOwnProperty(geometry.type)) {\n streamGeometryType[geometry.type](geometry, stream);\n }\n}\n\nvar streamObjectType = {\n Feature: function(object, stream) {\n streamGeometry(object.geometry, stream);\n },\n FeatureCollection: function(object, stream) {\n var features = object.features, i = -1, n = features.length;\n while (++i < n) streamGeometry(features[i].geometry, stream);\n }\n};\n\nvar streamGeometryType = {\n Sphere: function(object, stream) {\n stream.sphere();\n },\n Point: function(object, stream) {\n object = object.coordinates;\n stream.point(object[0], object[1], object[2]);\n },\n MultiPoint: function(object, stream) {\n var coordinates = object.coordinates, i = -1, n = coordinates.length;\n while (++i < n) object = coordinates[i], stream.point(object[0], object[1], object[2]);\n },\n LineString: function(object, stream) {\n streamLine(object.coordinates, stream, 0);\n },\n MultiLineString: function(object, stream) {\n var coordinates = object.coordinates, i = -1, n = coordinates.length;\n while (++i < n) streamLine(coordinates[i], stream, 0);\n },\n Polygon: function(object, stream) {\n streamPolygon(object.coordinates, stream);\n },\n MultiPolygon: function(object, stream) {\n var coordinates = object.coordinates, i = -1, n = coordinates.length;\n while (++i < n) streamPolygon(coordinates[i], stream);\n },\n GeometryCollection: function(object, stream) {\n var geometries = object.geometries, i = -1, n = geometries.length;\n while (++i < n) streamGeometry(geometries[i], stream);\n }\n};\n\nfunction streamLine(coordinates, stream, closed) {\n var i = -1, n = coordinates.length - closed, coordinate;\n stream.lineStart();\n while (++i < n) coordinate = coordinates[i], stream.point(coordinate[0], coordinate[1], coordinate[2]);\n stream.lineEnd();\n}\n\nfunction streamPolygon(coordinates, stream) {\n var i = -1, n = coordinates.length;\n stream.polygonStart();\n while (++i < n) streamLine(coordinates[i], stream, 1);\n stream.polygonEnd();\n}\n\nexport default function(object, stream) {\n if (object && streamObjectType.hasOwnProperty(object.type)) {\n streamObjectType[object.type](object, stream);\n } else {\n streamGeometry(object, stream);\n }\n}\n","// https://github.com/python/cpython/blob/a74eea238f5baba15797e2e8b570d153bc8690a7/Modules/mathmodule.c#L1423\nexport class Adder {\n constructor() {\n this._partials = new Float64Array(32);\n this._n = 0;\n }\n add(x) {\n const p = this._partials;\n let i = 0;\n for (let j = 0; j < this._n && j < 32; j++) {\n const y = p[j],\n hi = x + y,\n lo = Math.abs(x) < Math.abs(y) ? x - (hi - y) : y - (hi - x);\n if (lo) p[i++] = lo;\n x = hi;\n }\n p[i] = x;\n this._n = i + 1;\n return this;\n }\n valueOf() {\n const p = this._partials;\n let n = this._n, x, y, lo, hi = 0;\n if (n > 0) {\n hi = p[--n];\n while (n > 0) {\n x = hi;\n y = p[--n];\n hi = x + y;\n lo = y - (hi - x);\n if (lo) break;\n }\n if (n > 0 && ((lo < 0 && p[n - 1] < 0) || (lo > 0 && p[n - 1] > 0))) {\n y = lo * 2;\n x = hi + y;\n if (y == x - hi) hi = x;\n }\n }\n return hi;\n }\n}\n\nexport default function(values, valueof) {\n const adder = new Adder();\n if (valueof === undefined) {\n for (let value of values) {\n if (value = +value) {\n adder.add(value);\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if (value = +valueof(value, ++index, values)) {\n adder.add(value);\n }\n }\n }\n return +adder;\n}\n","export var epsilon = 1e-6;\nexport var epsilon2 = 1e-12;\nexport var pi = Math.PI;\nexport var halfPi = pi / 2;\nexport var quarterPi = pi / 4;\nexport var tau = pi * 2;\n\nexport var degrees = 180 / pi;\nexport var radians = pi / 180;\n\nexport var abs = Math.abs;\nexport var atan = Math.atan;\nexport var atan2 = Math.atan2;\nexport var cos = Math.cos;\nexport var ceil = Math.ceil;\nexport var exp = Math.exp;\nexport var floor = Math.floor;\nexport var hypot = Math.hypot;\nexport var log = Math.log;\nexport var pow = Math.pow;\nexport var sin = Math.sin;\nexport var sign = Math.sign || function(x) { return x > 0 ? 1 : x < 0 ? -1 : 0; };\nexport var sqrt = Math.sqrt;\nexport var tan = Math.tan;\n\nexport function acos(x) {\n return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);\n}\n\nexport function asin(x) {\n return x > 1 ? halfPi : x < -1 ? -halfPi : Math.asin(x);\n}\n\nexport function haversin(x) {\n return (x = sin(x / 2)) * x;\n}\n","export default function noop() {}\n","import {Adder} from \"d3-array\";\nimport {abs} from \"../math.js\";\nimport noop from \"../noop.js\";\n\nvar areaSum = new Adder(),\n areaRingSum = new Adder(),\n x00,\n y00,\n x0,\n y0;\n\nvar areaStream = {\n point: noop,\n lineStart: noop,\n lineEnd: noop,\n polygonStart: function() {\n areaStream.lineStart = areaRingStart;\n areaStream.lineEnd = areaRingEnd;\n },\n polygonEnd: function() {\n areaStream.lineStart = areaStream.lineEnd = areaStream.point = noop;\n areaSum.add(abs(areaRingSum));\n areaRingSum = new Adder();\n },\n result: function() {\n var area = areaSum / 2;\n areaSum = new Adder();\n return area;\n }\n};\n\nfunction areaRingStart() {\n areaStream.point = areaPointFirst;\n}\n\nfunction areaPointFirst(x, y) {\n areaStream.point = areaPoint;\n x00 = x0 = x, y00 = y0 = y;\n}\n\nfunction areaPoint(x, y) {\n areaRingSum.add(y0 * x - x0 * y);\n x0 = x, y0 = y;\n}\n\nfunction areaRingEnd() {\n areaPoint(x00, y00);\n}\n\nexport default areaStream;\n","import noop from \"../noop.js\";\n\nvar x0 = Infinity,\n y0 = x0,\n x1 = -x0,\n y1 = x1;\n\nvar boundsStream = {\n point: boundsPoint,\n lineStart: noop,\n lineEnd: noop,\n polygonStart: noop,\n polygonEnd: noop,\n result: function() {\n var bounds = [[x0, y0], [x1, y1]];\n x1 = y1 = -(y0 = x0 = Infinity);\n return bounds;\n }\n};\n\nfunction boundsPoint(x, y) {\n if (x < x0) x0 = x;\n if (x > x1) x1 = x;\n if (y < y0) y0 = y;\n if (y > y1) y1 = y;\n}\n\nexport default boundsStream;\n","import {sqrt} from \"../math.js\";\n\n// TODO Enforce positive area for exterior, negative area for interior?\n\nvar X0 = 0,\n Y0 = 0,\n Z0 = 0,\n X1 = 0,\n Y1 = 0,\n Z1 = 0,\n X2 = 0,\n Y2 = 0,\n Z2 = 0,\n x00,\n y00,\n x0,\n y0;\n\nvar centroidStream = {\n point: centroidPoint,\n lineStart: centroidLineStart,\n lineEnd: centroidLineEnd,\n polygonStart: function() {\n centroidStream.lineStart = centroidRingStart;\n centroidStream.lineEnd = centroidRingEnd;\n },\n polygonEnd: function() {\n centroidStream.point = centroidPoint;\n centroidStream.lineStart = centroidLineStart;\n centroidStream.lineEnd = centroidLineEnd;\n },\n result: function() {\n var centroid = Z2 ? [X2 / Z2, Y2 / Z2]\n : Z1 ? [X1 / Z1, Y1 / Z1]\n : Z0 ? [X0 / Z0, Y0 / Z0]\n : [NaN, NaN];\n X0 = Y0 = Z0 =\n X1 = Y1 = Z1 =\n X2 = Y2 = Z2 = 0;\n return centroid;\n }\n};\n\nfunction centroidPoint(x, y) {\n X0 += x;\n Y0 += y;\n ++Z0;\n}\n\nfunction centroidLineStart() {\n centroidStream.point = centroidPointFirstLine;\n}\n\nfunction centroidPointFirstLine(x, y) {\n centroidStream.point = centroidPointLine;\n centroidPoint(x0 = x, y0 = y);\n}\n\nfunction centroidPointLine(x, y) {\n var dx = x - x0, dy = y - y0, z = sqrt(dx * dx + dy * dy);\n X1 += z * (x0 + x) / 2;\n Y1 += z * (y0 + y) / 2;\n Z1 += z;\n centroidPoint(x0 = x, y0 = y);\n}\n\nfunction centroidLineEnd() {\n centroidStream.point = centroidPoint;\n}\n\nfunction centroidRingStart() {\n centroidStream.point = centroidPointFirstRing;\n}\n\nfunction centroidRingEnd() {\n centroidPointRing(x00, y00);\n}\n\nfunction centroidPointFirstRing(x, y) {\n centroidStream.point = centroidPointRing;\n centroidPoint(x00 = x0 = x, y00 = y0 = y);\n}\n\nfunction centroidPointRing(x, y) {\n var dx = x - x0,\n dy = y - y0,\n z = sqrt(dx * dx + dy * dy);\n\n X1 += z * (x0 + x) / 2;\n Y1 += z * (y0 + y) / 2;\n Z1 += z;\n\n z = y0 * x - x0 * y;\n X2 += z * (x0 + x);\n Y2 += z * (y0 + y);\n Z2 += z * 3;\n centroidPoint(x0 = x, y0 = y);\n}\n\nexport default centroidStream;\n","import {tau} from \"../math.js\";\nimport noop from \"../noop.js\";\n\nexport default function PathContext(context) {\n this._context = context;\n}\n\nPathContext.prototype = {\n _radius: 4.5,\n pointRadius: function(_) {\n return this._radius = _, this;\n },\n polygonStart: function() {\n this._line = 0;\n },\n polygonEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line === 0) this._context.closePath();\n this._point = NaN;\n },\n point: function(x, y) {\n switch (this._point) {\n case 0: {\n this._context.moveTo(x, y);\n this._point = 1;\n break;\n }\n case 1: {\n this._context.lineTo(x, y);\n break;\n }\n default: {\n this._context.moveTo(x + this._radius, y);\n this._context.arc(x, y, this._radius, 0, tau);\n break;\n }\n }\n },\n result: noop\n};\n","import {Adder} from \"d3-array\";\nimport {sqrt} from \"../math.js\";\nimport noop from \"../noop.js\";\n\nvar lengthSum = new Adder(),\n lengthRing,\n x00,\n y00,\n x0,\n y0;\n\nvar lengthStream = {\n point: noop,\n lineStart: function() {\n lengthStream.point = lengthPointFirst;\n },\n lineEnd: function() {\n if (lengthRing) lengthPoint(x00, y00);\n lengthStream.point = noop;\n },\n polygonStart: function() {\n lengthRing = true;\n },\n polygonEnd: function() {\n lengthRing = null;\n },\n result: function() {\n var length = +lengthSum;\n lengthSum = new Adder();\n return length;\n }\n};\n\nfunction lengthPointFirst(x, y) {\n lengthStream.point = lengthPoint;\n x00 = x0 = x, y00 = y0 = y;\n}\n\nfunction lengthPoint(x, y) {\n x0 -= x, y0 -= y;\n lengthSum.add(sqrt(x0 * x0 + y0 * y0));\n x0 = x, y0 = y;\n}\n\nexport default lengthStream;\n","export default function PathString() {\n this._string = [];\n}\n\nPathString.prototype = {\n _radius: 4.5,\n _circle: circle(4.5),\n pointRadius: function(_) {\n if ((_ = +_) !== this._radius) this._radius = _, this._circle = null;\n return this;\n },\n polygonStart: function() {\n this._line = 0;\n },\n polygonEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line === 0) this._string.push(\"Z\");\n this._point = NaN;\n },\n point: function(x, y) {\n switch (this._point) {\n case 0: {\n this._string.push(\"M\", x, \",\", y);\n this._point = 1;\n break;\n }\n case 1: {\n this._string.push(\"L\", x, \",\", y);\n break;\n }\n default: {\n if (this._circle == null) this._circle = circle(this._radius);\n this._string.push(\"M\", x, \",\", y, this._circle);\n break;\n }\n }\n },\n result: function() {\n if (this._string.length) {\n var result = this._string.join(\"\");\n this._string = [];\n return result;\n } else {\n return null;\n }\n }\n};\n\nfunction circle(radius) {\n return \"m0,\" + radius\n + \"a\" + radius + \",\" + radius + \" 0 1,1 0,\" + -2 * radius\n + \"a\" + radius + \",\" + radius + \" 0 1,1 0,\" + 2 * radius\n + \"z\";\n}\n","import identity from \"../identity.js\";\nimport stream from \"../stream.js\";\nimport pathArea from \"./area.js\";\nimport pathBounds from \"./bounds.js\";\nimport pathCentroid from \"./centroid.js\";\nimport PathContext from \"./context.js\";\nimport pathMeasure from \"./measure.js\";\nimport PathString from \"./string.js\";\n\nexport default function(projection, context) {\n var pointRadius = 4.5,\n projectionStream,\n contextStream;\n\n function path(object) {\n if (object) {\n if (typeof pointRadius === \"function\") contextStream.pointRadius(+pointRadius.apply(this, arguments));\n stream(object, projectionStream(contextStream));\n }\n return contextStream.result();\n }\n\n path.area = function(object) {\n stream(object, projectionStream(pathArea));\n return pathArea.result();\n };\n\n path.measure = function(object) {\n stream(object, projectionStream(pathMeasure));\n return pathMeasure.result();\n };\n\n path.bounds = function(object) {\n stream(object, projectionStream(pathBounds));\n return pathBounds.result();\n };\n\n path.centroid = function(object) {\n stream(object, projectionStream(pathCentroid));\n return pathCentroid.result();\n };\n\n path.projection = function(_) {\n return arguments.length ? (projectionStream = _ == null ? (projection = null, identity) : (projection = _).stream, path) : projection;\n };\n\n path.context = function(_) {\n if (!arguments.length) return context;\n contextStream = _ == null ? (context = null, new PathString) : new PathContext(context = _);\n if (typeof pointRadius !== \"function\") contextStream.pointRadius(pointRadius);\n return path;\n };\n\n path.pointRadius = function(_) {\n if (!arguments.length) return pointRadius;\n pointRadius = typeof _ === \"function\" ? _ : (contextStream.pointRadius(+_), +_);\n return path;\n };\n\n return path.projection(projection).context(context);\n}\n","export default function(a, b) {\n\n function compose(x, y) {\n return x = a(x, y), b(x[0], x[1]);\n }\n\n if (a.invert && b.invert) compose.invert = function(x, y) {\n return x = b.invert(x, y), x && a.invert(x[0], x[1]);\n };\n\n return compose;\n}\n","import compose from \"./compose.js\";\nimport {abs, asin, atan2, cos, degrees, pi, radians, sin, tau} from \"./math.js\";\n\nfunction rotationIdentity(lambda, phi) {\n return [abs(lambda) > pi ? lambda + Math.round(-lambda / tau) * tau : lambda, phi];\n}\n\nrotationIdentity.invert = rotationIdentity;\n\nexport function rotateRadians(deltaLambda, deltaPhi, deltaGamma) {\n return (deltaLambda %= tau) ? (deltaPhi || deltaGamma ? compose(rotationLambda(deltaLambda), rotationPhiGamma(deltaPhi, deltaGamma))\n : rotationLambda(deltaLambda))\n : (deltaPhi || deltaGamma ? rotationPhiGamma(deltaPhi, deltaGamma)\n : rotationIdentity);\n}\n\nfunction forwardRotationLambda(deltaLambda) {\n return function(lambda, phi) {\n return lambda += deltaLambda, [lambda > pi ? lambda - tau : lambda < -pi ? lambda + tau : lambda, phi];\n };\n}\n\nfunction rotationLambda(deltaLambda) {\n var rotation = forwardRotationLambda(deltaLambda);\n rotation.invert = forwardRotationLambda(-deltaLambda);\n return rotation;\n}\n\nfunction rotationPhiGamma(deltaPhi, deltaGamma) {\n var cosDeltaPhi = cos(deltaPhi),\n sinDeltaPhi = sin(deltaPhi),\n cosDeltaGamma = cos(deltaGamma),\n sinDeltaGamma = sin(deltaGamma);\n\n function rotation(lambda, phi) {\n var cosPhi = cos(phi),\n x = cos(lambda) * cosPhi,\n y = sin(lambda) * cosPhi,\n z = sin(phi),\n k = z * cosDeltaPhi + x * sinDeltaPhi;\n return [\n atan2(y * cosDeltaGamma - k * sinDeltaGamma, x * cosDeltaPhi - z * sinDeltaPhi),\n asin(k * cosDeltaGamma + y * sinDeltaGamma)\n ];\n }\n\n rotation.invert = function(lambda, phi) {\n var cosPhi = cos(phi),\n x = cos(lambda) * cosPhi,\n y = sin(lambda) * cosPhi,\n z = sin(phi),\n k = z * cosDeltaGamma - y * sinDeltaGamma;\n return [\n atan2(y * cosDeltaGamma + z * sinDeltaGamma, x * cosDeltaPhi + k * sinDeltaPhi),\n asin(k * cosDeltaPhi - x * sinDeltaPhi)\n ];\n };\n\n return rotation;\n}\n\nexport default function(rotate) {\n rotate = rotateRadians(rotate[0] * radians, rotate[1] * radians, rotate.length > 2 ? rotate[2] * radians : 0);\n\n function forward(coordinates) {\n coordinates = rotate(coordinates[0] * radians, coordinates[1] * radians);\n return coordinates[0] *= degrees, coordinates[1] *= degrees, coordinates;\n }\n\n forward.invert = function(coordinates) {\n coordinates = rotate.invert(coordinates[0] * radians, coordinates[1] * radians);\n return coordinates[0] *= degrees, coordinates[1] *= degrees, coordinates;\n };\n\n return forward;\n}\n","import noop from \"../noop.js\";\n\nexport default function() {\n var lines = [],\n line;\n return {\n point: function(x, y, m) {\n line.push([x, y, m]);\n },\n lineStart: function() {\n lines.push(line = []);\n },\n lineEnd: noop,\n rejoin: function() {\n if (lines.length > 1) lines.push(lines.pop().concat(lines.shift()));\n },\n result: function() {\n var result = lines;\n lines = [];\n line = null;\n return result;\n }\n };\n}\n","import {abs, epsilon} from \"./math.js\";\n\nexport default function(a, b) {\n return abs(a[0] - b[0]) < epsilon && abs(a[1] - b[1]) < epsilon;\n}\n","import pointEqual from \"../pointEqual.js\";\nimport {epsilon} from \"../math.js\";\n\nfunction Intersection(point, points, other, entry) {\n this.x = point;\n this.z = points;\n this.o = other; // another intersection\n this.e = entry; // is an entry?\n this.v = false; // visited\n this.n = this.p = null; // next & previous\n}\n\n// A generalized polygon clipping algorithm: given a polygon that has been cut\n// into its visible line segments, and rejoins the segments by interpolating\n// along the clip edge.\nexport default function(segments, compareIntersection, startInside, interpolate, stream) {\n var subject = [],\n clip = [],\n i,\n n;\n\n segments.forEach(function(segment) {\n if ((n = segment.length - 1) <= 0) return;\n var n, p0 = segment[0], p1 = segment[n], x;\n\n if (pointEqual(p0, p1)) {\n if (!p0[2] && !p1[2]) {\n stream.lineStart();\n for (i = 0; i < n; ++i) stream.point((p0 = segment[i])[0], p0[1]);\n stream.lineEnd();\n return;\n }\n // handle degenerate cases by moving the point\n p1[0] += 2 * epsilon;\n }\n\n subject.push(x = new Intersection(p0, segment, null, true));\n clip.push(x.o = new Intersection(p0, null, x, false));\n subject.push(x = new Intersection(p1, segment, null, false));\n clip.push(x.o = new Intersection(p1, null, x, true));\n });\n\n if (!subject.length) return;\n\n clip.sort(compareIntersection);\n link(subject);\n link(clip);\n\n for (i = 0, n = clip.length; i < n; ++i) {\n clip[i].e = startInside = !startInside;\n }\n\n var start = subject[0],\n points,\n point;\n\n while (1) {\n // Find first unvisited intersection.\n var current = start,\n isSubject = true;\n while (current.v) if ((current = current.n) === start) return;\n points = current.z;\n stream.lineStart();\n do {\n current.v = current.o.v = true;\n if (current.e) {\n if (isSubject) {\n for (i = 0, n = points.length; i < n; ++i) stream.point((point = points[i])[0], point[1]);\n } else {\n interpolate(current.x, current.n.x, 1, stream);\n }\n current = current.n;\n } else {\n if (isSubject) {\n points = current.p.z;\n for (i = points.length - 1; i >= 0; --i) stream.point((point = points[i])[0], point[1]);\n } else {\n interpolate(current.x, current.p.x, -1, stream);\n }\n current = current.p;\n }\n current = current.o;\n points = current.z;\n isSubject = !isSubject;\n } while (!current.v);\n stream.lineEnd();\n }\n}\n\nfunction link(array) {\n if (!(n = array.length)) return;\n var n,\n i = 0,\n a = array[0],\n b;\n while (++i < n) {\n a.n = b = array[i];\n b.p = a;\n a = b;\n }\n a.n = b = array[0];\n b.p = a;\n}\n","import {asin, atan2, cos, sin, sqrt} from \"./math.js\";\n\nexport function spherical(cartesian) {\n return [atan2(cartesian[1], cartesian[0]), asin(cartesian[2])];\n}\n\nexport function cartesian(spherical) {\n var lambda = spherical[0], phi = spherical[1], cosPhi = cos(phi);\n return [cosPhi * cos(lambda), cosPhi * sin(lambda), sin(phi)];\n}\n\nexport function cartesianDot(a, b) {\n return a[0] * b[0] + a[1] * b[1] + a[2] * b[2];\n}\n\nexport function cartesianCross(a, b) {\n return [a[1] * b[2] - a[2] * b[1], a[2] * b[0] - a[0] * b[2], a[0] * b[1] - a[1] * b[0]];\n}\n\n// TODO return a\nexport function cartesianAddInPlace(a, b) {\n a[0] += b[0], a[1] += b[1], a[2] += b[2];\n}\n\nexport function cartesianScale(vector, k) {\n return [vector[0] * k, vector[1] * k, vector[2] * k];\n}\n\n// TODO return d\nexport function cartesianNormalizeInPlace(d) {\n var l = sqrt(d[0] * d[0] + d[1] * d[1] + d[2] * d[2]);\n d[0] /= l, d[1] /= l, d[2] /= l;\n}\n","import {Adder} from \"d3-array\";\nimport {cartesian, cartesianCross, cartesianNormalizeInPlace} from \"./cartesian.js\";\nimport {abs, asin, atan2, cos, epsilon, epsilon2, halfPi, pi, quarterPi, sign, sin, tau} from \"./math.js\";\n\nfunction longitude(point) {\n if (abs(point[0]) <= pi)\n return point[0];\n else\n return sign(point[0]) * ((abs(point[0]) + pi) % tau - pi);\n}\n\nexport default function(polygon, point) {\n var lambda = longitude(point),\n phi = point[1],\n sinPhi = sin(phi),\n normal = [sin(lambda), -cos(lambda), 0],\n angle = 0,\n winding = 0;\n\n var sum = new Adder();\n\n if (sinPhi === 1) phi = halfPi + epsilon;\n else if (sinPhi === -1) phi = -halfPi - epsilon;\n\n for (var i = 0, n = polygon.length; i < n; ++i) {\n if (!(m = (ring = polygon[i]).length)) continue;\n var ring,\n m,\n point0 = ring[m - 1],\n lambda0 = longitude(point0),\n phi0 = point0[1] / 2 + quarterPi,\n sinPhi0 = sin(phi0),\n cosPhi0 = cos(phi0);\n\n for (var j = 0; j < m; ++j, lambda0 = lambda1, sinPhi0 = sinPhi1, cosPhi0 = cosPhi1, point0 = point1) {\n var point1 = ring[j],\n lambda1 = longitude(point1),\n phi1 = point1[1] / 2 + quarterPi,\n sinPhi1 = sin(phi1),\n cosPhi1 = cos(phi1),\n delta = lambda1 - lambda0,\n sign = delta >= 0 ? 1 : -1,\n absDelta = sign * delta,\n antimeridian = absDelta > pi,\n k = sinPhi0 * sinPhi1;\n\n sum.add(atan2(k * sign * sin(absDelta), cosPhi0 * cosPhi1 + k * cos(absDelta)));\n angle += antimeridian ? delta + sign * tau : delta;\n\n // Are the longitudes either side of the point’s meridian (lambda),\n // and are the latitudes smaller than the parallel (phi)?\n if (antimeridian ^ lambda0 >= lambda ^ lambda1 >= lambda) {\n var arc = cartesianCross(cartesian(point0), cartesian(point1));\n cartesianNormalizeInPlace(arc);\n var intersection = cartesianCross(normal, arc);\n cartesianNormalizeInPlace(intersection);\n var phiArc = (antimeridian ^ delta >= 0 ? -1 : 1) * asin(intersection[2]);\n if (phi > phiArc || phi === phiArc && (arc[0] || arc[1])) {\n winding += antimeridian ^ delta >= 0 ? 1 : -1;\n }\n }\n }\n }\n\n // First, determine whether the South pole is inside or outside:\n //\n // It is inside if:\n // * the polygon winds around it in a clockwise direction.\n // * the polygon does not (cumulatively) wind around it, but has a negative\n // (counter-clockwise) area.\n //\n // Second, count the (signed) number of times a segment crosses a lambda\n // from the point to the South pole. If it is zero, then the point is the\n // same side as the South pole.\n\n return (angle < -epsilon || angle < epsilon && sum < -epsilon2) ^ (winding & 1);\n}\n","function* flatten(arrays) {\n for (const array of arrays) {\n yield* array;\n }\n}\n\nexport default function merge(arrays) {\n return Array.from(flatten(arrays));\n}\n","import clipBuffer from \"./buffer.js\";\nimport clipRejoin from \"./rejoin.js\";\nimport {epsilon, halfPi} from \"../math.js\";\nimport polygonContains from \"../polygonContains.js\";\nimport {merge} from \"d3-array\";\n\nexport default function(pointVisible, clipLine, interpolate, start) {\n return function(sink) {\n var line = clipLine(sink),\n ringBuffer = clipBuffer(),\n ringSink = clipLine(ringBuffer),\n polygonStarted = false,\n polygon,\n segments,\n ring;\n\n var clip = {\n point: point,\n lineStart: lineStart,\n lineEnd: lineEnd,\n polygonStart: function() {\n clip.point = pointRing;\n clip.lineStart = ringStart;\n clip.lineEnd = ringEnd;\n segments = [];\n polygon = [];\n },\n polygonEnd: function() {\n clip.point = point;\n clip.lineStart = lineStart;\n clip.lineEnd = lineEnd;\n segments = merge(segments);\n var startInside = polygonContains(polygon, start);\n if (segments.length) {\n if (!polygonStarted) sink.polygonStart(), polygonStarted = true;\n clipRejoin(segments, compareIntersection, startInside, interpolate, sink);\n } else if (startInside) {\n if (!polygonStarted) sink.polygonStart(), polygonStarted = true;\n sink.lineStart();\n interpolate(null, null, 1, sink);\n sink.lineEnd();\n }\n if (polygonStarted) sink.polygonEnd(), polygonStarted = false;\n segments = polygon = null;\n },\n sphere: function() {\n sink.polygonStart();\n sink.lineStart();\n interpolate(null, null, 1, sink);\n sink.lineEnd();\n sink.polygonEnd();\n }\n };\n\n function point(lambda, phi) {\n if (pointVisible(lambda, phi)) sink.point(lambda, phi);\n }\n\n function pointLine(lambda, phi) {\n line.point(lambda, phi);\n }\n\n function lineStart() {\n clip.point = pointLine;\n line.lineStart();\n }\n\n function lineEnd() {\n clip.point = point;\n line.lineEnd();\n }\n\n function pointRing(lambda, phi) {\n ring.push([lambda, phi]);\n ringSink.point(lambda, phi);\n }\n\n function ringStart() {\n ringSink.lineStart();\n ring = [];\n }\n\n function ringEnd() {\n pointRing(ring[0][0], ring[0][1]);\n ringSink.lineEnd();\n\n var clean = ringSink.clean(),\n ringSegments = ringBuffer.result(),\n i, n = ringSegments.length, m,\n segment,\n point;\n\n ring.pop();\n polygon.push(ring);\n ring = null;\n\n if (!n) return;\n\n // No intersections.\n if (clean & 1) {\n segment = ringSegments[0];\n if ((m = segment.length - 1) > 0) {\n if (!polygonStarted) sink.polygonStart(), polygonStarted = true;\n sink.lineStart();\n for (i = 0; i < m; ++i) sink.point((point = segment[i])[0], point[1]);\n sink.lineEnd();\n }\n return;\n }\n\n // Rejoin connected segments.\n // TODO reuse ringBuffer.rejoin()?\n if (n > 1 && clean & 2) ringSegments.push(ringSegments.pop().concat(ringSegments.shift()));\n\n segments.push(ringSegments.filter(validSegment));\n }\n\n return clip;\n };\n}\n\nfunction validSegment(segment) {\n return segment.length > 1;\n}\n\n// Intersections are sorted along the clip edge. For both antimeridian cutting\n// and circle clipping, the same comparison is used.\nfunction compareIntersection(a, b) {\n return ((a = a.x)[0] < 0 ? a[1] - halfPi - epsilon : halfPi - a[1])\n - ((b = b.x)[0] < 0 ? b[1] - halfPi - epsilon : halfPi - b[1]);\n}\n","import clip from \"./index.js\";\nimport {abs, atan, cos, epsilon, halfPi, pi, sin} from \"../math.js\";\n\nexport default clip(\n function() { return true; },\n clipAntimeridianLine,\n clipAntimeridianInterpolate,\n [-pi, -halfPi]\n);\n\n// Takes a line and cuts into visible segments. Return values: 0 - there were\n// intersections or the line was empty; 1 - no intersections; 2 - there were\n// intersections, and the first and last segments should be rejoined.\nfunction clipAntimeridianLine(stream) {\n var lambda0 = NaN,\n phi0 = NaN,\n sign0 = NaN,\n clean; // no intersections\n\n return {\n lineStart: function() {\n stream.lineStart();\n clean = 1;\n },\n point: function(lambda1, phi1) {\n var sign1 = lambda1 > 0 ? pi : -pi,\n delta = abs(lambda1 - lambda0);\n if (abs(delta - pi) < epsilon) { // line crosses a pole\n stream.point(lambda0, phi0 = (phi0 + phi1) / 2 > 0 ? halfPi : -halfPi);\n stream.point(sign0, phi0);\n stream.lineEnd();\n stream.lineStart();\n stream.point(sign1, phi0);\n stream.point(lambda1, phi0);\n clean = 0;\n } else if (sign0 !== sign1 && delta >= pi) { // line crosses antimeridian\n if (abs(lambda0 - sign0) < epsilon) lambda0 -= sign0 * epsilon; // handle degeneracies\n if (abs(lambda1 - sign1) < epsilon) lambda1 -= sign1 * epsilon;\n phi0 = clipAntimeridianIntersect(lambda0, phi0, lambda1, phi1);\n stream.point(sign0, phi0);\n stream.lineEnd();\n stream.lineStart();\n stream.point(sign1, phi0);\n clean = 0;\n }\n stream.point(lambda0 = lambda1, phi0 = phi1);\n sign0 = sign1;\n },\n lineEnd: function() {\n stream.lineEnd();\n lambda0 = phi0 = NaN;\n },\n clean: function() {\n return 2 - clean; // if intersections, rejoin first and last segments\n }\n };\n}\n\nfunction clipAntimeridianIntersect(lambda0, phi0, lambda1, phi1) {\n var cosPhi0,\n cosPhi1,\n sinLambda0Lambda1 = sin(lambda0 - lambda1);\n return abs(sinLambda0Lambda1) > epsilon\n ? atan((sin(phi0) * (cosPhi1 = cos(phi1)) * sin(lambda1)\n - sin(phi1) * (cosPhi0 = cos(phi0)) * sin(lambda0))\n / (cosPhi0 * cosPhi1 * sinLambda0Lambda1))\n : (phi0 + phi1) / 2;\n}\n\nfunction clipAntimeridianInterpolate(from, to, direction, stream) {\n var phi;\n if (from == null) {\n phi = direction * halfPi;\n stream.point(-pi, phi);\n stream.point(0, phi);\n stream.point(pi, phi);\n stream.point(pi, 0);\n stream.point(pi, -phi);\n stream.point(0, -phi);\n stream.point(-pi, -phi);\n stream.point(-pi, 0);\n stream.point(-pi, phi);\n } else if (abs(from[0] - to[0]) > epsilon) {\n var lambda = from[0] < to[0] ? pi : -pi;\n phi = direction * lambda / 2;\n stream.point(-lambda, phi);\n stream.point(0, phi);\n stream.point(lambda, phi);\n } else {\n stream.point(to[0], to[1]);\n }\n}\n","import {cartesian, cartesianNormalizeInPlace, spherical} from \"./cartesian.js\";\nimport constant from \"./constant.js\";\nimport {acos, cos, degrees, epsilon, radians, sin, tau} from \"./math.js\";\nimport {rotateRadians} from \"./rotation.js\";\n\n// Generates a circle centered at [0°, 0°], with a given radius and precision.\nexport function circleStream(stream, radius, delta, direction, t0, t1) {\n if (!delta) return;\n var cosRadius = cos(radius),\n sinRadius = sin(radius),\n step = direction * delta;\n if (t0 == null) {\n t0 = radius + direction * tau;\n t1 = radius - step / 2;\n } else {\n t0 = circleRadius(cosRadius, t0);\n t1 = circleRadius(cosRadius, t1);\n if (direction > 0 ? t0 < t1 : t0 > t1) t0 += direction * tau;\n }\n for (var point, t = t0; direction > 0 ? t > t1 : t < t1; t -= step) {\n point = spherical([cosRadius, -sinRadius * cos(t), -sinRadius * sin(t)]);\n stream.point(point[0], point[1]);\n }\n}\n\n// Returns the signed angle of a cartesian point relative to [cosRadius, 0, 0].\nfunction circleRadius(cosRadius, point) {\n point = cartesian(point), point[0] -= cosRadius;\n cartesianNormalizeInPlace(point);\n var radius = acos(-point[1]);\n return ((-point[2] < 0 ? -radius : radius) + tau - epsilon) % tau;\n}\n\nexport default function() {\n var center = constant([0, 0]),\n radius = constant(90),\n precision = constant(6),\n ring,\n rotate,\n stream = {point: point};\n\n function point(x, y) {\n ring.push(x = rotate(x, y));\n x[0] *= degrees, x[1] *= degrees;\n }\n\n function circle() {\n var c = center.apply(this, arguments),\n r = radius.apply(this, arguments) * radians,\n p = precision.apply(this, arguments) * radians;\n ring = [];\n rotate = rotateRadians(-c[0] * radians, -c[1] * radians, 0).invert;\n circleStream(stream, r, p, 1);\n c = {type: \"Polygon\", coordinates: [ring]};\n ring = rotate = null;\n return c;\n }\n\n circle.center = function(_) {\n return arguments.length ? (center = typeof _ === \"function\" ? _ : constant([+_[0], +_[1]]), circle) : center;\n };\n\n circle.radius = function(_) {\n return arguments.length ? (radius = typeof _ === \"function\" ? _ : constant(+_), circle) : radius;\n };\n\n circle.precision = function(_) {\n return arguments.length ? (precision = typeof _ === \"function\" ? _ : constant(+_), circle) : precision;\n };\n\n return circle;\n}\n","import {cartesian, cartesianAddInPlace, cartesianCross, cartesianDot, cartesianScale, spherical} from \"../cartesian.js\";\nimport {circleStream} from \"../circle.js\";\nimport {abs, cos, epsilon, pi, radians, sqrt} from \"../math.js\";\nimport pointEqual from \"../pointEqual.js\";\nimport clip from \"./index.js\";\n\nexport default function(radius) {\n var cr = cos(radius),\n delta = 6 * radians,\n smallRadius = cr > 0,\n notHemisphere = abs(cr) > epsilon; // TODO optimise for this common case\n\n function interpolate(from, to, direction, stream) {\n circleStream(stream, radius, delta, direction, from, to);\n }\n\n function visible(lambda, phi) {\n return cos(lambda) * cos(phi) > cr;\n }\n\n // Takes a line and cuts into visible segments. Return values used for polygon\n // clipping: 0 - there were intersections or the line was empty; 1 - no\n // intersections 2 - there were intersections, and the first and last segments\n // should be rejoined.\n function clipLine(stream) {\n var point0, // previous point\n c0, // code for previous point\n v0, // visibility of previous point\n v00, // visibility of first point\n clean; // no intersections\n return {\n lineStart: function() {\n v00 = v0 = false;\n clean = 1;\n },\n point: function(lambda, phi) {\n var point1 = [lambda, phi],\n point2,\n v = visible(lambda, phi),\n c = smallRadius\n ? v ? 0 : code(lambda, phi)\n : v ? code(lambda + (lambda < 0 ? pi : -pi), phi) : 0;\n if (!point0 && (v00 = v0 = v)) stream.lineStart();\n if (v !== v0) {\n point2 = intersect(point0, point1);\n if (!point2 || pointEqual(point0, point2) || pointEqual(point1, point2))\n point1[2] = 1;\n }\n if (v !== v0) {\n clean = 0;\n if (v) {\n // outside going in\n stream.lineStart();\n point2 = intersect(point1, point0);\n stream.point(point2[0], point2[1]);\n } else {\n // inside going out\n point2 = intersect(point0, point1);\n stream.point(point2[0], point2[1], 2);\n stream.lineEnd();\n }\n point0 = point2;\n } else if (notHemisphere && point0 && smallRadius ^ v) {\n var t;\n // If the codes for two points are different, or are both zero,\n // and there this segment intersects with the small circle.\n if (!(c & c0) && (t = intersect(point1, point0, true))) {\n clean = 0;\n if (smallRadius) {\n stream.lineStart();\n stream.point(t[0][0], t[0][1]);\n stream.point(t[1][0], t[1][1]);\n stream.lineEnd();\n } else {\n stream.point(t[1][0], t[1][1]);\n stream.lineEnd();\n stream.lineStart();\n stream.point(t[0][0], t[0][1], 3);\n }\n }\n }\n if (v && (!point0 || !pointEqual(point0, point1))) {\n stream.point(point1[0], point1[1]);\n }\n point0 = point1, v0 = v, c0 = c;\n },\n lineEnd: function() {\n if (v0) stream.lineEnd();\n point0 = null;\n },\n // Rejoin first and last segments if there were intersections and the first\n // and last points were visible.\n clean: function() {\n return clean | ((v00 && v0) << 1);\n }\n };\n }\n\n // Intersects the great circle between a and b with the clip circle.\n function intersect(a, b, two) {\n var pa = cartesian(a),\n pb = cartesian(b);\n\n // We have two planes, n1.p = d1 and n2.p = d2.\n // Find intersection line p(t) = c1 n1 + c2 n2 + t (n1 ⨯ n2).\n var n1 = [1, 0, 0], // normal\n n2 = cartesianCross(pa, pb),\n n2n2 = cartesianDot(n2, n2),\n n1n2 = n2[0], // cartesianDot(n1, n2),\n determinant = n2n2 - n1n2 * n1n2;\n\n // Two polar points.\n if (!determinant) return !two && a;\n\n var c1 = cr * n2n2 / determinant,\n c2 = -cr * n1n2 / determinant,\n n1xn2 = cartesianCross(n1, n2),\n A = cartesianScale(n1, c1),\n B = cartesianScale(n2, c2);\n cartesianAddInPlace(A, B);\n\n // Solve |p(t)|^2 = 1.\n var u = n1xn2,\n w = cartesianDot(A, u),\n uu = cartesianDot(u, u),\n t2 = w * w - uu * (cartesianDot(A, A) - 1);\n\n if (t2 < 0) return;\n\n var t = sqrt(t2),\n q = cartesianScale(u, (-w - t) / uu);\n cartesianAddInPlace(q, A);\n q = spherical(q);\n\n if (!two) return q;\n\n // Two intersection points.\n var lambda0 = a[0],\n lambda1 = b[0],\n phi0 = a[1],\n phi1 = b[1],\n z;\n\n if (lambda1 < lambda0) z = lambda0, lambda0 = lambda1, lambda1 = z;\n\n var delta = lambda1 - lambda0,\n polar = abs(delta - pi) < epsilon,\n meridian = polar || delta < epsilon;\n\n if (!polar && phi1 < phi0) z = phi0, phi0 = phi1, phi1 = z;\n\n // Check that the first point is between a and b.\n if (meridian\n ? polar\n ? phi0 + phi1 > 0 ^ q[1] < (abs(q[0] - lambda0) < epsilon ? phi0 : phi1)\n : phi0 <= q[1] && q[1] <= phi1\n : delta > pi ^ (lambda0 <= q[0] && q[0] <= lambda1)) {\n var q1 = cartesianScale(u, (-w + t) / uu);\n cartesianAddInPlace(q1, A);\n return [q, spherical(q1)];\n }\n }\n\n // Generates a 4-bit vector representing the location of a point relative to\n // the small circle's bounding box.\n function code(lambda, phi) {\n var r = smallRadius ? radius : pi - radius,\n code = 0;\n if (lambda < -r) code |= 1; // left\n else if (lambda > r) code |= 2; // right\n if (phi < -r) code |= 4; // below\n else if (phi > r) code |= 8; // above\n return code;\n }\n\n return clip(visible, clipLine, interpolate, smallRadius ? [0, -radius] : [-pi, radius - pi]);\n}\n","export default function(a, b, x0, y0, x1, y1) {\n var ax = a[0],\n ay = a[1],\n bx = b[0],\n by = b[1],\n t0 = 0,\n t1 = 1,\n dx = bx - ax,\n dy = by - ay,\n r;\n\n r = x0 - ax;\n if (!dx && r > 0) return;\n r /= dx;\n if (dx < 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n } else if (dx > 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n }\n\n r = x1 - ax;\n if (!dx && r < 0) return;\n r /= dx;\n if (dx < 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n } else if (dx > 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n }\n\n r = y0 - ay;\n if (!dy && r > 0) return;\n r /= dy;\n if (dy < 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n } else if (dy > 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n }\n\n r = y1 - ay;\n if (!dy && r < 0) return;\n r /= dy;\n if (dy < 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n } else if (dy > 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n }\n\n if (t0 > 0) a[0] = ax + t0 * dx, a[1] = ay + t0 * dy;\n if (t1 < 1) b[0] = ax + t1 * dx, b[1] = ay + t1 * dy;\n return true;\n}\n","import {abs, epsilon} from \"../math.js\";\nimport clipBuffer from \"./buffer.js\";\nimport clipLine from \"./line.js\";\nimport clipRejoin from \"./rejoin.js\";\nimport {merge} from \"d3-array\";\n\nvar clipMax = 1e9, clipMin = -clipMax;\n\n// TODO Use d3-polygon’s polygonContains here for the ring check?\n// TODO Eliminate duplicate buffering in clipBuffer and polygon.push?\n\nexport default function clipRectangle(x0, y0, x1, y1) {\n\n function visible(x, y) {\n return x0 <= x && x <= x1 && y0 <= y && y <= y1;\n }\n\n function interpolate(from, to, direction, stream) {\n var a = 0, a1 = 0;\n if (from == null\n || (a = corner(from, direction)) !== (a1 = corner(to, direction))\n || comparePoint(from, to) < 0 ^ direction > 0) {\n do stream.point(a === 0 || a === 3 ? x0 : x1, a > 1 ? y1 : y0);\n while ((a = (a + direction + 4) % 4) !== a1);\n } else {\n stream.point(to[0], to[1]);\n }\n }\n\n function corner(p, direction) {\n return abs(p[0] - x0) < epsilon ? direction > 0 ? 0 : 3\n : abs(p[0] - x1) < epsilon ? direction > 0 ? 2 : 1\n : abs(p[1] - y0) < epsilon ? direction > 0 ? 1 : 0\n : direction > 0 ? 3 : 2; // abs(p[1] - y1) < epsilon\n }\n\n function compareIntersection(a, b) {\n return comparePoint(a.x, b.x);\n }\n\n function comparePoint(a, b) {\n var ca = corner(a, 1),\n cb = corner(b, 1);\n return ca !== cb ? ca - cb\n : ca === 0 ? b[1] - a[1]\n : ca === 1 ? a[0] - b[0]\n : ca === 2 ? a[1] - b[1]\n : b[0] - a[0];\n }\n\n return function(stream) {\n var activeStream = stream,\n bufferStream = clipBuffer(),\n segments,\n polygon,\n ring,\n x__, y__, v__, // first point\n x_, y_, v_, // previous point\n first,\n clean;\n\n var clipStream = {\n point: point,\n lineStart: lineStart,\n lineEnd: lineEnd,\n polygonStart: polygonStart,\n polygonEnd: polygonEnd\n };\n\n function point(x, y) {\n if (visible(x, y)) activeStream.point(x, y);\n }\n\n function polygonInside() {\n var winding = 0;\n\n for (var i = 0, n = polygon.length; i < n; ++i) {\n for (var ring = polygon[i], j = 1, m = ring.length, point = ring[0], a0, a1, b0 = point[0], b1 = point[1]; j < m; ++j) {\n a0 = b0, a1 = b1, point = ring[j], b0 = point[0], b1 = point[1];\n if (a1 <= y1) { if (b1 > y1 && (b0 - a0) * (y1 - a1) > (b1 - a1) * (x0 - a0)) ++winding; }\n else { if (b1 <= y1 && (b0 - a0) * (y1 - a1) < (b1 - a1) * (x0 - a0)) --winding; }\n }\n }\n\n return winding;\n }\n\n // Buffer geometry within a polygon and then clip it en masse.\n function polygonStart() {\n activeStream = bufferStream, segments = [], polygon = [], clean = true;\n }\n\n function polygonEnd() {\n var startInside = polygonInside(),\n cleanInside = clean && startInside,\n visible = (segments = merge(segments)).length;\n if (cleanInside || visible) {\n stream.polygonStart();\n if (cleanInside) {\n stream.lineStart();\n interpolate(null, null, 1, stream);\n stream.lineEnd();\n }\n if (visible) {\n clipRejoin(segments, compareIntersection, startInside, interpolate, stream);\n }\n stream.polygonEnd();\n }\n activeStream = stream, segments = polygon = ring = null;\n }\n\n function lineStart() {\n clipStream.point = linePoint;\n if (polygon) polygon.push(ring = []);\n first = true;\n v_ = false;\n x_ = y_ = NaN;\n }\n\n // TODO rather than special-case polygons, simply handle them separately.\n // Ideally, coincident intersection points should be jittered to avoid\n // clipping issues.\n function lineEnd() {\n if (segments) {\n linePoint(x__, y__);\n if (v__ && v_) bufferStream.rejoin();\n segments.push(bufferStream.result());\n }\n clipStream.point = point;\n if (v_) activeStream.lineEnd();\n }\n\n function linePoint(x, y) {\n var v = visible(x, y);\n if (polygon) ring.push([x, y]);\n if (first) {\n x__ = x, y__ = y, v__ = v;\n first = false;\n if (v) {\n activeStream.lineStart();\n activeStream.point(x, y);\n }\n } else {\n if (v && v_) activeStream.point(x, y);\n else {\n var a = [x_ = Math.max(clipMin, Math.min(clipMax, x_)), y_ = Math.max(clipMin, Math.min(clipMax, y_))],\n b = [x = Math.max(clipMin, Math.min(clipMax, x)), y = Math.max(clipMin, Math.min(clipMax, y))];\n if (clipLine(a, b, x0, y0, x1, y1)) {\n if (!v_) {\n activeStream.lineStart();\n activeStream.point(a[0], a[1]);\n }\n activeStream.point(b[0], b[1]);\n if (!v) activeStream.lineEnd();\n clean = false;\n } else if (v) {\n activeStream.lineStart();\n activeStream.point(x, y);\n clean = false;\n }\n }\n }\n x_ = x, y_ = y, v_ = v;\n }\n\n return clipStream;\n };\n}\n","export default function(methods) {\n return {\n stream: transformer(methods)\n };\n}\n\nexport function transformer(methods) {\n return function(stream) {\n var s = new TransformStream;\n for (var key in methods) s[key] = methods[key];\n s.stream = stream;\n return s;\n };\n}\n\nfunction TransformStream() {}\n\nTransformStream.prototype = {\n constructor: TransformStream,\n point: function(x, y) { this.stream.point(x, y); },\n sphere: function() { this.stream.sphere(); },\n lineStart: function() { this.stream.lineStart(); },\n lineEnd: function() { this.stream.lineEnd(); },\n polygonStart: function() { this.stream.polygonStart(); },\n polygonEnd: function() { this.stream.polygonEnd(); }\n};\n","import {default as geoStream} from \"../stream.js\";\nimport boundsStream from \"../path/bounds.js\";\n\nfunction fit(projection, fitBounds, object) {\n var clip = projection.clipExtent && projection.clipExtent();\n projection.scale(150).translate([0, 0]);\n if (clip != null) projection.clipExtent(null);\n geoStream(object, projection.stream(boundsStream));\n fitBounds(boundsStream.result());\n if (clip != null) projection.clipExtent(clip);\n return projection;\n}\n\nexport function fitExtent(projection, extent, object) {\n return fit(projection, function(b) {\n var w = extent[1][0] - extent[0][0],\n h = extent[1][1] - extent[0][1],\n k = Math.min(w / (b[1][0] - b[0][0]), h / (b[1][1] - b[0][1])),\n x = +extent[0][0] + (w - k * (b[1][0] + b[0][0])) / 2,\n y = +extent[0][1] + (h - k * (b[1][1] + b[0][1])) / 2;\n projection.scale(150 * k).translate([x, y]);\n }, object);\n}\n\nexport function fitSize(projection, size, object) {\n return fitExtent(projection, [[0, 0], size], object);\n}\n\nexport function fitWidth(projection, width, object) {\n return fit(projection, function(b) {\n var w = +width,\n k = w / (b[1][0] - b[0][0]),\n x = (w - k * (b[1][0] + b[0][0])) / 2,\n y = -k * b[0][1];\n projection.scale(150 * k).translate([x, y]);\n }, object);\n}\n\nexport function fitHeight(projection, height, object) {\n return fit(projection, function(b) {\n var h = +height,\n k = h / (b[1][1] - b[0][1]),\n x = -k * b[0][0],\n y = (h - k * (b[1][1] + b[0][1])) / 2;\n projection.scale(150 * k).translate([x, y]);\n }, object);\n}\n","import {cartesian} from \"../cartesian.js\";\nimport {abs, asin, atan2, cos, epsilon, radians, sqrt} from \"../math.js\";\nimport {transformer} from \"../transform.js\";\n\nvar maxDepth = 16, // maximum depth of subdivision\n cosMinDistance = cos(30 * radians); // cos(minimum angular distance)\n\nexport default function(project, delta2) {\n return +delta2 ? resample(project, delta2) : resampleNone(project);\n}\n\nfunction resampleNone(project) {\n return transformer({\n point: function(x, y) {\n x = project(x, y);\n this.stream.point(x[0], x[1]);\n }\n });\n}\n\nfunction resample(project, delta2) {\n\n function resampleLineTo(x0, y0, lambda0, a0, b0, c0, x1, y1, lambda1, a1, b1, c1, depth, stream) {\n var dx = x1 - x0,\n dy = y1 - y0,\n d2 = dx * dx + dy * dy;\n if (d2 > 4 * delta2 && depth--) {\n var a = a0 + a1,\n b = b0 + b1,\n c = c0 + c1,\n m = sqrt(a * a + b * b + c * c),\n phi2 = asin(c /= m),\n lambda2 = abs(abs(c) - 1) < epsilon || abs(lambda0 - lambda1) < epsilon ? (lambda0 + lambda1) / 2 : atan2(b, a),\n p = project(lambda2, phi2),\n x2 = p[0],\n y2 = p[1],\n dx2 = x2 - x0,\n dy2 = y2 - y0,\n dz = dy * dx2 - dx * dy2;\n if (dz * dz / d2 > delta2 // perpendicular projected distance\n || abs((dx * dx2 + dy * dy2) / d2 - 0.5) > 0.3 // midpoint close to an end\n || a0 * a1 + b0 * b1 + c0 * c1 < cosMinDistance) { // angular distance\n resampleLineTo(x0, y0, lambda0, a0, b0, c0, x2, y2, lambda2, a /= m, b /= m, c, depth, stream);\n stream.point(x2, y2);\n resampleLineTo(x2, y2, lambda2, a, b, c, x1, y1, lambda1, a1, b1, c1, depth, stream);\n }\n }\n }\n return function(stream) {\n var lambda00, x00, y00, a00, b00, c00, // first point\n lambda0, x0, y0, a0, b0, c0; // previous point\n\n var resampleStream = {\n point: point,\n lineStart: lineStart,\n lineEnd: lineEnd,\n polygonStart: function() { stream.polygonStart(); resampleStream.lineStart = ringStart; },\n polygonEnd: function() { stream.polygonEnd(); resampleStream.lineStart = lineStart; }\n };\n\n function point(x, y) {\n x = project(x, y);\n stream.point(x[0], x[1]);\n }\n\n function lineStart() {\n x0 = NaN;\n resampleStream.point = linePoint;\n stream.lineStart();\n }\n\n function linePoint(lambda, phi) {\n var c = cartesian([lambda, phi]), p = project(lambda, phi);\n resampleLineTo(x0, y0, lambda0, a0, b0, c0, x0 = p[0], y0 = p[1], lambda0 = lambda, a0 = c[0], b0 = c[1], c0 = c[2], maxDepth, stream);\n stream.point(x0, y0);\n }\n\n function lineEnd() {\n resampleStream.point = point;\n stream.lineEnd();\n }\n\n function ringStart() {\n lineStart();\n resampleStream.point = ringPoint;\n resampleStream.lineEnd = ringEnd;\n }\n\n function ringPoint(lambda, phi) {\n linePoint(lambda00 = lambda, phi), x00 = x0, y00 = y0, a00 = a0, b00 = b0, c00 = c0;\n resampleStream.point = linePoint;\n }\n\n function ringEnd() {\n resampleLineTo(x0, y0, lambda0, a0, b0, c0, x00, y00, lambda00, a00, b00, c00, maxDepth, stream);\n resampleStream.lineEnd = lineEnd;\n lineEnd();\n }\n\n return resampleStream;\n };\n}\n","import clipAntimeridian from \"../clip/antimeridian.js\";\nimport clipCircle from \"../clip/circle.js\";\nimport clipRectangle from \"../clip/rectangle.js\";\nimport compose from \"../compose.js\";\nimport identity from \"../identity.js\";\nimport {cos, degrees, radians, sin, sqrt} from \"../math.js\";\nimport {rotateRadians} from \"../rotation.js\";\nimport {transformer} from \"../transform.js\";\nimport {fitExtent, fitSize, fitWidth, fitHeight} from \"./fit.js\";\nimport resample from \"./resample.js\";\n\nvar transformRadians = transformer({\n point: function(x, y) {\n this.stream.point(x * radians, y * radians);\n }\n});\n\nfunction transformRotate(rotate) {\n return transformer({\n point: function(x, y) {\n var r = rotate(x, y);\n return this.stream.point(r[0], r[1]);\n }\n });\n}\n\nfunction scaleTranslate(k, dx, dy, sx, sy) {\n function transform(x, y) {\n x *= sx; y *= sy;\n return [dx + k * x, dy - k * y];\n }\n transform.invert = function(x, y) {\n return [(x - dx) / k * sx, (dy - y) / k * sy];\n };\n return transform;\n}\n\nfunction scaleTranslateRotate(k, dx, dy, sx, sy, alpha) {\n if (!alpha) return scaleTranslate(k, dx, dy, sx, sy);\n var cosAlpha = cos(alpha),\n sinAlpha = sin(alpha),\n a = cosAlpha * k,\n b = sinAlpha * k,\n ai = cosAlpha / k,\n bi = sinAlpha / k,\n ci = (sinAlpha * dy - cosAlpha * dx) / k,\n fi = (sinAlpha * dx + cosAlpha * dy) / k;\n function transform(x, y) {\n x *= sx; y *= sy;\n return [a * x - b * y + dx, dy - b * x - a * y];\n }\n transform.invert = function(x, y) {\n return [sx * (ai * x - bi * y + ci), sy * (fi - bi * x - ai * y)];\n };\n return transform;\n}\n\nexport default function projection(project) {\n return projectionMutator(function() { return project; })();\n}\n\nexport function projectionMutator(projectAt) {\n var project,\n k = 150, // scale\n x = 480, y = 250, // translate\n lambda = 0, phi = 0, // center\n deltaLambda = 0, deltaPhi = 0, deltaGamma = 0, rotate, // pre-rotate\n alpha = 0, // post-rotate angle\n sx = 1, // reflectX\n sy = 1, // reflectX\n theta = null, preclip = clipAntimeridian, // pre-clip angle\n x0 = null, y0, x1, y1, postclip = identity, // post-clip extent\n delta2 = 0.5, // precision\n projectResample,\n projectTransform,\n projectRotateTransform,\n cache,\n cacheStream;\n\n function projection(point) {\n return projectRotateTransform(point[0] * radians, point[1] * radians);\n }\n\n function invert(point) {\n point = projectRotateTransform.invert(point[0], point[1]);\n return point && [point[0] * degrees, point[1] * degrees];\n }\n\n projection.stream = function(stream) {\n return cache && cacheStream === stream ? cache : cache = transformRadians(transformRotate(rotate)(preclip(projectResample(postclip(cacheStream = stream)))));\n };\n\n projection.preclip = function(_) {\n return arguments.length ? (preclip = _, theta = undefined, reset()) : preclip;\n };\n\n projection.postclip = function(_) {\n return arguments.length ? (postclip = _, x0 = y0 = x1 = y1 = null, reset()) : postclip;\n };\n\n projection.clipAngle = function(_) {\n return arguments.length ? (preclip = +_ ? clipCircle(theta = _ * radians) : (theta = null, clipAntimeridian), reset()) : theta * degrees;\n };\n\n projection.clipExtent = function(_) {\n return arguments.length ? (postclip = _ == null ? (x0 = y0 = x1 = y1 = null, identity) : clipRectangle(x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1]), reset()) : x0 == null ? null : [[x0, y0], [x1, y1]];\n };\n\n projection.scale = function(_) {\n return arguments.length ? (k = +_, recenter()) : k;\n };\n\n projection.translate = function(_) {\n return arguments.length ? (x = +_[0], y = +_[1], recenter()) : [x, y];\n };\n\n projection.center = function(_) {\n return arguments.length ? (lambda = _[0] % 360 * radians, phi = _[1] % 360 * radians, recenter()) : [lambda * degrees, phi * degrees];\n };\n\n projection.rotate = function(_) {\n return arguments.length ? (deltaLambda = _[0] % 360 * radians, deltaPhi = _[1] % 360 * radians, deltaGamma = _.length > 2 ? _[2] % 360 * radians : 0, recenter()) : [deltaLambda * degrees, deltaPhi * degrees, deltaGamma * degrees];\n };\n\n projection.angle = function(_) {\n return arguments.length ? (alpha = _ % 360 * radians, recenter()) : alpha * degrees;\n };\n\n projection.reflectX = function(_) {\n return arguments.length ? (sx = _ ? -1 : 1, recenter()) : sx < 0;\n };\n\n projection.reflectY = function(_) {\n return arguments.length ? (sy = _ ? -1 : 1, recenter()) : sy < 0;\n };\n\n projection.precision = function(_) {\n return arguments.length ? (projectResample = resample(projectTransform, delta2 = _ * _), reset()) : sqrt(delta2);\n };\n\n projection.fitExtent = function(extent, object) {\n return fitExtent(projection, extent, object);\n };\n\n projection.fitSize = function(size, object) {\n return fitSize(projection, size, object);\n };\n\n projection.fitWidth = function(width, object) {\n return fitWidth(projection, width, object);\n };\n\n projection.fitHeight = function(height, object) {\n return fitHeight(projection, height, object);\n };\n\n function recenter() {\n var center = scaleTranslateRotate(k, 0, 0, sx, sy, alpha).apply(null, project(lambda, phi)),\n transform = scaleTranslateRotate(k, x - center[0], y - center[1], sx, sy, alpha);\n rotate = rotateRadians(deltaLambda, deltaPhi, deltaGamma);\n projectTransform = compose(project, transform);\n projectRotateTransform = compose(rotate, projectTransform);\n projectResample = resample(projectTransform, delta2);\n return reset();\n }\n\n function reset() {\n cache = cacheStream = null;\n return projection;\n }\n\n return function() {\n project = projectAt.apply(this, arguments);\n projection.invert = project.invert && invert;\n return recenter();\n };\n}\n","import {atan, exp, halfPi, log, pi, tan, tau} from \"../math.js\";\nimport rotation from \"../rotation.js\";\nimport projection from \"./index.js\";\n\nexport function mercatorRaw(lambda, phi) {\n return [lambda, log(tan((halfPi + phi) / 2))];\n}\n\nmercatorRaw.invert = function(x, y) {\n return [x, 2 * atan(exp(y)) - halfPi];\n};\n\nexport default function() {\n return mercatorProjection(mercatorRaw)\n .scale(961 / tau);\n}\n\nexport function mercatorProjection(project) {\n var m = projection(project),\n center = m.center,\n scale = m.scale,\n translate = m.translate,\n clipExtent = m.clipExtent,\n x0 = null, y0, x1, y1; // clip extent\n\n m.scale = function(_) {\n return arguments.length ? (scale(_), reclip()) : scale();\n };\n\n m.translate = function(_) {\n return arguments.length ? (translate(_), reclip()) : translate();\n };\n\n m.center = function(_) {\n return arguments.length ? (center(_), reclip()) : center();\n };\n\n m.clipExtent = function(_) {\n return arguments.length ? ((_ == null ? x0 = y0 = x1 = y1 = null : (x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1])), reclip()) : x0 == null ? null : [[x0, y0], [x1, y1]];\n };\n\n function reclip() {\n var k = pi * scale(),\n t = m(rotation(m.rotate()).invert([0, 0]));\n return clipExtent(x0 == null\n ? [[t[0] - k, t[1] - k], [t[0] + k, t[1] + k]] : project === mercatorRaw\n ? [[Math.max(t[0] - k, x0), y0], [Math.min(t[0] + k, x1), y1]]\n : [[x0, Math.max(t[1] - k, y0)], [x1, Math.min(t[1] + k, y1)]]);\n }\n\n return reclip();\n}\n","var epsilon2 = 1e-12;\n\nfunction cosh(x) {\n return ((x = Math.exp(x)) + 1 / x) / 2;\n}\n\nfunction sinh(x) {\n return ((x = Math.exp(x)) - 1 / x) / 2;\n}\n\nfunction tanh(x) {\n return ((x = Math.exp(2 * x)) - 1) / (x + 1);\n}\n\nexport default (function zoomRho(rho, rho2, rho4) {\n\n // p0 = [ux0, uy0, w0]\n // p1 = [ux1, uy1, w1]\n function zoom(p0, p1) {\n var ux0 = p0[0], uy0 = p0[1], w0 = p0[2],\n ux1 = p1[0], uy1 = p1[1], w1 = p1[2],\n dx = ux1 - ux0,\n dy = uy1 - uy0,\n d2 = dx * dx + dy * dy,\n i,\n S;\n\n // Special case for u0 ≅ u1.\n if (d2 < epsilon2) {\n S = Math.log(w1 / w0) / rho;\n i = function(t) {\n return [\n ux0 + t * dx,\n uy0 + t * dy,\n w0 * Math.exp(rho * t * S)\n ];\n }\n }\n\n // General case.\n else {\n var d1 = Math.sqrt(d2),\n b0 = (w1 * w1 - w0 * w0 + rho4 * d2) / (2 * w0 * rho2 * d1),\n b1 = (w1 * w1 - w0 * w0 - rho4 * d2) / (2 * w1 * rho2 * d1),\n r0 = Math.log(Math.sqrt(b0 * b0 + 1) - b0),\n r1 = Math.log(Math.sqrt(b1 * b1 + 1) - b1);\n S = (r1 - r0) / rho;\n i = function(t) {\n var s = t * S,\n coshr0 = cosh(r0),\n u = w0 / (rho2 * d1) * (coshr0 * tanh(rho * s + r0) - sinh(r0));\n return [\n ux0 + u * dx,\n uy0 + u * dy,\n w0 * coshr0 / cosh(rho * s + r0)\n ];\n }\n }\n\n i.duration = S * 1000 * rho / Math.SQRT2;\n\n return i;\n }\n\n zoom.rho = function(_) {\n var _1 = Math.max(1e-3, +_), _2 = _1 * _1, _4 = _2 * _2;\n return zoomRho(_1, _2, _4);\n };\n\n return zoom;\n})(Math.SQRT2, 2, 4);\n","export function Transform(k, x, y) {\n this.k = k;\n this.x = x;\n this.y = y;\n}\n\nTransform.prototype = {\n constructor: Transform,\n scale: function(k) {\n return k === 1 ? this : new Transform(this.k * k, this.x, this.y);\n },\n translate: function(x, y) {\n return x === 0 & y === 0 ? this : new Transform(this.k, this.x + this.k * x, this.y + this.k * y);\n },\n apply: function(point) {\n return [point[0] * this.k + this.x, point[1] * this.k + this.y];\n },\n applyX: function(x) {\n return x * this.k + this.x;\n },\n applyY: function(y) {\n return y * this.k + this.y;\n },\n invert: function(location) {\n return [(location[0] - this.x) / this.k, (location[1] - this.y) / this.k];\n },\n invertX: function(x) {\n return (x - this.x) / this.k;\n },\n invertY: function(y) {\n return (y - this.y) / this.k;\n },\n rescaleX: function(x) {\n return x.copy().domain(x.range().map(this.invertX, this).map(x.invert, x));\n },\n rescaleY: function(y) {\n return y.copy().domain(y.range().map(this.invertY, this).map(y.invert, y));\n },\n toString: function() {\n return \"translate(\" + this.x + \",\" + this.y + \") scale(\" + this.k + \")\";\n }\n};\n\nexport var identity = new Transform(1, 0, 0);\n\ntransform.prototype = Transform.prototype;\n\nexport default function transform(node) {\n while (!node.__zoom) if (!(node = node.parentNode)) return identity;\n return node.__zoom;\n}\n","import {dispatch} from \"d3-dispatch\";\nimport {dragDisable, dragEnable} from \"d3-drag\";\nimport {interpolateZoom} from \"d3-interpolate\";\nimport {select, pointer} from \"d3-selection\";\nimport {interrupt} from \"d3-transition\";\nimport constant from \"./constant.js\";\nimport ZoomEvent from \"./event.js\";\nimport {Transform, identity} from \"./transform.js\";\nimport noevent, {nopropagation} from \"./noevent.js\";\n\n// Ignore right-click, since that should open the context menu.\n// except for pinch-to-zoom, which is sent as a wheel+ctrlKey event\nfunction defaultFilter(event) {\n return (!event.ctrlKey || event.type === 'wheel') && !event.button;\n}\n\nfunction defaultExtent() {\n var e = this;\n if (e instanceof SVGElement) {\n e = e.ownerSVGElement || e;\n if (e.hasAttribute(\"viewBox\")) {\n e = e.viewBox.baseVal;\n return [[e.x, e.y], [e.x + e.width, e.y + e.height]];\n }\n return [[0, 0], [e.width.baseVal.value, e.height.baseVal.value]];\n }\n return [[0, 0], [e.clientWidth, e.clientHeight]];\n}\n\nfunction defaultTransform() {\n return this.__zoom || identity;\n}\n\nfunction defaultWheelDelta(event) {\n return -event.deltaY * (event.deltaMode === 1 ? 0.05 : event.deltaMode ? 1 : 0.002) * (event.ctrlKey ? 10 : 1);\n}\n\nfunction defaultTouchable() {\n return navigator.maxTouchPoints || (\"ontouchstart\" in this);\n}\n\nfunction defaultConstrain(transform, extent, translateExtent) {\n var dx0 = transform.invertX(extent[0][0]) - translateExtent[0][0],\n dx1 = transform.invertX(extent[1][0]) - translateExtent[1][0],\n dy0 = transform.invertY(extent[0][1]) - translateExtent[0][1],\n dy1 = transform.invertY(extent[1][1]) - translateExtent[1][1];\n return transform.translate(\n dx1 > dx0 ? (dx0 + dx1) / 2 : Math.min(0, dx0) || Math.max(0, dx1),\n dy1 > dy0 ? (dy0 + dy1) / 2 : Math.min(0, dy0) || Math.max(0, dy1)\n );\n}\n\nexport default function() {\n var filter = defaultFilter,\n extent = defaultExtent,\n constrain = defaultConstrain,\n wheelDelta = defaultWheelDelta,\n touchable = defaultTouchable,\n scaleExtent = [0, Infinity],\n translateExtent = [[-Infinity, -Infinity], [Infinity, Infinity]],\n duration = 250,\n interpolate = interpolateZoom,\n listeners = dispatch(\"start\", \"zoom\", \"end\"),\n touchstarting,\n touchfirst,\n touchending,\n touchDelay = 500,\n wheelDelay = 150,\n clickDistance2 = 0,\n tapDistance = 10;\n\n function zoom(selection) {\n selection\n .property(\"__zoom\", defaultTransform)\n .on(\"wheel.zoom\", wheeled)\n .on(\"mousedown.zoom\", mousedowned)\n .on(\"dblclick.zoom\", dblclicked)\n .filter(touchable)\n .on(\"touchstart.zoom\", touchstarted)\n .on(\"touchmove.zoom\", touchmoved)\n .on(\"touchend.zoom touchcancel.zoom\", touchended)\n .style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\");\n }\n\n zoom.transform = function(collection, transform, point, event) {\n var selection = collection.selection ? collection.selection() : collection;\n selection.property(\"__zoom\", defaultTransform);\n if (collection !== selection) {\n schedule(collection, transform, point, event);\n } else {\n selection.interrupt().each(function() {\n gesture(this, arguments)\n .event(event)\n .start()\n .zoom(null, typeof transform === \"function\" ? transform.apply(this, arguments) : transform)\n .end();\n });\n }\n };\n\n zoom.scaleBy = function(selection, k, p, event) {\n zoom.scaleTo(selection, function() {\n var k0 = this.__zoom.k,\n k1 = typeof k === \"function\" ? k.apply(this, arguments) : k;\n return k0 * k1;\n }, p, event);\n };\n\n zoom.scaleTo = function(selection, k, p, event) {\n zoom.transform(selection, function() {\n var e = extent.apply(this, arguments),\n t0 = this.__zoom,\n p0 = p == null ? centroid(e) : typeof p === \"function\" ? p.apply(this, arguments) : p,\n p1 = t0.invert(p0),\n k1 = typeof k === \"function\" ? k.apply(this, arguments) : k;\n return constrain(translate(scale(t0, k1), p0, p1), e, translateExtent);\n }, p, event);\n };\n\n zoom.translateBy = function(selection, x, y, event) {\n zoom.transform(selection, function() {\n return constrain(this.__zoom.translate(\n typeof x === \"function\" ? x.apply(this, arguments) : x,\n typeof y === \"function\" ? y.apply(this, arguments) : y\n ), extent.apply(this, arguments), translateExtent);\n }, null, event);\n };\n\n zoom.translateTo = function(selection, x, y, p, event) {\n zoom.transform(selection, function() {\n var e = extent.apply(this, arguments),\n t = this.__zoom,\n p0 = p == null ? centroid(e) : typeof p === \"function\" ? p.apply(this, arguments) : p;\n return constrain(identity.translate(p0[0], p0[1]).scale(t.k).translate(\n typeof x === \"function\" ? -x.apply(this, arguments) : -x,\n typeof y === \"function\" ? -y.apply(this, arguments) : -y\n ), e, translateExtent);\n }, p, event);\n };\n\n function scale(transform, k) {\n k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], k));\n return k === transform.k ? transform : new Transform(k, transform.x, transform.y);\n }\n\n function translate(transform, p0, p1) {\n var x = p0[0] - p1[0] * transform.k, y = p0[1] - p1[1] * transform.k;\n return x === transform.x && y === transform.y ? transform : new Transform(transform.k, x, y);\n }\n\n function centroid(extent) {\n return [(+extent[0][0] + +extent[1][0]) / 2, (+extent[0][1] + +extent[1][1]) / 2];\n }\n\n function schedule(transition, transform, point, event) {\n transition\n .on(\"start.zoom\", function() { gesture(this, arguments).event(event).start(); })\n .on(\"interrupt.zoom end.zoom\", function() { gesture(this, arguments).event(event).end(); })\n .tween(\"zoom\", function() {\n var that = this,\n args = arguments,\n g = gesture(that, args).event(event),\n e = extent.apply(that, args),\n p = point == null ? centroid(e) : typeof point === \"function\" ? point.apply(that, args) : point,\n w = Math.max(e[1][0] - e[0][0], e[1][1] - e[0][1]),\n a = that.__zoom,\n b = typeof transform === \"function\" ? transform.apply(that, args) : transform,\n i = interpolate(a.invert(p).concat(w / a.k), b.invert(p).concat(w / b.k));\n return function(t) {\n if (t === 1) t = b; // Avoid rounding error on end.\n else { var l = i(t), k = w / l[2]; t = new Transform(k, p[0] - l[0] * k, p[1] - l[1] * k); }\n g.zoom(null, t);\n };\n });\n }\n\n function gesture(that, args, clean) {\n return (!clean && that.__zooming) || new Gesture(that, args);\n }\n\n function Gesture(that, args) {\n this.that = that;\n this.args = args;\n this.active = 0;\n this.sourceEvent = null;\n this.extent = extent.apply(that, args);\n this.taps = 0;\n }\n\n Gesture.prototype = {\n event: function(event) {\n if (event) this.sourceEvent = event;\n return this;\n },\n start: function() {\n if (++this.active === 1) {\n this.that.__zooming = this;\n this.emit(\"start\");\n }\n return this;\n },\n zoom: function(key, transform) {\n if (this.mouse && key !== \"mouse\") this.mouse[1] = transform.invert(this.mouse[0]);\n if (this.touch0 && key !== \"touch\") this.touch0[1] = transform.invert(this.touch0[0]);\n if (this.touch1 && key !== \"touch\") this.touch1[1] = transform.invert(this.touch1[0]);\n this.that.__zoom = transform;\n this.emit(\"zoom\");\n return this;\n },\n end: function() {\n if (--this.active === 0) {\n delete this.that.__zooming;\n this.emit(\"end\");\n }\n return this;\n },\n emit: function(type) {\n var d = select(this.that).datum();\n listeners.call(\n type,\n this.that,\n new ZoomEvent(type, {\n sourceEvent: this.sourceEvent,\n target: zoom,\n type,\n transform: this.that.__zoom,\n dispatch: listeners\n }),\n d\n );\n }\n };\n\n function wheeled(event, ...args) {\n if (!filter.apply(this, arguments)) return;\n var g = gesture(this, args).event(event),\n t = this.__zoom,\n k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], t.k * Math.pow(2, wheelDelta.apply(this, arguments)))),\n p = pointer(event);\n\n // If the mouse is in the same location as before, reuse it.\n // If there were recent wheel events, reset the wheel idle timeout.\n if (g.wheel) {\n if (g.mouse[0][0] !== p[0] || g.mouse[0][1] !== p[1]) {\n g.mouse[1] = t.invert(g.mouse[0] = p);\n }\n clearTimeout(g.wheel);\n }\n\n // If this wheel event won’t trigger a transform change, ignore it.\n else if (t.k === k) return;\n\n // Otherwise, capture the mouse point and location at the start.\n else {\n g.mouse = [p, t.invert(p)];\n interrupt(this);\n g.start();\n }\n\n noevent(event);\n g.wheel = setTimeout(wheelidled, wheelDelay);\n g.zoom(\"mouse\", constrain(translate(scale(t, k), g.mouse[0], g.mouse[1]), g.extent, translateExtent));\n\n function wheelidled() {\n g.wheel = null;\n g.end();\n }\n }\n\n function mousedowned(event, ...args) {\n if (touchending || !filter.apply(this, arguments)) return;\n var g = gesture(this, args, true).event(event),\n v = select(event.view).on(\"mousemove.zoom\", mousemoved, true).on(\"mouseup.zoom\", mouseupped, true),\n p = pointer(event, currentTarget),\n currentTarget = event.currentTarget,\n x0 = event.clientX,\n y0 = event.clientY;\n\n dragDisable(event.view);\n nopropagation(event);\n g.mouse = [p, this.__zoom.invert(p)];\n interrupt(this);\n g.start();\n\n function mousemoved(event) {\n noevent(event);\n if (!g.moved) {\n var dx = event.clientX - x0, dy = event.clientY - y0;\n g.moved = dx * dx + dy * dy > clickDistance2;\n }\n g.event(event)\n .zoom(\"mouse\", constrain(translate(g.that.__zoom, g.mouse[0] = pointer(event, currentTarget), g.mouse[1]), g.extent, translateExtent));\n }\n\n function mouseupped(event) {\n v.on(\"mousemove.zoom mouseup.zoom\", null);\n dragEnable(event.view, g.moved);\n noevent(event);\n g.event(event).end();\n }\n }\n\n function dblclicked(event, ...args) {\n if (!filter.apply(this, arguments)) return;\n var t0 = this.__zoom,\n p0 = pointer(event.changedTouches ? event.changedTouches[0] : event, this),\n p1 = t0.invert(p0),\n k1 = t0.k * (event.shiftKey ? 0.5 : 2),\n t1 = constrain(translate(scale(t0, k1), p0, p1), extent.apply(this, args), translateExtent);\n\n noevent(event);\n if (duration > 0) select(this).transition().duration(duration).call(schedule, t1, p0, event);\n else select(this).call(zoom.transform, t1, p0, event);\n }\n\n function touchstarted(event, ...args) {\n if (!filter.apply(this, arguments)) return;\n var touches = event.touches,\n n = touches.length,\n g = gesture(this, args, event.changedTouches.length === n).event(event),\n started, i, t, p;\n\n nopropagation(event);\n for (i = 0; i < n; ++i) {\n t = touches[i], p = pointer(t, this);\n p = [p, this.__zoom.invert(p), t.identifier];\n if (!g.touch0) g.touch0 = p, started = true, g.taps = 1 + !!touchstarting;\n else if (!g.touch1 && g.touch0[2] !== p[2]) g.touch1 = p, g.taps = 0;\n }\n\n if (touchstarting) touchstarting = clearTimeout(touchstarting);\n\n if (started) {\n if (g.taps < 2) touchfirst = p[0], touchstarting = setTimeout(function() { touchstarting = null; }, touchDelay);\n interrupt(this);\n g.start();\n }\n }\n\n function touchmoved(event, ...args) {\n if (!this.__zooming) return;\n var g = gesture(this, args).event(event),\n touches = event.changedTouches,\n n = touches.length, i, t, p, l;\n\n noevent(event);\n for (i = 0; i < n; ++i) {\n t = touches[i], p = pointer(t, this);\n if (g.touch0 && g.touch0[2] === t.identifier) g.touch0[0] = p;\n else if (g.touch1 && g.touch1[2] === t.identifier) g.touch1[0] = p;\n }\n t = g.that.__zoom;\n if (g.touch1) {\n var p0 = g.touch0[0], l0 = g.touch0[1],\n p1 = g.touch1[0], l1 = g.touch1[1],\n dp = (dp = p1[0] - p0[0]) * dp + (dp = p1[1] - p0[1]) * dp,\n dl = (dl = l1[0] - l0[0]) * dl + (dl = l1[1] - l0[1]) * dl;\n t = scale(t, Math.sqrt(dp / dl));\n p = [(p0[0] + p1[0]) / 2, (p0[1] + p1[1]) / 2];\n l = [(l0[0] + l1[0]) / 2, (l0[1] + l1[1]) / 2];\n }\n else if (g.touch0) p = g.touch0[0], l = g.touch0[1];\n else return;\n\n g.zoom(\"touch\", constrain(translate(t, p, l), g.extent, translateExtent));\n }\n\n function touchended(event, ...args) {\n if (!this.__zooming) return;\n var g = gesture(this, args).event(event),\n touches = event.changedTouches,\n n = touches.length, i, t;\n\n nopropagation(event);\n if (touchending) clearTimeout(touchending);\n touchending = setTimeout(function() { touchending = null; }, touchDelay);\n for (i = 0; i < n; ++i) {\n t = touches[i];\n if (g.touch0 && g.touch0[2] === t.identifier) delete g.touch0;\n else if (g.touch1 && g.touch1[2] === t.identifier) delete g.touch1;\n }\n if (g.touch1 && !g.touch0) g.touch0 = g.touch1, delete g.touch1;\n if (g.touch0) g.touch0[1] = this.__zoom.invert(g.touch0[0]);\n else {\n g.end();\n // If this was a dbltap, reroute to the (optional) dblclick.zoom handler.\n if (g.taps === 2) {\n t = pointer(t, this);\n if (Math.hypot(touchfirst[0] - t[0], touchfirst[1] - t[1]) < tapDistance) {\n var p = select(this).on(\"dblclick.zoom\");\n if (p) p.apply(this, arguments);\n }\n }\n }\n }\n\n zoom.wheelDelta = function(_) {\n return arguments.length ? (wheelDelta = typeof _ === \"function\" ? _ : constant(+_), zoom) : wheelDelta;\n };\n\n zoom.filter = function(_) {\n return arguments.length ? (filter = typeof _ === \"function\" ? _ : constant(!!_), zoom) : filter;\n };\n\n zoom.touchable = function(_) {\n return arguments.length ? (touchable = typeof _ === \"function\" ? _ : constant(!!_), zoom) : touchable;\n };\n\n zoom.extent = function(_) {\n return arguments.length ? (extent = typeof _ === \"function\" ? _ : constant([[+_[0][0], +_[0][1]], [+_[1][0], +_[1][1]]]), zoom) : extent;\n };\n\n zoom.scaleExtent = function(_) {\n return arguments.length ? (scaleExtent[0] = +_[0], scaleExtent[1] = +_[1], zoom) : [scaleExtent[0], scaleExtent[1]];\n };\n\n zoom.translateExtent = function(_) {\n return arguments.length ? (translateExtent[0][0] = +_[0][0], translateExtent[1][0] = +_[1][0], translateExtent[0][1] = +_[0][1], translateExtent[1][1] = +_[1][1], zoom) : [[translateExtent[0][0], translateExtent[0][1]], [translateExtent[1][0], translateExtent[1][1]]];\n };\n\n zoom.constrain = function(_) {\n return arguments.length ? (constrain = _, zoom) : constrain;\n };\n\n zoom.duration = function(_) {\n return arguments.length ? (duration = +_, zoom) : duration;\n };\n\n zoom.interpolate = function(_) {\n return arguments.length ? (interpolate = _, zoom) : interpolate;\n };\n\n zoom.on = function() {\n var value = listeners.on.apply(listeners, arguments);\n return value === listeners ? zoom : value;\n };\n\n zoom.clickDistance = function(_) {\n return arguments.length ? (clickDistance2 = (_ = +_) * _, zoom) : Math.sqrt(clickDistance2);\n };\n\n zoom.tapDistance = function(_) {\n return arguments.length ? (tapDistance = +_, zoom) : tapDistance;\n };\n\n return zoom;\n}\n","import {computed, ref, watch} from 'vue'\nimport useProviders from '@/use/providers'\nimport mapData from '../assets/data/europe.geo.json'\nimport * as d3 from 'd3'\n\n\nconst {locations, originator, target, getLocation} = useProviders()\n\nexport default function useMap(center, statesRef, mapRef) {\n const scale = ref(850)\n const projection = computed(() => {\n return d3.geoMercator().scale(scale.value).center(center)\n })\n const path = ref(d3.geoPath(projection.value))\n const markers = ref([])\n const connections = ref([])\n const _locations = [...locations.value]\n const currentMarker = ref(null)\n const targetLoc = computed(() => {\n if (target.value) {\n return getLocation(target)\n }\n return null\n })\n\n function renderStates() {\n d3.select(statesRef.value)\n .selectAll(\"path\")\n .data(mapData.features)\n .enter()\n .append(\"path\")\n .attr(\"d\", path.value)\n }\n\n function renderProviders() {\n\n let i = _locations.length, d, proj\n\n while (i--) {\n d = _locations[i];\n if (!d.longitude && !d.latitude) {\n // Let's consider this a bad location record\n _locations.splice(i, 1);\n }\n\n proj = projection.value([d.longitude, d.latitude])\n if (proj) {\n d.x = proj[0];\n d.y = proj[1];\n } else {\n _locations.splice(i, 1);\n }\n }\n Array.prototype.pairs = function (func) {\n for (let i = 0; i < this.length - 1; i++) {\n for (let j = i; j < this.length - 1; j++) {\n func([this[i], this[j + 1]]);\n }\n }\n }\n _locations.pairs((pair) => {\n connections.value.push(pair)\n })\n // Pick 10 random connections proportional to number of locations\n connections.value = connections.value\n .sort(() => 0.5 - Math.random())\n .slice(0, Math.ceil((_locations.length % connections.value.length - 1) % 1.2))\n }\n\n function getProviderPoint(provider) {\n if (provider.value) {\n return _locations.find(l => {\n return l.key === provider.value.key\n })\n }\n }\n\n function addMarker(provider) {\n const providerPoint = getProviderPoint(provider)\n\n if (providerPoint) {\n markers.value.push({\n provider: provider.value,\n x: providerPoint.x,\n y: providerPoint.y\n })\n }\n }\n\n function renderConnection(connection) {\n\n let m1 = connection[1],\n m2 = connection[0];\n\n if (!m1 || !m2) {\n return\n }\n\n if (m1.x < m2.x) {\n m1 = connection[0];\n m2 = connection[1];\n }\n\n var dx = m2.x - m1.x,\n dy = m2.y - m1.y,\n dr = Math.sqrt(dx * dx + dy * dy);\n\n return \"M\" + m2.x + \",\" + m2.y + \"A\" + dr + \",\" + dr + \" 0 0,1 \" + m1.x + \",\" + m1.y;\n }\n\n function renderMarkers() {\n markers.value = []\n addMarker(getLocation(originator))\n if (targetLoc.value) {\n addMarker(targetLoc.value)\n }\n }\n\n watch([target], () => renderMarkers())\n\n function markerSet(e, marker, index) {\n if (e) {\n e.preventDefault()\n }\n const m = markers.value[index]\n m.provider = null\n m.current = true\n m.startX = m.x\n m.startY = m.y\n currentMarker.value = m\n document.addEventListener('mousemove', markerDrag)\n document.addEventListener('mouseup', markerStop)\n mapRef.value.addEventListener('mouseleave', markerLeave)\n }\n\n function markerDrag(e) {\n currentMarker.value.provider = targetLoc.value\n let mouse = d3.pointer(e)\n currentMarker.value.x = mouse[0]\n currentMarker.value.y = mouse[1] - 141\n }\n\n function markerLeave() {\n currentMarker.value.x = currentMarker.value.startX;\n currentMarker.value.y = currentMarker.value.startY;\n\n markerStop();\n }\n\n function markerStop() {\n document.removeEventListener('mousemove', markerDrag);\n document.removeEventListener('mouseup', markerStop);\n mapRef.value.removeEventListener('mouseleave', markerLeave);\n\n currentMarker.value.current = false;\n currentMarker.value = null;\n }\n\n\n function render() {\n renderStates()\n renderProviders()\n renderMarkers()\n }\n\n function isOrigin(markerProvider) {\n return markerProvider === getLocation(originator).value\n }\n\n return {\n markers,\n projection: computed(() => projection.value),\n providerConnections: computed(() => connections.value),\n providerPoints: computed(() => _locations),\n render, renderConnection, isOrigin, markerSet\n }\n}\n","import { render } from \"./MeshMap.vue?vue&type=template&id=63d3559b\"\nimport script from \"./MeshMap.vue?vue&type=script&lang=js\"\nexport * from \"./MeshMap.vue?vue&type=script&lang=js\"\n\nimport \"./MeshMap.vue?vue&type=style&index=0&id=63d3559b&lang=scss\"\nscript.render = render\n\nexport default script","'use strict';\nvar $ = require('../internals/export');\nvar isObject = require('../internals/is-object');\nvar isArray = require('../internals/is-array');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toLength = require('../internals/to-length');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar createProperty = require('../internals/create-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('slice');\n\nvar SPECIES = wellKnownSymbol('species');\nvar nativeSlice = [].slice;\nvar max = Math.max;\n\n// `Array.prototype.slice` method\n// https://tc39.es/ecma262/#sec-array.prototype.slice\n// fallback for not array-like ES3 strings and DOM objects\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n slice: function slice(start, end) {\n var O = toIndexedObject(this);\n var length = toLength(O.length);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n // inline `ArraySpeciesCreate` for usage native `Array#slice` where it's possible\n var Constructor, result, n;\n if (isArray(O)) {\n Constructor = O.constructor;\n // cross-realm fallback\n if (typeof Constructor == 'function' && (Constructor === Array || isArray(Constructor.prototype))) {\n Constructor = undefined;\n } else if (isObject(Constructor)) {\n Constructor = Constructor[SPECIES];\n if (Constructor === null) Constructor = undefined;\n }\n if (Constructor === Array || Constructor === undefined) {\n return nativeSlice.call(O, k, fin);\n }\n }\n result = new (Constructor === undefined ? Array : Constructor)(max(fin - k, 0));\n for (n = 0; k < fin; k++, n++) if (k in O) createProperty(result, n, O[k]);\n result.length = n;\n return result;\n }\n});\n"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/js/chunk-vendors.535d76a2.js.map b/dist/js/chunk-vendors.535d76a2.js.map deleted file mode 100644 index 492d601..0000000 --- a/dist/js/chunk-vendors.535d76a2.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["webpack:///./node_modules/core-js/internals/to-string-tag-support.js","webpack:///./node_modules/core-js/internals/function-bind-context.js","webpack:///./node_modules/core-js/internals/object-get-own-property-names-external.js","webpack:///./node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack:///./node_modules/core-js/internals/get-substitution.js","webpack:///./node_modules/core-js/internals/ie8-dom-define.js","webpack:///./node_modules/core-js/internals/native-url.js","webpack:///./node_modules/core-js/internals/same-value.js","webpack:///./node_modules/core-js/internals/regexp-exec-abstract.js","webpack:///./node_modules/core-js/internals/an-instance.js","webpack:///./node_modules/core-js/internals/html.js","webpack:///./node_modules/core-js/internals/a-function.js","webpack:///./node_modules/core-js/internals/check-correctness-of-iteration.js","webpack:///./node_modules/core-js/internals/engine-is-ios.js","webpack:///./node_modules/core-js/internals/require-object-coercible.js","webpack:///./node_modules/core-js/internals/array-method-has-species-support.js","webpack:///./node_modules/core-js/internals/iterate.js","webpack:///./node_modules/core-js/internals/to-absolute-index.js","webpack:///./node_modules/core-js/internals/export.js","webpack:///./node_modules/core-js/internals/object-get-own-property-names.js","webpack:///./node_modules/core-js/modules/es.string.includes.js","webpack:///./node_modules/core-js/modules/es.regexp.to-string.js","webpack:///./node_modules/core-js/internals/set-species.js","webpack:///./node_modules/core-js/internals/iterator-close.js","webpack:///./node_modules/core-js/modules/web.url.js","webpack:///./node_modules/core-js/internals/task.js","webpack:///./node_modules/core-js/internals/engine-v8-version.js","webpack:///./node_modules/core-js/internals/engine-user-agent.js","webpack:///./node_modules/core-js/internals/get-iterator-method.js","webpack:///./node_modules/core-js/internals/object-define-properties.js","webpack:///./node_modules/core-js/internals/a-possible-prototype.js","webpack:///./node_modules/core-js/modules/es.string.iterator.js","webpack:///./node_modules/core-js/internals/iterators.js","webpack:///./node_modules/core-js/internals/path.js","webpack:///./node_modules/core-js/internals/indexed-object.js","webpack:///./node_modules/core-js/internals/add-to-unscopables.js","webpack:///./node_modules/core-js/internals/host-report-errors.js","webpack:///./node_modules/core-js/internals/is-regexp.js","webpack:///./node_modules/core-js/internals/species-constructor.js","webpack:///./node_modules/core-js/internals/native-symbol.js","webpack:///./node_modules/core-js/internals/array-includes.js","webpack:///./node_modules/core-js/modules/es.array.filter.js","webpack:///./node_modules/core-js/internals/array-from.js","webpack:///./node_modules/core-js/internals/to-length.js","webpack:///./node_modules/core-js/internals/has.js","webpack:///./node_modules/core-js/modules/es.string.replace.js","webpack:///./node_modules/core-js/internals/shared.js","webpack:///./node_modules/core-js/internals/own-keys.js","webpack:///./node_modules/core-js/internals/whitespaces.js","webpack:///./node_modules/core-js/internals/string-trim.js","webpack:///./node_modules/core-js/internals/not-a-regexp.js","webpack:///./node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js","webpack:///./node_modules/core-js/internals/create-property-descriptor.js","webpack:///./node_modules/core-js/internals/string-punycode-to-ascii.js","webpack:///./node_modules/core-js/internals/engine-is-node.js","webpack:///./node_modules/core-js/internals/object-assign.js","webpack:///./node_modules/core-js/internals/string-multibyte.js","webpack:///./node_modules/core-js/internals/array-species-create.js","webpack:///./node_modules/core-js/internals/internal-state.js","webpack:///./node_modules/core-js/internals/redefine.js","webpack:///./node_modules/core-js/internals/inherit-if-required.js","webpack:///./node_modules/core-js/internals/object-get-own-property-symbols.js","webpack:///./node_modules/core-js/internals/define-well-known-symbol.js","webpack:///./node_modules/core-js/internals/enum-bug-keys.js","webpack:///./node_modules/@vue/runtime-dom/dist/runtime-dom.esm-bundler.js","webpack:///./node_modules/core-js/internals/to-object.js","webpack:///./node_modules/core-js/internals/object-create.js","webpack:///./node_modules/core-js/modules/es.array.find.js","webpack:///./node_modules/core-js/internals/define-iterator.js","webpack:///./node_modules/core-js/internals/native-weak-map.js","webpack:///./node_modules/core-js/internals/an-object.js","webpack:///./node_modules/core-js/internals/descriptors.js","webpack:///./node_modules/core-js/internals/create-property.js","webpack:///./node_modules/core-js/modules/es.string.search.js","webpack:///./node_modules/core-js/internals/is-object.js","webpack:///./node_modules/core-js/internals/inspect-source.js","webpack:///./node_modules/core-js/internals/advance-string-index.js","webpack:///./node_modules/core-js/internals/uid.js","webpack:///./node_modules/core-js/internals/create-non-enumerable-property.js","webpack:///./node_modules/core-js/internals/regexp-exec.js","webpack:///./node_modules/core-js/internals/is-forced.js","webpack:///./node_modules/core-js/modules/web.url-search-params.js","webpack:///./node_modules/core-js/internals/get-iterator.js","webpack:///./node_modules/core-js/internals/call-with-safe-iteration-closing.js","webpack:///./node_modules/core-js/internals/object-define-property.js","webpack:///./node_modules/core-js/internals/create-iterator-constructor.js","webpack:///./node_modules/core-js/internals/regexp-sticky-helpers.js","webpack:///./node_modules/@vue/shared/dist/shared.esm-bundler.js","webpack:///./node_modules/@vue/reactivity/dist/reactivity.esm-bundler.js","webpack:///./node_modules/core-js/internals/engine-is-webos-webkit.js","webpack:///./node_modules/core-js/modules/es.symbol.js","webpack:///./node_modules/core-js/internals/to-integer.js","webpack:///./node_modules/core-js/modules/es.promise.finally.js","webpack:///./node_modules/core-js/modules/es.number.constructor.js","webpack:///./node_modules/core-js/internals/correct-is-regexp-logic.js","webpack:///./node_modules/core-js/modules/es.regexp.exec.js","webpack:///./node_modules/@fortawesome/vue-fontawesome/index.es.js","webpack:///./node_modules/core-js/internals/regexp-flags.js","webpack:///./node_modules/core-js/internals/iterators-core.js","webpack:///./node_modules/core-js/internals/object-to-string.js","webpack:///./node_modules/core-js/modules/es.function.name.js","webpack:///./node_modules/core-js/internals/microtask.js","webpack:///./node_modules/core-js/internals/well-known-symbol.js","webpack:///./node_modules/core-js/internals/array-iteration.js","webpack:///./node_modules/core-js/internals/to-primitive.js","webpack:///./node_modules/@fortawesome/free-solid-svg-icons/index.es.js","webpack:///./node_modules/core-js/internals/is-pure.js","webpack:///./node_modules/core-js/internals/classof-raw.js","webpack:///./node_modules/core-js/internals/shared-store.js","webpack:///./node_modules/core-js/modules/es.array.find-index.js","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/core-js/internals/object-keys-internal.js","webpack:///./node_modules/core-js/modules/es.array.includes.js","webpack:///./node_modules/core-js/internals/document-create-element.js","webpack:///./node_modules/core-js/modules/es.object.assign.js","webpack:///./node_modules/core-js/internals/promise-resolve.js","webpack:///./node_modules/core-js/internals/set-global.js","webpack:///./node_modules/core-js/internals/hidden-keys.js","webpack:///./node_modules/core-js/internals/fails.js","webpack:///./node_modules/core-js/internals/get-built-in.js","webpack:///./node_modules/core-js/internals/object-property-is-enumerable.js","webpack:///./node_modules/core-js/internals/object-set-prototype-of.js","webpack:///./node_modules/core-js/modules/es.object.to-string.js","webpack:///./node_modules/core-js/internals/set-to-string-tag.js","webpack:///./node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js","webpack:///./node_modules/core-js/internals/global.js","webpack:///./node_modules/core-js/modules/web.dom-collections.iterator.js","webpack:///./node_modules/core-js/internals/object-keys.js","webpack:///./node_modules/core-js/modules/es.symbol.description.js","webpack:///./node_modules/core-js/internals/object-get-prototype-of.js","webpack:///./node_modules/core-js/internals/correct-prototype-getter.js","webpack:///./node_modules/core-js/modules/es.array.iterator.js","webpack:///./node_modules/core-js/internals/redefine-all.js","webpack:///./node_modules/core-js/internals/well-known-symbol-wrapped.js","webpack:///./node_modules/core-js/internals/perform.js","webpack:///./node_modules/core-js/modules/es.promise.js","webpack:///./node_modules/core-js/internals/copy-constructor-properties.js","webpack:///./node_modules/core-js/internals/is-array.js","webpack:///./node_modules/core-js/internals/is-array-iterator-method.js","webpack:///./node_modules/@fortawesome/fontawesome-svg-core/index.es.js","webpack:///./node_modules/core-js/internals/new-promise-capability.js","webpack:///./node_modules/@fortawesome/free-brands-svg-icons/index.es.js","webpack:///./node_modules/core-js/internals/classof.js","webpack:///./node_modules/core-js/internals/shared-key.js","webpack:///./node_modules/vue-composable/dist/vue-composable.esm-bundler.js","webpack:///./node_modules/core-js/internals/to-indexed-object.js","webpack:///./node_modules/core-js/internals/dom-iterables.js","webpack:///./node_modules/core-js/internals/use-symbol-as-uid.js","webpack:///./node_modules/core-js/internals/native-promise-constructor.js"],"names":["wellKnownSymbol","TO_STRING_TAG","test","module","exports","String","aFunction","fn","that","length","undefined","call","a","b","c","apply","arguments","toIndexedObject","nativeGetOwnPropertyNames","f","toString","windowNames","window","Object","getOwnPropertyNames","getWindowNames","it","error","slice","DESCRIPTORS","propertyIsEnumerableModule","createPropertyDescriptor","toPrimitive","has","IE8_DOM_DEFINE","nativeGetOwnPropertyDescriptor","getOwnPropertyDescriptor","O","P","toObject","floor","Math","replace","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","matched","str","position","captures","namedCaptures","replacement","tailPos","m","symbols","match","ch","capture","charAt","n","fails","createElement","defineProperty","get","IS_PURE","ITERATOR","url","URL","searchParams","result","pathname","forEach","value","key","toJSON","sort","href","URLSearchParams","username","host","hash","is","x","y","classof","regexpExec","R","S","exec","TypeError","Constructor","name","getBuiltIn","SAFE_CLOSING","called","iteratorWithReturn","next","done","this","Array","from","SKIP_CLOSING","ITERATION_SUPPORT","object","userAgent","V8_VERSION","SPECIES","METHOD_NAME","array","constructor","foo","Boolean","anObject","isArrayIteratorMethod","toLength","bind","getIteratorMethod","iteratorClose","Result","stopped","iterable","unboundFunction","options","iterator","iterFn","index","step","AS_ENTRIES","IS_ITERATOR","INTERRUPTED","stop","condition","callFn","toInteger","max","min","integer","global","createNonEnumerableProperty","redefine","setGlobal","copyConstructorProperties","isForced","source","FORCED","target","targetProperty","sourceProperty","descriptor","TARGET","GLOBAL","STATIC","stat","prototype","noTargetGet","forced","sham","internalObjectKeys","enumBugKeys","hiddenKeys","concat","$","notARegExp","requireObjectCoercible","correctIsRegExpLogic","proto","includes","searchString","indexOf","flags","TO_STRING","RegExpPrototype","RegExp","nativeToString","NOT_GENERIC","INCORRECT_NAME","p","rf","unsafe","definePropertyModule","CONSTRUCTOR_NAME","configurable","returnMethod","EOF","USE_NATIVE_URL","defineProperties","anInstance","assign","arrayFrom","codeAt","toASCII","setToStringTag","URLSearchParamsModule","InternalStateModule","NativeURL","getInternalSearchParamsState","getState","setInternalState","set","getInternalURLState","getterFor","pow","INVALID_AUTHORITY","INVALID_SCHEME","INVALID_HOST","INVALID_PORT","ALPHA","ALPHANUMERIC","DIGIT","HEX_START","OCT","DEC","HEX","FORBIDDEN_HOST_CODE_POINT","FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT","LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE","TAB_AND_NEW_LINE","parseHost","input","codePoints","parseIPv6","isSpecial","parseIPv4","percentEncode","C0ControlPercentEncodeSet","partsLength","numbers","part","radix","number","ipv4","parts","split","pop","parseInt","push","numbersSeen","ipv4Piece","swaps","swap","address","pieceIndex","compress","pointer","char","findLongestZeroSequence","ipv6","maxIndex","maxLength","currStart","currLength","serializeHost","ignore0","unshift","join","fragmentPercentEncodeSet","pathPercentEncodeSet","userinfoPercentEncodeSet","code","encodeURIComponent","specialSchemes","ftp","file","http","https","ws","wss","scheme","includesCredentials","password","cannotHaveUsernamePasswordPort","cannotBeABaseURL","isWindowsDriveLetter","string","normalized","second","startsWithWindowsDriveLetter","third","shortenURLsPath","path","pathSize","isSingleDot","segment","toLowerCase","isDoubleDot","SCHEME_START","SCHEME","NO_SCHEME","SPECIAL_RELATIVE_OR_AUTHORITY","PATH_OR_AUTHORITY","RELATIVE","RELATIVE_SLASH","SPECIAL_AUTHORITY_SLASHES","SPECIAL_AUTHORITY_IGNORE_SLASHES","AUTHORITY","HOST","HOSTNAME","PORT","FILE","FILE_SLASH","FILE_HOST","PATH_START","PATH","CANNOT_BE_A_BASE_URL_PATH","QUERY","FRAGMENT","parseURL","stateOverride","base","bufferCodePoints","failure","state","buffer","seenAt","seenBracket","seenPasswordToken","port","query","fragment","i","codePoint","encodedCodePoints","shift","URLConstructor","baseState","urlString","type","searchParamsState","updateSearchParams","updateURL","serializeURL","origin","getOrigin","protocol","getProtocol","getUsername","getPassword","getHost","hostname","getHostname","getPort","getPathname","search","getSearch","getSearchParams","getHash","URLPrototype","output","accessorDescriptor","getter","setter","enumerable","nativeCreateObjectURL","createObjectURL","nativeRevokeObjectURL","revokeObjectURL","blob","defer","channel","html","IS_IOS","IS_NODE","location","setImmediate","clear","clearImmediate","process","MessageChannel","Dispatch","counter","queue","ONREADYSTATECHANGE","run","id","hasOwnProperty","runner","listener","event","data","post","postMessage","args","Function","nextTick","now","port2","port1","onmessage","addEventListener","importScripts","appendChild","removeChild","setTimeout","version","versions","v8","Iterators","objectKeys","Properties","keys","isObject","defineIterator","STRING_ITERATOR","getInternalState","iterated","point","propertyIsEnumerable","create","UNSCOPABLES","ArrayPrototype","console","MATCH","isRegExp","defaultConstructor","C","getOwnPropertySymbols","Symbol","toAbsoluteIndex","createMethod","IS_INCLUDES","$this","el","fromIndex","$filter","filter","arrayMethodHasSpeciesSupport","HAS_SPECIES_SUPPORT","callbackfn","callWithSafeIterationClosing","createProperty","arrayLike","argumentsLength","mapfn","mapping","iteratorMethod","argument","fixRegExpWellKnownSymbolLogic","advanceStringIndex","getSubstitution","regExpExec","maybeToString","REPLACE","nativeReplace","maybeCallNative","reason","REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE","REPLACE_KEEPS_$0","UNSAFE_SUBSTITUTE","searchValue","replaceValue","replacer","regexp","res","rx","functionalReplace","fullUnicode","unicode","lastIndex","results","matchStr","accumulatedResult","nextSourcePosition","j","groups","replacerArgs","store","mode","copyright","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","whitespaces","whitespace","ltrim","rtrim","TYPE","start","end","trim","stack","warn","msg","instance","component","appWarnHandler","appContext","config","warnHandler","trace","getComponentTrace","callWithErrorHandling","proxy","map","vnode","formatComponentName","warnArgs","formatTrace","currentVNode","normalizedStack","last","recurseCount","parentInstance","parent","logs","entry","formatTraceEntry","postfix","isRoot","open","close","props","formatProps","formatProp","raw","JSON","stringify","err","handleError","callWithAsyncErrorHandling","catch","values","throwInDev","contextVNode","cur","exposedInstance","errorInfo","errorCapturedHooks","ec","appErrorHandler","errorHandler","logError","isFlushing","isFlushPending","flushIndex","pendingPreFlushCbs","activePreFlushCbs","preFlushIndex","pendingPostFlushCbs","activePostFlushCbs","postFlushIndex","resolvedPromise","Promise","resolve","currentFlushPromise","currentPreFlushParentJob","then","findInsertionIndex","job","jobId","getId","middle","middleJobId","queueJob","allowRecurse","pos","splice","queueFlush","flushJobs","invalidateJob","queueCb","cb","activeQueue","pendingQueue","queuePreFlushCb","queuePostFlushCb","flushPreFlushCbs","seen","parentJob","Set","flushPostFlushCbs","deduped","Infinity","Map","emit","rawArgs","isModelListener","startsWith","modelArg","modifiersKey","handlerName","handler","onceHandler","emitted","normalizeEmitsOptions","comp","asMixin","deopt","__emits","emits","hasExtends","extendEmits","mixins","extends","isEmitListener","currentRenderingInstance","setCurrentRenderingInstance","renderComponentRoot","Component","withProxy","propsOptions","slots","attrs","render","renderCache","setupState","ctx","fallthroughAttrs","shapeFlag","proxyToUse","normalizeVNode","getFunctionalFallthrough","root","inheritAttrs","some","filterModelListeners","cloneVNode","dirs","transition","createVNode","Comment","filterSingleRoot","children","singleRoot","child","isVNode","shouldUpdateComponent","prevVNode","nextVNode","optimized","prevProps","prevChildren","nextProps","nextChildren","patchFlag","emitsOptions","$stable","hasPropsChanged","dynamicProps","nextKeys","updateHOCHostEl","subTree","isSuspense","__isSuspense","normalizeSuspenseChildren","content","fallback","normalizeSuspenseSlot","default","s","singleChild","queueEffectWithSuspense","suspense","pendingBranch","effects","isRenderingCompiledSlot","setCompiledSlotRendering","withCtx","renderFnWithContext","openBlock","owner","closeBlock","_c","currentScopeId","scopeIdStack","pushScopeId","popScopeId","withScopeId","initProps","rawProps","isStateful","isSSR","InternalObjectKey","setFullProps","updateProps","rawPrevProps","rawCurrentProps","kebabKey","resolvePropValue","propsToUpdate","camelizedKey","needCastKeys","camelKey","opt","hasDefault","defaultValue","setCurrentInstance","normalizePropsOptions","__props","extendProps","normalizedKey","validatePropName","prop","booleanIndex","getTypeIndex","stringIndex","getType","ctor","isSameType","expectedTypes","len","injectHook","hook","currentInstance","prepend","hooks","wrappedHook","__weh","isUnmounted","createHook","lifecycle","isInSSRComponentSetup","onBeforeMount","onMounted","onBeforeUpdate","onUpdated","onBeforeUnmount","onUnmounted","onRenderTriggered","onRenderTracked","onErrorCaptured","watchEffect","effect","doWatch","INITIAL_WATCHER_VALUE","watch","immediate","deep","flush","onTrack","onTrigger","cleanup","forceTrigger","_shallow","traverse","onInvalidate","baseGetter","onStop","oldValue","active","newValue","scheduler","queuePostRenderEffect","isMounted","lazy","recordInstanceBoundEffect","instanceWatch","publicThis","add","v","useTransitionState","isLeaving","isUnmounting","leavingVNodes","TransitionHookValidator","BaseTransitionImpl","appear","persisted","onBeforeEnter","onEnter","onAfterEnter","onEnterCancelled","onBeforeLeave","onLeave","onAfterLeave","onLeaveCancelled","onBeforeAppear","onAppear","onAfterAppear","onAppearCancelled","getCurrentInstance","prevTransitionKey","getTransitionRawChildren","emptyPlaceholder","innerChild","getKeepAliveChild","enterHooks","resolveTransitionHooks","setTransitionHooks","oldChild","oldInnerChild","transitionKeyChanged","getTransitionKey","isSameVNodeType","leavingHooks","afterLeave","update","delayLeave","earlyRemove","delayedLeave","leavingVNodesCache","getLeavingNodesForType","_leaveCb","BaseTransition","callHook","leavingVNode","afterHook","cancelHook","_enterCb","cancelled","remove","isKeepAlive","ssContent","clone","ssFallback","keepComment","ret","keyedFragmentCount","Fragment","__isKeepAlive","KeepAliveImpl","include","exclude","Number","cache","current","parentSuspense","sharedContext","renderer","patch","move","um","_unmount","o","storageContainer","unmount","resetShapeFlag","pruneCache","getComponentName","pruneCacheEntry","cached","delete","activate","container","anchor","isSVG","isDeactivated","vnodeHook","onVnodeMounted","invokeVNodeHook","deactivate","da","onVnodeUnmounted","matches","pendingCacheKey","cacheSubtree","getInnerChild","rawVNode","cachedVNode","size","KeepAlive","pattern","onActivated","registerKeepAliveHook","onDeactivated","__wdc","injectToKeepAliveRoot","keepAliveRoot","injected","isInternalKey","normalizeSlotValue","normalizeSlot","rawSlot","normalizeObjectSlots","rawSlots","_ctx","normalizeVNodeSlots","initSlots","_","updateSlots","needDeletionCheck","deletionComparisonTarget","withDirectives","directives","internalInstance","bindings","dir","arg","modifiers","mounted","updated","invokeDirectiveHook","oldBindings","binding","createAppContext","app","isNativeTag","performance","globalProperties","optionMergeStrategies","isCustomElement","components","provides","uid","createAppAPI","hydrate","rootComponent","rootProps","context","installedPlugins","_uid","_component","_props","_container","_context","plugin","install","mixin","directive","rootContainer","isHydrate","__vue_app__","hasMismatch","isSVGContainer","namespaceURI","tagName","isComment","node","nodeType","createHydrationFunctions","rendererInternals","mt","mountComponent","patchProp","nextSibling","parentNode","insert","createComment","hydrateNode","firstChild","parentComponent","isFragmentStart","onMismatch","handleMismatch","ref","domType","nextNode","Text","Static","needToAdoptContent","staticCount","outerHTML","hydrateFragment","hydrateElement","hydrateComponent","loadAsync","__asyncLoader","locateClosingAsyncAnchor","hydrateChildren","setRef","dynamicChildren","onClick","vnodeHooks","onVnodeBeforeMount","innerHTML","textContent","parentVNode","l","isFragment","initFeatureFlags","defineComponent","setup","isAsyncWrapper","defineAsyncComponent","loader","loadingComponent","errorComponent","delay","timeout","suspensible","onError","userOnError","resolvedComp","pendingRequest","retries","retry","load","thisRequest","Error","reject","userRetry","userFail","__esModule","toStringTag","createInnerComp","loaded","delayed","prodEffectOptions","rawRef","oldRawRef","r","exposed","oldRef","refs","doSet","createRenderer","baseCreateRenderer","createHydrationRenderer","createHydrationFns","hostInsert","hostRemove","hostPatchProp","forcePatchProp","hostForcePatchProp","hostCreateElement","createText","hostCreateText","hostCreateComment","setText","hostSetText","setElementText","hostSetElementText","hostParentNode","hostNextSibling","setScopeId","hostSetScopeId","cloneNode","hostCloneNode","insertStaticContent","hostInsertStaticContent","n1","n2","getNextHostNode","processText","processCommentNode","mountStaticNode","processFragment","processElement","processComponent","internals","moveStaticNode","removeStaticNode","mountElement","patchElement","scopeId","mountChildren","unmountChildren","needCallTransitionHooks","beforeEnter","enter","treeOwnerId","__scopeId","cloneIfMounted","oldProps","newProps","onVnodeBeforeUpdate","patchProps","class","style","prev","areChildrenSVG","patchBlockChildren","patchChildren","onVnodeUpdated","oldChildren","newChildren","fallbackContainer","oldVNode","newVNode","fragmentStartAnchor","fragmentEndAnchor","traverseStaticChildren","updateComponent","initialVNode","createComponentInstance","setupComponent","asyncDep","registerDep","setupRenderEffect","placeholder","asyncResolved","updateComponentPreRender","bu","u","originNext","nextTree","prevTree","bm","scopedInitialVNode","c1","prevShapeFlag","c2","patchKeyedChildren","patchUnkeyedChildren","oldLength","newLength","commonLength","nextChild","parentAnchor","l2","e1","e2","nextPos","s1","s2","keyToNewIndexMap","patched","toBePatched","moved","maxNewIndexSoFar","newIndexToOldIndexMap","prevChild","newIndex","increasingNewIndexSequence","getSequence","nextIndex","moveType","needTransition","leave","performLeave","doRemove","shouldInvokeDirs","onVnodeBeforeUnmount","unmountComponent","isTeleportDisabled","removeFragment","performRemove","bum","suspenseId","pendingId","deps","_vnode","mc","pc","pbc","createApp","shallow","ch1","ch2","arr","arrI","isTeleport","__isTeleport","disabled","COMPONENTS","resolveComponent","resolveAsset","NULL_DYNAMIC_COMPONENT","warnMissing","selfName","registry","blockStack","currentBlock","disableTracking","shouldTrack","createBlock","__v_isVNode","normalizeKey","normalizeRef","_createVNode","isBlockNode","cloned","normalizeChildren","isClassComponent","__vccOpts","klass","targetAnchor","extraProps","mergeRef","mergedProps","mergeProps","createTextVNode","text","flag","createCommentVNode","asBlock","slot","slotFlag","toMerge","existing","incoming","provide","parentProvides","inject","treatDefaultAsFactory","isInBeforeCreate","applyOptions","deferredData","deferredWatch","deferredProvide","extendsOptions","dataOptions","computed","computedOptions","methods","watchOptions","provideOptions","injectOptions","beforeMount","beforeUpdate","activated","deactivated","beforeDestroy","beforeUnmount","destroyed","unmounted","renderTracked","renderTriggered","errorCaptured","expose","globalMixins","callSyncHook","applyMixins","methodHandler","dataFn","resolveData","createWatcher","Reflect","ownKeys","callHookFromMixins","callHookFromExtends","selfHook","baseHook","chainedMixins","createPathGetter","segments","resolveMergedOptions","__merged","mergeOptions","to","strats","getPublicInstance","isStatefulComponent","publicPropertiesMap","$el","$data","$props","$attrs","$slots","$refs","$parent","$root","$emit","$options","$forceUpdate","$nextTick","$watch","PublicInstanceProxyHandlers","accessCache","normalizedProps","publicGetter","cssModule","__cssModules","RuntimeCompiledPublicInstanceProxyHandlers","unscopables","emptyAppContext","uid$1","setupContext","bc","rtg","rtc","compile","setupResult","setupStatefulComponent","Proxy","createSetupContext","resolvedResult","handleSetupResult","finishComponentSetup","isRuntimeOnly","template","delimiters","_rc","classifyRE","classify","toUpperCase","displayName","__file","inferFromRegistry","getterOrOptions","h","propsOrChildren","initCustomFormatter","renderList","renderItem","bitmap","writable","maxInt","tMin","tMax","skew","damp","initialBias","initialN","delimiter","regexNonASCII","regexSeparators","OVERFLOW_ERROR","baseMinusTMin","stringFromCharCode","fromCharCode","ucs2decode","charCodeAt","extra","digitToBasic","digit","adapt","delta","numPoints","firstTime","k","encode","currentValue","inputLength","bias","basicLength","handledCPCount","handledCPCountPlusOne","RangeError","q","t","qMinusT","baseMinusT","label","encoded","labels","IndexedObject","nativeAssign","A","B","symbol","alphabet","chr","T","CONVERT_TO_STRING","first","isArray","originalArray","NATIVE_WEAK_MAP","objectHas","shared","sharedKey","WeakMap","enforce","wmget","wmhas","wmset","metadata","facade","STATE","inspectSource","enforceInternalState","TEMPLATE","simple","setPrototypeOf","dummy","Wrapper","NewTarget","NewTargetPrototype","wrappedWellKnownSymbolModule","NAME","svgNS","doc","document","tempContainer","tempSVGContainer","nodeOps","insertBefore","tag","createElementNS","createTextNode","nodeValue","querySelector","selector","setAttribute","temp","patchClass","transitionClasses","_vtc","className","patchStyle","display","cssText","setStyle","removeAttribute","importantRE","val","setProperty","prefixed","autoPrefix","prefixes","prefixCache","rawName","xlinkNS","patchAttr","removeAttributeNS","setAttributeNS","isBoolean","patchDOMProp","e","_value","_getNow","Date","createEvent","timeStamp","cachedNow","getNow","removeEventListener","patchEvent","prevValue","nextValue","invokers","_vei","existingInvoker","parseName","invoker","createInvoker","optionsModifierRE","initialValue","attached","patchStopImmediatePropagation","originalStop","stopImmediatePropagation","_stopped","nativeOnRE","shouldSetAsProp","_trueValue","_falseValue","TRANSITION","ANIMATION","Transition","resolveTransitionProps","DOMTransitionPropsValidators","css","duration","enterFromClass","enterActiveClass","enterToClass","appearFromClass","appearActiveClass","appearToClass","leaveFromClass","leaveActiveClass","leaveToClass","baseProps","durations","normalizeDuration","enterDuration","leaveDuration","finishEnter","isAppear","removeTransitionClass","finishLeave","makeEnterHook","nextFrame","addTransitionClass","whenTransitionEnds","forceReflow","NumberOf","cls","classList","requestAnimationFrame","endId","expectedType","explicitTimeout","_endId","resolveIfNotStale","propCount","getTransitionInfo","endEvent","ended","onEnd","styles","getComputedStyle","getStyleProperties","transitionDelays","transitionDurations","transitionTimeout","getTimeout","animationDelays","animationDurations","animationTimeout","hasTransform","delays","d","toMs","body","offsetHeight","systemModifiers","modifierGuards","stopPropagation","prevent","preventDefault","self","currentTarget","ctrl","ctrlKey","shiftKey","alt","altKey","meta","metaKey","left","button","right","exact","withModifiers","guard","vShow","_vod","setDisplay","rendererOptions","ensureRenderer","mount","containerOrSelector","normalizeContainer","Element","activeXDocument","documentCreateElement","GT","LT","PROTOTYPE","SCRIPT","IE_PROTO","EmptyConstructor","scriptTag","NullProtoObjectViaActiveX","write","parentWindow","NullProtoObjectViaIFrame","iframeDocument","iframe","JS","src","contentWindow","F","NullProtoObject","domain","ActiveXObject","$find","find","addToUnscopables","FIND","SKIPS_HOLES","createIteratorConstructor","getPrototypeOf","IteratorsCore","IteratorPrototype","BUGGY_SAFARI_ITERATORS","KEYS","VALUES","ENTRIES","returnThis","Iterable","IteratorConstructor","DEFAULT","IS_SET","CurrentIteratorPrototype","KEY","getIterationMethod","KIND","defaultIterator","IterablePrototype","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","entries","propertyKey","sameValue","SEARCH","nativeSearch","searcher","previousLastIndex","functionToString","random","regexpFlags","stickyHelpers","nativeExec","patchedExec","UPDATES_LAST_INDEX_WRONG","re1","re2","UNSUPPORTED_Y","BROKEN_CARET","NPCG_INCLUDED","PATCH","reCopy","re","sticky","charsAdded","strCopy","multiline","feature","detection","normalize","POLYFILL","NATIVE","redefineAll","hasOwn","getIterator","$fetch","Headers","URL_SEARCH_PARAMS","URL_SEARCH_PARAMS_ITERATOR","getInternalParamsState","getInternalIteratorState","plus","sequences","percentSequence","bytes","percentDecode","sequence","decodeURIComponent","deserialize","serialize","parseSearchParams","attribute","attributes","validateArgumentsLength","passed","required","URLSearchParamsIterator","params","kind","URLSearchParamsConstructor","entryIterator","entryNext","init","URLSearchParamsPrototype","append","getAll","found","entriesIndex","sliceIndex","callback","boundFunction","fetch","headers","nativeDefineProperty","Attributes","RE","makeMap","expectsLowerCase","list","GLOBALS_WHITE_LISTED","isGloballyWhitelisted","specialBooleanAttrs","isSpecialBooleanAttr","normalizeStyle","item","isString","parseStringStyle","listDelimiterRE","propertyDelimiterRE","tmp","normalizeClass","HTML_TAGS","SVG_TAGS","isHTMLTag","isSVGTag","looseCompareArrays","equal","looseEqual","aValidType","isDate","bValidType","getTime","aKeysCount","bKeysCount","aHasKey","bHasKey","looseIndexOf","findIndex","toDisplayString","_key","isMap","reduce","isSet","isPlainObject","EMPTY_OBJ","EMPTY_ARR","NOOP","NO","onRE","isOn","extend","toTypeString","isFunction","isSymbol","isPromise","objectToString","toRawType","isIntegerKey","isReservedProp","cacheStringFunction","hit","camelizeRE","camelize","hyphenateRE","hyphenate","capitalize","toHandlerKey","hasChanged","invokeArrayFns","fns","def","obj","toNumber","parseFloat","isNaN","targetMap","effectStack","activeEffect","ITERATE_KEY","MAP_KEY_ITERATE_KEY","isEffect","_isEffect","createReactiveEffect","enableTracking","resetTracking","trackStack","pauseTracking","track","depsMap","dep","trigger","oldTarget","effectsToAdd","isNonTrackableKeys","builtInSymbols","createGetter","shallowGet","readonlyGet","shallowReadonlyGet","arrayInstrumentations","isReadonly","receiver","readonlyMap","reactiveMap","targetIsArray","isRef","shouldUnwrap","readonly","reactive","method","toRaw","createSetter","shallowSet","hadKey","deleteProperty","mutableHandlers","readonlyHandlers","shallowReactiveHandlers","toReactive","toReadonly","toShallow","getProto","get$1","isShallow","rawTarget","rawKey","wrap","has$1","set$1","deleteEntry","hadItems","createForEach","thisArg","observed","createIterableMethod","targetIsMap","isPair","isKeyOnly","innerIterator","createReadonlyMethod","mutableInstrumentations","shallowInstrumentations","readonlyInstrumentations","iteratorMethods","createInstrumentationGetter","instrumentations","mutableCollectionHandlers","shallowCollectionHandlers","readonlyCollectionHandlers","targetTypeMap","rawType","getTargetType","isExtensible","createReactiveObject","shallowReactive","baseHandlers","collectionHandlers","proxyMap","existingProxy","targetType","isReactive","isProxy","convert","__v_isRef","createRef","RefImpl","_rawValue","newVal","rawValue","unref","shallowUnwrapHandlers","proxyRefs","objectWithRefs","CustomRefImpl","factory","_get","_set","customRef","ObjectRefImpl","_object","toRef","ComputedRefImpl","_setter","_dirty","NATIVE_SYMBOL","USE_SYMBOL_AS_UID","nativeObjectCreate","getOwnPropertyNamesExternal","getOwnPropertyDescriptorModule","defineWellKnownSymbol","$forEach","HIDDEN","SYMBOL","TO_PRIMITIVE","ObjectPrototype","$Symbol","$stringify","nativePropertyIsEnumerable","AllSymbols","ObjectPrototypeSymbols","StringToSymbolRegistry","SymbolToStringRegistry","WellKnownSymbolsStore","QObject","USE_SETTER","findChild","setSymbolDescriptor","ObjectPrototypeDescriptor","description","$defineProperty","$defineProperties","properties","$getOwnPropertySymbols","$propertyIsEnumerable","$create","V","$getOwnPropertyDescriptor","$getOwnPropertyNames","names","IS_OBJECT_PROTOTYPE","keyFor","sym","useSetter","useSimple","FORCED_JSON_STRINGIFY","space","$replacer","valueOf","ceil","NativePromise","speciesConstructor","promiseResolve","NON_GENERIC","real","onFinally","inheritIfRequired","NUMBER","NativeNumber","NumberPrototype","BROKEN_CLASSOF","maxCode","digits","NaN","NumberWrapper","error1","error2","commonjsGlobal","createCommonjsModule","humps","_processKeys","_isObject","_isDate","_isRegExp","_isBoolean","_isFunction","_isArray","separateWords","separator","_isNumerical","substr","pascalize","camelized","decamelize","_processor","depascalize","camelizeKeys","decamelizeKeys","pascalizeKeys","depascalizeKeys","_typeof","_extends","objectWithoutProperties","toConsumableArray","arr2","styleToObject","pair","idx","classToObject","classes","abstractElement","renderFn","_attrs$style","aStyle","otherAttrs","PRODUCTION","log","_console","objectWithKey","_classes","spin","pulse","fixedWidth","border","listItem","inverse","flip","rotation","pull","swapOpacity","normalizeIconArgs","icon$$1","prefix","iconName","FontAwesomeIcon","validator","icon","mask","transform","title","_ref","renderedIcon","abstract","familyPrefix","renderedText","ignoreCase","dotAll","PrototypeOfArrayIteratorPrototype","arrayIterator","NEW_ITERATOR_PROTOTYPE","TO_STRING_TAG_SUPPORT","FunctionPrototype","FunctionPrototypeToString","nameRE","head","notify","toggle","promise","macrotask","IS_WEBOS_WEBKIT","MutationObserver","WebKitMutationObserver","queueMicrotaskDescriptor","queueMicrotask","exit","observe","characterData","task","createWellKnownSymbol","withoutSetter","arraySpeciesCreate","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","IS_FILTER_OUT","NO_HOLES","specificCreate","every","filterOut","PREFERRED_STRING","faAngleDown","faAngleUp","faBook","faInfoCircle","faRocket","faSignInAlt","SHARED","$findIndex","FIND_INDEX","g","$includes","EXISTS","newPromiseCapability","promiseCapability","variable","namespace","NASHORN_BUG","1","aPossiblePrototype","CORRECT_SETTER","__proto__","TAG","REPLACE_SUPPORTS_NAMED_GROUPS","SPLIT_WORKS_WITH_OVERWRITTEN_EXEC","originalExec","DELEGATES_TO_SYMBOL","DELEGATES_TO_EXEC","execCalled","nativeRegExpMethod","nativeMethod","arg2","forceStringMethod","stringMethod","regexMethod","check","globalThis","DOMIterables","ArrayIteratorMethods","ArrayValues","COLLECTION_NAME","Collection","CollectionPrototype","NativeSymbol","EmptyStringDescriptionStore","SymbolWrapper","symbolPrototype","symbolToString","native","desc","CORRECT_PROTOTYPE_GETTER","ARRAY_ITERATOR","Arguments","Internal","OwnPromiseCapability","PromiseWrapper","nativeThen","setSpecies","iterate","checkCorrectnessOfIteration","microtask","hostReportErrors","newPromiseCapabilityModule","perform","PROMISE","getInternalPromiseState","PromiseConstructor","newGenericPromiseCapability","DISPATCH_EVENT","dispatchEvent","NATIVE_REJECTION_EVENT","PromiseRejectionEvent","UNHANDLED_REJECTION","REJECTION_HANDLED","PENDING","FULFILLED","REJECTED","HANDLED","UNHANDLED","GLOBAL_CORE_JS_PROMISE","FakePromise","INCORRECT_ITERATION","all","isThenable","isReject","notified","chain","reactions","ok","exited","reaction","fail","rejection","onHandleUnhandled","onUnhandled","initEvent","IS_UNHANDLED","isUnhandled","unwrap","internalReject","internalResolve","wrapper","executor","onFulfilled","onRejected","capability","$promiseResolve","remaining","alreadyCalled","race","_classCallCheck","_defineProperties","_createClass","protoProps","staticProps","_defineProperty","_objectSpread","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","_toConsumableArray","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","iter","_arr","_n","_d","_e","_s","_i","noop","_WINDOW","_DOCUMENT","_PERFORMANCE","mark","measure","navigator","_ref$userAgent","WINDOW","DOCUMENT","PERFORMANCE","IS_DOM","documentElement","IS_IE","NAMESPACE_IDENTIFIER","UNITS_IN_GRID","DEFAULT_FAMILY_PREFIX","DEFAULT_REPLACEMENT_CLASS","DATA_FA_I2SVG","oneToTen","oneToTwenty","DUOTONE_CLASSES","GROUP","SWAP_OPACITY","PRIMARY","SECONDARY","initial","FontAwesomeConfig","getAttrConfig","attr","element","getAttribute","coerce","_ref2","_default","replacementClass","autoReplaceSvg","autoAddCss","autoA11y","searchPseudoElements","observeMutations","mutateApproach","keepOriginalSource","measurePerformance","showMissingIcons","_config","w","shims","functions","doScroll","readyState","asyncTimer","SETTLED","isNode","asyncSetTimer","asyncQueue","asyncFlush","asyncCall","invokeResolver","resolver","resolvePromise","rejectPromise","invokeCallback","subscriber","settled","_state","_data","handleThenable","resolved","fulfill","publishFulfillment","publishRejection","publish","_then","_handled","notifyRejectionHandled","onFulfillment","onRejection","fulfilled","rejected","promises","meaninglessTransform","rotate","flipX","flipY","insertCss","headChildren","childNodes","beforeChild","idPool","nextUniqueId","htmlEscape","joinAttributes","acc","attributeName","joinStyles","styleName","transformIsMeaningful","transformForSvg","containerWidth","iconWidth","outer","innerTranslate","innerScale","innerRotate","inner","transformForCss","_ref2$width","width","_ref2$height","height","_ref2$startCentered","startCentered","ALL_SPACE","fillBlack","force","fill","deGroup","makeIconMasking","main","explicitMaskId","maskId","mainWidth","mainPath","maskWidth","maskPath","trans","maskRect","maskInnerGroupChildrenMixin","maskInnerGroup","maskOuterGroup","clipId","maskTag","maskUnits","maskContentUnits","defs","makeIconStandard","styleString","asIcon","offset","asSymbol","makeInlineSvgAbstract","_params$icons","icons","titleId","_params$watchable","watchable","isUploadedIcon","widthClass","attrClass","role","uploadedIconWidthStyle","makeLayersTextAbstract","_params$watchable2","noop$1","bindInternal4","func","thisContext","subject","defineIcons","_params$skipHooks","skipHooks","expanded","addPack","build","lookup","reducer","ligatures","ligature","hasRegular","shim","oldName","iconFromMapping","toHtml","abstractNodes","_abstractNodes$attrib","_abstractNodes$childr","parseTransformString","transformString","rest","MissingIcon","message","FILL","ANIMATION_BASE","attributeType","repeatCount","dur","OPACITY_ANIMATE","cx","cy","opacity","asFoundIcon","_icon$slice","_icon$slice2","vectorData","baseStyles","dfp","drc","fp","rc","dPatt","customPropPatt","rPatt","Library","definitions","_this","_len","additions","_pullDefinitions","definition","0","_normalized$key","ensureCss","_cssInserted","apiObject","abstractCreator","findIconDefinition","iconLookup","_iconLookup$prefix","library","resolveIcons","maybeIconDefinition","iconDefinition","parse","_params$transform","_params$symbol","_params$mask","_params$maskId","_params$title","_params$titleId","_params$classes","_params$attributes","_params$styles","_params$transform2","_params$title2","_params$classes2","_params$attributes2","_params$styles2","PromiseCapability","$$resolve","$$reject","faGithub","faGitter","classofRaw","CORRECT_ARGUMENTS","tryGet","callee","isNumber","isElement","NO_OP","PASSIVE_EV","passive","promisedTimeout","isClient","useEvent","removeWatch","cleanUp","useDebounce","wait","debounce","waitMilliseconds","isImmediate","timeoutId","doLater","shouldCallNow","clearTimeout","SCROLL_METHODS","useOnScroll","isValidElement","scrollableElement","scrollingElement","scrollTop","scrollLeft","scrollTopTo","top","scrollTo","scrollLeftTo","eventOptions","ms","eventRemove","watchRemoveTop","watchRemoveLeft","apiProxyFactory","async","pushEventsToApi","api","EventQueue","ApiQueue","priority","notifyComponentUpdate","on","promiseApi","onProxy","useMatchMedia","supported","mediaQueryList","matchMedia","getBreakpointWidth","bp","isValidWidthBreakpoint","useBreakpoint","breakpoints","sorted","removeMedia","valid","resize","innerWidth","processResize","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList"],"mappings":"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","file":"js/chunk-vendors.535d76a2.js","sourcesContent":["var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","var aFunction = require('../internals/a-function');\n\n// optional / simple context binding\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 0: return function () {\n return fn.call(that);\n };\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar nativeGetOwnPropertyNames = require('../internals/object-get-own-property-names').f;\n\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return nativeGetOwnPropertyNames(it);\n } catch (error) {\n return windowNames.slice();\n }\n};\n\n// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && toString.call(it) == '[object Window]'\n ? getWindowNames(it)\n : nativeGetOwnPropertyNames(toIndexedObject(it));\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPrimitive = require('../internals/to-primitive');\nvar has = require('../internals/has');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\nvar nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return nativeGetOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]);\n};\n","var toObject = require('../internals/to-object');\n\nvar floor = Math.floor;\nvar replace = ''.replace;\nvar SUBSTITUTION_SYMBOLS = /\\$([$&'`]|\\d{1,2}|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&'`]|\\d{1,2})/g;\n\n// https://tc39.es/ecma262/#sec-getsubstitution\nmodule.exports = function (matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return replace.call(replacement, symbols, function (match, ch) {\n var capture;\n switch (ch.charAt(0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return str.slice(0, position);\n case \"'\": return str.slice(tailPos);\n case '<':\n capture = namedCaptures[ch.slice(1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = !fails(function () {\n var url = new URL('b?a=1&b=2&c=3', 'http://a');\n var searchParams = url.searchParams;\n var result = '';\n url.pathname = 'c%20d';\n searchParams.forEach(function (value, key) {\n searchParams['delete']('b');\n result += key + value;\n });\n return (IS_PURE && !url.toJSON)\n || !searchParams.sort\n || url.href !== 'http://a/c%20d?a=1&c=3'\n || searchParams.get('c') !== '3'\n || String(new URLSearchParams('?a=1')) !== 'a=1'\n || !searchParams[ITERATOR]\n // throws in Edge\n || new URL('https://a@b').username !== 'a'\n || new URLSearchParams(new URLSearchParams('a=b')).get('a') !== 'b'\n // not punycoded in Edge\n || new URL('http://тест').host !== 'xn--e1aybc'\n // not escaped in Chrome 62-\n || new URL('http://a#б').hash !== '#%D0%B1'\n // fails in Chrome 66-\n || result !== 'a1c3'\n // throws in Safari\n || new URL('http://x', undefined).host !== 'x';\n});\n","// `SameValue` abstract operation\n// https://tc39.es/ecma262/#sec-samevalue\nmodule.exports = Object.is || function is(x, y) {\n // eslint-disable-next-line no-self-compare -- NaN check\n return x === y ? x !== 0 || 1 / x === 1 / y : x != x && y != y;\n};\n","var classof = require('./classof-raw');\nvar regexpExec = require('./regexp-exec');\n\n// `RegExpExec` abstract operation\n// https://tc39.es/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n var exec = R.exec;\n if (typeof exec === 'function') {\n var result = exec.call(R, S);\n if (typeof result !== 'object') {\n throw TypeError('RegExp exec method returned something other than an Object or null');\n }\n return result;\n }\n\n if (classof(R) !== 'RegExp') {\n throw TypeError('RegExp#exec called on incompatible receiver');\n }\n\n return regexpExec.call(R, S);\n};\n\n","module.exports = function (it, Constructor, name) {\n if (!(it instanceof Constructor)) {\n throw TypeError('Incorrect ' + (name ? name + ' ' : '') + 'invocation');\n } return it;\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","module.exports = function (it) {\n if (typeof it != 'function') {\n throw TypeError(String(it) + ' is not a function');\n } return it;\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line no-throw-literal -- required for testing\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /(iphone|ipod|ipad).*applewebkit/i.test(userAgent);\n","// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","var fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (METHOD_NAME) {\n // We can't use this feature detection in V8 since it causes\n // deoptimization and serious performance degradation\n // https://github.com/zloirock/core-js/issues/677\n return V8_VERSION >= 51 || !fails(function () {\n var array = [];\n var constructor = array.constructor = {};\n constructor[SPECIES] = function () {\n return { foo: 1 };\n };\n return array[METHOD_NAME](Boolean).foo !== 1;\n });\n};\n","var anObject = require('../internals/an-object');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar toLength = require('../internals/to-length');\nvar bind = require('../internals/function-bind-context');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar iteratorClose = require('../internals/iterator-close');\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nmodule.exports = function (iterable, unboundFunction, options) {\n var that = options && options.that;\n var AS_ENTRIES = !!(options && options.AS_ENTRIES);\n var IS_ITERATOR = !!(options && options.IS_ITERATOR);\n var INTERRUPTED = !!(options && options.INTERRUPTED);\n var fn = bind(unboundFunction, that, 1 + AS_ENTRIES + INTERRUPTED);\n var iterator, iterFn, index, length, result, next, step;\n\n var stop = function (condition) {\n if (iterator) iteratorClose(iterator);\n return new Result(true, condition);\n };\n\n var callFn = function (value) {\n if (AS_ENTRIES) {\n anObject(value);\n return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);\n } return INTERRUPTED ? fn(value, stop) : fn(value);\n };\n\n if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (typeof iterFn != 'function') throw TypeError('Target is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = toLength(iterable.length); length > index; index++) {\n result = callFn(iterable[index]);\n if (result && result instanceof Result) return result;\n } return new Result(false);\n }\n iterator = iterFn.call(iterable);\n }\n\n next = iterator.next;\n while (!(step = next.call(iterator)).done) {\n try {\n result = callFn(step.value);\n } catch (error) {\n iteratorClose(iterator);\n throw error;\n }\n if (typeof result == 'object' && result && result instanceof Result) return result;\n } return new Result(false);\n};\n","var toInteger = require('../internals/to-integer');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toInteger(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar setGlobal = require('../internals/set-global');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.noTargetGet - prevent calling a getter on target\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || setGlobal(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.noTargetGet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty === typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n // extend global\n redefine(target, key, sourceProperty, options);\n }\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\n\n// `String.prototype.includes` method\n// https://tc39.es/ecma262/#sec-string.prototype.includes\n$({ target: 'String', proto: true, forced: !correctIsRegExpLogic('includes') }, {\n includes: function includes(searchString /* , position = 0 */) {\n return !!~String(requireObjectCoercible(this))\n .indexOf(notARegExp(searchString), arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar redefine = require('../internals/redefine');\nvar anObject = require('../internals/an-object');\nvar fails = require('../internals/fails');\nvar flags = require('../internals/regexp-flags');\n\nvar TO_STRING = 'toString';\nvar RegExpPrototype = RegExp.prototype;\nvar nativeToString = RegExpPrototype[TO_STRING];\n\nvar NOT_GENERIC = fails(function () { return nativeToString.call({ source: 'a', flags: 'b' }) != '/a/b'; });\n// FF44- RegExp#toString has a wrong name\nvar INCORRECT_NAME = nativeToString.name != TO_STRING;\n\n// `RegExp.prototype.toString` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.tostring\nif (NOT_GENERIC || INCORRECT_NAME) {\n redefine(RegExp.prototype, TO_STRING, function toString() {\n var R = anObject(this);\n var p = String(R.source);\n var rf = R.flags;\n var f = String(rf === undefined && R instanceof RegExp && !('flags' in RegExpPrototype) ? flags.call(R) : rf);\n return '/' + p + '/' + f;\n }, { unsafe: true });\n}\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar definePropertyModule = require('../internals/object-define-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n var defineProperty = definePropertyModule.f;\n\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n defineProperty(Constructor, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n }\n};\n","var anObject = require('../internals/an-object');\n\nmodule.exports = function (iterator) {\n var returnMethod = iterator['return'];\n if (returnMethod !== undefined) {\n return anObject(returnMethod.call(iterator)).value;\n }\n};\n","'use strict';\n// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`\nrequire('../modules/es.string.iterator');\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar USE_NATIVE_URL = require('../internals/native-url');\nvar global = require('../internals/global');\nvar defineProperties = require('../internals/object-define-properties');\nvar redefine = require('../internals/redefine');\nvar anInstance = require('../internals/an-instance');\nvar has = require('../internals/has');\nvar assign = require('../internals/object-assign');\nvar arrayFrom = require('../internals/array-from');\nvar codeAt = require('../internals/string-multibyte').codeAt;\nvar toASCII = require('../internals/string-punycode-to-ascii');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar URLSearchParamsModule = require('../modules/web.url-search-params');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar NativeURL = global.URL;\nvar URLSearchParams = URLSearchParamsModule.URLSearchParams;\nvar getInternalSearchParamsState = URLSearchParamsModule.getState;\nvar setInternalState = InternalStateModule.set;\nvar getInternalURLState = InternalStateModule.getterFor('URL');\nvar floor = Math.floor;\nvar pow = Math.pow;\n\nvar INVALID_AUTHORITY = 'Invalid authority';\nvar INVALID_SCHEME = 'Invalid scheme';\nvar INVALID_HOST = 'Invalid host';\nvar INVALID_PORT = 'Invalid port';\n\nvar ALPHA = /[A-Za-z]/;\nvar ALPHANUMERIC = /[\\d+-.A-Za-z]/;\nvar DIGIT = /\\d/;\nvar HEX_START = /^(0x|0X)/;\nvar OCT = /^[0-7]+$/;\nvar DEC = /^\\d+$/;\nvar HEX = /^[\\dA-Fa-f]+$/;\n/* eslint-disable no-control-regex -- safe */\nvar FORBIDDEN_HOST_CODE_POINT = /[\\u0000\\t\\u000A\\u000D #%/:?@[\\\\]]/;\nvar FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT = /[\\u0000\\t\\u000A\\u000D #/:?@[\\\\]]/;\nvar LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE = /^[\\u0000-\\u001F ]+|[\\u0000-\\u001F ]+$/g;\nvar TAB_AND_NEW_LINE = /[\\t\\u000A\\u000D]/g;\n/* eslint-enable no-control-regex -- safe */\nvar EOF;\n\nvar parseHost = function (url, input) {\n var result, codePoints, index;\n if (input.charAt(0) == '[') {\n if (input.charAt(input.length - 1) != ']') return INVALID_HOST;\n result = parseIPv6(input.slice(1, -1));\n if (!result) return INVALID_HOST;\n url.host = result;\n // opaque host\n } else if (!isSpecial(url)) {\n if (FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT.test(input)) return INVALID_HOST;\n result = '';\n codePoints = arrayFrom(input);\n for (index = 0; index < codePoints.length; index++) {\n result += percentEncode(codePoints[index], C0ControlPercentEncodeSet);\n }\n url.host = result;\n } else {\n input = toASCII(input);\n if (FORBIDDEN_HOST_CODE_POINT.test(input)) return INVALID_HOST;\n result = parseIPv4(input);\n if (result === null) return INVALID_HOST;\n url.host = result;\n }\n};\n\nvar parseIPv4 = function (input) {\n var parts = input.split('.');\n var partsLength, numbers, index, part, radix, number, ipv4;\n if (parts.length && parts[parts.length - 1] == '') {\n parts.pop();\n }\n partsLength = parts.length;\n if (partsLength > 4) return input;\n numbers = [];\n for (index = 0; index < partsLength; index++) {\n part = parts[index];\n if (part == '') return input;\n radix = 10;\n if (part.length > 1 && part.charAt(0) == '0') {\n radix = HEX_START.test(part) ? 16 : 8;\n part = part.slice(radix == 8 ? 1 : 2);\n }\n if (part === '') {\n number = 0;\n } else {\n if (!(radix == 10 ? DEC : radix == 8 ? OCT : HEX).test(part)) return input;\n number = parseInt(part, radix);\n }\n numbers.push(number);\n }\n for (index = 0; index < partsLength; index++) {\n number = numbers[index];\n if (index == partsLength - 1) {\n if (number >= pow(256, 5 - partsLength)) return null;\n } else if (number > 255) return null;\n }\n ipv4 = numbers.pop();\n for (index = 0; index < numbers.length; index++) {\n ipv4 += numbers[index] * pow(256, 3 - index);\n }\n return ipv4;\n};\n\n// eslint-disable-next-line max-statements -- TODO\nvar parseIPv6 = function (input) {\n var address = [0, 0, 0, 0, 0, 0, 0, 0];\n var pieceIndex = 0;\n var compress = null;\n var pointer = 0;\n var value, length, numbersSeen, ipv4Piece, number, swaps, swap;\n\n var char = function () {\n return input.charAt(pointer);\n };\n\n if (char() == ':') {\n if (input.charAt(1) != ':') return;\n pointer += 2;\n pieceIndex++;\n compress = pieceIndex;\n }\n while (char()) {\n if (pieceIndex == 8) return;\n if (char() == ':') {\n if (compress !== null) return;\n pointer++;\n pieceIndex++;\n compress = pieceIndex;\n continue;\n }\n value = length = 0;\n while (length < 4 && HEX.test(char())) {\n value = value * 16 + parseInt(char(), 16);\n pointer++;\n length++;\n }\n if (char() == '.') {\n if (length == 0) return;\n pointer -= length;\n if (pieceIndex > 6) return;\n numbersSeen = 0;\n while (char()) {\n ipv4Piece = null;\n if (numbersSeen > 0) {\n if (char() == '.' && numbersSeen < 4) pointer++;\n else return;\n }\n if (!DIGIT.test(char())) return;\n while (DIGIT.test(char())) {\n number = parseInt(char(), 10);\n if (ipv4Piece === null) ipv4Piece = number;\n else if (ipv4Piece == 0) return;\n else ipv4Piece = ipv4Piece * 10 + number;\n if (ipv4Piece > 255) return;\n pointer++;\n }\n address[pieceIndex] = address[pieceIndex] * 256 + ipv4Piece;\n numbersSeen++;\n if (numbersSeen == 2 || numbersSeen == 4) pieceIndex++;\n }\n if (numbersSeen != 4) return;\n break;\n } else if (char() == ':') {\n pointer++;\n if (!char()) return;\n } else if (char()) return;\n address[pieceIndex++] = value;\n }\n if (compress !== null) {\n swaps = pieceIndex - compress;\n pieceIndex = 7;\n while (pieceIndex != 0 && swaps > 0) {\n swap = address[pieceIndex];\n address[pieceIndex--] = address[compress + swaps - 1];\n address[compress + --swaps] = swap;\n }\n } else if (pieceIndex != 8) return;\n return address;\n};\n\nvar findLongestZeroSequence = function (ipv6) {\n var maxIndex = null;\n var maxLength = 1;\n var currStart = null;\n var currLength = 0;\n var index = 0;\n for (; index < 8; index++) {\n if (ipv6[index] !== 0) {\n if (currLength > maxLength) {\n maxIndex = currStart;\n maxLength = currLength;\n }\n currStart = null;\n currLength = 0;\n } else {\n if (currStart === null) currStart = index;\n ++currLength;\n }\n }\n if (currLength > maxLength) {\n maxIndex = currStart;\n maxLength = currLength;\n }\n return maxIndex;\n};\n\nvar serializeHost = function (host) {\n var result, index, compress, ignore0;\n // ipv4\n if (typeof host == 'number') {\n result = [];\n for (index = 0; index < 4; index++) {\n result.unshift(host % 256);\n host = floor(host / 256);\n } return result.join('.');\n // ipv6\n } else if (typeof host == 'object') {\n result = '';\n compress = findLongestZeroSequence(host);\n for (index = 0; index < 8; index++) {\n if (ignore0 && host[index] === 0) continue;\n if (ignore0) ignore0 = false;\n if (compress === index) {\n result += index ? ':' : '::';\n ignore0 = true;\n } else {\n result += host[index].toString(16);\n if (index < 7) result += ':';\n }\n }\n return '[' + result + ']';\n } return host;\n};\n\nvar C0ControlPercentEncodeSet = {};\nvar fragmentPercentEncodeSet = assign({}, C0ControlPercentEncodeSet, {\n ' ': 1, '\"': 1, '<': 1, '>': 1, '`': 1\n});\nvar pathPercentEncodeSet = assign({}, fragmentPercentEncodeSet, {\n '#': 1, '?': 1, '{': 1, '}': 1\n});\nvar userinfoPercentEncodeSet = assign({}, pathPercentEncodeSet, {\n '/': 1, ':': 1, ';': 1, '=': 1, '@': 1, '[': 1, '\\\\': 1, ']': 1, '^': 1, '|': 1\n});\n\nvar percentEncode = function (char, set) {\n var code = codeAt(char, 0);\n return code > 0x20 && code < 0x7F && !has(set, char) ? char : encodeURIComponent(char);\n};\n\nvar specialSchemes = {\n ftp: 21,\n file: null,\n http: 80,\n https: 443,\n ws: 80,\n wss: 443\n};\n\nvar isSpecial = function (url) {\n return has(specialSchemes, url.scheme);\n};\n\nvar includesCredentials = function (url) {\n return url.username != '' || url.password != '';\n};\n\nvar cannotHaveUsernamePasswordPort = function (url) {\n return !url.host || url.cannotBeABaseURL || url.scheme == 'file';\n};\n\nvar isWindowsDriveLetter = function (string, normalized) {\n var second;\n return string.length == 2 && ALPHA.test(string.charAt(0))\n && ((second = string.charAt(1)) == ':' || (!normalized && second == '|'));\n};\n\nvar startsWithWindowsDriveLetter = function (string) {\n var third;\n return string.length > 1 && isWindowsDriveLetter(string.slice(0, 2)) && (\n string.length == 2 ||\n ((third = string.charAt(2)) === '/' || third === '\\\\' || third === '?' || third === '#')\n );\n};\n\nvar shortenURLsPath = function (url) {\n var path = url.path;\n var pathSize = path.length;\n if (pathSize && (url.scheme != 'file' || pathSize != 1 || !isWindowsDriveLetter(path[0], true))) {\n path.pop();\n }\n};\n\nvar isSingleDot = function (segment) {\n return segment === '.' || segment.toLowerCase() === '%2e';\n};\n\nvar isDoubleDot = function (segment) {\n segment = segment.toLowerCase();\n return segment === '..' || segment === '%2e.' || segment === '.%2e' || segment === '%2e%2e';\n};\n\n// States:\nvar SCHEME_START = {};\nvar SCHEME = {};\nvar NO_SCHEME = {};\nvar SPECIAL_RELATIVE_OR_AUTHORITY = {};\nvar PATH_OR_AUTHORITY = {};\nvar RELATIVE = {};\nvar RELATIVE_SLASH = {};\nvar SPECIAL_AUTHORITY_SLASHES = {};\nvar SPECIAL_AUTHORITY_IGNORE_SLASHES = {};\nvar AUTHORITY = {};\nvar HOST = {};\nvar HOSTNAME = {};\nvar PORT = {};\nvar FILE = {};\nvar FILE_SLASH = {};\nvar FILE_HOST = {};\nvar PATH_START = {};\nvar PATH = {};\nvar CANNOT_BE_A_BASE_URL_PATH = {};\nvar QUERY = {};\nvar FRAGMENT = {};\n\n// eslint-disable-next-line max-statements -- TODO\nvar parseURL = function (url, input, stateOverride, base) {\n var state = stateOverride || SCHEME_START;\n var pointer = 0;\n var buffer = '';\n var seenAt = false;\n var seenBracket = false;\n var seenPasswordToken = false;\n var codePoints, char, bufferCodePoints, failure;\n\n if (!stateOverride) {\n url.scheme = '';\n url.username = '';\n url.password = '';\n url.host = null;\n url.port = null;\n url.path = [];\n url.query = null;\n url.fragment = null;\n url.cannotBeABaseURL = false;\n input = input.replace(LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE, '');\n }\n\n input = input.replace(TAB_AND_NEW_LINE, '');\n\n codePoints = arrayFrom(input);\n\n while (pointer <= codePoints.length) {\n char = codePoints[pointer];\n switch (state) {\n case SCHEME_START:\n if (char && ALPHA.test(char)) {\n buffer += char.toLowerCase();\n state = SCHEME;\n } else if (!stateOverride) {\n state = NO_SCHEME;\n continue;\n } else return INVALID_SCHEME;\n break;\n\n case SCHEME:\n if (char && (ALPHANUMERIC.test(char) || char == '+' || char == '-' || char == '.')) {\n buffer += char.toLowerCase();\n } else if (char == ':') {\n if (stateOverride && (\n (isSpecial(url) != has(specialSchemes, buffer)) ||\n (buffer == 'file' && (includesCredentials(url) || url.port !== null)) ||\n (url.scheme == 'file' && !url.host)\n )) return;\n url.scheme = buffer;\n if (stateOverride) {\n if (isSpecial(url) && specialSchemes[url.scheme] == url.port) url.port = null;\n return;\n }\n buffer = '';\n if (url.scheme == 'file') {\n state = FILE;\n } else if (isSpecial(url) && base && base.scheme == url.scheme) {\n state = SPECIAL_RELATIVE_OR_AUTHORITY;\n } else if (isSpecial(url)) {\n state = SPECIAL_AUTHORITY_SLASHES;\n } else if (codePoints[pointer + 1] == '/') {\n state = PATH_OR_AUTHORITY;\n pointer++;\n } else {\n url.cannotBeABaseURL = true;\n url.path.push('');\n state = CANNOT_BE_A_BASE_URL_PATH;\n }\n } else if (!stateOverride) {\n buffer = '';\n state = NO_SCHEME;\n pointer = 0;\n continue;\n } else return INVALID_SCHEME;\n break;\n\n case NO_SCHEME:\n if (!base || (base.cannotBeABaseURL && char != '#')) return INVALID_SCHEME;\n if (base.cannotBeABaseURL && char == '#') {\n url.scheme = base.scheme;\n url.path = base.path.slice();\n url.query = base.query;\n url.fragment = '';\n url.cannotBeABaseURL = true;\n state = FRAGMENT;\n break;\n }\n state = base.scheme == 'file' ? FILE : RELATIVE;\n continue;\n\n case SPECIAL_RELATIVE_OR_AUTHORITY:\n if (char == '/' && codePoints[pointer + 1] == '/') {\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n pointer++;\n } else {\n state = RELATIVE;\n continue;\n } break;\n\n case PATH_OR_AUTHORITY:\n if (char == '/') {\n state = AUTHORITY;\n break;\n } else {\n state = PATH;\n continue;\n }\n\n case RELATIVE:\n url.scheme = base.scheme;\n if (char == EOF) {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = base.path.slice();\n url.query = base.query;\n } else if (char == '/' || (char == '\\\\' && isSpecial(url))) {\n state = RELATIVE_SLASH;\n } else if (char == '?') {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = base.path.slice();\n url.query = '';\n state = QUERY;\n } else if (char == '#') {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = base.path.slice();\n url.query = base.query;\n url.fragment = '';\n state = FRAGMENT;\n } else {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = base.path.slice();\n url.path.pop();\n state = PATH;\n continue;\n } break;\n\n case RELATIVE_SLASH:\n if (isSpecial(url) && (char == '/' || char == '\\\\')) {\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n } else if (char == '/') {\n state = AUTHORITY;\n } else {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n state = PATH;\n continue;\n } break;\n\n case SPECIAL_AUTHORITY_SLASHES:\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n if (char != '/' || buffer.charAt(pointer + 1) != '/') continue;\n pointer++;\n break;\n\n case SPECIAL_AUTHORITY_IGNORE_SLASHES:\n if (char != '/' && char != '\\\\') {\n state = AUTHORITY;\n continue;\n } break;\n\n case AUTHORITY:\n if (char == '@') {\n if (seenAt) buffer = '%40' + buffer;\n seenAt = true;\n bufferCodePoints = arrayFrom(buffer);\n for (var i = 0; i < bufferCodePoints.length; i++) {\n var codePoint = bufferCodePoints[i];\n if (codePoint == ':' && !seenPasswordToken) {\n seenPasswordToken = true;\n continue;\n }\n var encodedCodePoints = percentEncode(codePoint, userinfoPercentEncodeSet);\n if (seenPasswordToken) url.password += encodedCodePoints;\n else url.username += encodedCodePoints;\n }\n buffer = '';\n } else if (\n char == EOF || char == '/' || char == '?' || char == '#' ||\n (char == '\\\\' && isSpecial(url))\n ) {\n if (seenAt && buffer == '') return INVALID_AUTHORITY;\n pointer -= arrayFrom(buffer).length + 1;\n buffer = '';\n state = HOST;\n } else buffer += char;\n break;\n\n case HOST:\n case HOSTNAME:\n if (stateOverride && url.scheme == 'file') {\n state = FILE_HOST;\n continue;\n } else if (char == ':' && !seenBracket) {\n if (buffer == '') return INVALID_HOST;\n failure = parseHost(url, buffer);\n if (failure) return failure;\n buffer = '';\n state = PORT;\n if (stateOverride == HOSTNAME) return;\n } else if (\n char == EOF || char == '/' || char == '?' || char == '#' ||\n (char == '\\\\' && isSpecial(url))\n ) {\n if (isSpecial(url) && buffer == '') return INVALID_HOST;\n if (stateOverride && buffer == '' && (includesCredentials(url) || url.port !== null)) return;\n failure = parseHost(url, buffer);\n if (failure) return failure;\n buffer = '';\n state = PATH_START;\n if (stateOverride) return;\n continue;\n } else {\n if (char == '[') seenBracket = true;\n else if (char == ']') seenBracket = false;\n buffer += char;\n } break;\n\n case PORT:\n if (DIGIT.test(char)) {\n buffer += char;\n } else if (\n char == EOF || char == '/' || char == '?' || char == '#' ||\n (char == '\\\\' && isSpecial(url)) ||\n stateOverride\n ) {\n if (buffer != '') {\n var port = parseInt(buffer, 10);\n if (port > 0xFFFF) return INVALID_PORT;\n url.port = (isSpecial(url) && port === specialSchemes[url.scheme]) ? null : port;\n buffer = '';\n }\n if (stateOverride) return;\n state = PATH_START;\n continue;\n } else return INVALID_PORT;\n break;\n\n case FILE:\n url.scheme = 'file';\n if (char == '/' || char == '\\\\') state = FILE_SLASH;\n else if (base && base.scheme == 'file') {\n if (char == EOF) {\n url.host = base.host;\n url.path = base.path.slice();\n url.query = base.query;\n } else if (char == '?') {\n url.host = base.host;\n url.path = base.path.slice();\n url.query = '';\n state = QUERY;\n } else if (char == '#') {\n url.host = base.host;\n url.path = base.path.slice();\n url.query = base.query;\n url.fragment = '';\n state = FRAGMENT;\n } else {\n if (!startsWithWindowsDriveLetter(codePoints.slice(pointer).join(''))) {\n url.host = base.host;\n url.path = base.path.slice();\n shortenURLsPath(url);\n }\n state = PATH;\n continue;\n }\n } else {\n state = PATH;\n continue;\n } break;\n\n case FILE_SLASH:\n if (char == '/' || char == '\\\\') {\n state = FILE_HOST;\n break;\n }\n if (base && base.scheme == 'file' && !startsWithWindowsDriveLetter(codePoints.slice(pointer).join(''))) {\n if (isWindowsDriveLetter(base.path[0], true)) url.path.push(base.path[0]);\n else url.host = base.host;\n }\n state = PATH;\n continue;\n\n case FILE_HOST:\n if (char == EOF || char == '/' || char == '\\\\' || char == '?' || char == '#') {\n if (!stateOverride && isWindowsDriveLetter(buffer)) {\n state = PATH;\n } else if (buffer == '') {\n url.host = '';\n if (stateOverride) return;\n state = PATH_START;\n } else {\n failure = parseHost(url, buffer);\n if (failure) return failure;\n if (url.host == 'localhost') url.host = '';\n if (stateOverride) return;\n buffer = '';\n state = PATH_START;\n } continue;\n } else buffer += char;\n break;\n\n case PATH_START:\n if (isSpecial(url)) {\n state = PATH;\n if (char != '/' && char != '\\\\') continue;\n } else if (!stateOverride && char == '?') {\n url.query = '';\n state = QUERY;\n } else if (!stateOverride && char == '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (char != EOF) {\n state = PATH;\n if (char != '/') continue;\n } break;\n\n case PATH:\n if (\n char == EOF || char == '/' ||\n (char == '\\\\' && isSpecial(url)) ||\n (!stateOverride && (char == '?' || char == '#'))\n ) {\n if (isDoubleDot(buffer)) {\n shortenURLsPath(url);\n if (char != '/' && !(char == '\\\\' && isSpecial(url))) {\n url.path.push('');\n }\n } else if (isSingleDot(buffer)) {\n if (char != '/' && !(char == '\\\\' && isSpecial(url))) {\n url.path.push('');\n }\n } else {\n if (url.scheme == 'file' && !url.path.length && isWindowsDriveLetter(buffer)) {\n if (url.host) url.host = '';\n buffer = buffer.charAt(0) + ':'; // normalize windows drive letter\n }\n url.path.push(buffer);\n }\n buffer = '';\n if (url.scheme == 'file' && (char == EOF || char == '?' || char == '#')) {\n while (url.path.length > 1 && url.path[0] === '') {\n url.path.shift();\n }\n }\n if (char == '?') {\n url.query = '';\n state = QUERY;\n } else if (char == '#') {\n url.fragment = '';\n state = FRAGMENT;\n }\n } else {\n buffer += percentEncode(char, pathPercentEncodeSet);\n } break;\n\n case CANNOT_BE_A_BASE_URL_PATH:\n if (char == '?') {\n url.query = '';\n state = QUERY;\n } else if (char == '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (char != EOF) {\n url.path[0] += percentEncode(char, C0ControlPercentEncodeSet);\n } break;\n\n case QUERY:\n if (!stateOverride && char == '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (char != EOF) {\n if (char == \"'\" && isSpecial(url)) url.query += '%27';\n else if (char == '#') url.query += '%23';\n else url.query += percentEncode(char, C0ControlPercentEncodeSet);\n } break;\n\n case FRAGMENT:\n if (char != EOF) url.fragment += percentEncode(char, fragmentPercentEncodeSet);\n break;\n }\n\n pointer++;\n }\n};\n\n// `URL` constructor\n// https://url.spec.whatwg.org/#url-class\nvar URLConstructor = function URL(url /* , base */) {\n var that = anInstance(this, URLConstructor, 'URL');\n var base = arguments.length > 1 ? arguments[1] : undefined;\n var urlString = String(url);\n var state = setInternalState(that, { type: 'URL' });\n var baseState, failure;\n if (base !== undefined) {\n if (base instanceof URLConstructor) baseState = getInternalURLState(base);\n else {\n failure = parseURL(baseState = {}, String(base));\n if (failure) throw TypeError(failure);\n }\n }\n failure = parseURL(state, urlString, null, baseState);\n if (failure) throw TypeError(failure);\n var searchParams = state.searchParams = new URLSearchParams();\n var searchParamsState = getInternalSearchParamsState(searchParams);\n searchParamsState.updateSearchParams(state.query);\n searchParamsState.updateURL = function () {\n state.query = String(searchParams) || null;\n };\n if (!DESCRIPTORS) {\n that.href = serializeURL.call(that);\n that.origin = getOrigin.call(that);\n that.protocol = getProtocol.call(that);\n that.username = getUsername.call(that);\n that.password = getPassword.call(that);\n that.host = getHost.call(that);\n that.hostname = getHostname.call(that);\n that.port = getPort.call(that);\n that.pathname = getPathname.call(that);\n that.search = getSearch.call(that);\n that.searchParams = getSearchParams.call(that);\n that.hash = getHash.call(that);\n }\n};\n\nvar URLPrototype = URLConstructor.prototype;\n\nvar serializeURL = function () {\n var url = getInternalURLState(this);\n var scheme = url.scheme;\n var username = url.username;\n var password = url.password;\n var host = url.host;\n var port = url.port;\n var path = url.path;\n var query = url.query;\n var fragment = url.fragment;\n var output = scheme + ':';\n if (host !== null) {\n output += '//';\n if (includesCredentials(url)) {\n output += username + (password ? ':' + password : '') + '@';\n }\n output += serializeHost(host);\n if (port !== null) output += ':' + port;\n } else if (scheme == 'file') output += '//';\n output += url.cannotBeABaseURL ? path[0] : path.length ? '/' + path.join('/') : '';\n if (query !== null) output += '?' + query;\n if (fragment !== null) output += '#' + fragment;\n return output;\n};\n\nvar getOrigin = function () {\n var url = getInternalURLState(this);\n var scheme = url.scheme;\n var port = url.port;\n if (scheme == 'blob') try {\n return new URL(scheme.path[0]).origin;\n } catch (error) {\n return 'null';\n }\n if (scheme == 'file' || !isSpecial(url)) return 'null';\n return scheme + '://' + serializeHost(url.host) + (port !== null ? ':' + port : '');\n};\n\nvar getProtocol = function () {\n return getInternalURLState(this).scheme + ':';\n};\n\nvar getUsername = function () {\n return getInternalURLState(this).username;\n};\n\nvar getPassword = function () {\n return getInternalURLState(this).password;\n};\n\nvar getHost = function () {\n var url = getInternalURLState(this);\n var host = url.host;\n var port = url.port;\n return host === null ? ''\n : port === null ? serializeHost(host)\n : serializeHost(host) + ':' + port;\n};\n\nvar getHostname = function () {\n var host = getInternalURLState(this).host;\n return host === null ? '' : serializeHost(host);\n};\n\nvar getPort = function () {\n var port = getInternalURLState(this).port;\n return port === null ? '' : String(port);\n};\n\nvar getPathname = function () {\n var url = getInternalURLState(this);\n var path = url.path;\n return url.cannotBeABaseURL ? path[0] : path.length ? '/' + path.join('/') : '';\n};\n\nvar getSearch = function () {\n var query = getInternalURLState(this).query;\n return query ? '?' + query : '';\n};\n\nvar getSearchParams = function () {\n return getInternalURLState(this).searchParams;\n};\n\nvar getHash = function () {\n var fragment = getInternalURLState(this).fragment;\n return fragment ? '#' + fragment : '';\n};\n\nvar accessorDescriptor = function (getter, setter) {\n return { get: getter, set: setter, configurable: true, enumerable: true };\n};\n\nif (DESCRIPTORS) {\n defineProperties(URLPrototype, {\n // `URL.prototype.href` accessors pair\n // https://url.spec.whatwg.org/#dom-url-href\n href: accessorDescriptor(serializeURL, function (href) {\n var url = getInternalURLState(this);\n var urlString = String(href);\n var failure = parseURL(url, urlString);\n if (failure) throw TypeError(failure);\n getInternalSearchParamsState(url.searchParams).updateSearchParams(url.query);\n }),\n // `URL.prototype.origin` getter\n // https://url.spec.whatwg.org/#dom-url-origin\n origin: accessorDescriptor(getOrigin),\n // `URL.prototype.protocol` accessors pair\n // https://url.spec.whatwg.org/#dom-url-protocol\n protocol: accessorDescriptor(getProtocol, function (protocol) {\n var url = getInternalURLState(this);\n parseURL(url, String(protocol) + ':', SCHEME_START);\n }),\n // `URL.prototype.username` accessors pair\n // https://url.spec.whatwg.org/#dom-url-username\n username: accessorDescriptor(getUsername, function (username) {\n var url = getInternalURLState(this);\n var codePoints = arrayFrom(String(username));\n if (cannotHaveUsernamePasswordPort(url)) return;\n url.username = '';\n for (var i = 0; i < codePoints.length; i++) {\n url.username += percentEncode(codePoints[i], userinfoPercentEncodeSet);\n }\n }),\n // `URL.prototype.password` accessors pair\n // https://url.spec.whatwg.org/#dom-url-password\n password: accessorDescriptor(getPassword, function (password) {\n var url = getInternalURLState(this);\n var codePoints = arrayFrom(String(password));\n if (cannotHaveUsernamePasswordPort(url)) return;\n url.password = '';\n for (var i = 0; i < codePoints.length; i++) {\n url.password += percentEncode(codePoints[i], userinfoPercentEncodeSet);\n }\n }),\n // `URL.prototype.host` accessors pair\n // https://url.spec.whatwg.org/#dom-url-host\n host: accessorDescriptor(getHost, function (host) {\n var url = getInternalURLState(this);\n if (url.cannotBeABaseURL) return;\n parseURL(url, String(host), HOST);\n }),\n // `URL.prototype.hostname` accessors pair\n // https://url.spec.whatwg.org/#dom-url-hostname\n hostname: accessorDescriptor(getHostname, function (hostname) {\n var url = getInternalURLState(this);\n if (url.cannotBeABaseURL) return;\n parseURL(url, String(hostname), HOSTNAME);\n }),\n // `URL.prototype.port` accessors pair\n // https://url.spec.whatwg.org/#dom-url-port\n port: accessorDescriptor(getPort, function (port) {\n var url = getInternalURLState(this);\n if (cannotHaveUsernamePasswordPort(url)) return;\n port = String(port);\n if (port == '') url.port = null;\n else parseURL(url, port, PORT);\n }),\n // `URL.prototype.pathname` accessors pair\n // https://url.spec.whatwg.org/#dom-url-pathname\n pathname: accessorDescriptor(getPathname, function (pathname) {\n var url = getInternalURLState(this);\n if (url.cannotBeABaseURL) return;\n url.path = [];\n parseURL(url, pathname + '', PATH_START);\n }),\n // `URL.prototype.search` accessors pair\n // https://url.spec.whatwg.org/#dom-url-search\n search: accessorDescriptor(getSearch, function (search) {\n var url = getInternalURLState(this);\n search = String(search);\n if (search == '') {\n url.query = null;\n } else {\n if ('?' == search.charAt(0)) search = search.slice(1);\n url.query = '';\n parseURL(url, search, QUERY);\n }\n getInternalSearchParamsState(url.searchParams).updateSearchParams(url.query);\n }),\n // `URL.prototype.searchParams` getter\n // https://url.spec.whatwg.org/#dom-url-searchparams\n searchParams: accessorDescriptor(getSearchParams),\n // `URL.prototype.hash` accessors pair\n // https://url.spec.whatwg.org/#dom-url-hash\n hash: accessorDescriptor(getHash, function (hash) {\n var url = getInternalURLState(this);\n hash = String(hash);\n if (hash == '') {\n url.fragment = null;\n return;\n }\n if ('#' == hash.charAt(0)) hash = hash.slice(1);\n url.fragment = '';\n parseURL(url, hash, FRAGMENT);\n })\n });\n}\n\n// `URL.prototype.toJSON` method\n// https://url.spec.whatwg.org/#dom-url-tojson\nredefine(URLPrototype, 'toJSON', function toJSON() {\n return serializeURL.call(this);\n}, { enumerable: true });\n\n// `URL.prototype.toString` method\n// https://url.spec.whatwg.org/#URL-stringification-behavior\nredefine(URLPrototype, 'toString', function toString() {\n return serializeURL.call(this);\n}, { enumerable: true });\n\nif (NativeURL) {\n var nativeCreateObjectURL = NativeURL.createObjectURL;\n var nativeRevokeObjectURL = NativeURL.revokeObjectURL;\n // `URL.createObjectURL` method\n // https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n if (nativeCreateObjectURL) redefine(URLConstructor, 'createObjectURL', function createObjectURL(blob) {\n return nativeCreateObjectURL.apply(NativeURL, arguments);\n });\n // `URL.revokeObjectURL` method\n // https://developer.mozilla.org/en-US/docs/Web/API/URL/revokeObjectURL\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n if (nativeRevokeObjectURL) redefine(URLConstructor, 'revokeObjectURL', function revokeObjectURL(url) {\n return nativeRevokeObjectURL.apply(NativeURL, arguments);\n });\n}\n\nsetToStringTag(URLConstructor, 'URL');\n\n$({ global: true, forced: !USE_NATIVE_URL, sham: !DESCRIPTORS }, {\n URL: URLConstructor\n});\n","var global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar bind = require('../internals/function-bind-context');\nvar html = require('../internals/html');\nvar createElement = require('../internals/document-create-element');\nvar IS_IOS = require('../internals/engine-is-ios');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar location = global.location;\nvar set = global.setImmediate;\nvar clear = global.clearImmediate;\nvar process = global.process;\nvar MessageChannel = global.MessageChannel;\nvar Dispatch = global.Dispatch;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar defer, channel, port;\n\nvar run = function (id) {\n // eslint-disable-next-line no-prototype-builtins -- safe\n if (queue.hasOwnProperty(id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\n\nvar runner = function (id) {\n return function () {\n run(id);\n };\n};\n\nvar listener = function (event) {\n run(event.data);\n};\n\nvar post = function (id) {\n // old engines have not location.origin\n global.postMessage(id + '', location.protocol + '//' + location.host);\n};\n\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!set || !clear) {\n set = function setImmediate(fn) {\n var args = [];\n var i = 1;\n while (arguments.length > i) args.push(arguments[i++]);\n queue[++counter] = function () {\n // eslint-disable-next-line no-new-func -- spec requirement\n (typeof fn == 'function' ? fn : Function(fn)).apply(undefined, args);\n };\n defer(counter);\n return counter;\n };\n clear = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (IS_NODE) {\n defer = function (id) {\n process.nextTick(runner(id));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(runner(id));\n };\n // Browsers with MessageChannel, includes WebWorkers\n // except iOS - https://github.com/zloirock/core-js/issues/624\n } else if (MessageChannel && !IS_IOS) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = listener;\n defer = bind(port.postMessage, port, 1);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (\n global.addEventListener &&\n typeof postMessage == 'function' &&\n !global.importScripts &&\n location && location.protocol !== 'file:' &&\n !fails(post)\n ) {\n defer = post;\n global.addEventListener('message', listener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in createElement('script')) {\n defer = function (id) {\n html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(runner(id), 0);\n };\n }\n}\n\nmodule.exports = {\n set: set,\n clear: clear\n};\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar versions = process && process.versions;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n version = match[0] + match[1];\n} else if (userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = match[1];\n }\n}\n\nmodule.exports = version && +version;\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n","var classof = require('../internals/classof');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\nmodule.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], Properties[key]);\n return O;\n};\n","var isObject = require('../internals/is-object');\n\nmodule.exports = function (it) {\n if (!isObject(it) && it !== null) {\n throw TypeError(\"Can't set \" + String(it) + ' as a prototype');\n } return it;\n};\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/define-iterator');\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: String(iterated),\n index: 0\n });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n var state = getInternalState(this);\n var string = state.string;\n var index = state.index;\n var point;\n if (index >= string.length) return { value: undefined, done: true };\n point = charAt(string, index);\n state.index += point.length;\n return { value: point, done: false };\n});\n","module.exports = {};\n","var global = require('../internals/global');\n\nmodule.exports = global;\n","var fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar split = ''.split;\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split.call(it, '') : Object(it);\n} : Object;\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar definePropertyModule = require('../internals/object-define-property');\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n definePropertyModule.f(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n","var global = require('../internals/global');\n\nmodule.exports = function (a, b) {\n var console = global.console;\n if (console && console.error) {\n arguments.length === 1 ? console.error(a) : console.error(a, b);\n }\n};\n","var isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\n// `IsRegExp` abstract operation\n// https://tc39.es/ecma262/#sec-isregexp\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) == 'RegExp');\n};\n","var anObject = require('../internals/an-object');\nvar aFunction = require('../internals/a-function');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aFunction(S);\n};\n","var IS_NODE = require('../internals/engine-is-node');\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\n\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n /* global Symbol -- required for testing */\n return !Symbol.sham &&\n // Chrome 38 Symbol has incorrect toString conversion\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n (IS_NODE ? V8_VERSION === 38 : V8_VERSION > 37 && V8_VERSION < 41);\n});\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toLength = require('../internals/to-length');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar $filter = require('../internals/array-iteration').filter;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter');\n\n// `Array.prototype.filter` method\n// https://tc39.es/ecma262/#sec-array.prototype.filter\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n filter: function filter(callbackfn /* , thisArg */) {\n return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar toObject = require('../internals/to-object');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar toLength = require('../internals/to-length');\nvar createProperty = require('../internals/create-property');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\n// `Array.from` method implementation\n// https://tc39.es/ecma262/#sec-array.from\nmodule.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var C = typeof this == 'function' ? this : Array;\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var iteratorMethod = getIteratorMethod(O);\n var index = 0;\n var length, result, step, iterator, next, value;\n if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined, 2);\n // if the target is not iterable or it's an array with the default iterator - use a simple case\n if (iteratorMethod != undefined && !(C == Array && isArrayIteratorMethod(iteratorMethod))) {\n iterator = iteratorMethod.call(O);\n next = iterator.next;\n result = new C();\n for (;!(step = next.call(iterator)).done; index++) {\n value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value;\n createProperty(result, index, value);\n }\n } else {\n length = toLength(O.length);\n result = new C(length);\n for (;length > index; index++) {\n value = mapping ? mapfn(O[index], index) : O[index];\n createProperty(result, index, value);\n }\n }\n result.length = index;\n return result;\n};\n","var toInteger = require('../internals/to-integer');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var hasOwnProperty = {}.hasOwnProperty;\n\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar toLength = require('../internals/to-length');\nvar toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar getSubstitution = require('../internals/get-substitution');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\nvar max = Math.max;\nvar min = Math.min;\n\nvar maybeToString = function (it) {\n return it === undefined ? it : String(it);\n};\n\n// @@replace logic\nfixRegExpWellKnownSymbolLogic('replace', 2, function (REPLACE, nativeReplace, maybeCallNative, reason) {\n var REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = reason.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE;\n var REPLACE_KEEPS_$0 = reason.REPLACE_KEEPS_$0;\n var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '$' : '$0';\n\n return [\n // `String.prototype.replace` method\n // https://tc39.es/ecma262/#sec-string.prototype.replace\n function replace(searchValue, replaceValue) {\n var O = requireObjectCoercible(this);\n var replacer = searchValue == undefined ? undefined : searchValue[REPLACE];\n return replacer !== undefined\n ? replacer.call(searchValue, O, replaceValue)\n : nativeReplace.call(String(O), searchValue, replaceValue);\n },\n // `RegExp.prototype[@@replace]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@replace\n function (regexp, replaceValue) {\n if (\n (!REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE && REPLACE_KEEPS_$0) ||\n (typeof replaceValue === 'string' && replaceValue.indexOf(UNSAFE_SUBSTITUTE) === -1)\n ) {\n var res = maybeCallNative(nativeReplace, regexp, this, replaceValue);\n if (res.done) return res.value;\n }\n\n var rx = anObject(regexp);\n var S = String(this);\n\n var functionalReplace = typeof replaceValue === 'function';\n if (!functionalReplace) replaceValue = String(replaceValue);\n\n var global = rx.global;\n if (global) {\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n }\n var results = [];\n while (true) {\n var result = regExpExec(rx, S);\n if (result === null) break;\n\n results.push(result);\n if (!global) break;\n\n var matchStr = String(result[0]);\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n }\n\n var accumulatedResult = '';\n var nextSourcePosition = 0;\n for (var i = 0; i < results.length; i++) {\n result = results[i];\n\n var matched = String(result[0]);\n var position = max(min(toInteger(result.index), S.length), 0);\n var captures = [];\n // NOTE: This is equivalent to\n // captures = result.slice(1).map(maybeToString)\n // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j]));\n var namedCaptures = result.groups;\n if (functionalReplace) {\n var replacerArgs = [matched].concat(captures, position, S);\n if (namedCaptures !== undefined) replacerArgs.push(namedCaptures);\n var replacement = String(replaceValue.apply(undefined, replacerArgs));\n } else {\n replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n }\n if (position >= nextSourcePosition) {\n accumulatedResult += S.slice(nextSourcePosition, position) + replacement;\n nextSourcePosition = position + matched.length;\n }\n }\n return accumulatedResult + S.slice(nextSourcePosition);\n }\n ];\n});\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.9.1',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2021 Denis Pushkarev (zloirock.ru)'\n});\n","var getBuiltIn = require('../internals/get-built-in');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys;\n};\n","// a string of all valid unicode whitespaces\nmodule.exports = '\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u00A0\\u1680\\u2000\\u2001\\u2002' +\n '\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n","var requireObjectCoercible = require('../internals/require-object-coercible');\nvar whitespaces = require('../internals/whitespaces');\n\nvar whitespace = '[' + whitespaces + ']';\nvar ltrim = RegExp('^' + whitespace + whitespace + '*');\nvar rtrim = RegExp(whitespace + whitespace + '*$');\n\n// `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation\nvar createMethod = function (TYPE) {\n return function ($this) {\n var string = String(requireObjectCoercible($this));\n if (TYPE & 1) string = string.replace(ltrim, '');\n if (TYPE & 2) string = string.replace(rtrim, '');\n return string;\n };\n};\n\nmodule.exports = {\n // `String.prototype.{ trimLeft, trimStart }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimstart\n start: createMethod(1),\n // `String.prototype.{ trimRight, trimEnd }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimend\n end: createMethod(2),\n // `String.prototype.trim` method\n // https://tc39.es/ecma262/#sec-string.prototype.trim\n trim: createMethod(3)\n};\n","var isRegExp = require('../internals/is-regexp');\n\nmodule.exports = function (it) {\n if (isRegExp(it)) {\n throw TypeError(\"The method doesn't accept regular expressions\");\n } return it;\n};\n","import { pauseTracking, resetTracking, isRef, toRaw, shallowReactive, trigger, isReactive, effect, stop, ref, isProxy, proxyRefs, toRef, reactive, shallowReadonly, track, computed as computed$1, isReadonly } from '@vue/reactivity';\nexport { customRef, isProxy, isReactive, isReadonly, isRef, markRaw, proxyRefs, reactive, readonly, ref, shallowReactive, shallowReadonly, shallowRef, toRaw, toRef, toRefs, triggerRef, unref } from '@vue/reactivity';\nimport { isString, isFunction, isPromise, isArray, extend, EMPTY_OBJ, toHandlerKey, toNumber, hyphenate, camelize, isOn, hasOwn, isModelListener, def, isReservedProp, EMPTY_ARR, isObject, capitalize, toRawType, makeMap, remove, NOOP, hasChanged, isSet, isMap, invokeArrayFns, NO, getGlobalThis, normalizeClass, normalizeStyle, isGloballyWhitelisted } from '@vue/shared';\nexport { camelize, capitalize, toDisplayString, toHandlerKey } from '@vue/shared';\n\nconst stack = [];\r\nfunction pushWarningContext(vnode) {\r\n stack.push(vnode);\r\n}\r\nfunction popWarningContext() {\r\n stack.pop();\r\n}\r\nfunction warn(msg, ...args) {\r\n // avoid props formatting or warn handler tracking deps that might be mutated\r\n // during patch, leading to infinite recursion.\r\n pauseTracking();\r\n const instance = stack.length ? stack[stack.length - 1].component : null;\r\n const appWarnHandler = instance && instance.appContext.config.warnHandler;\r\n const trace = getComponentTrace();\r\n if (appWarnHandler) {\r\n callWithErrorHandling(appWarnHandler, instance, 11 /* APP_WARN_HANDLER */, [\r\n msg + args.join(''),\r\n instance && instance.proxy,\r\n trace\r\n .map(({ vnode }) => `at <${formatComponentName(instance, vnode.type)}>`)\r\n .join('\\n'),\r\n trace\r\n ]);\r\n }\r\n else {\r\n const warnArgs = [`[Vue warn]: ${msg}`, ...args];\r\n /* istanbul ignore if */\r\n if (trace.length &&\r\n // avoid spamming console during tests\r\n !false) {\r\n warnArgs.push(`\\n`, ...formatTrace(trace));\r\n }\r\n console.warn(...warnArgs);\r\n }\r\n resetTracking();\r\n}\r\nfunction getComponentTrace() {\r\n let currentVNode = stack[stack.length - 1];\r\n if (!currentVNode) {\r\n return [];\r\n }\r\n // we can't just use the stack because it will be incomplete during updates\r\n // that did not start from the root. Re-construct the parent chain using\r\n // instance parent pointers.\r\n const normalizedStack = [];\r\n while (currentVNode) {\r\n const last = normalizedStack[0];\r\n if (last && last.vnode === currentVNode) {\r\n last.recurseCount++;\r\n }\r\n else {\r\n normalizedStack.push({\r\n vnode: currentVNode,\r\n recurseCount: 0\r\n });\r\n }\r\n const parentInstance = currentVNode.component && currentVNode.component.parent;\r\n currentVNode = parentInstance && parentInstance.vnode;\r\n }\r\n return normalizedStack;\r\n}\r\n/* istanbul ignore next */\r\nfunction formatTrace(trace) {\r\n const logs = [];\r\n trace.forEach((entry, i) => {\r\n logs.push(...(i === 0 ? [] : [`\\n`]), ...formatTraceEntry(entry));\r\n });\r\n return logs;\r\n}\r\nfunction formatTraceEntry({ vnode, recurseCount }) {\r\n const postfix = recurseCount > 0 ? `... (${recurseCount} recursive calls)` : ``;\r\n const isRoot = vnode.component ? vnode.component.parent == null : false;\r\n const open = ` at <${formatComponentName(vnode.component, vnode.type, isRoot)}`;\r\n const close = `>` + postfix;\r\n return vnode.props\r\n ? [open, ...formatProps(vnode.props), close]\r\n : [open + close];\r\n}\r\n/* istanbul ignore next */\r\nfunction formatProps(props) {\r\n const res = [];\r\n const keys = Object.keys(props);\r\n keys.slice(0, 3).forEach(key => {\r\n res.push(...formatProp(key, props[key]));\r\n });\r\n if (keys.length > 3) {\r\n res.push(` ...`);\r\n }\r\n return res;\r\n}\r\n/* istanbul ignore next */\r\nfunction formatProp(key, value, raw) {\r\n if (isString(value)) {\r\n value = JSON.stringify(value);\r\n return raw ? value : [`${key}=${value}`];\r\n }\r\n else if (typeof value === 'number' ||\r\n typeof value === 'boolean' ||\r\n value == null) {\r\n return raw ? value : [`${key}=${value}`];\r\n }\r\n else if (isRef(value)) {\r\n value = formatProp(key, toRaw(value.value), true);\r\n return raw ? value : [`${key}=Ref<`, value, `>`];\r\n }\r\n else if (isFunction(value)) {\r\n return [`${key}=fn${value.name ? `<${value.name}>` : ``}`];\r\n }\r\n else {\r\n value = toRaw(value);\r\n return raw ? value : [`${key}=`, value];\r\n }\r\n}\n\nconst ErrorTypeStrings = {\r\n [\"bc\" /* BEFORE_CREATE */]: 'beforeCreate hook',\r\n [\"c\" /* CREATED */]: 'created hook',\r\n [\"bm\" /* BEFORE_MOUNT */]: 'beforeMount hook',\r\n [\"m\" /* MOUNTED */]: 'mounted hook',\r\n [\"bu\" /* BEFORE_UPDATE */]: 'beforeUpdate hook',\r\n [\"u\" /* UPDATED */]: 'updated',\r\n [\"bum\" /* BEFORE_UNMOUNT */]: 'beforeUnmount hook',\r\n [\"um\" /* UNMOUNTED */]: 'unmounted hook',\r\n [\"a\" /* ACTIVATED */]: 'activated hook',\r\n [\"da\" /* DEACTIVATED */]: 'deactivated hook',\r\n [\"ec\" /* ERROR_CAPTURED */]: 'errorCaptured hook',\r\n [\"rtc\" /* RENDER_TRACKED */]: 'renderTracked hook',\r\n [\"rtg\" /* RENDER_TRIGGERED */]: 'renderTriggered hook',\r\n [0 /* SETUP_FUNCTION */]: 'setup function',\r\n [1 /* RENDER_FUNCTION */]: 'render function',\r\n [2 /* WATCH_GETTER */]: 'watcher getter',\r\n [3 /* WATCH_CALLBACK */]: 'watcher callback',\r\n [4 /* WATCH_CLEANUP */]: 'watcher cleanup function',\r\n [5 /* NATIVE_EVENT_HANDLER */]: 'native event handler',\r\n [6 /* COMPONENT_EVENT_HANDLER */]: 'component event handler',\r\n [7 /* VNODE_HOOK */]: 'vnode hook',\r\n [8 /* DIRECTIVE_HOOK */]: 'directive hook',\r\n [9 /* TRANSITION_HOOK */]: 'transition hook',\r\n [10 /* APP_ERROR_HANDLER */]: 'app errorHandler',\r\n [11 /* APP_WARN_HANDLER */]: 'app warnHandler',\r\n [12 /* FUNCTION_REF */]: 'ref function',\r\n [13 /* ASYNC_COMPONENT_LOADER */]: 'async component loader',\r\n [14 /* SCHEDULER */]: 'scheduler flush. This is likely a Vue internals bug. ' +\r\n 'Please open an issue at https://new-issue.vuejs.org/?repo=vuejs/vue-next'\r\n};\r\nfunction callWithErrorHandling(fn, instance, type, args) {\r\n let res;\r\n try {\r\n res = args ? fn(...args) : fn();\r\n }\r\n catch (err) {\r\n handleError(err, instance, type);\r\n }\r\n return res;\r\n}\r\nfunction callWithAsyncErrorHandling(fn, instance, type, args) {\r\n if (isFunction(fn)) {\r\n const res = callWithErrorHandling(fn, instance, type, args);\r\n if (res && isPromise(res)) {\r\n res.catch(err => {\r\n handleError(err, instance, type);\r\n });\r\n }\r\n return res;\r\n }\r\n const values = [];\r\n for (let i = 0; i < fn.length; i++) {\r\n values.push(callWithAsyncErrorHandling(fn[i], instance, type, args));\r\n }\r\n return values;\r\n}\r\nfunction handleError(err, instance, type, throwInDev = true) {\r\n const contextVNode = instance ? instance.vnode : null;\r\n if (instance) {\r\n let cur = instance.parent;\r\n // the exposed instance is the render proxy to keep it consistent with 2.x\r\n const exposedInstance = instance.proxy;\r\n // in production the hook receives only the error code\r\n const errorInfo = (process.env.NODE_ENV !== 'production') ? ErrorTypeStrings[type] : type;\r\n while (cur) {\r\n const errorCapturedHooks = cur.ec;\r\n if (errorCapturedHooks) {\r\n for (let i = 0; i < errorCapturedHooks.length; i++) {\r\n if (errorCapturedHooks[i](err, exposedInstance, errorInfo) === false) {\r\n return;\r\n }\r\n }\r\n }\r\n cur = cur.parent;\r\n }\r\n // app-level handling\r\n const appErrorHandler = instance.appContext.config.errorHandler;\r\n if (appErrorHandler) {\r\n callWithErrorHandling(appErrorHandler, null, 10 /* APP_ERROR_HANDLER */, [err, exposedInstance, errorInfo]);\r\n return;\r\n }\r\n }\r\n logError(err, type, contextVNode, throwInDev);\r\n}\r\nfunction logError(err, type, contextVNode, throwInDev = true) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n const info = ErrorTypeStrings[type];\r\n if (contextVNode) {\r\n pushWarningContext(contextVNode);\r\n }\r\n warn(`Unhandled error${info ? ` during execution of ${info}` : ``}`);\r\n if (contextVNode) {\r\n popWarningContext();\r\n }\r\n // crash in dev by default so it's more noticeable\r\n if (throwInDev) {\r\n throw err;\r\n }\r\n else {\r\n console.error(err);\r\n }\r\n }\r\n else {\r\n // recover in prod to reduce the impact on end-user\r\n console.error(err);\r\n }\r\n}\n\nlet isFlushing = false;\r\nlet isFlushPending = false;\r\nconst queue = [];\r\nlet flushIndex = 0;\r\nconst pendingPreFlushCbs = [];\r\nlet activePreFlushCbs = null;\r\nlet preFlushIndex = 0;\r\nconst pendingPostFlushCbs = [];\r\nlet activePostFlushCbs = null;\r\nlet postFlushIndex = 0;\r\nconst resolvedPromise = Promise.resolve();\r\nlet currentFlushPromise = null;\r\nlet currentPreFlushParentJob = null;\r\nconst RECURSION_LIMIT = 100;\r\nfunction nextTick(fn) {\r\n const p = currentFlushPromise || resolvedPromise;\r\n return fn ? p.then(this ? fn.bind(this) : fn) : p;\r\n}\r\n// #2768\r\n// Use binary-search to find a suitable position in the queue,\r\n// so that the queue maintains the increasing order of job's id,\r\n// which can prevent the job from being skipped and also can avoid repeated patching.\r\nfunction findInsertionIndex(job) {\r\n // the start index should be `flushIndex + 1`\r\n let start = flushIndex + 1;\r\n let end = queue.length;\r\n const jobId = getId(job);\r\n while (start < end) {\r\n const middle = (start + end) >>> 1;\r\n const middleJobId = getId(queue[middle]);\r\n middleJobId < jobId ? (start = middle + 1) : (end = middle);\r\n }\r\n return start;\r\n}\r\nfunction queueJob(job) {\r\n // the dedupe search uses the startIndex argument of Array.includes()\r\n // by default the search index includes the current job that is being run\r\n // so it cannot recursively trigger itself again.\r\n // if the job is a watch() callback, the search will start with a +1 index to\r\n // allow it recursively trigger itself - it is the user's responsibility to\r\n // ensure it doesn't end up in an infinite loop.\r\n if ((!queue.length ||\r\n !queue.includes(job, isFlushing && job.allowRecurse ? flushIndex + 1 : flushIndex)) &&\r\n job !== currentPreFlushParentJob) {\r\n const pos = findInsertionIndex(job);\r\n if (pos > -1) {\r\n queue.splice(pos, 0, job);\r\n }\r\n else {\r\n queue.push(job);\r\n }\r\n queueFlush();\r\n }\r\n}\r\nfunction queueFlush() {\r\n if (!isFlushing && !isFlushPending) {\r\n isFlushPending = true;\r\n currentFlushPromise = resolvedPromise.then(flushJobs);\r\n }\r\n}\r\nfunction invalidateJob(job) {\r\n const i = queue.indexOf(job);\r\n if (i > -1) {\r\n queue.splice(i, 1);\r\n }\r\n}\r\nfunction queueCb(cb, activeQueue, pendingQueue, index) {\r\n if (!isArray(cb)) {\r\n if (!activeQueue ||\r\n !activeQueue.includes(cb, cb.allowRecurse ? index + 1 : index)) {\r\n pendingQueue.push(cb);\r\n }\r\n }\r\n else {\r\n // if cb is an array, it is a component lifecycle hook which can only be\r\n // triggered by a job, which is already deduped in the main queue, so\r\n // we can skip duplicate check here to improve perf\r\n pendingQueue.push(...cb);\r\n }\r\n queueFlush();\r\n}\r\nfunction queuePreFlushCb(cb) {\r\n queueCb(cb, activePreFlushCbs, pendingPreFlushCbs, preFlushIndex);\r\n}\r\nfunction queuePostFlushCb(cb) {\r\n queueCb(cb, activePostFlushCbs, pendingPostFlushCbs, postFlushIndex);\r\n}\r\nfunction flushPreFlushCbs(seen, parentJob = null) {\r\n if (pendingPreFlushCbs.length) {\r\n currentPreFlushParentJob = parentJob;\r\n activePreFlushCbs = [...new Set(pendingPreFlushCbs)];\r\n pendingPreFlushCbs.length = 0;\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n seen = seen || new Map();\r\n }\r\n for (preFlushIndex = 0; preFlushIndex < activePreFlushCbs.length; preFlushIndex++) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n checkRecursiveUpdates(seen, activePreFlushCbs[preFlushIndex]);\r\n }\r\n activePreFlushCbs[preFlushIndex]();\r\n }\r\n activePreFlushCbs = null;\r\n preFlushIndex = 0;\r\n currentPreFlushParentJob = null;\r\n // recursively flush until it drains\r\n flushPreFlushCbs(seen, parentJob);\r\n }\r\n}\r\nfunction flushPostFlushCbs(seen) {\r\n if (pendingPostFlushCbs.length) {\r\n const deduped = [...new Set(pendingPostFlushCbs)];\r\n pendingPostFlushCbs.length = 0;\r\n // #1947 already has active queue, nested flushPostFlushCbs call\r\n if (activePostFlushCbs) {\r\n activePostFlushCbs.push(...deduped);\r\n return;\r\n }\r\n activePostFlushCbs = deduped;\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n seen = seen || new Map();\r\n }\r\n activePostFlushCbs.sort((a, b) => getId(a) - getId(b));\r\n for (postFlushIndex = 0; postFlushIndex < activePostFlushCbs.length; postFlushIndex++) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n checkRecursiveUpdates(seen, activePostFlushCbs[postFlushIndex]);\r\n }\r\n activePostFlushCbs[postFlushIndex]();\r\n }\r\n activePostFlushCbs = null;\r\n postFlushIndex = 0;\r\n }\r\n}\r\nconst getId = (job) => job.id == null ? Infinity : job.id;\r\nfunction flushJobs(seen) {\r\n isFlushPending = false;\r\n isFlushing = true;\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n seen = seen || new Map();\r\n }\r\n flushPreFlushCbs(seen);\r\n // Sort queue before flush.\r\n // This ensures that:\r\n // 1. Components are updated from parent to child. (because parent is always\r\n // created before the child so its render effect will have smaller\r\n // priority number)\r\n // 2. If a component is unmounted during a parent component's update,\r\n // its update can be skipped.\r\n queue.sort((a, b) => getId(a) - getId(b));\r\n try {\r\n for (flushIndex = 0; flushIndex < queue.length; flushIndex++) {\r\n const job = queue[flushIndex];\r\n if (job) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n checkRecursiveUpdates(seen, job);\r\n }\r\n callWithErrorHandling(job, null, 14 /* SCHEDULER */);\r\n }\r\n }\r\n }\r\n finally {\r\n flushIndex = 0;\r\n queue.length = 0;\r\n flushPostFlushCbs(seen);\r\n isFlushing = false;\r\n currentFlushPromise = null;\r\n // some postFlushCb queued jobs!\r\n // keep flushing until it drains.\r\n if (queue.length || pendingPostFlushCbs.length) {\r\n flushJobs(seen);\r\n }\r\n }\r\n}\r\nfunction checkRecursiveUpdates(seen, fn) {\r\n if (!seen.has(fn)) {\r\n seen.set(fn, 1);\r\n }\r\n else {\r\n const count = seen.get(fn);\r\n if (count > RECURSION_LIMIT) {\r\n throw new Error(`Maximum recursive updates exceeded. ` +\r\n `This means you have a reactive effect that is mutating its own ` +\r\n `dependencies and thus recursively triggering itself. Possible sources ` +\r\n `include component template, render function, updated hook or ` +\r\n `watcher source function.`);\r\n }\r\n else {\r\n seen.set(fn, count + 1);\r\n }\r\n }\r\n}\n\n/* eslint-disable no-restricted-globals */\r\nlet isHmrUpdating = false;\r\nconst hmrDirtyComponents = new Set();\r\n// Expose the HMR runtime on the global object\r\n// This makes it entirely tree-shakable without polluting the exports and makes\r\n// it easier to be used in toolings like vue-loader\r\n// Note: for a component to be eligible for HMR it also needs the __hmrId option\r\n// to be set so that its instances can be registered / removed.\r\nif ((process.env.NODE_ENV !== 'production')) {\r\n const globalObject = typeof global !== 'undefined'\r\n ? global\r\n : typeof self !== 'undefined'\r\n ? self\r\n : typeof window !== 'undefined'\r\n ? window\r\n : {};\r\n globalObject.__VUE_HMR_RUNTIME__ = {\r\n createRecord: tryWrap(createRecord),\r\n rerender: tryWrap(rerender),\r\n reload: tryWrap(reload)\r\n };\r\n}\r\nconst map = new Map();\r\nfunction registerHMR(instance) {\r\n const id = instance.type.__hmrId;\r\n let record = map.get(id);\r\n if (!record) {\r\n createRecord(id, instance.type);\r\n record = map.get(id);\r\n }\r\n record.instances.add(instance);\r\n}\r\nfunction unregisterHMR(instance) {\r\n map.get(instance.type.__hmrId).instances.delete(instance);\r\n}\r\nfunction createRecord(id, component) {\r\n if (!component) {\r\n warn(`HMR API usage is out of date.\\n` +\r\n `Please upgrade vue-loader/vite/rollup-plugin-vue or other relevant ` +\r\n `dependency that handles Vue SFC compilation.`);\r\n component = {};\r\n }\r\n if (map.has(id)) {\r\n return false;\r\n }\r\n map.set(id, {\r\n component: isClassComponent(component) ? component.__vccOpts : component,\r\n instances: new Set()\r\n });\r\n return true;\r\n}\r\nfunction rerender(id, newRender) {\r\n const record = map.get(id);\r\n if (!record)\r\n return;\r\n if (newRender)\r\n record.component.render = newRender;\r\n // Array.from creates a snapshot which avoids the set being mutated during\r\n // updates\r\n Array.from(record.instances).forEach(instance => {\r\n if (newRender) {\r\n instance.render = newRender;\r\n }\r\n instance.renderCache = [];\r\n // this flag forces child components with slot content to update\r\n isHmrUpdating = true;\r\n instance.update();\r\n isHmrUpdating = false;\r\n });\r\n}\r\nfunction reload(id, newComp) {\r\n const record = map.get(id);\r\n if (!record)\r\n return;\r\n // Array.from creates a snapshot which avoids the set being mutated during\r\n // updates\r\n const { component, instances } = record;\r\n if (!hmrDirtyComponents.has(component)) {\r\n // 1. Update existing comp definition to match new one\r\n newComp = isClassComponent(newComp) ? newComp.__vccOpts : newComp;\r\n extend(component, newComp);\r\n for (const key in component) {\r\n if (!(key in newComp)) {\r\n delete component[key];\r\n }\r\n }\r\n // 2. Mark component dirty. This forces the renderer to replace the component\r\n // on patch.\r\n hmrDirtyComponents.add(component);\r\n // 3. Make sure to unmark the component after the reload.\r\n queuePostFlushCb(() => {\r\n hmrDirtyComponents.delete(component);\r\n });\r\n }\r\n Array.from(instances).forEach(instance => {\r\n if (instance.parent) {\r\n // 4. Force the parent instance to re-render. This will cause all updated\r\n // components to be unmounted and re-mounted. Queue the update so that we\r\n // don't end up forcing the same parent to re-render multiple times.\r\n queueJob(instance.parent.update);\r\n }\r\n else if (instance.appContext.reload) {\r\n // root instance mounted via createApp() has a reload method\r\n instance.appContext.reload();\r\n }\r\n else if (typeof window !== 'undefined') {\r\n // root instance inside tree created via raw render(). Force reload.\r\n window.location.reload();\r\n }\r\n else {\r\n console.warn('[HMR] Root or manually mounted instance modified. Full reload required.');\r\n }\r\n });\r\n}\r\nfunction tryWrap(fn) {\r\n return (id, arg) => {\r\n try {\r\n return fn(id, arg);\r\n }\r\n catch (e) {\r\n console.error(e);\r\n console.warn(`[HMR] Something went wrong during Vue component hot-reload. ` +\r\n `Full reload required.`);\r\n }\r\n };\r\n}\n\nlet devtools;\r\nfunction setDevtoolsHook(hook) {\r\n devtools = hook;\r\n}\r\nfunction devtoolsInitApp(app, version) {\r\n // TODO queue if devtools is undefined\r\n if (!devtools)\r\n return;\r\n devtools.emit(\"app:init\" /* APP_INIT */, app, version, {\r\n Fragment,\r\n Text,\r\n Comment,\r\n Static\r\n });\r\n}\r\nfunction devtoolsUnmountApp(app) {\r\n if (!devtools)\r\n return;\r\n devtools.emit(\"app:unmount\" /* APP_UNMOUNT */, app);\r\n}\r\nconst devtoolsComponentAdded = /*#__PURE__*/ createDevtoolsComponentHook(\"component:added\" /* COMPONENT_ADDED */);\r\nconst devtoolsComponentUpdated = /*#__PURE__*/ createDevtoolsComponentHook(\"component:updated\" /* COMPONENT_UPDATED */);\r\nconst devtoolsComponentRemoved = /*#__PURE__*/ createDevtoolsComponentHook(\"component:removed\" /* COMPONENT_REMOVED */);\r\nfunction createDevtoolsComponentHook(hook) {\r\n return (component) => {\r\n if (!devtools)\r\n return;\r\n devtools.emit(hook, component.appContext.app, component.uid, component.parent ? component.parent.uid : undefined, component);\r\n };\r\n}\r\nfunction devtoolsComponentEmit(component, event, params) {\r\n if (!devtools)\r\n return;\r\n devtools.emit(\"component:emit\" /* COMPONENT_EMIT */, component.appContext.app, component, event, params);\r\n}\n\nfunction emit(instance, event, ...rawArgs) {\r\n const props = instance.vnode.props || EMPTY_OBJ;\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n const { emitsOptions, propsOptions: [propsOptions] } = instance;\r\n if (emitsOptions) {\r\n if (!(event in emitsOptions)) {\r\n if (!propsOptions || !(toHandlerKey(event) in propsOptions)) {\r\n warn(`Component emitted event \"${event}\" but it is neither declared in ` +\r\n `the emits option nor as an \"${toHandlerKey(event)}\" prop.`);\r\n }\r\n }\r\n else {\r\n const validator = emitsOptions[event];\r\n if (isFunction(validator)) {\r\n const isValid = validator(...rawArgs);\r\n if (!isValid) {\r\n warn(`Invalid event arguments: event validation failed for event \"${event}\".`);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n let args = rawArgs;\r\n const isModelListener = event.startsWith('update:');\r\n // for v-model update:xxx events, apply modifiers on args\r\n const modelArg = isModelListener && event.slice(7);\r\n if (modelArg && modelArg in props) {\r\n const modifiersKey = `${modelArg === 'modelValue' ? 'model' : modelArg}Modifiers`;\r\n const { number, trim } = props[modifiersKey] || EMPTY_OBJ;\r\n if (trim) {\r\n args = rawArgs.map(a => a.trim());\r\n }\r\n else if (number) {\r\n args = rawArgs.map(toNumber);\r\n }\r\n }\r\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\r\n devtoolsComponentEmit(instance, event, args);\r\n }\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n const lowerCaseEvent = event.toLowerCase();\r\n if (lowerCaseEvent !== event && props[toHandlerKey(lowerCaseEvent)]) {\r\n warn(`Event \"${lowerCaseEvent}\" is emitted in component ` +\r\n `${formatComponentName(instance, instance.type)} but the handler is registered for \"${event}\". ` +\r\n `Note that HTML attributes are case-insensitive and you cannot use ` +\r\n `v-on to listen to camelCase events when using in-DOM templates. ` +\r\n `You should probably use \"${hyphenate(event)}\" instead of \"${event}\".`);\r\n }\r\n }\r\n // convert handler name to camelCase. See issue #2249\r\n let handlerName = toHandlerKey(camelize(event));\r\n let handler = props[handlerName];\r\n // for v-model update:xxx events, also trigger kebab-case equivalent\r\n // for props passed via kebab-case\r\n if (!handler && isModelListener) {\r\n handlerName = toHandlerKey(hyphenate(event));\r\n handler = props[handlerName];\r\n }\r\n if (handler) {\r\n callWithAsyncErrorHandling(handler, instance, 6 /* COMPONENT_EVENT_HANDLER */, args);\r\n }\r\n const onceHandler = props[handlerName + `Once`];\r\n if (onceHandler) {\r\n if (!instance.emitted) {\r\n (instance.emitted = {})[handlerName] = true;\r\n }\r\n else if (instance.emitted[handlerName]) {\r\n return;\r\n }\r\n callWithAsyncErrorHandling(onceHandler, instance, 6 /* COMPONENT_EVENT_HANDLER */, args);\r\n }\r\n}\r\nfunction normalizeEmitsOptions(comp, appContext, asMixin = false) {\r\n if (!appContext.deopt && comp.__emits !== undefined) {\r\n return comp.__emits;\r\n }\r\n const raw = comp.emits;\r\n let normalized = {};\r\n // apply mixin/extends props\r\n let hasExtends = false;\r\n if (__VUE_OPTIONS_API__ && !isFunction(comp)) {\r\n const extendEmits = (raw) => {\r\n hasExtends = true;\r\n extend(normalized, normalizeEmitsOptions(raw, appContext, true));\r\n };\r\n if (!asMixin && appContext.mixins.length) {\r\n appContext.mixins.forEach(extendEmits);\r\n }\r\n if (comp.extends) {\r\n extendEmits(comp.extends);\r\n }\r\n if (comp.mixins) {\r\n comp.mixins.forEach(extendEmits);\r\n }\r\n }\r\n if (!raw && !hasExtends) {\r\n return (comp.__emits = null);\r\n }\r\n if (isArray(raw)) {\r\n raw.forEach(key => (normalized[key] = null));\r\n }\r\n else {\r\n extend(normalized, raw);\r\n }\r\n return (comp.__emits = normalized);\r\n}\r\n// Check if an incoming prop key is a declared emit event listener.\r\n// e.g. With `emits: { click: null }`, props named `onClick` and `onclick` are\r\n// both considered matched listeners.\r\nfunction isEmitListener(options, key) {\r\n if (!options || !isOn(key)) {\r\n return false;\r\n }\r\n key = key.slice(2).replace(/Once$/, '');\r\n return (hasOwn(options, key[0].toLowerCase() + key.slice(1)) ||\r\n hasOwn(options, hyphenate(key)) ||\r\n hasOwn(options, key));\r\n}\n\n/**\r\n * mark the current rendering instance for asset resolution (e.g.\r\n * resolveComponent, resolveDirective) during render\r\n */\r\nlet currentRenderingInstance = null;\r\nfunction setCurrentRenderingInstance(instance) {\r\n currentRenderingInstance = instance;\r\n}\r\n/**\r\n * dev only flag to track whether $attrs was used during render.\r\n * If $attrs was used during render then the warning for failed attrs\r\n * fallthrough can be suppressed.\r\n */\r\nlet accessedAttrs = false;\r\nfunction markAttrsAccessed() {\r\n accessedAttrs = true;\r\n}\r\nfunction renderComponentRoot(instance) {\r\n const { type: Component, vnode, proxy, withProxy, props, propsOptions: [propsOptions], slots, attrs, emit, render, renderCache, data, setupState, ctx } = instance;\r\n let result;\r\n currentRenderingInstance = instance;\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n accessedAttrs = false;\r\n }\r\n try {\r\n let fallthroughAttrs;\r\n if (vnode.shapeFlag & 4 /* STATEFUL_COMPONENT */) {\r\n // withProxy is a proxy with a different `has` trap only for\r\n // runtime-compiled render functions using `with` block.\r\n const proxyToUse = withProxy || proxy;\r\n result = normalizeVNode(render.call(proxyToUse, proxyToUse, renderCache, props, setupState, data, ctx));\r\n fallthroughAttrs = attrs;\r\n }\r\n else {\r\n // functional\r\n const render = Component;\r\n // in dev, mark attrs accessed if optional props (attrs === props)\r\n if ((process.env.NODE_ENV !== 'production') && attrs === props) {\r\n markAttrsAccessed();\r\n }\r\n result = normalizeVNode(render.length > 1\r\n ? render(props, (process.env.NODE_ENV !== 'production')\r\n ? {\r\n get attrs() {\r\n markAttrsAccessed();\r\n return attrs;\r\n },\r\n slots,\r\n emit\r\n }\r\n : { attrs, slots, emit })\r\n : render(props, null /* we know it doesn't need it */));\r\n fallthroughAttrs = Component.props\r\n ? attrs\r\n : getFunctionalFallthrough(attrs);\r\n }\r\n // attr merging\r\n // in dev mode, comments are preserved, and it's possible for a template\r\n // to have comments along side the root element which makes it a fragment\r\n let root = result;\r\n let setRoot = undefined;\r\n if ((process.env.NODE_ENV !== 'production') &&\r\n result.patchFlag > 0 &&\r\n result.patchFlag & 2048 /* DEV_ROOT_FRAGMENT */) {\r\n ;\r\n [root, setRoot] = getChildRoot(result);\r\n }\r\n if (Component.inheritAttrs !== false && fallthroughAttrs) {\r\n const keys = Object.keys(fallthroughAttrs);\r\n const { shapeFlag } = root;\r\n if (keys.length) {\r\n if (shapeFlag & 1 /* ELEMENT */ ||\r\n shapeFlag & 6 /* COMPONENT */) {\r\n if (propsOptions && keys.some(isModelListener)) {\r\n // If a v-model listener (onUpdate:xxx) has a corresponding declared\r\n // prop, it indicates this component expects to handle v-model and\r\n // it should not fallthrough.\r\n // related: #1543, #1643, #1989\r\n fallthroughAttrs = filterModelListeners(fallthroughAttrs, propsOptions);\r\n }\r\n root = cloneVNode(root, fallthroughAttrs);\r\n }\r\n else if ((process.env.NODE_ENV !== 'production') && !accessedAttrs && root.type !== Comment) {\r\n const allAttrs = Object.keys(attrs);\r\n const eventAttrs = [];\r\n const extraAttrs = [];\r\n for (let i = 0, l = allAttrs.length; i < l; i++) {\r\n const key = allAttrs[i];\r\n if (isOn(key)) {\r\n // ignore v-model handlers when they fail to fallthrough\r\n if (!isModelListener(key)) {\r\n // remove `on`, lowercase first letter to reflect event casing\r\n // accurately\r\n eventAttrs.push(key[2].toLowerCase() + key.slice(3));\r\n }\r\n }\r\n else {\r\n extraAttrs.push(key);\r\n }\r\n }\r\n if (extraAttrs.length) {\r\n warn(`Extraneous non-props attributes (` +\r\n `${extraAttrs.join(', ')}) ` +\r\n `were passed to component but could not be automatically inherited ` +\r\n `because component renders fragment or text root nodes.`);\r\n }\r\n if (eventAttrs.length) {\r\n warn(`Extraneous non-emits event listeners (` +\r\n `${eventAttrs.join(', ')}) ` +\r\n `were passed to component but could not be automatically inherited ` +\r\n `because component renders fragment or text root nodes. ` +\r\n `If the listener is intended to be a component custom event listener only, ` +\r\n `declare it using the \"emits\" option.`);\r\n }\r\n }\r\n }\r\n }\r\n // inherit directives\r\n if (vnode.dirs) {\r\n if ((process.env.NODE_ENV !== 'production') && !isElementRoot(root)) {\r\n warn(`Runtime directive used on component with non-element root node. ` +\r\n `The directives will not function as intended.`);\r\n }\r\n root.dirs = root.dirs ? root.dirs.concat(vnode.dirs) : vnode.dirs;\r\n }\r\n // inherit transition data\r\n if (vnode.transition) {\r\n if ((process.env.NODE_ENV !== 'production') && !isElementRoot(root)) {\r\n warn(`Component inside renders non-element root node ` +\r\n `that cannot be animated.`);\r\n }\r\n root.transition = vnode.transition;\r\n }\r\n if ((process.env.NODE_ENV !== 'production') && setRoot) {\r\n setRoot(root);\r\n }\r\n else {\r\n result = root;\r\n }\r\n }\r\n catch (err) {\r\n handleError(err, instance, 1 /* RENDER_FUNCTION */);\r\n result = createVNode(Comment);\r\n }\r\n currentRenderingInstance = null;\r\n return result;\r\n}\r\n/**\r\n * dev only\r\n * In dev mode, template root level comments are rendered, which turns the\r\n * template into a fragment root, but we need to locate the single element\r\n * root for attrs and scope id processing.\r\n */\r\nconst getChildRoot = (vnode) => {\r\n const rawChildren = vnode.children;\r\n const dynamicChildren = vnode.dynamicChildren;\r\n const childRoot = filterSingleRoot(rawChildren);\r\n if (!childRoot) {\r\n return [vnode, undefined];\r\n }\r\n const index = rawChildren.indexOf(childRoot);\r\n const dynamicIndex = dynamicChildren ? dynamicChildren.indexOf(childRoot) : -1;\r\n const setRoot = (updatedRoot) => {\r\n rawChildren[index] = updatedRoot;\r\n if (dynamicChildren) {\r\n if (dynamicIndex > -1) {\r\n dynamicChildren[dynamicIndex] = updatedRoot;\r\n }\r\n else if (updatedRoot.patchFlag > 0) {\r\n vnode.dynamicChildren = [...dynamicChildren, updatedRoot];\r\n }\r\n }\r\n };\r\n return [normalizeVNode(childRoot), setRoot];\r\n};\r\nfunction filterSingleRoot(children) {\r\n let singleRoot;\r\n for (let i = 0; i < children.length; i++) {\r\n const child = children[i];\r\n if (isVNode(child)) {\r\n // ignore user comment\r\n if (child.type !== Comment || child.children === 'v-if') {\r\n if (singleRoot) {\r\n // has more than 1 non-comment child, return now\r\n return;\r\n }\r\n else {\r\n singleRoot = child;\r\n }\r\n }\r\n }\r\n else {\r\n return;\r\n }\r\n }\r\n return singleRoot;\r\n}\r\nconst getFunctionalFallthrough = (attrs) => {\r\n let res;\r\n for (const key in attrs) {\r\n if (key === 'class' || key === 'style' || isOn(key)) {\r\n (res || (res = {}))[key] = attrs[key];\r\n }\r\n }\r\n return res;\r\n};\r\nconst filterModelListeners = (attrs, props) => {\r\n const res = {};\r\n for (const key in attrs) {\r\n if (!isModelListener(key) || !(key.slice(9) in props)) {\r\n res[key] = attrs[key];\r\n }\r\n }\r\n return res;\r\n};\r\nconst isElementRoot = (vnode) => {\r\n return (vnode.shapeFlag & 6 /* COMPONENT */ ||\r\n vnode.shapeFlag & 1 /* ELEMENT */ ||\r\n vnode.type === Comment // potential v-if branch switch\r\n );\r\n};\r\nfunction shouldUpdateComponent(prevVNode, nextVNode, optimized) {\r\n const { props: prevProps, children: prevChildren, component } = prevVNode;\r\n const { props: nextProps, children: nextChildren, patchFlag } = nextVNode;\r\n const emits = component.emitsOptions;\r\n // Parent component's render function was hot-updated. Since this may have\r\n // caused the child component's slots content to have changed, we need to\r\n // force the child to update as well.\r\n if ((process.env.NODE_ENV !== 'production') && (prevChildren || nextChildren) && isHmrUpdating) {\r\n return true;\r\n }\r\n // force child update for runtime directive or transition on component vnode.\r\n if (nextVNode.dirs || nextVNode.transition) {\r\n return true;\r\n }\r\n if (optimized && patchFlag >= 0) {\r\n if (patchFlag & 1024 /* DYNAMIC_SLOTS */) {\r\n // slot content that references values that might have changed,\r\n // e.g. in a v-for\r\n return true;\r\n }\r\n if (patchFlag & 16 /* FULL_PROPS */) {\r\n if (!prevProps) {\r\n return !!nextProps;\r\n }\r\n // presence of this flag indicates props are always non-null\r\n return hasPropsChanged(prevProps, nextProps, emits);\r\n }\r\n else if (patchFlag & 8 /* PROPS */) {\r\n const dynamicProps = nextVNode.dynamicProps;\r\n for (let i = 0; i < dynamicProps.length; i++) {\r\n const key = dynamicProps[i];\r\n if (nextProps[key] !== prevProps[key] &&\r\n !isEmitListener(emits, key)) {\r\n return true;\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n // this path is only taken by manually written render functions\r\n // so presence of any children leads to a forced update\r\n if (prevChildren || nextChildren) {\r\n if (!nextChildren || !nextChildren.$stable) {\r\n return true;\r\n }\r\n }\r\n if (prevProps === nextProps) {\r\n return false;\r\n }\r\n if (!prevProps) {\r\n return !!nextProps;\r\n }\r\n if (!nextProps) {\r\n return true;\r\n }\r\n return hasPropsChanged(prevProps, nextProps, emits);\r\n }\r\n return false;\r\n}\r\nfunction hasPropsChanged(prevProps, nextProps, emitsOptions) {\r\n const nextKeys = Object.keys(nextProps);\r\n if (nextKeys.length !== Object.keys(prevProps).length) {\r\n return true;\r\n }\r\n for (let i = 0; i < nextKeys.length; i++) {\r\n const key = nextKeys[i];\r\n if (nextProps[key] !== prevProps[key] &&\r\n !isEmitListener(emitsOptions, key)) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n}\r\nfunction updateHOCHostEl({ vnode, parent }, el // HostNode\r\n) {\r\n while (parent && parent.subTree === vnode) {\r\n (vnode = parent.vnode).el = el;\r\n parent = parent.parent;\r\n }\r\n}\n\nconst isSuspense = (type) => type.__isSuspense;\r\n// Suspense exposes a component-like API, and is treated like a component\r\n// in the compiler, but internally it's a special built-in type that hooks\r\n// directly into the renderer.\r\nconst SuspenseImpl = {\r\n // In order to make Suspense tree-shakable, we need to avoid importing it\r\n // directly in the renderer. The renderer checks for the __isSuspense flag\r\n // on a vnode's type and calls the `process` method, passing in renderer\r\n // internals.\r\n __isSuspense: true,\r\n process(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, optimized, \r\n // platform-specific impl passed from renderer\r\n rendererInternals) {\r\n if (n1 == null) {\r\n mountSuspense(n2, container, anchor, parentComponent, parentSuspense, isSVG, optimized, rendererInternals);\r\n }\r\n else {\r\n patchSuspense(n1, n2, container, anchor, parentComponent, isSVG, rendererInternals);\r\n }\r\n },\r\n hydrate: hydrateSuspense,\r\n create: createSuspenseBoundary\r\n};\r\n// Force-casted public typing for h and TSX props inference\r\nconst Suspense = (SuspenseImpl\r\n );\r\nfunction mountSuspense(vnode, container, anchor, parentComponent, parentSuspense, isSVG, optimized, rendererInternals) {\r\n const { p: patch, o: { createElement } } = rendererInternals;\r\n const hiddenContainer = createElement('div');\r\n const suspense = (vnode.suspense = createSuspenseBoundary(vnode, parentSuspense, parentComponent, container, hiddenContainer, anchor, isSVG, optimized, rendererInternals));\r\n // start mounting the content subtree in an off-dom container\r\n patch(null, (suspense.pendingBranch = vnode.ssContent), hiddenContainer, null, parentComponent, suspense, isSVG);\r\n // now check if we have encountered any async deps\r\n if (suspense.deps > 0) {\r\n // has async\r\n // mount the fallback tree\r\n patch(null, vnode.ssFallback, container, anchor, parentComponent, null, // fallback tree will not have suspense context\r\n isSVG);\r\n setActiveBranch(suspense, vnode.ssFallback);\r\n }\r\n else {\r\n // Suspense has no async deps. Just resolve.\r\n suspense.resolve();\r\n }\r\n}\r\nfunction patchSuspense(n1, n2, container, anchor, parentComponent, isSVG, { p: patch, um: unmount, o: { createElement } }) {\r\n const suspense = (n2.suspense = n1.suspense);\r\n suspense.vnode = n2;\r\n n2.el = n1.el;\r\n const newBranch = n2.ssContent;\r\n const newFallback = n2.ssFallback;\r\n const { activeBranch, pendingBranch, isInFallback, isHydrating } = suspense;\r\n if (pendingBranch) {\r\n suspense.pendingBranch = newBranch;\r\n if (isSameVNodeType(newBranch, pendingBranch)) {\r\n // same root type but content may have changed.\r\n patch(pendingBranch, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, isSVG);\r\n if (suspense.deps <= 0) {\r\n suspense.resolve();\r\n }\r\n else if (isInFallback) {\r\n patch(activeBranch, newFallback, container, anchor, parentComponent, null, // fallback tree will not have suspense context\r\n isSVG);\r\n setActiveBranch(suspense, newFallback);\r\n }\r\n }\r\n else {\r\n // toggled before pending tree is resolved\r\n suspense.pendingId++;\r\n if (isHydrating) {\r\n // if toggled before hydration is finished, the current DOM tree is\r\n // no longer valid. set it as the active branch so it will be unmounted\r\n // when resolved\r\n suspense.isHydrating = false;\r\n suspense.activeBranch = pendingBranch;\r\n }\r\n else {\r\n unmount(pendingBranch, parentComponent, suspense);\r\n }\r\n // increment pending ID. this is used to invalidate async callbacks\r\n // reset suspense state\r\n suspense.deps = 0;\r\n // discard effects from pending branch\r\n suspense.effects.length = 0;\r\n // discard previous container\r\n suspense.hiddenContainer = createElement('div');\r\n if (isInFallback) {\r\n // already in fallback state\r\n patch(null, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, isSVG);\r\n if (suspense.deps <= 0) {\r\n suspense.resolve();\r\n }\r\n else {\r\n patch(activeBranch, newFallback, container, anchor, parentComponent, null, // fallback tree will not have suspense context\r\n isSVG);\r\n setActiveBranch(suspense, newFallback);\r\n }\r\n }\r\n else if (activeBranch && isSameVNodeType(newBranch, activeBranch)) {\r\n // toggled \"back\" to current active branch\r\n patch(activeBranch, newBranch, container, anchor, parentComponent, suspense, isSVG);\r\n // force resolve\r\n suspense.resolve(true);\r\n }\r\n else {\r\n // switched to a 3rd branch\r\n patch(null, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, isSVG);\r\n if (suspense.deps <= 0) {\r\n suspense.resolve();\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n if (activeBranch && isSameVNodeType(newBranch, activeBranch)) {\r\n // root did not change, just normal patch\r\n patch(activeBranch, newBranch, container, anchor, parentComponent, suspense, isSVG);\r\n setActiveBranch(suspense, newBranch);\r\n }\r\n else {\r\n // root node toggled\r\n // invoke @pending event\r\n const onPending = n2.props && n2.props.onPending;\r\n if (isFunction(onPending)) {\r\n onPending();\r\n }\r\n // mount pending branch in off-dom container\r\n suspense.pendingBranch = newBranch;\r\n suspense.pendingId++;\r\n patch(null, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, isSVG);\r\n if (suspense.deps <= 0) {\r\n // incoming branch has no async deps, resolve now.\r\n suspense.resolve();\r\n }\r\n else {\r\n const { timeout, pendingId } = suspense;\r\n if (timeout > 0) {\r\n setTimeout(() => {\r\n if (suspense.pendingId === pendingId) {\r\n suspense.fallback(newFallback);\r\n }\r\n }, timeout);\r\n }\r\n else if (timeout === 0) {\r\n suspense.fallback(newFallback);\r\n }\r\n }\r\n }\r\n }\r\n}\r\nlet hasWarned = false;\r\nfunction createSuspenseBoundary(vnode, parent, parentComponent, container, hiddenContainer, anchor, isSVG, optimized, rendererInternals, isHydrating = false) {\r\n /* istanbul ignore if */\r\n if ((process.env.NODE_ENV !== 'production') && !false && !hasWarned) {\r\n hasWarned = true;\r\n // @ts-ignore `console.info` cannot be null error\r\n console[console.info ? 'info' : 'log'](` is an experimental feature and its API will likely change.`);\r\n }\r\n const { p: patch, m: move, um: unmount, n: next, o: { parentNode, remove } } = rendererInternals;\r\n const timeout = toNumber(vnode.props && vnode.props.timeout);\r\n const suspense = {\r\n vnode,\r\n parent,\r\n parentComponent,\r\n isSVG,\r\n container,\r\n hiddenContainer,\r\n anchor,\r\n deps: 0,\r\n pendingId: 0,\r\n timeout: typeof timeout === 'number' ? timeout : -1,\r\n activeBranch: null,\r\n pendingBranch: null,\r\n isInFallback: true,\r\n isHydrating,\r\n isUnmounted: false,\r\n effects: [],\r\n resolve(resume = false) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n if (!resume && !suspense.pendingBranch) {\r\n throw new Error(`suspense.resolve() is called without a pending branch.`);\r\n }\r\n if (suspense.isUnmounted) {\r\n throw new Error(`suspense.resolve() is called on an already unmounted suspense boundary.`);\r\n }\r\n }\r\n const { vnode, activeBranch, pendingBranch, pendingId, effects, parentComponent, container } = suspense;\r\n if (suspense.isHydrating) {\r\n suspense.isHydrating = false;\r\n }\r\n else if (!resume) {\r\n const delayEnter = activeBranch &&\r\n pendingBranch.transition &&\r\n pendingBranch.transition.mode === 'out-in';\r\n if (delayEnter) {\r\n activeBranch.transition.afterLeave = () => {\r\n if (pendingId === suspense.pendingId) {\r\n move(pendingBranch, container, anchor, 0 /* ENTER */);\r\n }\r\n };\r\n }\r\n // this is initial anchor on mount\r\n let { anchor } = suspense;\r\n // unmount current active tree\r\n if (activeBranch) {\r\n // if the fallback tree was mounted, it may have been moved\r\n // as part of a parent suspense. get the latest anchor for insertion\r\n anchor = next(activeBranch);\r\n unmount(activeBranch, parentComponent, suspense, true);\r\n }\r\n if (!delayEnter) {\r\n // move content from off-dom container to actual container\r\n move(pendingBranch, container, anchor, 0 /* ENTER */);\r\n }\r\n }\r\n setActiveBranch(suspense, pendingBranch);\r\n suspense.pendingBranch = null;\r\n suspense.isInFallback = false;\r\n // flush buffered effects\r\n // check if there is a pending parent suspense\r\n let parent = suspense.parent;\r\n let hasUnresolvedAncestor = false;\r\n while (parent) {\r\n if (parent.pendingBranch) {\r\n // found a pending parent suspense, merge buffered post jobs\r\n // into that parent\r\n parent.effects.push(...effects);\r\n hasUnresolvedAncestor = true;\r\n break;\r\n }\r\n parent = parent.parent;\r\n }\r\n // no pending parent suspense, flush all jobs\r\n if (!hasUnresolvedAncestor) {\r\n queuePostFlushCb(effects);\r\n }\r\n suspense.effects = [];\r\n // invoke @resolve event\r\n const onResolve = vnode.props && vnode.props.onResolve;\r\n if (isFunction(onResolve)) {\r\n onResolve();\r\n }\r\n },\r\n fallback(fallbackVNode) {\r\n if (!suspense.pendingBranch) {\r\n return;\r\n }\r\n const { vnode, activeBranch, parentComponent, container, isSVG } = suspense;\r\n // invoke @fallback event\r\n const onFallback = vnode.props && vnode.props.onFallback;\r\n if (isFunction(onFallback)) {\r\n onFallback();\r\n }\r\n const anchor = next(activeBranch);\r\n const mountFallback = () => {\r\n if (!suspense.isInFallback) {\r\n return;\r\n }\r\n // mount the fallback tree\r\n patch(null, fallbackVNode, container, anchor, parentComponent, null, // fallback tree will not have suspense context\r\n isSVG);\r\n setActiveBranch(suspense, fallbackVNode);\r\n };\r\n const delayEnter = fallbackVNode.transition && fallbackVNode.transition.mode === 'out-in';\r\n if (delayEnter) {\r\n activeBranch.transition.afterLeave = mountFallback;\r\n }\r\n // unmount current active branch\r\n unmount(activeBranch, parentComponent, null, // no suspense so unmount hooks fire now\r\n true // shouldRemove\r\n );\r\n suspense.isInFallback = true;\r\n if (!delayEnter) {\r\n mountFallback();\r\n }\r\n },\r\n move(container, anchor, type) {\r\n suspense.activeBranch &&\r\n move(suspense.activeBranch, container, anchor, type);\r\n suspense.container = container;\r\n },\r\n next() {\r\n return suspense.activeBranch && next(suspense.activeBranch);\r\n },\r\n registerDep(instance, setupRenderEffect) {\r\n const isInPendingSuspense = !!suspense.pendingBranch;\r\n if (isInPendingSuspense) {\r\n suspense.deps++;\r\n }\r\n const hydratedEl = instance.vnode.el;\r\n instance\r\n .asyncDep.catch(err => {\r\n handleError(err, instance, 0 /* SETUP_FUNCTION */);\r\n })\r\n .then(asyncSetupResult => {\r\n // retry when the setup() promise resolves.\r\n // component may have been unmounted before resolve.\r\n if (instance.isUnmounted ||\r\n suspense.isUnmounted ||\r\n suspense.pendingId !== instance.suspenseId) {\r\n return;\r\n }\r\n // retry from this component\r\n instance.asyncResolved = true;\r\n const { vnode } = instance;\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n pushWarningContext(vnode);\r\n }\r\n handleSetupResult(instance, asyncSetupResult);\r\n if (hydratedEl) {\r\n // vnode may have been replaced if an update happened before the\r\n // async dep is resolved.\r\n vnode.el = hydratedEl;\r\n }\r\n const placeholder = !hydratedEl && instance.subTree.el;\r\n setupRenderEffect(instance, vnode, \r\n // component may have been moved before resolve.\r\n // if this is not a hydration, instance.subTree will be the comment\r\n // placeholder.\r\n parentNode(hydratedEl || instance.subTree.el), \r\n // anchor will not be used if this is hydration, so only need to\r\n // consider the comment placeholder case.\r\n hydratedEl ? null : next(instance.subTree), suspense, isSVG, optimized);\r\n if (placeholder) {\r\n remove(placeholder);\r\n }\r\n updateHOCHostEl(instance, vnode.el);\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n popWarningContext();\r\n }\r\n // only decrease deps count if suspense is not already resolved\r\n if (isInPendingSuspense && --suspense.deps === 0) {\r\n suspense.resolve();\r\n }\r\n });\r\n },\r\n unmount(parentSuspense, doRemove) {\r\n suspense.isUnmounted = true;\r\n if (suspense.activeBranch) {\r\n unmount(suspense.activeBranch, parentComponent, parentSuspense, doRemove);\r\n }\r\n if (suspense.pendingBranch) {\r\n unmount(suspense.pendingBranch, parentComponent, parentSuspense, doRemove);\r\n }\r\n }\r\n };\r\n return suspense;\r\n}\r\nfunction hydrateSuspense(node, vnode, parentComponent, parentSuspense, isSVG, optimized, rendererInternals, hydrateNode) {\r\n /* eslint-disable no-restricted-globals */\r\n const suspense = (vnode.suspense = createSuspenseBoundary(vnode, parentSuspense, parentComponent, node.parentNode, document.createElement('div'), null, isSVG, optimized, rendererInternals, true /* hydrating */));\r\n // there are two possible scenarios for server-rendered suspense:\r\n // - success: ssr content should be fully resolved\r\n // - failure: ssr content should be the fallback branch.\r\n // however, on the client we don't really know if it has failed or not\r\n // attempt to hydrate the DOM assuming it has succeeded, but we still\r\n // need to construct a suspense boundary first\r\n const result = hydrateNode(node, (suspense.pendingBranch = vnode.ssContent), parentComponent, suspense, optimized);\r\n if (suspense.deps === 0) {\r\n suspense.resolve();\r\n }\r\n return result;\r\n /* eslint-enable no-restricted-globals */\r\n}\r\nfunction normalizeSuspenseChildren(vnode) {\r\n const { shapeFlag, children } = vnode;\r\n let content;\r\n let fallback;\r\n if (shapeFlag & 32 /* SLOTS_CHILDREN */) {\r\n content = normalizeSuspenseSlot(children.default);\r\n fallback = normalizeSuspenseSlot(children.fallback);\r\n }\r\n else {\r\n content = normalizeSuspenseSlot(children);\r\n fallback = normalizeVNode(null);\r\n }\r\n return {\r\n content,\r\n fallback\r\n };\r\n}\r\nfunction normalizeSuspenseSlot(s) {\r\n if (isFunction(s)) {\r\n s = s();\r\n }\r\n if (isArray(s)) {\r\n const singleChild = filterSingleRoot(s);\r\n if ((process.env.NODE_ENV !== 'production') && !singleChild) {\r\n warn(` slots expect a single root node.`);\r\n }\r\n s = singleChild;\r\n }\r\n return normalizeVNode(s);\r\n}\r\nfunction queueEffectWithSuspense(fn, suspense) {\r\n if (suspense && suspense.pendingBranch) {\r\n if (isArray(fn)) {\r\n suspense.effects.push(...fn);\r\n }\r\n else {\r\n suspense.effects.push(fn);\r\n }\r\n }\r\n else {\r\n queuePostFlushCb(fn);\r\n }\r\n}\r\nfunction setActiveBranch(suspense, branch) {\r\n suspense.activeBranch = branch;\r\n const { vnode, parentComponent } = suspense;\r\n const el = (vnode.el = branch.el);\r\n // in case suspense is the root node of a component,\r\n // recursively update the HOC el\r\n if (parentComponent && parentComponent.subTree === vnode) {\r\n parentComponent.vnode.el = el;\r\n updateHOCHostEl(parentComponent, el);\r\n }\r\n}\n\nlet isRenderingCompiledSlot = 0;\r\nconst setCompiledSlotRendering = (n) => (isRenderingCompiledSlot += n);\r\n/**\r\n * Compiler runtime helper for rendering ``\r\n * @private\r\n */\r\nfunction renderSlot(slots, name, props = {}, \r\n// this is not a user-facing function, so the fallback is always generated by\r\n// the compiler and guaranteed to be a function returning an array\r\nfallback) {\r\n let slot = slots[name];\r\n if ((process.env.NODE_ENV !== 'production') && slot && slot.length > 1) {\r\n warn(`SSR-optimized slot function detected in a non-SSR-optimized render ` +\r\n `function. You need to mark this component with $dynamic-slots in the ` +\r\n `parent template.`);\r\n slot = () => [];\r\n }\r\n // a compiled slot disables block tracking by default to avoid manual\r\n // invocation interfering with template-based block tracking, but in\r\n // `renderSlot` we can be sure that it's template-based so we can force\r\n // enable it.\r\n isRenderingCompiledSlot++;\r\n openBlock();\r\n const validSlotContent = slot && ensureValidVNode(slot(props));\r\n const rendered = createBlock(Fragment, { key: props.key || `_${name}` }, validSlotContent || (fallback ? fallback() : []), validSlotContent && slots._ === 1 /* STABLE */\r\n ? 64 /* STABLE_FRAGMENT */\r\n : -2 /* BAIL */);\r\n isRenderingCompiledSlot--;\r\n return rendered;\r\n}\r\nfunction ensureValidVNode(vnodes) {\r\n return vnodes.some(child => {\r\n if (!isVNode(child))\r\n return true;\r\n if (child.type === Comment)\r\n return false;\r\n if (child.type === Fragment &&\r\n !ensureValidVNode(child.children))\r\n return false;\r\n return true;\r\n })\r\n ? vnodes\r\n : null;\r\n}\n\n/**\r\n * Wrap a slot function to memoize current rendering instance\r\n * @private\r\n */\r\nfunction withCtx(fn, ctx = currentRenderingInstance) {\r\n if (!ctx)\r\n return fn;\r\n const renderFnWithContext = (...args) => {\r\n // If a user calls a compiled slot inside a template expression (#1745), it\r\n // can mess up block tracking, so by default we need to push a null block to\r\n // avoid that. This isn't necessary if rendering a compiled ``.\r\n if (!isRenderingCompiledSlot) {\r\n openBlock(true /* null block that disables tracking */);\r\n }\r\n const owner = currentRenderingInstance;\r\n setCurrentRenderingInstance(ctx);\r\n const res = fn(...args);\r\n setCurrentRenderingInstance(owner);\r\n if (!isRenderingCompiledSlot) {\r\n closeBlock();\r\n }\r\n return res;\r\n };\r\n renderFnWithContext._c = true;\r\n return renderFnWithContext;\r\n}\n\n// SFC scoped style ID management.\r\nlet currentScopeId = null;\r\nconst scopeIdStack = [];\r\n/**\r\n * @private\r\n */\r\nfunction pushScopeId(id) {\r\n scopeIdStack.push((currentScopeId = id));\r\n}\r\n/**\r\n * @private\r\n */\r\nfunction popScopeId() {\r\n scopeIdStack.pop();\r\n currentScopeId = scopeIdStack[scopeIdStack.length - 1] || null;\r\n}\r\n/**\r\n * @private\r\n */\r\nfunction withScopeId(id) {\r\n return ((fn) => withCtx(function () {\r\n pushScopeId(id);\r\n const res = fn.apply(this, arguments);\r\n popScopeId();\r\n return res;\r\n }));\r\n}\n\nfunction initProps(instance, rawProps, isStateful, // result of bitwise flag comparison\r\nisSSR = false) {\r\n const props = {};\r\n const attrs = {};\r\n def(attrs, InternalObjectKey, 1);\r\n setFullProps(instance, rawProps, props, attrs);\r\n // validation\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n validateProps(props, instance);\r\n }\r\n if (isStateful) {\r\n // stateful\r\n instance.props = isSSR ? props : shallowReactive(props);\r\n }\r\n else {\r\n if (!instance.type.props) {\r\n // functional w/ optional props, props === attrs\r\n instance.props = attrs;\r\n }\r\n else {\r\n // functional w/ declared props\r\n instance.props = props;\r\n }\r\n }\r\n instance.attrs = attrs;\r\n}\r\nfunction updateProps(instance, rawProps, rawPrevProps, optimized) {\r\n const { props, attrs, vnode: { patchFlag } } = instance;\r\n const rawCurrentProps = toRaw(props);\r\n const [options] = instance.propsOptions;\r\n if (\r\n // always force full diff in dev\r\n // - #1942 if hmr is enabled with sfc component\r\n // - vite#872 non-sfc component used by sfc component\r\n !((process.env.NODE_ENV !== 'production') &&\r\n (instance.type.__hmrId ||\r\n (instance.parent && instance.parent.type.__hmrId))) &&\r\n (optimized || patchFlag > 0) &&\r\n !(patchFlag & 16 /* FULL_PROPS */)) {\r\n if (patchFlag & 8 /* PROPS */) {\r\n // Compiler-generated props & no keys change, just set the updated\r\n // the props.\r\n const propsToUpdate = instance.vnode.dynamicProps;\r\n for (let i = 0; i < propsToUpdate.length; i++) {\r\n const key = propsToUpdate[i];\r\n // PROPS flag guarantees rawProps to be non-null\r\n const value = rawProps[key];\r\n if (options) {\r\n // attr / props separation was done on init and will be consistent\r\n // in this code path, so just check if attrs have it.\r\n if (hasOwn(attrs, key)) {\r\n attrs[key] = value;\r\n }\r\n else {\r\n const camelizedKey = camelize(key);\r\n props[camelizedKey] = resolvePropValue(options, rawCurrentProps, camelizedKey, value, instance);\r\n }\r\n }\r\n else {\r\n attrs[key] = value;\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n // full props update.\r\n setFullProps(instance, rawProps, props, attrs);\r\n // in case of dynamic props, check if we need to delete keys from\r\n // the props object\r\n let kebabKey;\r\n for (const key in rawCurrentProps) {\r\n if (!rawProps ||\r\n // for camelCase\r\n (!hasOwn(rawProps, key) &&\r\n // it's possible the original props was passed in as kebab-case\r\n // and converted to camelCase (#955)\r\n ((kebabKey = hyphenate(key)) === key || !hasOwn(rawProps, kebabKey)))) {\r\n if (options) {\r\n if (rawPrevProps &&\r\n // for camelCase\r\n (rawPrevProps[key] !== undefined ||\r\n // for kebab-case\r\n rawPrevProps[kebabKey] !== undefined)) {\r\n props[key] = resolvePropValue(options, rawProps || EMPTY_OBJ, key, undefined, instance);\r\n }\r\n }\r\n else {\r\n delete props[key];\r\n }\r\n }\r\n }\r\n // in the case of functional component w/o props declaration, props and\r\n // attrs point to the same object so it should already have been updated.\r\n if (attrs !== rawCurrentProps) {\r\n for (const key in attrs) {\r\n if (!rawProps || !hasOwn(rawProps, key)) {\r\n delete attrs[key];\r\n }\r\n }\r\n }\r\n }\r\n // trigger updates for $attrs in case it's used in component slots\r\n trigger(instance, \"set\" /* SET */, '$attrs');\r\n if ((process.env.NODE_ENV !== 'production') && rawProps) {\r\n validateProps(props, instance);\r\n }\r\n}\r\nfunction setFullProps(instance, rawProps, props, attrs) {\r\n const [options, needCastKeys] = instance.propsOptions;\r\n if (rawProps) {\r\n for (const key in rawProps) {\r\n const value = rawProps[key];\r\n // key, ref are reserved and never passed down\r\n if (isReservedProp(key)) {\r\n continue;\r\n }\r\n // prop option names are camelized during normalization, so to support\r\n // kebab -> camel conversion here we need to camelize the key.\r\n let camelKey;\r\n if (options && hasOwn(options, (camelKey = camelize(key)))) {\r\n props[camelKey] = value;\r\n }\r\n else if (!isEmitListener(instance.emitsOptions, key)) {\r\n // Any non-declared (either as a prop or an emitted event) props are put\r\n // into a separate `attrs` object for spreading. Make sure to preserve\r\n // original key casing\r\n attrs[key] = value;\r\n }\r\n }\r\n }\r\n if (needCastKeys) {\r\n const rawCurrentProps = toRaw(props);\r\n for (let i = 0; i < needCastKeys.length; i++) {\r\n const key = needCastKeys[i];\r\n props[key] = resolvePropValue(options, rawCurrentProps, key, rawCurrentProps[key], instance);\r\n }\r\n }\r\n}\r\nfunction resolvePropValue(options, props, key, value, instance) {\r\n const opt = options[key];\r\n if (opt != null) {\r\n const hasDefault = hasOwn(opt, 'default');\r\n // default values\r\n if (hasDefault && value === undefined) {\r\n const defaultValue = opt.default;\r\n if (opt.type !== Function && isFunction(defaultValue)) {\r\n setCurrentInstance(instance);\r\n value = defaultValue(props);\r\n setCurrentInstance(null);\r\n }\r\n else {\r\n value = defaultValue;\r\n }\r\n }\r\n // boolean casting\r\n if (opt[0 /* shouldCast */]) {\r\n if (!hasOwn(props, key) && !hasDefault) {\r\n value = false;\r\n }\r\n else if (opt[1 /* shouldCastTrue */] &&\r\n (value === '' || value === hyphenate(key))) {\r\n value = true;\r\n }\r\n }\r\n }\r\n return value;\r\n}\r\nfunction normalizePropsOptions(comp, appContext, asMixin = false) {\r\n if (!appContext.deopt && comp.__props) {\r\n return comp.__props;\r\n }\r\n const raw = comp.props;\r\n const normalized = {};\r\n const needCastKeys = [];\r\n // apply mixin/extends props\r\n let hasExtends = false;\r\n if (__VUE_OPTIONS_API__ && !isFunction(comp)) {\r\n const extendProps = (raw) => {\r\n hasExtends = true;\r\n const [props, keys] = normalizePropsOptions(raw, appContext, true);\r\n extend(normalized, props);\r\n if (keys)\r\n needCastKeys.push(...keys);\r\n };\r\n if (!asMixin && appContext.mixins.length) {\r\n appContext.mixins.forEach(extendProps);\r\n }\r\n if (comp.extends) {\r\n extendProps(comp.extends);\r\n }\r\n if (comp.mixins) {\r\n comp.mixins.forEach(extendProps);\r\n }\r\n }\r\n if (!raw && !hasExtends) {\r\n return (comp.__props = EMPTY_ARR);\r\n }\r\n if (isArray(raw)) {\r\n for (let i = 0; i < raw.length; i++) {\r\n if ((process.env.NODE_ENV !== 'production') && !isString(raw[i])) {\r\n warn(`props must be strings when using array syntax.`, raw[i]);\r\n }\r\n const normalizedKey = camelize(raw[i]);\r\n if (validatePropName(normalizedKey)) {\r\n normalized[normalizedKey] = EMPTY_OBJ;\r\n }\r\n }\r\n }\r\n else if (raw) {\r\n if ((process.env.NODE_ENV !== 'production') && !isObject(raw)) {\r\n warn(`invalid props options`, raw);\r\n }\r\n for (const key in raw) {\r\n const normalizedKey = camelize(key);\r\n if (validatePropName(normalizedKey)) {\r\n const opt = raw[key];\r\n const prop = (normalized[normalizedKey] =\r\n isArray(opt) || isFunction(opt) ? { type: opt } : opt);\r\n if (prop) {\r\n const booleanIndex = getTypeIndex(Boolean, prop.type);\r\n const stringIndex = getTypeIndex(String, prop.type);\r\n prop[0 /* shouldCast */] = booleanIndex > -1;\r\n prop[1 /* shouldCastTrue */] =\r\n stringIndex < 0 || booleanIndex < stringIndex;\r\n // if the prop needs boolean casting or default value\r\n if (booleanIndex > -1 || hasOwn(prop, 'default')) {\r\n needCastKeys.push(normalizedKey);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n return (comp.__props = [normalized, needCastKeys]);\r\n}\r\nfunction validatePropName(key) {\r\n if (key[0] !== '$') {\r\n return true;\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`Invalid prop name: \"${key}\" is a reserved property.`);\r\n }\r\n return false;\r\n}\r\n// use function string name to check type constructors\r\n// so that it works across vms / iframes.\r\nfunction getType(ctor) {\r\n const match = ctor && ctor.toString().match(/^\\s*function (\\w+)/);\r\n return match ? match[1] : '';\r\n}\r\nfunction isSameType(a, b) {\r\n return getType(a) === getType(b);\r\n}\r\nfunction getTypeIndex(type, expectedTypes) {\r\n if (isArray(expectedTypes)) {\r\n for (let i = 0, len = expectedTypes.length; i < len; i++) {\r\n if (isSameType(expectedTypes[i], type)) {\r\n return i;\r\n }\r\n }\r\n }\r\n else if (isFunction(expectedTypes)) {\r\n return isSameType(expectedTypes, type) ? 0 : -1;\r\n }\r\n return -1;\r\n}\r\n/**\r\n * dev only\r\n */\r\nfunction validateProps(props, instance) {\r\n const rawValues = toRaw(props);\r\n const options = instance.propsOptions[0];\r\n for (const key in options) {\r\n let opt = options[key];\r\n if (opt == null)\r\n continue;\r\n validateProp(key, rawValues[key], opt, !hasOwn(rawValues, key));\r\n }\r\n}\r\n/**\r\n * dev only\r\n */\r\nfunction validateProp(name, value, prop, isAbsent) {\r\n const { type, required, validator } = prop;\r\n // required!\r\n if (required && isAbsent) {\r\n warn('Missing required prop: \"' + name + '\"');\r\n return;\r\n }\r\n // missing but optional\r\n if (value == null && !prop.required) {\r\n return;\r\n }\r\n // type check\r\n if (type != null && type !== true) {\r\n let isValid = false;\r\n const types = isArray(type) ? type : [type];\r\n const expectedTypes = [];\r\n // value is valid as long as one of the specified types match\r\n for (let i = 0; i < types.length && !isValid; i++) {\r\n const { valid, expectedType } = assertType(value, types[i]);\r\n expectedTypes.push(expectedType || '');\r\n isValid = valid;\r\n }\r\n if (!isValid) {\r\n warn(getInvalidTypeMessage(name, value, expectedTypes));\r\n return;\r\n }\r\n }\r\n // custom validator\r\n if (validator && !validator(value)) {\r\n warn('Invalid prop: custom validator check failed for prop \"' + name + '\".');\r\n }\r\n}\r\nconst isSimpleType = /*#__PURE__*/ makeMap('String,Number,Boolean,Function,Symbol,BigInt');\r\n/**\r\n * dev only\r\n */\r\nfunction assertType(value, type) {\r\n let valid;\r\n const expectedType = getType(type);\r\n if (isSimpleType(expectedType)) {\r\n const t = typeof value;\r\n valid = t === expectedType.toLowerCase();\r\n // for primitive wrapper objects\r\n if (!valid && t === 'object') {\r\n valid = value instanceof type;\r\n }\r\n }\r\n else if (expectedType === 'Object') {\r\n valid = isObject(value);\r\n }\r\n else if (expectedType === 'Array') {\r\n valid = isArray(value);\r\n }\r\n else {\r\n valid = value instanceof type;\r\n }\r\n return {\r\n valid,\r\n expectedType\r\n };\r\n}\r\n/**\r\n * dev only\r\n */\r\nfunction getInvalidTypeMessage(name, value, expectedTypes) {\r\n let message = `Invalid prop: type check failed for prop \"${name}\".` +\r\n ` Expected ${expectedTypes.map(capitalize).join(', ')}`;\r\n const expectedType = expectedTypes[0];\r\n const receivedType = toRawType(value);\r\n const expectedValue = styleValue(value, expectedType);\r\n const receivedValue = styleValue(value, receivedType);\r\n // check if we need to specify expected value\r\n if (expectedTypes.length === 1 &&\r\n isExplicable(expectedType) &&\r\n !isBoolean(expectedType, receivedType)) {\r\n message += ` with value ${expectedValue}`;\r\n }\r\n message += `, got ${receivedType} `;\r\n // check if we need to specify received value\r\n if (isExplicable(receivedType)) {\r\n message += `with value ${receivedValue}.`;\r\n }\r\n return message;\r\n}\r\n/**\r\n * dev only\r\n */\r\nfunction styleValue(value, type) {\r\n if (type === 'String') {\r\n return `\"${value}\"`;\r\n }\r\n else if (type === 'Number') {\r\n return `${Number(value)}`;\r\n }\r\n else {\r\n return `${value}`;\r\n }\r\n}\r\n/**\r\n * dev only\r\n */\r\nfunction isExplicable(type) {\r\n const explicitTypes = ['string', 'number', 'boolean'];\r\n return explicitTypes.some(elem => type.toLowerCase() === elem);\r\n}\r\n/**\r\n * dev only\r\n */\r\nfunction isBoolean(...args) {\r\n return args.some(elem => elem.toLowerCase() === 'boolean');\r\n}\n\nfunction injectHook(type, hook, target = currentInstance, prepend = false) {\r\n if (target) {\r\n const hooks = target[type] || (target[type] = []);\r\n // cache the error handling wrapper for injected hooks so the same hook\r\n // can be properly deduped by the scheduler. \"__weh\" stands for \"with error\r\n // handling\".\r\n const wrappedHook = hook.__weh ||\r\n (hook.__weh = (...args) => {\r\n if (target.isUnmounted) {\r\n return;\r\n }\r\n // disable tracking inside all lifecycle hooks\r\n // since they can potentially be called inside effects.\r\n pauseTracking();\r\n // Set currentInstance during hook invocation.\r\n // This assumes the hook does not synchronously trigger other hooks, which\r\n // can only be false when the user does something really funky.\r\n setCurrentInstance(target);\r\n const res = callWithAsyncErrorHandling(hook, target, type, args);\r\n setCurrentInstance(null);\r\n resetTracking();\r\n return res;\r\n });\r\n if (prepend) {\r\n hooks.unshift(wrappedHook);\r\n }\r\n else {\r\n hooks.push(wrappedHook);\r\n }\r\n return wrappedHook;\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n const apiName = toHandlerKey(ErrorTypeStrings[type].replace(/ hook$/, ''));\r\n warn(`${apiName} is called when there is no active component instance to be ` +\r\n `associated with. ` +\r\n `Lifecycle injection APIs can only be used during execution of setup().` +\r\n (` If you are using async setup(), make sure to register lifecycle ` +\r\n `hooks before the first await statement.`\r\n ));\r\n }\r\n}\r\nconst createHook = (lifecycle) => (hook, target = currentInstance) => \r\n// post-create lifecycle registrations are noops during SSR\r\n!isInSSRComponentSetup && injectHook(lifecycle, hook, target);\r\nconst onBeforeMount = createHook(\"bm\" /* BEFORE_MOUNT */);\r\nconst onMounted = createHook(\"m\" /* MOUNTED */);\r\nconst onBeforeUpdate = createHook(\"bu\" /* BEFORE_UPDATE */);\r\nconst onUpdated = createHook(\"u\" /* UPDATED */);\r\nconst onBeforeUnmount = createHook(\"bum\" /* BEFORE_UNMOUNT */);\r\nconst onUnmounted = createHook(\"um\" /* UNMOUNTED */);\r\nconst onRenderTriggered = createHook(\"rtg\" /* RENDER_TRIGGERED */);\r\nconst onRenderTracked = createHook(\"rtc\" /* RENDER_TRACKED */);\r\nconst onErrorCaptured = (hook, target = currentInstance) => {\r\n injectHook(\"ec\" /* ERROR_CAPTURED */, hook, target);\r\n};\n\n// Simple effect.\r\nfunction watchEffect(effect, options) {\r\n return doWatch(effect, null, options);\r\n}\r\n// initial value for watchers to trigger on undefined initial values\r\nconst INITIAL_WATCHER_VALUE = {};\r\n// implementation\r\nfunction watch(source, cb, options) {\r\n if ((process.env.NODE_ENV !== 'production') && !isFunction(cb)) {\r\n warn(`\\`watch(fn, options?)\\` signature has been moved to a separate API. ` +\r\n `Use \\`watchEffect(fn, options?)\\` instead. \\`watch\\` now only ` +\r\n `supports \\`watch(source, cb, options?) signature.`);\r\n }\r\n return doWatch(source, cb, options);\r\n}\r\nfunction doWatch(source, cb, { immediate, deep, flush, onTrack, onTrigger } = EMPTY_OBJ, instance = currentInstance) {\r\n if ((process.env.NODE_ENV !== 'production') && !cb) {\r\n if (immediate !== undefined) {\r\n warn(`watch() \"immediate\" option is only respected when using the ` +\r\n `watch(source, callback, options?) signature.`);\r\n }\r\n if (deep !== undefined) {\r\n warn(`watch() \"deep\" option is only respected when using the ` +\r\n `watch(source, callback, options?) signature.`);\r\n }\r\n }\r\n const warnInvalidSource = (s) => {\r\n warn(`Invalid watch source: `, s, `A watch source can only be a getter/effect function, a ref, ` +\r\n `a reactive object, or an array of these types.`);\r\n };\r\n let getter;\r\n let forceTrigger = false;\r\n if (isRef(source)) {\r\n getter = () => source.value;\r\n forceTrigger = !!source._shallow;\r\n }\r\n else if (isReactive(source)) {\r\n getter = () => source;\r\n deep = true;\r\n }\r\n else if (isArray(source)) {\r\n getter = () => source.map(s => {\r\n if (isRef(s)) {\r\n return s.value;\r\n }\r\n else if (isReactive(s)) {\r\n return traverse(s);\r\n }\r\n else if (isFunction(s)) {\r\n return callWithErrorHandling(s, instance, 2 /* WATCH_GETTER */, [\r\n instance && instance.proxy\r\n ]);\r\n }\r\n else {\r\n (process.env.NODE_ENV !== 'production') && warnInvalidSource(s);\r\n }\r\n });\r\n }\r\n else if (isFunction(source)) {\r\n if (cb) {\r\n // getter with cb\r\n getter = () => callWithErrorHandling(source, instance, 2 /* WATCH_GETTER */, [\r\n instance && instance.proxy\r\n ]);\r\n }\r\n else {\r\n // no cb -> simple effect\r\n getter = () => {\r\n if (instance && instance.isUnmounted) {\r\n return;\r\n }\r\n if (cleanup) {\r\n cleanup();\r\n }\r\n return callWithErrorHandling(source, instance, 3 /* WATCH_CALLBACK */, [onInvalidate]);\r\n };\r\n }\r\n }\r\n else {\r\n getter = NOOP;\r\n (process.env.NODE_ENV !== 'production') && warnInvalidSource(source);\r\n }\r\n if (cb && deep) {\r\n const baseGetter = getter;\r\n getter = () => traverse(baseGetter());\r\n }\r\n let cleanup;\r\n const onInvalidate = (fn) => {\r\n cleanup = runner.options.onStop = () => {\r\n callWithErrorHandling(fn, instance, 4 /* WATCH_CLEANUP */);\r\n };\r\n };\r\n let oldValue = isArray(source) ? [] : INITIAL_WATCHER_VALUE;\r\n const job = () => {\r\n if (!runner.active) {\r\n return;\r\n }\r\n if (cb) {\r\n // watch(source, cb)\r\n const newValue = runner();\r\n if (deep || forceTrigger || hasChanged(newValue, oldValue)) {\r\n // cleanup before running cb again\r\n if (cleanup) {\r\n cleanup();\r\n }\r\n callWithAsyncErrorHandling(cb, instance, 3 /* WATCH_CALLBACK */, [\r\n newValue,\r\n // pass undefined as the old value when it's changed for the first time\r\n oldValue === INITIAL_WATCHER_VALUE ? undefined : oldValue,\r\n onInvalidate\r\n ]);\r\n oldValue = newValue;\r\n }\r\n }\r\n else {\r\n // watchEffect\r\n runner();\r\n }\r\n };\r\n // important: mark the job as a watcher callback so that scheduler knows\r\n // it is allowed to self-trigger (#1727)\r\n job.allowRecurse = !!cb;\r\n let scheduler;\r\n if (flush === 'sync') {\r\n scheduler = job;\r\n }\r\n else if (flush === 'post') {\r\n scheduler = () => queuePostRenderEffect(job, instance && instance.suspense);\r\n }\r\n else {\r\n // default: 'pre'\r\n scheduler = () => {\r\n if (!instance || instance.isMounted) {\r\n queuePreFlushCb(job);\r\n }\r\n else {\r\n // with 'pre' option, the first call must happen before\r\n // the component is mounted so it is called synchronously.\r\n job();\r\n }\r\n };\r\n }\r\n const runner = effect(getter, {\r\n lazy: true,\r\n onTrack,\r\n onTrigger,\r\n scheduler\r\n });\r\n recordInstanceBoundEffect(runner, instance);\r\n // initial run\r\n if (cb) {\r\n if (immediate) {\r\n job();\r\n }\r\n else {\r\n oldValue = runner();\r\n }\r\n }\r\n else if (flush === 'post') {\r\n queuePostRenderEffect(runner, instance && instance.suspense);\r\n }\r\n else {\r\n runner();\r\n }\r\n return () => {\r\n stop(runner);\r\n if (instance) {\r\n remove(instance.effects, runner);\r\n }\r\n };\r\n}\r\n// this.$watch\r\nfunction instanceWatch(source, cb, options) {\r\n const publicThis = this.proxy;\r\n const getter = isString(source)\r\n ? () => publicThis[source]\r\n : source.bind(publicThis);\r\n return doWatch(getter, cb.bind(publicThis), options, this);\r\n}\r\nfunction traverse(value, seen = new Set()) {\r\n if (!isObject(value) || seen.has(value)) {\r\n return value;\r\n }\r\n seen.add(value);\r\n if (isRef(value)) {\r\n traverse(value.value, seen);\r\n }\r\n else if (isArray(value)) {\r\n for (let i = 0; i < value.length; i++) {\r\n traverse(value[i], seen);\r\n }\r\n }\r\n else if (isSet(value) || isMap(value)) {\r\n value.forEach((v) => {\r\n traverse(v, seen);\r\n });\r\n }\r\n else {\r\n for (const key in value) {\r\n traverse(value[key], seen);\r\n }\r\n }\r\n return value;\r\n}\n\nfunction useTransitionState() {\r\n const state = {\r\n isMounted: false,\r\n isLeaving: false,\r\n isUnmounting: false,\r\n leavingVNodes: new Map()\r\n };\r\n onMounted(() => {\r\n state.isMounted = true;\r\n });\r\n onBeforeUnmount(() => {\r\n state.isUnmounting = true;\r\n });\r\n return state;\r\n}\r\nconst TransitionHookValidator = [Function, Array];\r\nconst BaseTransitionImpl = {\r\n name: `BaseTransition`,\r\n props: {\r\n mode: String,\r\n appear: Boolean,\r\n persisted: Boolean,\r\n // enter\r\n onBeforeEnter: TransitionHookValidator,\r\n onEnter: TransitionHookValidator,\r\n onAfterEnter: TransitionHookValidator,\r\n onEnterCancelled: TransitionHookValidator,\r\n // leave\r\n onBeforeLeave: TransitionHookValidator,\r\n onLeave: TransitionHookValidator,\r\n onAfterLeave: TransitionHookValidator,\r\n onLeaveCancelled: TransitionHookValidator,\r\n // appear\r\n onBeforeAppear: TransitionHookValidator,\r\n onAppear: TransitionHookValidator,\r\n onAfterAppear: TransitionHookValidator,\r\n onAppearCancelled: TransitionHookValidator\r\n },\r\n setup(props, { slots }) {\r\n const instance = getCurrentInstance();\r\n const state = useTransitionState();\r\n let prevTransitionKey;\r\n return () => {\r\n const children = slots.default && getTransitionRawChildren(slots.default(), true);\r\n if (!children || !children.length) {\r\n return;\r\n }\r\n // warn multiple elements\r\n if ((process.env.NODE_ENV !== 'production') && children.length > 1) {\r\n warn(' can only be used on a single element or component. Use ' +\r\n ' for lists.');\r\n }\r\n // there's no need to track reactivity for these props so use the raw\r\n // props for a bit better perf\r\n const rawProps = toRaw(props);\r\n const { mode } = rawProps;\r\n // check mode\r\n if ((process.env.NODE_ENV !== 'production') && mode && !['in-out', 'out-in', 'default'].includes(mode)) {\r\n warn(`invalid mode: ${mode}`);\r\n }\r\n // at this point children has a guaranteed length of 1.\r\n const child = children[0];\r\n if (state.isLeaving) {\r\n return emptyPlaceholder(child);\r\n }\r\n // in the case of , we need to\r\n // compare the type of the kept-alive children.\r\n const innerChild = getKeepAliveChild(child);\r\n if (!innerChild) {\r\n return emptyPlaceholder(child);\r\n }\r\n const enterHooks = resolveTransitionHooks(innerChild, rawProps, state, instance);\r\n setTransitionHooks(innerChild, enterHooks);\r\n const oldChild = instance.subTree;\r\n const oldInnerChild = oldChild && getKeepAliveChild(oldChild);\r\n let transitionKeyChanged = false;\r\n const { getTransitionKey } = innerChild.type;\r\n if (getTransitionKey) {\r\n const key = getTransitionKey();\r\n if (prevTransitionKey === undefined) {\r\n prevTransitionKey = key;\r\n }\r\n else if (key !== prevTransitionKey) {\r\n prevTransitionKey = key;\r\n transitionKeyChanged = true;\r\n }\r\n }\r\n // handle mode\r\n if (oldInnerChild &&\r\n oldInnerChild.type !== Comment &&\r\n (!isSameVNodeType(innerChild, oldInnerChild) || transitionKeyChanged)) {\r\n const leavingHooks = resolveTransitionHooks(oldInnerChild, rawProps, state, instance);\r\n // update old tree's hooks in case of dynamic transition\r\n setTransitionHooks(oldInnerChild, leavingHooks);\r\n // switching between different views\r\n if (mode === 'out-in') {\r\n state.isLeaving = true;\r\n // return placeholder node and queue update when leave finishes\r\n leavingHooks.afterLeave = () => {\r\n state.isLeaving = false;\r\n instance.update();\r\n };\r\n return emptyPlaceholder(child);\r\n }\r\n else if (mode === 'in-out') {\r\n leavingHooks.delayLeave = (el, earlyRemove, delayedLeave) => {\r\n const leavingVNodesCache = getLeavingNodesForType(state, oldInnerChild);\r\n leavingVNodesCache[String(oldInnerChild.key)] = oldInnerChild;\r\n // early removal callback\r\n el._leaveCb = () => {\r\n earlyRemove();\r\n el._leaveCb = undefined;\r\n delete enterHooks.delayedLeave;\r\n };\r\n enterHooks.delayedLeave = delayedLeave;\r\n };\r\n }\r\n }\r\n return child;\r\n };\r\n }\r\n};\r\n// export the public type for h/tsx inference\r\n// also to avoid inline import() in generated d.ts files\r\nconst BaseTransition = BaseTransitionImpl;\r\nfunction getLeavingNodesForType(state, vnode) {\r\n const { leavingVNodes } = state;\r\n let leavingVNodesCache = leavingVNodes.get(vnode.type);\r\n if (!leavingVNodesCache) {\r\n leavingVNodesCache = Object.create(null);\r\n leavingVNodes.set(vnode.type, leavingVNodesCache);\r\n }\r\n return leavingVNodesCache;\r\n}\r\n// The transition hooks are attached to the vnode as vnode.transition\r\n// and will be called at appropriate timing in the renderer.\r\nfunction resolveTransitionHooks(vnode, props, state, instance) {\r\n const { appear, mode, persisted = false, onBeforeEnter, onEnter, onAfterEnter, onEnterCancelled, onBeforeLeave, onLeave, onAfterLeave, onLeaveCancelled, onBeforeAppear, onAppear, onAfterAppear, onAppearCancelled } = props;\r\n const key = String(vnode.key);\r\n const leavingVNodesCache = getLeavingNodesForType(state, vnode);\r\n const callHook = (hook, args) => {\r\n hook &&\r\n callWithAsyncErrorHandling(hook, instance, 9 /* TRANSITION_HOOK */, args);\r\n };\r\n const hooks = {\r\n mode,\r\n persisted,\r\n beforeEnter(el) {\r\n let hook = onBeforeEnter;\r\n if (!state.isMounted) {\r\n if (appear) {\r\n hook = onBeforeAppear || onBeforeEnter;\r\n }\r\n else {\r\n return;\r\n }\r\n }\r\n // for same element (v-show)\r\n if (el._leaveCb) {\r\n el._leaveCb(true /* cancelled */);\r\n }\r\n // for toggled element with same key (v-if)\r\n const leavingVNode = leavingVNodesCache[key];\r\n if (leavingVNode &&\r\n isSameVNodeType(vnode, leavingVNode) &&\r\n leavingVNode.el._leaveCb) {\r\n // force early removal (not cancelled)\r\n leavingVNode.el._leaveCb();\r\n }\r\n callHook(hook, [el]);\r\n },\r\n enter(el) {\r\n let hook = onEnter;\r\n let afterHook = onAfterEnter;\r\n let cancelHook = onEnterCancelled;\r\n if (!state.isMounted) {\r\n if (appear) {\r\n hook = onAppear || onEnter;\r\n afterHook = onAfterAppear || onAfterEnter;\r\n cancelHook = onAppearCancelled || onEnterCancelled;\r\n }\r\n else {\r\n return;\r\n }\r\n }\r\n let called = false;\r\n const done = (el._enterCb = (cancelled) => {\r\n if (called)\r\n return;\r\n called = true;\r\n if (cancelled) {\r\n callHook(cancelHook, [el]);\r\n }\r\n else {\r\n callHook(afterHook, [el]);\r\n }\r\n if (hooks.delayedLeave) {\r\n hooks.delayedLeave();\r\n }\r\n el._enterCb = undefined;\r\n });\r\n if (hook) {\r\n hook(el, done);\r\n if (hook.length <= 1) {\r\n done();\r\n }\r\n }\r\n else {\r\n done();\r\n }\r\n },\r\n leave(el, remove) {\r\n const key = String(vnode.key);\r\n if (el._enterCb) {\r\n el._enterCb(true /* cancelled */);\r\n }\r\n if (state.isUnmounting) {\r\n return remove();\r\n }\r\n callHook(onBeforeLeave, [el]);\r\n let called = false;\r\n const done = (el._leaveCb = (cancelled) => {\r\n if (called)\r\n return;\r\n called = true;\r\n remove();\r\n if (cancelled) {\r\n callHook(onLeaveCancelled, [el]);\r\n }\r\n else {\r\n callHook(onAfterLeave, [el]);\r\n }\r\n el._leaveCb = undefined;\r\n if (leavingVNodesCache[key] === vnode) {\r\n delete leavingVNodesCache[key];\r\n }\r\n });\r\n leavingVNodesCache[key] = vnode;\r\n if (onLeave) {\r\n onLeave(el, done);\r\n if (onLeave.length <= 1) {\r\n done();\r\n }\r\n }\r\n else {\r\n done();\r\n }\r\n },\r\n clone(vnode) {\r\n return resolveTransitionHooks(vnode, props, state, instance);\r\n }\r\n };\r\n return hooks;\r\n}\r\n// the placeholder really only handles one special case: KeepAlive\r\n// in the case of a KeepAlive in a leave phase we need to return a KeepAlive\r\n// placeholder with empty content to avoid the KeepAlive instance from being\r\n// unmounted.\r\nfunction emptyPlaceholder(vnode) {\r\n if (isKeepAlive(vnode)) {\r\n vnode = cloneVNode(vnode);\r\n vnode.children = null;\r\n return vnode;\r\n }\r\n}\r\nfunction getKeepAliveChild(vnode) {\r\n return isKeepAlive(vnode)\r\n ? vnode.children\r\n ? vnode.children[0]\r\n : undefined\r\n : vnode;\r\n}\r\nfunction setTransitionHooks(vnode, hooks) {\r\n if (vnode.shapeFlag & 6 /* COMPONENT */ && vnode.component) {\r\n setTransitionHooks(vnode.component.subTree, hooks);\r\n }\r\n else if (vnode.shapeFlag & 128 /* SUSPENSE */) {\r\n vnode.ssContent.transition = hooks.clone(vnode.ssContent);\r\n vnode.ssFallback.transition = hooks.clone(vnode.ssFallback);\r\n }\r\n else {\r\n vnode.transition = hooks;\r\n }\r\n}\r\nfunction getTransitionRawChildren(children, keepComment = false) {\r\n let ret = [];\r\n let keyedFragmentCount = 0;\r\n for (let i = 0; i < children.length; i++) {\r\n const child = children[i];\r\n // handle fragment children case, e.g. v-for\r\n if (child.type === Fragment) {\r\n if (child.patchFlag & 128 /* KEYED_FRAGMENT */)\r\n keyedFragmentCount++;\r\n ret = ret.concat(getTransitionRawChildren(child.children, keepComment));\r\n }\r\n // comment placeholders should be skipped, e.g. v-if\r\n else if (keepComment || child.type !== Comment) {\r\n ret.push(child);\r\n }\r\n }\r\n // #1126 if a transition children list contains multiple sub fragments, these\r\n // fragments will be merged into a flat children array. Since each v-for\r\n // fragment may contain different static bindings inside, we need to de-op\r\n // these children to force full diffs to ensure correct behavior.\r\n if (keyedFragmentCount > 1) {\r\n for (let i = 0; i < ret.length; i++) {\r\n ret[i].patchFlag = -2 /* BAIL */;\r\n }\r\n }\r\n return ret;\r\n}\n\nconst isKeepAlive = (vnode) => vnode.type.__isKeepAlive;\r\nconst KeepAliveImpl = {\r\n name: `KeepAlive`,\r\n // Marker for special handling inside the renderer. We are not using a ===\r\n // check directly on KeepAlive in the renderer, because importing it directly\r\n // would prevent it from being tree-shaken.\r\n __isKeepAlive: true,\r\n props: {\r\n include: [String, RegExp, Array],\r\n exclude: [String, RegExp, Array],\r\n max: [String, Number]\r\n },\r\n setup(props, { slots }) {\r\n const cache = new Map();\r\n const keys = new Set();\r\n let current = null;\r\n const instance = getCurrentInstance();\r\n const parentSuspense = instance.suspense;\r\n // KeepAlive communicates with the instantiated renderer via the\r\n // ctx where the renderer passes in its internals,\r\n // and the KeepAlive instance exposes activate/deactivate implementations.\r\n // The whole point of this is to avoid importing KeepAlive directly in the\r\n // renderer to facilitate tree-shaking.\r\n const sharedContext = instance.ctx;\r\n const { renderer: { p: patch, m: move, um: _unmount, o: { createElement } } } = sharedContext;\r\n const storageContainer = createElement('div');\r\n sharedContext.activate = (vnode, container, anchor, isSVG, optimized) => {\r\n const instance = vnode.component;\r\n move(vnode, container, anchor, 0 /* ENTER */, parentSuspense);\r\n // in case props have changed\r\n patch(instance.vnode, vnode, container, anchor, instance, parentSuspense, isSVG, optimized);\r\n queuePostRenderEffect(() => {\r\n instance.isDeactivated = false;\r\n if (instance.a) {\r\n invokeArrayFns(instance.a);\r\n }\r\n const vnodeHook = vnode.props && vnode.props.onVnodeMounted;\r\n if (vnodeHook) {\r\n invokeVNodeHook(vnodeHook, instance.parent, vnode);\r\n }\r\n }, parentSuspense);\r\n };\r\n sharedContext.deactivate = (vnode) => {\r\n const instance = vnode.component;\r\n move(vnode, storageContainer, null, 1 /* LEAVE */, parentSuspense);\r\n queuePostRenderEffect(() => {\r\n if (instance.da) {\r\n invokeArrayFns(instance.da);\r\n }\r\n const vnodeHook = vnode.props && vnode.props.onVnodeUnmounted;\r\n if (vnodeHook) {\r\n invokeVNodeHook(vnodeHook, instance.parent, vnode);\r\n }\r\n instance.isDeactivated = true;\r\n }, parentSuspense);\r\n };\r\n function unmount(vnode) {\r\n // reset the shapeFlag so it can be properly unmounted\r\n resetShapeFlag(vnode);\r\n _unmount(vnode, instance, parentSuspense);\r\n }\r\n function pruneCache(filter) {\r\n cache.forEach((vnode, key) => {\r\n const name = getComponentName(vnode.type);\r\n if (name && (!filter || !filter(name))) {\r\n pruneCacheEntry(key);\r\n }\r\n });\r\n }\r\n function pruneCacheEntry(key) {\r\n const cached = cache.get(key);\r\n if (!current || cached.type !== current.type) {\r\n unmount(cached);\r\n }\r\n else if (current) {\r\n // current active instance should no longer be kept-alive.\r\n // we can't unmount it now but it might be later, so reset its flag now.\r\n resetShapeFlag(current);\r\n }\r\n cache.delete(key);\r\n keys.delete(key);\r\n }\r\n // prune cache on include/exclude prop change\r\n watch(() => [props.include, props.exclude], ([include, exclude]) => {\r\n include && pruneCache(name => matches(include, name));\r\n exclude && pruneCache(name => !matches(exclude, name));\r\n }, \r\n // prune post-render after `current` has been updated\r\n { flush: 'post', deep: true });\r\n // cache sub tree after render\r\n let pendingCacheKey = null;\r\n const cacheSubtree = () => {\r\n // fix #1621, the pendingCacheKey could be 0\r\n if (pendingCacheKey != null) {\r\n cache.set(pendingCacheKey, getInnerChild(instance.subTree));\r\n }\r\n };\r\n onMounted(cacheSubtree);\r\n onUpdated(cacheSubtree);\r\n onBeforeUnmount(() => {\r\n cache.forEach(cached => {\r\n const { subTree, suspense } = instance;\r\n const vnode = getInnerChild(subTree);\r\n if (cached.type === vnode.type) {\r\n // current instance will be unmounted as part of keep-alive's unmount\r\n resetShapeFlag(vnode);\r\n // but invoke its deactivated hook here\r\n const da = vnode.component.da;\r\n da && queuePostRenderEffect(da, suspense);\r\n return;\r\n }\r\n unmount(cached);\r\n });\r\n });\r\n return () => {\r\n pendingCacheKey = null;\r\n if (!slots.default) {\r\n return null;\r\n }\r\n const children = slots.default();\r\n const rawVNode = children[0];\r\n if (children.length > 1) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`KeepAlive should contain exactly one component child.`);\r\n }\r\n current = null;\r\n return children;\r\n }\r\n else if (!isVNode(rawVNode) ||\r\n (!(rawVNode.shapeFlag & 4 /* STATEFUL_COMPONENT */) &&\r\n !(rawVNode.shapeFlag & 128 /* SUSPENSE */))) {\r\n current = null;\r\n return rawVNode;\r\n }\r\n let vnode = getInnerChild(rawVNode);\r\n const comp = vnode.type;\r\n const name = getComponentName(comp);\r\n const { include, exclude, max } = props;\r\n if ((include && (!name || !matches(include, name))) ||\r\n (exclude && name && matches(exclude, name))) {\r\n current = vnode;\r\n return rawVNode;\r\n }\r\n const key = vnode.key == null ? comp : vnode.key;\r\n const cachedVNode = cache.get(key);\r\n // clone vnode if it's reused because we are going to mutate it\r\n if (vnode.el) {\r\n vnode = cloneVNode(vnode);\r\n if (rawVNode.shapeFlag & 128 /* SUSPENSE */) {\r\n rawVNode.ssContent = vnode;\r\n }\r\n }\r\n // #1513 it's possible for the returned vnode to be cloned due to attr\r\n // fallthrough or scopeId, so the vnode here may not be the final vnode\r\n // that is mounted. Instead of caching it directly, we store the pending\r\n // key and cache `instance.subTree` (the normalized vnode) in\r\n // beforeMount/beforeUpdate hooks.\r\n pendingCacheKey = key;\r\n if (cachedVNode) {\r\n // copy over mounted state\r\n vnode.el = cachedVNode.el;\r\n vnode.component = cachedVNode.component;\r\n if (vnode.transition) {\r\n // recursively update transition hooks on subTree\r\n setTransitionHooks(vnode, vnode.transition);\r\n }\r\n // avoid vnode being mounted as fresh\r\n vnode.shapeFlag |= 512 /* COMPONENT_KEPT_ALIVE */;\r\n // make this key the freshest\r\n keys.delete(key);\r\n keys.add(key);\r\n }\r\n else {\r\n keys.add(key);\r\n // prune oldest entry\r\n if (max && keys.size > parseInt(max, 10)) {\r\n pruneCacheEntry(keys.values().next().value);\r\n }\r\n }\r\n // avoid vnode being unmounted\r\n vnode.shapeFlag |= 256 /* COMPONENT_SHOULD_KEEP_ALIVE */;\r\n current = vnode;\r\n return rawVNode;\r\n };\r\n }\r\n};\r\n// export the public type for h/tsx inference\r\n// also to avoid inline import() in generated d.ts files\r\nconst KeepAlive = KeepAliveImpl;\r\nfunction matches(pattern, name) {\r\n if (isArray(pattern)) {\r\n return pattern.some((p) => matches(p, name));\r\n }\r\n else if (isString(pattern)) {\r\n return pattern.split(',').indexOf(name) > -1;\r\n }\r\n else if (pattern.test) {\r\n return pattern.test(name);\r\n }\r\n /* istanbul ignore next */\r\n return false;\r\n}\r\nfunction onActivated(hook, target) {\r\n registerKeepAliveHook(hook, \"a\" /* ACTIVATED */, target);\r\n}\r\nfunction onDeactivated(hook, target) {\r\n registerKeepAliveHook(hook, \"da\" /* DEACTIVATED */, target);\r\n}\r\nfunction registerKeepAliveHook(hook, type, target = currentInstance) {\r\n // cache the deactivate branch check wrapper for injected hooks so the same\r\n // hook can be properly deduped by the scheduler. \"__wdc\" stands for \"with\r\n // deactivation check\".\r\n const wrappedHook = hook.__wdc ||\r\n (hook.__wdc = () => {\r\n // only fire the hook if the target instance is NOT in a deactivated branch.\r\n let current = target;\r\n while (current) {\r\n if (current.isDeactivated) {\r\n return;\r\n }\r\n current = current.parent;\r\n }\r\n hook();\r\n });\r\n injectHook(type, wrappedHook, target);\r\n // In addition to registering it on the target instance, we walk up the parent\r\n // chain and register it on all ancestor instances that are keep-alive roots.\r\n // This avoids the need to walk the entire component tree when invoking these\r\n // hooks, and more importantly, avoids the need to track child components in\r\n // arrays.\r\n if (target) {\r\n let current = target.parent;\r\n while (current && current.parent) {\r\n if (isKeepAlive(current.parent.vnode)) {\r\n injectToKeepAliveRoot(wrappedHook, type, target, current);\r\n }\r\n current = current.parent;\r\n }\r\n }\r\n}\r\nfunction injectToKeepAliveRoot(hook, type, target, keepAliveRoot) {\r\n // injectHook wraps the original for error handling, so make sure to remove\r\n // the wrapped version.\r\n const injected = injectHook(type, hook, keepAliveRoot, true /* prepend */);\r\n onUnmounted(() => {\r\n remove(keepAliveRoot[type], injected);\r\n }, target);\r\n}\r\nfunction resetShapeFlag(vnode) {\r\n let shapeFlag = vnode.shapeFlag;\r\n if (shapeFlag & 256 /* COMPONENT_SHOULD_KEEP_ALIVE */) {\r\n shapeFlag -= 256 /* COMPONENT_SHOULD_KEEP_ALIVE */;\r\n }\r\n if (shapeFlag & 512 /* COMPONENT_KEPT_ALIVE */) {\r\n shapeFlag -= 512 /* COMPONENT_KEPT_ALIVE */;\r\n }\r\n vnode.shapeFlag = shapeFlag;\r\n}\r\nfunction getInnerChild(vnode) {\r\n return vnode.shapeFlag & 128 /* SUSPENSE */ ? vnode.ssContent : vnode;\r\n}\n\nconst isInternalKey = (key) => key[0] === '_' || key === '$stable';\r\nconst normalizeSlotValue = (value) => isArray(value)\r\n ? value.map(normalizeVNode)\r\n : [normalizeVNode(value)];\r\nconst normalizeSlot = (key, rawSlot, ctx) => withCtx((props) => {\r\n if ((process.env.NODE_ENV !== 'production') && currentInstance) {\r\n warn(`Slot \"${key}\" invoked outside of the render function: ` +\r\n `this will not track dependencies used in the slot. ` +\r\n `Invoke the slot function inside the render function instead.`);\r\n }\r\n return normalizeSlotValue(rawSlot(props));\r\n}, ctx);\r\nconst normalizeObjectSlots = (rawSlots, slots) => {\r\n const ctx = rawSlots._ctx;\r\n for (const key in rawSlots) {\r\n if (isInternalKey(key))\r\n continue;\r\n const value = rawSlots[key];\r\n if (isFunction(value)) {\r\n slots[key] = normalizeSlot(key, value, ctx);\r\n }\r\n else if (value != null) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`Non-function value encountered for slot \"${key}\". ` +\r\n `Prefer function slots for better performance.`);\r\n }\r\n const normalized = normalizeSlotValue(value);\r\n slots[key] = () => normalized;\r\n }\r\n }\r\n};\r\nconst normalizeVNodeSlots = (instance, children) => {\r\n if ((process.env.NODE_ENV !== 'production') && !isKeepAlive(instance.vnode)) {\r\n warn(`Non-function value encountered for default slot. ` +\r\n `Prefer function slots for better performance.`);\r\n }\r\n const normalized = normalizeSlotValue(children);\r\n instance.slots.default = () => normalized;\r\n};\r\nconst initSlots = (instance, children) => {\r\n if (instance.vnode.shapeFlag & 32 /* SLOTS_CHILDREN */) {\r\n const type = children._;\r\n if (type) {\r\n instance.slots = children;\r\n // make compiler marker non-enumerable\r\n def(children, '_', type);\r\n }\r\n else {\r\n normalizeObjectSlots(children, (instance.slots = {}));\r\n }\r\n }\r\n else {\r\n instance.slots = {};\r\n if (children) {\r\n normalizeVNodeSlots(instance, children);\r\n }\r\n }\r\n def(instance.slots, InternalObjectKey, 1);\r\n};\r\nconst updateSlots = (instance, children) => {\r\n const { vnode, slots } = instance;\r\n let needDeletionCheck = true;\r\n let deletionComparisonTarget = EMPTY_OBJ;\r\n if (vnode.shapeFlag & 32 /* SLOTS_CHILDREN */) {\r\n const type = children._;\r\n if (type) {\r\n // compiled slots.\r\n if ((process.env.NODE_ENV !== 'production') && isHmrUpdating) {\r\n // Parent was HMR updated so slot content may have changed.\r\n // force update slots and mark instance for hmr as well\r\n extend(slots, children);\r\n }\r\n else if (type === 1 /* STABLE */) {\r\n // compiled AND stable.\r\n // no need to update, and skip stale slots removal.\r\n needDeletionCheck = false;\r\n }\r\n else {\r\n // compiled but dynamic (v-if/v-for on slots) - update slots, but skip\r\n // normalization.\r\n extend(slots, children);\r\n }\r\n }\r\n else {\r\n needDeletionCheck = !children.$stable;\r\n normalizeObjectSlots(children, slots);\r\n }\r\n deletionComparisonTarget = children;\r\n }\r\n else if (children) {\r\n // non slot object children (direct value) passed to a component\r\n normalizeVNodeSlots(instance, children);\r\n deletionComparisonTarget = { default: 1 };\r\n }\r\n // delete stale slots\r\n if (needDeletionCheck) {\r\n for (const key in slots) {\r\n if (!isInternalKey(key) && !(key in deletionComparisonTarget)) {\r\n delete slots[key];\r\n }\r\n }\r\n }\r\n};\n\n/**\r\nRuntime helper for applying directives to a vnode. Example usage:\r\n\nconst comp = resolveComponent('comp')\r\nconst foo = resolveDirective('foo')\r\nconst bar = resolveDirective('bar')\r\n\nreturn withDirectives(h(comp), [\r\n [foo, this.x],\r\n [bar, this.y]\r\n])\r\n*/\r\nconst isBuiltInDirective = /*#__PURE__*/ makeMap('bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text');\r\nfunction validateDirectiveName(name) {\r\n if (isBuiltInDirective(name)) {\r\n warn('Do not use built-in directive ids as custom directive id: ' + name);\r\n }\r\n}\r\n/**\r\n * Adds directives to a VNode.\r\n */\r\nfunction withDirectives(vnode, directives) {\r\n const internalInstance = currentRenderingInstance;\r\n if (internalInstance === null) {\r\n (process.env.NODE_ENV !== 'production') && warn(`withDirectives can only be used inside render functions.`);\r\n return vnode;\r\n }\r\n const instance = internalInstance.proxy;\r\n const bindings = vnode.dirs || (vnode.dirs = []);\r\n for (let i = 0; i < directives.length; i++) {\r\n let [dir, value, arg, modifiers = EMPTY_OBJ] = directives[i];\r\n if (isFunction(dir)) {\r\n dir = {\r\n mounted: dir,\r\n updated: dir\r\n };\r\n }\r\n bindings.push({\r\n dir,\r\n instance,\r\n value,\r\n oldValue: void 0,\r\n arg,\r\n modifiers\r\n });\r\n }\r\n return vnode;\r\n}\r\nfunction invokeDirectiveHook(vnode, prevVNode, instance, name) {\r\n const bindings = vnode.dirs;\r\n const oldBindings = prevVNode && prevVNode.dirs;\r\n for (let i = 0; i < bindings.length; i++) {\r\n const binding = bindings[i];\r\n if (oldBindings) {\r\n binding.oldValue = oldBindings[i].value;\r\n }\r\n const hook = binding.dir[name];\r\n if (hook) {\r\n callWithAsyncErrorHandling(hook, instance, 8 /* DIRECTIVE_HOOK */, [\r\n vnode.el,\r\n binding,\r\n vnode,\r\n prevVNode\r\n ]);\r\n }\r\n }\r\n}\n\nfunction createAppContext() {\r\n return {\r\n app: null,\r\n config: {\r\n isNativeTag: NO,\r\n performance: false,\r\n globalProperties: {},\r\n optionMergeStrategies: {},\r\n isCustomElement: NO,\r\n errorHandler: undefined,\r\n warnHandler: undefined\r\n },\r\n mixins: [],\r\n components: {},\r\n directives: {},\r\n provides: Object.create(null)\r\n };\r\n}\r\nlet uid = 0;\r\nfunction createAppAPI(render, hydrate) {\r\n return function createApp(rootComponent, rootProps = null) {\r\n if (rootProps != null && !isObject(rootProps)) {\r\n (process.env.NODE_ENV !== 'production') && warn(`root props passed to app.mount() must be an object.`);\r\n rootProps = null;\r\n }\r\n const context = createAppContext();\r\n const installedPlugins = new Set();\r\n let isMounted = false;\r\n const app = (context.app = {\r\n _uid: uid++,\r\n _component: rootComponent,\r\n _props: rootProps,\r\n _container: null,\r\n _context: context,\r\n version,\r\n get config() {\r\n return context.config;\r\n },\r\n set config(v) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`app.config cannot be replaced. Modify individual options instead.`);\r\n }\r\n },\r\n use(plugin, ...options) {\r\n if (installedPlugins.has(plugin)) {\r\n (process.env.NODE_ENV !== 'production') && warn(`Plugin has already been applied to target app.`);\r\n }\r\n else if (plugin && isFunction(plugin.install)) {\r\n installedPlugins.add(plugin);\r\n plugin.install(app, ...options);\r\n }\r\n else if (isFunction(plugin)) {\r\n installedPlugins.add(plugin);\r\n plugin(app, ...options);\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`A plugin must either be a function or an object with an \"install\" ` +\r\n `function.`);\r\n }\r\n return app;\r\n },\r\n mixin(mixin) {\r\n if (__VUE_OPTIONS_API__) {\r\n if (!context.mixins.includes(mixin)) {\r\n context.mixins.push(mixin);\r\n // global mixin with props/emits de-optimizes props/emits\r\n // normalization caching.\r\n if (mixin.props || mixin.emits) {\r\n context.deopt = true;\r\n }\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn('Mixin has already been applied to target app' +\r\n (mixin.name ? `: ${mixin.name}` : ''));\r\n }\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn('Mixins are only available in builds supporting Options API');\r\n }\r\n return app;\r\n },\r\n component(name, component) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n validateComponentName(name, context.config);\r\n }\r\n if (!component) {\r\n return context.components[name];\r\n }\r\n if ((process.env.NODE_ENV !== 'production') && context.components[name]) {\r\n warn(`Component \"${name}\" has already been registered in target app.`);\r\n }\r\n context.components[name] = component;\r\n return app;\r\n },\r\n directive(name, directive) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n validateDirectiveName(name);\r\n }\r\n if (!directive) {\r\n return context.directives[name];\r\n }\r\n if ((process.env.NODE_ENV !== 'production') && context.directives[name]) {\r\n warn(`Directive \"${name}\" has already been registered in target app.`);\r\n }\r\n context.directives[name] = directive;\r\n return app;\r\n },\r\n mount(rootContainer, isHydrate) {\r\n if (!isMounted) {\r\n const vnode = createVNode(rootComponent, rootProps);\r\n // store app context on the root VNode.\r\n // this will be set on the root instance on initial mount.\r\n vnode.appContext = context;\r\n // HMR root reload\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n context.reload = () => {\r\n render(cloneVNode(vnode), rootContainer);\r\n };\r\n }\r\n if (isHydrate && hydrate) {\r\n hydrate(vnode, rootContainer);\r\n }\r\n else {\r\n render(vnode, rootContainer);\r\n }\r\n isMounted = true;\r\n app._container = rootContainer;\r\n rootContainer.__vue_app__ = app;\r\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\r\n devtoolsInitApp(app, version);\r\n }\r\n return vnode.component.proxy;\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`App has already been mounted.\\n` +\r\n `If you want to remount the same app, move your app creation logic ` +\r\n `into a factory function and create fresh app instances for each ` +\r\n `mount - e.g. \\`const createMyApp = () => createApp(App)\\``);\r\n }\r\n },\r\n unmount() {\r\n if (isMounted) {\r\n render(null, app._container);\r\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\r\n devtoolsUnmountApp(app);\r\n }\r\n delete app._container.__vue_app__;\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`Cannot unmount an app that is not mounted.`);\r\n }\r\n },\r\n provide(key, value) {\r\n if ((process.env.NODE_ENV !== 'production') && key in context.provides) {\r\n warn(`App already provides property with key \"${String(key)}\". ` +\r\n `It will be overwritten with the new value.`);\r\n }\r\n // TypeScript doesn't allow symbols as index type\r\n // https://github.com/Microsoft/TypeScript/issues/24587\r\n context.provides[key] = value;\r\n return app;\r\n }\r\n });\r\n return app;\r\n };\r\n}\n\nlet hasMismatch = false;\r\nconst isSVGContainer = (container) => /svg/.test(container.namespaceURI) && container.tagName !== 'foreignObject';\r\nconst isComment = (node) => node.nodeType === 8 /* COMMENT */;\r\n// Note: hydration is DOM-specific\r\n// But we have to place it in core due to tight coupling with core - splitting\r\n// it out creates a ton of unnecessary complexity.\r\n// Hydration also depends on some renderer internal logic which needs to be\r\n// passed in via arguments.\r\nfunction createHydrationFunctions(rendererInternals) {\r\n const { mt: mountComponent, p: patch, o: { patchProp, nextSibling, parentNode, remove, insert, createComment } } = rendererInternals;\r\n const hydrate = (vnode, container) => {\r\n if ((process.env.NODE_ENV !== 'production') && !container.hasChildNodes()) {\r\n warn(`Attempting to hydrate existing markup but container is empty. ` +\r\n `Performing full mount instead.`);\r\n patch(null, vnode, container);\r\n return;\r\n }\r\n hasMismatch = false;\r\n hydrateNode(container.firstChild, vnode, null, null);\r\n flushPostFlushCbs();\r\n if (hasMismatch && !false) {\r\n // this error should show up in production\r\n console.error(`Hydration completed but contains mismatches.`);\r\n }\r\n };\r\n const hydrateNode = (node, vnode, parentComponent, parentSuspense, optimized = false) => {\r\n const isFragmentStart = isComment(node) && node.data === '[';\r\n const onMismatch = () => handleMismatch(node, vnode, parentComponent, parentSuspense, isFragmentStart);\r\n const { type, ref, shapeFlag } = vnode;\r\n const domType = node.nodeType;\r\n vnode.el = node;\r\n let nextNode = null;\r\n switch (type) {\r\n case Text:\r\n if (domType !== 3 /* TEXT */) {\r\n nextNode = onMismatch();\r\n }\r\n else {\r\n if (node.data !== vnode.children) {\r\n hasMismatch = true;\r\n (process.env.NODE_ENV !== 'production') &&\r\n warn(`Hydration text mismatch:` +\r\n `\\n- Client: ${JSON.stringify(node.data)}` +\r\n `\\n- Server: ${JSON.stringify(vnode.children)}`);\r\n node.data = vnode.children;\r\n }\r\n nextNode = nextSibling(node);\r\n }\r\n break;\r\n case Comment:\r\n if (domType !== 8 /* COMMENT */ || isFragmentStart) {\r\n nextNode = onMismatch();\r\n }\r\n else {\r\n nextNode = nextSibling(node);\r\n }\r\n break;\r\n case Static:\r\n if (domType !== 1 /* ELEMENT */) {\r\n nextNode = onMismatch();\r\n }\r\n else {\r\n // determine anchor, adopt content\r\n nextNode = node;\r\n // if the static vnode has its content stripped during build,\r\n // adopt it from the server-rendered HTML.\r\n const needToAdoptContent = !vnode.children.length;\r\n for (let i = 0; i < vnode.staticCount; i++) {\r\n if (needToAdoptContent)\r\n vnode.children += nextNode.outerHTML;\r\n if (i === vnode.staticCount - 1) {\r\n vnode.anchor = nextNode;\r\n }\r\n nextNode = nextSibling(nextNode);\r\n }\r\n return nextNode;\r\n }\r\n break;\r\n case Fragment:\r\n if (!isFragmentStart) {\r\n nextNode = onMismatch();\r\n }\r\n else {\r\n nextNode = hydrateFragment(node, vnode, parentComponent, parentSuspense, optimized);\r\n }\r\n break;\r\n default:\r\n if (shapeFlag & 1 /* ELEMENT */) {\r\n if (domType !== 1 /* ELEMENT */ ||\r\n vnode.type !== node.tagName.toLowerCase()) {\r\n nextNode = onMismatch();\r\n }\r\n else {\r\n nextNode = hydrateElement(node, vnode, parentComponent, parentSuspense, optimized);\r\n }\r\n }\r\n else if (shapeFlag & 6 /* COMPONENT */) {\r\n // when setting up the render effect, if the initial vnode already\r\n // has .el set, the component will perform hydration instead of mount\r\n // on its sub-tree.\r\n const container = parentNode(node);\r\n const hydrateComponent = () => {\r\n mountComponent(vnode, container, null, parentComponent, parentSuspense, isSVGContainer(container), optimized);\r\n };\r\n // async component\r\n const loadAsync = vnode.type.__asyncLoader;\r\n if (loadAsync) {\r\n loadAsync().then(hydrateComponent);\r\n }\r\n else {\r\n hydrateComponent();\r\n }\r\n // component may be async, so in the case of fragments we cannot rely\r\n // on component's rendered output to determine the end of the fragment\r\n // instead, we do a lookahead to find the end anchor node.\r\n nextNode = isFragmentStart\r\n ? locateClosingAsyncAnchor(node)\r\n : nextSibling(node);\r\n }\r\n else if (shapeFlag & 64 /* TELEPORT */) {\r\n if (domType !== 8 /* COMMENT */) {\r\n nextNode = onMismatch();\r\n }\r\n else {\r\n nextNode = vnode.type.hydrate(node, vnode, parentComponent, parentSuspense, optimized, rendererInternals, hydrateChildren);\r\n }\r\n }\r\n else if (shapeFlag & 128 /* SUSPENSE */) {\r\n nextNode = vnode.type.hydrate(node, vnode, parentComponent, parentSuspense, isSVGContainer(parentNode(node)), optimized, rendererInternals, hydrateNode);\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn('Invalid HostVNode type:', type, `(${typeof type})`);\r\n }\r\n }\r\n if (ref != null) {\r\n setRef(ref, null, parentSuspense, vnode);\r\n }\r\n return nextNode;\r\n };\r\n const hydrateElement = (el, vnode, parentComponent, parentSuspense, optimized) => {\r\n optimized = optimized || !!vnode.dynamicChildren;\r\n const { props, patchFlag, shapeFlag, dirs } = vnode;\r\n // skip props & children if this is hoisted static nodes\r\n if (patchFlag !== -1 /* HOISTED */) {\r\n if (dirs) {\r\n invokeDirectiveHook(vnode, null, parentComponent, 'created');\r\n }\r\n // props\r\n if (props) {\r\n if (!optimized ||\r\n (patchFlag & 16 /* FULL_PROPS */ ||\r\n patchFlag & 32 /* HYDRATE_EVENTS */)) {\r\n for (const key in props) {\r\n if (!isReservedProp(key) && isOn(key)) {\r\n patchProp(el, key, null, props[key]);\r\n }\r\n }\r\n }\r\n else if (props.onClick) {\r\n // Fast path for click listeners (which is most often) to avoid\r\n // iterating through props.\r\n patchProp(el, 'onClick', null, props.onClick);\r\n }\r\n }\r\n // vnode / directive hooks\r\n let vnodeHooks;\r\n if ((vnodeHooks = props && props.onVnodeBeforeMount)) {\r\n invokeVNodeHook(vnodeHooks, parentComponent, vnode);\r\n }\r\n if (dirs) {\r\n invokeDirectiveHook(vnode, null, parentComponent, 'beforeMount');\r\n }\r\n if ((vnodeHooks = props && props.onVnodeMounted) || dirs) {\r\n queueEffectWithSuspense(() => {\r\n vnodeHooks && invokeVNodeHook(vnodeHooks, parentComponent, vnode);\r\n dirs && invokeDirectiveHook(vnode, null, parentComponent, 'mounted');\r\n }, parentSuspense);\r\n }\r\n // children\r\n if (shapeFlag & 16 /* ARRAY_CHILDREN */ &&\r\n // skip if element has innerHTML / textContent\r\n !(props && (props.innerHTML || props.textContent))) {\r\n let next = hydrateChildren(el.firstChild, vnode, el, parentComponent, parentSuspense, optimized);\r\n let hasWarned = false;\r\n while (next) {\r\n hasMismatch = true;\r\n if ((process.env.NODE_ENV !== 'production') && !hasWarned) {\r\n warn(`Hydration children mismatch in <${vnode.type}>: ` +\r\n `server rendered element contains more child nodes than client vdom.`);\r\n hasWarned = true;\r\n }\r\n // The SSRed DOM contains more nodes than it should. Remove them.\r\n const cur = next;\r\n next = next.nextSibling;\r\n remove(cur);\r\n }\r\n }\r\n else if (shapeFlag & 8 /* TEXT_CHILDREN */) {\r\n if (el.textContent !== vnode.children) {\r\n hasMismatch = true;\r\n (process.env.NODE_ENV !== 'production') &&\r\n warn(`Hydration text content mismatch in <${vnode.type}>:\\n` +\r\n `- Client: ${el.textContent}\\n` +\r\n `- Server: ${vnode.children}`);\r\n el.textContent = vnode.children;\r\n }\r\n }\r\n }\r\n return el.nextSibling;\r\n };\r\n const hydrateChildren = (node, parentVNode, container, parentComponent, parentSuspense, optimized) => {\r\n optimized = optimized || !!parentVNode.dynamicChildren;\r\n const children = parentVNode.children;\r\n const l = children.length;\r\n let hasWarned = false;\r\n for (let i = 0; i < l; i++) {\r\n const vnode = optimized\r\n ? children[i]\r\n : (children[i] = normalizeVNode(children[i]));\r\n if (node) {\r\n node = hydrateNode(node, vnode, parentComponent, parentSuspense, optimized);\r\n }\r\n else {\r\n hasMismatch = true;\r\n if ((process.env.NODE_ENV !== 'production') && !hasWarned) {\r\n warn(`Hydration children mismatch in <${container.tagName.toLowerCase()}>: ` +\r\n `server rendered element contains fewer child nodes than client vdom.`);\r\n hasWarned = true;\r\n }\r\n // the SSRed DOM didn't contain enough nodes. Mount the missing ones.\r\n patch(null, vnode, container, null, parentComponent, parentSuspense, isSVGContainer(container));\r\n }\r\n }\r\n return node;\r\n };\r\n const hydrateFragment = (node, vnode, parentComponent, parentSuspense, optimized) => {\r\n const container = parentNode(node);\r\n const next = hydrateChildren(nextSibling(node), vnode, container, parentComponent, parentSuspense, optimized);\r\n if (next && isComment(next) && next.data === ']') {\r\n return nextSibling((vnode.anchor = next));\r\n }\r\n else {\r\n // fragment didn't hydrate successfully, since we didn't get a end anchor\r\n // back. This should have led to node/children mismatch warnings.\r\n hasMismatch = true;\r\n // since the anchor is missing, we need to create one and insert it\r\n insert((vnode.anchor = createComment(`]`)), container, next);\r\n return next;\r\n }\r\n };\r\n const handleMismatch = (node, vnode, parentComponent, parentSuspense, isFragment) => {\r\n hasMismatch = true;\r\n (process.env.NODE_ENV !== 'production') &&\r\n warn(`Hydration node mismatch:\\n- Client vnode:`, vnode.type, `\\n- Server rendered DOM:`, node, node.nodeType === 3 /* TEXT */\r\n ? `(text)`\r\n : isComment(node) && node.data === '['\r\n ? `(start of fragment)`\r\n : ``);\r\n vnode.el = null;\r\n if (isFragment) {\r\n // remove excessive fragment nodes\r\n const end = locateClosingAsyncAnchor(node);\r\n while (true) {\r\n const next = nextSibling(node);\r\n if (next && next !== end) {\r\n remove(next);\r\n }\r\n else {\r\n break;\r\n }\r\n }\r\n }\r\n const next = nextSibling(node);\r\n const container = parentNode(node);\r\n remove(node);\r\n patch(null, vnode, container, next, parentComponent, parentSuspense, isSVGContainer(container));\r\n return next;\r\n };\r\n const locateClosingAsyncAnchor = (node) => {\r\n let match = 0;\r\n while (node) {\r\n node = nextSibling(node);\r\n if (node && isComment(node)) {\r\n if (node.data === '[')\r\n match++;\r\n if (node.data === ']') {\r\n if (match === 0) {\r\n return nextSibling(node);\r\n }\r\n else {\r\n match--;\r\n }\r\n }\r\n }\r\n }\r\n return node;\r\n };\r\n return [hydrate, hydrateNode];\r\n}\n\nlet supported;\r\nlet perf;\r\nfunction startMeasure(instance, type) {\r\n if (instance.appContext.config.performance && isSupported()) {\r\n perf.mark(`vue-${type}-${instance.uid}`);\r\n }\r\n}\r\nfunction endMeasure(instance, type) {\r\n if (instance.appContext.config.performance && isSupported()) {\r\n const startTag = `vue-${type}-${instance.uid}`;\r\n const endTag = startTag + `:end`;\r\n perf.mark(endTag);\r\n perf.measure(`<${formatComponentName(instance, instance.type)}> ${type}`, startTag, endTag);\r\n perf.clearMarks(startTag);\r\n perf.clearMarks(endTag);\r\n }\r\n}\r\nfunction isSupported() {\r\n if (supported !== undefined) {\r\n return supported;\r\n }\r\n /* eslint-disable no-restricted-globals */\r\n if (typeof window !== 'undefined' && window.performance) {\r\n supported = true;\r\n perf = window.performance;\r\n }\r\n else {\r\n supported = false;\r\n }\r\n /* eslint-enable no-restricted-globals */\r\n return supported;\r\n}\n\n/**\r\n * This is only called in esm-bundler builds.\r\n * It is called when a renderer is created, in `baseCreateRenderer` so that\r\n * importing runtime-core is side-effects free.\r\n *\r\n * istanbul-ignore-next\r\n */\r\nfunction initFeatureFlags() {\r\n let needWarn = false;\r\n if (typeof __VUE_OPTIONS_API__ !== 'boolean') {\r\n needWarn = true;\r\n getGlobalThis().__VUE_OPTIONS_API__ = true;\r\n }\r\n if (typeof __VUE_PROD_DEVTOOLS__ !== 'boolean') {\r\n needWarn = true;\r\n getGlobalThis().__VUE_PROD_DEVTOOLS__ = false;\r\n }\r\n if ((process.env.NODE_ENV !== 'production') && needWarn) {\r\n console.warn(`You are running the esm-bundler build of Vue. It is recommended to ` +\r\n `configure your bundler to explicitly replace feature flag globals ` +\r\n `with boolean literals to get proper tree-shaking in the final bundle. ` +\r\n `See http://link.vuejs.org/feature-flags for more details.`);\r\n }\r\n}\n\n// implementation, close to no-op\r\nfunction defineComponent(options) {\r\n return isFunction(options) ? { setup: options, name: options.name } : options;\r\n}\n\nconst isAsyncWrapper = (i) => !!i.type.__asyncLoader;\r\nfunction defineAsyncComponent(source) {\r\n if (isFunction(source)) {\r\n source = { loader: source };\r\n }\r\n const { loader, loadingComponent, errorComponent, delay = 200, timeout, // undefined = never times out\r\n suspensible = true, onError: userOnError } = source;\r\n let pendingRequest = null;\r\n let resolvedComp;\r\n let retries = 0;\r\n const retry = () => {\r\n retries++;\r\n pendingRequest = null;\r\n return load();\r\n };\r\n const load = () => {\r\n let thisRequest;\r\n return (pendingRequest ||\r\n (thisRequest = pendingRequest = loader()\r\n .catch(err => {\r\n err = err instanceof Error ? err : new Error(String(err));\r\n if (userOnError) {\r\n return new Promise((resolve, reject) => {\r\n const userRetry = () => resolve(retry());\r\n const userFail = () => reject(err);\r\n userOnError(err, userRetry, userFail, retries + 1);\r\n });\r\n }\r\n else {\r\n throw err;\r\n }\r\n })\r\n .then((comp) => {\r\n if (thisRequest !== pendingRequest && pendingRequest) {\r\n return pendingRequest;\r\n }\r\n if ((process.env.NODE_ENV !== 'production') && !comp) {\r\n warn(`Async component loader resolved to undefined. ` +\r\n `If you are using retry(), make sure to return its return value.`);\r\n }\r\n // interop module default\r\n if (comp &&\r\n (comp.__esModule || comp[Symbol.toStringTag] === 'Module')) {\r\n comp = comp.default;\r\n }\r\n if ((process.env.NODE_ENV !== 'production') && comp && !isObject(comp) && !isFunction(comp)) {\r\n throw new Error(`Invalid async component load result: ${comp}`);\r\n }\r\n resolvedComp = comp;\r\n return comp;\r\n })));\r\n };\r\n return defineComponent({\r\n __asyncLoader: load,\r\n name: 'AsyncComponentWrapper',\r\n setup() {\r\n const instance = currentInstance;\r\n // already resolved\r\n if (resolvedComp) {\r\n return () => createInnerComp(resolvedComp, instance);\r\n }\r\n const onError = (err) => {\r\n pendingRequest = null;\r\n handleError(err, instance, 13 /* ASYNC_COMPONENT_LOADER */, !errorComponent /* do not throw in dev if user provided error component */);\r\n };\r\n // suspense-controlled or SSR.\r\n if ((suspensible && instance.suspense) ||\r\n (false )) {\r\n return load()\r\n .then(comp => {\r\n return () => createInnerComp(comp, instance);\r\n })\r\n .catch(err => {\r\n onError(err);\r\n return () => errorComponent\r\n ? createVNode(errorComponent, {\r\n error: err\r\n })\r\n : null;\r\n });\r\n }\r\n const loaded = ref(false);\r\n const error = ref();\r\n const delayed = ref(!!delay);\r\n if (delay) {\r\n setTimeout(() => {\r\n delayed.value = false;\r\n }, delay);\r\n }\r\n if (timeout != null) {\r\n setTimeout(() => {\r\n if (!loaded.value && !error.value) {\r\n const err = new Error(`Async component timed out after ${timeout}ms.`);\r\n onError(err);\r\n error.value = err;\r\n }\r\n }, timeout);\r\n }\r\n load()\r\n .then(() => {\r\n loaded.value = true;\r\n })\r\n .catch(err => {\r\n onError(err);\r\n error.value = err;\r\n });\r\n return () => {\r\n if (loaded.value && resolvedComp) {\r\n return createInnerComp(resolvedComp, instance);\r\n }\r\n else if (error.value && errorComponent) {\r\n return createVNode(errorComponent, {\r\n error: error.value\r\n });\r\n }\r\n else if (loadingComponent && !delayed.value) {\r\n return createVNode(loadingComponent);\r\n }\r\n };\r\n }\r\n });\r\n}\r\nfunction createInnerComp(comp, { vnode: { ref, props, children } }) {\r\n const vnode = createVNode(comp, props, children);\r\n // ensure inner component inherits the async wrapper's ref owner\r\n vnode.ref = ref;\r\n return vnode;\r\n}\n\nconst prodEffectOptions = {\r\n scheduler: queueJob,\r\n // #1801, #2043 component render effects should allow recursive updates\r\n allowRecurse: true\r\n};\r\nfunction createDevEffectOptions(instance) {\r\n return {\r\n scheduler: queueJob,\r\n allowRecurse: true,\r\n onTrack: instance.rtc ? e => invokeArrayFns(instance.rtc, e) : void 0,\r\n onTrigger: instance.rtg ? e => invokeArrayFns(instance.rtg, e) : void 0\r\n };\r\n}\r\nconst queuePostRenderEffect = queueEffectWithSuspense\r\n ;\r\nconst setRef = (rawRef, oldRawRef, parentSuspense, vnode) => {\r\n if (isArray(rawRef)) {\r\n rawRef.forEach((r, i) => setRef(r, oldRawRef && (isArray(oldRawRef) ? oldRawRef[i] : oldRawRef), parentSuspense, vnode));\r\n return;\r\n }\r\n let value;\r\n if (!vnode || isAsyncWrapper(vnode)) {\r\n value = null;\r\n }\r\n else {\r\n if (vnode.shapeFlag & 4 /* STATEFUL_COMPONENT */) {\r\n value = vnode.component.exposed || vnode.component.proxy;\r\n }\r\n else {\r\n value = vnode.el;\r\n }\r\n }\r\n const { i: owner, r: ref } = rawRef;\r\n if ((process.env.NODE_ENV !== 'production') && !owner) {\r\n warn(`Missing ref owner context. ref cannot be used on hoisted vnodes. ` +\r\n `A vnode with ref must be created inside the render function.`);\r\n return;\r\n }\r\n const oldRef = oldRawRef && oldRawRef.r;\r\n const refs = owner.refs === EMPTY_OBJ ? (owner.refs = {}) : owner.refs;\r\n const setupState = owner.setupState;\r\n // unset old ref\r\n if (oldRef != null && oldRef !== ref) {\r\n if (isString(oldRef)) {\r\n refs[oldRef] = null;\r\n if (hasOwn(setupState, oldRef)) {\r\n setupState[oldRef] = null;\r\n }\r\n }\r\n else if (isRef(oldRef)) {\r\n oldRef.value = null;\r\n }\r\n }\r\n if (isString(ref)) {\r\n const doSet = () => {\r\n refs[ref] = value;\r\n if (hasOwn(setupState, ref)) {\r\n setupState[ref] = value;\r\n }\r\n };\r\n // #1789: for non-null values, set them after render\r\n // null values means this is unmount and it should not overwrite another\r\n // ref with the same key\r\n if (value) {\r\n doSet.id = -1;\r\n queuePostRenderEffect(doSet, parentSuspense);\r\n }\r\n else {\r\n doSet();\r\n }\r\n }\r\n else if (isRef(ref)) {\r\n const doSet = () => {\r\n ref.value = value;\r\n };\r\n if (value) {\r\n doSet.id = -1;\r\n queuePostRenderEffect(doSet, parentSuspense);\r\n }\r\n else {\r\n doSet();\r\n }\r\n }\r\n else if (isFunction(ref)) {\r\n callWithErrorHandling(ref, owner, 12 /* FUNCTION_REF */, [value, refs]);\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn('Invalid template ref type:', value, `(${typeof value})`);\r\n }\r\n};\r\n/**\r\n * The createRenderer function accepts two generic arguments:\r\n * HostNode and HostElement, corresponding to Node and Element types in the\r\n * host environment. For example, for runtime-dom, HostNode would be the DOM\r\n * `Node` interface and HostElement would be the DOM `Element` interface.\r\n *\r\n * Custom renderers can pass in the platform specific types like this:\r\n *\r\n * ``` js\r\n * const { render, createApp } = createRenderer({\r\n * patchProp,\r\n * ...nodeOps\r\n * })\r\n * ```\r\n */\r\nfunction createRenderer(options) {\r\n return baseCreateRenderer(options);\r\n}\r\n// Separate API for creating hydration-enabled renderer.\r\n// Hydration logic is only used when calling this function, making it\r\n// tree-shakable.\r\nfunction createHydrationRenderer(options) {\r\n return baseCreateRenderer(options, createHydrationFunctions);\r\n}\r\n// implementation\r\nfunction baseCreateRenderer(options, createHydrationFns) {\r\n // compile-time feature flags check\r\n {\r\n initFeatureFlags();\r\n }\r\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\r\n const target = getGlobalThis();\r\n target.__VUE__ = true;\r\n setDevtoolsHook(target.__VUE_DEVTOOLS_GLOBAL_HOOK__);\r\n }\r\n const { insert: hostInsert, remove: hostRemove, patchProp: hostPatchProp, forcePatchProp: hostForcePatchProp, createElement: hostCreateElement, createText: hostCreateText, createComment: hostCreateComment, setText: hostSetText, setElementText: hostSetElementText, parentNode: hostParentNode, nextSibling: hostNextSibling, setScopeId: hostSetScopeId = NOOP, cloneNode: hostCloneNode, insertStaticContent: hostInsertStaticContent } = options;\r\n // Note: functions inside this closure should use `const xxx = () => {}`\r\n // style in order to prevent being inlined by minifiers.\r\n const patch = (n1, n2, container, anchor = null, parentComponent = null, parentSuspense = null, isSVG = false, optimized = false) => {\r\n // patching & not same type, unmount old tree\r\n if (n1 && !isSameVNodeType(n1, n2)) {\r\n anchor = getNextHostNode(n1);\r\n unmount(n1, parentComponent, parentSuspense, true);\r\n n1 = null;\r\n }\r\n if (n2.patchFlag === -2 /* BAIL */) {\r\n optimized = false;\r\n n2.dynamicChildren = null;\r\n }\r\n const { type, ref, shapeFlag } = n2;\r\n switch (type) {\r\n case Text:\r\n processText(n1, n2, container, anchor);\r\n break;\r\n case Comment:\r\n processCommentNode(n1, n2, container, anchor);\r\n break;\r\n case Static:\r\n if (n1 == null) {\r\n mountStaticNode(n2, container, anchor, isSVG);\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n patchStaticNode(n1, n2, container, isSVG);\r\n }\r\n break;\r\n case Fragment:\r\n processFragment(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, optimized);\r\n break;\r\n default:\r\n if (shapeFlag & 1 /* ELEMENT */) {\r\n processElement(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, optimized);\r\n }\r\n else if (shapeFlag & 6 /* COMPONENT */) {\r\n processComponent(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, optimized);\r\n }\r\n else if (shapeFlag & 64 /* TELEPORT */) {\r\n type.process(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, optimized, internals);\r\n }\r\n else if (shapeFlag & 128 /* SUSPENSE */) {\r\n type.process(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, optimized, internals);\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn('Invalid VNode type:', type, `(${typeof type})`);\r\n }\r\n }\r\n // set ref\r\n if (ref != null && parentComponent) {\r\n setRef(ref, n1 && n1.ref, parentSuspense, n2);\r\n }\r\n };\r\n const processText = (n1, n2, container, anchor) => {\r\n if (n1 == null) {\r\n hostInsert((n2.el = hostCreateText(n2.children)), container, anchor);\r\n }\r\n else {\r\n const el = (n2.el = n1.el);\r\n if (n2.children !== n1.children) {\r\n hostSetText(el, n2.children);\r\n }\r\n }\r\n };\r\n const processCommentNode = (n1, n2, container, anchor) => {\r\n if (n1 == null) {\r\n hostInsert((n2.el = hostCreateComment(n2.children || '')), container, anchor);\r\n }\r\n else {\r\n // there's no support for dynamic comments\r\n n2.el = n1.el;\r\n }\r\n };\r\n const mountStaticNode = (n2, container, anchor, isSVG) => {\r\n [n2.el, n2.anchor] = hostInsertStaticContent(n2.children, container, anchor, isSVG);\r\n };\r\n /**\r\n * Dev / HMR only\r\n */\r\n const patchStaticNode = (n1, n2, container, isSVG) => {\r\n // static nodes are only patched during dev for HMR\r\n if (n2.children !== n1.children) {\r\n const anchor = hostNextSibling(n1.anchor);\r\n // remove existing\r\n removeStaticNode(n1);\r\n [n2.el, n2.anchor] = hostInsertStaticContent(n2.children, container, anchor, isSVG);\r\n }\r\n else {\r\n n2.el = n1.el;\r\n n2.anchor = n1.anchor;\r\n }\r\n };\r\n const moveStaticNode = ({ el, anchor }, container, nextSibling) => {\r\n let next;\r\n while (el && el !== anchor) {\r\n next = hostNextSibling(el);\r\n hostInsert(el, container, nextSibling);\r\n el = next;\r\n }\r\n hostInsert(anchor, container, nextSibling);\r\n };\r\n const removeStaticNode = ({ el, anchor }) => {\r\n let next;\r\n while (el && el !== anchor) {\r\n next = hostNextSibling(el);\r\n hostRemove(el);\r\n el = next;\r\n }\r\n hostRemove(anchor);\r\n };\r\n const processElement = (n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, optimized) => {\r\n isSVG = isSVG || n2.type === 'svg';\r\n if (n1 == null) {\r\n mountElement(n2, container, anchor, parentComponent, parentSuspense, isSVG, optimized);\r\n }\r\n else {\r\n patchElement(n1, n2, parentComponent, parentSuspense, isSVG, optimized);\r\n }\r\n };\r\n const mountElement = (vnode, container, anchor, parentComponent, parentSuspense, isSVG, optimized) => {\r\n let el;\r\n let vnodeHook;\r\n const { type, props, shapeFlag, transition, scopeId, patchFlag, dirs } = vnode;\r\n if (!(process.env.NODE_ENV !== 'production') &&\r\n vnode.el &&\r\n hostCloneNode !== undefined &&\r\n patchFlag === -1 /* HOISTED */) {\r\n // If a vnode has non-null el, it means it's being reused.\r\n // Only static vnodes can be reused, so its mounted DOM nodes should be\r\n // exactly the same, and we can simply do a clone here.\r\n // only do this in production since cloned trees cannot be HMR updated.\r\n el = vnode.el = hostCloneNode(vnode.el);\r\n }\r\n else {\r\n el = vnode.el = hostCreateElement(vnode.type, isSVG, props && props.is);\r\n // mount children first, since some props may rely on child content\r\n // being already rendered, e.g. `